Foxtable(狐表)用户栏目专家坐堂 → 关于导入代码问题?


  共有1765人关注过本帖树形打印复制链接

主题:关于导入代码问题?

帅哥哟,离线,有人找我吗?
zch1104
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:496 威望:0 精华:0 注册:2016/4/11 18:05:00
关于导入代码问题?  发帖心情 Post By:2016/8/12 10:33:00 [只看该作者]

 

导入代码:

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel" '指定格式
    mg.SourceTableName = "入库明细$" '指定要合并的表
    mg.DataTableName = "入库明细" '指定接收数据的表
    mg.Merge() '开始合并
End If

 

求帮助看看代码有问题吗?用自己会的几种方法都测试了好几次,还解决不了总是提示如下:

 

.NET Framework 版本:2.0.50727.3643
Foxtable 版本:2016.6.26.1
错误所在事件:表,入库明细,DataColChanged
详细错误信息:
调用的目标发生了异常。
索引和长度必须引用该字符串内的位置。
参数名: length

 

.NET Framework 版本:2.0.50727.3643
Foxtable 版本:2016.6.26.1
错误所在事件:表,入库明细,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

 

 

我也试了把文件里可能影响长度的文字给删除了,但是导入还是不成功。还有就是用Foxtable一出现问题,易死机这是为什么?注:win8系统刚转换的XP系统、高配。



 回到顶部
帅哥哟,离线,有人找我吗?
2900819580
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1327 积分:9648 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2016/8/12 10:53:00 [只看该作者]

测试没有问题。。。。。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/12 11:04:00 [只看该作者]

你的 DataColChanged 事件有代码影响了。

 

 贴出你事件代码。


 回到顶部
帅哥哟,离线,有人找我吗?
zch1104
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:496 威望:0 精华:0 注册:2016/4/11 18:05:00
  发帖心情 Post By:2016/8/12 12:14:00 [只看该作者]

这是这个表的所有DataColChanged 事件有代码,设计到到导入,所以导入的数据就出现了问题?

 

If e.DataCol.Name = "产品编号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("产品名称") = Nothing
        e.DataRow("规格型号") = Nothing
        e.DataRow("分类") = Nothing
        e.DataRow("单位") = Nothing
        e.DataRow("产地") = Nothing
        e.DataRow("注册证号") = Nothing
        e.DataRow("单价元") = Nothing
        e.DataRow("入库批号") = Nothing
        e.DataRow("有效期") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("入库明细").Find("[产品编号] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("产品名称")= dr("产品名称")
            e.DataRow("规格型号") = dr("规格型号")
            e.DataRow("单位") = dr("单位")
            e.DataRow("分类") = dr("分类")
            e.DataRow("产地") = dr("产地")
            e.DataRow("注册证号") = dr("注册证号")
            e.DataRow("单价元") = dr("单价元")
e.DataRow("入库批号") = Nothing
        e.DataRow("有效期") = Nothing

        End If
    End If
End If


Select Case e.DataCol.Name
    Case "入库批号"
        Dim s As String = CStr(e.NewValue)
        Dim d As Date =new Date(s.SubString(0,4),s.SubString(4,2),s.SubString(6,2))
        d = d.AddYears(1).AddDays(-1)
        e.DataRow("有效期") = Format(d,"yyyyMMdd")
End Select


If e.DataCol.Name = "单价元" OrElse e.DataCol.Name = "数量" Then
    e.DataRow("金额元") = e.DataRow("单价元") * e.DataRow("数量")
End If


 回到顶部
帅哥哟,离线,有人找我吗?
zch1104
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:496 威望:0 精华:0 注册:2016/4/11 18:05:00
  发帖心情 Post By:2016/8/12 12:14:00 [只看该作者]

还有以下代码是什么意思

 

       Dim cpbh As WinForm.ComboBox = e.Form.Controls("产品编号")
 cpbh.combolist=DataTables("入库明细").GetComboListString("产品编号")

 

 

 

                                  谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
zch1104
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:496 威望:0 精华:0 注册:2016/4/11 18:05:00
  发帖心情 Post By:2016/8/12 12:21:00 [只看该作者]

        问题一:导入?

 

         问题二:Dim cpbh As WinForm.ComboBox = e.Form.Controls("产品编号")
 cpbh.combolist=DataTables("入库明细").GetComboListString("产品编号")     ????

 

         问题三:复制    Syscmd.Edit.Copy()       粘贴   Syscmd.Edit.Paste()     如图  输入代码执行不了?为什么?

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
zch1104
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:496 威望:0 精华:0 注册:2016/4/11 18:05:00
  发帖心情 Post By:2016/8/12 12:21:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:截图01.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/12 14:34:00 [只看该作者]

If e.DataCol.Name = "产品编号" Then
    If e.NewValue = Nothing Then
        e.DataRow("产品名称") = Nothing
        e.DataRow("规格型号") = Nothing
        e.DataRow("分类") = Nothing
        e.DataRow("单位") = Nothing
        e.DataRow("产地") = Nothing
        e.DataRow("注册证号") = Nothing
        e.DataRow("单价元") = Nothing
        e.DataRow("入库批号") = Nothing
        e.DataRow("有效期") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("入库明细").Find("[产品编号] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("产品名称")= dr("产品名称")
            e.DataRow("规格型号") = dr("规格型号")
            e.DataRow("单位") = dr("单位")
            e.DataRow("分类") = dr("分类")
            e.DataRow("产地") = dr("产地")
            e.DataRow("注册证号") = dr("注册证号")
            e.DataRow("单价元") = dr("单价元")
            e.DataRow("入库批号") = Nothing
            e.DataRow("有效期") = Nothing
           
        End If
    End If
End If


Select Case e.DataCol.Name
    Case "入库批号"
        if e.newValue <> Nothing AndAlso e.newvalue.Length >= 8 then
            Dim s As String = CStr(e.NewValue)
            Dim d As Date =new Date(s.SubString(0,4),s.SubString(4,2),s.SubString(6,2))
            d = d.AddYears(1).AddDays(-1)
            e.DataRow("有效期") = Format(d,"yyyyMMdd")
        end if
End Select


If e.DataCol.Name = "单价元" OrElse e.DataCol.Name = "数量" Then
    e.DataRow("金额元") = e.DataRow("单价元") * e.DataRow("数量")
End If


 回到顶部
帅哥哟,离线,有人找我吗?
zch1104
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:496 威望:0 精华:0 注册:2016/4/11 18:05:00
  发帖心情 Post By:2016/8/12 15:31:00 [只看该作者]

复制    Syscmd.Edit.Copy()       粘贴   Syscmd.Edit.Paste()     如图  输入代码执行不了?为什么?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/12 15:40:00 [只看该作者]

复制

 

Tables("表a").Focus
Sendkeys.Send("^C")

 

粘贴

 

Tables("表a").Focus
Sendkeys.Send("^V")

 


 回到顶部