El propósito de este código es obtener información del usuario para generar un informe. El Usuario seleccionará el Mes y el tipo. El código funciona parcialmente como se muestra, pero tan pronto como intento convertirlo a una función que reside en otro archivo JSL (llamado con "incluir"), falla. No puedo obtener las dos variables y siempre aparece el error "Nombre no resuelto". Sé que Month regresa como una lista y que el tipo regresa como una cadena (?). Lo que me falta y cómo puedo obtener el mes y el tipo que devuelve la función.
¡Gracias!
Names Default To Here( 1 );
monthLst = {"may", "June", "July"};
nw = New Window( "Select Month",
<<MODAL> ","Contabilidad", "Finanzas"}, ), Cuadro espaciador( tamaño( 10, 10 ) ), Cuadro de lista H( Alinear( izquierda ), Cuadro espaciador(), Cuadro de botón( "Cancelar", bbCancelled = 1 ), Cuadro de botón( "OK", bbCancelled = 0; selectMo = tb2 << Obtener seleccionado; rcb = cb << Obtener seleccionado; ) ) ), Cuadro espaciador ( tamaño ( 50, 10 ) ) ), Cuadro espaciador ( tamaño ( 25, 30 ) ) ); If( bbCancelled == 1, Stop(), If( selectMo == {}, //error modal ::dialogModalNoEdit( "Por favor seleccione un mes." ); //llamar recursivamente a la función de ventana modal SelExpModal( MonthLst ); , //si se seleccionaron valores, devolverá resultados //Return(selectMo[1] ), ) ); Print(selectMo); Print(rcb);</MODAL>Si entiendo correctamente..
Si está creando una función, tendrá que devolver los valores que desea usar después de que se haya ejecutado la función (a menos que desee usar variables globales).
En este caso, podría devolverlos, por ejemplo, así (la matriz asociativa quizás sea mejor):
return(selectMo, rcb);
Y en el script que incluye ese script puedes acceder a ellos:
Names Default To Here(1);
Include("MonthTypeFunc.jsl");
retVal = MonthTypeWindow();
show(retVal[1],retVal[2]);Scripts de ejemplo adjuntos. Colóquelo en la misma carpeta y ejecute Main.jsl.
¡Muchas gracias jthi!Nunca pensé en usar una matriz asociativa.