Skripting „Zeile hinzufügen“ mit dynamischer ListeneingabeHallo alle,
Ich habe eine TableBox als Berichtstabelle in meinem Tagebuch. Ich kann diese Tabelle mit „Zeile hinzufügen“ füllen, was als Eingabe eine Liste erfordert. Dies funktioniert, wenn ich die Listenwerte direkt in die Funktion schreibe. Siehe unten. Wenn ich die Liste jedoch im Voraus vorbereite und sie in die Funktion analysiere, funktioniert sie nicht mehr. Siehe zweites Beispiel unten. Warum? Das Ziel besteht darin, diese „Zeile hinzufügen“ in eine Schleife mit jeweils unterschiedlichen Informationen einzubauen.
Bauke
// possible and working
ob[TableBox(1)] << add row ({"1","2","3",4});
// not possible why?
rowContents2 = {"1","2","3",4};
ob[TableBox(1)] << add row (rowContents2);
MassenanpassungBetreff: Skripterstellung „Zeile hinzufügen“ mit dynamischer ListeneingabeDer Grund dafür, dass es funktioniert, liegt darin, was der Code einfach tut: Er baut genau die benötigte JSL in eine Zeichenfolge ein und verwendet dann Eval(Parse(…….)), um JMP anzuweisen, den Wert der Zeichenfolge an JMP zu übermitteln.
Wenn Sie Ihr spezifisches Beispiel nehmen, ist die fest codierte Syntax, um das zu erreichen, was Sie wollen
ob[TableBox(1)] << add row ({"1", "2", "3", 4});
Wenn man also die obige Codezeile in eine Zeichenfolge umwandeln kann, kann die Zeichenfolge dann mithilfe der Funktionskombination Eval(Parse()) an JMP übermittelt werden.Hier ist eine einfache Erweiterung Ihres Skripts, um dies hoffentlich deutlich zu machen
rowContents2 = {"1","2","3",4};
// Create a character string variable with the required syntax
myString = "ob[TableBox(1)] << add row (" || char(rowContents2) || ");";
// Write the string to the log to show what it looks like
show( myString );
// Run the character string variable
Eval( Parse( myString ) );
Betreff: Skripterstellung „Zeile hinzufügen“ mit dynamischer ListeneingabeVielen Dank!
Das erste hat nicht funktioniert. Die zweite Lösung hat funktioniert, als am Ende zwei fehlende Klammern hinzugefügt wurden. Ich verstehe noch nicht, warum es funktioniert, aber vielleicht werde ich das später herausfinden.
Bauke
Betreff: Skripterstellung „Zeile hinzufügen“ mit dynamischer ListeneingabeProbieren Sie die Optionen im folgenden Skript aus.(Hinweis: 2 nachgestellte „)“ wurden hinzugefügt, um die Syntax danach zu korrigieren @Bauke Beobachtung der fehlenden Zeichen)
rowContents2 = {"1","2","3",4};
ob[TableBox(1)] << add row (eval(rowContents2));
// or if necessary this should force it to work
eval(parse("ob[TableBox(1)] << add row (" || char(rowContents2) || ");"));