gpt4 book ai didi

c# - FetchXML 过滤掉重复值

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:12 25 4
gpt4 key购买 nike

我有一个程序可以将发票从我们的 CRM Dynamics Online 系统提取到一个 .csv 文件中。

有时我们的销售人员会在 CRM 中的同一个订单上创建多张发票,我需要一种方法来删除 .csv 上的所有重复发票。

我只想提取具有不同订单号的发票。这将如何实现?我整个上午都在处理 distincts,但无济于事。

我的代码:

private EntityCollection GetInvoices(Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy crmService)
{
string fx = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>
<entity name='invoice'>
<attribute name='invoiceid' alias='InvoiceId' />
<attribute name='customerid' alias='ShipTO' />
<attribute name='shipto_postalcode' alias='ShipZip' />
<attribute name='shipto_line2' alias='ShipAddr2' />
<attribute name='shipto_line1' alias='ShipAddr1' />
<attribute name='shipto_stateorprovince' alias='ShipState' />
<attribute name='shipto_country' alias='ShipCountry' />
<attribute name='shipto_city' alias='ShipCity' />
<attribute name='neu_customerponumber' alias='PO' />
<attribute name='paymenttermscode' alias='Terms' />
<attribute name='createdon' alias='ShipDate'/>
<attribute name='ordernumber' alias='InvoiceNo' />
";
fx += GetInvoiceFilter();
fx += @"
<link-entity name='salesorder' from='salesorderid' to='salesorderid' visible='false' link-type='outer' alias='order1'>
<attribute name='datefulfilled' alias='FirstOfShippingDate' />
<link-entity name='systemuser' from='systemuserid' to='ownerid' visible='false' link-type='outer' alias='systemuser1'>
<attribute name='fullname' alias='SalesRep' />
</link-entity>
</link-entity>
<link-entity name='invoicedetail' from='invoiceid' to='invoiceid' visible='false' link-type='outer' alias='invoicedetail1'>
<attribute name='neu_percentdiscount' alias='Discount' />
<attribute name='invoicedetailid' alias='InvoiceDetailId' />
<attribute name='baseamount' alias='Amount' />
<attribute name='extendedamount' alias='Sales' />
<link-entity name='product' from='productid' to='productid' visible='false' link-type='outer' alias='product1'>
<attribute name='neu_division' alias='Division' />
<attribute name='producttypecode' alias='Desc' />
<attribute name='productnumber' alias='CatalogNumber' />
</link-entity>
</link-entity>
<link-entity name='account' alias='account1' to='customerid' from='accountid'>
<attribute name='accountnumber' alias='CustID' />
</link-entity>
</entity>
</fetch>";

return crmService.RetrieveMultiple(new FetchExpression(fx));


}



private string GetInvoiceFilter()
{
string fetchFilter = "";

fetchFilter = @"<filter type='and'>";

if (txtOrderName.Text.Length > 0)
{
fetchFilter += @"<condition attribute='ordernumber' operator='eq' value='";
fetchFilter += txtOrderName.Text;
fetchFilter += "' />";
}
else
{
fetchFilter += @"<condition attribute='statuscode' operator='eq' value='1' />";
fetchFilter += @"<condition attribute='neu_exportedtopeachtree' operator='null' />";
fetchFilter += @"<condition attribute='createdon' operator='on-or-after' value='";
fetchFilter += dtpFrom.Text;
fetchFilter += "' />";
fetchFilter += " <condition attribute='createdon' operator='on-or-before' value='";
fetchFilter += dtpTo.Text;
fetchFilter += "' />";
}

fetchFilter += @"</filter>";

return fetchFilter;
}

最佳答案

fetch 语句中的 distinct 子句仅过滤掉返回结果集中的重复 ID。要根据订单号过滤我们的骗子,您必须在结果返回后以编程方式执行此操作。

关于c# - FetchXML 过滤掉重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36849312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com