%%(display:none)
{{{
WikiUp
}}}
/%
[{TableOfContents }]\\
!!! Script\\
Al fine di agevolare la definizione di ricerche personalizzate viene distributio un file di script
Vedi OK - vuoto (OJ*FILE-SCP_QRY)\\

Nel file di script vengono sostanzialmente definiti:
* Le fonti dati (nome, descrizione, programma fonte, parametri del programma fonte).\\
* Le ricerche. Queste associano la fonte, la lista degli schemi privati della ricerca (gli schemi pubblici sono sempre disponibili), la lista degli ordinamenti (sempre privati), un solo filtro.\\
* Gli schemi aggiuntivi (nome, descrizione, formato, proprietà da visualizzare e un indicatore che definisce lo schema come pubblico o privato, ovvero se disponibile per tutte le ricerche definite o solo per quelle che lo includono specificatamente). Tali schemi si aggiungono agli schemi eventualmente resi disponibili dai programmi di fonte o da altri programmi. Per una ricerca sono quindi disponibili più schemi.\\
* I filtri aggiuntivi (nome, descrizione, proprietà su cui filtrare e operatore di confronto). Tali filtri si aggiungono ai filtri eventualmente resi disponibili dai programmi di fonte. Per una ricerca è al momento disponibile un solo filtro.\\
* Gli ordinamenti (nome, descrizione, proprietà su cui ordinare). Tali ordinamenti sono disponibili solo per alcuni tipi fonti.\\

!!! Convenzioni\\
!! Denominazione dei membri\\
Il collegamento fra tipo/parametro oggetto e membro del file SCP_QRY si basa sulla modalità di denominazioni dei membri
%%quote
|     nome membro: XXYYYYYYYY      dove
|                  XX              = Tipo oggetto
|                  YYYYYYYY        = Parametro oggetto
/%
----
Per l'oggetto
[Configurazione|OG-CF]\\
avviene un'ulteriore risalita per tipo configurazione. L'accesso a file non di oggetto avviene tramite l'oggetto ID+NomeFile

!! Variabili di ambiente\\
Il carattere _&_ ("ecommerciale") nel testo indica che la parola seguente è variabile. Variabili supportate
%%quote
| - _&_OG.T1     = Tipo oggetto
| - _&_OG.P1     = Parametro oggetto
| - _&_OG.OG     = Tipo+Parametro oggetto
| - _&_CF.METIPA = Tipo memorizzazione  (Oggetto CF)
| - _&_CF.MECODI = Codice memorizzazione (Oggetto CF)
/%
----
!!! Tag disponibili\\
!! SRC (Fonte)\\
%%quote
|  SRC
|  .Cod        Codice fonte
|  .Des        Descrizione fonte
|  .Pgm        Programma (B£IQR_xx)
/%
----
La fonte richiede una serie di parametri dipendenti dal programma fonte implementato. Si riporta di seguito la lista dei TAG attualmente consentiti rimandando al programma fonte per una descrizione esaustiva.
%%quote
|  .SRC.REC    Record
|  .SRC.RE2    Record secondario
|  .SRC.ALS    Alias
|  .SRC.FLT    Filtro
|  .SRC.DST    Distinct
|  .SRC.GRP    Group by
|  .SRC.JOI    Campi di join
|  .SRC.PAR    Parametro
/%
----

!! QRY (Query)\\
Esistono delle query appartenenti per default all'oggetto (*KEY, *DEC, *FIL) che non richiedono la compilazione dello script. Esse possono comunque essere modificate tramite la direttiva __QRY__. Le ricerche possono essere estese tramite la compilazione dello script:
%%quote
|  QRY
|  .Cod        Codice ricerca
|  .Des        Descrizione ricerca
|  .Src        Programma fonte (B£IQR_xx) oppure nome della fonte
|  .Flt        Lista Filtri
|  .PreFlt     Presentazione filtro (SI/NO)
|  .Ord        Lista Ordinamenti
|  .NrEle      Numero elementi
|  .Sch        Lista Schemi privati
/%
----

!! SCH (Schema)\\
%%quote
|  SCH
|  .Cod        Codice Schema
|  .Des        Descrizione Schema
|  .TRec       Tipo record
|  .CRec       Record
|  .Prv        Privato (SI/NO)
/%
----
da TRec+CRec dipende la definizione dei campi dello schema se TRec+CRec non vengono specificati si intende una struttura di tipo O-&OG.OG

Lo schema può presentare uno o più TAG __SCH.FLD__ che definiscono le proprietà visualizzate.
%%quote
|  SCH.FLD
|  .NAM        Nome proprietà
|  .INT        Intestazione proprietà
|  .OGG        Oggetto
|  .LUN        Lunghezza
|  .DEC        Decimali
|  .TYP        Tipo (K01=codice, D01=Descrizione)
|  .HDD        Hidden (SI/NO)
|  .FUN        Funzione (vedi funzioni a livello di campo)
|  .PAR        Parametro funzione
/%
----

!! TAG FLT (filtro)\\
%%quote
|  FLT
|  .Cod        Codice filtro
|  .Des        Descrizione filtro
|  .TRec       Tipo record
|  .CRec       Record
/%
----
da TRec+CRec dipende la definizione dei campi del filtro se TRec+CRec non vengono specificati si intende una struttura di tipo O-&OG.OG

Il filtro può presentare uno o più TAG __FLT.FLD__ che definiscono le proprietà e le modalità di filtro.
%%quote
|  FLT.FLD
|  .NAM        Nome campo filtro
|  .INT        Intestazione
|  .OGG        Oggetto
|  .LUN        Lunghezza
|  .DEC        Decimali
|  .OPE        Operatore
|  .VAL        Valore
|  .OBB        Obbligatorio (SI/NO)
|  .CMD        Shortcut da riga comando (SI/NO)
|  .CS         Case sensitive (SI/NO)
|  .HDD        Hidden (SI/NO)
|  .FUN        Funzione
|  .PAR        Parametro funzione
/%
----
Se specificato l'operatore di scansione(SC) l'asterisco(*) vale come carattere jolly

!! TAG ORD (Ordinamento)\\
%%quote
|  ORD
|  .Cod        Codice ordinamento
|  .Des        Descrizione ordinamento
|  .TRec       Tipo record
|  .CRec       Record
/%
----
da TRec+CRec dipende la definizione dei campi di ordinamento se TRec+CRec non vengono specificati si intende una struttura di tipo O-&OG.OG

L'ordinamento può presentare uno o più TAG __ORD.FLD__ che definiscono le proprietà su cui ordinare.
%%quote
|  ORD.FLD
|  .NAM        Nome
|  .ORD        Ordinamento (ascendente / discendente)
/%
----

!! TAG INC (inclusione)\\

E' possibile effettuare delle inclusioni nello script. Le inclusioni possono essere delle seguenti tipologie:
- :INC.JAC Inclusione tabella JAC
- :INC.SCP Inclusione script

! Funzioni a livello di campo\\
I campi degli schemi e dei filtri di una query possono sviluppare delle funzioni note in Sme_up tramite la sintassi
FUN(XXX) e PAR(V1,V2,Vn).
Le funzioni supportate sono:
%%quote
|  Funzione  /COPY         Struttra parametri
|  DEC       £DEC          V1= Campo
|                          V2= Oggetto(Opzionale, se assente da V1)
|  OAV       £OAV          V1= Campo
|                          V2= Attributo
|                          V3= Oggetto(Opzionale, se assente da V1)
|                          V4= /OT/OP/SI (Opzionale)
|  NST       £NST          V1= Tipo contenuto
|                          V2= Chiave_1
|                          V3= Chiave_2
|                          V4= Chiave_3
|                          V5= Tipo informazione iniziale
|                          V6= Tipo informazione finale
/%
----
Se non viene espressa una funzione a livello di campo si intende OAV.