当前位置:主页>销售管理软件> 列表

fastreport 3 如何实现不打印指定条件的记录 找软件销售技巧

仓库管理软件版1楼: 我用的是D9+MySql server 5.0+fastreport 3
程序中的数据集SQL语句如下:
select 部门名称,费用名称,sum(if((记帐日期>=''2005-01-01'')and
(记帐日期<=''2005-12-31''),费用金额,0)) as 各项费用汇总 from fm_bmexpense
where (部门名称=''公司总部'') group by 费用名称''
要想在数据集中筛选出"各项费用汇总"<>0 的记录;或在fastreport打印中忽略
该项为0的记录.

2楼: sql语句你写为如下试试:
select 部门名称,费用名称,(Select (sum(if((记帐日期>=''2005-01-01'')and
(记帐日期<=''2005-12-31''),费用金额,0)))) as 各项费用汇总 from fm_bmexpense
where (部门名称=''公司总部'') group by 费用名称'' 如好用的进销存软件

3楼: 主要问题是AS出来的新字段不能加入到WHERE语句中。

4楼: 怎么没人能帮上忙吗?
如我的表达不够清晰,请在此说明想要知道的更多条件。

5楼: select 部门名称,费用名称,sum(if((记帐日期>=''2005-01-01'')and
(记帐日期<=''2005-12-31''),费用金额,0)) as 各项费用汇总 from fm_bmexpense
where (部门名称=''公司总部'') group by 费用名称''
having sum(if((记帐日期>=''2005-01-01'')and
(记帐日期<=''2005-12-31''),费用金额,0)) >0

6楼: to:asplia
问题还未解决,因为''费用金额''是原表中没有的字段,SQL语句运行后同样显示:
UnKnow column ''费用金额'' in ''having clause''

仓库管理软件版7楼: 我一般对这种问题采取迂回的办法解决,即在程序中写语句检查条件符合与否,再指定符合该条件的情况下某变量应该为何类型和何值,最后赋值给FR中对应的控件。当然你也可以在FR的BeforePrint事件或在FR文件中的GetValue事件写代码解决。正确思路已经给你了,代码就不写了吧?

8楼: 没有的话,你原来的语句执行也有这个错误

9楼: to:asplia
哎呀,我搞错了,''费用金额''是原有的,语句可以通过。不过得出的结果连<>0的记录都不见了。
感谢asplia,已有少许头绪,自己继续研究。
此题还未结束,请各位多多帮助。

10楼: to:340340
我已找过了很多fastreport3之前版的例子,但在3.0版上好象不太合用。但还想请求示出
你的大概代码。

11楼: http://www.delphibbs.com/keylife/iblog_show.asp?xid=19786
这是我的FR3.18笔记,里面记录了我使用FR3的心得体会。解决问题的思路给你了啊,想想再问如何?

12楼: 非常感谢asplia和340340两位大侠的帮助。
急切的问题已用asplia的方法解决了,having 后直接用别名就可以解决了。
感谢340340的代码,对我用fastreport非常有用。 如软件销售技巧