%%(display:none)
{{{
WikiUp
}}}
/%
[{TableOfContents }]\\
!!! OBIETTIVO\\
Gestire le operazioni di query su oggetti applicativi.

!!! FUNZIONI E METODI\\

!! DEC - Decodifica\\
Esegue le funzioni di decodifica per gli oggetti base coinvolti Q1/Q2/Q3/Q4/Q5.
Il codice oggetto da decodificare deve essere passato nel campo £IQRIK.
Rappresenta l'interfaccia comune per la /COPY £DEC

!! INZ - Inizializzazione\\

In sequenza le operazione eseguite dalla funzione:

1. Inizializza la query caricando le impostazioni dal programma di fonte o da file di script.

2. Se non valorizzati £IQRSC/£IQRFL/£IQROR vengono impostati i default della query.

3. Vengono eseguite le routine di caricamento campi:
Schema      £IQ2(CAR:SCH)
Filtro      £IQ3(CAR:FLT)
Ordinamento £IQ4(CAR:ORD)
Nota:
I campi schema/filtro/ordinamento possono assumere il valore '**' che indica al motore di query
l'impostazione da programma chiamante delle definizioni; non verranno quindi eseguite le routine di caricamento.
Questa opzione risulta utile nell'utilizzo da programma RPG per cablare determinate impostazioni.

4. Viene eseguita l'inizializzazione del programma di fonte B£IQR_xx(INZ:)

5. Vengono eseguite le routine di caricamento valori e completamento delle definizioni campi:
Schema      £IQ2(CMP:SCH)
Filtro      £IQ3(CMP:FLT)
Ordinamento £IQ4(CMP:ORD)

Il completamento delle definizioni campi si basa sul tipo tracciato degli oggetti Q2/Q3/Q4.
Questa operazione avviene qualora il programma di fonte non abbia già provveduto.

Se lo schema risulta vuoto, il motore di query provvede a impostarne uno di default Codice/Descrizione,
valorizzandolo tramite £IQROK e £DEC(£IQROG:£IQROK).

6. Vengono eseguite le routine di caricamento valori:
Filtro      £IQ3(CAR:VAL) £IQ3IN(FLT() CFG())

Se passato il parametro FLT() in £IQRIN, vengono caricati i valori di filtro secondo la sintassi:
FLT(£IQR3I(x)(valore_x))
Se passato il parametro Q3_CFG([MEIDOJ]) in £IQRIN, vengono caricati i valori di filtro dalla configurazione.
Se passato il parametro Q3_CFG(*USER) in £IQRIN, viene ricercata la configurazione del filtro utente.

In questa fase vengono estratti i campi di schema/filtro con valore dinamico.                     .
La valorizzazione di questi campi e la conseguente applicazione del filtro verrà eseguita dal motore di
query qualora risulti necessario, ovvero £IQ2DDI/£IQ3DDI = '1' per un qualsiasi campo di schema/filtro.
E' compito del programma di fonte valorizzare correttamente questi campi che per defaut assumono valore ='1'.

!! SLC - Selezione\\

In sequenza le operazione eseguite dalla funzione:

1. Viene eseguita la selezione dei records con chiamata al programma di fonte B£IQR_xx(SLC:)
Il campo £IQRIN potrebbe contenere il parametro PAG() indicante il numero di pagina da cui eseguire la
selezione dei records. La valorizzazione di questo campo dipende dalla chiamata B£IQR_xx(NXT:PAG)
Il campo £IQRIN potrebbe contenere il parametro NRE() il numero elementi richiesti oppure *ALL indicante
il caricamento completo.

!! NXT - Avanzamento record\\

In sequenza le operazione eseguite dalla funzione:

1. Viene eseguita la scansione dei records con chiamata al programma di fonte B£IQR_xx(NXT:)
Al ritorno di questa chiamata la schiera £IQR2V contiene il valore dei campi dello schema, che saranno
eventualmente completati e filtrati dal motore di query.
L'eventuale parzializzazione dei records avviene tramite chiamata £IQ3(CHK:FLT).
L'eventuale completamento del record avviene tramite chiamata £IQ2(CMP:VAL).

!! NXT:PAG - Avanzamento pagina\\

In sequenza le operazione eseguite dalla funzione:

1. Viene richiesto il valore di paginazione da passare per la successiva selezione tramite la chiamata B£IQR_xx(NXT:PAG).
Il valore di ritorno del campo £IQROU verrà ritornato nella successiva chiamata paginata B£IQR_xx(NXT:) PAG(£IQROU).