以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]在不同dataset中的表之间不能建立关系 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175866) |
-- 作者:13568406997 -- 发布时间:2022/3/22 14:25:00 -- [求助]在不同dataset中的表之间不能建立关系 这么普通的一句代码怎么会出这么高深的问题,什么原因呢?求大神指点一下可能有哪些原因 |
-- 作者:有点蓝 -- 发布时间:2022/3/22 14:28:00 -- 贴出按钮完整代码 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626
|
-- 作者:13568406997 -- 发布时间:2022/3/22 14:37:00 -- \'检查数据 Dim drw As DataRow Dim clb As WinForm.ColorLabel If DataTables("订单物品临时表").DataRows.count=0 Then messagebox.show("您尚未添加任何商品!") Return End If Dim i% For Each drw In DataTables("订单物品临时表").DataRows i=i+1 If drw("产品号")="" Then messagebox.show("第" & i & "行" & drw("产品号") &"产品号为空,请处理完毕再保存!") Return End If If Functions.Execute("isExistProduct",drw("产品号"))=False Then messagebox.show("第" & i & "行" & drw("产品号") &"不在商品表中,在保存之前请保证数据的正确性!") Return End If Next drw \'检查订单 Dim strkfh As String=e.Form.Controls("cmbCid").value \'客户号 Dim strht As String=e.Form.Controls("cmbContractID").value \'合同号 Dim strgh As String=e.Form.Controls("cmbMerchandiser").value \'工号 Dim dtjd As Date=e.Form.Controls("dtTakeOrder").value \'接单日期 \'Dim dtjh As Date=e.Form.Controls("dtDelivery").value \'交货日期 Dim fahuo As String=e.Form.Controls("cmbfhqd").value \'发货渠道 \'Dim dblje As Double=e.Form.Controls("TextBox6").value Dim dr As DataRow Dim dr2 As DataRow If e.Form.Controls("rdb追加").checked=False Then \'不是追加订单则执行检查 \'检查订单号是否重复 Dim max订单号 As Integer=DataTables("订单表").Compute("Max(订单号)")+1 If e.Form.Controls("tbxoid").value<max订单号 Then e.Form.Controls("tbxoid").value=max订单号 messagebox.show("当前订单号已经被使用,订单号修改为:" & max订单号) End If If strkfh="" Then messagebox.show("订单客户未填写!") Return End If \'messagebox.show(1) If strht="" Then messagebox.show("订单合同未填写!") Return End If \'messagebox.show(2) If fahuo="" Then messagebox.show("发货渠道未填写!") Return End If \'messagebox.show(3) Dim t As timespan=Today()-dtjd.Date \'messagebox.show(t.Totaldays) If t.TotalDays>10 Then messagebox.show("订单中接单日期为10天之前!") Return End If Else Dim dr追加 As DataRow= DataTables("订单表").Find("订单号=" & e.Form.Controls("tbxoid").value) If dr追加 Is Nothing Then messagebox.show("您追加的订单不存在,请检查订单号是否正确!") Return End If End If \'messagebox.show(7) \'检查全部数据的合规性 |
-- 作者:13568406997 -- 发布时间:2022/3/22 14:37:00 -- i=1 For Each dr In DataTables("订单物品临时表").dataRows If dr("清单号")="" Then messagebox.show("订单物品第"& i &"行清单号为空!") Return End If \'messagebox.show(8) If dr("订单号")<=0 Then messagebox.show("订单物品第"& i &"行订单号为空!") Return End If \'messagebox.show(9) If dr("产品号")="" Then messagebox.show("订单物品第"& i &"行产品号为空!") Return End If \'messagebox.show(10) If dr("数量")=0 Then messagebox.show("订单物品第"& i &"行数量为0!") Return End If \'If dr("数量")=dr("未派单数量") Then \'messagebox.show("订单物品第"& i &"行未派单数量不等于物品数量!") \'Return \'End If \' \'messagebox.show(11) If dr("单价")=0 Then messagebox.show("订单物品第"& i &"行单价为0!") Return End If \'messagebox.show(12) \'t=dr("交货期限")-Today \'If t.TotalDays<3 Then \'messagebox.show("订单物品第"& i &"行交货期限距离今天不足三天,请检查数据!") \'Return \'End If \'messagebox.show(13) If dr("收货客户编号")="" Then messagebox.show("订单物品第"& i &"行收货客户编号未填写!") Return End If \'messagebox.show(14) If dr("发货渠道编号")<=0 Then messagebox.show("订单物品第"& i &"行发货渠道未填写!") Return End If \'messagebox.show(15) If dr("折扣")<0 Or dr("折扣")>1 Then messagebox.show("订单物品第"& i &"行折扣超过允许范围!") Return End If If dr("折扣")=0 Then messagebox.show("订单物品第"& i &"行折扣率为0,请先将商品折扣率登记!") Return End If \'messagebox.show(16) If dr("金额")=0 Then messagebox.show("订单物品第"& i &"行金额为0!") Return End If i=i+1 Next dr \'保存订单 \'messagebox.show(161) If e.Form.Controls("rdb追加").checked=False Then \'不是追加订单则添加订单 \'messagebox.show(162) dr = DataTables("订单表").addnew \'messagebox.show(163) dr("订单号")=e.Form.Controls("tbxoid").value \'messagebox.show(164) dr("客户编号")=Functions.Execute("intClientNameToId",e.Form.Controls("cmbCid").value) \'messagebox.show(165) dr("合同编号")=strht \'messagebox.show(166) dr("跟单员工号")=Functions.Execute("strGetEmployeeID",e.Form.Controls("cmbMerchandiser").value) \'messagebox.show(166) dr("录单员工号")=Functions.Execute("strGetEmployeeID",e.Form.Controls("tbxLDYG").value) \'messagebox.show(167) dr("当前状态")=1 \'messagebox.show(168) dr("接单日期")=e.Form.Controls("dtTakeOrder").value \'messagebox.show(169) \'\'dr("交货期限")=e.Form.Controls("dtDelivery").value dr("发货渠道号")=Functions.Execute("intGetConsignmentID",fahuo) \'messagebox.show(170) dr("订单总体折扣率")=e.Form.Controls("ncb订单总体折扣").value End If \'dr("金额")=e.Form.Controls("TextBox6").value \'messagebox.show(17) SystemReady = False For Each dr2 In DataTables("订单物品临时表").dataRows \'dr("金额")=dr("金额")+dr2("金额") Dim drDD As DataRow=DataTables("订单物品清单").addnew \'messagebox.show(dr2("清单号")) drDD("清单号")=dr2("清单号") drDD("订单号")=dr2("订单号") drDD("产品号")=dr2("产品号") drDD("数量")=dr2("数量") drDD("未派单数量")=dr2("数量") drDD("单价")=dr2("单价") drDD("交货期限")=dr2("交货期限") drDD("是否需要唯一码")=dr2("是否需要唯一码") drDD("收货客户编号")=Functions.Execute("intClientNameToId",dr2("收货客户编号")) drDD("发货渠道编号")=dr2("发货渠道编号") drDD("是否配件")=dr2("是否配件") drDD("折扣")=dr2("折扣") drDD("当前进度")=1 Dim drs As List(of DataRow) drs=drdd.GetChildRows("订单唯一码表") \'messagebox.show("订单唯一码表有子记录"& drs.count &"行!") For Each dr1 As DataRow In drs dr1("是否预分配")=False dr1("是否正式分配")=True dr1("生产状态")=Functions.Execute("shtGetBusinessStateID","等待派工单","订单唯一码","当前状态") If dr1("发货渠道编号")=0 Then dr1("发货渠道编号")=drDD("发货渠道编号") Next dr1 \'messagebox.show("临时表产品号: " & dr2("产品号") & " 清单产品号: " & drDD("产品号")) Next dr2 DataTables("订单物品临时表").DeleteFor("[清单号]<>\'\'") \'Functions.Execute("syncOredrOnlyCode")\'同步订单和唯一码总表 SystemReady = True e.Form.Controls("tbxoid").value=e.Form.Controls("tbxoid").value+1 \'Dim yn As MessageBoxButtons=messagebox.show("保存成功,继续录入选Yes,退出窗口选No.","提示",MessageBoxButtons.YesNo) \'If yn=DialogResult.Yes Then \'e.Form.Controls("tbxoid").value=e.Form.Controls("tbxoid").value+1 \'e.Form.open \'Else \'e.Form.Close \'End If
|
-- 作者:13568406997 -- 发布时间:2022/3/22 14:38:00 -- 内容有点多,分两次发的,都是同一个按钮 |
-- 作者:13568406997 -- 发布时间:2022/3/22 14:38:00 -- 出错的是这句 |
-- 作者:13568406997 -- 发布时间:2022/3/22 14:40:00 -- 网络卡会不会导致这个问题? |
-- 作者:有点蓝 -- 发布时间:2022/3/22 15:03:00 -- 订单表的表事件有没有代码?全部注释掉这个表所有事件代码再测试还有没有问题? 关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。
[此贴子已经被作者于2022/3/22 15:03:04编辑过]
|
-- 作者:13568406997 -- 发布时间:2022/3/22 15:37:00 -- 好的,我试试,并不是每次都出这个问题,时不时出一次,可能跟这个有关 |