F
filter
Unregistered / Unconfirmed
GUEST, unregistred user!
不知道能不能描述清楚。我需要设计一个报表之间互相取公式的功能,采用华表组件作
为报表工具。所有公式描述都是字符串,单项公式有ZW(最终得到数据的公式),BB(取其它表单
元格公式的公式)。假定有这样一个字符串'BB( "a2","1-天","C" )+BB( "a2","1-天","C" ),
',其实是一个复合公式。其中BB("a2","1-天","C")取a2表中'1-天'行c列的公式,取到结果为
BB("a1","1-甲","d")+zw('pre','2001','3'),即这个字符串应变为
BB("a1","1-甲","d")+zw('pre','2001','3')+BB( "a2","1-天","C" ),直到最后所有的BB公
式都化为了zw()
我想的算法应是这样,每次替换完毕后都检查字符串中有无BB,如有,则剃归。但新问题又
出现。我如何从这样一个字符串中确定BB公式的开始和结尾,BB长度不定,可能还包括其它
先后计算顺序的括号。
例:(不管BB中有几层嵌套,最后一定会得出全部是zw()公式,这就是我想要的结果)
300-(BB("a1","1-甲","d")+zw('pre','2001','3'))*4
然后将其提出来,再用这个BB
找到的公式去替换它。
为报表工具。所有公式描述都是字符串,单项公式有ZW(最终得到数据的公式),BB(取其它表单
元格公式的公式)。假定有这样一个字符串'BB( "a2","1-天","C" )+BB( "a2","1-天","C" ),
',其实是一个复合公式。其中BB("a2","1-天","C")取a2表中'1-天'行c列的公式,取到结果为
BB("a1","1-甲","d")+zw('pre','2001','3'),即这个字符串应变为
BB("a1","1-甲","d")+zw('pre','2001','3')+BB( "a2","1-天","C" ),直到最后所有的BB公
式都化为了zw()
我想的算法应是这样,每次替换完毕后都检查字符串中有无BB,如有,则剃归。但新问题又
出现。我如何从这样一个字符串中确定BB公式的开始和结尾,BB长度不定,可能还包括其它
先后计算顺序的括号。
例:(不管BB中有几层嵌套,最后一定会得出全部是zw()公式,这就是我想要的结果)
300-(BB("a1","1-甲","d")+zw('pre','2001','3'))*4
然后将其提出来,再用这个BB
找到的公式去替换它。