重置複選框我有一個腳本,它使用帶有復選框,組合框,數字編輯和文本編輯框的窗口來獲取用戶輸入,然後使用輸入來執行數據分析(請參閱附圖,了解框的外觀)。為了便於使用不同的選項集,我輸入了一個Reset按鈕,它可以關閉所有打開的數據表和報告,並清除所有輸入的選項。通常按鈕工作正常,但有時在嘗試重置單個日期範圍的複選框或輸入NC代碼下的第一個文本編輯框時會出錯。錯誤警報顯示“在訪問或評估'發送'時發送可預期的腳本對象”。我列出了警告框的圖片以及發生錯誤時我選擇的選項。附加的腳本只是有問題的部分,因此設置為建立數據輸入框然後獲取輸入的選項,並可以重置和關閉。我不確定一個複選框和數據輸入框會發生什麼,因為其餘部分似乎正確重置,所以任何幫助將不勝感激。


回复:重置複選框請注意,使用其中一個變量或任何可能具有列名稱的表的任何其他腳本或過程(即使它已打開幾秒鐘)都可能與顯示對象名稱衝突。
回复:重置複選框我一定會查看名稱空間。如果在發生錯誤時腳本正在運行兩次,那麼我認為您提出的建議會解決它,但是當按下重置按鈕時,不會生成新的輸入窗口。只有用於獲取數據的框的值才會重置為默認值。這個以及錯誤只發生在有時並且只有一些複選框的事實讓我覺得可能會有更多的事情發生。
回复:重置複選框當對像不再存在,或者存在範圍問題,名稱衝突時,將發生此類錯誤。我希望有時可能是由此引起的。
我可以重現這個錯誤:
- 運行腳本,設置一些值
- 再次運行您的腳本
- 關閉第二個對話框窗口
- 轉到第一個窗口,然後選擇重置,將發生錯誤。這是因為所有d1,d2等顯示框都已分配給第二個對話框窗口。 重置正在嘗試訪問不再存在的對象。
編程參考這個<< Top parent,然後找到對像或使用window namescape。窗口:d1,窗口:d2等 會解決這個問題。
創建應用程序的一大好處是每個實例都有自己的命名空間,並使腳本更容易。
另一種方法是添加到腳本的頂部名稱默認為此處(1); 並保存。
關閉對話框窗口的所有實例。
現在運行此腳本(如果需要,更改路徑)
Names Default to Here(1);
Include ("c:\temp\Reset Boxes Question Script.jsl", <<NEW context=""></NEW>在第一個對話框窗口中更改某些值,然後關閉第二個對話框窗口。現在返回第一個窗口(只是重複導致錯誤的步驟)並按Reset。沒有問題。
對新上下文使用單個Include()會為diaolog及其命名對象創建一個匿名命名空間,並且會解析範圍問題。
您應該閱讀有關名稱空間的信息