在Crystal Reports 2013中,当参数中选择“ALL”时,我根本没有得到任何结果

时间:2017-01-06 16:06:34

标签: crystal-reports

从交叉表报表中的参数选项中选择全部不会返回任何记录,但我可以在参数中选择单个客户名称时获得结果 在我选择的参数中:

IF {?CustName} <> "(ALL)" THEN {MW_SALES_DETAIL.NAME} = {? CustName}   ELSE TRUE and
IF {?Facility} <> "(ALL)" THEN {MW_SALES_DETAIL.FACILITY} = {?Facility} ELSE TRUE and
IF {?GroupBy} = "Monthly" then true 
and{MW_SALES_DETAIL.ACTIVITYDATE} in ({?Start Date} to {?End Date}) and
IF {?BilledStatus}= "Billed" then {MW_SALES_DETAIL.BILLSTATUS} >"2" else 
IF {?BilledStatus} = "Not Billed" then {MW_SALES_DETAIL.BILLSTATUS} <"3"
else  
if{?GroupBy} = "Weekly" then true and
IF {?CustName} <> "(ALL)" THEN {MW_SALES_DETAIL.NAME} = {?CustName}     ELSE TRUE and
IF {?Facility} <> "(ALL)" THEN {MW_SALES_DETAIL.FACILITY} = {?Facility} ELSE TRUE and
{MW_SALES_DETAIL.ACTIVITYDATE} in ({?Start Date} to {?End Date}) and
IF {?BilledStatus}= "Billed" then {MW_SALES_DETAIL.BILLSTATUS} >"2" else 
IF {?BilledStatus} = "Not Billed" then {MW_SALES_DETAIL.BILLSTATUS} <"3"

除非我为客户名称选择“全部”,否则一切似乎都有效 - 它似乎将所有选择作为文字,就像我显示它所表示的查询一样:

Select    
 "MW_SALES_DETAIL"."FACILITY", "MW_SALES_DETAIL"."BILLEDAMT", "MW_SALES_DETAIL"."DESCR", "MW_SALES_DETAIL"."GLACCT", "MW_SALES_DETAIL"."NAME", "MW_SALES_DETAIL"."ACTIVITYDATE", "MW_SALES_DETAIL"."BILLSTATUS"FROM "ALPS"."MW_SALES_DETAIL""MW_SALES_DETAIL"WHERE  "MW_SALES_DETAIL"."NAME"='ALL'

任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:0)

在其他情况下,而不是True尝试如下:

IF {?CustName} <> "(ALL)" THEN {MW_SALES_DETAIL.NAME} = {? CustName}   
ELSE {MW_SALES_DETAIL.NAME}={MW_SALES_DETAIL.NAME}

答案 1 :(得分:0)

我偶然发现了参数中的一个解决方案,我将ALL更改为“ALL”和 我将选择公式更改为:     IF {?CustName}&gt; “(全部)”那么{MW_SALES_DETAIL.NAME} = {?CustName} ELSE {MW_SALES_DETAIL.NAME}喜欢“*”和

答案 2 :(得分:-1)

你可能需要用文字解释你想要实现的目标,但我已根据你的公式解释......这就是我写的方式;

(
 {?CustName} = "ALL" 
 or {MW_SALES_DETAIL.NAME} = {?CustName}
)
and (
 {?Facility} = "ALL" 
 or {MW_SALES_DETAIL.FACILITY} = {?Facility} 
)
and {MW_SALES_DETAIL.ACTIVITYDATE} >= {?Start Date} 
and {MW_SALES_DETAIL.ACTIVITYDATE} <= {?End Date}
and (
 (
  {?BilledStatus} = "Billed" 
  and {MW_SALES_DETAIL.BILLSTATUS} > 2
 )
 or ( 
  {?BilledStatus} = "Not Billed" 
  and {MW_SALES_DETAIL.BILLSTATUS} < 3
 )
)