📄 treeview.frm
字号:
irsold = 1
' iscurrent = 1
' 打开记录集。
With rsPublishers
.Open str, cn, adOpenStatic, adLockOptimistic
' 移动到记录尾部获得记录号,然后返回。
If .RecordCount < 1 Then Exit Sub
.MoveLast
.MoveFirst
' If Not rsPublishers.EOF Then
' irscurrent = CInt(Len(rsPublishers.Fields(1)))
' Else
' GoTo errer
' End If
'
End With
' 将进程栏设置为最大,并且使它可视。
With prgLoad
.Max = rsPublishers.RecordCount
.Visible = True
End With
' 当此记录不是最后一条记录时,添加 ListItem 对象。
' 为 ListItem 对象的文本使用 Name 字段。
Do While Not rsPublishers.EOF
intIndex = mNode.Index
intCounter = intCounter + 1
prgLoad.Value = intCounter ' 更新进程栏。
irsold = irscurrent
irscurrent = CInt(Len(rsPublishers.Fields(1)))
If irscurrent = irsold Then
Set mNode = tvwdb.Nodes.Add(intIndex, tvwNext, rsPublishers!ware_layer_id, CStr(rsPublishers!ware_id) & CStr(rsPublishers!warename), "closed")
mNode.Tag = CStr(rsPublishers!quantity) & "_" & Trim(rsPublishers!blong_to)
ElseIf irscurrent > irsold Then
' 添加节点到 TreeView, 并且设置它的属性。
Set mNode = tvwdb.Nodes.Add(intIndex, tvwChild, rsPublishers!ware_layer_id, CStr(rsPublishers!ware_id) & CStr(rsPublishers!warename), "closed")
' mNode.Tag = "product" ' 标识此表。
mNode.Tag = CStr(rsPublishers!quantity) & "_" & Trim(rsPublishers!blong_to)
Else
i = Abs(irsold - irscurrent) / 8
Set mtempnode = mNode
For j = 1 To i
Set mparentnode = mtempnode.Parent
Set mtempnode = mparentnode
Next j
Set mNode = tvwdb.Nodes.Add(mparentnode.Index, tvwNext, rsPublishers!ware_layer_id, CStr(rsPublishers!ware_id) & CStr(rsPublishers!warename), "closed")
mNode.Tag = CStr(rsPublishers!quantity) & "_" & Trim(rsPublishers!blong_to)
' 设置变量 intIndex 到新创建的节点的 Index 属性。
' 使用此变量添加子节点对象到现在的节点。
End If
rsPublishers.MoveNext ' 移动到下一个出版商记录。
Loop
' 隐藏进程栏
prgLoad.Visible = False
' 将状态栏样式设置为标准。
'sbrDB.Style = sbrNormal
' 对出版商节点进行排序。
tvwdb.Nodes(1).Sorted = True
' 扩展顶节点。
tvwdb.Nodes(1).Expanded = True
End Sub
Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
End Sub
Private Sub COLOP_Click()
Dim IJ As Integer
Dim JI As Integer
IJ = tvwdb.Nodes.Count
For JI = 1 To IJ
tvwdb.Nodes(JI).Expanded = False
Next
End Sub
Private Sub Command1_Click()
add_ware_Click
End Sub
Private Sub Command2_Click()
ADD_XWARE_Click
End Sub
Private Sub Command3_Click()
delete_ware_Click
End Sub
Private Sub Command4_Click()
edit_ware_Click
End Sub
Private Sub command5_Click()
tvwdb.Nodes.Clear
With tvwdb
.Sorted = True
Set mNode = .Nodes.Add()
.LabelEdit = False
.LineStyle = tvwRootLines
End With
With mNode ' Add first node.
.Text = "总仓库"
.Tag = "WARE"
.Image = "closed"
End With
rsPublishers.Close
cmdLoad_Click
End Sub
Private Sub Command6_Click()
frmware_compos1.text1(0).Text = tvwdb.SelectedItem.Key
frmware_compos1.Text2.Text = Left(tvwdb.SelectedItem.Text, 7)
frmware_compos1.text1(1).Text = Right(tvwdb.SelectedItem, Len(tvwdb.SelectedItem) - 7)
Me.Visible = False
End Sub
Private Sub delete_ware_Click()
Dim temp As String
If tvwdb.SelectedItem.Children > 0 Then MsgBox "不能删除零件,因为它还有子零件", vbOKOnly, "错误提示"
temp = tvwdb.SelectedItem.Key
cn.Execute "delete from ware_product where ware_layer_id = '" & temp & "'"
End Sub
Private Sub edit_ware_Click()
Dim f As New addware
If strleft = "" Then
If MsgBox("您未选择需要增加的零件", vbOKOnly, "操作错误") = vbOK Then Exit Sub
End If
iflag = 2
f.Show
End Sub
Private Sub EXPAND_Click()
Dim IJ As Integer
Dim JI As Integer
IJ = tvwdb.Nodes.Count
For JI = 1 To IJ
tvwdb.Nodes(JI).Expanded = True
Next
End Sub
Private Sub Form_Load()
On Error GoTo errFind
Set cn = New ADODB.Connection
' ConnectionString 包含数据库路径。如果
' Biblio.mdb 不存在与您的机器上,您可以在 MSDN CD 上查找。
If tvwdb_show = 2 Then
Command1.Visible = False
Command2.Visible = False
Command3.Visible = False
Command4.Visible = False
command5.Visible = False
End If
With cn
.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=warehouse;"
.Open
End With
' Configure cmbView control.
' With cmbView
' .AddItem "Icon View" ' 0
' .AddItem "SmallIcon View" ' 1
' .AddItem "List View" ' 2
' .AddItem "Report View" ' 3
' .ListIndex = 3
' End With
' Configure ListView control.
' lvwDB.View = lvwReport
' Configure TreeView
With tvwdb
.Sorted = True
Set mNode = .Nodes.Add()
.LabelEdit = False
.LineStyle = tvwRootLines
End With
With mNode ' Add first node.
.Text = "总仓库"
.Tag = "WARE"
.Image = "closed"
End With
' frmTreeview.Show
' If tvwdb.SelectedItem.Tag = "WARE" Then
' strleft = "ware"
' Command2.Enabled = False
' Command3.Enabled = False
' Command4.Enabled = False
' command5.Enabled = False
' End If
cmdLoad_Click
' mnuLoad_Click
Exit Sub
Form_Resize
' 如果 Biblio 数据库不能被找到,打开
' 公用对话框控件让用户来查找它。
errFind:
' If Err = -2147467259 Then
' Set cn = Nothing
' Set cn = New ADODB.Connection
' cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & FindBiblio
' cn.Open
' Resume Next
' ElseIf Err <> 0 Then ' 其他的错误
' MsgBox "不期望的错误: " & Err.Description
' End
' End If
End Sub
Private Sub Form_Resize()
On Error Resume Next
' frmTreeview.Move 100, 100, Me.ScaleWidth - 200, Me.ScaleHeight - 200
' frmTreeview.RightMargin = frmTreeview.Width - 400
End Sub
Private Sub tvwdb_BeforeLabelEdit(Cancel As Integer)
strleft = ""
MsgBox "yyyyyyyy", vbOKOnly, "uuuuuuuu"
End Sub
Private Sub tvwdb_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim inde As Integer
inde = tvwdb.SelectedItem.Index
If Button = 2 And inde > 1 Then
'If tvwdb.Nodes.Item(inde).Selected = True Then
' PopupMenu (ware_manage)
' End If
End If
End Sub
Private Sub tvwdb_NodeClick(ByVal node As MSComctlLib.node)
Dim comstr As String
Dim comchar As String
Dim i As Integer
strleft = node.Key
strcomplete = strleft & strright
If node.Tag = "WARE" Then Exit Sub
i = InStr(node.Tag, "_")
comstr = Left(node.Tag, i - 1)
comchar = Right(node.Tag, Len(node.Tag) - i)
text1.Text = comstr
Text2.Text = comchar
strcomplete = node.Key
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -