Foxtable(狐表)用户栏目专家坐堂 → 不知道哪里错了


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

主题:不知道哪里错了

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


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


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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/12/14 10:43:00 [只看该作者]

自动根据日期编号 已经完成  问题又回到了原点 上星期试了把导入代码中:                       

filter &= " and " & dc & " >= " & vl - 0.0001 & " and " & dc & " <= " & vl + 0.0001

去掉

今天同样是已经去掉了 65条数据一直可以重复导入9条

然后我又把

                        filter &= " and " & dc & " >= " & vl - 0.0001 & " and " & dc & " <= " & vl + 0.0001

加了回来

65条数据就不能重复导入了

那么我该怎样让它自动识别得了怎么时候加怎么时候不加才能做到数据的准确导入


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


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

1、你的数值列显示的小数是多少位的?

 

2、多少位,就加多少个0,比如4位,就写0.0001

 

-------------具体怎么不行,做例子上来测试。


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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/12/14 11:47:00 [只看该作者]

强制保留两位 是不是数值列只要都是两位有效 就可以加

filter &= " and " & dc & " >= " & vl - 0.01 & " and " & dc & " <= " & vl + 0.01

这句不用去掉了 还有整数 也有比如2.1的一位

 


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


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

如果有问题,做个例子发上来测试。


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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/12/14 14:10:00 [只看该作者]

If e.DataTable.name = ("订单编号") Then
   Dim dr As DataRow = DataTables("客服跟单").Find("[订单编号] = '" & e.NewValue & "'")
        If dr Is Nothing Then
            dr = DataTables("客服跟单").AddNew()
          
       
       
    End If
End If
 现在应该就可以之对比订单编号是否重复了再加载 那以前的代码要怎么改(保留GetCheckedRows,保留进度条 就是条件换了
)

Dim Cols1() As String = {"项目","下单日期","MK号","DO号","城市","客户","送货地址","物料代码","数量","体积","重量","司机","车牌","车型","车数","出车日期","异常描述","处理结果","责任方"}
Dim Cols2() As String = {"项目","下单日期","MK号","DO号","城市","客户","送货地址","物料代码","数量","体积","重量","司机","车牌","车型","车数","出车日期","异常描述","处理结果","责任方"}
Dim count As Integer = 0
Dim ls As new List(of Row)
Dim dic As new Dictionary (Of DataRow, Row)
systemready = False
For Each r As Row In Tables("客服跟单").GetCheckedRows
    If r("订单状态") = "配送妥投" Then
        Dim filter As String = "1=1"
        For Each dc As String In Cols1
            If r.IsNull(dc) Then
                filter &= " and " & dc & " is null"
            Else
                Dim c As Col = Tables("回单异常").Cols(dc)
                If c.IsNumeric Then
                    filter &= " and " & dc & " = " & r(dc)
                ElseIf c.IsBoolean Then
                    If r(dc) = True Then
                        filter &= " and " & dc & " = true"
                    Else
                        filter &= " and " & dc & " = false"
                    End If
                ElseIf c.IsDate Then
                    filter &= " and " & dc & " = #" & r(dc) & "#"
                Else
                    filter &= " and " & dc & " = '" & r(dc) & "'"
                End If
            End If
        Next
     
    Dim dr As DataRow = DataTables("回单异常").find(filter)
    If dr Is Nothing Then
        ls.Add(r)
        count += 1
    Else
        dic.add(dr, r)
    End If
  Else
msgbox("订单未处理完成")
        e.cancel=True
    End If

   
Next

Dim p As WinForm.ProgressBar
p = e.Form.Controls("ProgressBar1")
If ls.count > 0 Then
    p.Visible = True
    p.Maximum =  ls.Count - 1 '设置最大值
    p.Minimum = 0 '设置最小值
    p.Value = 0 '设置当前值
End If
Dim idx As Integer = 0
DataTables("回单异常").StopRedraw
For Each r As Row In ls
    Dim dr As DataRow = DataTables("回单异常").AddNew
    For i As Integer = 0 To Cols1.Length -1
        If r.IsNull(Cols1(i)) Then
            dr(Cols2(i)) = Nothing
        Else
            dr(Cols2(i)) = r(Cols1(i))
           
        End If
       
    Next
    idx += 1
    p.Value = idx
Next
For Each key As DataRow In dic.Keys
    Dim r As Row = dic(key)
    Dim dr As DataRow = key
    For i As Integer = 0 To Cols1.Length -1
        If r.IsNull(Cols1(i)) Then
            dr(Cols2(i)) = Nothing
        Else
            dr(Cols2(i)) = r(Cols1(i))
        End If
    Next
Next

DataTables("回单异常").ResumeRedraw
p.Visible = False

systemready = True
msgbox("共有 "& count &" 条数据提交至回单" )
Tables("客服跟单").save
Tables("客服跟单").ClearCheckedRows

                                                                                          这个 msgbox("共有 "& count &""订单未处理完成")放哪里才能只显示一次,count一直是0


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


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

 不明白你说什么。上传实例说明你要做什么。

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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/12/14 17:36:00 [只看该作者]

   If r("订单状态") = "配送妥投" Then
        Dim filter As String = "1=1"
        For Each dc As String In Cols1
            If r.IsNull(dc) Then
                filter &= " and " & dc & " is null"
            Else
                Dim c As Col = Tables("回单异常").Cols(dc)
                If c.IsNumeric Then
                    filter &= " and " & dc & " = " & r(dc)
                ElseIf c.IsBoolean Then
                    If r(dc) = True Then
                        filter &= " and " & dc & " = true"


                    Else
                        filter &= " and " & dc & " = false"
                    End If
                ElseIf c.IsDate Then
                    filter &= " and " & dc & " = #" & r(dc) & "#"
                Else
                    filter &= " and " & dc & " = '" & r(dc) & "'"
                End If
            End If
        NextIf r("订单状态") = "配送妥投" Then

就是这段代码怎么改为之对比"订单编号" (现在不是有了一列唯一标识的编号吗)那上面的条件代码是不是可以简化了  就是iIf r("订单状态") = "配送妥投" Then

DataTables("客服跟单").Find("[订单编号] = '" & e.NewValue & "'")

报了value不是 "controleventargs" 成员 

我不知道该怎么改


       


 


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


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

If r("订单状态") = "配送妥投" Then

    Filter = "[订单编号] = '" & e.DataRow("订单编号") & "'"

End If


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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/12/14 18:04:00 [只看该作者]

 

Dim Cols1() As String = {"项目","下单日期","MK号","DO号","城市","客户","送货地址","物料代码","数量","体积","重量","司机","车牌","车型","车数","出车日期","异常描述","处理结果","责任方"}
Dim Cols2() As String = {"项目","下单日期","MK号","DO号","城市","客户","送货地址","物料代码","数量","体积","重量","司机","车牌","车型","车数","出车日期","异常描述","处理结果","责任方"}
Dim count As Integer = 0
Dim ls As new List(of Row)
Dim dic As new Dictionary (Of DataRow, Row)
systemready = False
For Each r As Row In Tables("客服跟单").GetCheckedRows
    If r("订单状态") = "配送妥投" Then
        Dim filter As String = "1=1"
        For Each dc As String In Cols1
            If r.IsNull(dc) Then
                filter &= " and " & dc & " is null"
            Else
                Dim c As Col = Tables("回单异常").Cols(dc)
                If c.IsNumeric Then
                    filter &= " and " & dc & " = " & r(dc)
                ElseIf c.IsBoolean Then
                    If r(dc) = True Then
                        filter &= " and " & dc & " = true"
                    Else
                        filter &= " and " & dc & " = false"
                    End If
                ElseIf c.IsDate Then
                    filter &= " and " & dc & " = #" & r(dc) & "#"
                Else
                    filter &= " and " & dc & " = '" & r(dc) & "'"
                End If
            End If
        Next
     
    Dim dr As DataRow = DataTables("回单异常").find(filter)
    If dr Is Nothing Then
        ls.Add(r)
        count += 1
    Else
        dic.add(dr, r)
    End If
  Else
msgbox("订单未处理完成")
        e.cancel=True
    End If

   
Next

Dim p As WinForm.ProgressBar
p = e.Form.Controls("ProgressBar1")
If ls.count > 0 Then
    p.Visible = True
    p.Maximum =  ls.Count - 1 '设置最大值
    p.Minimum = 0 '设置最小值
    p.Value = 0 '设置当前值
End If
Dim idx As Integer = 0
DataTables("回单异常").StopRedraw
For Each r As Row In ls
    Dim dr As DataRow = DataTables("回单异常").AddNew
    For i As Integer = 0 To Cols1.Length -1
        If r.IsNull(Cols1(i)) Then
            dr(Cols2(i)) = Nothing
        Else
            dr(Cols2(i)) = r(Cols1(i))
           
        End If
       
    Next
    idx += 1
    p.Value = idx
Next
For Each key As DataRow In dic.Keys
    Dim r As Row = dic(key)
    Dim dr As DataRow = key
    For i As Integer = 0 To Cols1.Length -1
        If r.IsNull(Cols1(i)) Then
            dr(Cols2(i)) = Nothing
        Else
            dr(Cols2(i)) = r(Cols1(i))
        End If
    Next
Next

DataTables("回单异常").ResumeRedraw
p.Visible = False

systemready = True
msgbox("共有 "& count &" 条数据提交至回单" )
Tables("客服跟单").save
Tables("客服跟单").ClearCheckedRows

 

那这段代码还要数组吗 我想保留进度条 msgbox   就是换了条件 可我不知道哪些是可以不要的

If r("订单状态") = "配送妥投" Then

    Filter = "[订单编号] = '" & e.DataRow("订单编号") & "'"

End If

[订单编号]是回单异常那个表的 要声明吧


 回到顶部
总数 41 上一页 1 2 3 4 5 下一页