| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 971 人关注过本帖
标题:如何打印不为零的字段名
只看楼主 加入收藏
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
结帖率:90.14%
收藏
已结贴  问题点数:20 回复次数:11 
如何打印不为零的字段名
有一张表有N个字段,现在只想打印不为零的字段名.(有数据的字段名打印,无数据的字段名就不打印出来,效果是让人看见:a1,a2,a4,a5)
表2.rar (497 Bytes)


[ 本帖最后由 tjdeming 于 2013-6-6 01:52 编辑 ]
搜索更多相关主题的帖子: 如何 
2013-06-06 01:46
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
用临时表打印




[ 本帖最后由 tlliqi 于 2013-6-6 06:40 编辑 ]
2013-06-06 06:39
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
vfp很难生成动态列报表(列数不确定),多是导出EXCEL打印容易些。
2013-06-06 11:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
什么叫只想打印不为零的字段名

坚守VFP最后的阵地
2013-06-06 19:19
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用tlliqi在2013-6-6 06:39:33的发言:

用临时表打印

在VFP目前的各版本中,这是一个比较好的解决方案。
2013-06-06 21:33
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 5楼 taifu945
用临时表打印:请教实际操作命令语句,能写一点吗?谢谢.
2013-06-07 20:22
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:6 
大致思路是:类似于人眼看。即,设个循环以字段数为标准,从第1个到最后一个,把每个字段的所有记录都扫描一遍。只要有记录在该字段上不为空,就将该字段名放入一个数组元素中。如此循环,等到外层大循环执行完毕,这个存放字段名的数组中就集成了所有过滤出来的有效字段。
代码:
字段数=FCOUNT()
有效字段数=0
DIMENSION 有效字段(字段数)
FOR I=1 TO 字段数
   字段名=FIELDS(I)
   SELECT COUNT(&字段名) FROM 表文件名 WHERE !EMPTY(&字段名) INTO ARRAY 记录数
   IF 记录数(1,1)>0
      有效字段数=有效字段数+1
      有效字段(I)=字段名
   ENDIF
NEXT
后面循环生成临时表的结构时,记住,得用“有效字段数”变量中的值作为循环的终点来读取“有效字段”数组中的内容了。另外,数值型字段的0值也属于空值;逻辑型字段.F.值也属于空值。
2013-06-07 22:32
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:10 
CLOSE DATABASES
USE D:\1\表2\表2 IN 0
SELECT 表2
sql_c=''
FOR i=1 TO FCOUNT()
    LOCATE FOR NOT EMPTY(EVALUATE(FIELD(i)))
    IF FOUND()
        sql_c=sql_c+ALLTRIM(FIELD(i))+","
    ENDIF
ENDFOR
IF NOT EMPTY(sql_c)
    sql_c="select "+LEFT(sql_c,LEN(sql_c)-1)+" from 表2 into cursor 表2_tmp"
    &sql_c.
    SELECT 表2_tmp
    m.out_filename=ALLTRIM(PUTFILE('','','xls'))
    IF not empty(m.out_filename)
        SELECT 表2_tmp
        COPY to (m.out_filename) XLS &&导出excel
    ENDIF
    USE IN 表2_tmp
ENDIF
CLOSE DATABASES
2013-06-08 10:39
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 8楼 kiff
谢谢.
试用后,效果很好.
需要完善一下:表2中有N条记录,想导出某条记录,每条记录都有一个序号(唯一性),这样行吗?
2013-06-10 07:13
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 8楼 kiff
谢谢.
试用后,效果很好.
需要完善一下:表2中有N条记录,想导出某条记录,每条记录都有一个序号(唯一性),这样行吗?
2013-06-10 07:15
快速回复:如何打印不为零的字段名
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041189 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved