📄 yngc_frmaddprevilege.frm
字号:
'名称: 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 + -