Formula4 -- 报表取数公式分析器
(创建时间:2011年07月18日 19:47:00)
Jangogo :
'创建实例: set F4=MyApp.Create("Formula" , objPram) 'objPram 可以设置以下键值: 'MonthBegin -- 取数开始月份 'MonthEnd -- 取数结束月份 'AccYear --- 取数的会计年份,可以没有,默认为当前帐套的会计年度 'DateBegin -- 取数开始日期 'DateEnd --- 取数结束日期 ,这两个日期可以没有,系统会自动根据起止月份来计算 '当objPram 参数缺少时,也可以通过这个组件的属性来进行赋值,例如: F4.MonthBegin = 7 ' 设置报表开始月份为7月 '我们建议是使用objPram 的方式进行预设。
分析函数一:
Public Function Analyse(ByVal s As String, Optional oPAZU As Object, Optional strReturnWhenZero As String = "0") As String 'oPAZU 如果传入了,则获得结果再返回,否则返回 一个SC的代码取数语句 'strReturnWhenZero ,表示如果结果为零的话,用来替代的字符串 '例如: F4.Analyse("全年销售额 ?累计(5101) 元" , PAZU , String(5," ")) '结果为 全年销售额 19900 元 '如果结果为零 则变成: 全年销售额 元
这个分析函数适合以下两种情况:
1. 和上述全年销售额类似的描述字符串里面要填入数字的情况
2. 公式在混合运算表达式中,如:(?累计(5101) + ?流入(4111)) / 2
结果会返回: (19900 + 3000) / 2
你可以再用PAZU.Fly 这个结果就能得到一个最终的值
如果你不如传入PAZU, 则第一种情况是不能处理的,而第二种情况是可以的,因为第二种情况会返回SC代码,可以通过把二次Fly ,就能得到最终结果
分析函数二:
Public Function Analyse_(ByVal s As String, Optional ByVal strRefForBatch As String) As String '注意这函数名和分析函数一的区别是最后多一个下划线 '这个函数只适合于报表里面有很多单元格,很多公式要处理,为了加快程序运行速度,可以批量处理这些公式,如:三大报表和科目明细表就是这样处理的。 '每10个公式做一个批次处理。 '参数 strRefForBatch 是一个键,表示当前公司的值批量返回的时候标记这个值是属于哪个单元格的,例如: '2_3:19900 '说明是第二行第三列的值为19900,当然这个键可以你自己定义。
文档中心