아래 내 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()가 있습니다. 나는 그것을 시도 할 것이다.
내 쿼리를 이전에 올바르게 표현하지 않았습니다. 파일이 존재하지 않으면 함수가 대화 상자에 오류를 출력하고 더 이상의 실행을 중지하기를 원합니다.
파일이 존재하는 경우 데이터 테이블과 메시지 출력만 원합니다. 이것을 달성하는 방법?
오류 메시지로 채우려는 기능 외부에 대화 상자가 있습니까? 그리고 데이터 테이블을 사용하여 데이터 테이블과 함께 메시지 출력을 반환하고 싶습니까?