Problem mit der Auswahl der DatentabelleHallo,
Ich hoffe, es geht dir gut.
Dies ist ein sehr langer und nicht optimierter Code, um 2 Teilmengen aus zwei verschiedenen Datensätzen ("CL and Spec" und "Data set") auszuführen. Es gibt ein Textfeld, in dem Sie auswählen können, welche Zeilen entsprechend den Ebenen der Datensätze ausgewählt werden sollen.
Das Problem besteht jedoch darin, dass nach der Ausführung der Teilmenge der ersten Datentabelle (Datensatz mit dem Namen „CL und Spec“) die Teilmenge des zweiten Datensatzes (mit dem Namen „Datensatz“) nicht ohne Fehlermeldung funktioniert. Es gibt einfach keine Teilmenge, die ausgeführt wird. Mein Verständnis ist, dass es ein Problem mit meiner Art gibt, den Datensatz auszuwählen, der für die Teilmenge ausgewählt werden soll. Oder ich habe die Funktion "Aktuelle Datentabelle" nicht korrekt verwendet.
Hier ist mein Code:
dt2 = Data Table( "CL and Spec" );
Current Data Table( dt2 );
// get unique values from the strength column
Summarize( dt2, levels = by( :Product ) );
// construct a window containing checkboxes
New Window( "Selection",
modal,
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ),
V List Box(
Text Box( "Select values:" ),
here:cb = Check Box( levels ),
Spacer Box( size( 0, 20 ) ),
Button Box( "Create Subset", doSubset() )
)
)
);
// define function to perform when button is cliccked
doSubset = Function( {},
{default local},
dt2 = Current Data Table();
dt2 << clear select;
// get user selections
selected = here:cb << get selected;
// iterate over each of the selected values
// and select the associated rows
For( i = 1, i <= N Items( selected ), i++,
rows = dt2 << select where( :Product == selected[i], current selection( "extend" ) )
);
// create a subset table
dt2 << subset( selected rows( 1 ), selected columns only( 0 ) );
dt2 << clear select;
);
// Define the control and specification limits
LSL = dt2:LSL[1];
USL = dt2:USL[1];
dt = Data Table( "Data Set" );
Current Data Table( dt );
// get unique values from the strength column
Summarize( dt, levels = by( :Strength ) );
// construct a window containing checkboxes
New Window( "Selection",
modal,
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ),
V List Box(
Text Box( "Select values:" ),
here:cb = Check Box( levels ),
Spacer Box( size( 0, 20 ) ),
Button Box( "Create Subset", doSubset() )
)
)
);
// define function to perform when button is cliccked
doSubset = Function( {},
{default local},
dt = Data Table( "Data Set" );
Current Data Table( dt );
dt << clear select;
// get user selections
selected = here:cb << get selected;
// iterate over each of the selected values
// and select the associated rows
For( i = 1, i <= N Items( selected ), i++,
rows = dt << select where( :Strength == selected[i], current selection( "extend" ) )
);
// create a subset table
dt << subset( selected rows( 1 ), selected columns only( 0 ) );
dt << clear select;
);Ich hoffe, meine Frage und mein Problem sind klar ausgedrückt 
Vielen Dank für Ihre Hilfe und einen schönen Tag!
Jean
SkripterstellungBetreff: Problem mit der Auswahl der DatentabelleIch habe Ihre Tabellen nicht, aber so würde ich ein ähnliches Problem angehen:
Names Default to Here( 1 );
dt2 = Data Table( "CL and Spec" );
// get unique values from the strength column
levels = Associative Array( dt2:product ) << Get Keys;
// construct a window containing checkboxes
continue = 0;
New Window( "Selection",
<<MODAL></MODAL>
Betreff: Problem mit der Auswahl der DatentabelleTatsächlich ist mein Anliegen, dass ich 2 verschiedene Datensätze öffnen und Daten aus dem ersten verwenden und dann zum nächsten wechseln möchte.
Ich habe die Funktion "Aktuelle Datentabelle" verwendet, bevor ich die Teilmenge ausgeführt habe.
Ein erster Teil des Codes besteht darin, den Datensatz „CL and Spec“ zu laden, ein Textfeld zu öffnen, eine Zeile des Datensatzes „CL and Spec“ zu unterteilen und die Parameter „LSL“ und „USL“ in der LSL zu speichern und USL-Variablen. Dann wird der Datensatz „CL and Spec“ nicht mehr verwendet.
Names Default to Here( 1 );
dt2 = Data Table( "CL and Spec" );
// get unique values from the strength column
levels = Associative Array( dt2:product ) << Get Keys;
// construct a window containing checkboxes
continue = 0;
New Window( "Selection",
<<MODAL></MODAL>
Dann besteht der zweite Teil des Codes darin, den Datensatz „Datensatz“ zu laden, ein Textfeld zu öffnen und Zeilen des Datensatzes „Datensatz“ zu unterteilen.
dt = Data Table( "Data Set" );
Current Data Table( dt );
// get unique values from the strength column
Summarize( dt, levels = by( :Strength ) );
// construct a window containing checkboxes
New Window( "Selection",
modal,
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ),
V List Box(
Text Box( "Select values:" ),
here:cb = Check Box( levels ),
Spacer Box( size( 0, 20 ) ),
Button Box( "Create Subset", doSubset() )
)
)
);
// define function to perform when button is cliccked
doSubset = Function( {},
{default local},
dt = Data Table( "Data Set" );
Current Data Table( dt );
dt << clear select;
// get user selections
selected = here:cb << get selected;
// iterate over each of the selected values
// and select the associated rows
For( i = 1, i <= N Items( selected ), i++,
rows = dt << select where( :Strength == selected[i], current selection( "extend" ) )
);
// create a subset table
dt << subset( selected rows( 1 ), selected columns only( 0 ) );
dt << clear select;
);Die zweiten Daten werden jedoch nicht geladen oder es gibt keine Teilmengen der Zeilen ...
Vielen Dank für Ihre Hilfe!