以文本方式查看主题 - 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp) -- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2) ---- [求助]求教一个比较复杂的记录导出dbf文件问题! (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=8999) |
-- 作者:tzszw -- 发布时间:2007/7/13 23:48:00 -- [求助]求教一个比较复杂的记录导出dbf文件问题! 今天遇到一个涉及三个表,且相对比较复杂的记录导出问题,实在搞不定,特此向各位版主和易友求教! 情况是这样的: 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文件下载 -=-=-=- 以下内容由 tzszw 在 2007年07月13日 11:56pm 时添加 -=-=-=- 如果先按左边按钮的条件生成数据到"sendsfk"表中然后再一次性导出到同目录下sfk.dbf文件又该怎么做呢? |
-- 作者:tzszw -- 发布时间:2007/7/14 0:18:00 -- 自己顶一下! |
-- 作者:tzszw -- 发布时间:2007/7/14 0:34:00 -- 呵呵,请各位想想办法!帮帮忙吧! |
-- 作者:Czy -- 发布时间:2007/7/14 2:21:00 -- 关系好复杂,一时难于读懂。 第三步做了一下,只做了对jb表符合的数据进行筛选,如果结果正确,你自己再做个导出公式,如果不符要求,等高人出手吧。 |
-- 作者:Czy -- 发布时间:2007/7/14 2:25:00 -- 操作前请先在mgha1表中选中要处理的某行(焦点停留在目标行)再执行窗口的自定义按钮。 |
-- 作者:tzszw -- 发布时间:2007/7/14 2:28:00 -- 好的,谢谢CZY老师,我先试试! |
-- 作者:tzszw -- 发布时间:2007/7/14 2:58:00 -- 已测试,是行的!非常感谢! 我想在此基础上做到"不打开jb表直接在mgha1表中将jb表中符合条件的记录全部复制到sendsfk表中然后再导出到当前目录下sfk.dbf",能否做到呢?egd文件下载(这个文件中我已对JBLDFL表中2路的数据进行修改,将其从1道到21道进行测试,达到要求。现只是想不打开jb表直接将筛选的JB表记录复制到生成sendsfk表) |
-- 作者:tzszw -- 发布时间:2007/7/14 7:19:00 -- 自己再顶一下!希望各位版主和易友帮助解决!达到在此基础上做到"不打开jb表直接在mgha1表中将jb表中符合条件的记录全部复制到sendsfk表中然后再导出到当前目录下sfk.dbf"的目的. |
-- 作者:gdlgh -- 发布时间:2007/7/14 8:52:00 -- 这样? 1.建变量%@% 2.在mgha1表的按扭公式 if(SetVariable("%@%","") And EvalFor("jbldfl","备注","SetVariable(""%@%"",[%@%]+""|""+""""""路号"""" ,""""="""",""""""+[路号]+"""""",""""道号"""","""" = """",""""""+[道号]+""""""""+"",""""片号"""", """">="""" ,1,""""片号"""", """"<="""" ,4000"")","操作号", "=" ,[操作号],"最小片号", ">=" ,1,"最大片号", "<=" ,4000) And evalfor("jb","备注","Do(112)",1,1),evalfor("jb","备注","eval(Substitute(""HideRowsFor(""+mid([%@%],1)+"")"",""|"","") And HideRowsFor("")) And Do(114)",1,1) And ExportTextFile("c:\\jb.txt",",",char(13),"jb",1),"") 注:由于本机不能对*.dbf测试,只做了txt类型的测试! |
-- 作者:lxl -- 发布时间:2007/7/14 9:17:00 -- Substitute([%Czy-6%],",1)",")",1) Substitute能带参数,为什么帮助文件没说。。。
|