以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  Find用法问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127227)

--  作者:明天的灵
--  发布时间:2018/11/8 18:53:00
--  Find用法问题
在“每日工作量”表中,选择“操作台”台,如果有这台“”操作台“记录,则根据这个表中以往同一台操作台的“结束数”自动记录到这一行的“开始数”中。
如果没有,“开始数”直接填写“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
--  发布时间:2018/11/8 20:01:00
--  
和我的一个帖子类似,请参考 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=127213

要加 identify 参数

--  作者:有点甜
--  发布时间: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") \'找出最后一次这个操作台的记录


--  作者:明天的灵
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间: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编辑过]