以下代码运行后能够得到正确的结果,遍历生成的datatable,列名称和列标题也正确。
代码一:
g.Groups.AddDef("报告期",DateGroupEnum.None,"报告期")
g.Groups.AddDef("单位名称")
g.Totals.AddDef("金额",AggregateEnum.Sum,"金额")
g.Totals.AddDef("金额",AggregateEnum.Max,"最大值")
当我想用变量时,代码如下,得到的结果是报告期显示的是月,而不是2014-04-04,单位名称和金额正确,最大值的结果却和金额相同。
遍历生成的datatable,列标题报告期对应的列名称是0,单位名称的列标题和列名称一致,列标题金额对应的列名称为2,列标题最大值对应的列名称为6。
代码二:
Dim ga,gb,gc, ta,tb,tc,td As String
ga="报告期"
gb=DateGroupEnum.None
ga="报告期"
gc="单位名称"
g.Groups.AddDef(ga,gb,ga)
g.Groups.AddDef(gc)
ta="金额"
tb=AggregateEnum.Sum
tc=AggregateEnum.Max
td="最大值"
g.Totals.AddDef(ta,tb,ta)
g.Totals.AddDef(ta,tc,td)
当我将代码二中的DateGroupEnum.None、AggregateEnum.Sum、AggregateEnum.Max前后各加上一个"后,运行结果和代码二的运行结果一致,
但遍历datatable的结果却是:列标题报告期的列名称是DateGroupEnum.None,单位名称的列标题和列名称一致,列标题金额的列名称为AggregateEnum.Sum,列标题最大值的列名称为AggregateEnum.Max。三个枚举值为列名称的原因是代码将其作为重命名列名称运行。
请教大侠:
1.AddDef()括号内的内容能否使用变量引用?若能使用,如何正确设置变量类型?尤其是DateGroupEnum.None、AggregateEnum.Sum等
枚举值如何设置引用的变量类型。
2.使用变量(代码二、三)为何会导致产生与未使用变量(代码一)不一致的结果和datatable结构的不同?
说明:大家可以用任何表做测试,不必拘泥于上述代码。