<div dir="ltr">Grazie Giovanni,<br><br>per il mini howto di genropy<br>in effetti se come hai fatto tu le applicazioni "hello world"<br>cominciassimo a scriverle con questi piccoli esempi di vita quotidiana, <br>
assumerebbero un grande valore aggiunto<br>S<br><br>
<br><br><div class="gmail_quote">2010/4/24 Giovanni Porcari <span dir="ltr"><<a href="mailto:giovanni.porcari@softwell.it">giovanni.porcari@softwell.it</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Il giorno 24/apr/2010, alle ore 10.35, mauro ha scritto:<br>
<div class="im"><br>
> Il giorno sab, 24/04/2010 alle 04.25 +0200, Giovanni Porcari ha scritto:<br>
>> Il giorno 23/apr/2010, alle ore 21.52, mauro ha scritto:<br>
><br>
>> Caro Mauro<br>
>> come soluzione provvisoria un piccolo aiuto<br>
>> per dimostrarti che i pythonisti non sono<br>
>> insensibili... ;)<br>
>><br>
>> <a href="http://www.genropy.net/codice" target="_blank">http://www.genropy.net/codice</a><br>
><br>
> Giovanni, e' favoloso!!!<br>
><br>
> Ed e' favolosa l'idea che lo diffondero' subito ai miei colleghi in MIR,<br>
> e, ovviamente, soprattutto dovra' essere portato ad esempio di come si<br>
> fanno i programmi seri per aiutare gli utilizzatori a gestire i dati in<br>
> maniera rapida ed efficiente.<br>
><br>
> Ma, fammi capire, l'hai fatto tu? Almeno mi sembra di intuire...ed e' in<br>
> python?<br>
><br>
> Grazie, corro a diffondere :-)<br>
><br>
<br>
<br>
</div>Sono felice che ti sia piaciuto :)<br>
<br>
Ti confermo che è fatto in python, che come usa come<br>
db postgresql. Il framework si chiama Genropy ed<br>
è il frutto del nostro duro lavoro degli ultimi 4 anni.<br>
Il db è stato caricato dai dati che cortesemente ha<br>
postato Simone e il codice che ho dovuto scrivere per ottenere<br>
il risultato che vedi è il seguente :<br>
<br>
<br>
Tabella diagnosi:<br>
----------------------------------------------------------<br>
class Table(object):<br>
def config_db(self, pkg):<br>
tbl = pkg.table('diagnosi',pkey='codice',name_long='!!Diagnosi',<br>
name_plural='!!Tabella',rowcaption='$descrizione')<br>
self.sysFields(tbl,id=False)<br>
tbl.column('codice',name_long='!!Codice')<br>
tbl.column('descrizione',name_long='!!Descrizione')<br>
----------------------------------------------------------<br>
<br>
Tabella procedura:<br>
----------------------------------------------------------<br>
class Table(object):<br>
def config_db(self, pkg):<br>
tbl = pkg.table('procedura',pkey='codice',name_long='!!Procedura',<br>
name_plural='!!Procedura',rowcaption='$descrizione')<br>
self.sysFields(tbl,id=False)<br>
tbl.column('codice',name_long='!!Codice')<br>
tbl.column('descrizione',name_long='!!Descrizione')<br>
----------------------------------------------------------<br>
<br>
<br>
Pagina web che gestisce le ricerche:<br>
----------------------------------------------------------<br>
<br>
class GnrCustomWebPage(object):<br>
def windowTitle(self):<br>
return 'Codici'<br>
<br>
def main(self, root, **kwargs):<br>
rect=root.div(_class='shadow_2 rounded_medium',border='1px solid green',<br>
color='#152A32',background_color='#fefff6',position='relative',<br>
margin_top='20px',margin_left='20px',width='50em',height='30ex')<br>
<br>
rect.div('Diagnosi e Procedure',text_align='center',margin='5px',font_size='1.7em')<br>
rect.div('Genropy',position='absolute',bottom='5px',left='10px',font_size='.8em')<br>
<br>
fb = rect.formbuilder(cols=1, border_spacing='8px',datapath='data',<br>
margin_top='20px',margin_left='20px')<br>
<br>
fb.dbSelect(dbtable='portal.diagnosi',columns='$codice,$descrizione',limit=30,<br>
auxColumns='$codice,$descrizione',value='^.codice_diagnosi',<br>
_class='gnrfield',lbl='!!Diagnosi',width='38em',hasDownArrow=True)<br>
<br>
fb.textbox(value='^.codice_diagnosi',lbl='!!Codice',readOnly=True)<br>
<br>
fb.dbSelect(dbtable='portal.procedura',columns='$codice,$descrizione',limit=30,<br>
auxColumns='$codice,$descrizione',value='^.codice_procedura',<br>
_class='gnrfield',lbl='!!Procedura',width='38em',hasDownArrow=True)<br>
<br>
fb.textbox(value='^.codice_procedura',lbl='!!Codice',readOnly=True)<br>
----------------------------------------------------------<br>
<br>
<br>
<br>
Tutto qui. La pappa pronta è nel framework e quindi non mi sono<br>
certo ammazzato di lavoro ;)<br>
<br>
<br>
Se sei interessato ad approfondire per tua curiosità personale fammelo<br>
sapere.<br>
<br>
<br>
Ciao<br>
<div><div></div><div class="h5"><br>
G<br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
</div></div></blockquote></div><br><div style="visibility: hidden; display: inline;" id="avg_ls_inline_popup"></div><style type="text/css">#avg_ls_inline_popup { position:absolute; z-index:9999; padding: 0px 0px; margin-left: 0px; margin-top: 0px; width: 240px; overflow: hidden; word-wrap: break-word; color: black; font-size: 10px; text-align: left; line-height: 13px;}</style></div>