Crystal Reports多参数筛选语法求助:未输入参数时返回全部记录
Crystal Reports 参数筛选逻辑修正
你的公式问题出在:当参数未输入时,对应的If语句没有定义“未输入则允许所有记录”的分支,Crystal Reports中未匹配If条件时会默认返回False,导致多个参数组合时,只要有一个参数为空,整个筛选条件就会变成False,自然查不到记录。
正确的筛选公式应该是每个参数都处理“空参数返回全部”的逻辑,用**“参数为空 或者 参数匹配字段”**的结构,再用AND连接所有条件:
(ucase({?Program ID}) = '' OR {CD_CVR_SUMMARY.PROGRAM_ID} = ucase({?Program ID})) AND (ucase({?Subcon Category}) = '' OR {CD_CVR_SUMMARY.SUBCON_CATEGORY_1} = ucase({?Subcon Category})) AND (ucase({?Project Category}) = '' OR {CD_CVR_SUMMARY.PROJECT_CATEGORY_2} = ucase({?Project Category}))
逻辑说明
- 每个括号内的条件:如果参数为空,直接返回
True(不限制该字段);如果参数有输入,则匹配对应字段的大写值 - 三个条件用
AND连接,确保同时满足所有已输入参数的筛选要求
内容的提问来源于stack exchange,提问作者Jannette
相关产品推荐
相关产品推荐

