Foxtable(狐表)用户栏目专家坐堂 → 装箱单箱号的编程代码


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

主题:装箱单箱号的编程代码

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
装箱单箱号的编程代码  发帖心情 Post By:2010/8/26 10:09:00 [只看该作者]

   有没有什么代码可以不允许重置列的?
[此贴子已经被作者于2010-8-30 9:38:44编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/26 10:19:00 [只看该作者]

直接从菜单删除这个按钮


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/8/26 10:32:00 [只看该作者]

以下是引用狐狸爸爸在2010-8-26 10:19:00的发言:

直接从菜单删除这个按钮

这个我知道,但是这个重置列的菜单我要留着,我想是这样的,我有一张表中的某一列不允许刷新.


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/26 10:36:00 [只看该作者]

那就自己设计重置按钮的代码,判断选定的表和列,符合要求再重置。

 

if  currenttable.Name = "xxx" AndAlso CurrentTable.Cols(CurrentTable.Colsel).Name = "yyy"

   '不重置

Else

  '重置

End If

 

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/8/26 10:46:00 [只看该作者]

以下是引用狐狸爸爸在2010-8-26 10:36:00的发言:

那就自己设计重置按钮的代码,判断选定的表和列,符合要求再重置。

 

if  currenttable.Name = "xxx" AndAlso CurrentTable.Cols(CurrentTable.Colsel).Name = "yyy"

   '不重置

Else

  '重置

End If

 

 

     一个,这个也放入菜单中吗?第二,不重置的代码怎么写?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/26 10:48:00 [只看该作者]

是的,放入菜单中替换原来的重置按钮大拿。

不重置的代码是不需要写的,你喜欢的话,可以: Messagebox.Show("此列不能重置")


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/8/26 10:52:00 [只看该作者]

或者:

 

If e.DataCol.Name = "开始箱号" Orelse e.DataCol.Name = "箱数"  Then
    If e.DataRow.IsNull("开始箱号") = False Andalso e.DataRow.IsNull("箱数") = False Then
        e.DataRow("结束箱号") =  e.DataRow("开始箱号")  +e.DataRow("箱数") -1
    End If
End If

If e.DataCol.Name = "口岸" Orelse e.DataCol.Name = "箱数"  Then
    If e.DataRow.IsNull("口岸") = False Andalso e.DataRow.IsNull("箱数") = False Then
        Dim dr As DataRow = DataTables("装箱单").Find("[IO] = '" & e.DataRow("IO") & "' And [口岸] = '" & e.DataRow("口岸") & "' And [结束箱号] > 0","_identify Desc")
        If dr IsNot Nothing Then
            e.DataRow("开始箱号") = dr("结束箱号")+1
        Else
            e.DataRow("开始箱号")  = 1
        End If
    End If
End If

 

 

  这一段代码,我一但刷新"箱数"列后,会重新再加一遍,而且"开始箱号"和"结束箱号"不再是连续箱号了.有没有什么代码可以将"箱数"列刷新后,开始箱号和结束箱号,自动按照连续箱号再计算一遍.


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/26 11:00:00 [只看该作者]

只要有确定的逻辑关系,都可以用代码表示出来。

但商业逻辑上的问题,别人很难看懂的。

我只觉得,上面两段代码应该换一下位置:

 

If e.DataCol.Name = "口岸"  Then
    If e.DataRow.IsNull("口岸") = False Andalso e.DataRow.IsNull("箱数") = False Then
        Dim dr As DataRow = DataTables("装箱单").Find("[IO] = '" & e.DataRow("IO") & "' And [口岸] = '" & e.DataRow("口岸") & "' And [结束箱号] > 0","_identify Desc")
        If dr IsNot Nothing Then
            e.DataRow("开始箱号") = dr("结束箱号")+1
        Else
            e.DataRow("开始箱号")  = 1
        End If
    End If
End If

If e.DataCol.Name = "开始箱号" Orelse e.DataCol.Name = "箱数"  Then
    If e.DataRow.IsNull("开始箱号") = False Andalso e.DataRow.IsNull("箱数") = False Then
        e.DataRow("结束箱号") =  e.DataRow("开始箱号")  +e.DataRow("箱数") -1
    End If
End If

[此贴子已经被作者于2010-8-26 11:03:05编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/8/26 11:17:00 [只看该作者]

狐爸,我测试过,你这个代码和我的原代码没有什么区别.

 

我贴两张图上来一张是刷新前:


图片点击可在新窗口打开查看此主题相关图片如下:刷新前.jpg
图片点击可在新窗口打开查看

 

一张刷新后:


图片点击可在新窗口打开查看此主题相关图片如下:刷新后.jpg
图片点击可在新窗口打开查看

 

 

     我的意思箱数刷新以后,如果开始箱号和结束箱号的连续性是对的,那么不做反应,如果连续性不对,则按照刷新前图片一样的连续性自动修正!


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/26 11:44:00 [只看该作者]

蒙一下:

 

If e.DataCol.Name = "口岸"  Then
    If e.DataRow.IsNull("口岸") = False Then
        Dim dr As DataRow = DataTables("装箱单").Find("[IO] = '" & e.DataRow("IO") & "' And [口岸] = '" & e.DataRow("口岸") & "' And [结束箱号] > 0","_identify Desc")
        If dr IsNot Nothing Then
            e.DataRow("开始箱号") = dr("结束箱号")+1
        Else
            e.DataRow("开始箱号")  = 1
        End If
    End If
End If

If e.DataCol.Name = "开始箱号" Orelse e.DataCol.Name = "箱数"  Then
    If e.DataRow.IsNull("开始箱号") = False Andalso e.DataRow.IsNull("箱数") = False Then
        e.DataRow("结束箱号") =  e.DataRow("开始箱号")  +e.DataRow("箱数") -1
    End If
End If


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