回 帖 发 新 帖 刷新版面

主题:一个字段的记录当输入值后,想把它改成空时,总显示0,0很不好看,如何用空记录而不显示0呢?

在报表和表单中,常出现这样的情况,当输入数据后,发现不必要输入数据,当退出时里面就显示记录为0的标志,怎么改也总有标志为0的显示,想当没有值时什么也不显示,能不能做到呢!!!

回复列表 (共10个回复)

沙发

在报表中易做到,它打印是字符,可在域控制的表达式中;
iif(字段名=0,'',alltrim(str(字段名))) &&str(字段名)如有小数加参数
在表单可改用临时表显示,临时表中全用字符,是0就显示"".

板凳

labxj0769老师:
  你的方法在报表中应用很爽,但我无法将记录数据按小数点对齐,因为数据有大有小长短不一样,而且小数位数从1到4,小数点对齐觉得美观一点!
  在表单中如何用到临时表显示,可不可以举个应用的例子,谢谢!!

3 楼

将text的format属性设为“Z”

4 楼

报表中:
iif(字段名=0,'',STR(字段名,LEN(字段名),4)) &&str(字段名)如有小数加参数

在表单可改用临时表显示
表1有字段: 序号 字符 10,收入1 数值10位4位小数,收入2 数值10位4位小数:
Thisform.Grid1.RecordSource=""
SELECT 序号,IIF(收入1=0,"",STR(收入1,LEN(收入1),4)) as 收入1,IIF(收入2=0,"",STR(收入2,LEN(收入2),4)) as 收入2 ;
FROM 表1 WHERE 你的条件 INTO CURSOR curdbf READWRITE  
Thisform.Grid1.RecordSource="curdbf"
Thisform.Grid1.Refresh
如果是另存为表要改回:

SELECT 序号,IIF(EMPTY(收入1),0,Val(收入1)) as 收入1,IIF(EMPTY(收入2),0,Val(收入2)) as 收入2 ;
FROM curdbf  INTO TABLE  dbfresult   

5 楼

偶试了一下,如里只是显示,偶认为应充份利用format属性,设为“Z”是简单可靠的!

6 楼

第五楼主:
  LWH1188你好!我在一个DBF表生成的表格表单中,将数据Text的Format属性设为Z以后,显示的数据中仍没有什么变化,还是有零出现!请问要如何才能做到呢?

7 楼

是gird1.column1.format,不是text的,是前面的column的format!

8 楼

blank fields 字段n for 字段n=0

注意:“for 字段n=0”的条件比较霸道,如果你的数据中“0”是有效值,就不能要这个条件,只能用
blank fields 字段n
清空当前记录的 字段n 的值,一条一条的清空。

9 楼

7楼说得明白,我以前设TEXT不行,以为是版本的问题,原来是设错对象

10 楼

在报表中不需进行数据类型的转换,而直接在格式选项中选择“如果为零则为空”。

我来回复

您尚未登录,请登录后再回复。点此登录或注册