Ciao a tutti,
Ho due tabelle dati diverse e devo trovare e selezionare se la parola esiste sull'altra tabella.
Ho provato a utilizzare Contiene() ma non funziona. Per favore aiuto
Ecco un esempio:
dt1
| cane |
| gatto |
| pescare |
| uccello |
| mucca |
dt2
| cane e gorilla |
| topo, giraffa |
| squalo, balena, pinguino |
| struzzo e uccello |
| leone e tigre, mucca |
Risultato (il testo in grassetto è selezionato):
dt2
| cane e gorilla |
| topo, giraffa |
| squalo, balena, pinguino |
| struzzo e uccello |
| leone e tigre, mucca |
Ecco un modo per fare quello che stai cercando. Tieni presente che credo che la tabella che mostra i risultati abbia la riga 3 selezionata in modo errato.
Names Default To Here( 1 );
// Create the tables
dt1 = New Table( "Lookup", Add Rows( 5 ), New Column( "key", Character, Set Values( {"dog", "cat", "fish", "bird", "cow"} ) ) );
dt2 = New Table( "Base",
Add Rows( 5 ),
New Column( "Target", Character, Set Values( {"dog&gorilla", "mouse, giraffe", "shark, whale, penguin", "ostrich&bird", "lion&tiger,cow"} ) )
);
// Place all key values into a list
KeyList = dt1:key << get values;
// Loop across the keys and search each row of Target for the
// match
For Each( {val}, keyList,
For Each Row(
If( Contains( :Target, val ),
Row State( Row() ) = Selected State( 1 )
)
)
);

Solo una domanda successiva, posso utilizzare le righe selezionate per abbinarle ad altre tabelle? Come nell'aggiornamento?
Non capisco la tua domanda. Tuttavia, puoi creare facilmente un sottoinsieme della tabella di base che contiene solo le righe selezionate e quindi aggiornare un'altra tabella da quella tabella. Ecco il JSL per eseguire il sottoimpostazione
dt3 = dt2 << Subset( selected columns( 0 ), selected rows( 1 ) );