使用Libreoffice Base中的下拉列表替换数字外键

时间:2014-03-05 23:56:15

标签: postgresql 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)

我已经构建了一个带有单个表控件的表单,列出了accounts.name,以及一个引用该控件以供选择的子表单。

在子表单中,还有另一个表格控件,在将date与所选条目匹配后显示credittextamountdebit

到目前为止,这有效,但credit列在数字字段中包含数字外键数据。我想要一个下拉字段,允许我选择一个帐户。

这可能,或者我应该使用从查询中填充的只读表以及子文章中的单独编辑字段来寻找后备解决方案吗?

1 个答案:

答案 0 :(得分:2)

LibreOffice中的功能是一个列表框。棘手的是网格/表格控件上的各个字段不会显示在表单导航器中。但是,您可以通过转到编辑模式并右键单击网格的标题行/列选择器,将网格上的字段类型转换为列表框。在下拉菜单中,选择“替换为”和“列表框”。现在,网格中的字段/列是一个列表框。

然后打开“控件”对话框,再次单击网格中相应的标题/列选择器,您刚刚将其更改为列表框。转到“数据”标签。在“列表内容类型”下,选择“表格”和“列表内容”,选择外键表。如果“绑定字段”的值为“1”,下拉列表将显示列表源的第一列,它将使用第二列的值来填充列表框控件中显示的数据源。

为了更好的审美,在控制框中,“常规”选项卡,“下拉”选项选择“是”。

上述步骤将提供UI中与熟悉的组合框无法区分的功能。您也可以直接在LO中尝试“组合框”功能,但对该字段类型的支持并不强。