Buongiorno, Giorgio.
temo di dover iniziare con un po di teoria: in FileMaker il valore di una campo viene valutato all’uscita, quindi comunque devi uscire dal campo per valutare quanto inserito. ciò detto, nulla ti impedisce di impostare sul campo un trigger SuModificaOggetto che  mediante script memorizzi la posizione del cursore, esca dal campo, ci rientri e si riposizioni sulla posizione di partenza, in maniera del tutto trasparente all’utente, realizzando effettivamente l’illusione di aggiornamento man mano che si scrive.
Questa impostazione richiede ovviamente più risorse che la ricerca finale e quindi può essere più lenta in caso di grandi quantità di dati o di accesso remoto al DB con una connessione non buona.
Passando poi al discorso portale, hai due opzioni: un portale filtrato e una relazione. Il primo è più lento ma più flessibile. La seconda è più veloce ma più rigida.
Per fare un portale filtrato, ti basta una relazione cartesiana (X), ovvero mettere in relazione tutti i record della prima con tutti i record della seconda; per definire il filtro ti basta un calcolo del tipo:
if(evuoto(tuocamporicerca); nomerelazione::chiaveprimaria; contaricorrenze(nomerelazione::cod.utente & nomerelazione::intestazione; tuocamporicerca)
ovvero: se il tuo campo ricerca è vuoto mostra tutti i record (ovvero quelli che hanno la chiave primaria piena, quindi tutti), in caso contrario mostra quei record che comprendono nel codice utente e descrizione quanto hai inserito nel campo ricerca (che ti conviene rendere globale). Questa opzione ha il vantaggio di permetterti una ricerca completa nella descrizione (ad es. cercando ”ver” trovi sia VERDI che AVVERTITI), ma richiede una potenza di calcolo molto maggiore, perché non sfrutta gli indici su cui sono basate le relazioni, quindi è molto più lenta.
Il portale basato sulla relazione conviene impostarlo invece NON sul campo ricerca ma su un campo calcolato invisibile all’utente, e basato su una relazione multikey (FileMaker interpreta ogni linea separata da acapo come una chiave di relazione a se stante), creando un campo calcolato del tipo:
if(evuoto(tuocamporicerca) ”  ¶zz”; tuocamporicerca&¶&”tuocamporicerca&zz”)
e mettendo il campo in relazione con il campo intestazione della tabella anagrafica. per ≤ E ≥.
In sostanza il calcolo se il campo è vuoto riporta due spazii sulla prima riga e ”zz ”sulla seconda; se il campo è pieno riporta il campo nella prima riga e il campo e zz sulla seconda. La doppia relazione in ≤ E ≥ cerca tutti i record che siano maggiori o uguali E minori o uguali di entrambe li righe, quindi tutti i valori nel caso del campo vuoto e tutti i valori compresi fra Rossi e Rossizz nel catu tu abbia inserito Rossi nel campo ricerca.Volendo essere raffinati puoi anche creare nella tabella anagrafica un campo calcolato  codice cliente & ¶ & intestazione da mettere in relazione per cercare su tutti e due i campi.
Questo approccio è più veloce, ma oltre ad essere più macchinoso ti permette di trovare solo i valori che INIZIANO CON quello che hai inserito nel campo.
Per quanto attiene alla tua ultima domanda, è difficile rispondere così: qualìè il risultato che devi ottenere?
a presto.
.g.