我是CRM和SQLServer Reporting的新手,我正在尝试创建一个显示来自不同实体的所有笔记的报告。对于那些不熟悉CRM的人,下面是报告的描述: 我有实体A(FilteredAnnotation - 记录不同实体的注释),它有一个名为notetext的字段,用于存储文本(注释)和objectid,用于存储与特定实体相关的GUID。例如,存储在此字段中的GUID可以与实体B(Filterednew_candidate)或实体C(FilteredNew_attainmentmilestone)或CRM中的其他实体相关联,每个实体都与Annotation的实体有关系。
在我的情况下,运行报告的人将向实体B(候选人)输入参考编号。实体候选人与实体C(达成里程碑)有关系,所以基本上我希望报告显示链接到特定候选人的所有笔记(从实体A - 注释中检索)。
目前我的查询运行良好且显示所有结果,但问题是没有任何内容可以分离或指定注释来自何处。基本上,我希望能够显示或不同实体B和C的注释。我可以想到: a)能够在每条记录的顶部写下它们的实体名称,所以它会是这样的:候选:结果流:结果 问题:我已经尝试获取表的名称,但它显示了对客户端不太有吸引力的filterednew_。那么,我能否削减该结果,以便它只显示下划线后的所有内容?
b)能够根据结果改变颜色。例如,如果音符来自实体B,那么表格行将是红色,否则表格行将是蓝色的? 问题:由于我是新手,我使用XML,.rdl我想不出办法做到这一点。
由于从select中获得的结果是在foreach中显示的类型,我不知道如何添加或区分结果是来自实体B还是C.
我当前的报告显示来自特定人的实体B和C的注释,但结果在notetext列下不可读,没有任何分离。
是否有人知道我是否可以根据其实体B或C来更改线条颜色,或者甚至在覆盖实体B的结果顶部添加文本,然后是覆盖实体C的结果的另一个文本而不会失去太多性能?< / p>
答案 0 :(得分:0)
最简单的方法是使用从注释中选择的ObjecttypeName
,这将区分注释所属的\与之关联。
或者你需要一些报告编码(如果你想做着色事情):
报告&gt;下的&gt;报告属性&gt;&gt;代码
创建一个将测试fieldname的函数,您可以从任何实体中选择时将参数作为字符串传递:
SELECT B.*, 'B' as entityName FROM entityB B --when from 'B'
SELECT C.*, 'C' as entityBane FROM entity C --when from 'C'
并将其命名为entityName(在我的示例中使用)或使用MSCRM中的ObjecttypeCode
来区分Annotation \ Note的所有者。
Function NoteColor(ByVal entityName As String) As String
If entityName = 'B' Then
Return 'lightblue'
Else
Return 'grey'
End If
End Function
然后在每个单元格上,按如下方式设置BackgroundColor:
=Code.NoteColor(Fields!['entityNane'])