secuencias de comandos "agregar fila" con entrada de lista dinámicaHola a todos,
Tengo un TableBox como tabla de informes en mi diario. Puedo llenar esta tabla con "agregar fila", que como entrada requiere una lista. Esto funciona cuando escribo directamente los valores de la lista en la función. Vea abajo. Cuando preparo la lista por adelantado y la analizo en la función, ya no funciona. Vea el segundo ejemplo a continuación. ¿Por qué? El objetivo es construir esta "fila agregada" en un bucle con información diferente cada vez.
Construir
// 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);
La personalización en masaRe: scripting "agregar fila" con entrada de lista dinámicaLa razón por la que funciona es lo que simplemente hace el código: construir el JSL exacto necesario en una cadena de caracteres y luego usar Eval(Parse(…….)) para indicarle a JMP que envíe el valor de la cadena de caracteres a JMP.
Si toma su ejemplo específico, la sintaxis codificada para lograr lo que desea es
ob[TableBox(1)] << add row ({"1", "2", "3", 4});
Entonces, si uno puede construir la línea de código anterior en una cadena de caracteres, la cadena de caracteres puede enviarse a JMP usando la combinación de funciones Eval(Parse()). Aquí hay una expansión simple de su script para, con suerte, dejar esto claro.
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 ) );
Re: scripting "agregar fila" con entrada de lista dinámica¡Muchas gracias!
El primero no funcionó. La segunda solución funcionó al agregar 2 corchetes faltantes al final. Todavía no entiendo por qué funciona, pero quizás lo descubra más adelante.
Construir
Re: scripting "agregar fila" con entrada de lista dinámicaPruebe las opciones en el siguiente script. (Nota: se agregaron 2 ")" al final para que la sintaxis sea correcta, después de que @Bauke observara los caracteres faltantes)
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) || ");"));