2016-09-21 13 views
3

私は要望を聞きたい。ダイナミクスax x ++グリッド修正方法

私はフォームの中にグリッドがあると言います。このグリッドには2つのフィールドがあります。最初のフィールドはorderIdで、2番目のフィールドはinvoiceIdです。 各フィールドにはすでにオーバーロードされた変更メソッドがあります。

あなたの最初のフィールドにorderIdを入力すると、invoiceIdがフィールド2に自動的に入力され、反対に同じことが起こるはずです。私がinvoiceIdを記入したら、自動的に関連orderIdは自動的にfield1になければなりません。

たとえば、1つのメソッドの関連コードをコメントアウトすると、うまく動作しますが一方向にしか動作しません。

しかし、両方向で動作させたいのであれば、私のaxクライアントは動作を停止します。 変更されたメソッドによる無限ループのように見え、デバッガは私を助けません。

My quastion is ...この修正されたメソッドオーバーラップの問題に対する適切な解決策が存在しますか?この物語は、1つの注文IDのようないくつかの他の問題を抱えているもちろん

modified()// method for invoice Field 
{ 
    SalaryProvRevisions table = SalaryProvRevisions_ds.getFirst(1) ? SalaryProvRevisions_ds.getFirst(1) :SalaryProvRevisions_ds.cursor(); 
    table.OrderId=SalarayProvInvoiceHandler::getOrderIds(table.InvoiceId); 
. 
. 
. 
. 
} 

modified()// method for ordeid field 
{ 
    SalaryProvRevisions table = SalaryProvRevisions_ds.getFirst(1) ? SalaryProvRevisions_ds.getFirst(1) : SalaryProvRevisions_ds.cursor(); 
    table.InvoiceId=SalarayProvInvoiceHandler::getInvoiceId(table.OrderId); 
. 
. 
. 
. 
} 

はロットinvoiceidに関連..しかし、すでにそれらを解決することができます。

どうもありがとう、

ニコス

答えて

3

あなたmodified方法は理由かもしれない方法の開始でsuper()への呼び出しを持っていません。また、リストされたメソッドは、戻り値の型がないためにコンパイルされません。

テーブルのmodifiedFieldメソッドでカスタマイズを行うことをお勧めします。

public void modifiedField(FieldId _fieldId) 
{ 
    super(_fieldId); 
    switch (_fieldId) 
    { 
     case fieldnum(SalaryProvRevisions, OrderId): 
      this.InvoiceId = SalaryProvRevisions::getInvoiceId(this.OrderId); 
      break; 
     case fieldnum(SalaryProvRevisions, InvoiceId): 
      this.OrderId = SalaryProvRevisions::getOrderId(this.InvoiceId); 
      break; 
    } 
} 

私はgetメソッドの位置を、本当に所属するテーブル自体に移動します。

+0

はい私はテーブルレベルに移動し、正常に動作します。私はあなたが正しいと思う...メソッドgetInvoiceIdとgetOrderIdもテーブル内にあるはずです。 ありがとうございます。 –

関連する問題