Foxtable(狐表)用户栏目专家坐堂 → 求助


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

主题:求助

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


加好友 发短信
等级:幼狐 帖子:169 积分:1678 威望:0 精华:0 注册:2014/3/27 16:44:00
求助  发帖心情 Post By:2017/10/14 19:01:00 [只看该作者]

不晓得代码哪里有问题,加载的时候会出现重复加载的问题。下面加粗的代码不是应该排除了单号和序号都相同的数据了么,可是实际上如果有1个字段的内容不一样,也会被当做新的行加载进来。求助..

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20171014185835.png
图片点击可在新窗口打开查看
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim sCols() As String = {"DOC_NO","SequenceNumber","DOC_DATE","CUSTOMER_ORDER_NO","项目单位","PLAN_SHIP_DATE","DELIVERY_TYPE","PLAN_STATUS","CLOSE","明细状态","ITEM_CODE","ITEM_NAME","DRAWING_NO","ITEM_SPECIFICATION","客户要求产品型号","客户要求产品名称","BUSINESS_QTY","DELIVER_BUSINESS_QTY","REMARK","客户材质","SHORTCUT"}
Dim dCols() As String = {"需求单号","序号","单据日期","客户单号","项目单位","预计发货日期","供货类型","计划状态","订单状态","明细状态","品号","品名","图号","规格","客户要求产品型号","客户要求产品名称","业务数量","已发货数量","备注","客户材质","材质"}
cmd.C
cmd.CommandText = "Se/ect top 200 {SALES_ORDER_DOC}.[CLOSE],{SALES_ORDER_DOC_D}.[REMARK],{ITEM}.[ITEM_SPECIFICATION],{SALES_ORDER_DOC_D}.[SequenceNumber],{SALES_ORDER_DOC_D}.[UDF024] as [项目单位],{SALES_ORDER_DOC_D}.[UDF026]as [客户要求产品名称],{SALES_ORDER_DOC_D}.[UDF025]as [客户要求产品型号], [DOC_NO],[DOC_DATE],[CUSTOMER_ORDER_NO],[PLAN_SHIP_DATE],[PLAN_STATUS],[DELIVER_BUSINESS_QTY],[DELIVERY_TYPE],{SALES_ORDER_DOC_SD}.[BUSINESS_QTY],{SALES_ORDER_DOC_SD}.[CLOSE]AS [明细状态],[ITEM_CODE],[ITEM_NAME],[DRAWING_NO],[SALES_ORDER_DOC_D].[UDF022] AS [客户材质],[SHORTCUT] From (({SALES_ORDER_DOC_D} Inner JOIN {ITEM} ON {ITEM}.[ITEM_BUSINESS_ID] = {SALES_ORDER_DOC_D}.[ITEM_ID]) left JOIN {SALES_ORDER_DOC} ON {SALES_ORDER_DOC}.[SALES_ORDER_DOC_ID] = {SALES_ORDER_DOC_D}.[SALES_ORDER_DOC_ID]) Inner JOIN {SALES_ORDER_DOC_SD} ON {SALES_ORDER_DOC_SD}.[SALES_ORDER_DOC_D_ID] = {SALES_ORDER_DOC_D}.[SALES_ORDER_DOC_D_ID] where {SALES_ORDER_DOC_D}.[ApproveStatus] = 'Y' order by [DOC_DATE] DESC"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.DataRows
Dim t As DataRow= DataTables("销售订单").Find("需求单号 = '" & dr(sCols(0)) & "' and 序号 = '" & dr(scols(1)) &"'") 

    If t Is Nothing Then '如果不存在同编号的订单
    t = DataTables("销售订单").AddNew()
    For i As Integer =0 To sCols.Length -1
        t(dCols(i)) = dr(sCols(i))
    Next
    End If
Next
[此贴子已经被作者于2017/10/14 19:06:25编辑过]

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


加好友 发短信
等级:幼狐 帖子:169 积分:1678 威望:0 精华:0 注册:2014/3/27 16:44:00
  发帖心情 Post By:2017/10/14 19:35:00 [只看该作者]

这是另外一个方案,直接调用原数据库的GUID字段作为唯一性判断,但是加载不进来,报错,求助。。。


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

Dim cmd As New SQLCommand

Dim dt As DataTable

Dim sCols() As String = {"ID","备注","公司品号","公司品名", "公司材质", "公司规格", "公司图号","单据日期","供应类型", "项目单位","客户型号", "客户品名", "客户单号","销售单号","订单数量","客户材质"}

Dim dCols() As String = {"ID","备注","公司品号","公司品名", "公司材质", "公司规格", "公司图号","单据日期","供应类型", "项目单位","客户型号", "客户品名", "客户单号","销售单号","订单数量","客户材质"}

cmd.C

cmd.CommandText = "Se/ect  {SALES_DELIVERY}.[DOC_NO] As [预备发货单号],{SALES_ORDER_DOC_D}.REMARK As [备注],[ITEM_CODE] As [公司品号],[ITEM_NAME] As [公司品名],SHORTCUT As [公司材质],{ITEM}.[ITEM_SPECIFICATION] As [公司规格],[DRAWING_NO] As [公司图号],CONVERT(varchar(16),{SALES_DELIVERY}.[DOC_DATE], 23) As [单据日期],{SALES_ORDER_DOC_D}.UDF021 As [供应类型],{SALES_ORDER_DOC_D}.UDF024 As [项目单位],{SALES_ORDER_DOC_D}.UDF025 As [客户型号],{SALES_ORDER_DOC_D}.UDF026 As [客户品名],[CUSTOMER_ORDER_NO] As [客户单号],{SALES_ORDER_DOC}.[DOC_NO] As [销售单号],{SALES_ORDER_DOC_D}.UDF022 As [客户材质],{SALES_ORDER_DOC_D}.[BUSINESS_QTY] As [订单数量],{SALES_DELIVERY_D}.SequenceNumber As [序号],{SALES_ORDER_DOC_D}.[SALES_ORDER_DOC_D_ID] As [ID] From (((({SALES_ORDER_DOC_D} Left JOIN {SALES_ORDER_DOC} ON {SALES_ORDER_DOC}.[SALES_ORDER_DOC_ID] = {SALES_ORDER_DOC_D}.[SALES_ORDER_DOC_ID]) Left JOIN {SALES_ORDER_DOC_SD} ON {SALES_ORDER_DOC_SD}.[SALES_ORDER_DOC_D_ID] = {SALES_ORDER_DOC_D}.[SALES_ORDER_DOC_D_ID]) Left JOIN {SALES_DELIVERY_D} ON {SALES_DELIVERY_D}.[REFERENCE_SOURCE_ID_ROid] = {SALES_ORDER_DOC_SD}.[SALES_ORDER_DOC_SD_ID]) Left JOIN {SALES_DELIVERY} ON {SALES_DELIVERY}.[SALES_DELIVERY_ID] = {SALES_DELIVERY_D}.[SALES_DELIVERY_ID]) Inner JOIN {ITEM} ON {ITEM}.[ITEM_BUSINESS_ID] = {SALES_ORDER_DOC_D}.[ITEM_ID]"

dt = cmd.ExecuteReader()

For Each dr As DataRow In dt.DataRows

Dim t As DataRow= DataTables("销售订单测试").Find("[ID] = '" & dr(sCols(0)) & "'") 


    If t Is Nothing Then '如果不存在同编号的订单

    t = DataTables("销售订单测试").AddNew()

    For i As Integer =0 To sCols.Length -1

        t(dCols(i)) = dr(sCols(i))

    Next

    End If

Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/15 15:12:00 [只看该作者]

弹出这个值看看

 

msgbox("需求单号 = '" & dr(sCols(0)) & "' and 序号 = '" & dr(scols(1)) &"'") 

 

如果自己无法解决,做个例子上来看看


 回到顶部