Re: ¿Cómo puedo obtener una declaración if que funcione en la función Asignar del script del creador del Tablero?Creo que necesitaremos más contexto sobre exactamente lo que estás haciendo. ¿Necesitamos ver el contexto donde se usa If ()? ¿Está en una nueva ventana () o una aplicación JMP ()?
¿Puedes publicar un script más completo que demuestre el problema?
Re: ¿Cómo puedo obtener una declaración if que funcione en la función Asignar del script del creador del Tablero?Sí, tiene usted razón. Aquí hay una versión simplificada del script en el que estoy trabajando que se enfoca en crear solo los botones. Los botones están en las líneas 37-45. El uso de la instrucción If crea un panel sin botones.
Re: ¿Cómo puedo obtener una declaración if que funcione en la función Asignar del script del creador del Tablero?Hola Kelly: advertiría contra la edición del contenido dentro del bloque Allocate () para un Panel, a menos que solo estés cambiando el valor de una cadena. Cambiar la estructura definitivamente puede resultar en un Tablero (o Aplicación) que no se ejecuta correctamente. Cuando ejecuto su script con los bloques If () habilitados, veo mensajes de error en el registro:
esperando: variable = objeto (); 2 veces en acceso o evaluación de 'Plan' [...]
No estoy seguro de lo que está tratando de hacer con los cuadros condicionales, pero Application Builder funcionará mejor si coloca cualquier lógica adicional que necesite en los scripts de aplicación y módulo: estos scripts se ejecutan como JSL sin formato (o 99% so), mientras que el otro código dentro de un JMPApp () tiene una sintaxis muy específica.
Re: ¿Cómo puedo obtener una declaración if que funcione en la función Asignar del script del creador del Tablero?Puede determinar condicionalmente la expresión que se evalúa cuando se hace clic en el botón antes de crear el botón llamando a Button Box ().
bb expr = If( 1, Expr( ... ), 2, Expr( ... ) );
Button Box( "name", bb expr )
Re: ¿Cómo puedo obtener una declaración if que funcione en la función Asignar del script del creador del Tablero?No vi el mensaje de error en el registro posiblemente debido a diferentes versiones. Estoy usando JMP 14.1.0 por cierto.
Es posible que me falte algo, pero no estoy seguro de por qué sugiere usar la aplicación y el script del módulo en lugar del panel de control porque son lo mismo con la excepción de esta línea de código:
Modo de tablero de instrumentos (1),
Encontré una solución al poner la declaración de condición en la función Initialize () de la función JMP App (). Tengo que crear un botón, pero más adelante puedo determinar si dejaré que se muestre en el tablero o no.
Botón1 << Visibilidad (If (1, "Visible", "Oculto"));
¡Gracias!
Re: ¿Cómo puedo obtener una declaración if que funcione en la función Asignar del script del creador del Tablero?Para aclarar mi comentario sobre los scripts de aplicación y módulo, Application Builder expone scripts que están vinculados a la aplicación de nivel superior y a cada módulo. Se accede a ellos a través de la pestaña Scripts cuando desactiva el modo Panel de control (el texto todavía dice "Panel de control" porque el documento se inició en modo Panel de control):

Este script se guarda textualmente y conservará los cambios que realice. En su ejemplo de edición de la secuencia de comandos Initialize (), notará que si bien la visibilidad del botón puede parecer correcta la primera vez que ejecuta la secuencia de comandos, si guarda la secuencia de comandos desde el generador de Tablero nuevamente, la línea habrá cambiado a:
Button1 << Visibility("Visible");
Esto probablemente perderá su comportamiento previsto si desea utilizar expresiones más complejas que If (1). Todo el contenido de las secciones Allocate (), Organize () e Initialize () se genera desde cero cada vez que se guarda el script y no conservará las personalizaciones si utiliza la interfaz del generador para cambiar y luego guardar el script.
¿Cómo puedo obtener una instrucción if que funcione en la función Asignar del script del creador del Tablero?Mi tablero de mandos crea botones utilizando el cuadro de botones () muy bien. Pero cuando uso una instrucción if ya no funciona. Aquí está la declaración If:
If (1, Botón1 = Caja de botones ()); If (1, Botón2 = Cuadro de botones ());
Todo se compila muy bien y aparece mi tablero, pero faltan estos botones.
Gracias por la ayuda