【问题标题】:Converting expression to be compatible with FetchXML report将表达式转换为与 FetchXML 报告兼容
【发布时间】:2015-01-20 16:03:47
【问题描述】:

我已将 SSRS 报告从 SQL 转换为 FETCHXML,供本地 CRM 2011 使用。

现在报表使用 CRM 2013 作为数据源。

在这份报告的旧版本中,我们有这样的表达:

=String.Format(New System.Globalization.CultureInfo(1033), chrw(123)&"0"&chrw(125)&" "&chrw(40)&"Count"&chrw(58)&" "&chrw(123)&"1"&chrw(125)&chrw(41), IIf(IsNothing(Fields!stepname.Value), "Not specified", Fields!stepname.Value), CInt(Count("")).ToString(First(Fields!NumberFormat_0_Precision.Value, "DSNumberAndCurrencyInfo"), Code.GetCultureInfo()))

我需要更新此表达式以与在线实例兼容,但我不明白它应该做什么。

有人告诉我文化信息是静态的,不会改变,所以可以硬编码。

首先,Cint(Count("")) 是做什么的?我不明白这个表达式是做什么的。

【问题讨论】:

    标签: reporting-services dynamics-crm-2011 dynamics-crm-2013


    【解决方案1】:

    我可以提供解释 IIF(IsNothing(Fields!stepname.Value), "Not specified", Fields!stepname.Value), CInt(Count("")).ToString(First(Fields!NumberFormat_0_Precision.Value, "DSNumberAndCurrencyInfo"), Code.GetCultureInfo()))

    不是因为它为什么这样做,而是因为输出可能是什么

    1) CInt(Count("") - 
    

    如果它在组总行中,这将给出当前组的行数,如果有组,如果没有组,那么它将始终给出 1 作为当前行数

    2) ToString(First(Fields!NumberFormat_0_Precision.Value, "DSNumberAndCurrencyInfo"), Code.GetCultureInfo())  - 
    

    这里有两个参数

    a) First(Fields!NumberFormat_0_Precision.Value) 它将是数字的格式

    b) 第二个将来自 this 系统类。但这来自您的报告自定义代码。您应该检查报告的自定义代码。

    3) IIF(IsNothing(Fields!stepname.Value), "Not specified", Fields!stepname.Value)
    

    这里的表达式检查stepname 列是否有值,如果为null,则返回Not specified,否则返回值。

    所以我不确定为什么要这样做。如果您查看Count,您可以进行更改,然后您会注意到您可以通过范围,这样就不会混淆下一个开发人员。那么如果您的自定义函数GetCultureInfo() 只是返回CultureInfo 而没有任何条件或更改,那么您可以直接在表达式中传递它,如下所示。

     .ToString(First(Fields!NumberFormat_0_Precision.Value, "DSNumberAndCurrencyInfo"), new System.Globalization.CultureInfo("en-US"))
    

    您可以通过CultureInfo获取更多信息。

    下一部分是表达式的开头

    New System.Globalization.CultureInfo(1033)
    

    在 .NET Framework 3.5 中,您可以使用反射来强制对属性和方法的特定调用使用英语(美国)数据格式(区域设置 ID 1033)。所以它只是为了使用数据格式。

    chrw(123)&"0"&chrw(125)&" "&chrw(40)&"Count"&chrw(58)&" "&chrw(123)&"1"&chrw(125)&chrw(41)
    

    这都用于在here.上使用char代码显示不同的字符

    因此,所有这些大表达式基本上都用于使用某些条件将字符串值格式化为数据库中指定的特定格式。

    【讨论】:

    • 非常感谢!我试图弄清楚如何以适用于 fetchxml 报告的方式进行行计数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多