在CR 10中为7个不同的字段排序参数

时间:2016-02-04 18:03:19

标签: crystal-reports

  

我正在尝试为CR10中的所有7个字段编写排序字段参数。我已按照帮助部分中的说明 - 使用参数字段定义排序顺序 - 暂时只尝试了3个字段。我无法正常工作,我也不确定这是否可行。

     

这就是我所拥有的。   我的报告最初按1个付款人ID分组,然后是2个索赔号。我删除了这些组并将我的字段移到了详细信息部分。以下是字段:

`Claim#
Payer ID
Payer Name
Account#
Name
Billed Amt
Date`
     

我创建了一个名为Sort Field的参数,选择了字符串并确保我的min和max设置为1。将以下内容放入提示文本中:

`C = Claim
I = Payer ID
P = Payer Name
A = Account#
N = Name
B = Billed Amt
Date is Default`
     

我创建了一个公式并称之为Sort。我已经尝试过如上所述的所有7个字段,也只有3个字段 - 我主要关注的是所有字段。

`If {?SortField} = "C" 
Then totext({table.ClaimNumber},"########")
ElseIf {?SortField} = "I" 
Then totext({table.ID_Payer},"########")
ElseIf {?SortField} = "P" 
Then {table.PayerName}
ElseIf {?SortField} = "A" 
Then totext({table.Account},"#######")
ElseIf {?SortField} = "N" 
Then {table.Last_Name}
ElseIf {?SortField} = "B" 
Then totext({table.ClaimGrossCharge},"#########.##")
Else totext({table.SubmittedDate},"")`
     

然后我将@Sort放入报告标题中并在部分专家中进行了抑制。我还在记录选择中包括以下公式:

`{table.SubmittedDate} >= {?Submitted Date From} and
{table.SubmittedDate} <= {?Submitted Date To} and
{@Sort} = {?SortField}`
     

最后,我确保在记录排序专家中选择了@Sort公式。

     

我运行报告但一无所获。我在记录选择中注释掉{@Sort} = {?SortField}并获得数据。虽然,数据是重复的,因为它没有像原来那样进行分组。

     

可以这样做吗?这个选项对我们的客户来说是惊人的,我觉得它可以工作,但我相信我错过了一些东西。我的@Sort公式是正确的还是需要调整?我试图确保所有字段都是文本,因为我在参数中选择了字符串。

     

非常感谢任何帮助!谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

它有点长的问题,但会尽量回答我理解的程度。

我假设sort(From formula that you have written)你的意思是只显示客户选择的那些值并压制其余的值,我的回答将支持这个想法。如果这不是你想要让我知道将尝试尽可能回答。

  1. 您不应该在记录选择公式中使用{@Sort} = {?SortField},因为这将直接在数据库中触发,根据您的设计,这不会像参数值那样返回任何数据与数据库中的数据不匹配。从记录选择中删除此部分。

  2. 请将您的sort公式放在报告标题中,因为它不会在标题中提取完整数据,而且无法使用该数据。

  3. 当您将所有字段放在详细信息部分时,您可以在详细信息部分中使用创建的Sort公式代替根据用户选择执行作业的原始字段。

  4. 如果您要获取重复数据,则需要检查表的链接或检查数据库选项卡中的Select Distinct Data选项,这将删除重复数据