Foxtable(狐表)用户栏目专家坐堂 → [求助]调用重复代码


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

主题:[求助]调用重复代码

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


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]调用重复代码  发帖心情 Post By:2021/8/9 17:08:00 [只看该作者]

我下面这段代码在同一窗口的很多Button中用到,我想弄一个通用的Button,然后在其他Button中调用,其他Button中要怎么写
With e.Form.Controls("YF1") 
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "月份 >= '" & .value & "'"
    End If
End With
With e.Form.Controls("YF2") 
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "月份 <= '" & .value & "'"
    End If
End With



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


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/9 17:20:00 [只看该作者]


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


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2021/8/12 10:28:00 [只看该作者]

我可否专门有个窗口用于存放可重复调用的代码,然后在其他窗口调用

Forms("通用代码").open()
Dim btn2 As WinForm.Button = Forms("通用代码").Controls("Button1")
btn2.PerformClick()

Button1里我放的是格式设置的代码,但结果没有起作用
For Each c As Col In CurrentTable.Cols
    If c.Caption Like "*增长*" Or c.Caption Like "*增加*" Or c.Caption Like "*占比*"   Then
        c.DataCol.SetFormat("0.00%")
    Else
        c.DataCol.SetFormat("0.")
    End If
Next

CurrentTable.AutoSizeCols()
CurrentTable.AutoSizeRows() '设置行高
CurrentTable.DataTable.SysStyles("Subtotal0").BackColor = Color.pink '设置报表样式
CurrentTable.DataTable.SysStyles("Subtotal0").FontBold = True
CurrentTable.DataTable.SysStyles("Subtotal1").BackColor = Color.SkyBlue '设置报表样式
CurrentTable.DataTable.SysStyles("Subtotal1").FontBold = True
CurrentTable.DataTable.SysStyles("GrandTotal").FontBold = True
CurrentTable.DataTable.SysStyles("GrandTotal").BackColor = Color.GreenYellow


[此贴子已经被作者于2021/8/12 10:29:33编辑过]

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


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/12 10:29:00 [只看该作者]

把代码放到自定义函数里:http://www.foxtable.com/webhelp/topics/1486.htm

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


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2021/8/12 10:39:00 [只看该作者]

写在自定义函数里也试过了,也是不行
调用代码
Functions.Execute("fzzzhz")

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


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/12 10:44:00 [只看该作者]

不要使用CurrentTable,函数调用的时候传入具体的表格

函数
dim t as table = args(0)
For Each c As Col In t.Cols
    If c.Caption Like "*增长*" Or c.Caption Like "*增加*" Or c.Caption Like "*占比*"   Then
……

调用
Functions.Execute("fzzzhz",tables("xx表"))

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


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2021/8/12 12:45:00 [只看该作者]

自定义函数AAA
Dim frm As WinForm.Form =args(0)

    If frm.Controls("GC").Value IsNot Nothing Then
        If Filter > "" Then
            Filter  = Filter & " And "
        End If
        Filter  = Filter & "生产区域 In ( '" & frm.Controls("GC").Value.replace(",","','") & "')"
    End If

调用函数

Functions.Execute("AAA",Forms("生产分析报表"))

筛选条件没起作用,哪里有问题帮忙看看

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


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/12 13:45:00 [只看该作者]

上面代码只是生成了筛选条件,却没有任何地方使用这个条件

自定义函数AAA
Dim frm As WinForm.Form =args(0)
Dim Filter As string =args(1)
    If frm.Controls("GC").Value IsNot Nothing Then
        If Filter > "" Then
            Filter  = Filter & " And "
        End If
        Filter  = Filter & "生产区域 In ( '" & frm.Controls("GC").Value.replace(",","','") & "')"
    End If
return Filter  
调用函数
dim Filter   as string
Filter   = Functions.Execute("AAA",Forms("生产分析报表"),Filter   )
tables("表A").Filter   =Filter   

 回到顶部