从交叉表报表中的参数选项中选择全部不会返回任何记录,但我可以在参数中选择单个客户名称时获得结果 在我选择的参数中:
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'
任何建议都将不胜感激。
答案 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
)
)