有没有办法创建该查询?
我需要来自地址和联系地址的数据,通常我可以按Combine OR
将它们合并,但不是在这种情况下。
我想我必须用PreExecute()
方法编写新的插件,获取我的查询,解析数据然后手动获得相同的地址或者还有其他方法吗?
答案 0 :(得分:2)
我不知道如何做到这一点。
不是写一个插件,而是我会做一个报告。
我能想到的最简单的方法就是在没有像这样的过滤器的情况下进行fetchXML。
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
<entity name="account">
<attribute name="name" />
<attribute name="primarycontactid" />
<attribute name="telephone1" />
<attribute name="accountid" />
<attribute name="address1_city" />
<order attribute="name" descending="false" />
<link-entity name="contact" from="parentcustomerid" to="accountid" alias="ac">
<attribute name="address1_city" />
</link-entity>
</entity>
</fetch>
然后使用
切换报表中行的可见性=Fields!address1_city.Value="Sydney" Or Fields!ac_address1_city.Value="Sydney"
显然你可以用参数替换悉尼
答案 1 :(得分:2)
我解决了这个问题。
Execute()
方法创建插件以进行预验证
数据解析的方法。 GUID
字段。PS我会在重构和客户批准后的一两天内添加消息来源。
修改强>
首先 - 你需要创建新的GUID
并添加字符串字段以查看该guid来查看(最好将其隐藏起来)。
使用RetrieveMultiple
操作和Post
验证创建插件(在Pre
操作中,您可能会丢失更改)
在插件中:主要方法
RetrieveMultiple
将获取您将进行查询的上下文和服务,然后您需要获取fetchXml并检查是否有GUID
。
string fetchXml = string.Empty;
var query = context.InputParameters["Query"] as QueryExpression;
var fetchQuery = context.InputParameters["Query"] as FetchExpression;
if (query == null)
{
if (fetchQuery == null)
{
return;
}
fetchXml = fetchQuery.Query;
}
// Convert query to a fetch expression for processing and apply filter
else
{
fetchXml =
((QueryExpressionToFetchXmlResponse)
service.Execute(new QueryExpressionToFetchXmlRequest {Query = query})).FetchXml;
}
if (fetchXml.Contains(OpportunityFilterGuid))
{
ApplyFilter(context, service, query);
}
}
在您需要的ApllyFilter
方法中:
从用户那里获取查询(他可以添加一些新的文件)。
使用GUID
删除字段。
执行查询。
删除可能与您的OR
声明冲突的文件。
将link-entity
添加到查询。
执行查询。
将收到的实体从第二个查询添加到第一个。
使用不重复的LINQ选择实体。
collectionOne.Entities.GroupBy(oppId => oppId.Id).Select(opp => opp.First())
将该数据发送给客户。
答案 2 :(得分:0)
简单地说,没有办法通过高级查找来做你想要的。
您提供的示例查询只会向您显示相关联系人的地址匹配的帐户(以及显然匹配地址的帐户)。一旦您在高级查找中关联另一个实体,您将只看到具有相关记录的父母 - 没有能力(有效地)做外部联接。
您唯一的选择就是在Silverlight或HTML中构建内容并将其添加为Web资源 - 一旦在该代码中,您几乎可以显示您想要的任何内容。正如其他人所建议的那样,这在报告中是可能的。