gnue-forms: combobox as master record selector?
Oleg Noga <[email protected]> Mon, 9 Jul 2007 21:29:39 +0300
| Newsgroups | gmane.comp.gnu.enterprise.general |
|---|---|
| Message-ID | <[email protected]> |
Hello!
I have a hierarchy in my database. 4 tables:
company
department
store
store_document
Can i define form with comboboxes for selecting
company
then department
then store
and editing store_documents for specified store?
Please, see 3combos example.
Notes on implementation:
I have defined 4 datasources
ds_company is master
ds_department is detail of ds_company
ds_store is detail of ds_department
logically, ds_store_document must be detail of ds_store
but it is impossible because blocks not defined for company,
department, store.
I am using gnue-forms 0.6.0 with wxPython 2.8
Thanks
Oleg
_______________________________________________
Gnue mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnue
3combos.gfd
(text/xml, 3 KB)
<?xml version="1.0"?>
<form title="3combos">
<datasource
name="ds_company" connection="gnue" prequery="Y"
table = "company"
order_by = "name"
/>
<datasource name="ds_department" connection="gnue" prequery="Y"
table = "department"
order_by = "name"
master = "ds_company"
masterlink = "id"
detaillink = "fk_company"
/>
<datasource name="ds_store" connection="gnue" prequery="Y"
table = "store"
order_by = "name"
master = "ds_department"
masterlink = "id"
detaillink = "fk_department"
/>
<datasource name="ds_store_document" connection="gnue" prequery="Y"
table = "store_document"
order_by = "date,no"
/>
<!--
master = "ds_store"
masterlink = "id"
detaillink = "fk_store"
i can't link ds_store_document to ds_store because i have no corresponding blocks for
ds_company, ds_department, ds_store
-->
<logic>
<block name='finder' rows="1">
<field name="cb_company" fk_description="name" fk_key="id" fk_source="ds_company">
<trigger type="PRE-CHANGE">
# clear child comboboxes
finder.cb_department.clear()
finder.cb_store.clear()
</trigger>
</field>
<field name="cb_department" fk_description="name" fk_key="id" fk_source="ds_department">
<trigger type="PRE-CHANGE">
# clear child combobox
finder.cb_store.clear()
</trigger>
</field>
<field name="cb_store" fk_description="name" fk_key="id" fk_source="ds_store"/>
</block>
<block name="store_document" datasource="ds_store_document" rows="1">
<field name="id" field="id"/>
<field name="no" field="no"/>
<field name="fk_store" field="fk_store" fk_description="name" fk_key="id" fk_source="ds_store"/>
<field name="date" field="date" datatype='date' />
</block>
</logic>
<layout xmlns:s="GNUe:Layout:Sizer">
<page name="Page_1">
<vbox>
<entry name="cb_company" field="cb_company" label="Company" block='finder'/>
<entry name="cb_department" field="cb_department" label="Department" block='finder'/>
<entry name="cb_store" field="cb_store" label="Store" block='finder'/>
<grid rows="5" block="store_document">
<gridline>
<entry name="no" field="no" label="Number"/>
<entry name="date" field="date" label="Date"/>
<entry name="fk_store" field="fk_store" label="Store"/>
</gridline>
</grid>
</vbox>
</page>
</layout>
</form>
3combos.gsd
(application/octet-stream, 5.3 KB) - not displayed