簡體   English   中英

動態軸4.0,打開表格而不對當前記錄應用過濾器

[英]Dynamics ax 4.0, opening form without applying filter on current record

例如,我有VendTable網格的表單,其中包含CustAccount字段。

我想放置按鈕,單擊將打開CustTable表單,其中所有客戶都可見。

如果我只是放置CustTable menuitem,然后單擊它將打開CustTable表單,但在此表單中只顯示一條記錄 - 一條記錄與vendTable.CustAccount中的AccountNum相同。

如何打開整個custTable? 是否有比創建按鈕更好的解決方案,然后使用ClassFactory :: FormRunOnClient來顯示表單?

PS。 我需要按鈕,所以RMB - >“轉到主表格”不計算在內。

問題是VendTable記錄作為參數應用於CustTable表單,然后創建一個dynalink。 解決方案是避免爭論。

覆蓋CustTable顯示菜單項中clicked方法,如下所示:

void clicked()
{
    this.menufunction().run(new Args(element));
}

這僅使用調用者對象調用CustTable表單,而不使用record參數。

我知道這是一個相當古老的問題,但如果有人來這里尋找答案,只需在對象QueryBuildDataSource上調用方法clearDynalinks()

例如,您創建了一個表單,它會自動過濾您的數據源,因為Dynamics會自動創建動態數據源,您可以通過將以下代碼放在init()方法內的表單數據源上來解決它:

QueryBuildDatasource qbds;
;


qbds = this.query().dataSourceTable(tablenum(MyTableName));
qbds.clearDynalinks();

// Next line is optional, it clears initial ranges
qbds.clearRanges();

// if you need to add any ranges you can do it right after you clear the initial dynalinks / ranges

希望能幫助到你...

您有2個選項,您可以創建一個按鈕並覆蓋其clicked()方法,或使用MenuItemButton並為其分配一個Action MenuItem。

使用MenuItems是一種最佳實踐,因為它允許您使用AX安全性和配置框架。 您可以將類與MenuItem相關聯,在類'main()方法中,您可以根據需要運行FormRunOnClient()。

暫無
暫無

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

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