以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 关于导入代码问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88948)
|
-- 作者:zch1104
-- 发布时间: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
-- 发布时间:2016/8/12 10:53:00
--
测试没有问题。。。。。
|
-- 作者:大红袍
-- 发布时间:2016/8/12 11:04:00
--
你的 DataColChanged 事件有代码影响了。
贴出你事件代码。
|
-- 作者:zch1104
-- 发布时间: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
-- 发布时间:2016/8/12 12:14:00
--
还有以下代码是什么意思
Dim cpbh As WinForm.ComboBox = e.Form.Controls("产品编号") cpbh.combolist=DataTables("入库明细").GetComboListString("产品编号")
谢谢
|
-- 作者:zch1104
-- 发布时间: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
-- 发布时间:2016/8/12 12:21:00
--
此主题相关图片如下:截图01.png
|
-- 作者:大红袍
-- 发布时间: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
-- 发布时间:2016/8/12 15:31:00
--
复制 Syscmd.Edit.Copy() 粘贴 Syscmd.Edit.Paste() 如图 输入代码执行不了?为什么?
|
-- 作者:大红袍
-- 发布时间:2016/8/12 15:40:00
--
复制
Tables("表a").Focus Sendkeys.Send("^C")
粘贴
Tables("表a").Focus Sendkeys.Send("^V")
|