以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 合并数据时列名不同请问怎么办 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119180) |
-- 作者:hrlong -- 发布时间:2018/5/19 10:44:00 -- [求助] 合并数据时列名不同请问怎么办 我采用下面的代码合并excel数据到内部表中 但是原来的excel表有两列 “收件人姓名*”,“收件人电话/手机” 这两列标题有特殊字符 在FOX里面只能设成 "收件人姓名“,”收件人电话” 这样就会导致两个列名不同; 这时该怎么修改下面的代码来把这两列数据合并进去呢 ================================================= Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter = "Excel文件|*.xls;*.xlsx" If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim mg As New Merger mg.SourcePath = dlg.FileName mg.Format = "excel" \'指定格式 mg.SourceTableName = "sheet0$" mg.DataTableName = "订单临时表" mg.Merge() End If |
-- 作者:有点蓝 -- 发布时间:2018/5/19 10:50:00 -- 1、把Execl标题改正确再导 2、试试 FieldMaps 这是一个集合,要合并的表和接收数据的表的字段名称存在不一致的情况下,可以用此集合指定两个表之间字段的对应关系。 假定要合并的表中某一字段的名称为“ID”,合并的时候,需要将该列的内容合并到接收表中的"编号"列,可以设置代码: Dim mg As New Merger mg.FieldMaps.Add("ID","编号") mg.FieldMaps.Add("收件人电话/手机","收件人电话")
|
-- 作者:hrlong -- 发布时间:2018/5/19 11:21:00 -- 谢谢,这样可以了 但是用这个方法把数据合并到表中, 在表事件DataColChanged中以下代码却不起作用了 =============================================================== Select Case e.DataCol.name Case "系统单号" Dim filter As String = "系统单号 = \'" & e.DataRow("系统单号") & "\'" Dim sum1 As Double = e.DataTable.Compute("count(系统单号)", filter) e.DataTable.ReplaceFor("款数",sum1,filter) filter = "系统单号 = \'" & e.oldvalue & "\'" sum1 = e.DataTable.Compute("count(系统单号)", filter) e.DataTable.ReplaceFor("款数",sum1,filter) End Select 是怎么回事呢
|
-- 作者:有点蓝 -- 发布时间:2018/5/19 11:26:00 -- Merger不会触发表事件 |