易表在线答疑技术与交流用户社区 → [求助]求教一个比较复杂的记录导出dbf文件问题!


  共有37212人关注过本帖树形打印复制链接

主题:[求助]求教一个比较复杂的记录导出dbf文件问题!

帅哥哟,离线,有人找我吗?
tzszw
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
[求助]求教一个比较复杂的记录导出dbf文件问题!  发帖心情 Post By:2007/7/13 23:48:00 [显示全部帖子]

今天遇到一个涉及三个表,且相对比较复杂的记录导出问题,实在搞不定,特此向各位版主和易友求教!
情况是这样的:
1、表“mgha1”中“操作号”列的内容为不重复的(即“操作号”列内容相同的记录只有唯一一条);
2、表“jbldfl1”中同样的“操作号”列的内容为可重复的(即“操作号”列内容相同但其他列内容不同的记录可有多条);
3、表“mgha1”与表“jbldfl1”以“操作号”列相关联,即:表“mgha1”与表“jbldfl1”以“操作号”列形成“一对多”或“一对一”(表“jbldfl1”中只有一条对应记录时)的关系;
4、表“jb”中不含“操作号”列,但含有与表“jbldfl1”中其他相关列有关系的列。
我想达到如下要求:
1、在表“mgha1”中选择某一“操作号”的记录,并以此记录找出表“jbldfl1”中相同“操作号”对应的多条(或一条)记录;
2、再以表“jbldfl1”中相同“操作号”对应的多条(或一条)记录的其他列(“路号”、“道号”)的相关值作为条件将“JB”表中
某“路号”的某“道号”下“片号”大于等于“jbldfl1”表中“最小片号”且小于等于“jbldfl1”表中“最大片号”的记录导出至同目录下"sfk.dbf"。
操作例程(步骤):
第1步:在表“mgha1”表的录入窗口“数据发送处理1”中选中“批处理号”为2后点击其右边的按钮可以见到其下左边的关联表中将所在“批处理号”为2的记录列出;
第2步:在其下左边的关联表中按“操作号”为2的记录的“选择”列(其对应操作员为“蒋建萍”)使其逻辑列“选择”打钩,[ 时可见右边关联表中显示出对应的“操作号”为2的8条对应记录(路道号分别为:路2道1、路2道2、路2道9、路2道10、路2道14、路3道3、路4道20、路8道6)
第3步:点击下面两个按钮中左边的一个“以右表中...sfk.dbf”,将“jb”表中路号=2道号=1片号>=1且片号<=4000、路号=2道号=2片号>=1且片号<=4000、路号=2道号=9片号>=1且片号<=4000、... ...、路号=8道号=6片号>=1且片号<=4000的所有记录导出至同目录下"sfk.dbf"。
问题出在第3步上,我实在写不出导出公式(因这个公式涉及循环执行的问题)
在此请教,希望大家帮忙解决!
谢谢!文件附后,无密码egd文件下载

-=-=-=- 以下内容由 tzszw2007年07月13日 11:56pm 时添加 -=-=-=-
如果先按左边按钮的条件生成数据到"sendsfk"表中然后再一次性导出到同目录下sfk.dbf文件又该怎么做呢?

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2007/7/14 0:18:00 [显示全部帖子]

自己顶一下!

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2007/7/14 0:34:00 [显示全部帖子]

呵呵,请各位想想办法!帮帮忙吧!

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2007/7/14 2:28:00 [显示全部帖子]

好的,谢谢CZY老师,我先试试!

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2007/7/14 2:58:00 [显示全部帖子]

已测试,是行的!非常感谢!
我想在此基础上做到"不打开jb表直接在mgha1表中将jb表中符合条件的记录全部复制到sendsfk表中然后再导出到当前目录下sfk.dbf",能否做到呢?egd文件下载(这个文件中我已对JBLDFL表中2路的数据进行修改,将其从1道到21道进行测试,达到要求。现只是想不打开jb表直接将筛选的JB表记录复制到生成sendsfk表)

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2007/7/14 7:19:00 [显示全部帖子]

自己再顶一下!希望各位版主和易友帮助解决!达到在此基础上做到"不打开jb表直接在mgha1表中将jb表中符合条件的记录全部复制到sendsfk表中然后再导出到当前目录下sfk.dbf"的目的.

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2007/7/14 18:26:00 [显示全部帖子]

[这个贴子最后由tzszw在 2007/07/14 07:09pm 第 3 次编辑]

下面引用由gdlgh2007/07/14 08:52am 发表的内容:
这样?
1.建变量%@%
2.在mgha1表的按扭公式
if(SetVariable("%@%","") And EvalFor("jbldfl","备注","SetVariable(""%@%"",+""|&q ...

gdlgh老师:
你好!刚刚试用了你修改的公式,测试了"操作号"和"批处理号"均为2的,达到要求。
但我改成导出DBF文件后就不行了,总是报“记录过大”错误,不知什么原因?
我的设计要求是先将符合条件的记录追加到sendsfk表中,然后再导出至同目录下sendsfk.dbf中(因此表结构是与手掌机互传数据用的,固定结构不好改动),想请你再帮忙解决一下!(参见修改的按钮内公式,最好请你在mgha1表的录入窗口中的“gdlgh老师的公式”中修改一下。将jb表中筛选条件记录追加到sendsfk表后再导出至同目录下sendsfk.dbf的方法请参见"czy老师的公式"按钮中内容)
谢谢!egd文件下载

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2007/7/14 18:43:00 [显示全部帖子]

[这个贴子最后由tzszw在 2007/07/24 00:29am 第 3 次编辑]

下面引用由czy2007/07/14 06:29pm 发表的内容:
不打开jb表直接进行筛选和复制都可以,但sendsfk表和jb表的结构不一样,怎么复制?

我已对你给出的公式进行了相关修改且导出成功了(将筛选的数据追加至sendsfk表且再导出至同目录下sendsfk.dbf的部分已修改到位,因为此表结构是与手掌机互传数据用的,固定结构不好改动),只是从mgha1表到jb表转换打开时需解决闪屏问题,谢谢CZY老师继续关注!

对CZY老师提供的公式进行修改后的新文件已上传至17楼!egd文件下载


 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2007/7/14 19:21:00 [显示全部帖子]

下面引用由czy2007/07/14 07:13pm 发表的内容:
这样试试:
SetVariable("%Czy-1%",ListFor("jbldfl","路号","操作号",,2)) And SetVariable("%Czy-2%",ListFor("jbldfl","道号"," ...

CZY老师:
你好!你这个新公式没法试呀!可能是有嵌套问题,按钮公式一保存程序就自动退出,但我又找不出原因在哪!还得请你再改一下才行的。

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2007/7/14 21:00:00 [显示全部帖子]

[这个贴子最后由tzszw在 2007/07/14 09:20pm 第 1 次编辑]

下面引用由czy2007/07/14 07:39pm 发表的内容:
在自定义按钮中执行一下这个公式后再将18楼公式贴入即可。
ListFor("jbldfl","路号","操作号",,2)

CZY老师:
 你好!执行这一公式再贴入18楼公式后果然好用了!
 1、请问这是什么原理呢?
 2、此外,出现一个严重的问题,即导出的dbf文件将其中PH,BH,HM,KJ,等的列类型搞乱了,字符型的导成了数值型(还带了5位小数),将数值型的导成了字符型(长度成了254位),没法用呀!
 3、另外,按筛选条件追加数据到sendsfk表时出现问题,不符合条件的记录也过去了(符合条件的记录范围如下图)[UploadFile=shx_1184419238.bmp]

-=-=-=- 以下内容由 tzszw2007年07月14日 09:34pm 时添加 -=-=-=-
呵呵,这个筛选追加问题看来也是易表的弱项,我以前用VFP写的同样的程序很容易写,现在转成易表的是因我对VFP网络控制掌握不好才转用易表写的,哪知道这么费事啊!

 回到顶部
总数 38 1 2 3 4 下一页