簡體   English   中英

動態軸傳遞參數

[英]Passing parameters of dynamics ax

在Dynamics AX 2012上,在兩個步驟之間傳遞一個參數,我將用它來更改第二個表單的數據源; 如何從init表單傳遞參數以初始化數據源?

我希望我已經理解了這個問題,如果您想在表單之間傳遞參數,那么您將有多種選擇。 一種解決方案。 在窗體中-重寫方法clicked()控制按鈕

void clicked()
{
    Args args;
    FormRun formRun;
    ;

    args = new Args();

    args.name(formstr(nameyourFormB));
    args.record(nameTableSourceRecords);
    args.caller(element);
    formRun=new FormRun(args);
    formRun.run();
    formRun.wait();
}

因此,在SecondForm-Form-B重寫方法init()中

public void init()
{
    super();
    if(element.args() && element.args().record() &&element.args().record().TableId == tableNum(nameSourceRecords))
    {
        nameTableSourceRecords = element.args().record() ;
        stringEdit.text(nameTableSourceRecords.nameFieldTableSourceRecords);
    }
}

您必須在“設計”節點的Form-B中插入“屬性”中的一個StringEdite(設置為AutoDeclaration YES)。

現在,您打開Form-A選擇一條記錄,單擊控件上的Button->將打開Form-B,並在StringEdit控件中設置了一個值。

希望對您有所幫助。 問候!

在form.init()中獲取參數,將其保存到表單的類聲明中的變量中,然后重寫數據源的init()方法,並使用傳入的參數手動創建FormDataSource對象以確定數據源。

雖然我不確定您將如何在表單控件上顯示此信息……但是控件將期望數據源與設置的一樣。 可能有更好的方法來實現您想要做的任何事情。

一種解決方案是在子窗體的菜單項上使用EnumTypeParameter和EnumParameter屬性。 在父窗體和子窗體init上設置這些參數值,然后只需要一個if子句。 喜歡:

if (args.parmEnumType() == yourEnum && args.parmEnum() == 'yourEnumValue')
{
   //set the desired datasource
}

這些鏈接可能對您幫助: 在menuitemxArgs.parmEnumType 基礎上打開表單

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM