私はAx 2012で開発しています。同じタイプの情報を保持し、EDTを共有するフォームにstringEditコントロールがあります。私はクラスでEDTのバリデーションを行います。 フォームのcheckメソッドからクラスを呼び出します。この検証が必要なすべてのstringEditコントロールに対して、同じメソッドをフォームに使用します。フォームのcheckメソッドを各コントロールのvalidateメソッドから起動します。コントロールオブジェクトをメソッドに渡す
私の質問:どのように変更されており、検証が必要なコントロールをcheckメソッドに渡すのですか? フォーム上の私のチェック方法は、次のようになります。
public void checkNumber(FormStringControl _cntrl)
{
MyValidationClass valClass = new MyValidationClass();
;
if(!valClass.validateNumber(_cntrl.text()))
{
_cntrl.text("");
}
}
***私は上記の方法に
を電流制御を渡してきた問題は、コントロールのvalidateメソッドは次のようになります。
public boolean validate()
{
boolean ret;
//ret = super();
ret = element.checkNumber(this);
return ret;
}
問題は、現在のコントロールを渡して、私はcheckNumberメソッドに変更しています。チェックメソッドに "this"を渡すことができない場合は、どうすればいいですか?
Thansk Jan.私が最初に "this"をコントロールのvalidateからcheckNumberメソッドに渡したとき、 "必要な型と互換性がありません"というエラーが発生しました。しかし、コードを使用したときは、 "ret = super()&& element.checkNumber ....."しか認識しませんでした。これは "this"オブジェクトを同じ型として認識しませんでしたが、現在は同じです。私はチェックメソッドの呼び出しの前にスーパーコールがそれと何か関係があるのだろうか?とにかく、あなたの答えをありがとう。 – Celeste
ドキュメントは明示的には述べていませんが、実際にはsuper()は実際の作業をしばしば行います。ドキュメント:http://msdn.microsoft.com/en-us/library/aa876155(v=ax.10).aspx –