[genropy] Re: Layout di pagina

  • From: Silvano Valleferro <s.valleferro@xxxxxxxxxxx>
  • To: genropy <genropy@xxxxxxxxxxxxx>
  • Date: Wed, 15 Nov 2017 14:58:00 +0100 (CET)


----- 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

Other related posts: