Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Sorting Crystal报表组排序顺序_Sorting_Crystal Reports - Fatal编程技术网

Sorting Crystal报表组排序顺序

Sorting Crystal报表组排序顺序,sorting,crystal-reports,Sorting,Crystal Reports,我正在制作一份报告,其中将显示客户列表和一些数值。 我使用公式对我的组进行排序,如下所示: if {Db.SortOrder} = 0 then {Db.CostumerName} else ToText({Db.Value},'00000000',0,'') 通过这种方式,我可以按客户名称或值分组,问题是我需要对它们使用不同的排序顺序,按客户名称分组时按升序,按值分组时按降序。我怎样才能做到这一点?我尝试过使用crAscendingOrder、crdegendingord

我正在制作一份报告,其中将显示客户列表和一些数值。 我使用公式对我的组进行排序,如下所示:

if {Db.SortOrder} = 0 then
    {Db.CostumerName}
else
     ToText({Db.Value},'00000000',0,'') 
通过这种方式,我可以按客户名称或值分组,问题是我需要对它们使用不同的排序顺序,按客户名称分组时按升序,按值分组时按降序。我怎样才能做到这一点?我尝试过使用crAscendingOrder、crdegendingorder的“按公式排序”方法,但它说我需要使用costant而不是变量(在我的例子中,我使用了db.SortOrder)

我的方法:

首先,创建一个参数字段(
{?Sorted field}
)来选择排序字段:String;静态列表,包括“客户”和“价值”;默认值为“客户”

接下来,创建一个自定义函数,将字符串转换为ASCII表示形式,允许更改顺序:

// ASCII()
Function (Stringvar characters, Optional Numbervar direction:=crAscendingOrder)

Local numbervar i;
Local stringvar c;

For i:= 1 To Len(characters) Do (
    If direction=crAscendingOrder Then
        c:=c + ToText( Ascw(Mid(characters,i,1)), "#")
    Else
        c:=c + ToText( 256- Ascw(Mid(characters,i,1)), "#")
);

c;
接下来,创建一个用于排序的公式字段:

// {@Sorted Field}
Select {?Sorted Field}
Case "Customer": {Db.Customer}
Case "Value": ASCII(ToText({Db.Value},'00000000',0,''), crDescendingOrder)
Default: {Db.Customer}
最后,在记录排序专家中引用此字段:


在我的例子中,我只需要选择要排序的字段。我创建了名为SortField的参数字段作为静态文本,并创建了我想要显示的三个友好值,然后创建了引用它的公式。我有水晶2011,所以我的公式如下:

// {@Sorted Field}
Select {?SortField}
Case "BIN":{V_ITEM_MASTER.BIN}
Case "ORDER REF":{V_ITEM_MASTER.HEAT}
Case "PART":{V_ITEM_MASTER.PART}
Default: {V_ITEM_MASTER.BIN}

谢谢你的详细答复,但在我的情况下似乎不起作用。在record Sort expert中,我无法取消选择我的组公式作为排序字段,它始终位于顶部。对不起,我刚刚注意到我的错误。将公式添加到组排序专家。今天晚些时候我会改变答案。