4 |
$masterBlock => 'addressentityBlock' |
$masterBlock => 'addressentityBlock' |
5 |
$fields # una referencia a un array de referencias a hashes. Claves usadas: label, entry, width, name, field |
$fields # una referencia a un array de referencias a hashes. Claves usadas: label, entry, width, name, field |
6 |
$masterBoxLabel => 'Sucursal' |
$masterBoxLabel => 'Sucursal' |
7 |
#locales |
$detailBlockLabel => 'direcciones' |
8 |
$name => 'Search' # el nombre de la página (lo que dice en el tag de la página) |
$name => 'Direcciones' # el nombre de la página (lo que dice en el tag de la página) |
9 |
</neb:Vars> |
</neb:Vars> |
|
|
|
|
|
|
10 |
<!-- datasources --> |
<!-- datasources --> |
11 |
<datasource name="addressDataSource" |
<datasource name="addressDataSource" |
12 |
database="papo" table="address, _address_data" historytable="_address_data" |
database="papo" table="address, _address_data" historytable="_address_data" |
23 |
</and> |
</and> |
24 |
</condition> |
</condition> |
25 |
</datasource> |
</datasource> |
|
|
|
|
|
|
|
<datasource database="papo" name="addressTypeResultDataSource" |
|
|
table="address_type, _address_type_data" historytable="_address_type_data"> |
|
|
<condition> |
|
|
<and> |
|
|
<eq> |
|
|
<cfield name="address_type.id"/> |
|
|
<cfield name="_address_type_data._table"/> |
|
|
</eq> |
|
|
<null> |
|
|
<cfield name="_address_type_data._end_t"/> |
|
|
</null> |
|
|
</and> |
|
|
</condition> |
|
|
</datasource> |
|
|
|
|
26 |
<!-- triggers --> |
<!-- triggers --> |
27 |
|
<trigger name="addressRollbackTrigger" type="NAMED"><![CDATA[ |
28 |
|
import hack |
29 |
<trigger name="addressTypeNameSearchTrigger" type="NAMED"><![CDATA[ |
hack.rollback(addressBlock) |
30 |
print "trigger de busqueda de nombres" |
]]></trigger> |
31 |
addressBlock.firstRecord() |
<trigger name="addressDeleteTrigger" type="NAMED"><![CDATA[ |
32 |
for index in range(addressBlock.getRecordCount()): |
addressBlock.deleteRecord() |
33 |
if str(addressBlock.addressTypeIdEntry) != "": |
addressBlock.commit() |
|
addressTypeResultBlock.processRollback() |
|
|
addressTypeResultBlock.initQuery() |
|
|
addressTypeResultBlock.addressTypeResultIdEntry= str(addressBlock.addressTypeIdEntry) |
|
|
addressTypeResultBlock.processQuery() |
|
|
addressBlock.addressTypeNameEntry= str(addressTypeResultBlock.addressTypeResultNameEntry) |
|
|
addressBlock.nextRecord() |
|
34 |
]]></trigger> |
]]></trigger> |
|
|
|
|
|
|
|
<!-- new_schema_begin --> |
|
|
<trigger type="NAMED" name="callAddressTypeTrigger"><![CDATA[ |
|
|
try: |
|
|
# gnue version <= 0.4 |
|
|
from gnue.forms.GFEvent import GFEvent |
|
|
except ImportError: |
|
|
# gnue version >= 0.5 |
|
|
from gnue.common.events.Event import Event as GFEvent |
|
|
|
|
|
# busy clock |
|
|
form._object.dispatchEvent(GFEvent('beginWAIT')) |
|
|
setStatusText('buscando...') |
|
|
|
|
|
def setAddressType (recNo): |
|
|
if recNo>=0: |
|
|
addressTypeResultBlock.jumpRecord (recNo) |
|
|
addressBlock.addressTypeIdEntry= str(addressTypeResultBlock.addressTypeResultIdEntry) |
|
|
addressBlock.addressTypeNameEntry= str(addressTypeResultBlock.addressTypeResultNameEntry) |
|
|
|
|
|
# look for the name... |
|
|
addressTypeResultBlock.processRollback () |
|
|
addressTypeResultBlock.initQuery () |
|
|
addressTypeResultBlock.addressTypeResultNameEntry= str(addressBlock.addressTypeNameEntry)+'%' |
|
|
addressTypeResultBlock.processQuery () |
|
|
|
|
|
# are there too much results? |
|
|
resultCount= addressTypeResultBlock.getRecordCount () |
|
|
if resultCount>1: |
|
|
# do the select-man |
|
|
runForm ('addressTypeSelect.gfd', { |
|
|
'data':addressTypeResultBlock, |
|
|
'callback': setAddressType |
|
|
}) |
|
|
elif resultCount==1: |
|
|
setAddressType (0) |
|
|
|
|
|
setStatusText('Aceptar') |
|
|
form._object.dispatchEvent(GFEvent('endWAIT')) |
|
|
]]></trigger> |
|
|
|
|
35 |
<!-- forms --> |
<!-- forms --> |
36 |
|
<page name="neb:$name"> |
37 |
<page name="Direcciones"> |
<neb:Sub neb:src="nameSearch.nebc" block="addressBlock" idEntry="addressTypeIdEntry" nameEntry="addressTypeNameEntry" searchTrigger="callAddressTypeTrigger"> |
38 |
<trigger type="Pre-Focusin" src="addressTypeNameSearchTrigger"/> |
</neb:Sub> |
39 |
<!-- <trigger type="Pre-Focusout" src="askForChangesTrigger"/> --> |
<!-- <trigger type="Pre-Focusout" src="askForChangesTrigger"/> --> |
40 |
<box label="neb:$masterBoxLabel" |
<box label="neb:$masterBoxLabel" |
41 |
x="0" y="0" height="5" width="84"> |
x="0" y="0" height="5" width="84"> |
42 |
<block name="neb:$masterBlock" datasource="neb:$masterDatasource"> |
<block name="neb:$masterBlock" datasource="neb:$masterDatasource"> |
43 |
<neb:Block>my $x = 1; foreach (@$fields) {</neb:Block> |
<neb:Block>my $x = 1; foreach (@$fields) {</neb:Block> |
44 |
<label text="neb:$_->{label}" x="neb:$x" y="1" /> |
<label text="neb:$_->{label}" x="neb:$x" y="1" /> |
46 |
<neb:Block>$x+=$_->{width};}</neb:Block> |
<neb:Block>$x+=$_->{width};}</neb:Block> |
47 |
</block> |
</block> |
48 |
</box> |
</box> |
49 |
<box label="Direcciones" |
<box label="neb:$detailBlockLabel" |
50 |
x="0" y="5" height="15" width="84"> |
x="0" y="5" height="15" width="84"> |
51 |
<block name="addressBlock" datasource="addressDataSource"> |
<block name="addressBlock" datasource="addressDataSource"> |
52 |
<label text="tipo" x="1" y="1"/> |
<label text="tipo" x="1" y="1"/> |
71 |
<button x="22" y="2" trigger="callAddressTypeTrigger" width="7" label="Buscar" |
<button x="22" y="2" trigger="callAddressTypeTrigger" width="7" label="Buscar" |
72 |
name="addressTypeBtn" height="8"/> |
name="addressTypeBtn" height="8"/> |
73 |
</block> |
</block> |
|
|
|
|
<block name="addressTypeResultBlock" datasource="addressTypeResultDataSource"> |
|
|
<entry name="addressTypeResultIdEntry" field="_address_type_data._table" |
|
|
x="75" y="4" width="2" hidden=""/> |
|
|
<entry name="addressTypeResultNameEntry" field="_address_type_data.name" |
|
|
x="78" y="4" width="20" hidden=""/> |
|
|
</block> |
|
74 |
</box> |
</box> |
75 |
</page> |
</page> |
76 |
|
<!-- /Componente de DIRECCIONES --> |