易表在线答疑技术与交流应用技巧 → [原创]几个数据备份恢复的公式


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

主题:[原创]几个数据备份恢复的公式

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


加好友 发短信
等级:论坛游侠 帖子:215 积分:148 威望:0 精华:0 注册:2007/7/18 15:48:00
[原创]几个数据备份恢复的公式  发帖心情 Post By:2009/9/13 10:41:00 [只看该作者]

[这个贴子最后由老宋在 2009/09/22 05:13pm 第 1 次编辑]

历经两个月的潜心易表研究,做了一个材料管理系统,同时做了几个通用的数据处理方面的公式,不敢独用,分享一下,希望能给大家带来一些帮助:
1.保存退出(自动备份超过500行数据的表)
Eval("If(["+Substitute(Substitute(Substitute(Substitute(Eval(Substitute("Substitute(#|@|$|&|#,#|#,#"+Substitute(ListGrids(),"|","#)+#|#+Substitute(#|@|$|&|#,#|#,#")+"#)","#","""")),"@","!Rows]>499,ExportTextFile(DocDir+"""),"$","""+"".txt"",char(9),Char(13),"""),"&",""",2) And ClearGrid("""),"|","""),True) And If([") + """),True)") And Save() And Exit()

2.数据加载(自动加载被清空的表的数据)
Eval("If(["+Substitute(Substitute(Substitute(Substitute(Eval(Substitute("Substitute(#|@|&|#,#|#,#"+Substitute(ListGrids(),"|","#)+#|#+Substitute(#|@|&|#,#|#,#")+"#)","#","""")),"@","!Rows]<2,SpenGrid("""),"&",""") And ImportTextFile(DocDir+"""),"|","""+"".txt"",Char(9),Char(13),0),True) And If(["),"Spen","Open")+ """+"".txt"",Char(9),Char(13),0),True)")


1.备份系统(自动备份所有表的数据)
Eval(Substitute("ExportTextFile(DocDir+#"+Eval("Substitute(""|#+#.txt#,char(9),Char(13),#|"",""|"","""+Substitute(ListGrids(),"|",""")+""#,3) And ExportTextFile(DocDir+#""+Substitute(""|#+#.txt#,char(9),Char(13),#|"",""|"",""")+""")")+"#,3)","#",""""))

2.恢复系统(自动加载所有表的数据)
Eval(Substitute(Substitute("SpenGrid(#"+Eval("Substitute(""|#) And ImportTextFile(DocDir+#|"",""|"","""+Substitute(ListGrids(),"|",""")+""#+#.txt#,Char(9),Char(13),0) And SpenGrid(#""+Substitute(""|#) And ImportTextFile(DocDir+#|"",""|"",""")+""")") + "#+#.txt#,Char(9),Char(13),0)","#",""""),"Spen","Open")) And Eval(Substitute("DelRow(#"+Substitute(ListGrids(),"|","#,1) And DelRow(#")+"#,1)","#",""""))
3.清空系统(自动清空所有表的数据)
Eval(Substitute("ClearGrid(#"+Substitute(ListGrids(),"|","#) And ClearGrid(#")+"#)","#",""""))

克隆表
SetVariable("%AAA%","材料台账") And SubtotalFill([%AAA%],"Substitute(ListCols([%AAA%]),""|"","","")","","") And ClearGrid(Grid) And OpenGrid([%AAA%]) And OpenGrid("万能报表")

以前的公式有太多的引号,套用函数后,将产生更多的引号,如果用#号将引号提前替换,套用函数将省去很多问题:

一翻二:
Eval(Substitute("Substitute(#|@|#,#|#,#"+Substitute(ListGrids(),"|","#)+#|#+Substitute(#|@|#,#|#,#")+"#)","#",""""))

一翻三:
Eval(Substitute("Substitute(#|@|&|#,#|#,#"+Substitute(ListGrids(),"|","#)+#|#+Substitute(#|@|&|#,#|#,#"


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


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2009/9/13 20:29:00 [只看该作者]

学习了!
顶一下!
如果配有例子程序加说明更好!

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


加好友 发短信
等级:论坛游侠 帖子:215 积分:148 威望:0 精华:0 注册:2007/7/18 15:48:00
  发帖心情 Post By:2009/9/22 17:14:00 [只看该作者]

数据和系统分离,能使易表程序使用个人版本来运行超过500行数据的表。

大家有需要进行数据系统分离处理的易表程序,可以用以上的公式处理。

如需要帮助,请发邮件给我。


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


加好友 发短信
等级:论坛游民 帖子:38 积分:153 威望:0 精华:0 注册:2009/11/6 15:10:00
  发帖心情 Post By:2010/2/17 17:16:00 [只看该作者]

根据您的以上公式制了一个表,取名为老宋易表,以后就不怕个人版的500行限制了。真的太谢谢您了。 图片点击可在新窗口打开查看

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


加好友 发短信
等级:论坛游民 帖子:165 积分:100 威望:0 精华:0 注册:2007/11/16 15:08:00
  发帖心情 Post By:2010/5/24 11:22:00 [只看该作者]

不错的公式,但有一个问题,如果是超过500行的表,不能添加记录!这个问题很严重!!!

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


加好友 发短信
等级:论坛游侠 帖子:215 积分:148 威望:0 精华:0 注册:2007/7/18 15:48:00
  发帖心情 Post By:2010/8/15 16:52:00 [只看该作者]

对于超过500行的数据添加问题,可以使用导入空行的办法,我平时设置了100空行和200空行和500空行的空文件,必要时导入相应的空列表来添加数据

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


加好友 发短信
等级:论坛游民 帖子:36 积分:10 威望:0 精华:0 注册:2010/1/21 16:14:00
  发帖心情 Post By:2010/10/7 10:41:00 [只看该作者]

保存退出和数据加载都是针对txt文件的,能不能够导出、导入excel文件啊?
做到数据和系统完全分离使用外挂Excel文件?

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


加好友 发短信
等级:论坛游民 帖子:36 积分:10 威望:0 精华:0 注册:2010/1/21 16:14:00
  发帖心情 Post By:2010/10/7 10:45:00 [只看该作者]

这么复杂的公式我看了头晕,还理不清头绪。

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


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2010/10/8 20:24:00 [只看该作者]

呵呵,看不懂的人很多喔,慢慢来吧!

 回到顶部