以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 自定义函数的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=136575)

--  作者:shilhoue
--  发布时间:2019/6/16 16:09:00
--  [求助] 自定义函数的问题
下列代码用于在点击【任务完成】按钮时释放被占用的人员和设备(分别在人员和设备表中进行标记),由于程序中多处要用到相同代码,请问能不能把这段代码直接保存为自定义函数,而直接在相关事件中直接调用,增加代码的可读性。如果不能,该如何编写自定义函数以实现相同功能?

Dim str As String = Tables("任务安排").Current("项目负责人")
                If str > "" AndAlso Tables("任务安排").Current.IsNull("参加检测人员") = False
                    str = str & "," & Tables("任务安排").Current("参加检测人员")
                End If
                DataTables("人员").ReplaceFor("已占用",False,"姓名 In (\'" & str.Replace(",","\',\'")  & "\') ")
                DataTables("人员").Save()
                Tables("任务安排").Current("任务状态")="完成检测"
                Tables("任务安排").Current("操作日期")=Format(Date.Today(),"yyyy-MM-dd")
                Tables("任务安排").Current.Save()
                
                Dim rwh As String = Tables("任务安排").Current("任务号")
                Dim Products As List(Of String)
                Dim s As String = ""
                Products = DataTables("设备安排").GetValues("设备编号","[任务号]= \'" & rwh & "\'" )
                For Each Product As String In Products 
                    s= s & "," & Product
                Next
                s=s.Trim(",")
                DataTables("设备").ReplaceFor("在库状态",True,"设备编号 In (\'" & s.Replace(",","\',\'")  & "\') ")
                DataTables("设备").Save()




--  作者:y2287958
--  发布时间:2019/6/16 21:22:00
--  
可以,但要判断一下表是否存在
--  作者:shilhoue
--  发布时间:2019/6/17 6:14:00
--  
谢谢,能举个例子如何写这个函数么,比方说人员表标记的问题


--  作者:有点甜
--  发布时间:2019/6/17 9:09:00
--  

直接写即可

 

http://www.foxtable.com/webhelp/scr/1486.htm