Another question:
In relazione alla specifica "IN" sql ci va qualche parentesi ? , perchè così mi
va in errore di sintassi SQL
con "=" funziona
pane.plainTableHandler(table='fatt.fattura',nodeId=';fattureClientiSelezionati',
condition='$cliente_id IN:cl_pkeys',
condition_cl_pkeys='^main.clienti_pkeys')
Il giorno 19 ott 2016, alle ore 12:21, gianpiero.fontana@xxxxxxxx ha scritto:
Altra domanda:
e se invece di usare gli "id" volessi usare un altro campo key , per esempio
il codice del cliente (codice)
Grazie
----Messaggio originale----
Da: giovanni.porcari@xxxxxxxxx
Data: 18-ott-2016 14.55
A: "genropy"<genropy@xxxxxxxxxxxxx>
Ogg: [genropy] Re: Implementare la view standard
Il giorno 18 ott 2016, alle ore 12:05, gianpiero.fontana@xxxxxxxx ha
scritto:
Buongiorno,
Avrei bisogno di mettere sotto la lista iniziale standard (costruita con un
table handler) un'altra lista e bloccare a metà la lista di default
(l'esigenza è fare con un click la selezione del record e sotto
visualizzare un'altra griglia con altre informazioni legate al cliente).
La richiesta riguarda la possibilità di dividere il container standard
fornito dal tablehandler (.... class View(BaseComponent):
Grazie
Ciao
per fare quello che desideri ti suggerisco di creare una pagina nelle
webpages invece
di utilizzare la pagina standard sys/thpage.
Quindi nel tuo package creerai in webpages una pagina 'dettaglio_cliente.py'
e nel menù metterai una riga che dica
xxx.webpage('Dettaglio Cliente', path='dettaglio_cliente')
Il testo della pagina è questo :
—————————========================--------------
# -*- coding: UTF-8 -*-
from gnr.core.gnrdecorator import public_method
class GnrCustomWebPage(object):
py_requires='public:Public,th/th:TableHandler'
#importo public che mi fornisce una cornice standard per le pagine
applicativa e tablehandler
def main(self,root,**kwargs):
framebc =
root.rootBorderContainer(datapath='main',title='!![it]Gestione Clienti')
self.clientiPane(framebc.contentPane(region='top',height='50%',splitter=True))
self.fatturePane(framebc.contentPane(region='center'))
def clientiPane(self,pane):
pane.dialogTableHandler(table='fatt.cliente',virtualStore=True,extendedQuery=True,
grid_selectedPkeys='main.clienti_pkeys')
def fatturePane(self,pane):
pane.plainTableHandler(table='fatt.fattura',nodeId='fattureClientiSelezionati',
condition='$cliente_id IN :cl_pkeys',
condition_cl_pkeys='^main.clienti_pkeys')
—————————========================———————
Noterai che in pratica viene fatto un borderContainer nel cui Top si mette
un dialogTableHandler
sui clienti e nel center un plainTableHandler sulle fatture.
Noterai anche che nel tableHander dei clienti c'è un attributo
'grid_selectedPkeys='main.clienti_pkeys'
che in fa in modo che al path main.clienti_pkeys venga di volta in volta
messa una stringa con gli id
delle righe correntemente selezionate.
Nel plainTableHandler delle fatture c'è invece una condition='$cliente_id IN
:cl_pkeys',
e condition_cl_pkeys='^main.clienti_pkeys' in modo tale che ogni volta che
cambiano le righe selezionate
nella grid dei clienti si aggiorni la grid delle fatture.
Se hai dubbi chiedi pure
G