![](/img/trans.png)
[英]Retrieve customer full data from Dynamics ax 2012 and show it in MVCproject
[英]Get customer or prospects in Dynamics AX 2012
我試圖讓客戶或潛在客戶使用X ++並在查找時使用它。 DirPartyTable
中有一個返回我想要的方法。
DirPartyTable::isCustomerOrRelation
while select * from dirPartyTable
{
if(DirPartyTable::isCustomerOrRelation(dirPartyTable.RecId))
{
//Get the Name
//info(dirPartyTable.Name);
}
}
但是當我為查詢構建查詢時,我試圖以某種方式在查詢的addRange
上傳遞DirPartyTable::isCustomerOrRelation(dirPartyTable.RecId)
。 有辦法做到這一點還是不可能?
如果您轉到isCustomerOrRelation
(以及isCustomer
和isRelation
)的源,您會看到,如果當前公司中存在客戶或潛在客戶,則該方法返回true。
你的while select
雖然正確,但是效率低下,因為它可能需要掃描一百萬方來選擇當前公司中存在的一千個客戶或潛在客戶。
一個更有效但但語法上的非法, while select
將是:
while select * from dirPartyTable
exists join custTable
where custTable.Party == dirPartyTable.RecId
union
select * from dirPartyTable
exists join smmBusRelTable
where smmBusRelTable.Party == dirPartyTable.RecId;
{
info(dirPartyTable.Name);
}
雖然在X ++中是非法的,但可以使用查詢和視圖。
進行兩次查詢(自己翻譯為適當的屬性):
查詢1:
select * from dirPartyTable exists join custTable where custTable.Party == dirPartyTable.RecId
QUERY2:
select * from dirPartyTable exists join smmBusRelTable where smmBusRelTable.Party == dirPartyTable.RecId;
根據查詢創建兩個視圖(View1和View2)。
創建聯合查詢(Query3),查看如何在聯合查詢中組合數據源 ,記住指定UnionType
( Union
或UnianAll
)。
結果,使用X ++選擇所有記錄:
while select * from dirPartyCustOrRelationTable
{
info(dirPartyCustOrRelationTable.Name);
}
或者您可以直接使用Query3來檢索記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.