Tengo una secuencia de comandos que usa una ventana con casillas de verificación, cuadros combinados, edición de números y cuadros de edición de texto para tomar la entrada del usuario y luego usa la entrada para realizar el análisis de los datos (consulte la imagen adjunta para ver qué aspecto tiene el cuadro). Para facilitar el uso con diferentes conjuntos de opciones, incluí un botón Restablecer que cierra todas las tablas de datos e informes abiertos y borra todas las opciones ingresadas. Por lo general, el botón funciona correctamente, pero a veces se produce un error al intentar restablecer la casilla de verificación para el Rango de fecha individual o el primer cuadro de edición de texto debajo de Ingresar códigos NC. La alerta de error dice "Enviar espera un objeto de secuencias de comandos en el acceso o evaluación de 'Enviar'". Incluí una imagen del cuadro de alerta y las opciones que seleccioné cuando ocurrió el error. La secuencia de comandos adjunta es solo la parte en cuestión, por lo que está configurada para establecer el cuadro de entrada de datos, luego obtener las opciones ingresadas y puede restablecerse y cerrarse. No estoy seguro de lo que ocurrirá con la casilla de verificación y el cuadro de ingreso de datos, ya que el resto parece que se restablecen correctamente, por lo que cualquier ayuda sería apreciada.


Tenga en cuenta que cualquier otro script o procedimiento que use una de esas variables o cualquier tabla que pueda tener un nombre de columna como una de esas variables, incluso si estuviera abierta durante unos pocos segundos, puede entrar en conflicto con el nombre del objeto de visualización.
Definitivamente voy a buscar en los espacios de nombres. Si el script se ejecutó dos veces cuando se produce el error, creo que lo que está proponiendo lo resolvería, pero cuando se presiona el botón de reinicio, no se genera una nueva ventana de entrada. Solo los valores de los cuadros para tomar los datos se restablecen a los valores predeterminados. Eso y el hecho de que el error solo se produce a veces y solo con algunas de las casillas de verificación me lleva a pensar que podría haber más cosas.
Este tipo de error ocurrirá cuando el objeto ya no exista, o haya un problema de alcance, un conflicto de nombres. Espero que a veces esto pueda ser causado por esto.
Puedo reproducir este error:
- Ejecuta tu script, establece algunos valores
- Ejecute su script de nuevo
- Cerrar la segunda ventana de diálogo
- Vaya a la primera ventana y seleccione Restablecer; se producirá el error. Esto se debe a que todos los cuadros de visualización d1, d2, etc. se han asignado a la segunda ventana de diálogo. Restablecer es intentar acceder a un objeto que ya no existe.
Programación con una referencia a este << principal superior y luego encontrar el objeto o usar el paisaje de la ventana. ventana: d1, ventana: d2, etc. arreglará esto
Un gran beneficio de crear una aplicación es que cada instancia tiene su propio espacio de nombres y facilita la escritura.
Otro enfoque es agregar a la parte superior de su script Nombres predeterminados aquí (1); y guárdalo.
Cierre todas las instancias de su ventana de diálogo.
Ahora ejecuta este script (cambiando la ruta si es necesario)
Names Default to Here(1);
Include ("c:\temp\Reset Boxes Question Script.jsl", <<NEW context=""></NEW>Cambie algunos valores en la primera ventana de diálogo, luego cierre la segunda ventana de diálogo. Ahora regrese a la primera ventana (solo repita los pasos que causaron el error) y presione Restablecer. Sin problemas.
El uso de un solo Include () con nuevo contexto crea un espacio de nombres anónimo para el diaólogo y sus objetos con nombre, y se resuelve el problema de alcance.
Deberías leer sobre los espacios de nombres.