Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 如何显示列';在Crystal Reports中水平显示的内容是什么?_Oracle_Crystal Reports_Crystal Reports Xi - Fatal编程技术网

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;