| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1461 人关注过本帖
标题:怎么用VFP命令提取数据?
只看楼主 加入收藏
cxzbzgz
Rank: 8Rank: 8
来 自:云南楚雄
等 级:贵宾
威 望:24
帖 子:296
专家分:808
注 册:2012-6-15
收藏
得分:7 
回复 10楼 afdwxf
楼主所写的这段代码是用数组代换数据,然后再把数组追加在数据表的尾部,你的这段代码的问题是C表的数据库结构必须与A表完成相同,否则就会造成数据混乱。可以作如下修改:
SELECT 1
 USE A.DBF
  INDEX on 物料凭证 TO tlpz   &&以物料凭证做索引
  SELECT 2
   USE C     &&临时表
  ZAP   
   APPEND FROM B.xls TYPE XLS  &&追加电子表数据
    GO TOP   && 到数据表头
    DO while!EOF()
      m物料凭证=物料凭证     &&将每个字段赋值给变量
      m采购单位=采购单位
      m收货数量=收货数量
      m结算金额=结算金额
      m税额=税额
      m业务类型=业务类型
      m过帐日期=过帐日期      
    SELECT 1
      SEEK m物料凭证      
        IF EOF()      && 如果在A表中没有找到,就追加一条空记录,然后将变量的值替换字段
         APPEND BLANK
         REPLACE 物料凭证 WITH m物料凭证,采购单位 WITH m采购单位,收货数量 WITH m收货数量,;
         结算金额 WITH m结算金额,税额 WITH m税额,业务类型 WITH m业务类型,过帐日期 WITH m过帐日期
        ENDIF
    SELECT 2
    SKIP
    ENDD  

学习交流VFP,QQ:248561326。
2013-01-28 11:45
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9805
专家分:26913
注 册:2012-2-5
收藏
得分:0 
上传相关文件

坚守VFP最后的阵地
2013-01-28 11:55
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 

付上   B表
B.rar (9.67 KB)
2013-01-28 18:26
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
以下是引用cxzbzgz在2013-1-28 11:45:00的发言:

楼主所写的这段代码是用数组代换数据,然后再把数组追加在数据表的尾部,你的这段代码的问题是C表的数据库结构必须与A表完成相同,否则就会造成数据混乱。可以作如下修改:
SELECT 1
 USE A.DBF
  INDEX on 物料凭证 TO tlpz   &&以物料凭证做索引
  SELECT 2
   USE C     &&临时表
  ZAP   
   APPEND FROM B.xls TYPE XLS  &&追加电子表数据
    GO TOP   && 到数据表头
    DO while!EOF()
      m物料凭证=物料凭证     &&将每个字段赋值给变量
      m采购单位=采购单位
      m收货数量=收货数量
      m结算金额=结算金额
      m税额=税额
      m业务类型=业务类型
      m过帐日期=过帐日期      
    SELECT 1
      SEEK m物料凭证      
        IF EOF()      && 如果在A表中没有找到,就追加一条空记录,然后将变量的值替换字段
         APPEND BLANK
         REPLACE 物料凭证 WITH m物料凭证,采购单位 WITH m采购单位,收货数量 WITH m收货数量,;
         结算金额 WITH m结算金额,税额 WITH m税额,业务类型 WITH m业务类型,过帐日期 WITH m过帐日期
        ENDIF
    SELECT 2
    SKIP
    ENDD  
这段代码如果DBF表的字段"日期"为字符型的这时候是可以的,如果DBF表的字段"日期"为日期型就不可以了. 还有如果是N多字段,那代码是不是太多了点?
2013-01-28 18:57
ycvf
Rank: 2
等 级:论坛游民
帖 子:210
专家分:56
注 册:2012-8-25
收藏
得分:0 
楼主,能附上A表吗?怎么又出了临时表C?临时表的结构式是什么?

[ 本帖最后由 ycvf 于 2013-1-29 17:51 编辑 ]

落花人独立,微雨燕双飞。
2013-01-29 17:48
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
回复 15楼 ycvf
A表B表C表的结构都一样的
2013-01-29 22:58
cxzbzgz
Rank: 8Rank: 8
来 自:云南楚雄
等 级:贵宾
威 望:24
帖 子:296
专家分:808
注 册:2012-6-15
收藏
得分:5 
回复 16楼 afdwxf
如果三个表的结构都完全相同的话,可以用以下程序段解决:
SELECT 1
USE A
COPY STRUCTURE TO B       &&生成一个临时表B,结构与A完全相同
 APPEND FROM B TYPE XLS   &&追加B.XLS里的所有记录到B表
 SELECT * FROM A,B WHERE A.物料凭证<>B.物料凭证 INTO ARRAY C    &&通过比对不是A表和B表,如果不是B表里的数据,生成一个数组数据C
SELECT 1
APPEND FROM ARRAY C       &&追加数组到A表里

学习交流VFP,QQ:248561326。
2013-01-30 15:29
快速回复:怎么用VFP命令提取数据?
数据加载中...
 
   



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

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