Oracle 如何显示列';在Crystal Reports中水平显示的内容是什么?
我不熟悉水晶报告。我正在为服装店应用程序创建帐单报告 我有这样的数据Oracle 如何显示列';在Crystal Reports中水平显示的内容是什么?,oracle,crystal-reports,crystal-reports-xi,Oracle,Crystal Reports,Crystal Reports Xi,我不熟悉水晶报告。我正在为服装店应用程序创建帐单报告 我有这样的数据 prodID prodName qty rate amount salesmanID 101 saree 1 500 500 5 108 Legging 1 500 500 7 我想将报告显示为 prodID prodName qty rate amount 101 saree 1 500 500 108 Legging 1 500
prodID prodName qty rate amount salesmanID
101 saree 1 500 500 5
108 Legging 1 500 500 7
我想将报告显示为
prodID prodName qty rate amount
101 saree 1 500 500
108 Legging 1 500 500
sid : 5 7
如何实现这一点?简而言之:使用共享变量在报告的详细信息部分收集销售人员ID,并在报告末尾打印共享变量的内容 详细内容: 向报告中添加一个公式字段,并将其拖动到详细信息部分。公式应如下所示(替换字段名
{Befehl.salesmanID}
):
附言:我不确定当前版本的Crystal Reports中是否仍存在1000项的限制
// @AddToArrayVar
whileprintingrecords;
numbervar array salespersonArray;
numbervar counter;
// add only new lines
if not({Befehl.salesmanID} in salespersonArray) then
(
counter := counter + 1;
//The line below ensures that the size of the array does
//not exceed 1000 values. An array can contain a maximum
//of 1000 values.
if counter <= 1000
then (
Redim Preserve salespersonArray[counter];
salespersonArray[counter] := {Befehl.salesmanID}
)
);
// @PrintFromArrayVar
whileprintingrecords;
numbervar array salespersonArray;
numbervar Counter;
stringvar salespersonslist;
numbervar i;
for i := 1 to Counter do
(
if i > 1 then salespersonslist := salespersonslist + ',';
salespersonslist := salespersonslist + ToText(salespersonArray[i],0,'');
);
salespersonslist;