Замена числового внешнего ключа выпадающим списком в 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, но поддержка этого типа поля не так сильна.