----- Il 15-nov-17, alle 14:47, Francesco Porcari francesco.porcari@xxxxxxxxxxx
ha scritto:
|> Il giorno 15 nov 2017, alle ore 14:42, Silvano Valleferro
|> <s.valleferro@xxxxxxxxxxx> ha scritto:
|>
|>
|> ----- Il 14-nov-17, alle 22:55, Francesco Porcari
francesco.porcari@xxxxxxxxxxx
|> ha scritto:
|>
|> || Il giorno 14 nov 2017, alle ore 22:32, Silvano Valleferro <
|> || s.valleferro@xxxxxxxxxxx > ha scritto:
|>
|> || La mia intenzione è quella di dividere la pagina in verticale fra left e
center
|> || al 50%
|> || La parte verticale di sx, la left, suddividerla in 3 zone che contengono
diverse
|> || visualizzazioni.
|>
|> || Ho creato le prime due e tutto ok, mentre la terza, il bottom del left,
non mi
|> || funziona, dovrei vederla in giallo invece non visualizza nulla
|>
|> || class Form(BaseComponent):
|>
|> || def th_form(self, form):
|> || bc = form.center.borderContainer()
|> ||
self.opportunityTestata(bc.borderContainer(region='left',datapath='.record',width='50%'))
|>
|> || def opportunityTestata(self,bc):
|> || # primo pane
|> || bc.contentPane(region='top',
|> || height='30%').linkerBox('idclifor',margin='2px',openIfEmpty=True,
|> || validate_notnull=True,
|> || auxColumns='$idclifor,$ragionesociale,$indirizzo,$localita,$idprovincia',
|> || condition='$idstato < 10',
|> || newRecordOnly=True,formResource='Form',
|> || dialog_height='30%',dialog_width='100px', limit=30)
|> || # secondo pane
|> || sx_center = bc.contentPane(region='center', height='25%'
|> || ,background_color='green’)
|>
|> | questo punto è sicuramente sbagliato.
|> | In breve la logica del bordercontainer è questa: a i figli di region left o
|> | right puoi dare solo la larghezza, a i figli top e bottom puoi dare solo
|> | l’altezza e
|> | all’ultimo figlio, il center non dai ne altezza ne larghezza perché si
espande
|> | esattamente di tutto lo spazio che gli rimane. (infatti logicamente è
quello
|> | che andrebbe messo per ultimo)
|>
|> | comunque la documentazione con tutorial annesso la trovi qui:
|> | http://genropy.org/docu/viewer/tutor/lessons/page/containers
|>
|> || fb = sx_center.formbuilder(cols=1, border_spacing='4px')
|> || fb.field('datacreazione')
|> || fb.field('oracreazione')
|> || fb.field('idoperatore')
|> || fb.field('idgruppo')
|> || fb.field('idattivita', width='35em')
|>
|> || # terzo pane
|> || sx_bottom = bc.contentPane(region='bottom', background_color='yellow’)
|>
|> | // qui manca l’altezza
|>
|> | NB:
|> | alle region top e bottom puoi evitare di mettere l’altezza se e solo se
|> | l’elemento terminale è un bordercontainer i cui figli (ad esempio un
|> | formbuilder di tre righe) hanno dimensione
|> | fissata. In quel caso la regione si gonfia della dimensione giusta e il
center
|> | riesce a calcolare di quanto deve espandersi.
|>
|> || Per quanto ho capito, la opportunityTestata è un borderContainer della
parte
|> || left della pagina ed è OK
|> || Questa la suddivido in 3 contentPane, uno top e funziona, uno center e
funziona,
|> || il terzo bottom invece non funziona.
|> || Cos'è che sto sbagliando per far funzionare anche il terzo pane ?
|> || In quest'ultimo dovrei visualizzare i dettagli delle opportunity con un
|> || inlineTableHandler
|>
|> || Grazie
|>
|> || Silvano Valleferro
|>
|> | Saluti
|> | Francesco
|>
|> Grazie Francesco,
|> era in effetti un problema della definizione dell'altezza mancante.
|>
|> Ho fatto un passo avanti ma adesso mi genera un problema nell'aprire la
pagina
|> contenente l'inlineTableHandler
|> Praticamente ho completato la pagina precedente con:
|>
|> sx_b = bc.contentPane(region='bottom', height='50%',
background_color='yellow')
|>
sx_b.inlineTableHandler(relation='@opportunity_righe',viewResource='ViewFromOpportunity’)
|
| Probabilmente c’è un problema di datapath all’interno della tua form.
| Se mi dai un po’ più di codice ti posso identificare meglio il problema.
|
| Saluti
Il codice è questo:
class Form(BaseComponent):
py_requires = "gnrcomponents/attachmanager/attachmanager:AttachManager"
def th_form(self, form):
bc = form.center.borderContainer()
self.opportunityTestata(bc.borderContainer(region='left',datapath='.record',width='50%'))
def opportunityTestata(self,bc):
bc.contentPane(region='top',
height='30%').linkerBox('idclifor',margin='2px',openIfEmpty=True,
validate_notnull=True,
auxColumns='$idclifor,$ragionesociale,$indirizzo,$localita,$idprovincia',
condition='$idstato < 10',
newRecordOnly=True,formResource='Form',
dialog_height='30%',dialog_width='100px', limit=30)
sx_center = bc.contentPane(region='center', background_color='green')
fb = sx_center.formbuilder(cols=1, border_spacing='4px')
fb.field('datacreazione')
fb.field('oracreazione')
fb.field('idoperatore')
fb.field('idgruppo')
fb.field('idattivita', width='35em')
sx_b = bc.contentPane(region='bottom', height='50%',
background_color='yellow')
sx_b.inlineTableHandler(relation='@opportunity_righe',viewResource='ViewFromOpportunity')
def th_options(self):
return dict(dialog_height='400px', dialog_width='600px')
Ciao
Silvano