0

イベント ItemChanged からウィンドウの Open イベントを送信しようとしましたSUPER :: EVENT OPEN ()。データウィンドウのイベント ItemChanged からウィンドウを再起動する必要があります。

あなたの助けを願っています。

前もって感謝します。

よろしく、

4

1 に答える 1

1

あなたの質問からいくつかのことが飛び出します。

SUPER::EVENT OPEN()Windowではなく ItemChanged から呼び出された場合、データウィンドウの Open イベントを呼び出そうとします。

これについて 100% 確信があるわけではありませんが、あるスクリプトの祖先をまったく別のスクリプトから呼び出そうとすると問題が発生したことは確かです。ドキュメントを指すことはできません。経験豊富な疑いでそれをチョークする必要があります。

あなたが何を求めているのかは完全には明らかではありませんが、ウィンドウの Open を呼び出したい場合 (以下で別の方法を提案します)、およびウィンドウの Open スクリプトが祖先スクリプトを拡張するか、祖先スクリプトを明示的に呼び出す場合 (次のように)上記)、祖先スクリプトを明示的に呼び出すことは不要であり、望ましくない可能性があると思います。作成中のウィンドウの Open スクリプトを呼び出すだけです。

これはあなたのコードに完全に依存しますが、私が維持しなければならなかった数十のシステムの中、ウィンドウの Open イベントを実行するとウィンドウが「再起動」するとは決して思いませんでした。私が取り組んできたほとんどのシステムでは、以前の状態と新しい状態が予想外に混在していました。さらに、このように完全に動作するようにゼロからコーディングしたとしても、(宝くじに当選して南太平洋の小さな島に引退した後) 私のコードを維持するためにやってきた次の人は、彼が取り組んでいた他のシステムに基づいて、彼には完全に理にかなった方法でしたが、私の仮定を台無しにしてしまいました。ウィンドウを「再起動」する必要がある場合は、次のいずれかを行います。

  • ウィンドウを閉じて、ウィンドウの Open() (イベントではなく関数) を再度ポストします。
  • ue_ResetWindow イベントを作成し、できれば Open もそれを使用できるようにコーディングします。これにより、ウィンドウに追加されたものはすべて、このスクリプトでも維持する必要があることが明らかになりました。

(2つのうち、後者ははるかに優れたユーザーエクスペリエンスとコーディングになります.IMHO.)

幸運を、

テリー。

于 2013-07-08T19:30:31.413 に答える