Mein JSL-Funktionsskript unten zieht eine Datei aus einem Netzwerkordner und gibt sie in einer Datendatei zur Verwendung an anderer Stelle aus. Wie gebe ich die Fehlermeldung "Diese Grenzwertdatei existiert nicht! Dateinamen prüfen" zusammen mit der Datendatei. Ich bin auf JMP13.
Names Default To Here( 1 );
getLimitsFile = Function({LimFileName}, {dtspk},
dtspk = Try(
Open(
"\\gbshyt-ppor-334e\DBX\XPD\System\Limits\"||LimFileName||".txt",
columns(
New Column( "ParameterName", Character, "Nominal" ),
New Column( "ColumnLSL", Character, "Nominal" ),
New Column( "ColumnUSL", Character, "Nominal" ),
New Column( "ColumnUnits", Character, "Nominal" ),
New Column( "ColumnSymb", Character, "Nominal" ),
New Column( "ColumnComm", Character, "Nominal" )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Comma, CSV( 1 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
//,invisible)
),"This limit file does not exist! Check file name");
return(dtspk);
);Wie kann im Fehlerfall die weitere Ausführung des Codes gestoppt werden, in dem die Funktion verwendet wird, und wie kann dem Benutzer ein Dialogfeld mit der Fehlermeldung angezeigt werden?
Wenn JMP13 die Funktion File Exists() bereitstellt, können Sie sie mit der if-Anweisung verwenden. Dann ist es eine Entscheidung, was zurückgegeben wird / wie das Programm gestoppt wird. Sie können zum Beispiel Throw() oder Stop() verwenden
Names Default To Here(1);
getLimitsFile = Function({LimFileName}, {dtspk},
If(!File Exists("\\gbshyt-ppor-334e\DBX\XPD\System\Limits\"||LimFileName||".txt"),
Throw("This limit file does not exist! Check file name");
//or use return and throw outside function
);
//Open...
return(dtspk);
);
getLimitsFile("");
Show("continue...");
Bearbeiten:
Welche Datentabelle möchten Sie mit dem Fehler zurückgeben? Wenn Sie die Datei nicht öffnen können, gibt es keine zurückzugebende Datentabelle, es sei denn, Sie erstellen eine leere.
Danke @jthi , Ja, JMP 13 hat File Exists (). Ich werde es versuchen.
Ich habe meine Anfrage vorher nicht richtig formuliert. Wenn die Datei nicht existiert, möchte ich nur, dass die Funktion den Fehler in einem Dialogfeld ausgibt und die weitere Ausführung stoppt.
Wenn die Datei existiert, möchte ich nur die Datentabelle und die Nachrichtenausgabe. Wie erreicht man das?
Haben Sie außerhalb der Funktion ein Dialogfeld, das Sie mit der Fehlermeldung füllen möchten? Und mit Datatable möchten Sie die Nachrichtenausgabe mit der Datatable zurückgeben?