Mi sono accorto di un buchetto: gestione ricerche utente per pannello.
In uscita da un pannello salvo i filtri QBE e relativo codice campo.
Quando l'utente lo chiede recupero i filtri e li applico sui campi corrispondenti.
Funziona correttamente.
Ma se in mezzo ai campi del pannello (visibili o meno non importa) ci metto un campo di lookup, l'indice ritornato (vedi sotto) è aumentato del numero di campi di lookup, con il risultato che il filtro viene applicato al campo seguente per tante posizioni quanti i campi di lookup presenti.
Poniamo un pannello con i campi "AAA", "BBB", "CAMPOLOOKUP", "DBCode", "ZZZ"
In estrazione mi salvo il QBE del campo "DBCode" (è corretto, lo vedo sul db) ed il filtro qbe.
Quando devo applicarlo devo usare istruzioni di questo tipo (il codice campo, nell'esempio "DBCode", ovviamente non è una costante):
IDPanel idp = Pannello.IDPanel()
int IDX = idp.findField("DBCode")
PANEL RICERCA.Set QBE Filter (IDX, "QBE Text")
Nell'esempio specifico IDX viene ritornato = 4 (il primo è lo 0) e quindi il filtro qbe finisce nel campo succcessivo "ZZZ" e, ovviamente, non trova :-(