gepal-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gepal-list] Distinta Base


From: Cristian Greggio
Subject: [Gepal-list] Distinta Base
Date: Tue, 17 Jan 2006 23:04:05 +0100

Dopo tanto anche in gepal abbiamo la distinta base.

Questo รจ il sorgente che ho inserito in viste

    def list_test_dist(self,d,e):
        a=e.attrib ## check also parameters like search or paging
        d._push()
        d.ui(type="listview")
        d._pop()
        
        d._push()
        d.data(type="table")
        #headers
        d._push()
        d.headers()
        # definisce le caselle che si devono vedere type deve essere str


        d._push()
        d.header(name="articolo_padre", title="Art. Padre", type="str")
        d._pop()

        d._push()
        d.header(name="articolo_figlio", title="Art. Figli", type="str")
        d._pop()

        d._push()
        d.header(name="qta_figlio", title="Quantita' Figlio",
type="str")
        d._pop()

        d._push()
        d.header(name="fase_lista_pz", title="Fase lista pezzi",
type="str")
        d._pop()

        d._push()
        d.header(name="descr_figlio_lspz", title="Descrizione Figlio",
type="str")
        d._pop()

        d._pop() #headers

        d._push()
        d.rows()

        # stabilisce il cursore nel db
        c=self.db.cursor()

        # inizializza il contatore e crea gli array per tenere i dati
ricevuti
        # dalle query
        cont=0
        cod_pad=[]
        cod_figl=[]
        qta_figl=[]
        tipo_figl=[]
        descr_figl=[]
        bole_figl=[]
        new_code=[]
        new_qta=[]
        fase_figl=[]
        new_code.append('V0001') # inserisce il codice d'esempio
nell'Array
        new_qta.append(2)        # inserisce la quantita' esp nell'Array
        
        # per ogni articolo in new_code[] viene creata una query che
legge
        # sulla lista_pezzi i codici figli del codice padre e se trova
un
        # componente di prodizione lo inserisce in new_code[] e a sua
volta
        # viene creata un'atra query (query ricorsive)
        for figlio in new_code:
                q = "select * from lista_pezzi, articoli where
codice=articolo_figlio and articolo_padre='"+ figlio +"'"
                c.execute(q)
                data = c.dictfetchall()
                
                # per ogni riga della query andra a inserire i valori
negli
                # appositi array
                for rows in data:
                        figli_qta=new_qta[cont]*rows['qta_figlio']
                        cod_pad.append(rows['articolo_padre'])
                        cod_figl.append(rows['articolo_figlio'])
                        qta_figl.append(figli_qta)
                        tipo_figl.append(rows['tipo'])
                        descr_figl.append(rows['descrizione'])
                        fase_figl.append(rows['fase_lista_pz'])
                        # nel caso siano codici di produzione andra a
inserire
                        # il codice e le quantita negli array
predisposti
                        if (rows['tipo'])=='pro':
                                bole_figl.append(1)
                                new_code.append(rows['articolo_figlio'])
                                new_qta.append(figli_qta)
                        else:
                            continue

                # aumenta il contatore di 1
                cont=cont+1


        # crea le righe con i dati che saranno visulazati nella vista
distinta
        # base nome_campo=valore_in_array ex: array[contatore]
        axz=0
        for new in cod_figl:
            d._push()

d.row(None,articolo_padre=cod_pad[axz] 
,articolo_figlio=cod_figl[axz],qta_figlio=qta_figl[axz],fase_lista_pz=fase_figl[axz],descr_figlio_lspz=descr_figl[axz])
            axz = axz+1
            d._pop()
        d._pop()

        d._pop()

Saluti

Altro che Perl
 _________________
# PYTHON THE BEST #
#_________________#
//////////////////





reply via email to

[Prev in Thread] Current Thread [Next in Thread]