以文本方式查看主题

-  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=50107)

--  作者:ido
--  发布时间:2014/4/29 15:20:00
--  问个小函数如何描述。。。。。
Dim Val As String
    If InputValue(Val, "请输入名称", "请输入名称:") Then
       If Val >"" Then
         Functions.Execute("tblName",Val)  \'函数没写好.
  end if
   end if
.........
.........
.........

\'函数 ,这个归递要如何写? 输入文字之前检测一下是否存在同名表.
如果存在继续跳出inputValues,直到输入 DataTables.Contains(Val) = False
Dim Val As String = Args(1)
If DataTables.Contains(Val) = True Then
    If InputValue(Val, "请输入名称", "请输入名称:") Then
        Functions.Execute("tblName",Val)
        Return Nothing
    End If
End If

--  作者:Bin
--  发布时间:2014/4/29 15:24:00
--  
不用写递归,用 WHile循环即可


--  作者:有点甜
--  发布时间:2014/4/29 15:27:00
--  

 即便用递归,测试没什么问题。

 

Dim Val As String = Args(0)
If DataTables.Contains(Val) = True Then
    If InputValue(Val, "请输入名称", "请输入名称:") Then
        Functions.Execute("tblName",Val)
        Return Nothing
    End If
End If

--  作者:Bin
--  发布时间:2014/4/29 15:30:00
--  
Dim Val As String = Args(1)
Do
 While DataTables.Contains(Val) = false
    
If InputValue(Val, "请输入名称", "请输入名称:") Then
        
    End If
Loop
--  作者:ido
--  发布时间:2014/4/29 15:32:00
--  
我用我写的那个,去测试会提示超出数姐。
我还以为是datatable输入新名本来会自动检测的。所以代码同复了。。提示错误呢。谢谢上面的大侠


--  作者:ido
--  发布时间:2014/4/29 15:34:00
--  回复版版
真的???怎么我测试就过不了。会提示错误。
--  作者:有点甜
--  发布时间:2014/4/29 15:45:00
--  
以下是引用ido在2014-4-29 15:34:00的发言:
真的???怎么我测试就过不了。会提示错误。

 

这句代码

 

Dim Val As String = Args(0)


--  作者:blackzhu
--  发布时间:2014/4/29 15:48:00
--  
Dim Val As String = Args(0)
If DataTables.Contains(Val) = False Then
    If InputValue(Val, "请输入名称", "请输入名称:") Then
        Functions.Execute("tblName",Val)
        Return Nothing
    End If
Else
    msgbox("已经存在相同表名")
End If

甜版的可以执行

但是甜版的应该这边写错了

If DataTables.Contains(Val) = True  应该为False
[此贴子已经被作者于2014-4-29 15:49:15编辑过]

--  作者:ido
--  发布时间:2014/4/29 17:58:00
--  
 Dim Val As String
    If InputValue(Val,"输入临时表名!!","请输入:")  Then
        If Val >"" Then    \'输入:“表A”   表A已存在
            Functions.Execute("tblgetName",Val)  \'函数发现同名,再输入:表B 传递.结果Val的值是:“表B”

            msgbox(Val &"1")  \'这里最后的结果,还是第一次输入的“表A”。。
            Dim dtb As New DataTableBuilder(Val)           \'生成临时表
            dtb.AddDef("No",Gettype(Integer))
            dtb.AddDef("Name",Gettype(String))
            dtb.AddDef("Name1", Gettype(String))
            dtb.AddDef("Control", Gettype(Boolean))
            dtb.Build()
    end if
end if

\'---发现问题了,值不传递。
Dim Val As String = Args(0)
If DataTables.Contains(Val) Then
    msgbox("已经存在相同表名!!!!!")
    If InputValue(Val, "请输入名称", "请输入名称:") Then        ‘输入:“表B”
        Functions.Execute("tblgetName",Val)  
        Return Nothing    
    End If
End If
msgbox(Val) ‘传递出来的值还是"表B"


--  作者:有点甜
--  发布时间:2014/4/29 18:03:00
--  

呃,你的返回参数

 

Dim Val As String = Args(0)
If DataTables.Contains(Val) = False Then
    If InputValue(Val, "请输入名称", "请输入名称:") Then
        return Functions.Execute("tblName",Val)
    End If
Else
    return val
End If
 
----------------------
 
调用
 
val = Functions.Execute("tblName",Val)
msgbox(val)