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


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

主题:不知道哪里错了

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


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

你代码写在哪里,报什么错。做个简单的例子上来测试一下啊

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


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

(1)我就是想把以前订单确认窗口里的配载按钮代码简化掉 但是要保留进度条 msgbox("共有 "& count &" 条数据提交至回单" ) 这些功能

(以前没有唯一标识列 现在有了)

这个实例 复选框刚好不能跟鼠标联动  同样的代码以前可以 现在没报错 不行 (2)

(2)同一张表 昨天加

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

不可以重复导入 今天我特意去掉了 也不能重复导入  我真的就不知道怎样才能让它稳定

弄来弄去 我发现上个星期一直都在围绕不能重复导入的问题到现在 只能上传实例 一并请求帮忙了

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:desktop3.zip


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


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

1、

 

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.IsNull("订单编号") = False
        Dim Filter = "[订单编号] = '" & r("订单编号") & "'"
        Dim dr As DataRow = DataTables("配载订单").find(filter)
        If dr Is Nothing Then
            ls.Add(r)
            count += 1
        Else
            dic.add(dr, r)
        End If
    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

 

2、测试没问题

 


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


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

2 我测试的也没问题 昨天我听您说 数值列小数点后有效数 现在我已经要求他们 只保留两位有效 那么平常因为有疏漏的就是因为数值的小数点后有效数吗

 

3刚才您看到的实例按住鼠标左键拖动时 复选框是否没跟着选中 现在的步凑是按住鼠标左键拖到欲选行,再在任意已选中行前的复选框点一下才能变成复选框勾选 即使未勾选 按平常的excel习惯 Ctrl+c 加 Ctrl+d 也不行

 另外因为行前有了复选框 看不见行序号 这个For Each r As Row In Tables("订单").GetCheckedRows
能否直接读取到r选中了多少行   


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


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

2、加入filter不可能有问题。有问题就上传有问题的数据测试。

 

3、代码写到AfterOpenPorject事件啊

 

Dim t As Table= Tables("配载订单")
addhandler t.grid.MouseEnterCell, addressof MouseLeaveCell
addhandler t.grid.MouseLeaveCell, addressof MouseEnterCell
t = Tables("订单")
addhandler t.grid.MouseEnterCell, addressof MouseLeaveCell
addhandler t.grid.MouseLeaveCell, addressof MouseEnterCell

 

要知道多少行,msgbox(Tables("订单").GetCheckedRows.Count)


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


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

我上传的实例里有写代码到AfterOpenPorject事件  一样没有效果

但虽然写进去了 有时会报 未声明名称"MouseLeaveCell"

在订单表的aftercheckrow中有

Dim Sum As Double
Dim Sum1 As Double
For Each r As Row In Tables("订单").GetCheckedRows
    Sum + = r("体积")
    Sum1 + = r("重量") 
Next
e.Form.Controls("体积").Text = Sum
e.Form.Controls("重量").Text = Sum1
e.Form.Controls("数量").Text = Tables("订单").GetCheckedRows.Count

 

选中都不计算了


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


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

把bin文件夹删除,然后重新打开

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


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

无语写到 AfterOpenPorject 啊

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


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

是我疏忽 我写到打开项目之前了 可我自己的项目上我确实写在打开项目之后了 弄来弄去 问题出在forms("登录验证").open上

它排在前面 后面的

Dim t As Table= Tables("配载订单")
addhandler t.grid.MouseEnterCell, addressof MouseLeaveCell
addhandler t.grid.MouseLeaveCell, addressof MouseEnterCell
t = Tables("订单")
addhandler t.grid.MouseEnterCell, addressof MouseLeaveCell
addhandler t.grid.MouseLeaveCell, addressof MouseEnterCell

没作用吗?


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


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

Ctrl+D

Ctrl+F 可以套用系统的吗 自己开发的没有这些功能

 


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