안녕,
기본적으로 함수 내에서 생성된 변수에 액세스하려고 합니다. 함수 외부에서 해당 변수를 인쇄하려고 하는데 name unresolved/deleted reference 'Glue' 오류가 계속 발생합니다. 기본적으로 새 창을 만들고 해당 함수 및 창 생성 내부에 lf 값을 저장하는 버튼에 대한 함수가 있습니다. lf의 값을 인쇄하고 싶지만 방법을 모르겠습니다. 어떤 제안이라도 감사하겠습니다. 또 다른 질문은 OKscript1 함수 내부에 lf를 인쇄할 때 로그에 인쇄되지 않는다는 것입니다. OKscript1이 함수가 아니라 Expr이기 때문인가요? 또한 파일을 선택한 후 처음으로 프로그램을 실행하면 이름을 확인할 수 없는 오류가 발생합니다. 하지만 다시 실행하고 다른 파일을 선택하고 로그를 보면 종료하기 전에 선택한 이전 파일이 로그에 나타납니다. 이유에 대한 아이디어가 있습니까? 아마도 내가 간과한 정말 단순한 일이거나 내 범위 지정과 관련이 있는 것 같습니다.
mainWindow = New Window("Instruction Tagger",
ob = Outline Box("Instruction Tagger",
Border Box(Left(3), top(2),
V List Box(
H List Box(
Panel Box("Please choose one of the following options:", <<MARKUP> 1), Throw ("Error: Please only select one measurement file. Alternitavely, go back and select 'Tag Multiple Files'. "));
if(Try(N Items(lf) < 1), Throw ("Error: Please select one measurement file.Alternitavely, go back and select 'Tag Multiple Files'."));
);
print(lf);
print(lf); </MARKUP>
안녕 @cwillden ,
도움을 주셔서 감사합니다. 텍스트를 굵게 표시하는 태그가 있어야 했기 때문에 Markup을 사용했지만 제거했다는 것을 깨달았습니다. 일관성을 위해 던지기와 텍스트 상자를 캡션으로 변경했습니다. 설명해주셔서 다시 한번 감사드립니다.
안녕 @재즈 ,
따라하기 어렵기 때문에 이 스크립트의 들여쓰기를 패치했습니다.어쨌든 텍스트에 html 태그가 없었고 경고 메시지가 발생했기 때문에 <
여기에 몇 가지 문제가 있습니다. 스크립트를 실행하면 사용자가 대화 상자에서 작업을 수행하기 전에 맨 아래에 있는 "print(lf)" 행이 실행됩니다."lf"는 JMP에 인쇄를 요청할 때 아직 존재하지도 않습니다.사용자가 확인을 누를 때만 코드 줄이 실행되도록 OKScript1 표현식 안에 넣어야 합니다.
또한 ListF가 더 이상 존재하지 않기 때문에 ListF에서 항목을 가져오기 전에 창을 닫을 수 없습니다.해당 코드 줄을 주석 처리했기 때문에 "삭제된 개체 참조" 오류가 발생했는지 확실하지 않습니다.
아래 스크립트가 작동하는 것 같습니다.오류가 발생하지 않고 print(lf)가 작동합니다.로그의 목록에서 내가 선택한 파일을 보여주었습니다.
mainWindow = New Window("Instruction Tagger",
ob = Outline Box("Instruction Tagger",
Border Box(Left(3), top(2),
V List Box(
H List Box(
Panel Box("Please choose one of the following options:",
Button Box("Tag a Single File", singleFileButton1("Tag Instructions to Data") ),
Button Box( "Tag Multiple Files", singleFileButton1("Tag Instructions to Data") ),
Text Box("Note: a button to tag the data will appear automatically after you have selected the measurement & PFD files. ")
)
)
)
)
)
);
singleFileButton1 = Function({x},
mainWindow << Close Window;
choosingFilesWindow = New Window(x,
ob = Outline Box("Select Your Files: ",
Border Box (Left(3), top(2)),
vDisplay = V List Box(
H List Box(
Panel Box("Please select one of the options below to choose your measurement & PFD file: ",
Button Box("Select Measurement File", selectMeasurementFileButton("Select Measurement File")),
Button Box("Select PFD File", selectPFDFileButton("Select PFD File")),
Lineup Box (N Col(2), Spacing(3)),
Panel Box("Files Added",
CB = Check Box({"Measurement file added", "PFD file added"},<<SET> 1), Throw ("Error: Please only select one measurement file. Alternitavely, go back and select 'Tag Multiple Files'. "));
if(Try(N Items(lf) < 1), Throw ("Error: Please select one measurement file.Alternitavely, go back and select 'Tag Multiple Files'."));
);</SET>마지막에 "Success" if 문을 변경하는 것이 좋습니다.추가 처리를 중지하기 위해 이미 Throw()를 사용했기 때문에 CB << Set(1,0)이 평가될 것이라고는 생각하지 않습니다.해당 상자에서 Throw()를 Caption()으로 바꾸는 것을 고려하십시오.또한 "성공" 메시지가 Throw()에서와 같이 오류처럼 보이지 않도록 합니다.