gnue-forms: more master-detail-detail (and other) issues

Oleg Noga <[email protected]> Mon, 23 Jul 2007 16:24:23 +0300
Newsgroups gmane.comp.gnu.enterprise.general
Message-ID <[email protected]>
Hello Reinhard,

Thank you for rapid support!

I have some more issues with same examples.
--------------
3combos.gfd: I can write data into 'no', 'date' entries when
'cb_store' is not selected.
Grid must disable to insert rows when master datasource combobox is
not selected. 

--------------
3entries.gfd:
Start form.
I see "None" in every cell of Store column. Even in rows without
data. 
Write some data in cb_department, db_store, no, date entries.
fk_store entry combobox gives selection between empty value and None.
Leave None as was.
Press Save on toolbar -> Unexpected error:
"""Field fk_department does not have a default value.

INSERT INTO store (name) VALUES (%(new_name)s)

  new_name: u'111'"""

--------------
any grid:
if there is some data in grid i can not start editing new row by
clicking on it. I must click on last row and then press down button.

--------------
any grid:
boolean entry in grid shown as disabled checkbox in rows without data.


I am using
gnue-forms 0.6.1
gnue-common 0.6.9
wxPython 2.8.4.0
python 2.4.4
on windows 2000 sp4


-- 
Best regards,
 Oleg                          mailto:[email protected]

_______________________________________________
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
3entries.gfd (text/xml, 2.1 KB)
<?xml version="1.0"?>
<form title="3entries">
	<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   = "no" 
		master     = "ds_store"
		masterlink = "id"
		detaillink = "fk_store"
	/>

	<logic>

		<block name='company' datasource="ds_company" rows="1">
			<field name="cb_company"  field="name"  />
		</block>

		<block name='department' datasource="ds_department" rows="1">
			<field name="cb_department" field="name" />
		</block>
		
		<block name='store' datasource="ds_store" rows="1">
			<field name="cb_store"  field="name"/>
		</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='company'/>
				<entry name="cb_department" field="cb_department" label="Department" block='department'/>
				<entry name="cb_store"      field="cb_store"      label="Store"      block='store'/>

				<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>