Indice articolo

A partire dalla versione 1.19.8 di Webup il componente Src si arricchisce con nuove funzionalità di ricerca.

È ora possibile gestire la ricerca tramite la creazione di una scheda custom o tramite l’utilizzo di script SCP_QRY.

Ricerca con filtri tramite SCP_QRY

Oltre al metodo che abbiamo sopra descritto, per effettuare delle ricerche custom è possibile anche utilizzare degli script SCP_QRY. La fun di scheda che alimenta la forma grafica può naturalmente essere rappresentata dalla scheda ottenuta mediante script SCP_QRY:

F(EXD;*SCO;) 1(Q1;CNCOL;S/SRCCL) 2(MB;SCP_SCH;B£EQRY_02)

Di seguito possiamo vedere un esempio di script SCP_QRY

::QRY Cod="SRCCL" Des="Query CRM" Src="SRCCL" DftSch="SRCCL" NrEle="999" DftFlt="SRCCL"

 -------------------------------------------- Definizione --------------------------------------------------------

::SRC Cod="SRCCL" Des="Collaboratori" Pgm="02" 

::SRC.REC REC(BRENTI0F) 

::SRC.FLT FLD(E§TRAG) OPE(EQ) VAL(COL) 

--------------------------------------------- Definizione Schemi --------------------------------------------------

::SCH Cod="SRCCL" Des="Schema Base" 

::SCH.FLD NAM(E§CRAG) :

:SCH.FLD NAM(E§RAGS) 

::SCH.FLD NAM(E§LIVE) 

::SCH.FLD NAM(E§STAT) 

::SCH.FLD NAM(E§LOCA) 

::SCH.FLD NAM(E§INDI) G.SET.MAT FixedLCol="2" Parent="A01" ColsWidth="E§CRAG_D=200" ShowTotal="No" ShowGroup="No" 

--------------------------------------------- Definizione Filtro -------------------------------------------------

::FLT Cod="SRCCL" Des="Filtro" 

::FLT.FLD NAM(E§CRAG) INT(Collaboratore) OGG(**) OPE(L4) 

::FLT.FLD NAM(E§RAGS) OPE(L4)

Data la facilità d’uso ed i vantaggi che conseguono dall’utilizzo di questa soluzione, sono state previste opportune estensioni per evitare di dover espressamente esplicitare la fun di scheda generalizzata, come nell’ esempio sottostante.

TfK="FUN" PfK="F(EXD;*SCO;) 1(Q1;CNCOL;S/SRCCL) 2(MB;SCP_SCH;B£EQRY_02)" 

Dal momento che le uniche parti variabili sono rappresentate dall’oggetto (che è comunque presente sul campo) ed il codice della query, è sufficiente utilizzare:
SrcQry(S/SRCCL)

Dove il contenuto dell’estensione sta per il codice della query da utilizzare (Q1).

Eventualmente utilizzare anche:
SrcQryPos(H|V)

Per esplicitare la disposizione dei filtri (H orizzontale, V verticale), senza la necessità di utilizzare TfK e PfK. L’eventuale presenza di un layout posizionale per l’input panel viene correttamente gestito.
La presenza di questi ultimi ha comunque priorità sull’uso delle estensioni Qry.

Servizi utilizzati

Per la gestione delle ricerche tramite gli script SCP_QRY è stato creato un nuovo servizio, il JASER_19. Questo servizio si occupa di produrre un xml contenente due sezioni, una sezione per l’input panel dei filtri ed una seconda sezione (con caricamento differito) per la matrice dei risultati filtrati. Inoltre è stata creata una nuova scheda B£EQRY_02 in cui viene fatta l’inclusione del servizio JASER_19.

Scheda B£EQRY_02:

::I.INC.PGM Pgm(JASER_19) Fun(SRC) Met(SCH) Par(T1(&OG.T1) P1(&OG.P1) K1(&OG.K1)) Ent(SER)

Di seguito il prototipo della scheda generata dal servizio JASER_19:

::G.SEZ Pos(1) Dim(20%) ::G.SUB.INP Tit="Filtri di ricerca" 

::G.SET.INP Position="INLINE" ReadOnly="No" UpdSvc="JASER_02F" UpdPar="Ogg(§§OG) Flt(§§FL)" ModPendMsg="No" ShowMsgBar="No" SubmitButton="No" 

::G.DIN When="Update" Where="LIST" Title="Lista" 

::D.FUN.STD F(EXB;JASER_02F;DSP) 1(§§T1;§§P1;§§FL) 

::G.SEZ Pos(2) 

::G.SUB.MAT Tit="NONE" Id="LIST" Load="D" 

::D.FUN.STD F(EXB;JASER_02;OGG.LIS) 1(§§T1;§§P1;§§K1) 2(§§T1;§§P1;§§SC) 3(§§T1;§§P1;§§FL) P(FLT([ALLSH]) NRE([NRE]))

Si ricorda che questo tipo di scheda può essere richiamato anche al di fuori delle ricerche con Src, e che il risultato sarà una scheda con due sezioni messe in verticale che mostreranno l’input panel con i filtri e la matrice dei risultati (a caricamento differito).

Ricerca tramite scheda custom

La nuova scheda di ricerca viene aperta sotto forma di finestra di dialogo nel momento in cui si preme sulla “lente d’ingrandimento” presente nel componente Src.

Affinché il click sulla “lente” apra la scheda di ricerca è necessario:

  • attivare la modalità tramite Ext del componente Src, impostando “SrcTyp(FltMat)“.
  • Impostare il Tpk e Pfk in questo modo: TfK="FUN" PfK="F(EXD;*SCO;) 2(MB;SCP_SCH;WETEST_EXD) 4(;;SRC_FLT)"

La scheda sarà composta da due sezioni contenenti rispettivamente un input panel che mostra i filtri della ricerca ed una matrice che riceve i filtri e produce la lista dei risultati. Nell’immagine qui sotto è possibile vederne un esempio.

Immagine che raffigura il filtro per la ricerca

La stessa scheda è disponibile anche in ricerca attraverso il componente FLD, per utilizzarla si può sfruttare il seguente script:

::G.SUB.FLD Tit="*NONE" SubNote="Field SRC con scheda ricerca custom" 

::G.SET.FLD Type="Src" Ext="SrcTyp(FltMat)" 

::D.FUN.STD F(EXD;*SCO;) 2(MB;SCP_SCH;WETEST_EXD) 4(;;SRC_FLT)

Da notare che viene sempre utilizzata l’estensione “SrcTyp(FltMat)“, mentre la fun viene passata direttamente nella funzione dati del componente.

Note finali

Questo tipo di ricerche non è ancora supportato in mobile.