변경 후 스크립트 실행. 스크립트를 닫았다가 다시 열지 않으면 작동하지 않습니다. -왜?JSL을 배우고 있고 시작할 때 생각하지 못했던 행동을 하고 있습니다. 이 동작이 예상된 것인지 아니면 실수로 변경한 설정으로 인해 발생하는 것인지 알고 싶습니다.
함수와 다른 스크립트를 호출하는 간단한 "메인" 스크립트가 있습니다. JMP를 새로 열고 기본 스크립트 또는 호출하는 다른 함수/스크립트를 새로 실행하면 모두 제대로 실행되고 예상한 결과가 생성됩니다. 그러나 그것들 중 하나를 변경하면 작동하지 않습니다(예: 주 스크립트에 포함된 스크립트, 예를 들어 아래의 마지막 줄에 주석을 다는 경우). 열려 있는 모든 스크립트를 닫은 다음 다시 실행하면 다시 작동합니다. 다른 프로그래밍 언어에서 온 나는 그러한 행동을 기대하지 않습니다. 어떤 방향이든 대단히 감사합니다.
아래 내 메인 스크립트의 예(저는 JMP13에 있습니다).
//clear log ();<BR />getDataTable = getDataTable4partID("partID","partIDname");
include ("plotallcharts.jsl");
include ("generateJournal.jsl");위의 마지막 줄에 주석 달기(또는 내가 clear log()의 주석 처리를 해제하는 경우)
//clear log ();
getDataTable = getDataTable4partID("partID","partIDname");
include ("plotallcharts.jsl");
//include ("generateJournal.jsl");위의 스크립트에서 다음 오류를 제공합니다.
Name Unresolved: getDataTable4partID in access or evaluation of 'getDataTable4partID' , getDataTable4partID( "partID", "partIDname" ) /*###*/
어떤 방향이든 대단히 감사합니다.
스크립팅Re: 변경 후 스크립트를 실행합니다. 스크립트를 닫았다가 다시 열지 않으면 작동하지 않습니다. -왜?귀하의 예에서는 함수를 정의한 위치를 볼 수 없습니다.
getDataTable4partID
JSL은 해석된 언어이며 호출하기 전에 코드에서 참조하는 항목을 생성해야 합니다.컴파일된 언어가 아니므로 모든 코드 및 식별 기능 등을 먼저 통과합니다. 이제 혼동될 수 있는 것은 함수가 정의되면 메모리에 남아 있고 다음 명령으로 지워질 때까지 사용할 수 있다는 것입니다.
clear symbols();<BR />// or<BR />clear globals();
이 점을 염두에 두고 코드를 수행하면 JSL이 함수를 찾을 수 없는 이유를 알 수 있습니다.
Re: 변경 후 스크립트를 실행합니다. 스크립트를 닫았다가 다시 열지 않으면 작동하지 않습니다. -왜?감사 해요 @txnelson .
기능은 다음과 같습니다.
getDataTable4partID
내가 사용할 것을 제안합니까?
clear symbols();
// clear globals();
내 메인 스크립트의 맨 위에?
그렇다면 행동의 변화 없이 지쳤습니다.
또한 메인 스크립트가 실행되지 않고(변경 후) 스크립트가 예상대로 다시 실행되도록 JMP를 다시 시작해야 할 때 메인 스크립트가 호출하는 함수도 실행해야 한다는 것을 위에서 언급하는 것을 잊었습니다. , 한 번, 내 메인 스크립트가 실행되지 않습니다. 이것은 분명히 바람직하지 않은 행동이며 내가 일을 제대로 하지 않고 있는 것이 걱정됩니다.
Re: 변경 후 스크립트를 실행합니다. 스크립트를 닫았다가 다시 열지 않으면 작동하지 않습니다. -왜?다음으로 전체 스크립트를 시작해야 합니다.
Names Default to Here( 1 );
Clear Symbols();
이렇게 하면 네임스페이스 환경이 안정화되고 이전 값이 모두 지워지므로 맨 위에서 코드를 실행할 때마다 새로 시작됩니다.
Re: 변경 후 스크립트를 실행합니다. 스크립트를 닫았다가 다시 열지 않으면 작동하지 않습니다. -왜?감사 해요 @txnelson . 좋아, 이것이 내가 한 일이며 이제 JMP를 닫고 다시 실행하거나 JMP를 다시 시작한 후에도 스크립트와 기능이 작동하지 않습니다.
내 메인 스크립트
Names Default to Here( 1 );
Clear Symbols();
getDataTable = getDataTable4partID("partID","partIDname");
include ("plotallcharts.jsl");
include ("generateJournal.jsl");내 기능은 (데이터베이스 세부 정보 없음)
Names Default to Here (1)
getDataTable4PartID = Function({PartID}, {dtTemp},
dtTemp = Open Database("connectionstring",
"select '" || PartID || "' as value
from dual",
PartID
);
return(dtTemp);
);그리고 내 스크립트
plotallcharts.jsl;
또한 주먹 라인이 있습니다
Names Default to Here (1)
여전히 오류가 발생합니다.
Name Unresolved: getDataTable4partID in access or evaluation of 'getDataTable4partID' , getDataTable4partID( "partID", "partIDname" ) /*###*/
그러나 때로는 기본 스크립트를 실행할 때 로그에 아무 것도 표시되지 않습니다.
Re: 변경 후 스크립트를 실행합니다. 스크립트를 닫았다가 다시 열지 않고는 작동하지 않습니다 - 왜?Names Default to Here( 1 );
Clear Symbols();
getDataTable = getDataTable4partID("partID","partIDname");
include ("plotallcharts.jsl");
include ("generateJournal.jsl");
이것이 코드의 첫 번째 섹션이라고 가정합니다. 옳은?
코드의 세 번째 줄은 "getDataTable4partID"라는 함수를 찾고 있습니다.코드가 해당 줄을 실행하려고 할 때 해당 함수가 정의되지 않았습니다.호출되기 전에 함수 정의를 실행해야 합니다.