我的数据库有这样一批记录
其中列中有的有数据有的没有是0但打印时我不想把0打印出来怎么能把0换成null呢

解决方案 »

  1.   

    不用这样实现吧!其实只要你在Qreport 中使用一个Expr 的控件,在其中的条件栏中写上一个识别0 的代码 if XXX=0 then '' 不就行了,就是不知道你用的是不是Qreport 如果不是,其它的报表应该也差不多。
      

  2.   

    我这样写有问题的if(hj=0,"",hj)hj是整型的大哥""怎么可以呢
    我用的是Qr
      

  3.   

    从数据库读取记录时就先将为0的置为null吧
    select .. case when hj=0 then null else hj end as hj ...
      

  4.   

    方法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个空格,否则返回整形转换的字符串。
      

  5.   

    在 字段的 OnGetText 事件中实现
      

  6.   

    将显示换为QRLABEL,在打印内容所在BAND中BEFOREPRINT事件中判断
    IF HJ=0 THEN QRLABEL=‘ ’ELSE QRLABEL=TABLE1。FIELDBYNAME(HJ)。ASSTRING