Замена числового внешнего ключа выпадающим списком в Libreoffice Base

Я строю форму для ввода кредитных / дебетовых транзакций, поэтому у меня есть две таблицы в PostgreSQL

accounts
    id      INTEGER PRIMARY KEY
    name    VARCHAR(128)

ledger
    id      INTEGER PRIMARY KEY
    credit  INTEGER NOT NULL REFERENCES accounts
    debit   INTEGER NOT NULL REFERENCES accounts
    date    DATE NOT NULL
    amount  NUMERIC(8,2)
    text    VARCHAR(128)

Я построил форму с одним элементом управления таблицей, перечисляя account.name и подчиненную форму, которая ссылается на этот элемент управления для выбора.

Внутри подчиненной формы есть еще один элемент управления таблицы, показывающий date, credit, text а также amount после сопоставления debit против выбранной записи в мастере.

Пока это работает, однако credit столбец содержит числовые данные внешнего ключа внутри числового поля. Я хотел бы иметь выпадающее поле, которое позволяет мне выбрать учетную запись на своем месте.

Возможно ли это, или я должен пойти на запасное решение с таблицей только для чтения, заполненной из запроса, и отдельными полями редактирования в подчиненной форме?

1 ответ

Функциональность, которая работает в LibreOffice - это список. Хитрость заключается в том, что отдельные поля в элементе управления сетки / таблицы не отображаются в навигаторе форм. Однако вы можете преобразовать тип поля в сетке в список, перейдя в режим редактирования и щелкнув правой кнопкой мыши заголовок строки / столбец селектора сетки. В раскрывающемся меню выберите "заменить на" и "список". Теперь это поле / столбец в сетке является списком.

Затем откройте диалоговое окно "Управление" и снова щелкните соответствующий заголовок / селектор столбца в сетке, который вы только что изменили на список. Перейдите на вкладку "данные". В разделе "Тип содержимого списка" выберите "Таблица" и "Список содержимого" выберите таблицу внешнего ключа. Если "связанное поле" имеет значение "1", в раскрывающемся списке будет отображаться первый столбец источника списка, и будет использоваться значение второго столбца для заполнения источника данных, отображаемого в элементе управления списка.

Для лучшей эстетики, в поле управления, вкладка "Общие", в выпадающем меню выберите "Да".

Шаги, описанные выше, обеспечат функциональность, в основном неотличимую от пользовательского интерфейса знакомого выпадающего списка. Вы также можете попробовать функциональность "combobox" непосредственно в LO, но поддержка этого типа поля не так сильна.

Другие вопросы по тегам