2012-06-29 9 views

答えて

12

1の方法

最も簡単な方法は、現在のレコードを渡すことです。 CustTableが現在のフォームデータソースにある場合は、例のボタンコントロールのDataSource値をCustTableに変更してください。そして、先フォームのinitメソッドで:

public void init() 
{ 
    CustTable cTable; 
    ; 
    super(); 

    // Check for passed arguments 
    if(element.args()) 
    { 
     // get record parameter 
     if(element.args().record() && element.args().record().TableId == TableNum(CustTable)) 
     { 
      cTable = element.args().record();    
     } 
    } 
} 

2方法

あなたはまだ1つの値の.parmを(渡す必要がある場合)(または、より複雑なオブジェクト.parmObject())あなたはoveridingソース形式のことで、これを行うことができます先フォームINITに続い

void clicked() 
{ 
    // Args class is usually used in Axapta for passing parameters between forms 
    Args   args; 
    FormRun   formRun; 
    ; 

    args = new args(); 

    // Our values which we want to pass to FormB 
    // If we want pass just simple string we can use 'parm' method of 'Args' class 
    args.parm("anyStringValue"); 

    // Run FormB 
    args.name(formstr(FormB)); 
    formRun = classFactory.formRunClass(Args); 
    formRun.init(); 
    formrun.run(); 
    formrun.wait(); 

    super(); 
} 

:ボタン制御方法をクリック

public void init() 
{ 
    str    anyStringValueFromCaller; 
    ; 
    super(); 

    // Check for passed arguments 
    if(element.args()) 
    { 
     // get string parameter 
     anyStringValueFromCaller = element.args().parm(); 

    } 
} 

私は間違いなく最初のメソッドのみを使うべきであり、特別な状況では、フォーム間で値を渡すためのデフォルトパターンの1つであるので、ボタンクリックメソッドをオーバーライドする#2メソッドを使用することになります。 もっと複雑な例はAxaptaPedia.com Passing values between formsで利用可能です

関連する問題