If-Anweisung, die auf vorhandene Datentabellen prüft<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hi,
Ich versuche, eine if-Anweisung zu erstellen, die überprüft, ob ein bestimmter (Tabellenname ist bekannt) vorhanden ist oder nicht. Wenn die Tabelle existiert, sollte sie an ein Journal angehängt werden. Mein Code ist wie folgt:
// Weist die Tabelle einer Variablen zu.
Datentabelle ( "Ber" ) << Teilmenge ( Unsichtbar , ( Ausgewählte Zeilen ) , Name der Ausgabetabelle ( "Ausgabe" ) ) ;
NC1 = Datentabelle ( " Ausgabe " ) ;
......
//Überprüft, ob die Tabellen existieren
Wenn ( Versuchen ( Datentabelle ( " Ausgabe " ) , TabelleExist = 0 ) ,
NC1 << Tagebuch
,
jrn << Anhängen ( Textfeld ( "Alla neg. Prüfer har ett värde unter 0,2" )) ;
) ;
Ich habe es auch mit folgendem versucht:
Wenn ( Versuchen ( NC1, TabelleExist = 0 ) ,
NC1 << Tagebuch
,
jrn << Anhängen ( Textfeld ( "Alla neg. Prüfer har ett värde unter 0,2" )) ;
) ;
Ergebnisse:
Obwohl die Tabelle existiert (es treten keine Fehler beim Ausführen des Skripts auf), wird die Tabelle nicht angehängt.
Wenn die Tabelle nicht existiert, wird das Textfeld angehängt.
Warum geht das nicht?
Mit freundlichen Grüßen
Anders
Betreff: If-Anweisung, die auf vorhandene Datentabellen prüftDie IF-Anweisung erfordert eine Bedingung, die als wahr oder falsch ausgewertet wird.Sie verlassen sich dazu auf die TRY-Funktion, die nicht ihre Hauptaufgabe ist, aber sie gibt den Wert des Ausdrucks zurück, wenn sie ausgewertet wird.Aber DATA TABLE("Output") gibt einen Verweis auf eine Datentabelle, es gibt keine Wahr/Falsch-Antwort.Insbesondere gibt es nicht die Antwort wahr und daher wird der IF-Ausdruck nie ausgewertet.
Betreff: If-Anweisung, die auf vorhandene Datentabellen prüftDazu verwende ich eine Funktion.Nachdem Sie die Funktion geladen haben, rufen Sie sie einfach so auf:
wenn (table_exists( "Ausgabe" ) ,
// an Journal anhängen
,
// nicht anhängen
) ;
Hier ist die Funktion:
/*
Funktionsname: Tabelle_existiert
Beschreibung: Gibt 1 zurück, wenn die Tabelle existiert, 0, wenn nicht
Argumente:
table_name Tabelle, deren Vorhandensein geprüft werden soll
*/
Tabelle_existiert = Funktion ( { Tabellenname } ,
{ Standardlokal } ,
tbl_exists_flag = 0 ;
// Alle Tabellen durchlaufen und prüfen, ob diese existiert
num_tables = ntable () ;
Zum ( ich = 1 , ich <= num_tables , ich ++,
ein_name = Datentabelle ( ich ) << Namen erhalten ;
wenn ( ein_name == Tabellenname ,
tbl_exists_flag = 1 ;
Unterbrechung () ; // jetzt aus der Schleife springen, da wir die Tabelle gefunden haben
) ;
) ;
tbl_exists_flag ;
) ; // Funktion table_exists beenden
Betreff: If-Anweisung, die auf vorhandene Datentabellen prüftfunktioniert wie ein Zauber, danke für deine Hilfe.
Darf ich fragen, warum es nicht funktioniert, wenn ich eine kombinierte Aussage von If mache und versuche? Es scheint mir, dass JMP die Operationen durchführt (es wird kein Fehler generiert), aber es hat nicht die gesamte Anweisung durchgeführt.
Mit freundlichen Grüße
Anders
Betreff: If-Anweisung, die auf vorhandene Datentabellen prüftDas sollte dir helfen:
//Überprüft, ob die Tabellen existieren
Versuchen (
Datentabelle ( "Ausgabe" ) ;
TabelleVorhanden = 1
,
TabelleVorhanden = 0
) ;
Wenn ( TabelleVorhanden ,
Show ( "existiert" )
,
Show ( "existiert nicht" )
) ;