以下の私のJSL関数スクリプトは、ネットワークフォルダーからファイルをプルし、他の場所で使用するためにデータファイルに出力します。 「この制限ファイルは存在しません!」というエラーメッセージを出力するにはどうすればよいですか。 データファイルと一緒に「ファイル名を確認してください」。 私は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);
);また、エラーが発生した場合、関数が使用されているコードのそれ以上の実行を停止し、エラーメッセージを含むダイアログボックスをユーザーに表示するにはどうすればよいですか?
JMP13がFileExists()関数を提供している場合は、ifステートメントで使用できます。 次に、何を返すか/プログラムを停止する方法を決定します。 たとえば、Throw()またはStop()を使用できます
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...");
編集:
エラーとともにどのデータテーブルを返しますか? ファイルを開くことができない場合は、空のデータテーブルを作成しない限り、返すデータテーブルはありません。
ありがとう@jthi 、はい、JMP 13にはファイルが存在します()。 やってみます。
以前、クエリを正しく表現していませんでした。 ファイルが存在しない場合は、ダイアログボックスにエラーを出力して、それ以上の実行を停止するだけです。
ファイルが存在する場合、データテーブルとメッセージ出力のみが必要です。 これを達成する方法は?
エラーのメッセージを入力したい関数の外にダイアログボックスがありますか? そして、datatableを使用して、データテーブルを使用してメッセージ出力を返したいですか?