<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich möchte ein Skript haben, mit dem ich Spalten aus der ausgewählten Datentabelle auswählen kann (die noch geöffnet sind). Ich habe das Skript durch Auswahl aus der Liste der geöffneten Datentabellen gestartet. Irgendwie wird diese gewählte Datentabelle nicht ColumnDialog zugewiesen
Wie kann die aktuelle Datentabelle basierend festgelegt werden, indem Sie aus der Liste der geöffneten Datentabellen auswählen und sie ColumnDialog zuweisen lassen?
Mein Skript ist wie folgt:
Daten
OpenDT = List ();
Für (i = 1, i <= N Table (), i ++, Einfügen in (OpenDT, Datentabelle (i)));
dlgDT = Dialog ("Bitte wählen Sie 1 Datentabelle zur Analyse aus"),
VList (selectDT = List Box (OpenDT)),
HList (Schaltfläche ("OK", dt_name = selectDT << Get Name, set << aktuelle Datentabelle (dt_name))
Schaltfläche ("Abbrechen", Stopp ())
));
colDT = ColumnDialog (Titel ("Test"),
L1uSelect = ColList ("L1 u_prime:", Max Col (1), Min Col (1), Datentyp (Numerisch)),
L1vSelect = ColList ("L1 v_prime:", Max Col (1), Min Col (1), Datentyp (Numerisch)),
L2uSelect = ColList ("L2 u_prime:", Max Col (1), Min Col (1), Datentyp (Numerisch)),
L2vSelect = ColList ("L2 v_prime:", Max Col (1), Min Col (1), Datentyp (Numerisch))
);
L1u = colDT ["L1uSelect"];
L1v = colDT ["L1vSelect"];
L2u = colDT ["L2uSelect"];
L2v = colDT ["L2vSelect"];
Danke vielmals. Es ist sehr hilfreich!
Die Funktion Dialog () gibt eine Liste der Elemente zurück, die im Dialogfeld erstellt wurden. Sie fügen keine Ausdrücke in die Button () - Elemente eines Dialogs () ein. Stattdessen entpacken Sie die Liste, nachdem der Dialog geschlossen wurde.
Hier ist ein Arbeitsformular Ihres Beispiels:
OpenDT = Liste () ;
Zum ( ich = 1 . ich <= N Tabelle () . ich ++
Einfügen in ( OpenDT . Datentabelle ( ich ) )
) ;
dlgDT = Dialog (
"Bitte wählen Sie 1 Datentabelle zur Analyse aus" .
VList ( selectDT = Listenfeld ( OpenDT ) ) .
HList ( Taste ( "OK" ) . Taste ( "Stornieren" ) )
) ;
Show ( dlgDT ) ;
Ob ( dlgDT [ "Taste" ] == 1 .
Entfernen von ( dlgDT . N Artikel ( dlgDT ) ) ;
Bewertungsliste ( dlgDT ) ;
) ;
Aktuelle Datentabelle ( selectDT [ 1 ] ) ;
colDT = Spaltendialog (
Titel ( "Prüfung" ) .
L1uSelect = ColList ( "L1 u_prime:" . Max Col ( 1 ) . Min. Col ( 1 ) . Datentyp ( Numerisch ) ) .
L1vSelect = ColList ( "L1 v_prime:" . Max Col ( 1 ) . Min. Col ( 1 ) . Datentyp ( Numerisch ) ) .
L2uSelect = ColList ( "L2 u_prime:" . Max Col ( 1 ) . Min. Col ( 1 ) . Datentyp ( Numerisch ) ) .
L2vSelect = ColList ( "L2 v_prime:" . Max Col ( 1 ) . Min. Col ( 1 ) . Datentyp ( Numerisch ) )
) ;
L1u = colDT [ "L1uSelect" ] ;
L1v = colDT [ "L1vSelect" ] ;
L2u = colDT [ "L2uSelect" ] ;
L2v = colDT [ "L2vSelect" ] ;
Um ehrlich zu sein, ist Dialog () weniger bequem als das New Window () - Konstrukt zum Erstellen von Displays. Es erfordert spezielle Konstruktoren für Anzeigeelemente, und die Liste, die zurückgegeben wird, ist umständlich. Das ist ein Grund, warum es abgelehnt wurde. Siehe die Online-Dokumentation zur Erstellung modaler Darstellungen um zu sehen, wie man stattdessen New Window () verwendet.
-Jeff