交叉表为啥无端端有一列重复了?这个代码很简单,也用了半年了,突然就出问题
Dim b As new SQLCrossTableBuilder("tjb1","FinanceInfo") b.ConnectionName ="DB" b.HGroups.AddDef("FinanceTime", DateGroupEnum.Year, "支付日期_年") b.HGroups.AddDef("FinanceTime", DateGroupEnum.Month, "支付日期_月") b.HGroups.AddDef("FinanceTime", DateGroupEnum.Day, "支付日期_日") b.VGroups.AddDef("FinancePayWay","{0}") b.Totals.AddExp("总计", "FinanceMoney") Dim t As Table = Tables("FinanceCrossReport_Table1") t.DataSource = b.BuildDataSource t.AutoSizeCols
其实是因为支付渠道里,有些内容有空格,例如“微信”、“微信 ”
把支付渠道所有内容遍历一次,去掉空格即可。
推荐使用SqlSelect方法,直接加载临时数据到内存,不触发任何表事件
Dim drs As List(Of DataRow) = DataTables("xxx").SQLSelect("") For Each dr As DataRow In drs dr("支付渠道") = CStr(dr("支付渠道")).Trim dr.Save Next
防止客户自行录入时,继续发生这种错误,可以在BeforeSaveDataRow里统一做处理
e.DataRow("支付渠道") = CStr(e.DataRow("支付渠道")).Trim