체크 박스, 콤보 상자, 숫자 편집 및 텍스트 입력란이있는 창을 사용하여 사용자 입력을받은 다음 입력을 사용하여 데이터 분석을 수행하는 스크립트가 있습니다 (상자 모양과 관련하여 첨부 된 그림 참조). 다른 옵션 세트를 사용하기 쉽도록 모든 열린 데이터 테이블과 보고서를 닫고 입력 된 모든 옵션을 지우는 재설정 버튼이 필요했습니다. 일반적으로 버튼이 올바르게 작동하지만 개별 날짜 범위의 확인란이나 NC 코드 입력의 첫 번째 텍스트 입력란을 재설정하려는 경우 오류가 발생하는 경우가 있습니다. 오류 경고에는 "보내기 '에 대한 액세스 또는 평가에서 스크립트 가능 개체가 예상됩니다. 오류가 발생했을 때 선택한 경고 상자와 옵션의 그림이 포함되었습니다. 첨부 된 스크립트는 해당 부분 일 뿐이므로 데이터 입력 상자를 설정 한 다음 입력 된 옵션을 가져 와서 재설정하고 닫을 수 있습니다. 나는 그들 중 나머지 하나가 정확하게 재설정되도록 어떤 하나의 확인란과 데이터 입력 상자로가는 지 모르겠다 그래서 어떤 도움을 주시면 감사하겠습니다.


이러한 변수 중 하나를 사용하는 다른 스크립트 나 프로 시저 또는 몇 초 동안 열어도 해당 변수 중 하나와 같은 열 이름을 가질 수있는 테이블은 표시 객체 이름과 충돌 할 수 있습니다.
확실히 네임 스페이스를 살펴볼 것입니다. 오류가 발생했을 때 스크립트가 두 번 실행 되었다면 문제를 해결할 것이라고 생각하지만 리셋 버튼을 누르면 새 입력 창이 생성되지 않습니다. 데이터를 가져올 상자의 값만 기본값으로 다시 설정됩니다. 오류 및 오류가 단지 일부 확인란에서만 발생한다는 사실은 더 많은 일이 벌어지고 있다고 생각하게 만듭니다.
이 유형의 오류는 오브젝트가 더 이상 존재하지 않거나 범위 지정 문제점이 있거나 이름이 충돌 할 때 발생합니다. 가끔 이런 일이 일어날 수도 있습니다.
이 오류를 재현 할 수 있습니다.
- 스크립트를 실행하고 몇 가지 값을 설정하십시오.
- 스크립트를 다시 실행하십시오.
- 두 번째 대화 상자 창 닫기
- 첫 번째 창으로 이동하여 재설정을 선택하면 오류가 발생합니다. 이는 모든 d1, d2 등의 표시 상자가 두 번째 대화 상자 창에 지정 되었기 때문입니다. 재설정이 더 이상 존재하지 않는 개체에 액세스하려고합니다.
이 << Top 부모에 대한 참조를 사용하여 프로그래밍하여 객체를 찾거나 창 네임케이프를 사용합니다. 창 : d1, 창 : d2 등 이 문제를 해결할 것입니다.
응용 프로그램을 만드는 큰 이점은 각 인스턴스가 고유 한 네임 스페이스를 가지므로 스크립트를보다 쉽게 만들 수 있다는 것입니다.
또 다른 방법은 스크립트 상단에 추가하는 것입니다. 기본 이름은 여기에 있습니다 (1); 그것을 저장하십시오.
대화 상자 창의 모든 인스턴스를 닫습니다.
이제이 스크립트를 실행합니다 (필요한 경우 경로 변경).
Names Default to Here(1);
Include ("c:\temp\Reset Boxes Question Script.jsl", <<NEW context=""></NEW>첫 번째 대화 상자 창에서 일부 값을 변경 한 다음 두 번째 대화 상자 창을 닫습니다. 이제 첫 번째 창으로 돌아가서 (오류를 유발 한 단계를 반복하기 만하면) 재설정을 누르십시오. 문제 없음.
새로운 컨텍스트와 함께 하나의 Include ()를 사용하면 다이아 로그와 명명 된 객체에 대한 익명의 네임 스페이스가 만들어지고 범위 지정 문제가 해결됩니다.
네임 스페이스에 대해 읽어야합니다.