以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自定义样式  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138377)

--  作者:蓝蚂蚁
--  发布时间:2019/7/30 8:02:00
--  自定义样式

在窗口1中,里面有一个Table1 ,其AfterLoad有如下代码,其作用为:当窗口1加载后,Table1的样式按照代码的意思进行显示。

Dim t As Table = e.form.controls("Table1").Table
If t.Grid.Styles.Normal.Border.Color <> Color.DarkOrange  Then
    t.Grid.Styles.Normal.Border.Color = Color.Black
    t.DataTable.SysStyles("CurrentRow").BackColor = color.GreenYellow
    t.ListMode = True
End If

 

我的问题:当窗口1中有多个副本表时(如、Table2/Table3..........),上面的代码如何修改?谢谢!

 

另外,换一个思路。我想把这段代码做成一个自定义函数(例如名字为:ys),当其他窗口中的副本表需要这个样式时就在窗口的AfterLoad代码中加上:Functions.Execute("ys")

但不知道这个自定义函数如何写?

[此贴子已经被作者于2019/7/30 8:07:53编辑过]

--  作者:有点蓝
--  发布时间:2019/7/30 9:09:00
--  
dim tns() as string = {"table1","table2"}
for each tn as string in tns
Dim t As Table = e.form.controls(tn).Table
If t.Grid.Styles.Normal.Border.Color <> Color.DarkOrange  Then
    t.Grid.Styles.Normal.Border.Color = Color.Black
    t.DataTable.SysStyles("CurrentRow").BackColor = color.GreenYellow
    t.ListMode = True
End If
next

函数
dim tn as string = args(0)
Dim t As Table = e.form.controls(tn).Table
If t.Grid.Styles.Normal.Border.Color <> Color.DarkOrange  Then
    t.Grid.Styles.Normal.Border.Color = Color.Black
    t.DataTable.SysStyles("CurrentRow").BackColor = color.GreenYellow
    t.ListMode = True
End If

调用
dim tns() as string = {"table1","table2"}
for each tn as string in tns
    Functions.Execute("ys",tn)
next

--  作者:蓝蚂蚁
--  发布时间:2019/7/30 11:27:00
--  

老师好   在定义函数时,提示错误:编译错误:“form”不是“e”的成员;错误代码:Dim t As Table = e.form.controls(tn).Table

 


--  作者:有点蓝
--  发布时间:2019/7/30 11:34:00
--  
函数
dim tn as string = args(0)
dim e = args(1)
Dim t As Table = e.form.controls(tn).Table
If t.Grid.Styles.Normal.Border.Color <> Color.DarkOrange  Then
    t.Grid.Styles.Normal.Border.Color = Color.Black
    t.DataTable.SysStyles("CurrentRow").BackColor = color.GreenYellow
    t.ListMode = True
End If

调用
dim tns() as string = {"table1","table2"}
for each tn as string in tns
    Functions.Execute("ys",tn,e)
next