<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti,
Sto cercando di scrivere uno script che crei un sottoinsieme basato su due scelte in una casella combinata dinamica. Sembra che la parte di dialogo sia buona poiché le mie variabili vengono salvate mentre le seleziono, ma la generazione attuale del sottoinsieme non funziona.
/ * rimuove temporaneamente la parte aperta del database * /
clearGlobals ():
ER_Temp = Open ("C: \ Users \ Kilik \ Desktop \ Tbl_RIE_ERS.jmp");
/ * Estrai una lista di film unici nel set "a" e strumenti unici nel set "b" * /
Riepiloga (a = Per (: Film));
Insert Into (a, "", 1);
Riepiloga (b = Per (: Strumento));
Insert Into (b, "", 1);
/ * Crea una finestra di dialogo * /
Nuova finestra ("Esempio",
<< modale,
H List Box (
/ * Crea una casella da cui selezionare il film * /
Panel Box ("Seleziona un film:",
cb1 = Casella combinata (
un,
<< SetFunction (
Funzione ({this},
myFilm = this << Get Selected ();
)
)
)
),
/ * Crea una casella da cui selezionare lo strumento * /
Panel Box ("Seleziona uno strumento:",
cb2 = Casella combinata (
b,
<< SetFunction (
Funzione ({this},
myTool = this << Get Selected ();
)
)
)
),
)
);
// crea un sottoinsieme basato su entrambe le selezioni
ER_Temp << clearRowStates;
ER_Temp << selectWhere ((: Film == MyFilm) & (: Tool == myTool));
Selection = ER_Temp << Sottoinsieme (nome tabella di output ("selezione")));
Grazie,
David
Ciao David.
In questo esempio, sia myFilm che myTool saranno stringhe. Come Select Select viene scritto, se: Film o: Tool sono colonne numeriche, quindi nessuna riga verrà selezionata perché non è possibile che una colonna numerica abbia un valore stringa. La funzione Num () convertirà un numero rappresentato come una stringa (ad esempio, "12") in un valore numerico.
Un'altra cosa da considerare è che potrebbe essere possibile che non ci siano valori corrispondenti nei dati per le selezioni effettuate nella nuova finestra. All'utente vengono presentati tutti i valori unici di: Film e i valori unici di: Tool, ma ciò non significa che per ogni valore di: Film ogni valore di: Lo strumento è rappresentato nei dati. L'istruzione Select Where () sta selezionando solo le righe in cui entrambe le condizioni sono vere.
Spero che sia d'aiuto.
Wendy
Hai una parentesi aggiuntiva nella tua istruzione sottoinsieme. Inoltre, eviterei di avere una variabile e la tabella abbia lo stesso nome. Cambiarlo in:
Select_dt = ER_Temp << sottoinsieme ( nome della tabella di output ( "selezione" ) , righe selezionate ( 1 )) ;