Foxtable(狐表)用户栏目专家坐堂 → 代码请教


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

主题:代码请教

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/24 17:58:00 [显示全部帖子]

DataColChanged事件:
 

 

Select Case e.DataCol.Name
    Case
"地区","定单号"
   
    Dim dr1 As DataRow = e.DataRow
       
If dr1("地区") = "华中" Then
            Dim
Filter As String = "地区 = '华中' And 定单号 = '" & dr1("定单号") & "'"
       
    Dim dr2 As DataRow = DataTables("华中定单完成统计").find(Filter)
            If
dr2 IsNot Nothing
                dr1(
"完成时间") = dr2("完成时间")
            End
If
        End
If
End
Select

 

[此贴子已经被作者于2009-4-24 18:00:12编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/24 22:36:00 [显示全部帖子]

以下是引用卟离卟弃在2009-4-24 18:49:00的发言:
狐爸
需要按重置才会刷新
能不能设置下,正动刷新......
只要在华中统计表中一输日期后,定单表自动更新


原有数据要重置,之后修改和增加的数据,都会自动计算,单击一下重置按钮,应该不麻烦吧?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/24 22:39:00 [显示全部帖子]

以下是引用卟离卟弃在2009-4-24 19:31:00的发言:
狐表,
在加个要求
如果华中定单统计中
一个定单有3个完成日期(同定单分三次交货)
我想让它在三个日期中取最后那个完成日期,也就是最迟的交货日期.


建议你看看Find函数的说明,该函数其实是很“利害”的:

Select Case e.DataCol.Name
    Case
"地区","定单号"
   
    Dim dr1 As DataRow = e.DataRow
       
If dr1("地区") = "华中" Then
            Dim
Filter As String = "地区 = '华中' And 定单号 = '" & dr1("定单号") & "'"
       
    Dim dr2 As DataRow = DataTables("华中定单完成统计").find(Filter, "完成时间 Desc")
            If
dr2 IsNot Nothing
                dr1(
"完成时间") = dr2("完成时间")
            End
If
        End
If
End
Select

[此贴子已经被作者于2009-4-24 22:39:11编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/27 0:23:00 [显示全部帖子]

加上日期不能为空的条件即可啊:

Dim Filter As String = "地区 = '华中'  And [完成时间] Is Not Null And 定单号 = '" & dr1("定单号") & "'"

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/27 9:14:00 [显示全部帖子]

Dim Max As Integer
Max = DataTables("某表).Compute("Max(某列)", "条件")
Dim Filter As String = "地区 = '华中'  And [完成时间] Is Not Null And [事件级别] = " & Max & " And 定单号 = '" & dr1("定单号") & "'"



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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/27 10:20:00 [显示全部帖子]

条件是随意组合的,你想怎么计算都行。
最小值用Min计算。
你何不将表设计后,输入数据,给出具体的条件,这样一次搞定既可?
[此贴子已经被作者于2009-4-27 10:22:47编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/27 14:02:00 [显示全部帖子]

DataColChanged事件:

Select Case e.DataCol.Name
    Case "定单号"
        Dim dr1 As DataRow = e.DataRow
        Dim dr2 As DataRow
        Dim Filter As String = "[定单号] = '" & dr1("定单号") & "' And [完成时间] Is Not Null"
        dr2 = DataTables("华中定单完成统计").Find(Filter,"计划出货顺序")
        If dr2 IsNot Nothing Then
            dr1("开始出货时间") = dr2("完成时间")
        End If
        dr2 = DataTables("华中定单完成统计").Find(Filter,"计划出货顺序 Desc")
        If dr2 IsNot Nothing Then
            dr1("最后出货完成时间") = dr2("完成时间")
        End If
End Select



 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.table


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/27 16:29:00 [显示全部帖子]

出现这个问题,是因为我加入了日期不能为空的条件,你可以删除条件的:

Select Case e.DataCol.Name
    Case "定单号"
        Dim dr1 As DataRow = e.DataRow
        Dim dr2 As DataRow
        Dim Filter As String = "[定单号] = '" & dr1("定单号") & "'"
        dr2 = DataTables("华中定单完成统计").Find(Filter,"计划出货顺序")
        If dr2 Is Nothing Orelse dr2.Isnull("完成时间")  Then
            dr1("开始出货时间") = Nothing
        Else
            dr1("开始出货时间") = dr2("完成时间")
        End If
        dr2 = DataTables("华中定单完成统计").Find(Filter,"计划出货顺序 Desc")
        If dr2 Is Nothing Orelse dr2.Isnull("完成时间")  Then
            dr1("最后出货完成时间") = Nothing
        Else
            dr1("最后出货完成时间") = dr2("完成时间")
        End If
End Select
[此贴子已经被作者于2009-4-27 16:49:14编辑过]

 回到顶部