Foxtable(狐表)用户栏目专家坐堂 → 求助参数的传递


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

主题:求助参数的传递

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


加好友 发短信
等级:童狐 帖子:273 积分:3406 威望:0 精华:0 注册:2012/4/20 16:43:00
求助参数的传递  发帖心情 Post By:2018/9/4 8:21:00 [只看该作者]

各位大腕,早上好。
        请教一下。将 form1,btg1,True 这个字符串保存在某表某格dr("参数")中,如何写表达式,用dr("参数")代替以下代码中的红底部分代码?

Select Case e.Path
    Case "test.htm"
        Dim wb As New weui
        wb.AddForm("","form1","test.htm")
        With wb.AddButtonGroup("form1","btg1",True)  
'
垂直排列
            .Add("btn1"
"
按钮")
            .Add("btn4"
"
按钮""reset")
            .Add("btn5"
"
按钮", "", "http://www.foxtable.com"'单击这个按钮可以打开foxtable主页
        End With
        With wb.AddButtonGroup("form1","btg2"False)  
'
水平排列
            .Add("btn6"
"
按钮")
            .Add("btn7"
"
按钮").Kind = 2
        End With
        With wb.AddButtonGroup("form1","btg3"False)
            .Add("btn8"
"
按钮").Kind = 0
            .Add("btn9"
"
按钮").Kind = 1
        
End With
        e.WriteString(wb.Build) 
'生成网页

End
 Select

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


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

 

With wb.AddButtonGroup(dr("参数1"),dr("参数2"),dr("参数3"))  '垂直排列


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


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

如果是字符串 form1,btg1,True 你可以分割以后再使用

 

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

 


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


加好友 发短信
等级:童狐 帖子:273 积分:3406 威望:0 精华:0 注册:2012/4/20 16:43:00
  发帖心情 Post By:2018/9/4 10:49:00 [只看该作者]

谢谢有点甜!
我的意思是想更进一步

    dr(“参数”)里在不同的情况下,可能有2个参数、也可能有3个参数,是否用类似.Add(dr("参数").split(“,”))表达 ?
Select Case e.Path
    Case "test.htm"
        Dim wb As New weui
        wb.AddForm("","form1","test.htm")
        With wb.AddButtonGroup("form1","btg1",True)  
'
垂直排列
            .Add("btn1"
"
按钮")
            .Add("btn4"
"
按钮""reset")
            .Add("btn5"
"
按钮", "", "http://www.foxtable.com"'单击这个按钮可以打开foxtable主页
        End With
        With wb.AddButtonGroup("form1","btg2"False)  
'
水平排列
            .Add("btn6"
"
按钮")
            .Add("btn7"
"
按钮").Kind = 2
        End With
        With wb.AddButtonGroup("form1","btg3"False)
            .Add("btn8"
"
按钮").Kind = 0
            .Add("btn9"
"
按钮").Kind = 1
        
End With
        e.WriteString(wb.Build) 
'生成网页

End
 Select

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


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

你可以加上判断,如

 

Dim ary = dr("参数").split(",")

If ary.length = 2 then

 

ElseIf ary.length = 3 Then

 

End If

 

没有办法直接用字符串add进去的。


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


加好友 发短信
等级:童狐 帖子:273 积分:3406 威望:0 精华:0 注册:2012/4/20 16:43:00
  发帖心情 Post By:2018/9/4 12:41:00 [只看该作者]

之前看过一个自定义函数。代码是这样的,就不必考虑后面参数的数量。但是不懂原理是否一下。

try
  
  If dr("参数") IsNot Nothing Then 
      Dim cs() As String
      cs =dr("参数").Split(",")'分离参数
      If cs.Length - 1=0 Then '如果没参数,则执行functions.execute(函数名)
      
           Functions.execute(cs(0))'执行指定函数
      
    ElseIf cs.Length - 1>0 Then '如果有参数,则将dr("参数")分解为函数名和参数执行functions.execute(函数名,参数1,参数2,……)

        Dim objs As New List(Of object)
        Dim Names() As object        
        For i As Integer =1 To cs.Length -1
            If cs(i) = "e" Then
                objs.Add(e)
            Else
                Functions.remove("函数")
                Dim Code As String
                Code = "return " & cs(i)
                Functions.Add("函数",Code)
                Functions.Complie()
                Dim obj = Functions.Execute("函数")
                objs.Add(obj)
            End If
        Next

        Names=objs.ToArray() '将集合转换为数组
       Functions.execute(cs(0),Names)'执行指定函数
    End If
End If
catch ex As exception
End try


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


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


 回到顶部