| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2012 人关注过本帖
标题:热点求助:如何把一个有250多列(即有250多个字段名)的DBF表按一定规则排列 ...
取消只看楼主 加入收藏
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
结帖率:100%
收藏
已结贴  问题点数:60 回复次数:25 
热点求助:如何把一个有250多列(即有250多个字段名)的DBF表按一定规则排列重新生成另一个DBF表?
    有一个有250多列(即有205多个字段名)的“样本表.DBF”(里面可能会有很多行内容),按每列空格数量从多到少(即没有出现数字1)把字段名重新排序,把所有列所有内容也跟着复制过去重新生成另一个名为“排序表.DBF”。         样本表第1、第2列照样复制过去在“排序”表的第1、第2列,样本表倒数第1、第2列照样复制过去在“排序”表的倒数第1、第2列。  样本表的第1列为数值型,第2列为字符型,倒数第1列为数值型,倒数第2列为字符型,其余的每列字段均为数值型。


样本表图解说明如下:
图片附件: 游客没有浏览图片的权限,请 登录注册


生成的“排序”表部分截图如下:
图片附件: 游客没有浏览图片的权限,请 登录注册


样本表.zip (1.91 KB)
搜索更多相关主题的帖子: 如何 倒数 样本 
2014-03-12 10:43
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
收藏
得分:0 
如何编程实现?版主们不要开骂啊,我真的很怕。我是真的解决不了才放到论坛求助的。
2014-03-12 10:45
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
收藏
得分:0 
样本表有多少行,重新生成的排序表也跟着有多少行。排序表每列里的1的位置跟样本表的该列的1的位置相同。
2014-03-12 11:13
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
收藏
得分:0 
回复4楼:4楼的结果完全正确,但也有不足:没有出现1的空格应该继续保持空格,不应该变成0,而且必须是在VFP软件中编程才对啊。

回复5楼(1)“每列”是否包含前 2 列和最后 2 列?       回答:“每列”,不包含前 2 列和最后 2 列;
         (2)中间列都是数值型数据怎么又按“空格”数量多少?   回答:中间列都是数值型数据,每列空格数量从多到少排序(即没有出现数字1),也即是按出现1的次数从少到多把字段名排序。

回复6楼:
编程执行到第2行时显示:“命令中含有不能识别的短语或关键字”,我不懂解决啊。
2014-03-12 15:05
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
收藏
得分:0 
执行编程后,它只临时显示一个“查询”表,关闭后,“查询”表也跟着消失了。要怎样才能把“查询”表转化为结果表,可随时打开观看?
2014-03-12 16:31
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
收藏
得分:0 
按6楼的编程已可解决,但执行编程后,只临时显示一个“查询”表,关闭后,“查询”表也跟着消失了。要怎样才能把“查询”表转化为“结果表”,可随时打开观看?

CREATE CURSOR T (FIELD_NAME C(10),NUM N(4)) && 过渡表
SELECT * FROM 样本表 INTO TABLE TEMP
INSERT INTO TEMP ((FIELD(2))) VALUES (PADC("小计",FSIZE(FIELD(2)),"-"))
FOR I=3 TO FCOUNT()-2
    IF TYPE(FIELD(I))="N"
       COUNT TO HJ FOR EMPTY(EVALUATE(FIELD(I))) AND RECNO()<RECCOUNT()
       REPLACE RECORD RECCOUNT() (FIELD(I)) WITH HJ IN TEMP
       INSERT INTO T VALUES ((FIELD(I,[TEMP])),HJ)
    ENDIF
ENDFOR
SELECT * FROM T ORDER BY 2 DESC INTO CURSOR TEMP1
LCSTR=[]
SCAN
   LCSTR=LCSTR+ALLTRIM(FIELD_NAME)+IIF(RECNO()<RECCOUNT(),[,],[])
ENDSCAN
SELECT 期数,种类,&LCSTR,类别,期号 FROM 样本表



2014-03-12 16:47
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
收藏
得分:0 
不好意思,我刚发出新的提问,就已看到sdta您给我的答案,谢谢大师级人物的您。
2014-03-12 16:53
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
收藏
得分:0 
我交了600元到一个电脑培训中心学VFP编程,可那个培训中心的老师道德不好,老是找各种理由挑逗我,他不正经,不怀好意。我不想跟他学了。我是自学的,
2014-03-12 16:57
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
收藏
得分:0 
又有一个与上述无关的新问题:DBF表每列空出的边框空隙,怎样才能自动让边框紧挨汉字?也即是边框的大小刚好能容纳下汉字?例如下表,“种类”字段名是宽度为8的字符型,它刚好能容纳4个汉字,但“种类”的右边边框还留有很多空隙,怎样才能使右边边框紧挨汉字?图解说明如下:

原来的表:                                                               紧挨汉字的表:
图片附件: 游客没有浏览图片的权限,请 登录注册
                                
图片附件: 游客没有浏览图片的权限,请 登录注册


2014-03-12 17:19
xuevfp89
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2014-1-22
收藏
得分:0 
哦,我试试。
2014-03-12 19:12
快速回复:热点求助:如何把一个有250多列(即有250多个字段名)的DBF表按一定规 ...
数据加载中...
 
   



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

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