下面我的 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 提供 File Exists() 函数,您可以将它与 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 确实有 File Exists ()。 我会试试看。
我之前没有正确表达我的查询。 当文件不存在时,我只想让函数在对话框中输出错误并停止进一步执行。
当文件存在时,我只想要数据表和消息输出。 如何做到这一点?
您是否在要填充错误消息的函数之外有一个对话框? 对于数据表,您想用数据表返回消息输出吗?