以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  [求助] 如何在公式中给新增加的表的列设置刷新公式?  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=2128)

--  作者:hcy1185
--  发布时间:2011/8/3 8:18:00
--  [求助] 如何在公式中给新增加的表的列设置刷新公式?
如何在公式中给新增加的表的列设置刷新公式?
--  作者:wjq1072
--  发布时间:2011/8/3 8:20:00
--  
SetColFormula()

在运行过程中动态设置指定列的刷新公式。

语法
SetColFormula(Grid,Col,Formula)
Grid       指定表,可以用表名称,也可以用表位置表示。
Col        指定列,可以用列名称,也可以用列位置表示。
Formula    刷新公式。

例子
SetColFormula(GridName,"金额","[数量]*[单价]*(1-[折扣])")

提示:如果刷新公式中有引号,那么公式用两个引号表示一个,具体写法:

1、按照常规写出刷新公式:
SetColFormula(GridName,"型号",FindText("产品资料","品名","编号","=",[编号]))

2、将刷新公式中的每个双引号分别用连续的两个双引号代替:
SetColFormula(GridName,"型号",FindText(""产品资料"",""品名"",""编号"",""="",[编号]))

3、最后给刷新公式的两端加上双引号:
SetColFormula(GridName,"型号","FindText(""产品资料"",""品名"",""编号"",""="",[编号])")


--  作者:hcy1185
--  发布时间:2011/8/3 8:42:00
--  
我用公式了,但增加的表列不显示刷新公式,请老师检查一下:
If([%年度数%] <= 1,MsgBox("你要概算就填写年数!",0),If(MsgBox("你确定要把概算分为"+Text([%年度数%])+"年计划吗?",2,4),Eval(mid(Rept(" And RemoveGrid(3)",Grids-2),5)) And Eval(mid(Rept(" And CreateGrid(""第""+Text(Grids-1)+""年"",""单位工程名称"",0,""单位"",0,""工程量"",1,""单价"",1,""概算价值"",1,""指标"",1,""审核"",3)",[%年度数%]),5)) And Eval("ClearGrid("""+Substitute(Substitute(Substitute(ListGrids(),"概算|",""),"辅助|",""),"|",""") And ClearGrid(""")+""")") And Eval("CopyRows("""+Substitute(Substitute(Substitute(ListGrids(),"概算|",""),"辅助|",""),"|",""") And CopyRows(""")+""")") And Eval("DelRow("""+Substitute(Substitute(Substitute(ListGrids(),"概算|",""),"辅助|",""),"|",""",1) And DelRow(""")+""",1)") And Eval("EvalFor("""+Substitute(Substitute(Substitute(ListGrids(),"概算|",""),"辅助|",""),"|",""",""工程量"",""[工程量]/[%年度数%]"") And EvalFor(""")+""",""工程量"",""[工程量]/[%年度数%]"")") And Eval("EvalFor("""+Substitute(Substitute(Substitute(ListGrids(),"概算|",""),"辅助|",""),"|",""",""概算价值"",""[概算价值]/[%年度数%]"") And EvalFor(""")+""",""概算价值"",""SetColFormula(GridName,""概算价值"",""[工程量]/[%年度数%]*[单价]"")"")"), True )) And ClearGrid("辅助") And CopyRows("辅助") And DelRow("辅助",1) And SetVariable("%A%",1) And Eval(mid(Rept(" And DeleteCol(""辅助"",2)",[辅助!Cols]-1),5)) And Eval(mid(Rept(" And AddCol(""辅助"",""工程量""+Text([%A%]),1, True ) And AddCol(""辅助"",""概算价值""+Text([%A%]),1, True ) And SetVariable(""%A%"",[%A%]+1)",[%年度数%]),5))

-=-=-=- 以下内容由 hcy11852011年08月03日 08:43am 时添加 -=-=-=-
If([%年度数%] <= 1,MsgBox("你要概算就填写年数!",0),
请问,能不能去掉此句?
--  作者:wjq1072
--  发布时间:2011/8/4 22:07:00
--  
egd文件下载