Passa al contenuto principale

DEFQUERYGRID

30.4Desktop

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

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
NOMEInteroINObbligatorioDesktop
RETINObbligatorioDesktop
POSINObbligatorioDesktop
DIMINObbligatorioDesktop
IDStringaINDesktop
IDQUERYVariabileINDesktop
QUERYOBJECTClasse BCQUERY32.1Desktop
COLLEZIONECOLONNECollezione di classiDesktop
TOOLBARINDesktop
INRIGAAzioneINDesktop
AZIONECLICKAzioneINDesktop
AZIONEMOUSEOVERAzioneIN30.5Desktop
FINECARICAMENTOAzioneIN31.3Desktop
AZIONESTATONODOAzioneIN31.6Desktop
IDMENUStringaINDesktop
CARICADATIBooleanoIN32.0Desktop
DRAGINRipetibileDesktop
DROPINRipetibileDesktop
RAGPREDEFINITOStringaIN31.4Desktop
MULTISELEZIONEINDesktop
GRIDINDesktop
STACKINDesktop
EXPANDERINDesktop
DOCKINDesktop
PERSONALIZZABILEInteroINBinarioDesktop
LINKTOINDesktop
AZIONEINVIOINDesktop
BLOCCALOOKUPBooleanoINDesktop

NOME

InteroINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktop

Consente di definire il nome del controllo.

RET

INInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktop

Consente di definire le coordinate della cella del reticolo da associare al controllo, allo scopo di gestire gli spostamenti sulla videata.

POS

INInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktop

Consente di definire la posizione del controllo rispetto al contenitore.

DIM

INInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktop

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

note

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

StringaINInputValore non necessarioValore non necessarioDesktop

Consente di definire l'identificativo univoco del controllo.

note

Viene utilizzato dall'ambiente per gestire le personalizzazioni effettuate durante l'esecuzione del programma.

IDQUERY

VariabileINInputValore non necessarioValore non necessarioDesktop

Consente di definire il legame tra la griglia e la query precedentemente definita.

QUERYOBJECT

32.1Classe BCQUERYValore non necessarioValore non necessarioDesktop

Consente di definire l'oggetto query associato.

COLLEZIONECOLONNE

Collezione di classiValore non necessarioValore non necessarioDesktop

Consente di definire le colonne della griglia, specializzandole rispetto alla query di riferimento.

TOOLBAR

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

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

AzioneINInputValore non necessarioValore non necessarioDesktop
SottoParametri

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

AzioneINInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire la callback richiamata quando viene eseguito un click sul alcune celle specifiche.

AZIONEMOUSEOVER

30.5AzioneINInputValore non necessarioValore non necessarioDesktop
SottoParametri

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

31.3AzioneINInputValore non necessarioValore non necessarioDesktop

Consente di definire la Callback richiamata al termine del caricamento dei dati.

AZIONESTATONODO

31.6AzioneINInputValore non necessarioValore non necessarioDesktop

Consente di definire la callback richiamata quando un nodo cambia stato (viene espanso o compresso).

IDMENU

StringaINInputValore non necessarioValore non necessarioDesktop

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

32.0BooleanoINInputValore non necessarioValore non necessarioDesktop

Consente di indicare se i dati devono essere caricati immediatamente oppure in seguito, durante l'esecuzione del programma.

ValoreDescrizione
0I dati vengono caricati in seguito, durante l'esecuzione del programma
1I dati vengono caricati immediatamente

DRAG

INInputRipetibileRipetibileValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire la callback richiamata quando una riga della griglia viene trascinata.

DROP

INInputRipetibileRipetibileValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire la callback richiamata quando una riga della griglia viene rilasciato a seguito dell'inizio di un trascinamento.

RAGPREDEFINITO

31.4StringaINInputValore non necessarioValore non necessarioDesktop

Consente di definire il raggruppamento iniziale della griglia

MULTISELEZIONE

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

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

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire l'attached property riferita ad un pannello grid.

STACK

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire l'attached property riferita ad un pannello stack.

EXPANDER

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire l'attached property riferita ad un pannello expander.

DOCK

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire l'attached property riferita ad un pannello expander.

PERSONALIZZABILE

InteroINInputBinarioBinarioValore non necessarioValore non necessarioDesktop

Consente di definire se il controllo grafico è personalizzabile dall'utente in fase di runtime.

Parametro con valori ammessi, si possono utilizzare i seguenti valori:

ValoreDescrizione
0No
1Si

LINKTO

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire un legame tra due controlli esistenti all'interno della stessa videata.

AZIONEINVIO

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

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

BooleanoINInputValore non necessarioValore non necessarioDesktop

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

MetodoDescrizioneSMP
AggiungiRigaAggiungi riga in griglia grigliaDesktop
AggiungiRigheDaQueryAggiungi riga in griglia direttamente dalla queryDesktop
BloccafiltriImpedisce l'applicazione dei filtri manuali dei record da parte dell'utenteDesktop
BloccaOrdinamentoDatiBlocco ordinamento dei dati della grigliaDesktop
BloccaRaggruppamentiImpedisce il raggruppamento manuale dei record da parte dell'utenteDesktop
CaricaDatiIndica se i dati debbano essere caricati fin da subito
CaricaValoriIdentificazioneCarica una collezione contenente i valori identificativi (parametro IDENTIFICAZIONE) delle righeDesktop
ComprimiTuttiGruppiComprime/espande tutti i gruppi della grigliaDesktop
ComprimiTuttiNodiComprime/espande tutti i nodi della griglia alberataDesktop
EliminaRigaModifica valori di grigliaDesktop
GetColonnaCorrenteRestituisce la colonna con il fuocoDesktop
GetNumeroRigheRestituisce il numero di righe visibili sulla grigliaDesktop
GetNumeroRigheSelezionateRestituisce il numero di righe visibili sulla grigliaDesktop
GetRigaCorrenteRestituisce la riga con il fuocoDesktop
GetValoreRecupera i valori di un singolo campo del record della grigliaDesktop
GetValoriRecupera i valori di un record della grigliaDesktop
GetValoriDaListaRecupera i valori di un record della grigliaDesktop
GetValoriIdentificazioneRestituisce una stringa contenente l'elenco dei valori identificativi (campo Identificazione della colonna) delle righe selezionateDesktop
GetValoriRigheSelRecupera i valori di un record selezionato della grigliaDesktop
GetValoriRigheSelDaListaRecupera i valori di un record selezionato della grigliaDesktop
ModificaDaQueryModifica riga in griglia direttamente dalla queryDesktop
MostraRigaFiltriMostra/Nasconde la riga dei filtriDesktop
ReloadRicarica i dati della griglia tramite la queryDesktop
ResetSelezioneRigheRimuove la selezione dai record della grigliaDesktop
RidefinizioneRidefinizione totale della griglia: colonne + datiDesktop
SetMultiselezioneAbilitazione/Disabilitazione multiselezioneDesktop
SetNoRipetizioneImposta una condizione per calcolare il posizionamento del cursore sulla grigliaDesktop
SetOrdinamentoImposta un ordinamento sulla griglia. Desktop
SetPosizionamentoImposta una condizione per calcolare il posizionamento del cursore sulla grigliaDesktop
SetRaggruppamentoCompostoImposta un raggruppamento composto sulla griglia. Indicare gli identificativi di colonne separati da ',' Desktop
SetRaggruppamentoRigheImposta un raggruppamento sulla griglia. Indicare gli identificativi di colonne separati da ',' Desktop
SetStampaPermette di abilitare (1 - default) o disabilitare (0) la stampa della grigliaDesktop
SetStampaAdattaPaginaImposta se nella stampa la griglia deve essere adattata alla paginaDesktop
SetStampaSottotitoloImposta il sottotitolo della stampa di paginaDesktop
SetStampaTitoloImposta il sottotitolo della stampa di paginaDesktop
SetStatoVisibilitaImposta una condizione per calcolare il posizionamento del cursore sulla grigliaDesktop
SetStileRigaImposta una condizione per calcolare lo stile da applicare ad ogni riga Desktop
SetTitoloImposta una condizione per calcolare il posizionamento del cursore sulla grigliaDesktop
SetValoriModifica valori di grigliaDesktop
StampaPermette di effettuare la stampa della griglia direttamente da codiceDesktop

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