DEFQUERYGRID
Consente di definire il controllo griglia da query all'interno di una videata.
La fonte dati è una query definita da codice e passata alla griglia tramite il parametro IDQUERY[].
Dalla query di riferimento vengono derivate tutte le definizioni delle colonne ed il numero di righe da visualizzare.
La definizione delle colonne può essere ulteriormente specializzata attraverso il parametro COLLEZIONECOLONNE, contenente una collezione di BC_VID_QUERY_GRID_COL.
I suoi metodi, richiamabili utilizzando il nome della griglia, sono chiamati nella callback specificata nel parametro ONLOAD[] della '@DEFVID per le impostazioni della prima visualizzazione oppure in una qualsiasi azione per modificare le impostazioni a runtime.
Parametri
| Parametro | Definizione | I/O | Versione traduttore | SMP | |
|---|---|---|---|---|---|
| NOME | Intero | ||||
| RET | |||||
| POS | |||||
| DIM | |||||
| ID | Stringa | ||||
| IDQUERY | Variabile | ||||
| QUERYOBJECT | Classe BCQUERY | 32.1 | |||
| COLLEZIONECOLONNE | Collezione di classi | ||||
| TOOLBAR | |||||
| INRIGA | Azione | ||||
| AZIONECLICK | Azione | ||||
| AZIONEMOUSEOVER | Azione | 30.5 | |||
| FINECARICAMENTO | Azione | 31.3 | |||
| AZIONESTATONODO | Azione | 31.6 | |||
| IDMENU | Stringa | ||||
| CARICADATI | Booleano | 32.0 | |||
| DRAG | |||||
| DROP | |||||
| RAGPREDEFINITO | Stringa | 31.4 | |||
| MULTISELEZIONE | |||||
| GRID | |||||
| STACK | |||||
| EXPANDER | |||||
| DOCK | |||||
| PERSONALIZZABILE | Intero | ||||
| LINKTO | |||||
| AZIONEINVIO | |||||
| BLOCCALOOKUP | Booleano |
RET
Consente di definire le coordinate della cella del reticolo da associare al controllo, allo scopo di gestire gli spostamenti sulla videata.
POS
Consente di definire la posizione del controllo rispetto al contenitore.
DIM
Dimensione del controllo.
Consente di indicare l'altezza e la larghezza. Per entrambi è possibile specificare l'unità di misura.
DIM[Altezza [UnitàMisura], Larghezza [UnitàMisura]]
L'unità di misura può essere: 'C' per il posizionamento a caratteri e 'P' per il posizionamento in pixel. L'indicazione è opzionale, se omesso si assume 'C' come default.
ID
Consente di definire l'identificativo univoco del controllo.
Viene utilizzato dall'ambiente per gestire le personalizzazioni effettuate durante l'esecuzione del programma.
IDQUERY
Consente di definire il legame tra la griglia e la query precedentemente definita.
QUERYOBJECT
Consente di definire l'oggetto query associato.
COLLEZIONECOLONNE
Consente di definire le colonne della griglia, specializzandole rispetto alla query di riferimento.
TOOLBAR
Consente di indicare l'identificativo della toolbar di videata, definita precedentemente tramite la specifica '@DEFTOOLBAR.
Di default non è presente ma questo parametro ne abilita la visualizzazione.
INRIGA
Consente di definire la callback richiamata in ingresso riga.
All'interno non è possibile utilizzare le istruzioni 'GOTO', mentre è consentito inserire una o più operazioni semplici (assegnamenti) utilizzando il carattere ':' come separatore fra le istruzioni.
AZIONECLICK
Consente di definire la callback richiamata quando viene eseguito un click sul alcune celle specifiche.
AZIONEMOUSEOVER
Consente di definire la callback richiamata quando viene eseguito un click su alcune celle specifiche di tipo mouseover.
La callback corrisponderà all'azione eseguita al click sul testo della cella (evidenziato al passaggio del mouse).
Se la cella è vuota, il mouseover viene annullato automaticamente.
FINECARICAMENTO
Consente di definire la Callback richiamata al termine del caricamento dei dati.
AZIONESTATONODO
Consente di definire la callback richiamata quando un nodo cambia stato (viene espanso o compresso).
IDMENU
Consente di definire l'identificativo univoco del menù contestuale da associare alla griglia.
Il menù verrà visualizzato solo se le celle della riga non dispongono di un menù proprio.
CARICADATI
Consente di indicare se i dati devono essere caricati immediatamente oppure in seguito, durante l'esecuzione del programma.
| Valore | Descrizione |
|---|---|
| 0 | I dati vengono caricati in seguito, durante l'esecuzione del programma |
| 1 | I dati vengono caricati immediatamente |
DRAG
Consente di definire la callback richiamata quando una riga della griglia viene trascinata.
DROP
Consente di definire la callback richiamata quando una riga della griglia viene rilasciato a seguito dell'inizio di un trascinamento.
RAGPREDEFINITO
Consente di definire il raggruppamento iniziale della griglia
MULTISELEZIONE
Consente di definire le callback richiamate quando si effettua la selezione multipla di una riga (parametro RIGA) o di tutte le righe contemporaneamente (parametro TUTTE).
GRID
Consente di definire l'attached property riferita ad un pannello grid.
STACK
Consente di definire l'attached property riferita ad un pannello stack.
EXPANDER
Consente di definire l'attached property riferita ad un pannello expander.
DOCK
Consente di definire l'attached property riferita ad un pannello expander.
PERSONALIZZABILE
Consente di definire se il controllo grafico è personalizzabile dall'utente in fase di runtime.
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
0 | No |
1 | Si |
LINKTO
Consente di definire un legame tra due controlli esistenti all'interno della stessa videata.
AZIONEINVIO
Consente di definire l'identificativo del controllo dal quale prelevare l'azione da eseguire alla pressione del tasto INVIO.
L'utilizzo del parametro implica l'utilizzo del parametro ID
BLOCCALOOKUP
Consente di definire se bloccare la definizione delle colonne di lookup personalizzate in presenza di colonne dinamiche.
Questo parametro è stato sviluppato perchè graficamente alcune colonne dinamiche possono essere mostrate in un ordine errato qualora siano presenti una o più colonne personalizzate di lookup.
Metodi
| Metodo | Descrizione | SMP |
|---|---|---|
| AggiungiRiga | Aggiungi riga in griglia griglia | |
| AggiungiRigheDaQuery | Aggiungi riga in griglia direttamente dalla query | |
| Bloccafiltri | Impedisce l'applicazione dei filtri manuali dei record da parte dell'utente | |
| BloccaOrdinamentoDati | Blocco ordinamento dei dati della griglia | |
| BloccaRaggruppamenti | Impedisce il raggruppamento manuale dei record da parte dell'utente | |
| CaricaDati | Indica se i dati debbano essere caricati fin da subito | |
| CaricaValoriIdentificazione | Carica una collezione contenente i valori identificativi (parametro IDENTIFICAZIONE) delle righe | |
| ComprimiTuttiGruppi | Comprime/espande tutti i gruppi della griglia | |
| ComprimiTuttiNodi | Comprime/espande tutti i nodi della griglia alberata | |
| EliminaRiga | Modifica valori di griglia | |
| GetColonnaCorrente | Restituisce la colonna con il fuoco | |
| GetNumeroRighe | Restituisce il numero di righe visibili sulla griglia | |
| GetNumeroRigheSelezionate | Restituisce il numero di righe visibili sulla griglia | |
| GetRigaCorrente | Restituisce la riga con il fuoco | |
| GetValore | Recupera i valori di un singolo campo del record della griglia | |
| GetValori | Recupera i valori di un record della griglia | |
| GetValoriDaLista | Recupera i valori di un record della griglia | |
| GetValoriIdentificazione | Restituisce una stringa contenente l'elenco dei valori identificativi (campo Identificazione della colonna) delle righe selezionate | |
| GetValoriRigheSel | Recupera i valori di un record selezionato della griglia | |
| GetValoriRigheSelDaLista | Recupera i valori di un record selezionato della griglia | |
| ModificaDaQuery | Modifica riga in griglia direttamente dalla query | |
| MostraRigaFiltri | Mostra/Nasconde la riga dei filtri | |
| Reload | Ricarica i dati della griglia tramite la query | |
| ResetSelezioneRighe | Rimuove la selezione dai record della griglia | |
| Ridefinizione | Ridefinizione totale della griglia: colonne + dati | |
| SetMultiselezione | Abilitazione/Disabilitazione multiselezione | |
| SetNoRipetizione | Imposta una condizione per calcolare il posizionamento del cursore sulla griglia | |
| SetOrdinamento | Imposta un ordinamento sulla griglia. | |
| SetPosizionamento | Imposta una condizione per calcolare il posizionamento del cursore sulla griglia | |
| SetRaggruppamentoComposto | Imposta un raggruppamento composto sulla griglia. Indicare gli identificativi di colonne separati da ',' | |
| SetRaggruppamentoRighe | Imposta un raggruppamento sulla griglia. Indicare gli identificativi di colonne separati da ',' | |
| SetStampa | Permette di abilitare (1 - default) o disabilitare (0) la stampa della griglia | |
| SetStampaAdattaPagina | Imposta se nella stampa la griglia deve essere adattata alla pagina | |
| SetStampaSottotitolo | Imposta il sottotitolo della stampa di pagina | |
| SetStampaTitolo | Imposta il sottotitolo della stampa di pagina | |
| SetStatoVisibilita | Imposta una condizione per calcolare il posizionamento del cursore sulla griglia | |
| SetStileRiga | Imposta una condizione per calcolare lo stile da applicare ad ogni riga | |
| SetTitolo | Imposta una condizione per calcolare il posizionamento del cursore sulla griglia | |
| SetValori | Modifica valori di griglia | |
| Stampa | Permette di effettuare la stampa della griglia direttamente da codice |
Esempi
Definizione semplice
'@DEFVID DIM[35,140] NOME[Videata] ID["IDVIDEATA"] TIT["Titolo Videata"]
'@DEFGRIDPANEL NOME[GridPanel] ID["GridPanel"] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[34] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[139] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]]
'@DEFQUERYGRID NOME[QRYGRID] _
QUERYOBJECT[QueryObject] _
RET[1,1] POS[1,1] DIM[1,1] _
GRID[COL[2] RIGA[2] COLDIN[1] RIGADIN[1]]
'@ENDGRIDPANEL NOME[GridPanel]
'@RUNVID
...
'@SRP Load()
DefinizioneQuery()
Return
...
'@SRP DefinizioneQuery()
QueryObject.Definizione()
Return
Definizione con colonne
'@DEFVID DIM[35,140] NOME[VideataConColonne] ID["IDVIDEATA"] TIT["Titolo Videata"]
'@DEFGRIDPANEL NOME[GridPanelGrigliaConColonne] ID["GridPanelGrigliaConColonne"] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[34] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[139] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]]
'@DEFQUERYGRID NOME[QRYGRIDCOLONNE] _
QUERYOBJECT[QueryObject] _
COLLEZIONECOLONNE[CollezioneColonne] _
RET[1,1] POS[1,1] DIM[1,1] _
GRID[COL[2] RIGA[2] COLDIN[1] RIGADIN[1]]
'@ENDGRIDPANEL NOME[GridPanelGrigliaConColonne]
'@RUNVID
...
'@SRP LoadConColonne()
DefinizioneQueryConColonne()
GeneraColonne()
GeneraColonneSpeciali()
Return
...
'@SRP DefinizioneQueryConColonne()
QryObj.Definizione()
Return
...
'@SRP GeneraColonne()
' Metodo per modificare posizione, dimensione e titolo delle colonne caricate da query
Colonna.Clear()
Colonna.Id = "CodFamiglia"
Colonna.Titolo = "Codice Famiglia"
Colonna.Posizione = 1
Colonna.Dimensione = 10
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Colonna.Clear()
Colonna.Id = "DesFamiglia"
Colonna.Titolo = "Descrizione Famiglia"
Colonna.Posizione = 3
Colonna.Dimensione = 20
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Colonna.Clear()
Colonna.Id = "CodArt"
Colonna.Titolo = "Codice Articolo"
Colonna.Posizione = 2
Colonna.Dimensione = 10
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Colonna.Clear()
Colonna.Id = "DesArt"
Colonna.Titolo = "Descrizione Articolo"
Colonna.Posizione = 4
Colonna.Dimensione = 20
Colonna.LarghezzaDinamica = 1
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Colonna.Clear()
Colonna.Id = "StatoArt"
Colonna.Titolo = "Stato Articolo"
Colonna.Posizione = 5
Colonna.Dimensione = 15
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Return
...
'@SRP GeneraColonneSpeciali()
' Colonna con stile
Colonna.Clear()
Colonna.Id = "CodArt"
Colonna.Posizione = 2
Colonna.Dimensione = 10
Colonna.Stile = "CHOOSE(VAL(CodArt)<10, 'ROSSO', VAL(CodArt)>=10 AND VAL(CodArt)<20, 'VERDE', 'GIALLO')"
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
' Colonna con funzione di riga totale
' FunzioneGruppo può assumere anche i valori AVG (Media) e COUNT (Conteggio righe)
Colonna.Clear()
Colonna.Id = "MagQuantita"
Colonna.Titolo = "Quantita Magazzino"
Colonna.FunzioneGruppo = "SUM"
Colonna.Posizione = 5
Colonna.Dimensione = 15
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
' Colonna calcolata
DIM collStringa[CLASSE[BC_STRING] COLLEZIONE]
DIM valore[STRING] = ""
Colonna.Clear()
Colonna.Id = "PrezzoScontato"
Colonna.Titolo = "Prezzo Scontato"
Colonna.Posizione = 5
Colonna.Formato = "Numerico"
collStringa.Clear()
valore = "Prezzo"
collStringa.AGGIUNGI(valore)
valore = "Sconto"
collStringa.AGGIUNGI(valore)
Colonna.SetColonnaCalcolata("IF(Sconto>0, Prezzo - Prezzo*Sconto/100, Prezzo)", collStringa [INOUT])
Colonna.Dimensione = 15
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
' Colonna con filtri
' Definizione variabili per filtro su colonna
DIM valoreFiltro[CLASSE[BC_DA_VALUE]]
DIM valoriFiltro[CLASSE[BC_DA_VALUE] COLLEZIONE]
valoreFiltro.Clear()
valoreFiltro.SETSTRING("002")
valoriFiltro.Aggiungivalore(valoreFiltro [INOUT])
Colonna.Clear()
Colonna.Id = "CodArt"
Colonna.Titolo = " Codice Articolo"
Colonna.Posizione = 1
Colonna.Dimensione = 20
Colonna.SetFiltro(BCTD_GRID_CRITERIA.In [IN], valoriFiltro [INOUT])
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Return
Definizione con celle contenenti immagini
'@DEFVID DIM[35,140] NOME[VideataConColonneImmagini] ID["IDVIDEATA"] TIT["Titolo Videata"]
'@DEFGRIDPANEL NOME[GridPanelConColonneImmagini] ID["GridPanelConColonneImmagini"] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[34] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[139] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]]
'@DEFQUERYGRID NOME[QRYGRIDCOLONNEIMG] _
QUERYOBJECT[QueryObject] _
COLLEZIONECOLONNE[CollezioneColonne] _
AZIONECLICK[GestioneImmagine()] _
RET[1,1] POS[1,1] DIM[1,1] _
GRID[COL[2] RIGA[2] COLDIN[1] RIGADIN[1]]
'@ENDGRIDPANEL NOME[GridPanelConColonneImmagini]
'@RUNVID
...
'@SRP LoadColonneImmagini()
GeneraColonneImmagini()
Return
...
'@SRP GeneraColonneImmagini()
GeneraCollezioneImmagini()
Colonna.Clear()
Colonna.Id = "StatoArt"
Colonna.Titolo = "Stato Articolo"
Colonna.CellaImmagine = collezioneImmagini
Colonna.Posizione = 4
Colonna.Dimensione = 15
Colonna.AbilitaAzione = 1
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Return
...
'@SRP GeneraCollezioneImmagini()
' Definizione cella di tipo immagine
DIM immagine[CLASSE[BC_VID_QUERY_GRID_COL_IMAGE]]
' Definizione valori
DIM val[CLASSE[BC_DA_VALUE]]
' Caricamento collezione immagini per lo Stato articolo
immagine.Clear()
val.Clear()
immagine.Immagine = "STATO1.PNG"
immagine.Opzione = "Annullato"
val.SETNUMBER(1)
immagine.Val = val
collezioneImmagini.Aggiungi(immagine [INOUT])
immagine.Clear()
val.Clear()
immagine.Immagine = "STATO2.PNG"
immagine.Opzione = "Sospeso"
val.SETNUMBER(2)
immagine.Val = val
collezioneImmagini.Aggiungi(immagine [INOUT])
Return
...
' Gestione immagine premuta
'@SRP GestioneImmagine()
DIM valoriRiga[CLASSE[BC_DA_VALUE_OPTION] COLLEZIONE]
DIM valoreRiga[CLASSE[BC_DA_VALUE_OPTION]]
valoriRiga.Clear()
valoreRiga.Clear()
valoreRiga.OPTION = "CodArt"
valoriRiga.AGGIUNGI(valoreRiga [INOUT])
valoreRiga.OPTION = "StatoArt"
valoriRiga.AGGIUNGI(valoreRiga [INOUT])
QRYGRIDCOLONNEIMG.GetValori(QRYGRIDCOLONNEIMG.GetRigaCorrente(), valoriRiga)
' Definizione variabili
DIM codiceArticolo[STRING]
DIM stato[INT]
codiceArticolo = valoriRiga.Item(1).VALUE.GETBCSTRING()
stato = valoriRiga.Item(2).VALUE.GETNUMBER()
BLD_GR_QUERY.Immagini(codiceArticolo, QRYGRIDCOLONNEIMG.GetColonnaCorrente(), QRYGRIDCOLONNEIMG.GetRigaCorrente(), stato)
Return
Definizione con colonne di LookUp
'@DEFVID DIM[35,140] NOME[VideataConLookUp] ID["IDVIDEATA"] TIT["Titolo Videata"]
'@DEFGRIDPANEL NOME[GridPanelConLookUp] ID["GridPanel"] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[34] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[139] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]]
'@DEFQUERYGRID NOME[QRYGRIDLOOKUP] _
QUERYOBJECT[QueryObject] _
RET[1,1] POS[1,1] DIM[1,1] _
GRID[COL[2] RIGA[2] COLDIN[1] RIGADIN[1]]
'@ENDGRIDPANEL NOME[GridPanelConLookUp]
'@RUNVID
...
'@SRP LoadConLookUp()
GeneraColonneLookUp()
Return
...
'@SRP GeneraColonneLookUp()
' Variabili per LookUp
DIM collStringa[CLASSE[BC_STRING] COLLEZIONE]
DIM valore[STRING] = ""
QueryLookUpFamiglia()
' LookUp su un tipo dato stringa
Colonna.Clear()
Colonna.Id = "LookupStringaFamiglia"
Colonna.Titolo = "Descrizione Famiglia"
Colonna.Formato = "Stringa"
collStringa.Clear()
valore = "CodFamiglia"
Colonna.Posizione = 7
Colonna.Dimensione = 20
collStringa.AGGIUNGI(valore)
Colonna.SetQueryLookup(IdQueryLookupFamiglia, "DesFamiglia", collStringa [INOUT])
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Return
...
'@SRP QueryLookUpFamiglia()
QryObjLookupFamiglia.Definizione()
Return
Definizione con colonne di LookUp con QueryObject
'@DEFVID DIM[35,140] NOME[VideataConLookUpQueryObject] ID["IDVIDEATA"] TIT["Titolo Videata"]
'@DEFGRIDPANEL NOME[GridPanelConLookUpQueryObject] ID["GridPanel"] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[34] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[139] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]]
'@DEFQUERYGRID NOME[QRYGRIDLOOKUPQueryObject] _
QUERYOBJECT[QueryObject] _
RET[1,1] POS[1,1] DIM[1,1] _
GRID[COL[2] RIGA[2] COLDIN[1] RIGADIN[1]]
'@ENDGRIDPANEL NOME[GridPanelConLookUpQueryObject]
'@RUNVID
...
'@SRP LoadConLookUpQueryObject()
GeneraColonneLookUpQueryObject()
Return
...
'@SRP GeneraColonneLookUpQueryObject()
' Variabili per LookUp
DIM collStringa[CLASSE[BC_STRING] COLLEZIONE]
DIM valore[STRING] = ""
DIM valoreRitorno[CLASSE[BC_STRING]]
valoreRitorno.VAL="DesFamiglia"
QueryLookUpFamiglia()
' LookUp su un tipo dato stringa
Colonna.Clear()
Colonna.Id = "LookupStringaFamiglia"
Colonna.Titolo = "Descrizione Famiglia"
Colonna.Formato = "Stringa"
collStringa.Clear()
valore = "CodFamiglia"
Colonna.Posizione = 7
Colonna.Dimensione = 20
collStringa.AGGIUNGI(valore)
' Colonna.SetQueryObjectLookup(QryObjLookUpFamiglia, "DesFamiglia", collStringa [INOUT])
Colonna.SetQueryObjectLookup(QryObjLookUpFamiglia [INOUT], valoreRitorno[INOUT], collStringa[INOUT])
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Return
...
'@SRP QueryLookUpFamigliaQueryObject()
QryObjLookupFamiglia.Definizione()
Return
Definizione colonne con formato
'@DEFVID DIM[35,140] NOME[VideataConFormato] ID["IDVIDEATA"] TIT["Titolo Videata"]
'@DEFGRIDPANEL NOME[GridPanelConFormato] ID["GridPanel"] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[34] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[139] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]]
'@DEFQUERYGRID NOME[QRYGRIDFORMATO] _
QUERYOBJECT[QueryObject] _
RET[1,1] POS[1,1] DIM[1,1] _
GRID[COL[2] RIGA[2] COLDIN[1] RIGADIN[1]]
'@ENDGRIDPANEL NOME[GridPanelConFormato]
'@RUNVID
...
'@SRP LoadConFormato()
QueryConFormato()
' Definizione formato
'@DEFFORMAT FORMATO["Numerico"] TIPO[#NUMERICO] CIFRETOT[8] CIFREDEC[4]
'@DEFFORMAT FORMATO["Ora"] TIPO[#ORA]
GeneraColonneConFormato()
Return
...
'@SRP QueryConFormato()
QryObj.Definizione()
Return
...
'@SRP GeneraColonneConFormato()
Colonna.Clear()
Colonna.Id = "Prezzo"
Colonna.Titolo = "Prezzo"
Colonna.Formato = "Numerico"
Colonna.Posizione = 3
Colonna.Dimensione = 10
collezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Colonna.Clear()
Colonna.Id = "VariazioneOra"
Colonna.Titolo = "Variazione Ora"
Colonna.Formato = "Ora"
Colonna.Posizione = 5
Colonna.Dimensione = 15
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Return
Griglia alberata
'@DEFVID DIM[30, 100] NOME[Videaata] ID["IDVIDEATA"] RIBBON[IDRIBBON["RIBBONBAR"]]
'@DEFRIBBONBAR NOME[RibbonBar] _
IDRIBBONBAR["RIBBONBAR"] _
CATEGORIA[ID["CATEGORIA"] _
GRUPPO[ID["GRUPPO"] _
BOTTONE[ID["SYS_EXIT"] AZIONE[Exit()]] _
BOTTONE[ID["SYS_EXIT_ESC"] AZIONE[Exit()] NASCOSTO[1]] _
BOTTONE[ID["BTN_GROUP"] AZIONE[SetGroup()]] _
] _
]
'@DEFGRIDPANEL NOME[GridPanelTreeGrid] ID["GridPanel"] TIT["Griglia da query alberata"] _
LAYOUTTIT[STILE[#INTESTAZIONE_VIDEATA]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[98] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[28] LAYOUT[#DINAMICO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]]
'@DEFQUERYGRID NOME[QRYGRIDTREEGRID] ID["GUI_GRIDAQG_TREE"] RET[1,1] POS[1,1] DIM[1,1] _
QUERYOBJECT[QueryObject] COLLEZIONECOLONNE[CollezioneColonne] _
GRID[COL[2] RIGA[2] COLDIN[1] RIGADIN[1]]
'@ENDGRIDPANEL NOME[GridPanelTreeGrid]
'@RUNVID
...
'@SRP LoadTreeGrid()
QueryTreeGrid()
GeneraColonneTreeGrid()
Return
...
'@SRP QueryTreeGrid()
QryObj.Definizione()
Return
...
'@SRP GeneraColonneTreeGrid()
CollezioneColonne.Clear()
Colonna.Clear()
Colonna.Id = "CodArt"
Colonna.Titolo = "Codice"
Colonna.Posizione = 1
Colonna.Dimensione = 20
Colonna.AbilitaCellaAlberata=#True
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Colonna.Clear()
Colonna.Id = "DesArt"
Colonna.Titolo = "Descrizione"
Colonna.Posizione = 2
Colonna.Dimensione = 20
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Colonna.Clear()
Colonna.Id = "ZTREEGRIDLEVEL"
Colonna.Titolo = ""
Colonna.Posizione = 4
Colonna.Dimensione = 20
Colonna.Nascosta=#True
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Colonna.Clear()
Colonna.Id = "ZTREEGRIDSTATE"
Colonna.Titolo = ""
Colonna.Posizione = 5
Colonna.Dimensione = 20
Colonna.Nascosta=#True
CollezioneColonne.AGGIUNGICOLONNA(Colonna [INOUT])
Return
...
'@SRP Exit()
'@EXITWINDOW
Return
...
'@SRP SetGroup()
QRYGRID.SetRaggruppamentoRighe("")
Return