以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  应用技巧  (http://egrid2000.com/dvbbs/list.asp?boardid=3)
----  看看我的超长巨无霸公式……  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=3&id=211)

--  作者:易行天下
--  发布时间:2007/1/13 11:02:00
--  看看我的超长巨无霸公式……
If([%PROTECT%] <> "Y",SetVariable("%PROTECT%","Y") And SetVariable("%操作状态%","执行检查…") And ClearSubtotal() And Move(1,1) And SetVariable("%错误数%","0") And SetVariable("%报错内容%","") And SetVariable("%中止检查%","0") And SetLabel("@状态@","正在核对当前行") And SetLabel("@检查行数@",0) And SetLabel("@待检行数@",Rows) And SetLabel("@错误数@","正在统计…") And SetLabel("@报错内容@","") And Loop("[%中止检查%] = 0","SetLabel(""@状态@"",""正在核对→""+[基本属性_工号]) And If(FindText(""工资基准"",""基本属性_工号"",""基本属性_身份证号"", ""="" ,[基本属性_身份证号]) <> [基本属性_工号],SetVariable(""%错误数%"",[%错误数%]+1) And SetVariable(""%报错内容%"",[%报错内容%]+[姓名]+""1|"") And SetLabel(""@报错内容@"",[%报错内容%]),"""") And If(FindText(""工资基准"",""基本属性_职务"",""基本属性_工号"", ""="" ,[基本属性_工号]) <> [基本属性_职务],SetVariable(""%错误数%"",[%错误数%]+1) And SetVariable(""%报错内容%"",[%报错内容%]+[姓名]+""2|"") And SetLabel(""@报错内容@"",[%报错内容%]),"""") And If(FindText(""工资基准"",""基本属性_部门"",""基本属性_工号"", ""="" ,[基本属性_工号]) <> [基本属性_部门],SetVariable(""%错误数%"",[%错误数%]+1) And SetVariable(""%报错内容%"",[%报错内容%]+[姓名]+""3|"") And SetLabel(""@报错内容@"",[%报错内容%]),"""")And If(FindText(""工资基准"",""基本属性_核算部门"",""基本属性_工号"", ""="" ,[基本属性_工号]) <> [基本属性_核算部门],SetVariable(""%错误数%"",[%错误数%]+1) And SetVariable(""%报错内容%"",[%报错内容%]+[姓名]+""4|"") And SetLabel(""@报错内容@"",[%报错内容%]),"""") And If(FindText(""工资基准"",""基本属性_类别"",""基本属性_工号"", ""="" ,[基本属性_工号]) <> [基本属性_类别],SetVariable(""%错误数%"",[%错误数%]+1) And SetVariable(""%报错内容%"",[%报错内容%]+[姓名]+""5|"") And SetLabel(""@报错内容@"",[%报错内容%]),"""") And If(FindText(""工资基准"",""基本属性_银行账号"",""基本属性_工号"", ""="" ,[基本属性_工号]) <> [基本属性_银行账号],SetVariable(""%错误数%"",[%错误数%]+1) And SetVariable(""%报错内容%"",[%报错内容%]+[姓名]+""6|"") And SetLabel(""@报错内容@"",[%报错内容%]),"""") And If(FindText(""工资基准"",""基本属性_身份证号"",""基本属性_工号"", ""="" ,[基本属性_工号]) <> [基本属性_身份证号],SetVariable(""%错误数%"",[%错误数%]+1) And SetVariable(""%报错内容%"",[%报错内容%]+[姓名]+""7|"") And SetLabel(""@报错内容@"",[%报错内容%]),"""") And If(FindText(""工资基准"",""工资项目_基本工资标准"",""基本属性_工号"", ""="" ,[基本属性_工号]) <> [应发款项_基本工资标准],SetVariable(""%错误数%"",[%错误数%]+1) And SetVariable(""%报错内容%"",[%报错内容%]+[姓名]+""8|"") And SetLabel(""@报错内容@"",[%报错内容%]),"""") And If(FindText(""工资基准"",""工资项目_专业补贴"",""基本属性_工号"", ""="" ,[基本属性_工号]) <> [应发款项_专业补贴],SetVariable(""%错误数%&qu
--  作者:易行天下
--  发布时间:2007/1/13 11:08:00
--  
这个公式的作用在于用基准表中的数据对当前数据库进行核对,一个员工核对30项,总共200个员工共计6000项,公式执行的时间是20秒,请问斑竹这个速度正常么?
我的配置是PM1.5(相当于P42.4) 内存512。
--  作者:czy
--  发布时间:2007/1/13 13:57:00
--  
这样的公式看起来有点可怕。

如果用Loop用时20秒,用Eval肯定比这快。


--  作者:易行天下
--  发布时间:2007/1/13 15:22:00
--  
洗耳恭听斑竹的高见!
等待中…………
--  作者:czy
--  发布时间:2007/1/13 18:39:00
--  
呵呵,这种公式需要文件才行。
--  作者:xj22710
--  发布时间:2007/1/13 21:21:00
--  
厉害,居然能写这么长,这样的公式一旦以后要修改,可就麻烦大咯。。。。。
帮你顶一下~
--  作者:ylm
--  发布时间:2007/1/13 22:48:00
--  
@-@看了头晕,眼睛要紧,闪...
--  作者:czy
--  发布时间:2007/1/14 12:39:00
--  
个人认为这种公式并不可取,理由见6楼。

如果有文件我估计把公式减缩到5分之1应该不会有问题,速度或许也能提高。


--  作者:dongd1
--  发布时间:2007/1/14 20:53:00
--  
下面引用由czy2007/01/14 00:39pm 发表的内容:
个人认为这种公式并不可取,理由见6楼。
如果有文件我估计把公式减缩到5分之1应该不会有问题,速度或许也能提高。

有理!
--  作者:h508588
--  发布时间:2007/1/15 8:04:00
--  
是什么样的系统呀,这种公式真是大开眼界!!!呵呵,大开眼界