Foxtable(狐表)用户栏目专家坐堂 → Find用法问题


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

主题:Find用法问题

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


加好友 发短信
等级:一尾狐 帖子:400 积分:4856 威望:0 精华:0 注册:2017/2/7 7:41:00
Find用法问题  发帖心情 Post By:2018/11/8 18:53:00 [只看该作者]

在“每日工作量”表中,选择“操作台”台,如果有这台“”操作台“记录,则根据这个表中以往同一台操作台的“结束数”自动记录到这一行的“开始数”中。
如果没有,“开始数”直接填写“0”,现在没有找到话,没有 "没有找到此操作台的上次记录,初始值为0"这个出错提醒,也不填“0”     
   Dim dd As  String
            dd = e.DataRow("操作台")
            Dim dr As DataRow
            dr =  DataTables("每日工作量").Find ("操作台 = '" & dd & "'","操作日期 Desc") '找出最后一次这个操作台的记录
            If dr IsNot Nothing Then '如果找到的话
                MessageBox.Show("已找到上次操作台号")
                e.DataRow("开始数") = dr("结束数")
            Else
                MessageBox.Show("没有找到此操作台的上次记录,初始值为0")
                e.DataRow("开始数") = 0
            End If

以上代码在表事件

每日工作量_DataColChanged

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



[此贴子已经被作者于2018/11/8 19:18:22编辑过]

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2018/11/8 20:01:00 [只看该作者]

和我的一个帖子类似,请参考 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=127213

要加 identify 参数

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


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

比如

 

dr =  DataTables("每日工作量").Find ("操作台 = '" & dd & "' and _Identify < " & e.datarow("_Identify"),"操作日期 Desc") '找出最后一次这个操作台的记录

 

或者

 

dr =  DataTables("每日工作量").Find ("操作台 = '" & dd & "' and _sortkey < " & e.datarow("_sortkey"),"操作日期 Desc") '找出最后一次这个操作台的记录


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


加好友 发短信
等级:一尾狐 帖子:400 积分:4856 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2018/11/8 21:13:00 [只看该作者]

谢谢二位,上面问题解决了,原来是照抄帮助的。看样子帮助中还有漏洞。

还想问下,要解决 没有选择“操作台”,就不能输入“开始数”,即要把光标移到“操作台”处,如何解决?

Select Case e.DataCol.Name
    Case "开始数"  '如果更改的是开始数
        If e.DataRow.IsNull("操作台") Then '操作台是否为空
            MessageBox.Show("没有选择操作台,不能计算")   '需要改进
            Return
        Else
            
            If e.DataRow.IsNull("结束数") Then '结束数是否为空
                e.DataRow("计件数量") =   e.DataRow("开始数")  '如果为空,则为开始数
            Else
                '否则进行表达式计算
                e.DataRow("计件数量") = e.DataRow("结束数") -  e.DataRow("开始数")
            End If
        End If

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


[此贴子已经被作者于2018/11/8 21:14:26编辑过]

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


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

afterEdit事件

 

Select Case e.Col.Name
    Case "开始数"  '如果更改的是开始数
        If e.Row.IsNull("操作台") Then '操作台是否为空
            MessageBox.Show("没有选择操作台,不能计算")   '需要改进

e.table.select(e.row.index, e.table.cols("操作台").index-1)
            Return
        End If

End Select

[此贴子已经被作者于2018/11/8 21:16:29编辑过]

 回到顶部