Si instruction qui vérifie la table de données existante<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
J'essaie de créer une instruction if qui vérifie si un élément spécifique (le nom de la table est connu) existe ou non. Si le tableau existe, il doit être annexé à un journal. Mon code est le suivant :
// assigne la table à une variable.
Tableau de données ( "Ber" ) << Sous-ensemble ( Invisible , ( Lignes sélectionnées ) , Nom de la table de sortie ( "Sortir" ) ) ;
NC1 = Tableau de données ( " Sortir " ) ;
......
// Vérifie si les tables existent
Si ( essayer ( Tableau de données ( " Sortir " ) , TableExiste = 0 ) ,
NC1 << journal
,
jrn << Ajouter ( Zone de texte ( "Alla neg. prouver har ett värde under 0.2" )) ;
) ;
J'ai également essayé avec ce qui suit :
Si ( essayer ( NC1, TableExiste = 0 ) ,
NC1 << journal
,
jrn << Ajouter ( Zone de texte ( "Alla neg. prouver har ett värde under 0.2" )) ;
) ;
Résultats:
Même si la table existe (aucune erreur ne se produit lors de l'exécution du script), elle n'est pas ajoutée.
Si le tableau n'existe pas, la zone de texte est ajoutée.
Pourquoi ça ne marche pas ?
Cordialement
Anders
Re : Instruction If qui vérifie la table de données existanteL'instruction IF nécessite une condition qui est évaluée comme vraie ou fausse.Vous comptez sur la fonction TRY pour ce faire, ce qui n'est pas sa tâche principale, mais elle renverra la valeur de l'expression si elle est évaluée.Mais DATA TABLE("Output") donne une référence à une table de données, elle ne donne pas de réponse vrai/faux.En particulier, cela ne donne pas la réponse vraie et donc l'expression IF n'est jamais évaluée.
Re : Instruction If qui vérifie la table de données existanteJ'utilise une fonction pour cela.Une fois que vous avez chargé la fonction, appelez-la simplement comme ceci :
si (table_existe( "Sortir" ) ,
// ajouter au journal
,
// ne pas ajouter
) ;
Voici la fonction :
/*
Nom de la fonction : table_existe
Description : renvoie 1 si la table existe, 0 sinon
Arguments:
table_name Table pour vérifier l'existence de
*/
table_existe = Fonction ( { nom de la table } ,
{ Local par défaut } ,
tbl_exists_flag = 0 ;
// Parcourez toutes les tables et voyez si celle-ci existe
num_tables = ntable () ;
Pour ( je = 1 , je <= num_tables , je ++,
un_nom = Tableau de données ( je ) << Obtenir le nom ;
si ( un_nom == nom de la table ,
tbl_exists_flag = 1 ;
casser () ; // sort de la boucle maintenant que nous avons trouvé la table
) ;
) ;
tbl_exists_flag ;
) ; // fin de la fonction table_exists
Re : Instruction If qui vérifie la table de données existantefonctionne à merveille, merci pour votre aide.
Puis-je demander pourquoi cela ne fonctionne pas lorsque je fais une déclaration combinée If et que j'essaie ? Il me semble que JMP contrôle les opérations (aucune erreur n'est générée) mais n'a pas effectué toutes les instructions.
Cordialement
Anders
Re : Instruction If qui vérifie la table de données existanteCela devrait vous aider :
// Vérifie si les tables existent
Essayer (
Tableau de données ( "Sortir" ) ;
tableExiste = 1
,
tableExiste = 0
) ;
Si ( tableExiste ,
montrer ( "existe" )
,
montrer ( "n'existe pas" )
) ;