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


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

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

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


加好友 发短信
等级:蜘蛛侠 帖子:1191 积分:-50 威望:0 精华:0 注册:2007/5/25 12:56:00
  发帖心情 Post By:2007/7/14 9:17:00 [显示全部帖子]

Substitute([%Czy-6%],",1)",")",1)
Substitute能带参数,为什么帮助文件没说。。。


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


加好友 发短信
等级:蜘蛛侠 帖子:1191 积分:-50 威望:0 精华:0 注册:2007/5/25 12:56:00
  发帖心情 Post By:2007/7/14 10:07:00 [显示全部帖子]

不是当前表不能筛选,不知道算不算易表的一个小缺陷。
9楼的方法很巧妙,通过赋值的方式实现  筛选和全显。不过这个方法需要一个辅助列。(楼主用9楼的办法记得把备注列 改成其他辅助列。要不你备注列的内容就全没了)

建议 filterfor等函数加上一个 gird参数。


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


加好友 发短信
等级:蜘蛛侠 帖子:1191 积分:-50 威望:0 精华:0 注册:2007/5/25 12:56:00
  发帖心情 Post By:2007/7/14 15:05:00 [显示全部帖子]

呵呵,我知道FilterFor没有gird参数才建议的。
我不是对楼主建议,而是对易表、对老六建议的 。
建议加这么一个参数,实现跨表的筛选。

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


加好友 发短信
等级:蜘蛛侠 帖子:1191 积分:-50 威望:0 精华:0 注册:2007/5/25 12:56:00
  发帖心情 Post By:2007/7/24 14:54:00 [显示全部帖子]

我说一种循环公式的写法,你看看能不能用的上:
求1+2+3+4+……+98+99+100
用LOOP写  理解起来容易,但是易表的LOOP函数不是太好用,特别是写在刷新公式里面,基本上运行不起来。
另外一种写法:
建两个变量 %N%  %Sum%
setvariable("%N%",0) and setvariable("%Sum%",0)
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
………………  
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
从第2行开始,每行都一样 一共100行  

如果真这样写,也不叫循环了,因为如果别人要求从1加到10000的话,写命令都写死人了。 正好有rept函数可以帮着完成写重复命令的任务。
第2到10行可以写成
rept("and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])",100)  
不过这个写法是错的,易表公式有个要求:把"放进别的引号间,每个"都要写成""
因此要写成
rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100)  


所以整个公式是:
setvariable("%N%",0) and setvariable("%Sum%",0)+rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100)
电脑写出的公式只是一个比较长的字符串,系统并不会把他当成公式
用eval()来执行这段公式(字符串)
eval(setvariable("%N%",0) and setvariable("%Sum%",0)+rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100)
)  
1加到100的值就保存在Sum变量里面了


注意,还有这样一种情况
不需要给 %N%  %Sum%赋初值,想直接运行
rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100)  写出来的公式,但是前面多了一个 and 无法直接运行
可以,用mid(   ,5)来得到第一个and 之后的内容,再eval()运行
eval(mid(rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100),5))


-=-=-=- 以下内容由 lxl2007年07月24日 02:58pm 时添加 -=-=-=-
基本上就是这个格式:
eval(mid(rept(" and 语句1 and 语句2 and 语句3",循环次数),5))

第一个and前面也要有空格,我上面的公式可能没写,记得加上.


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


加好友 发短信
等级:蜘蛛侠 帖子:1191 积分:-50 威望:0 精华:0 注册:2007/5/25 12:56:00
  发帖心情 Post By:2007/7/24 15:02:00 [显示全部帖子]

这个才对了
eval("setvariable("%N%",0) and setvariable("%Sum%",0)"+rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100)
)  

呵呵光写字没运行,运行一下才发现中间有个错误.:)


 回到顶部