Si declaración que verifica la tabla de datos existente<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Estoy intentando crear una declaración if que verifique si existe o no un específico (se conoce el nombre de la tabla). Si la tabla existe, debe adjuntarse a un diario. Mi código es el siguiente:
//asigna la tabla a una variable.
Tabla de datos ( "ber" ) << Subconjunto ( Invisible , ( Filas seleccionadas ) , Nombre de la tabla de salida ( "Producción" ) ) ;
NC1 = Tabla de datos ( " Producción " ) ;
......
//Comprueba si las tablas existen
Si ( intentar ( Tabla de datos ( " Producción " ) , TablaExist = 0 ) ,
NC1 << diario
,
jrn << Adjuntar ( Caja de texto ( "Alla neg. prover har ett värde bajo 0,2" )) ;
) ;
También probé con lo siguiente:
Si ( intentar ( NC1, TablaExist = 0 ) ,
NC1 << diario
,
jrn << Adjuntar ( Caja de texto ( "Alla neg. prover har ett värde bajo 0,2" )) ;
) ;
Resultados:
Aunque la tabla existe (no se producen errores al ejecutar el script), la tabla no se agrega.
Si la tabla no existe, se agrega el cuadro de texto.
¿Por qué esto no funciona?
Atentamente
Anders
Re: Declaración if que verifica la tabla de datos existenteLa declaración IF requiere una condición que se evalúe como verdadera o falsa.Usted confía en la función TRY para hacer esto, que no es su tarea principal, pero devolverá el valor de la expresión si se evalúa.Pero DATA TABLE("Output") da una referencia a una tabla de datos, no da una respuesta de verdadero/falso.En particular, no da la respuesta verdadera y, por lo tanto, la expresión IF nunca se evalúa.
Re: Declaración if que verifica la tabla de datos existenteUtilizo una función para esto.Una vez que hayas cargado la función, simplemente llámala así:
si (tabla_existe( "Producción" ) ,
// agregar al diario
,
// no agregar
) ;
Aquí está la función:
/*
Nombre de la función: tabla_existe
Descripción: Devuelve 1 si la tabla existe, 0 si no
Argumentos:
table_name Tabla para comprobar la existencia de
*/
tabla_existe = Función ( { nombre de la tabla } ,
{ Local predeterminado } ,
tbl_exists_flag = 0 ;
// Recorre todas las tablas y comprueba si ésta existe
num_tablas = ntable () ;
Para ( i = 1 , i <= num_tablas , i ++,
un_nombre = Tabla de datos ( i ) << Obtener nombre ;
si ( un_nombre == nombre de la tabla ,
tbl_exists_flag = 1 ;
romper () ; // salimos del bucle ahora que encontramos la tabla
) ;
) ;
tbl_exists_flag ;
) ; // finaliza la función table_exists
Re: Declaración if que verifica la tabla de datos existenteFunciona de maravilla, gracias por tu ayuda.
¿Puedo preguntar por qué no funciona cuando hago una declaración combinada de If y try? Me parece que JMP realiza las operaciones (no se genera ningún error) pero no realizó toda la declaración.
Atentamente
Anders
Re: Declaración if que verifica la tabla de datos existenteEsto debería ayudarte:
//Comprueba si las tablas existen
Intentar (
Tabla de datos ( "Producción" ) ;
tablaexistir = 1
,
tablaexistir = 0
) ;
Si ( tablaexistir ,
espectáculo ( "existe" )
,
espectáculo ( "no existe" )
) ;