我正在尝试使用参数(用户无法使用哪些参数来指定应在报表上显示的参数)在水晶报表中重新创建sql查询。我当前的sql查询如下:
select *
from SALES
where (customerID = '4' and date = '5/2/2019)
or (customerID = '6' and date = '4/30/2019')
or (customerID = '69' and date = '8/18/1984')
...等
我希望能够在水晶报表中复制它,并允许用户输入客户ID和日期对,并提取所有匹配的记录。在运行报告时,用户将不会总是有固定数量的客户/日期对,因此我试图使其保持打开状态
ive试图将参数切换为允许多个值,但产生的结果超出预期,因为只要给定客户在列出的任何日期有销售,而不仅仅是配对的日期,它将返回给定客户的每一行用。我还尝试创建一个被压制的字段,该字段是连接的ID和日期,然后连接参数以查看匹配的参数,但是当我输入多个关于数组的对时,会出现错误
答案 0 :(得分:0)
从显示所有销售额的报告开始,而不管客户ID或日期如何。
在Crystal报表中创建2个参数字段。第一个将被命名为“ customerID”,第二个将被命名为“ date”。
可以将参数字段设置为允许输入单个值,也可以将其设置为允许从列表中选择多个值,或者通过输入最小值和最大值来选择值的范围。
进入“选择专家”并创建2个字段,当报表选择记录时,这些字段将被过滤。要过滤的2个字段将为“ cusotmerID”和“ date”。每个字段都应进行设置,以便将在参数字段中输入的值与报表选择的数据集中的值进行比较,并且只有从customerID和date值输入到参数中的记录才不会从数据集中过滤掉
“选择专家”中的公式应类似于以下内容,但根据您设置参数字段和选择专家过滤器的方式,该公式可能会略有不同:
{SALES.cusotmerID} in {?customerID} and
{SALES.date} in {?date}