Excluir datos al cargar datos con un script<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola comunidad
Cuando abro una tabla con una base de datos con el siguiente script guardado en el datatable, funciona. Cuando guardo la secuencia de comandos en un elemento del menú en un complemento, simplemente extrae los datos y no los excluye. ¿Que pasa?
Abrir base de datos
"DSN = Laboratorio de conexión PI SQL; Descripción = Laboratorio de conexión PI SQL; UID =; Trusted_Connection = Sí; APP = JMP; WSID = SFX-5GCN2M1; DATABASE = LabData",
"SELECT * FROM dbo.NSI_Discovered_Factors_Lab_Data",
"NSI_Discovered_Factors_Lab_Data",
"Base de datos NSI"
);
dt = CurrentDataTable ();
dt << Seleccione Dónde (Excluir == "Excluir") << ocultar << Excluir;
Re: Excluir datos al cargar datos con un scriptGracias por la pista de que funciona cuando se ejecuta desde un editor de secuencias de comandos, pero no como un complemento.
Eso generalmente indica un problema de alcance para las referencias de variables en su JSL. De forma predeterminada, los complementos se ejecutan con la opción "Nombres predeterminados a aquí (1)", por lo que las referencias sin ámbito van al espacio de nombres "Aquí".
Tu Seleccione Donde () tiene una variable sin ámbito en ella en forma de Excluir .
Si incluye un: antes de incluirlo en una columna de la tabla de datos, funcionará en ambos casos (editor de script y complemento).
dt<<Select Where(:Exclude=="Exclude")<<hide<<Exclude;
-Jeff
Re: Excluir datos al cargar datos con un scriptHola byron
Cuando copio y pego la consulta en un script que es exactamente lo siguiente:
dt = CurrentDataTable ();
dt << Seleccione Dónde (Excluir == "Excluir") << ocultar << Excluir;
Funciona. Pero cuando guardo la secuencia de comandos en un complemento jsl, curiosamente no lo hace. El nombre de la columna y el caso y los espacios coinciden. Lo mismo ocurre con las filas. Es muy extraño que funcione en jsl non-addin pero no en addin. No generé este jsl desde el filtro de datos.
Re: Excluir datos al cargar datos con un scriptPuede haber un par de otras cosas pequeñas para verificar, y me disculpo por adelantado por ser tan básico.
La tabla de datos importada tiene una columna llamada "Excluir"
-¿El nombre real de la columna tiene espacios iniciales?
-¿El nombre real de la columna coincide? Título del caso y la ortografía.
Los valores para filtrar en la columna llamada "Excluir"
-¿Los valores en la columna tienen espacios iniciales o finales?
-¿Es el caso de ortografía y título exacto para el nivel "Excluir"?
El script en la tabla de datos funciona, ¿proviene del filtro de datos?
Re: Excluir datos al cargar datos con un scriptEsa es una opción de PMroz, pero preferiría tirar todos los datos y dejar a la gente la opción de no excluir.
Re: Excluir datos al cargar datos con un scriptHe aquí un pensamiento. Ya que está extrayendo los datos con SQL, ¿por qué no excluye las filas en SQL? También creo que tienes un parámetro extra para Abrir base de datos (Base de datos NSI).
dt = Abrir base de datos (
"DSN = Laboratorio de conexión PI SQL; Descripción = Laboratorio de conexión PI SQL; UID =; Trusted_Connection = Sí; APP = JMP; WSID = SFX-5GCN2M1; DATABASE = LabData" ,
"SELECT * FROM dbo.NSI_Discovered_Factors_Lab_Data WHERE exclude! = 'Exclude'" ,
"NSI_Discovered_Factors_Lab_Data" ,
"Base de datos NSI" ) ;
Re: Excluir datos al cargar datos con un scriptMismo problema PMroz. Curiosamente todavía no funciona.
Re: Excluir datos al cargar datos con un scriptIntente usar wait (0) en lugar de ejecutar fórmulas. Estoy de acuerdo con Byron: eliminar la tabla de datos actual dt = y establecer dt = a los resultados de la base de datos abierta. Me gusta esto:
dt = Abrir base de datos (
"DSN = Laboratorio de conexión PI SQL; Descripción = Laboratorio de conexión PI SQL; UID =; Trusted_Connection = Sí; APP = JMP; WSID = SFX-5GCN2M1; DATABASE = LabData" ,
"SELECT * FROM dbo.NSI_Discovered_Factors_Lab_Data" ,
"NSI_Discovered_Factors_Lab_Data" ,
"Base de datos NSI" ) ;
Espere ( 0 ) ;
dt << Seleccione Donde ( Excluir == "Excluir" ) << esconder << Excluir ;
Re: Excluir datos al cargar datos con un scriptHola byron
Eso no lo solucionó. También hice un complemento por separado que debería funcionar dado que lo que dices es verdadero, que ejecuto después de cargar el conjunto de datos, que es solo lo siguiente.
dt = CurrentDataTable ();
dt << Seleccione Dónde (Excluir == "Excluir") << ocultar << Excluir;
Esto extrañamente tampoco funciona.
Re: Excluir datos al cargar datos con un script¿Es posible que el Open no esté completo cuando se ejecute el Select?
No he visto este problema exacto, pero algo así cuando trabajo con tablas que tienen muchas filas.
Dos sugerencias:
Primero, asigne la tabla de datos a una variable cuando se abra. De esta manera dt = tabla de datos actual (); no termina accidentalmente apuntando a la tabla actual, mientras que la tabla de la base de datos se está abriendo.
dt = base de datos abierta ("DNS ....
Deje fuera la tabla de datos actual dt = ();
Segundo, obligue a ser evaluado antes de seleccionar filas. No se puede evaluar antes de que se abra.
dt << Ejecutar fórmulas; // incluir esto primero
dt << Seleccione Dónde (Excluir == "Excluir") << ocultar << Excluir;