Foxtable(狐表)用户栏目专家坐堂 → 动态加载代码优化请教


  共有2221人关注过本帖平板打印复制链接

主题:动态加载代码优化请教

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


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
动态加载代码优化请教  发帖心情 Post By:2020/3/2 9:36:00 [只看该作者]

Dim ModuleName As String = Args(0)  '单据名称
Dim correlationTable As String      '关联表
'------获取窗体发布的Datatable-----
Dim ModuleListCmd As New SQLCommand
Dim ModuleListTable As DataTable
ModuleListCmd.ConnectionName = DataSource
ModuleListCmd.CommandText="Select * F rom {窗体发布}"
ModuleListTable = ModuleListCmd.ExecuteReader()
'-----------------------------------------------------
Dim dr As DataRow
dr = ModuleListTable.Find("单据 = '" & ModuleName & "'")
If dr IsNot Nothing Then
    If dr.Isnull("关联表") Then
        correlationTable = dr("主表")
    Else
        correlationTable = dr("关联表")
    End If
    LockBaseMainForm() '锁定主界面
    '如果要动态加载的表包含关联表
    If correlationTable.Contains("|") Then
        For Each TableName As String In correlationTable.Split("|")
            If DataTables.Contains(TableName) = False Then
                DataTables.Load(TableName)
            End If
            Dim r As DataRow
            r = ModuleListTable.Find("主表 = '" & TableName & "'")
            If r IsNot Nothing Then
                If r("单据")<>ModuleName Then
                    If forms.Contains(r("单据")) = True AndAlso Forms(r("单据")).Opened = False Then
                        Tables(TableName).Visible = False
                    ElseIf forms.Contains(r("单据")) = False And Tables(TableName).DataTable.Type = 3 Then
                        Tables(TableName).Visible = False
                    End If
                End If
            End If
        Next
    Else
        '如果要动态加载的表不包含关联表
        If DataTables.Contains(correlationTable) = False Then
            DataTables.Load(correlationTable)
        End If
    End If
    UnLockBaseMainForm() '解锁主界面
End If

 回到顶部