⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yngc_frmaddprevilege.frm

📁 基于VBasic开发
💻 FRM
📖 第 1 页 / 共 2 页
字号:
'名称:     yngc_subChild
'功能描述: 添加到TREEVIEW一个CHILD结点
'传入参数:  strNodeText(结点名称)
'返回参数:
'依赖关系:
'作者:     李建东
'创建日期   2005年11月23日
'**************************************************************
Private Sub yngc_subChild(strNodeText As String)
'Add a node using tvwChild
    Dim oNodex As Node
    Dim skey As String
    Dim iIndex As Integer
   '如果没有结点被选中返回错误编号
    On Error GoTo myerr
    '判断是否有结点被选中
    iIndex = TreeView1.SelectedItem.Index
     '取得新添加结点的KEY
    skey = yngc_fnGetNextKey()
    Set oNodex = TreeView1.Nodes.Add(iIndex, tvwChild, skey, strNodeText, 1, 2)
    '使添加的结点可见
    oNodex.EnsureVisible
    Exit Sub
myerr:
    '显示一个错误信息给用户
    MsgBox ("You must select a Node to do an Add Child" & vbCrLf _
       & "If the TreeView is empty us Add Last to create the first node")
    Exit Sub
End Sub

Private Sub Form_Unload(Cancel As Integer)
   '释放内存
   Set objOraDyn = Nothing
End Sub


Private Sub yngc_btnCancal_Click()
   Unload Me
End Sub

Private Sub yngc_btnCreateUser_Click()
   bolDelClick = False
   strPrevilegeName = Trim(yngc_txtPrevilegeName.Text)
'SQL语句
   strSql = "select * from yngc_sys_previlegetree where text_='" & strPrevilegeName & "' order by id"
'建立OraDynaset对象
   Set objOraDyn = g_clsConnect.ObjectOraDb.CreateDynaset(strSql, 0&)
'开始一个事务
   g_clsConnect.ObjectOraDb.BeginTrans
'判断是否有结点信息保存在表中
   If objOraDyn.RecordCount = 0 Then
      '增加一个新节点
      yngc_subChild (strPrevilegeName)
   Else
      '将原有节点调出
      Set oNodex = TreeView1.Nodes.Add(Trim(objOraDyn.Fields("parent")), tvwChild, _
                   Trim(objOraDyn.Fields("key_")), Trim(objOraDyn.Fields("text_")), 1, 1)
      '*****************************************************************************************
    '将表yngc_sys_funclist删除的权限标识func_delflag设为0
    strSql = "update yngc_sys_funclist set func_delflag=0 where func_name='" & strPrevilegeName & "'"
    g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
    g_clsConnect.ObjectOraDb.CommitTrans
    '*****************************************************************************************
    '*****************************************************************************************
    '将表yngc_sys_previlegetree删除的权限标识func_delflag设为0
    strSql = "update yngc_sys_previlegetree set func_delflag=0 where text='" & strPrevilegeName & "'"
    g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
    g_clsConnect.ObjectOraDb.CommitTrans
    '*****************************************************************************************
   End If
   g_clsConnect.ObjectOraDb.CommitTrans
End Sub

'查找TREEVIEW的第一个父结点
Private Sub GetFirstParent()
   On Error GoTo myerr
   Dim nTmp As Integer
   For i = 1 To TreeView1.Nodes.Count
   '如果没有父结点显示一个错误
      nTmp = TreeView1.Nodes(i).Parent.Index
   Next
   Exit Sub
myerr:
   strIndex = i
   Exit Sub
End Sub

'保存子结点信息
Private Sub WriteChild(ByVal iNodeIndex As Integer)
   Dim i As Integer
   Dim iTempIndex As Integer
   Dim strDelkey As String
   strDelkey = "0"
   iTempIndex = TreeView1.Nodes(iNodeIndex).Child.FirstSibling.Index
'添加父结点的所有子结点
   For i = 1 To TreeView1.Nodes(iNodeIndex).Children
      strParent = TreeView1.Nodes(iTempIndex).Parent.Key
      strKey = TreeView1.Nodes(iTempIndex).Key
      strText = TreeView1.Nodes(iTempIndex).Text
      If Mid(strKey, 2, 1) = "_" Then
         intId = CInt(Left(strKey, 1))
      Else
         intId = CInt(Left(strKey, 2))
      End If
      '保存结点信息关系到表中
      strSql = "insert into yngc_sys_previlegetree(key_,parent,text_,id,func_delflag) values('" & strKey & "','" & strParent & "','" & strText & "','" & intId & "','" & strDelkey & "') "
      g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
      g_clsConnect.ObjectOraDb.CommitTrans
 
      '*****************************************************************************************
      '保存权限到权限表YNGC_SYS_FUNCLIST
      strSql = "select func_id from yngc_sys_funclist where func_id ='" & intId & "'"
      '建立OraDynaset对象
      Set objOraDyn = g_clsConnect.ObjectOraDb.CreateDynaset(strSql, 0&)
      '开始一个事务
      g_clsConnect.ObjectOraDb.BeginTrans
      If objOraDyn.RecordCount = 0 Then
         strSql = "insert into yngc_sys_funclist(func_id,func_name) values('" & intId & "','" & strText & "') "
         g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
         g_clsConnect.ObjectOraDb.CommitTrans
      End If
      g_clsConnect.ObjectOraDb.CommitTrans
      '*****************************************************************************************
      
' 如果子结点还有子结点,添加子结点
      If TreeView1.Nodes(iTempIndex).Children > 0 Then
         WriteChild (iTempIndex)
      End If
' 如果不是最后的结点移动到下一结点
      If i <> TreeView1.Nodes(iNodeIndex).Children Then
         iTempIndex = TreeView1.Nodes(iTempIndex).Next.Index
      End If
   Next i
End Sub
 '删除被选中结点
Private Sub yngc_btnDel_Click()
   Dim iIndex As Integer
    '如果没有结点被选中返回错误信息
    On Error GoTo myerr
    '表示“删除”按钮点击
    bolDelClick = True
    '检查是否有结点被选中
    iIndex = TreeView1.SelectedItem.Index
    strKey = TreeView1.Nodes(iIndex).Key
    If Mid(strKey, 2, 1) = "_" Then
         intId = CInt(Left(strKey, 1))
      Else
         intId = CInt(Left(strKey, 2))
      End If
   
    '*****************************************************************************************
    '将表yngc_sys_funclist删除的权限标识func_delflag设为1
    strSql = "update yngc_sys_funclist set func_delflag=1 where func_id=" & intId & ""
    g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
    g_clsConnect.ObjectOraDb.CommitTrans
    '*****************************************************************************************
    '*****************************************************************************************
    '将表yngc_sys_previlegetree删除的权限标识func_delflag设为1
    strSql = "update yngc_sys_previlegetree set func_delflag=1 where id=" & intId & ""
    g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
    g_clsConnect.ObjectOraDb.CommitTrans
    '*****************************************************************************************
    '如果结点有子结点记录子结点信息
    If TreeView1.Nodes(iIndex).Children > 0 Then
        DelChild iIndex
    End If
     '删除选中结点及其子结点
    TreeView1.Nodes.Remove iIndex
    Exit Sub
myerr:
    '显示错误信息
    MsgBox ("You must select a Node to do a Remove" & vbCrLf _
       & "If the TreeView is empty us Add Last to create the first node")
    Exit Sub
End Sub

'保存所有结点信息
Private Sub yngc_btnSave_Click()
   Dim iTmp As Integer
   Dim iIndex As Integer
   
   Dim strDelkey As String
   
   '如果点击了“删除”按钮,不需要保存
   If bolDelClick = True Then
      Exit Sub
   End If
   strDelkey = "0"
   strSql = "delete from yngc_sys_previlegetree  "
   g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
   g_clsConnect.ObjectOraDb.CommitTrans
   
    '在TREEVIEW中找到第一个父结点
   GetFirstParent
    '找到在最上位置根结点的索引
   iIndex = TreeView1.Nodes(strIndex).FirstSibling.Index
   iTmp = iIndex
   '记录根结点信息
   strParent = "0_"
   strKey = TreeView1.Nodes(iIndex).Key
   strText = TreeView1.Nodes(iIndex).Text
   If Mid(strKey, 2, 1) = "_" Then
      intId = CInt(Left(strKey, 1))
   Else
      intId = CInt(Left(strKey, 2))
   End If
   strSql = "insert into yngc_sys_previlegetree(key_,parent,text_,id,FUNC_DELFLAG) values('" & strKey & "','" & strParent & "','" & strText & "','" & intId & "','" & strDelkey & "') "
    'g_strSql = "insert into yngc_sys_previlegetree(key,parent,text) values('" & strKey & "','" & strParent & "','" & strText & "')"
   g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
   g_clsConnect.ObjectOraDb.CommitTrans
 
   '*****************************************************************************************
   '保存权限到权限表YNGC_SYS_FUNCLIST
      strSql = "select func_id from yngc_sys_funclist where func_id ='" & intId & "'"
      '建立OraDynaset对象
      Set objOraDyn = g_clsConnect.ObjectOraDb.CreateDynaset(strSql, 0&)
      '开始一个事务
      g_clsConnect.ObjectOraDb.BeginTrans
      If objOraDyn.RecordCount = 0 Then
         strSql = "insert into yngc_sys_funclist(func_id,func_name) values('" & intId & "','" & strText & "') "
         g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
         g_clsConnect.ObjectOraDb.CommitTrans
      End If

      g_clsConnect.ObjectOraDb.CommitTrans
      '*****************************************************************************************
    
    '如果结点有子结点记录子结点信息
    If TreeView1.Nodes(iIndex).Children > 0 Then
        WriteChild iIndex
    End If
    '记录所有根结点信息
    While iIndex <> TreeView1.Nodes(iTmp).LastSibling.Index
      '记录根结点信息
       strParent = "0_"
       strKey = TreeView1.Nodes(iIndex).Next.Key
       strText = TreeView1.Nodes(iIndex).Next.Text
       If Mid(strKey, 2, 1) = "_" Then
          intId = CInt(Left(strKey, 1))
       Else
          intId = CInt(Left(strKey, 2))
       End If
       strSql = "insert into yngc_sys_previlegetree(key_,parent,text_,id) values('" & strKey & "','" & strParent & "','" & strText & "','" & intId & "') "
        'g_strSql = "insert into yngc_sys_previlegetree(key,parent,text) values('" & strKey & "','" & strParent & "','" & strText & "')"
       g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
       g_clsConnect.ObjectOraDb.CommitTrans
    
       '*****************************************************************************************
       '保存权限到权限表YNGC_SYS_FUNCLIST
      strSql = "select func_id from yngc_sys_funclist where func_id ='" & intId & "'"
      '建立OraDynaset对象
      Set objOraDyn = g_clsConnect.ObjectOraDb.CreateDynaset(strSql, 0&)
      '开始一个事务
      g_clsConnect.ObjectOraDb.BeginTrans
      If objOraDyn.RecordCount = 0 Then
         strSql = "insert into yngc_sys_funclist(previlege_id,previlege_name) values('" & intId & "','" & strText & "') "
         g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
         g_clsConnect.ObjectOraDb.CommitTrans
      End If
      g_clsConnect.ObjectOraDb.CommitTrans
      '*****************************************************************************************
      
         '如果结点有子结点记录子结点信息
       If TreeView1.Nodes(iIndex).Next.Children > 0 Then
          WriteChild TreeView1.Nodes(iIndex).Next.Index
       End If
        ' 移动到下一根结点
       iIndex = TreeView1.Nodes(iIndex).Next.Index
    Wend
End Sub
'删除子结点信息
Private Sub DelChild(ByVal iNodeIndex As Integer)
   Dim i As Integer
   Dim iTempIndex As Integer
   iTempIndex = TreeView1.Nodes(iNodeIndex).Child.FirstSibling.Index
'删除父结点的所有子结点
   For i = 1 To TreeView1.Nodes(iNodeIndex).Children
      strParent = TreeView1.Nodes(iTempIndex).Parent.Key
      strKey = TreeView1.Nodes(iTempIndex).Key
      strText = TreeView1.Nodes(iTempIndex).Text
      If Mid(strKey, 2, 1) = "_" Then
         intId = CInt(Left(strKey, 1))
      Else
         intId = CInt(Left(strKey, 2))
      End If
     '*****************************************************************************************
    '将表yngc_sys_funclist删除的权限标识func_delflag设为1
    strSql = "update yngc_sys_funclist set func_delflag=1 where func_id=" & intId & ""
    g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
    g_clsConnect.ObjectOraDb.CommitTrans
    '*****************************************************************************************
    '*****************************************************************************************
    '将表yngc_sys_previlegetree删除的权限标识func_delflag设为1
    strSql = "update yngc_sys_previlegetree set func_delflag=1 where id=" & intId & ""
    g_clsConnect.ObjectOraDb.ExecuteSQL (strSql)
    g_clsConnect.ObjectOraDb.CommitTrans
    '*****************************************************************************************
      
' 如果子结点还有子结点,删除子结点
      If TreeView1.Nodes(iTempIndex).Children > 0 Then
         DelChild (iTempIndex)
      End If
' 如果不是最后的结点移动到下一结点
      If i <> TreeView1.Nodes(iNodeIndex).Children Then
         iTempIndex = TreeView1.Nodes(iTempIndex).Next.Index
      End If
   Next i
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -