Instrucción if que verifica la tabla de datos existente<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Estoy tratando de 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 existen las tablas
Si ( probar ( Tabla de datos ( " Producción " ) , TableExist = 0 ) ,
NC1 << diario
,
hijo << Adjuntar ( Caja de texto ( "Alla neg. prover har ett värde bajo 0.2" )) ;
) ;
También he probado con lo siguiente:
Si ( probar ( NC1, TableExist = 0 ) ,
NC1 << diario
,
hijo << 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 adjunta.
Si la tabla no existe, se adjunta el cuadro de texto.
¿Por qué esto no funciona?
Atentamente
Anders
Re: Declaración if que verifica la tabla de datos existenteLa instrucción IF requiere una condición que se evalúe como verdadera o falsa.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 verdadera/falsa.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 existenteYo uso una función para esto.Una vez que haya cargado la función, simplemente llámela así:
si (tabla_existe( "Producción" ) ,
// anexar 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_bandera = 0 ;
// Recorrer todas las tablas y ver si esta existe
num_tablas = mesa () ;
Para ( i = 1 , i <= num_tablas , i ++,
un_nombre = Tabla de datos ( i ) << Obtener nombre ;
si ( un_nombre == nombre de la tabla ,
tbl_exists_bandera = 1 ;
descanso () ; // salta del bucle ahora que encontramos la tabla
) ;
) ;
tbl_exists_bandera ;
) ; // fin de 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 Si e intento? Me parece que JMP realiza las operaciones (no se genera ningún error) pero no realizó todo el enunciado.
Saludos cordiales
Anders
Re: Declaración if que verifica la tabla de datos existenteEsto debería ayudarte:
//Comprueba si existen las tablas
Probar (
Tabla de datos ( "Producción" ) ;
tablaexistir = 1
,
tablaexistir = 0
) ;
Si ( tablaexistir ,
mostrar ( "existe" )
,
mostrar ( "no existe" )
) ;