| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3155 人关注过本帖
标题:表1转换成表2
只看楼主 加入收藏
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 10楼 xinjie
非常感谢你的代码,不过我的BM表的字段名位置是固定的,第一列的内容顺序也是固定的(除非有内容增减)。
2017-04-21 21:06
xinjie
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:19
帖 子:274
专家分:520
注 册:2007-8-11
收藏
得分:0 
昏了。。。。你就不会在UI和报表里调整下顺序?建个索引?
2017-04-21 21:37
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用tjdeming在2017-4-21 19:49:40的发言:

VFP版本不重要,解决问题才是硬道理。

真的晕了
VFP6中没有EXECSCRIPT(),要用这个函数只能用VFP9。类似代码也帮你写了几个,这类问题你也应该能够自己解决了吧。

坚守VFP最后的阵地
2017-04-21 21:47
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用tjdeming在2017-4-21 21:06:01的发言:

非常感谢你的代码,不过我的BM表的字段名位置是固定的,第一列的内容顺序也是固定的(除非有内容增减)。

你自己就不能加一个辅助用表。

坚守VFP最后的阵地
2017-04-21 21:49
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 6楼 sdta
系统WIN10G下由6.0改用9.0后,DBF表都变成”只读”状态。
2017-04-22 08:53
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:1 
以下是引用tjdeming在2017-4-22 08:53:40的发言:

系统WIN10G下由6.0改用9.0后,DBF表都变成”只读”状态。
这下麻烦了
2017-04-22 14:06
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
非常感谢各位的无私付出,现附上VFP6.0的代码,一是VFP9.0和6.0 都有了,二来表示这个贴子也有个结果,三来恳请高手给予点评、修改。
tabl1-tabl2_vfp6.0.rar (3.35 KB)

*****VFP6.0***
CLOSE ALL
set talk off
set safety off
use qq  ALIAS qq IN 0
 index on ALLT(部门) tag 部门
 sele 部门  from qq group by 部门 into tabl bmb
sele bmb
 cstr=""
 scan
     cstr=cstr+allt(部门)+" N(10,2),"
 endscan
 cstr=left(cstr,len(cstr)-1)
 
 create TABL BM (部门 C(10),DM C(2),&cstr,hj n(12,2))
 append from GZB fields 部门,DM
 *index on 部门 tag 部门
 sele BM
   FOR I=3 TO FCOUNT()
           FN=FIELD(I)
       scan
            ZDM=ALLT(BM.部门)
             if BM.部门='人数'
                 SELE COUNT(*) FROM QQ WHERE  QQ.部门=FN INTO ARRAY RS
                 REPL &FN  WITH RS  
              ENDIF
              SELE  QQ           
                 if fsize('&ZDM')>0
                     SUM(&ZDM) TO QN FOR QQ.部门=FN
                     SELE BM
                     REPL &FN  WITH QN   
                 Endif
         ENDscan
    endfor
 
  SELE BM
   nfield=''
  for i=3 to fcount()
      nfield=nfield+field(i)+"+"
  endfor
    nfield=left(nfield,len(nfield)-1)   
  repl all hj with &nfield
 use
 use bm
 brow

[此贴子已经被作者于2017-4-24 20:05编辑过]

2017-04-24 19:59
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 10楼 xinjie
Select temp2
 Do (_Genxtab) With 'bm2.dbf',.T.,.T.,.T.,,,,.T.,0,.T.

这句没有看懂,能解答吗,谢谢!
2017-04-26 20:56
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 10楼 xinjie
Select temp2
 Do (_Genxtab) With 'bm2.dbf',.T.,.T.,.T.,,,,.T.,0,.T.

这句没有看懂,能解答吗,谢谢!
2017-04-26 20:56
xinjie
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:19
帖 子:274
专家分:520
注 册:2007-8-11
收藏
得分:0 
_Genxtab 是VFP的系统变量。

可以参考VFP的交叉表向导来理解。

[此贴子已经被作者于2017-4-26 21:21编辑过]

2017-04-26 21:17
快速回复:表1转换成表2
数据加载中...
 
   



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

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