[英]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.