Passa al contenuto principale

DEFCOLLECTIONGRID

31.1DesktopResponsive

Consente di definire il controllo griglia da collezione all'interno di una videata.

La fonte dati della griglia è la collezione di oggetti specificata nel parametro COLLEZIONEDATI. Dalla classe di riferimento della collezione dati viene derivata la definizione delle colonne ed il numero di righe da visualizzare.

Una qualsiasi modifica ai dati contenuti nella collezione si riflette automaticamente sul controllo video senza necessità di alcun tipo di ulteriori operazioni.

note

I metodi sono richiamabili nella callback specificata nel parametro ONLOAD della @DEFVID per le impostazioni della prima visualizzazione oppure in una qualsiasi azione per modificare le impostazioni in un secondo momento.

suggerimento
  • Nel caso di operazioni massive è possibile sospendere l'aggiornamento video utilizzando la specifica @SUSPENDVIDREFRESH.
  • La definizione delle colonne può essere ulteriormente specializzata attraverso il parametro COLLEZIONECOLONNE popolando la collezione d'ambiente di tipo BC_VID_GRID_COL.

Parametri

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
NOMEInteroINObbligatorioDesktopResponsive
RETINObbligatorioDesktop
POSINObbligatorioDesktop
DIMINObbligatorioDesktop
OGGETTOCORRENTEClasseOUTDesktopResponsive
IDStringaINDesktopResponsive
COLLEZIONEDATICollezioneINDesktopResponsive
COLLEZIONECOLONNECollezione di BC_VID_GRID_COLOUTDesktopResponsive
COLLEZIONETOTALICollezione di BC_VID_GRID_TOTOUT33.0Responsive
TOOLBARINDesktopResponsive
IMPOSTAATTRIBUTIAzioneIN31.5DesktopResponsive
INIZIALIZZAZIONEAzioneINDesktopResponsive
RICERCAAzioneINDesktopResponsive
AUTOCOMPLETAMENTOAzioneIN32.4Responsive
DEFINIZIONEQUERYAzioneIN33.1Responsive
INRIGAAzioneINDesktopResponsive
OUTRIGAAzioneINDesktopResponsive
AZIONECLICKAzioneINDesktopResponsive
AZIONEMOUSEOVERAzioneIN32.0Desktop
IDMENUStringaINDesktopResponsive
DRAGINRipetibileDesktop
DROPINRipetibileDesktop
COMPRIMIRAGGRUPPAMENTIINDesktop
PREVALIDAZIONEAzioneINDesktop
POSTDERIVAZIONEDATIAzioneINDesktopResponsive
VALIDAZIONEDATIINDesktopResponsive
MULTISELEZIONEINDesktopResponsive
PAGINAZIONENumericoIN32.0Responsive
GRIDINDesktop
STACKINDesktop
EXPANDERINDesktop
DOCKINDesktop
PERSONALIZZABILEInteroINDesktop
LINKTOINDesktop
AZIONEINVIOINDesktop
BLOCCALOOKUPBooleanoINDesktop

NOME

InteroINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopResponsive

Nome del controllo

RET

INInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktop

Coordinate della cella del reticolo da associare al controllo.
Queste informazioni hanno lo scopo di inserire il controllo nella logica di gestione degli spostamenti sulla videata.

POS

INInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktop

Posizionamento del controllo.

Consente di indicare la riga e la colonna. Per entrambi è possibile specificare l'unità di misura.

POS[RigaVid [UnitàMisura], ColonnaVid [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.

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.

OGGETTOCORRENTE

ClasseOUTOutputValore non necessarioValore non necessarioDesktopResponsive

Attributo di definizione della variabile contenente il riferimento all'oggetto corrente.
L'oggetto indicato viene valorizzato nel momento in cui una riga della griglia prende il fuoco ed quindi disponibile per tutte le callback di gestione della griglia stessa.

ID

StringaINInputValore non necessarioValore non necessarioDesktopResponsive

Definisce la variabile o la costante di programma che contiene l'identificatore univoco del controllo.

note

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

COLLEZIONEDATI

CollezioneINInputValore non necessarioValore non necessarioDesktopResponsive

Definizione del legame tra la griglia ed una collezione di dati precedentemente definita.
In questo modo si crea un'associazione a due vie tra griglia e collezione. Questo permette di avere la griglia aggiornata automaticamente ad ogni modifica sulla collezione e la collezione aggiornata automaticamente ad ogni modifica in griglia.

COLLEZIONECOLONNE

Collezione di BC_VID_GRID_COLOUTOutputValore non necessarioValore non necessarioDesktopResponsive

Definizione delle colonne della griglia, specializzandole rispetto alla classe di riferimento della collezione dati associata alla griglia.
Deve essere una collezione di oggetti della classe BC_VID_GRID_COL.

COLLEZIONETOTALI

33.0Collezione di BC_VID_GRID_TOTOUTOutputValore non necessarioValore non necessarioResponsive

Elenco totali della griglia

TOOLBAR

INInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Identificativo della toolbar di videata, definita precedentemente tramite specifica @DEFTOOLBAR.

IMPOSTAATTRIBUTI

31.5AzioneINInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Callback per il richiamo dell'impostazione degli attributi video alla prima visualizzazione della singola riga.
La callback viene richiamata, una sola volta a riga, appena questa viene visualizzata dalla griglia.

suggerimento

Da utilizzare in quelle griglie con grosse mole di dati, il cui ImpostaAttributiVideo() complessivo potrebbe compromettere la velocità di apertura della videata.

INIZIALIZZAZIONE

AzioneINInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Callback per l'inizializzazione di un nuovo oggetto nella collezione dati. Viene richiamata a seguito dell'aggiunta automatica della riga alla pressione del tab sull'ultima cella dell'ultima riga presente in griglia.
L'ambiente, all'interno della callback, renderà disponibile l'OGGETTOCORRENTE dove sarò possibile inizializzare la riga appena aggiunta/inserita

RICERCA

AzioneINInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Callback per il richiamo della funzione di ricerca delle celle della griglia.
La callback è unica ed al suo interno è possibile identificare la cella dalla quale è stata richiesta la ricerca attraverso il parametro PROPRIETACORRENTE della @DEFVID.

AUTOCOMPLETAMENTO

32.4AzioneINInputValore non necessarioValore non necessarioResponsive
SottoParametri

Callback di autocompletamento centralizzata

DEFINIZIONEQUERY

33.1AzioneINInputValore non necessarioValore non necessarioResponsive
SottoParametri

Nella callback definita, sarà possibile definire la query legata all'autocompletamento.
La variabile contenete l'identificativo della query dovrà essere la medesima definita nell'attributo Query.

warning

La callback verrà richiamata una sola volta alla pressione del primo tasto sul campo di edit.
Se specificato il parametro QueryDinamica, sulla collezione di colonne, la callback verrà richiamata ad ogni prima pressione di un tasto ogni qual volta il campo di edit prenderà il fuoco.

INRIGA

AzioneINInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Callback per la definizione delle operazioni da eseguire in ingresso riga.

suggerimento

Non è possibile inserire in tale parametro le istruzioni 'GOTO' mentre è consentito inserire una o più operazioni semplici (assegnamenti) utilizzando il carattere ':' come separatore fra le istruzioni.

OUTRIGA

AzioneINInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Callback per la definizione delle operazioni da eseguire in uscita riga.

suggerimento

Non è possibile inserire in tale parametro le istruzioni 'GOTO' mentre è consentito inserire una o più operazioni semplici (assegnamenti) utilizzando il carattere ':' come separatore fra le istruzioni.

note
  • Nello sviluppo in cui viene gestita una architettura MVC la callback di OUTRIGA viene chiamata dopo le callback di VALIDAZIONEDATI/DERIVAZIONEDATI, solo se non ci sono stati errori.
  • L'ambiente di esecuzione esegue la validazione all'uscita di ogni cella mettendo a disposizione il nome della proprietà (la singola cella), grazie al parametro PROPRIETACORRENTE indicato sulla specifica @DEFVID, ed esegue la validazione anche all'uscita della riga.

AZIONECLICK

AzioneINInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Callback dell'azione da eseguire

AZIONEMOUSEOVER

32.0AzioneINInputValore non necessarioValore non necessarioDesktop
SottoParametri

Callback richiamata al click sul menu definito attraverso il mouse over .
Per abilitare la callback è necessario avere definito la proprietà: Colonna.EnableMouseOverMenu=#True su almeno una colonna definita sulla griglia.

All'interno della callback sarà necessario:

  1. testare il property ID per conoscere la colonna su cui si sta richiamando il menu
  2. Eseguire il menu di contesto richiesto.

IDMENU

StringaINInputValore non necessarioValore non necessarioDesktopResponsive

Menu contestuale da visualizzare attraverso il tasto destro sulla griglia.
Deve essere definito in precedenza mediante una specifica @DEFCONTEXTMENU.

note

Questo menù verrà visualizzato solo se le celle della riga non dispongono di un proprio menù.

DRAG

INInputRipetibileRipetibileValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire il comportamento da attenere nel caso in cui venga iniziata un'operazione di trascinamento di una riga della griglia.

DROP

INInputRipetibileRipetibileValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire il comportamento da attenere nel caso in cui venga terminata un'operazione di trascinamento all'interno della griglia.

COMPRIMIRAGGRUPPAMENTI

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire la modalità di visualizzazione del raggruppamento eventualmente definito per la griglia mediante il parametro RAGPREDEFINITO

PREVALIDAZIONE

AzioneINInputValore non necessarioValore non necessarioDesktop
SottoParametri

Callback richiamata prima del processo di VALIDAZIONE.

suggerimento

All'interno della callback è possibile gestibile la specifica @BREAKEVENT per poter bloccare tutto il flusso di validazione dei dati.

POSTDERIVAZIONEDATI

AzioneINInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Callback richiamata dopo la DERIVAZIONEDATI, per effettuare aggiornamenti grafici ulteriori.

VALIDAZIONEDATI

INInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Definisce i metodi per la validazione e derivazione dei dati modificati sull'oggetto a cui la videata fa riferimento.

MULTISELEZIONE

INInputValore non necessarioValore non necessarioDesktopResponsive
SottoParametri

Permette di indicare le callback di gestione della multiselezione delle righe della griglia

PAGINAZIONE

32.0NumericoINInputValore non necessarioValore non necessarioResponsive
SottoParametri

Indica il tipo di paginazione del controllo.

GRID

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Attached Property per pannello di tipo Grid

STACK

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Attached Property per pannello di tipo Stack

EXPANDER

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Attached Property per pannello di tipo Expander

DOCK

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di indicare se l'oggetto deve occupare tutto lo spazio del DockPanel in verticale e/o in orizzontale (possono essere indicati entrambi).

PERSONALIZZABILE

InteroINInputValore non necessarioValore non necessarioDesktop

Definisce l'oggetto grafico come 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

Permette di creare un legame tra due controlli esistenti all'interno della stessa videata.
E' possibile utilizzarlo per creare un legame tra griglia da collezione e controllo DEFGANTT, questo legame andrà a creare un nuovo oggetto 'Composto' dove la parte di lista verrà gestita dalla griglia, mentre la parte grafica sarà pilotata dal controllo Gantt

AZIONEINVIO

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di indicare l'ID del tasto da simulare alla pressione del tasto INVIO.

L'utilizzo del parametro implica l'utilizzo del parametro ID

BLOCCALOOKUP

BooleanoINInputValore non necessarioValore non necessarioDesktop

Definisce la possibilità di bloccare la definizione di colonne di lookup personalizzate in presenza di colonne dinamiche.
In questo modo si evita che, graficamente, alcune colonne dinamiche possano essere mostrate in un ordine errato qualora sia presente una o più colonne personalizzate di lookup.

Metodi

MetodoDescrizioneSMP
AdattaRigaAdatta l'altezza della riga al testo contenuto nelle colonne multilinea
AdattaRigheAdatta l'altezza di tutte le righe della griglia all'avvio
AggiornaRigheModificateAggiorna le righe modificate sulla collezioneWeb
BloccaOrdinamentoDatiBlocco dell'ordinamento dei dati della griglia
CaricaValoriIdentificazioneCarica una collezione contenente i valori identificativi delle righe
ComprimiTuttiGruppiComprime/espande tutti i raggruppamenti della griglia
ComprimiTuttiNodiComprime/espande tutti i nodi della griglia
DisabilitaSelezionaTuttoDisabilita la funzionalità di 'Seleziona tutto' e 'Annulla selezione' della griglia
GetColonnaCorrenteRestituisce l'identificativo della colonna con il fuoco
GetLivelloAlberoRestituisce il livello gerarchico del nodo dell'albero
GetNumeroRigheRestituisce il numero di righe della griglia
GetStatoNodoRestituisce lo stato di visibilità di un nodo della griglia
GetValoreCellaCorrenteRestituisce il valore contenuto all'interno della cella corrente
GetValoriIdentificazioneRestituisce una stringa contenente i valori identificativi della riga corrente
InserisciRigaInserisce una riga all'interno della grigliaDesktopWeb
RebindPermette di modificare, a runtime, la fonte dati della grigliaDesktop
RigaEliminabileAutomaticamenteRestituisce se la riga corrente verrà eliminata automaticamente o meno
SetAggiuntaRigaAutoAbilitazione/Disabilitazione aggiunta automatica di una riga alla pressione del tasto TAB
SetEditabileAbilitazione/Disabilitazione grigliaDesktopWeb
SetMultiselezioneAbilitazione/Disabilitazione multiselezione in griglia
SetNoRipetizionePermette di evitare la ripetizione degli stessi valori delle celle tra una riga e l'altra
SetOrdinamentoPermette di impostare un ordinamento sulla griglia
SetPosizionamentoPermette di definire una condizione per calcolare il posizionamento del cursore sulla griglia
SetQueryAutocompletamentoPermette di ridefinire, a runtime, la query di autocompletamento di una colonna DesktopWeb
SetQueryObjectAutocompletamentoImposta una query di autocompletamento sulla colonna sostituendo quella già presenteDesktopWeb
SetRaggruppamentoCompostoPermette di impostare un raggruppamento composto sulla griglia
SetRaggruppamentoRighePermette di impostare un raggruppamento sulla griglia
SetRimuoviRigaVuotaAbilitazione/Disabilitazione eliminazione di una riga automaticamente in fase di uscita dalla riga
SetStampaAbilitazione/Disabilitazione stampa della griglia
SetStampaAdattaPaginaPermette di impostare, a runtime, se nella stampa la griglia deve essere adattata alla pagina di stampa
SetStampaSottotitoloPermette di cambiare, a runtime, il sottotitolo della pagina di stampa
SetStampaTitoloPermette di cambiare, a runtime, il titolo della pagina di stampa
SetStatoOutputPermette di impostare, a runtime, lo stato di output di una colonna della griglia
SetStatoVisibilitaPermette di impostare, a runtime, lo stato di visibilità di una colonna della griglia
SetStileRigaPermette di definire una formula per calcolare lo stile da applicare ad ogni riga della griglia
SetTitoloPermette di cambiare, a runtime, il titolo di una colonna della griglia
StampaPermette di effettuare la stampa della griglia direttamente da codice

Esempi

Definizione griglia da collezione

 DIM objCorrente[CLASSE[BLD_AIG]]
DIM collObj[CLASSE[BLD_AIG] COLLEZIONE]
DIM collColonne[CLASSE[BC_VID_GRID_COL] COLLEZIONE]

'@DEFVID DIM[25,120] NOME[Esempio] POS[VIDEATA,CENTRO] TIT["Griglia da collezione - Caricamento da collezione"] ID["IDVid"] _
TOOLBAR[IDTOOLBAR["ToolBar"] ] ONLOAD[OnLoad()]

'@DEFTOOLBAR IDTOOLBAR["ToolBar"] _
BOTTONE[IDBOTTONE["SYS_EXIT_ESC"] AZIONE[Abbandona()]] _
BOTTONE[IDBOTTONE["SYS_NEW"] AZIONE[AggiuntaNuovaRiga(collObj [INOUT])]]

'@DEFGRIDPANEL NOME[PannelloGrigliaElenco] ID["PannelloGrigliaElenco"] TIT["Elenco"] LAYOUTTIT[STILE[#INTESTAZIONE_VIDEATA]] _
COLONNA[LUNGHEZZA[1] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[118] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[1] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[23] LAYOUT[#DINAMICO]]

'@DEFCOLLECTIONGRID NOME[GrigliaCollezione] ID["GrigliaCollezione"] RET[1,1] POS[1,1] DIM[1,1] _
COLLEZIONEDATI[collObj] OGGETTOCORRENTE[objCorrente] COLLEZIONECOLONNE[collColonne] RICERCA[Ricerca(objCorrente [INOUT])] _
VALIDAZIONEDATI[GES[objCorrente.Valida(Esempio.GetProprietaCorrente())] _
DERIVAZIONEDATI[objCorrente.Deriva_dati(Esempio.GetProprietaCorrente())]] _
GRID[COL[2] RIGA[1] COLDIN[1] RIGADIN[1]]

'@ENDGRIDPANEL NOME[PannelloGrigliaElenco]

'@RUNVID

...
'@SRP Load()

'Definizione stili da applicare
'@DEFSTYLE STILE["ROSSO"] COLORESFONDO[ROSSO] COLORETESTO[BIANCO]
'@DEFSTYLE STILE["VERDE"] COLORESFONDO[VERDE]
'@DEFSTYLE STILE["GIALLO"] COLORESFONDO[GIALLO]
'@DEFSTYLE STILE["NERO"] COLORESFONDO[NERO] COLORETESTO[BIANCO]

Return

...
'@SRP DefinizioneColonne(collColonne[CLASSE[BC_VID_GRID_COL] COLLEZIONE] [INOUT])

DIM colonna[CLASSE[BC_VID_GRID_COL]]
DIM colStringa[CLASSE[BC_STRING] COLLEZIONE]
DIM valore[STRING]

'Definizione formato
'@DEFFORMAT FORMATO["3Decimali"] CIFRETOT[10] CIFREDEC[3] TIPO[#IMPORTO]

'Creazione colonna con ricerca
colonna.Clear():colonna.Init("Codice",10,0,0,1) : colonna.Titolo = "Codice" : colonna.AbilitaRicerca = #True : collColonne.AggiungiColonna(colonna [INOUT])

'Creazione colonna in output
colonna.Clear():colonna.Init("IdEdit",10,0,0,1) : colonna.Titolo = "IdEdit" : colonna.Output = #True : collColonne.AggiungiColonna(colonna [INOUT])

'Creazione colonne con stile variabile

'Se il codice autore è uguale a zero viene applicato lo stile "ROSSO" altrimenti "VERDE"
colonna.Clear():colonna.Init("CodAutore",10,0,0,1) : colonna.Titolo = "Codice autore" : colonna.Stile = "IF(CodAutore = 0,'ROSSO','VERDE')" : collColonne.AggiungiColonna(colonna [INOUT])

'Se la riga è uguale a 1 viene applicato lo stile "ROSSO", se uguale a 2, lo stile "VERDE", se uguale a, lo stile "GIALLO", se la riga non rientra in quelle condizioni viene applicato lo stile "NERO"
colonna.Clear():colonna.Init("Riga",10,0,0,1) : colonna.Titolo = "Riga"
colonna.Stile = "CHOOSE(Riga=1,'ROSSO',Riga=2,'VERDE',Riga=3,'GIALLO','NERO')"
collColonne.AggiungiColonna(colonna [INOUT])

'Creazione colonne con funzioni
colonna.Clear():colonna.Init("Tariffa",10,0,0,1) : colonna.FunzioneGruppo = "SUM" : collColonne.AggiungiColonna(colonna [INOUT])
colonna.Clear():colonna.Init("Riga",10,0,0,1) : colonna.FunzioneGruppo = "AVG" : collColonne.AggiungiColonna(colonna [INOUT])
colonna.Clear():colonna.Init("Check",10,0,0,1) : colonna.FunzioneGruppo = "COUNT" : collColonne.AggiungiColonna(colonna [INOUT])

'Crezione colonna con formato
colonna.Clear():colonna.Id="Prezzo" :colonna.Dimensione=12 : colonna.Formato="3Decimali": collColonne.AggiungiColonna(colonna [INOUT])

'Creazione colonna calcolata
colonna.Clear():colonna.Id = "PERC1" :colonna.Titolo = "Sconto" :colonna.Dimensione = 10: colonna.Formato="Importo" :colonna.Posizione=8
colStringa.Clear():valore="Prezzo":colStringa.AGGIUNGI(valore)

'Se il prezzo è minore di 100 c'è uno sconto del 30% altrimenti del 45%
colonna.SetColonnaCalcolata("IF(PREZZO<100,(PREZZO*30)/100,(PREZZO*45)/100)", colStringa [INOUT])
collColonne.AggiungiColonna(colonna [INOUT])

' Definizione colonne per lookup
colonna.Clear():colonna.Id="Codice" :colonna.Dimensione=10 :colonna.Nascosta=1 :collColonne.AggiungiColonna(colonna [INOUT])
colonna.Clear():colonna.Id="CodAutore" :colonna.Dimensione=25 :colonna.Posizione=1 :colonna.LarghezzaDinamica=#TRUE :collColonne.AggiungiColonna(colonna [INOUT])

' LookUp su un tipo dato stringa
colonna.Clear():colonna.Id = "LookUpTesto" :colonna.Dimensione=15 :colonna.Posizione=2 :colonna.Titolo = "Descrizione Famiglia" :colonna.Formato="Testo"
colStringa.Clear():valore="CODAUTORE":colStringa.AGGIUNGI(valore)
colonna.SetQueryLookup(idQueryTesto, "Descrizione", colStringa [INOUT])
collColonne.AggiungiColonna(colonna [INOUT])


Return

...
'@SRP OnLoad()

'Metodo per impostare il raggruppamento sulle colonne Codice e CodAutore
GrigliaCollezione.SetRaggruppamentoRighe("Codice,CodAutore")

'Metodo per impostare lo stile della riga

'Se la riga è uguale a 1 viene applicato lo stile "ROSSO", se uguale a 2, lo stile "VERDE", se uguale a, lo stile "GIALLO", se la riga non rientra in quelle condizioni viene applicato lo stile "NERO"
GrigliaCollezione.SetStileRiga("CHOOSE(Riga=1,'ROSSO',Riga=2,'VERDE',Riga=3,'GIALLO','NERO')")

Return

...
'@SRP Ricerca(objCorrente [CLASSE[BLD_AIG]] [INOUT])

Switch Esempio.GetProprietaCorrente()

Case objCorrente.RicercaManualeNum.PropertyId() objCorrente.RicercaNumerica()
Case objCorrente.RicercaManuale.PropertyId() objCorrente.RicercaTestuale()

EndSwitch

Return

...
'@SRP AggiuntaNuovaRiga(collObj[CLASSE[BLD_AIG] COLLEZIONE] [INOUT])

DIM tmpObjCorr[CLASSE[BLD_AIG]]
'Aggiunta di una nuova riga con posizionamento
tmpObjCorr.Clear()
tmpObjCorr.Codice = collObj.Last().Codice + 1
collObj.Add(tmpObjCorr)

'@DEFVIDPOS ID["PannelloGrigliaElenco"] PROPERTYID[collObj.Last().Codice.PropertyId()] GOVID[]

Return

Definizione griglia da collezione con colonna di lookup e query multigruppo

'@SRP Esempio2() 

Load()

'@DEFVID DIM[35,140] NOME[NomeVid] TOOLBAR[IDTOOLBAR["IDToolbar"]]

'@DEFTOOLBAR IDTOOLBAR["IDToolbar"] _
BOTTONE[IDBOTTONE["SYS_EXIT"] TITOLO["Abbandona"] AZIONE[Abbandona()]]

'@DEFGRIDPANEL NOME[GridPanel] _
COLONNA[LUNGHEZZA[1] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[138] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[1] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[1] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[33] LAYOUT[#DINAMICO]] _
RIGA[ALTEZZA[1] LAYOUT[#FISSO]]

'@DEFCOLLECTIONGRID NOME[CollectionGrid] ID["GrigliaCollezione"] RET[1,1] POS[1,1] DIM[20,140] _
COLLEZIONEDATI[CollCliForn] COLLEZIONECOLONNE[ColonneGriglia] _
OGGETTOCORRENTE[ObjCorr] _
GRID[COL[2] RIGA[2] RIGADIN[1] COLDIN[1]]

'@ENDGRIDPANEL NOME[GridPanel]

'@RUNVID

Return

...
'@SRP Query()

'@DEFQUERY IDQUERY[IDQuery] NOME["QueryPrincipale"]

'@DEFQUERYFROM IDQUERY[IDQuery] TABELLA[BLDCLIFOR]

'@DEFQUERYCOLUMN IDQUERY[IDQuery] _
ESPR[BLDCLIFOR.COD AS [COD]] _
ESPR[BLDCLIFOR.CF AS [CF]] _
ESPR[BLDCLIFOR.CODMAG AS [CodMag]]

'@GETQUERYDATA IDQUERY[IDQuery] COLLEZIONE[CollCliForn]

Return

...
'@SRP CreazioneColonne()

'@DEFFORMAT FORMATO["Testo"] _
TIPO[#TESTO]

DIM colonna[CLASSE[BC_VID_GRID_COL]]

DIM val[STRING]
DIM valGruppo[STRING]
DIM CollStringa[CLASSE[BC_STRING]COLLEZIONE]

QueryLookup()

'Colonna Codice
colonna.Clear()
colonna.Id="COD"
colonna.Dimensione=7
colonna.Posizione = 1
ColonneGriglia.AggiungiColonna(colonna [INOUT])

'Colonna Codice fiscale
colonna.Clear():colonna.Id="CF"
colonna.Dimensione=20
colonna.Posizione = 3
colonna.LarghezzaDinamica=#True
ColonneGriglia.AggiungiColonna(colonna [INOUT])

'Colonna codice magazzino
colonna.Clear():colonna.Id="CODMAG"
colonna.Dimensione=15
colonna.Posizione = 12
colonna.Nascosta = 0
ColonneGriglia.AggiungiColonna(colonna [INOUT])

'Colonna lookup del codice magazzino
colonna.Clear():colonna.Id = "LookUpMagazzino"
colonna.Titolo = "Descrizione magazzino"
colonna.Dimensione=20
colonna.Posizione=13
colonna.Formato="Testo"
valGruppo="*GR*"
CollStringa.AGGIUNGI(valGruppo)
val="CODMAG"
CollStringa.AGGIUNGI(val)
colonna.SetQueryLookup(IDQueryLookup, "DesMag", CollStringa [INOUT])
ColonneGriglia.AggiungiColonna(colonna [INOUT])

Return

...
'@SRP QueryLookup()

'@DEFQUERY IDQUERY[IDQueryLookup] NOME["QueryLookup"]

'@DEFQUERYFROM IDQUERY[IDQueryLookup] TABELLA[BLDMAGAZZINO]

'@DEFQUERYCOLUMN IDQUERY[IDQueryLookup] _
ESPR[BLDMAGAZZINO.COD AS [CODMAG]] _
ESPR[BLDMAGAZZINO.DES AS [DesMag]]


Return