Foxtable(狐表)用户栏目专家坐堂 → [求助]在不同dataset中的表之间不能建立关系


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

主题:[求助]在不同dataset中的表之间不能建立关系

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


加好友 发短信
等级:二尾狐 帖子:503 积分:3480 威望:0 精华:0 注册:2021/8/9 10:30:00
[求助]在不同dataset中的表之间不能建立关系  发帖心情 Post By:2022/3/22 14:25:00 [只看该作者]

图片点击可在新窗口打开查看


图片点击可在新窗口打开查看


这么普通的一句代码怎么会出这么高深的问题,什么原因呢?求大神指点一下可能有哪些原因


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/22 14:28:00 [只看该作者]

贴出按钮完整代码

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626

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


加好友 发短信
等级:二尾狐 帖子:503 积分:3480 威望:0 精华:0 注册:2021/8/9 10:30:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3480 威望:0 精华:0 注册:2021/8/9 10:30:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3480 威望:0 精华:0 注册:2021/8/9 10:30:00
  发帖心情 Post By:2022/3/22 14:38:00 [只看该作者]

内容有点多,分两次发的,都是同一个按钮


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


加好友 发短信
等级:二尾狐 帖子:503 积分:3480 威望:0 精华:0 注册:2021/8/9 10:30:00
  发帖心情 Post By:2022/3/22 14:38:00 [只看该作者]

图片点击可在新窗口打开查看出错的是这句


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


加好友 发短信
等级:二尾狐 帖子:503 积分:3480 威望:0 精华:0 注册:2021/8/9 10:30:00
  发帖心情 Post By:2022/3/22 14:40:00 [只看该作者]

网络卡会不会导致这个问题?


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/22 15:03:00 [只看该作者]

订单表的表事件有没有代码?全部注释掉这个表所有事件代码再测试还有没有问题?

关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。
[此贴子已经被作者于2022/3/22 15:03:04编辑过]

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


加好友 发短信
等级:二尾狐 帖子:503 积分:3480 威望:0 精华:0 注册:2021/8/9 10:30:00
  发帖心情 Post By:2022/3/22 15:37:00 [只看该作者]

好的,我试试,并不是每次都出这个问题,时不时出一次,可能跟这个有关


 回到顶部