[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue-contrib] r275 - in address: forms schema
From: |
reinhard |
Subject: |
[gnue-contrib] r275 - in address: forms schema |
Date: |
Tue, 15 May 2007 13:51:16 -0500 (CDT) |
Author: reinhard
Date: 2007-05-15 13:51:16 -0500 (Tue, 15 May 2007)
New Revision: 275
Modified:
address/forms/address.gfd
address/schema/schema.gsd
Log:
Added search by phone number, immediately close window on return key if only
one record is in the search result.
Modified: address/forms/address.gfd
===================================================================
--- address/forms/address.gfd 2007-05-01 10:30:34 UTC (rev 274)
+++ address/forms/address.gfd 2007-05-15 18:51:16 UTC (rev 275)
@@ -54,7 +54,15 @@
<field name="eZIP" field="zip" datatype="text"
length="12"/>
<field name="eVAT" field="vatid" datatype="text"
length="16"/>
<field name="eCRG" field="compreg" datatype="text"
length="32"/>
- <field name="ePhone" field="phone" datatype="text"
length="64"/>
+ <field name="ePhone" field="phone" datatype="text"
length="64">
+ <trigger type="POST-CHANGE">
+ if blk_company.ePhone.value is not None:
+ blk_company.ePhonex.value = ''.join([c for c in
blk_company.ePhone.value if c in '0123456789'])
+ else:
+ blk_company.ePhonex.value = None
+ </trigger>
+ </field>
+ <field name="ePhonex" field="phonex" datatype="text"
length="32"/>
<field name="eFax" field="fax" datatype="text"
length="32"/>
<field name="eWeb" field="web" datatype="text"
length="64"/>
<field name="eMail" field="email" datatype="text"
length="64"/>
@@ -80,8 +88,24 @@
<field name="eSurname" field="surname" datatype="text"
length="32"/>
<field name="eDepartment" field="department" datatype="text"
length="32"/>
<field name="eDuty" field="duty" datatype="text"
length="40"/>
- <field name="ePhone1" field="phone1" datatype="text"
length="40"/>
- <field name="ePhone2" field="phone2" datatype="text"
length="40"/>
+ <field name="ePhone1" field="phone1" datatype="text" length="40">
+ <trigger type="POST-CHANGE">
+ if blk_contact.ePhone1.value is not None:
+ blk_contact.ePhone1x.value = ''.join([c for c in
blk_contact.ePhone1.value if c in '0123456789'])
+ else:
+ blk_contact.ePhone1x.value = None
+ </trigger>
+ </field>
+ <field name="ePhone2" field="phone2" datatype="text" length="40">
+ <trigger type="POST-CHANGE">
+ if blk_contact.ePhone2.value is not None:
+ blk_contact.ePhone2x.value = ''.join([c for c in
blk_contact.ePhone2.value if c in '0123456789'])
+ else:
+ blk_contact.ePhone2x.value = None
+ </trigger>
+ </field>
+ <field name="ePhone1x" field="phone1x" datatype="text"
length="32"/>
+ <field name="ePhone2x" field="phone2x" datatype="text"
length="32"/>
<field name="eFax" field="fax" datatype="text"
length="40"/>
<field name="eMail" field="email" datatype="text"
length="64"/>
<field name="eMemo" field="memo" datatype="text"/>
@@ -172,10 +196,12 @@
</vbox>
</hbox>
</vbox>
- <!-- separate hbox so the outer hbox doesn't leave space for label -->
- <hbox>
- <entry block="blk" field="company" label="Schnellaufruf:"
style="listbox"/>
- </hbox>
+ <vbox>
+ <hbox>
+ <entry block="blk" field="company" label="Schnellaufruf:"
style="listbox"/>
+ </hbox>
+ <button action="act_search_phone" label="Telefonnummernsuche"/>
+ </vbox>
</hbox>
</page>
</layout>
@@ -197,6 +223,14 @@
blk_contact.search_record(id=params['prm_contact'])
</action>
+ <action name="act_search_phone">
+ params = {}
+ activateDialog('dlg_search_phone', params, True)
+ if params.has_key('prm_company') and params['prm_company'] is not None:
+ blk_company.search_record(id=params['prm_company'])
+ blk_contact.search_record(id=params['prm_contact'])
+ </action>
+
<action name="act_memo_company">
params = {'prm_memo': blk_company.eMemo.value}
activateDialog('dlg_memo', params, True)
@@ -293,7 +327,7 @@
</field>
</block>
- <block name="blk_company" datasource="dts_company" startup="empty">
+ <block name="blk_company" datasource="dts_company" startup="empty"
editable="N" deletable="N">
<field name="id" field="id" datatype="number"
length="8"/>
<field name="matchcode" field="matchcode" datatype="text"
length="20"/>
<field name="name1" field="name1" datatype="text"
length="64"/>
@@ -312,12 +346,14 @@
<grid block="blk_company" rows="20">
<gridline>
- <button label="Auswählen" action="act_select"/>
- <entry field="matchcode" label="Match"/>
- <entry field="name1" label="Firma-1"/>
- <entry field="name2" label="Firma-2"/>
- <entry field="street" label="Straße"/>
- <entry field="city" label="Ort"/>
+ <button label="Auswählen" action="act_select">
+ <trigger type="POST-FOCUSIN">act_button_focus.run()</trigger>
+ </button>
+ <entry field="matchcode" label="Match" navigable="N"/>
+ <entry field="name1" label="Firma-1" navigable="N"/>
+ <entry field="name2" label="Firma-2" navigable="N"/>
+ <entry field="street" label="Straße" navigable="N"/>
+ <entry field="city" label="Ort" navigable="N"/>
</gridline>
</grid>
</vbox>
@@ -328,6 +364,7 @@
<action name="act_initialize">
blk.search.value = None
+ blk_company.clear()
setFocus(blk.search)
</action>
@@ -371,8 +408,18 @@
blk_company.clear()
</action>
+ <action name="act_button_focus">
+ # FIXME: get_record_count not available before gnue-forms 0.6-pre1
+ # if blk_company.get_record_count() == 1 and
blk_company.get_record_status() == 'clean':
+ if blk_company.getResultSet().getRecordCount() == 1 and
blk_company.get_record_status() == 'clean':
+ act_select.run()
+ </action>
+
<action name="act_select">
prm_result.value = blk_company.id.value
+ # Workaround for a bug in wx: setting the focus in ON-ACTIVATION does not
+ # work for modal dialogs. So we reset the focus here before closing.
+ setFocus(blk.search)
form.close()
</action>
</dialog>
@@ -404,7 +451,7 @@
</field>
</block>
- <block name="blk_contact" datasource="dts_contact" startup="empty">
+ <block name="blk_contact" datasource="dts_contact" startup="empty"
editable="N" deletable="N">
<field name="id" field="contact.id" datatype="number"
length="8"/>
<field name="company" field="company" datatype="number"
length="8"/>
<field name="surname" field="surname" datatype="text"
length="32"/>
@@ -424,12 +471,14 @@
<grid block="blk_contact" rows="20">
<gridline>
- <button label="Auswählen" action="act_select"/>
- <entry field="surname" label="Nachname"/>
- <entry field="firstname" label="Vorname"/>
- <entry field="name1" label="Firma-1"/>
- <entry field="name2" label="Firma-2"/>
- <entry field="city" label="Ort"/>
+ <button label="Auswählen" action="act_select">
+ <trigger type="POST-FOCUSIN">act_button_focus.run()</trigger>
+ </button>
+ <entry field="surname" label="Nachname" navigable="N"/>
+ <entry field="firstname" label="Vorname" navigable="N"/>
+ <entry field="name1" label="Firma-1" navigable="N"/>
+ <entry field="name2" label="Firma-2" navigable="N"/>
+ <entry field="city" label="Ort" navigable="N"/>
</gridline>
</grid>
</vbox>
@@ -440,6 +489,7 @@
<action name="act_initialize">
blk.search.value = None
+ blk_contact.clear()
setFocus(blk.search)
</action>
@@ -480,10 +530,121 @@
blk_contact.clear()
</action>
+ <action name="act_button_focus">
+ # FIXME: get_record_count not available before gnue-forms 0.6-pre1
+ # if blk_contact.get_record_count() == 1 and
blk_contact.get_record_status() == 'clean':
+ if blk_contact.getResultSet().getRecordCount() == 1 and
blk_company.get_record_status() == 'clean':
+ act_select.run()
+ </action>
+
<action name="act_select">
prm_company.value = blk_contact.company.value
prm_contact.value = blk_contact.id.value
+ # Workaround for a bug in wx: setting the focus in ON-ACTIVATION does not
+ # work for modal dialogs. So we reset the focus here before closing.
+ setFocus(blk.search)
form.close()
</action>
</dialog>
+
+ <!-- ==================================================================== -->
+ <!-- Search by phone number -->
+ <!-- ==================================================================== -->
+
+ <dialog name="dlg_search_phone" title="Suche nach Telefonnummer">
+ <parameter name="prm_company" datatype="number" length="8" scale="0"/>
+ <parameter name="prm_contact" datatype="number" length="8" scale="0"/>
+
+ <trigger type="ON-ACTIVATION">act_initialize.run()</trigger>
+
+ <datasource name="dts_contact" connection="address"
+ table="contact left outer join company on contact.company = company.id"
+ primarykey="contact.id">
+ <sortorder>
+ <sortfield name="surname" descending="N" ignorecase="Y"/>
+ </sortorder>
+ </datasource>
+
+ <!-- ================================================================== -->
+
+ <logic>
+ <block name="blk">
+ <field name="search" datatype="text" length="64" case="upper">
+ <trigger type="POST-CHANGE">act_filter.run()</trigger>
+ </field>
+ </block>
+
+ <block name="blk_contact" datasource="dts_contact" startup="empty"
editable="N" deletable="N">
+ <field name="id" field="contact.id" datatype="number"
length="8"/>
+ <field name="company" field="company" datatype="number"
length="8"/>
+ <field name="surname" field="surname" datatype="text"
length="16"/>
+ <field name="firstname" field="firstname" datatype="text"
length="16"/>
+ <field name="phone1" field="phone1" datatype="text"
length="16"/>
+ <field name="phone2" field="phone2" datatype="text"
length="16"/>
+ <field name="name1" field="name1" datatype="text"
length="32"/>
+ <field name="phone" field="phone" datatype="text"
length="16"/>
+ </block>
+ </logic>
+
+ <!-- ================================================================== -->
+
+ <layout>
+ <page name="pg">
+ <vbox>
+ <entry block="blk" field="search" label="Suchbegriff:"/>
+
+ <grid block="blk_contact" rows="20">
+ <gridline>
+ <button label="Auswählen" action="act_select">
+ <trigger type="POST-FOCUSIN">act_button_focus.run()</trigger>
+ </button>
+ <entry field="surname" label="Nachname" navigable="N"/>
+ <entry field="firstname" label="Vorname" navigable="N"/>
+ <entry field="phone1" label="Telefon 1" navigable="N"/>
+ <entry field="phone2" label="Telefon 2" navigable="N"/>
+ <entry field="name1" label="Firma-1" navigable="N"/>
+ <entry field="phone" label="Telefon" navigable="N"/>
+ </gridline>
+ </grid>
+ </vbox>
+ </page>
+ </layout>
+
+ <!-- ================================================================== -->
+
+ <action name="act_initialize">
+ blk.search.value = None
+ blk_contact.clear()
+ setFocus(blk.search)
+ </action>
+
+ <action name="act_filter">
+ val = blk.search.value
+
+ if val is not None:
+ item = "%" + val + "%"
+ blk_contact.query(['or',
+ ['like', ['field', 'phone1x'], ['const', item]],
+ ['like', ['field', 'phone2x'], ['const', item]],
+ ['like', ['field', 'phonex'], ['const', item]]])
+ else:
+ blk_contact.clear()
+ </action>
+
+ <action name="act_button_focus">
+ # FIXME: get_record_count not available before gnue-forms 0.6-pre1
+ # if blk_contact.get_record_count() == 1 and
blk_contact.get_record_status() == 'clean':
+ if blk_contact.getResultSet().getRecordCount() == 1 and
blk_contact.get_record_status() == 'clean':
+ act_select.run()
+ </action>
+
+ <action name="act_select">
+ prm_company.value = blk_contact.company.value
+ prm_contact.value = blk_contact.id.value
+ # Workaround for a bug in wx: setting the focus in ON-ACTIVATION does not
+ # work for modal dialogs. So we reset the focus here before closing.
+ setFocus(blk.search)
+ form.close()
+ </action>
+ </dialog>
</form>
Modified: address/schema/schema.gsd
===================================================================
--- address/schema/schema.gsd 2007-05-01 10:30:34 UTC (rev 274)
+++ address/schema/schema.gsd 2007-05-15 18:51:16 UTC (rev 275)
@@ -15,6 +15,7 @@
<field name="vatid" type="string" length="16"/>
<field name="compreg" type="string" length="32"/>
<field name="phone" type="string" length="64"/>
+ <field name="phonex" type="string" length="32"/>
<field name="fax" type="string" length="32"/>
<field name="web" type="string" length="64"/>
<field name="email" type="string" length="64"/>
@@ -50,6 +51,8 @@
<field name="duty" type="string" length="40"/>
<field name="phone1" type="string" length="40"/>
<field name="phone2" type="string" length="40"/>
+ <field name="phone1x" type="string" length="32"/>
+ <field name="phone2x" type="string" length="32"/>
<field name="fax" type="string" length="40"/>
<field name="email" type="string" length="64"/>
<field name="memo" type="string"/>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue-contrib] r275 - in address: forms schema,
reinhard <=