以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  Functions.Execute问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=143554)

--  作者:swagger
--  发布时间:2019/11/28 11:44:00
--  Functions.Execute问题
listview点击图标,触发单元格 Functions.Execute("增加页签",name,name),弹出窗口(譬如‘订单’窗口),开发版的电脑能够操作窗口控件和表格,但是其它电脑没法操作窗口控件和表格。请看下问题出在哪里?

[此贴子已经被作者于2019/11/28 11:46:21编辑过]

--  作者:swagger
--  发布时间:2019/11/28 11:46:00
--  
内部函数,“增加页签”代码:
Dim name As String = Args(0)
\'msgbox(name)
Dim text As String = Args(1)

Dim tab As WinForm.TabControl = forms("主页").Controls("TabControl1")
If tab.TabPages(name) Is Nothing Then
    tab.TabPages.Add(name,text)
    Dim pb = tab.BaseControl
    Forms(name).OPEN(-1000,-1500)
    Forms(name).BaseForm.TopLevel = False
    Forms(name).BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
    Forms(name).BaseForm.Dock = System.Windows.Forms.DockStyle.Fill
    PB.TabPages(name).Controls.Clear
    PB.TabPages(name).Controls.add(Forms(name).BaseForm)
    tab.SelectedPage = tab.TabPages(name)
Else
    tab.SelectedPage = tab.TabPages(name)
End If

--  作者:有点蓝
--  发布时间:2019/11/28 12:04:00
--  
联系客服重新激活一下Foxtable
--  作者:swagger
--  发布时间:2019/11/28 13:28:00
--  
不用发其它代码了吗,是激活问题,还是代码问题呢?
--  作者:swagger
--  发布时间:2019/11/28 13:43:00
--  
已经联系过客服,说激活码没问题
--  作者:swagger
--  发布时间:2019/11/28 13:59:00
--  
listview 窗口 点击代码:

\'生成编译函数
Dim code As String
code= " dim name as string = args(0) " & vbcrlf
code= code & " Select Case name " & vbcrlf
For Each dr As DataRow In DataTables("导航").DataRows
    If dr("代码")> ""  Then
        code = code & " case " & """" & dr("名称") & """" & vbcrlf
        code = code & dr("代码")  & vbcrlf
    End If
Next
code= code & "end  Select  " & vbcrlf
Functions.Remove("nav")
Functions.Add("nav",Code)
Functions.Complie



内部函数,“增加页签”代码:
Dim name As String = Args(0)
\'msgbox(name)
Dim text As String = Args(1)

Dim tab As WinForm.TabControl = forms("主页").Controls("TabControl1")
If tab.TabPages(name) Is Nothing Then
    tab.TabPages.Add(name,text)
    Dim pb = tab.BaseControl
    Forms(name).OPEN(-1000,-1500)
    Forms(name).BaseForm.TopLevel = False
    Forms(name).BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
    Forms(name).BaseForm.Dock = System.Windows.Forms.DockStyle.Fill
    PB.TabPages(name).Controls.Clear
    PB.TabPages(name).Controls.add(Forms(name).BaseForm)
    tab.SelectedPage = tab.TabPages(name)
Else
    tab.SelectedPage = tab.TabPages(name)
End If

design_savecode 函数代码:
\'在命令窗口编辑后,保存代码
Dim code As String
Dim frm As System.Windows.Forms.Form = System.Windows.Forms.Form.ActiveForm
Dim obj = frm.controls("SplitContainer1")
If obj.name="SplitContainer1" Then
    Dim editor = obj.panel1.controls("MyCodeEditor21").Controls("SplitContainer1").Panel1.Controls("SplitContainer2").panel1.controls("Editor")
    \'msgbox(editor.text)
    CurrentTable.value = editor.text
    \'frm.close
End If

全局代码:

\'页签主页不能关闭
Public Sub _TabPageClosing(sender As Object, e As C1.Win.C1Command.TabPageCancelEventArgs)
\'页面关闭按钮点击事件
If e.TabPage.Name = "主页" And vars("canclose")=True Then
    vars("canclose")=False
    e.Cancel = True
End If
Return
End Sub
\'保存代码
Public Sub SaveCode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Functions.Execute("Design_SaveCode")
End Sub
Public hszd As new Dictionary(of String,String)
Public hsdms As new Dictionary(of String,String)




--  作者:swagger
--  发布时间:2019/11/28 13:59:00
--  
导航表代码 cellbuttonclick 


If e.Col.name="代码" Then
    \'\'代码输入
    Syscmd.Project.CommandWindow()
    Dim frm As System.Windows.Forms.Form = System.Windows.Forms.Form.ActiveForm
    frm.text="代码编辑器:" \'& args(0).ChangedItem.Label
    For Each c As  System.Windows.Forms.Control In frm.Controls
        If c.name="SplitContainer1" Then
            c.controls.Item(0).controls.Item(0).controls.Item(0).controls.Item(0).controls.Item(0).controls.Item(0).controls.Item(0).text=e.Row("代码")
        End If
    Next
    
    Dim x As Integer
    Dim y As Integer
    For Each c As  System.Windows.Forms.Control In frm.Controls
        If c.name="button3" Then
            x=c.left
            y=c.Top
        End If
    Next
    Dim lbl As new System.Windows.Forms.button
    lbl.Text = "保存代码"
    lbl.name="保存代码"
    lbl.Location = New Point(x-80, y)
    lbl.Anchor = System.Windows.Forms.AnchorStyles.bottom Or System.Windows.Forms.AnchorStyles.right  \'面板锚定
    If frm.Controls.Contains(lbl) = False Then
        frm.Controls.Add(lbl)
        AddHandler frm.Controls("保存代码").Click, AddressOf SaveCode_Click
    End If
        e.Cancel=True
End If



--  作者:有点蓝
--  发布时间:2019/11/28 14:32:00
--  
请上传实例测试