交叉表为啥无端端有一列重复了?这个代码很简单,也用了半年了,突然就出问题
1 2 3 4 5 6 7 8 9 10 | 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方法,直接加载临时数据到内存,不触发任何表事件
1 2 3 4 5 | Dim drs As List(Of DataRow) = DataTables( "xxx" ).SQLSelect( "" ) For Each dr As DataRow In drs dr( "支付渠道" ) = CStr (dr( "支付渠道" )).Trim dr.Save Next |
防止客户自行录入时,继续发生这种错误,可以在BeforeSaveDataRow里统一做处理
1 | e.DataRow( "支付渠道" ) = CStr (e.DataRow( "支付渠道" )).Trim |