📄 frmcommodity.frm
字号:
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub CommClass_Click()
If CommClass.SelectedItem Is Nothing Then Exit Sub
If CommClass.SelectedItem.Children > 0 Then Exit Sub
Call GetChildNode(CommClass.SelectedItem.Key)
CommClass.SelectedItem.Expanded = True
End Sub
Private Sub Form_Load()
'button
If g_ButtonArrange Then
topToolbar.TextAlignment = tbrTextAlignBottom
Else
topToolbar.TextAlignment = tbrTextAlignRight
End If
'caption
Me.Caption = "商品管理 "
Call GetChildNode("")
End Sub
Private Sub CheckButton()
If CommClass.SelectedItem Is Nothing Then
topToolbar.Buttons("InsertClass2").Enabled = False
topToolbar.Buttons("UpdateClass").Enabled = False
topToolbar.Buttons("DeleteClass").Enabled = False
topToolbar.Buttons("PropertyClass").Enabled = False
topToolbar.Buttons("InsertItem").Enabled = False
topToolbar.Buttons("UpdateItem").Enabled = False
topToolbar.Buttons("DeleteItem").Enabled = False
Else
topToolbar.Buttons("InsertClass2").Enabled = True
topToolbar.Buttons("UpdateClass").Enabled = True
topToolbar.Buttons("DeleteClass").Enabled = True
topToolbar.Buttons("PropertyClass").Enabled = True
topToolbar.Buttons("InsertItem").Enabled = True
If ExcelGrid1.DataRecordset.RecordCount = 0 Then
topToolbar.Buttons("UpdateItem").Enabled = False
topToolbar.Buttons("DeleteItem").Enabled = False
Else
topToolbar.Buttons("UpdateItem").Enabled = True
topToolbar.Buttons("DeleteItem").Enabled = True
End If
End If
End Sub
Private Sub GetChildNode(ByVal sParentID As String)
Dim rs As ADODB.Recordset
Dim sSQL As String
Dim tmpNode As Node
sSQL = "select ID,Name,No from bcCommodityClass where ParentID "
If sParentID = "" Then
sSQL = sSQL + " is null"
Else
sSQL = sSQL + "=" + CheckString(sParentID)
End If
sSQL = sSQL + " order by No"
Set rs = g_cn.Execute(sSQL)
Do While Not rs.EOF
If sParentID = "" Then
Set tmpNode = CommClass.Nodes.Add(, , rs.Fields("ID").value, rs.Fields("Name").value)
Else
Set tmpNode = CommClass.Nodes.Add(CommClass.Nodes.Item(sParentID).index, 4, rs.Fields("ID").value, rs.Fields("Name").value)
End If
tmpNode.Tag = rs.Fields("No").value
rs.MoveNext
Loop
Call RefreshData
End Sub
Private Sub Form_Resize()
On Error Resume Next
CommClass.Left = 10
ExcelGrid1.Left = CommClass.Left + CommClass.Width + 10
CommClass.Height = Me.Height - ExcelGrid1.Top - 300
CommClass.Top = topToolbar.Top + topToolbar.Height + 100
ExcelGrid1.Width = Me.Width - CommClass.Left - CommClass.Width - 40
ExcelGrid1.Top = topToolbar.Top + topToolbar.Height + 100
ExcelGrid1.Height = Me.Height - ExcelGrid1.Top - 300
Err.Clear
End Sub
Private Sub topToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
Dim sSQL As String
Dim objClass As New clsCommodityClass
Dim objItem As New clsCommodity
Dim tmpNode As Node
Select Case Button.Key
Case "InsertClass1"
With frmCommodityClassModify
.Show vbModal
If .lSaved Then
objClass.m_ID = newGUID
objClass.m_Name = .sName
objClass.m_No = .sNo
objClass.m_Terminally = .sTerminally
If Not CommClass.SelectedItem Is Nothing Then
objClass.m_ParentID = CommClass.SelectedItem.Key
End If
If objClass.Insert() Then
If CommClass.SelectedItem Is Nothing Then
Set tmpNode = CommClass.Nodes.Add(, , objClass.m_ID, objClass.m_Name)
Else
Set tmpNode = CommClass.Nodes.Add(CommClass.SelectedItem.index, 4, objClass.m_ID, objClass.m_Name)
End If
tmpNode.Tag = objClass.m_No
If Not CommClass.SelectedItem Is Nothing Then CommClass.SelectedItem.Expanded = True
End If
End If
End With
Case "InsertClass2"
With frmCommodityClassModify
.Show vbModal
If .lSaved Then
objClass.m_ID = newGUID
objClass.m_Name = .sName
objClass.m_No = .sNo
objClass.m_Terminally = .sTerminally
objClass.m_ParentID = CommClass.SelectedItem.Parent.Key
If objClass.Insert() Then
Set tmpNode = CommClass.Nodes.Add(CommClass.SelectedItem.index, 2, objClass.m_ID, objClass.m_Name)
tmpNode.Tag = objClass.m_No
CommClass.SelectedItem.Parent.Expanded = True
End If
End If
End With
Case "UpdateClass"
objClass.FillByID CommClass.SelectedItem.Key
With frmCommodityClassModify
.txtName.Text = objClass.m_Name
.txtNo.Text = objClass.m_No
If objClass.m_Terminally = .opTerminally0.Caption Then
.opTerminally0.value = True
Else
.opTerminally1.value = True
End If
.Show vbModal
If .lSaved Then
objClass.m_Name = .sName
objClass.m_No = .sNo
objClass.m_Terminally = .sTerminally
If objClass.Update() Then
CommClass.SelectedItem.Text = objClass.m_Name
CommClass.SelectedItem.Tag = objClass.m_No
End If
End If
End With
Case "DeleteClass"
objClass.m_ID = CommClass.SelectedItem.Key
If objClass.Delete() Then
CommClass.Nodes.Remove CommClass.SelectedItem.index
End If
Case "PropertyClass"
With frmCommodityClassProperty
.sClassID = CommClass.SelectedItem.Key
.Show vbModal
End With
Case "InsertItem"
With frmCommodityInsert
.sClassID = CommClass.SelectedItem.Key
.sClassNo = CommClass.SelectedItem.Tag
.txtClass.Text = CommClass.SelectedItem.Text
.Show vbModal
End With
Case "UpdateItem"
With frmCommodityUpdate
.sClassID = CommClass.SelectedItem.Key
.sItemID = ExcelGrid1.DataRecordset("ID").value
.sClassNo = CommClass.SelectedItem.Tag
.txtClass.Text = CommClass.SelectedItem.Text
.Show vbModal
End With
Case "DeleteItem"
With objItem
.m_ID = ExcelGrid1.DataRecordset("ID").value
If .Delete() Then
Call RefreshData
Else
MsgBox "Delete Error!"
End If
End With
Case "Exit"
Unload Me
End Select
Set objClass = Nothing
Set objItem = Nothing
End Sub
Public Sub RefreshData()
Dim rsTemp As New ADODB.Recordset
Dim sSQL As String
If CommClass.SelectedItem Is Nothing Then
sSQL = "select * from bcCommodity where ID=0x0 order by Code"
Else
sSQL = "select * from bcCommodity where ClassID=" + CheckString(CommClass.SelectedItem.Key) + " order by Code"
End If
rsTemp.Open sSQL, g_cn, adOpenDynamic, adLockReadOnly
Dim rsPro As New ADODB.Recordset
Dim strField As String
Dim strCaption As String
If CommClass.SelectedItem Is Nothing Then
sSQL = "select [Name], [FieldName] from bcCommodityClassProperty where ClassID=0x0 "
Else
sSQL = "select [Name], [FieldName] from bcCommodityClassProperty where ClassID=" + CheckString(CommClass.SelectedItem.Key) + " order by FieldName"
End If
Set rsPro = g_cn.Execute(sSQL)
Do While Not rsPro.EOF
strField = strField + rsPro.Fields("FieldName").value
strCaption = strCaption + rsPro.Fields("Name").value
rsPro.MoveNext
If Not rsPro.EOF Then
strField = strField + ","
strCaption = strCaption + ","
End If
Loop
ExcelGrid1.RelativeGrid rsTemp, "ClassNo,Status,New,Manufacture,Item,PArea,Inventory,PurchaseBatch,SaleBatch,PurchaseTax,SaleTax,Package,Unit,Weight,WeightUnit,Cubage,CubageUnit,Description,PurchasePrice,SalePrice" + IIf(strField > "", "," + strField, ""), "类编号,产品状态,新品,制造商,型号,产地,库存,采购批量,销售批量,进项税,销项税,包装,单位,重量,重量单位,体积,体积单位,商品描述,采购价,销售价" + IIf(strCaption > "", "," + strCaption, "")
Call CheckButton
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -