Crystal reports 显示参数';s描述值
在Crystal Reports v 11中,是否可以在报告上显示“参数说明”值,而不是仅显示参数值?每当我将参数拖到报告上以显示它时,只会显示值,并且我希望打印描述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 11(XI),而不是.NET Crystal Report插件。我认为没有办法直接获得描述(散布在互联网站上的其他几篇文章似乎也同意)。如果有少量的参数选项,您可以创建一个公式或函数,其中包含一个case语句,将值转换为其描述。我同意Ryan的观点——没有一种本机机制来获取这些值。用户函数库(UFL)可能是一种值得研究的方法 除此之外,我还通过多种方式处理这一问题:
首先,将参数值和描述连接在一起,并使用管道“|”或其他较少使用的字符分隔这两个值
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想法。这个参数是动态的,所以我能做的就是获取参数值并将其传递给一个“迷你”子报表,该子报表只需在数据库中查询参数值之外的描述字段。幸运的是,参数值是唯一的。