主题:一个字段的记录当输入值后,想把它改成空时,总显示0,0很不好看,如何用空记录而不显示0呢?
8upp58
[专家分:20] 发布于 2005-10-09 16:57:00
在报表和表单中,常出现这样的情况,当输入数据后,发现不必要输入数据,当退出时里面就显示记录为0的标志,怎么改也总有标志为0的显示,想当没有值时什么也不显示,能不能做到呢!!!
回复列表 (共10个回复)
沙发
labxj0769 [专家分:21070] 发布于 2005-10-09 21:24:00
在报表中易做到,它打印是字符,可在域控制的表达式中;
iif(字段名=0,'',alltrim(str(字段名))) &&str(字段名)如有小数加参数
在表单可改用临时表显示,临时表中全用字符,是0就显示"".
板凳
8upp58 [专家分:20] 发布于 2005-10-10 10:28:00
labxj0769老师:
你的方法在报表中应用很爽,但我无法将记录数据按小数点对齐,因为数据有大有小长短不一样,而且小数位数从1到4,小数点对齐觉得美观一点!
在表单中如何用到临时表显示,可不可以举个应用的例子,谢谢!!
3 楼
xiaoli0911 [专家分:590] 发布于 2005-10-10 12:25:00
将text的format属性设为“Z”
4 楼
labxj0769 [专家分:21070] 发布于 2005-10-10 13:23:00
报表中:
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 楼
lwh1188 [专家分:25840] 发布于 2005-10-10 16:19:00
偶试了一下,如里只是显示,偶认为应充份利用format属性,设为“Z”是简单可靠的!
6 楼
8upp58 [专家分:20] 发布于 2005-10-11 09:23:00
第五楼主:
LWH1188你好!我在一个DBF表生成的表格表单中,将数据Text的Format属性设为Z以后,显示的数据中仍没有什么变化,还是有零出现!请问要如何才能做到呢?
7 楼
lwh1188 [专家分:25840] 发布于 2005-10-11 10:11:00
是gird1.column1.format,不是text的,是前面的column的format!
8 楼
staa [专家分:3690] 发布于 2005-10-11 13:22:00
blank fields 字段n for 字段n=0
注意:“for 字段n=0”的条件比较霸道,如果你的数据中“0”是有效值,就不能要这个条件,只能用
blank fields 字段n
清空当前记录的 字段n 的值,一条一条的清空。
9 楼
labxj0769 [专家分:21070] 发布于 2005-10-11 15:14:00
7楼说得明白,我以前设TEXT不行,以为是版本的问题,原来是设错对象
10 楼
wwg [专家分:520] 发布于 2005-10-15 16:43:00
在报表中不需进行数据类型的转换,而直接在格式选项中选择“如果为零则为空”。
我来回复