JSL_open und join Datentabellen aus einer Liste in einer for-SchleifeHallo, ich versuche, ein Skript zu schreiben, um Tabellen in JSL zu verbinden, wo wir die Anzahl der zu verbindenden Tabellen eingeben können. Zu diesem Zweck habe ich Listen erstellt, um den Speicherort der HTML-Tabelle, Tabellennamen und Joiner-Spalten einzugeben.
Vor dem Join öffne ich zunächst die Tabellen und entnehme ein Element aus den Listen in einer for-Schleife.
Ich erhalte eine Fehlermeldung "Subscript Problem beim Zugriff oder Auswertung von "tables_list[i]", tables_list[/*###*/].
Irgendeine Idee, was ich falsch gemacht habe? Vielen Dank im Voraus für die Unterstützung
// Indicate how many input data tables you have (default = 1)
nb_join_tables = 2;
// Indicate here the link to the first input HTML table
input_table_01 = "http://xxxx.html";
// Indicate here the names you want for your first JMP data tables
JMP_table_01_name = "xxx -01";
// Indicate here the link to the input HTML table to join
input_table_02 = "http://xxxx.html";
input_table_03 = "http://xxxx.html";
// Indicate here the names you want for the data tables to join
JMP_table_02_name = "xxx -02";
JMP_table_03_name = "xxx -03";<BR /><BR />// indicate here the column you want JMP to use as joiner for the tables merge (default:Parameter Set Name)<BR />joiner_table_01 = "Parameter Set Name";<BR />joiner_table_02 = "Parameter Set Name";<BR />joiner_table_03 = "Parameter Set Name";
// Create lists according to the number of tables to merge
tables_list = {input_table_01,input_table_02,input_table_03};
names_list= {JMP_table_01_name,JMP_table_02_name,JMP_table_03_name};
joiners_list = {joiner_table_01,joiner_table_02,joiner_table_03};
For( i = 0, i <= nb_join_tables, i++,
//Open html data table from specific location
dt=Open(
tables_list[i],
HTML Table( 4, Column Names( 0 ), Data Starts( 1 ) )
);
// Set JMP data table name to the desired one
dt << Set Name( names_list[i] );
);SkripterstellungBetreff: JSL_Öffne und verknüpfe Datentabellen aus einer Liste in einer For-SchleifeSuper, danke, das funktioniert!!
Betreff: JSL_Öffne und verknüpfe Datentabellen aus einer Liste in einer For-Schleifedieser Code
tables_list = {input_table_01,input_table_02,input_table_03};erstellt eine Liste der Namen von Variablen, keine Liste des Inhalts der Variablen. Open sieht den Namen der Variablen, wo es den Inhalt erwartet. Damit können Sie die Namen inhaltlich auswerten:
tables_list = Eval List( {input_table_01,input_table_02,input_table_03} );oder Sie können die Liste so aufbauen:
tables_list = {};
tables_list[1] = input_table_01;
tables_list[2] = input_table_02;
tables_list[3] = input_table_03;Betreff: JSL_Öffne und verknüpfe Datentabellen aus einer Liste in einer For-SchleifeHier ist das Protokoll:
ich = 1;
Tabellen_Liste = {Eingabe_Tabelle_01, Eingabe_Tabelle_02, Eingabe_Tabelle_03, Eingabe_Tabelle_04, Eingabe_Tabelle_05, Eingabe_Tabelle_06};
Eingabetabelle_01
Das Open-Argument muss beim Zugriff oder der Auswertung von 'Open' , Open/*###*/(tables_list[i], HTML Table( 4, Column Names( 0 ), Data Starts( 1 ) )) eine Zeichenfolge sein.
Betreff: JSL_Öffne und verknüpfe Datentabellen aus einer Liste in einer For-SchleifeFügen Sie eine Debugging-Anweisung direkt vor der Stelle hinzu, an der sie fehlschlägt:
For( i = 0, i <= nb_join_tables, i++,
show(i, tables_list); // check the log window for the output
//Open html data table from specific location
dt=Open(
tables_list[i],
HTML Table( 4, Column Names( 0 ), Data Starts( 1 ) )
);
// Set JMP data table name to the desired one
dt << Set Name( names_list[i] );
);
Betreff: JSL_Öffne und verknüpfe Datentabellen aus einer Liste in einer For-SchleifeHallo Craige,
Ich habe es auch mit n = 1 versucht und es funktioniert auch nicht. Eigentlich habe ich i = 1 gesetzt und für alle Fälle auf i = 0 getestet und vor dem Posten vergessen, i = 1 erneut zu setzen.
Scheint aber nicht das Problem zu sein.
Irgendeine andere Idee?
Betreff: JSL_Öffne und verknüpfe Datentabellen aus einer Liste in einer For-SchleifeJSL-Listen und -Matrizen beginnen bei 1. JMP verwendet for( i = 1, i <= n, i++, ... statt for( i = 0, i < n, i++, .