Crystal Reports技术问询:如何筛选可用量<0的库存记录
Crystal Reports 筛选可用量<0记录的解决方法
方法一:用SQL表达式实现数据库端筛选
- 打开
Database Expert,找到数据源对应的表 - 创建SQL表达式字段,直接用数据库字段计算:
{表名.Quantity On Hand} + {表名.Quantity in Process} - {表名.Quantity Order} - 打开
Selection Expert,选中这个SQL表达式字段,设置筛选条件为< 0 - 优势:在数据库层面完成计算和筛选,报表加载效率更高
方法二:直接编写记录选择公式
- 点击菜单栏
Report→Selection Formulas→Record - 在公式编辑器里直接写计算逻辑:
{表名.Quantity On Hand} + {表名.Quantity in Process} - {表名.Quantity Order} < 0 - 保存后报表会自动筛选出短缺记录
- 注意:这里必须用数据库原始字段,不能引用报表里已有的
QTY Available公式字段,因为记录选择公式在数据读取阶段执行,只能识别数据库字段或SQL表达式
方法三:通过细节节抑制实现筛选(适合必须用现有公式的场景)
- 如果已经创建了
@QTY Available公式字段,打开Section Expert,选中Details节 - 点击
Suppress (No Drill-Down)右侧的公式按钮,写入:{@QTY Available} >= 0 - 这样报表会自动隐藏可用量不小于0的行,只显示短缺记录
- 缺点:数据会全部加载到报表中,大数据量场景下效率较低
内容的提问来源于stack exchange,提问作者ID10TRick
相关产品推荐
相关产品推荐

