不用这样实现吧!其实只要你在Qreport 中使用一个Expr 的控件,在其中的条件栏中写上一个识别0 的代码 if XXX=0 then '' 不就行了,就是不知道你用的是不是Qreport 如果不是,其它的报表应该也差不多。
我这样写有问题的if(hj=0,"",hj)hj是整型的大哥""怎么可以呢 我用的是Qr
从数据库读取记录时就先将为0的置为null吧 select .. case when hj=0 then null else hj end as hj ...
方法1: select uid, score, (CASE score when 0 then null else score end) as FmtScore from scoretab方法2: SELECT uid, score, SUBSTRING(SPACE(10) + CONVERT(varchar, score), 1, CONVERT(bit, score) * 10 + 1) AS FmtScore FROM scoretab ORDER BY uid 数字“10”你可以看情况定。这里假设你用的是整形。 如果结果为0,FmtScore为10个空格,否则返回整形转换的字符串。
在 字段的 OnGetText 事件中实现
将显示换为QRLABEL,在打印内容所在BAND中BEFOREPRINT事件中判断 IF HJ=0 THEN QRLABEL=‘ ’ELSE QRLABEL=TABLE1。FIELDBYNAME(HJ)。ASSTRING
我用的是Qr
select .. case when hj=0 then null else hj end as hj ...
select
uid,
score,
(CASE score when 0 then null else score end) as FmtScore
from scoretab方法2:
SELECT
uid,
score,
SUBSTRING(SPACE(10) + CONVERT(varchar, score), 1, CONVERT(bit, score) * 10 + 1) AS FmtScore
FROM scoretab
ORDER BY uid
数字“10”你可以看情况定。这里假设你用的是整形。
如果结果为0,FmtScore为10个空格,否则返回整形转换的字符串。
IF HJ=0 THEN QRLABEL=‘ ’ELSE QRLABEL=TABLE1。FIELDBYNAME(HJ)。ASSTRING