Crystal reports 显示参数';s描述值

Crystal reports 显示参数';s描述值,crystal-reports,crystal-reports-xi,Crystal Reports,Crystal Reports Xi,在Crystal Reports v 11中,是否可以在报告上显示“参数说明”值,而不是仅显示参数值?每当我将参数拖到报告上以显示它时,只会显示值,并且我希望打印描述 注意:我使用的是Crystal 11(XI),而不是.NET Crystal Report插件。我认为没有办法直接获得描述(散布在互联网站上的其他几篇文章似乎也同意)。如果有少量的参数选项,您可以创建一个公式或函数,其中包含一个case语句,将值转换为其描述。我同意Ryan的观点——没有一种本机机制来获取这些值。用户函数库(UFL

在Crystal Reports v 11中,是否可以在报告上显示“参数说明”值,而不是仅显示参数值?每当我将参数拖到报告上以显示它时,只会显示值,并且我希望打印描述


注意:我使用的是Crystal 11(XI),而不是.NET Crystal Report插件。

我认为没有办法直接获得描述(散布在互联网站上的其他几篇文章似乎也同意)。如果有少量的参数选项,您可以创建一个公式或函数,其中包含一个case语句,将值转换为其描述。

我同意Ryan的观点——没有一种本机机制来获取这些值。用户函数库(UFL)可能是一种值得研究的方法

除此之外,我还通过多种方式处理这一问题:

  • 带有case语句的公式,用于将值转换为描述
  • 一个自定义函数,它执行相同的a#1;自定义功能可以通过BOE存储库与其他报告共享
  • 使用子报表查询可以将值转换为描述的表。将值存储在详细信息部分(抑制)的数组中,然后在报表页脚中加入()数组。如果将子报表嵌入到它自己的部分中,它将根据需要展开以容纳扩展列表
  • 您可能可以调整#3以使用BO的查询作为web服务(QAAWS)公开的值列表,但我还没有尝试过。如果没有关联的模式文档,CR将无法使用XMLWebService作为数据源

  • 首先,将参数值和描述连接在一起,并使用管道“|”或其他较少使用的字符分隔这两个值

    Numbervar i;
    Numbervar j;
    StringVar Array z := "";
    
    Local StringVar Array x := split(Join({?My Parameter},";"),";");
    
    j := count(x);
    
    redim preserve z[j];
    
    for i := 1 to j do(
    z[i] := right(x[i],Length(x[i])-instr(x[i],"|")) 
    );
    
    join(z,",")
    
    例如: CustomerID,CustomerName->12345 | ABC公司

    使用带有数组的水晶函数显示报告中的描述面,即分隔字符后的所有内容

    Numbervar i;
    Numbervar j;
    StringVar Array z := "";
    
    Local StringVar Array x := split(Join({?My Parameter},";"),";");
    
    j := count(x);
    
    redim preserve z[j];
    
    for i := 1 to j do(
    z[i] := right(x[i],Length(x[i])-instr(x[i],"|")) 
    );
    
    join(z,",")
    

    第三个。创建第二个类似上述函数的函数,返回分隔符左侧的参数值,作为报表选择公式的一部分使用**

    我克服了Crystal Reports以某种方式能够检索参数的描述,但它没有公开用于公式的震惊。在我看来,被迫复制参数和描述的定义是一种糟糕的形式,因为编程时不应该复制东西。另一种方法(除了列出的所有方法之外)是将您的值和描述作为SQL数据源的值(用SQL硬编码)。然后,您可以从所述数据源填充参数,并将描述作为字段提供。这样你就只有“一个版本的真相”可以将你的价值观映射到你的描述中,尽管有更多的移动部件。

    请参见:1678487-如何在Crystal Reports中显示参数说明而不是参数值,网址:

    有一个新功能,可实际用于在报告中显示参数说明

    资料来源:

    我将为那些不必访问此页面的用户粘贴整个文档

    Crystal Reports 2016中添加了一个新函数GetValueDescriptions(),允许用户创建可以操作/显示参数所选值说明的公式

    GetValueDescriptions()支持各种参数(单个和多个、离散和范围)。下面是一个公式示例,其中{?customerMultiDiscreteAndRange}是一个多范围参数:

    本地stringVar范围数组im:=GetValueDescriptions({?customerMultiDiscreteAndRange}); 局部数为i:=1; 本地stringVar out:=“”

    而我非常感谢你的#3想法。这个参数是动态的,所以我能做的就是获取参数值并将其传递给一个“迷你”子报表,该子报表只需在数据库中查询参数值之外的描述字段。幸运的是,参数值是唯一的。