Passa al contenuto principale

DEFQUERYSESSIONTABLE

AliasSESSIONTABLE28.5DesktopWeb

Permette di definire e popolare una tabella di sessione da utilizzare nella query come una 'normale' tabella.
E' possibile popolare la tabella di sessione mediante:

  • variabile blob, con i record separati da virgola
  • variabile stringa, con i record separati da virgola
  • struttura dinamica
  • collezione di classi

Parametri

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
IDQUERYLongINDesktopWeb
NOMEStringaINObbligatorioDesktopWeb
VALORIBlobRefDesktopWeb
TESTOStringaIN30.7DesktopWeb
FMTStringaINDesktopWeb
COLLEZIONECollezioneINDesktopWeb
STRUTTURAStringaINDesktopWeb

IDQUERY

LongINInputValore non necessarioValore non necessarioDesktopWeb

Identificatore della query ottenuto tramite @DEFQUERY.

NOME

StringaINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopWeb

Nome che identifica tabella di sessione.

VALORI

BlobRefReferenzaValore non necessarioValore non necessarioDesktopWeb

Elenco di valori in formato stringa con cui popolare la tabella.
I tipo di dato effettivo è specificato mediante il formato indicato nel parametro FMT.

L'utilizzo del parametro implica l'utilizzo del parametro FMT

TESTO

30.7StringaINInputValore non necessarioValore non necessarioDesktopWeb

Elenco di valori in formato stringa con cui popolare la tabella.
I tipo di dato effettivo è specificato mediante il formato indicato nel parametro FMT.

L'utilizzo del parametro implica l'utilizzo del parametro FMT

FMT

StringaINInputValore non necessarioValore non necessarioDesktopWeb
SottoParametri

Definisce il tipo di dato contenuto nella variabile indicata nei parametri VALORI o TESTO.

COLLEZIONE

CollezioneINInputValore non necessarioValore non necessarioDesktopWeb

Collezione di classi con cui popolare la tabella.
La tabella di sessione avrà tante colonne quante sono i campi della classe, con i tipi corrispondenti. I nomi delle colonne della tabella sono omonimi ai campi della classe.
Il nome del campo deve essere scritto in maiuscolo per essere riconosciuto correttamente dal motore SQL.

STRUTTURA

StringaINInputValore non necessarioValore non necessarioDesktopWeb

Struttura dinamica con cui popolare la tabella di sessione.
La tabella di sessione avrà tanti campi quanti sono quelli della struttura dinamica, con i tipi corrispondenti. I nomi delle colonne della tabella sono omonimi ai campi della struttura dinamica.
Il nome del campo deve essere scritto in maiuscolo per essere riconosciuto correttamente dal motore SQL.

Esempi

Definizione con parametro VALORI

 DIM QueryObject[INT]

DIM selectedFamCodes[BLOB] = "01,02,03"

'@DEFQUERY IDQUERY[QueryObject] NOME["BCRIF_DEFQUERYSESSIONTABLE_3"]

'@DEFQUERYSESSIONTABLE IDQUERY[QueryObject] NOME["SelectedFamCodes"] _
VALORI[selectedFamCodes] _
FMT[TESTO[6]]

'@DEFQUERYFROM IDQUERY[QueryObject] TABELLA[BLDFAMIGLIA]

'@DEFQUERYCOLUMN IDQUERY[QueryObject] ESPR[BLDFAMIGLIA.COD AS [CodFamiglia]] _
ESPR[BLDFAMIGLIA.DES AS [DesFamiglia]]

'@DEFQUERYWHERE IDQUERY[QueryObject] ESPR[[CodFamiglia] IN (TAB(SelectedFamCodes))]

Definizione con parametro STRUTTURA

 DIM QueryObject[INT]

'@DEFDYNSTRUCT STRUTTURA["SelectedFamiliesStruct"] CAMPI[Codice$[20], Descrizione$[100]]

PopulateStruct()

'@DEFQUERY IDQUERY[QueryObject] NOME["BCRIF_DEFQUERYSESSIONTABLE_7"]

'@DEFQUERYSESSIONTABLE IDQUERY[QueryObject] NOME["SelectedFamilies"] _
STRUTTURA["SelectedFamiliesStruct"]

'@DEFQUERYFROM IDQUERY[QueryObject] TABELLA[BLDFAMIGLIA]

'@DEFQUERYJOIN IDQUERY[QueryObject] TABELLA[[Selezionati]] TABELLAPADRE[BLDFAMIGLIA] _
REL[[Selezionati].CODICE=BLDFAMIGLIA.COD] _
OPERATOREJOIN["INNER"]

'@DEFQUERYCOLUMN IDQUERY[QueryObject] ESPR[BLDFAMIGLIA.COD AS [CodFamiglia]] _
ESPR[BLDFAMIGLIA.DES AS [DesFamiglia]] _
ESPR[[Selezionati].DESCRIZIONE AS[NuovaDescrizione]]

Definizione con parametro COLLEZIONE

 DIM QueryObject[INT]

DIM families[CLASSE[BLD_FAMIGLIA] COLLEZIONE]

PopulateCollection()

'@DEFQUERY IDQUERY[QueryObject] NOME["BCRIF_DEFQUERYSESSIONTABLE_7"]

'@DEFQUERYSESSIONTABLE IDQUERY[QueryObject] NOME["newFamilies"] COLLEZIONE[families]

'@DEFQUERYFROM IDQUERY[QueryObject] TABELLA[BLDFAMIGLIA]

'@DEFQUERYJOIN IDQUERY[QueryObject] TABELLA[[NewFamilies]] TABELLAPADRE[BLDFAMIGLIA] _
REL[[NewFamilies].CODICE=BLDFAMIGLIA.COD] _
OPERATOREJOIN["INNER"]

'@DEFQUERYCOLUMN IDQUERY[QueryObject] ESPR[BLDFAMIGLIA.COD AS [CodFamiglia]] _
ESPR[BLDFAMIGLIA.DES AS [DesFamiglia]] _
ESPR[[NewFamilies].DESCRIZIONE AS[NuovaDescrizione]]

Definizione per autocompletamento

 DIM QueryObject[INT]
DIM clients[CLASSE[BLD_CLIFOR] COLLEZIONE]
DIM tmpClient[CLASSE[BLD_CLIFOR]]

tmpClient.Clear(): tmpClient.CodCliFor = 1: tmpClient.TipoAnagrafica = 0: tmpClient.RagioneSociale1 = "Cliente 1": clients.Add(tmpClient)
tmpClient.Clear(): tmpClient.CodCliFor = 2: tmpClient.TipoAnagrafica = 0: tmpClient.RagioneSociale1 = "Cliente 2": clients.Add(tmpClient)
tmpClient.Clear(): tmpClient.CodCliFor = 3: tmpClient.TipoAnagrafica = 0: tmpClient.RagioneSociale1 = "Cliente 3": clients.Add(tmpClient)
tmpClient.Clear(): tmpClient.CodCliFor = 4: tmpClient.TipoAnagrafica = 0: tmpClient.RagioneSociale1 = "Cliente 4": clients.Add(tmpClient)
tmpClient.Clear(): tmpClient.CodCliFor = 5: tmpClient.TipoAnagrafica = 0: tmpClient.RagioneSociale1 = "Cliente 5": clients.Add(tmpClient)
tmpClient.Clear(): tmpClient.CodCliFor = 6: tmpClient.TipoAnagrafica = 0: tmpClient.RagioneSociale1 = "Cliente 6": clients.Add(tmpClient)

'@DEFQUERY IDQUERY[QueryObject] NOME["BCRIF_DEFQUERYSESSIONTABLE_12"]

'@DEFQUERYSESSIONTABLE IDQUERY[QueryObject] NOME["Clients"] COLLEZIONE[clients]

'@DEFQUERYFROM IDQUERY[QueryObject] TABELLA[[Clients]]

'@DEFQUERYCOLUMN IDQUERY[QueryObject] ESPR[[Clients].COD AS [VAR]] ETICHETTA["Codice"] _
ESPR[[Clients].RS1 AS [RagioneSociale]] ETICHETTA["Ragione Sociale"]

'@DEFQUERYCOMPUTEDCOLUMN IDQUERY[QueryObject] ESPR[STR$([VAR]) + " - " + [RagioneSociale] AS [VARVIDEO] FMT[TESTO[50]]]

'@DEFQUERYWHERE IDQUERY[QueryObject] ESPR[MATCH([VAR], "%#TD%") > 0 Or MATCH([VARVIDEO], "%#TD%") > 0]


'Modifica della collezione di partenza
tmpClient.Clear(): tmpClient.CodCliFor = 7: tmpClient.TipoAnagrafica = 0: tmpClient.RagioneSociale1 = "Cliente 7": clients.Add(tmpClient)
tmpClient.Clear(): tmpClient.CodCliFor = 8: tmpClient.TipoAnagrafica = 0: tmpClient.RagioneSociale1 = "Cliente 8": clients.Add(tmpClient)
tmpClient.Clear(): tmpClient.CodCliFor = 9: tmpClient.TipoAnagrafica = 0: tmpClient.RagioneSociale1 = "Cliente 9": clients.Add(tmpClient)

SameQueryRedefinition()

'@SETEDIT IDCONTROLLO["EditId"] AUTOCOMPLETAMENTO[IDQUERY[QueryObject]]

Definizione per utilizzo con CTE

 DIM QueryObject[INT]
DIM cteVarQueryObject[INT]
DIM cteArtQueryObject[INT]
DIM SelectedItems[BLOB] = "001,018"

'@DEFQUERY IDQUERY[QueryObject] NOME["TEST_DEFQUERYCTE_5"]

'@DEFQUERYSESSIONTABLE IDQUERY[QueryObject] NOME["SelectedItemsTab"] VALORI[SelectedItems] FMT[TESTO[6]]

' Definizione della query principale
'@DEFQUERYFROM IDQUERY[QueryObject] TABELLA[[Articoli]]

'@DEFQUERYCOLUMN IDQUERY[QueryObject] ESPR[[Articoli].DesArtA AS [DesArticolo]] _
ESPR[[Articoli].PrezzoA AS [Prezzo]] _
ESPR[[Articoli].DesVarianteA AS [DesVariante]] _
ESPR[[Articoli].CodCostoSTDA AS [CostoVariante]]

' Definizione della query cte per la tabella BLDVAR
'@DEFQUERYCTE IDQUERY[cteVarQueryObject] IDQUERYPADRE[QueryObject] ALIAS["Varianti"]

'@DEFQUERYFROM IDQUERY[cteVarQueryObject] TABELLA[BLDVAR]

'@DEFQUERYCOLUMN IDQUERY[cteVarQueryObject] ESPR[BLDVAR.DES AS [DesVarianteV]] _
ESPR[BLDVAR.CODART AS [CodArtV]] _
ESPR[BLDVAR.COSTO AS [CodCostoSTDV]]


' Definizione della subquery per la tabella BLDRIGA
'@DEFQUERYCTE IDQUERY[cteArtQueryObject] IDQUERYPADRE[QueryObject] ALIAS["Articoli"]

'@DEFQUERYFROM IDQUERY[cteArtQueryObject] TABELLA[BLDART]

'@DEFQUERYJOIN IDQUERY[cteArtQueryObject] TABELLA[[Varianti]] TABELLAPADRE[BLDART] _
REL[[Varianti].CodArtV = BLDART.COD] _
OPERATOREJOIN["INNER"]

'@DEFQUERYCOLUMN IDQUERY[cteArtQueryObject] ESPR[BLDART.COD AS [CodArt]] _
ESPR[BLDART.DES AS [DesArtA]] _
ESPR[BLDART.PREZZO AS [PrezzoA]] _
ESPR[[Varianti].DesVarianteV AS [DesVarianteA]] _
ESPR[[Varianti].CodCostoSTDV AS [CodCostoSTDA]]

'@DEFQUERYWHERE IDQUERY[cteArtQueryObject] ESPR[[CodArt] IN (TAB(SelectedItemsTab))]