Ricerca dei record > Ricerca di record con valori uguali in campi diversi
 

Ricerca di record con valori uguali in campi diversi

È possibile cercare record in cui campi diversi hanno lo stesso valore. Ad esempio, si supponga di voler trovare tutti gli ordini per i quali l'importo pagato è uguale all'importo fatturato. Utilizzare un campo Calcolo o un ciclo in uno script per confrontare i valori dei due campi in ciascun record.

Per trovare i record con valori uguali utilizzando un campo Calcolo:

1. Nella tabella contenente i campi da confrontare, creare un campo Calcolo con risultato di tipo Numero. Vedere Definizione di campi Calcolo.

Ad esempio, creare un campo Calcolo ConfrontaCampi.

2. Nella finestra di dialogo Specifica calcolo, inserire un'espressione che metta a confronto i due campi.

Ad esempio, l'espressione CampoA = CampoB imposta il campo ConfrontaCampi su 1 solo se entrambi i campi hanno lo stesso valore; in caso contrario, il valore di ConfrontaCampi è 0.

3. Aggiungere il campo Calcolo (ConfrontaCampi) al formato.

Vedere Posizionamento e rimozione dei campi da un formato.

4. Avviare una richiesta di ricerca, digitare 1 nel campo Calcolo (ConfrontaCampi), quindi fare clic su Esegui la ricerca.

Vedere Impostazione di una richiesta di ricerca.

Il gruppo trovato è composto da tutti i record per i quali il campo Calcolo ConfrontaCampi è uguale a 1, ovvero tutti i record per i quali CampoA ha lo stesso valore di CampoB.

Per trovare i record con valori uguali utilizzando uno script:

1. Creare uno script.

Vedere Creazione e modifica degli script.

2. Aggiungere le seguenti istruzioni allo script, dove Tabella::CampoA e Tabella::CampoB sono i due campi da confrontare in un determinato formato (in questo caso, "Il mio formato").

Vai al formato ["Il mio formato" (Tabella)]
Mostra tutti i record
Vai a Record/Richiesta/Pagina [Primo]
Loop
If [Tabella::CampoA = Tabella::CampoB]
Vai a Record/Richiesta/Pagina [Successivo; Esci dopo l'ultimo: Attivata ]
Else
Ometti il record
End If
End Loop

3. Eseguire lo script.

Lo script mostra tutti i record e va al primo record. Quindi, per ogni record, confronta i due campi e omette i record in cui CampoA non è uguale a CampoB.

Nota  Invece di utilizzare un segno uguale nel campo Calcolo, o nell'istruzione di script If riportata sopra, è possibile utilizzare un qualsiasi operatore di confronto o logico per confrontare i campi. Ad esempio, utilizzare Tabella::CampoA > Tabella::CampoB per trovare i record in cui CampoA è maggiore di CampoB. Vedere Operatori di confronto e Operatori logici.