?? frmbilllist.vb
字號:
Dim dataRows() As DataRow = _
dvMasterList.Table.Select("父項編號 = '" + sParentIndex + "'")
'循環添加TreeNode
Dim iCode As Integer = CInt(sCode) + 1
For Each dr As DataRow In dataRows
'獲得節點所需數據
tmpNode = New TreeNode
tmpNode.Text = dr("物料名稱")
tmpNode.Tag = New TreeNodeData(SetText(dr("物料編號")), _
SetText(dr("父項編號")), SetText(dr("物料名稱")), _
SetText(dr("需要數量")), _
iCode, SetText(dr("領料車間")), SetText(dr("領料庫房")), _
SetText(dr("損耗率")), SetText(dr("審核日期")))
Id = dr("物料編號")
nodes.Add(tmpNode)
'遞歸調用
InitTree(nodes(nodes.Count - 1).Nodes, Id, _
iCode.ToString)
Next
Catch ex As Exception
MessageBox.Show("初始化TreeView失敗")
End Try
End Sub
Private Sub btnOpen_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnOpen.Click
Dim dlgSelect As frmSelect = New frmSelect
dlgSelect.ShowDialog()
Clear()
'獲取當前行的數據
Dim sResult() As String = dlgSelect.GetInfo().Trim.Split("|")
txbId.Text = sResult(0)
txbName.Text = sResult(1)
Dim tData As TreeNodeData = trvList.SelectedNode.Tag
Me.txbPID.Text = tData.Id
Me.txbCode.Text = (CInt(tData.Code) + 1).ToString()
SetTextBoxState(False)
End Sub
Function SetText(ByVal obj As Object) As String
If obj Is Nothing Then
Return ""
Else
Return obj.ToString()
End If
End Function
Private Sub trvList_AfterSelect(ByVal sender As Object, _
ByVal e As TreeViewEventArgs) Handles trvList.AfterSelect
SetTextBoxState(True)
'獲取當前節點的數據
Dim treeNodeData As TreeNodeData = _
CType(trvList.SelectedNode.Tag, TreeNodeData)
'根據當前節點數據設置各個TextBox
txbName.Text = treeNodeData.Name
txbId.Text = treeNodeData.Id
txbPID.Text = treeNodeData.PId
txbCount.Text = treeNodeData.Count
txbCode.Text = treeNodeData.Code
txbRate.Text = treeNodeData.Rate
txbWorkShop.Text = treeNodeData.WorkShop
txbDepot.Text = treeNodeData.Depot
txbCheckDate.Text = treeNodeData.CheckDate
'根據當前節點獲取其子節點的數據
Dim bHasChild As Boolean = True
Me.GroupBox2.Text = treeNodeData.Name.Trim
Me.GroupBox2.Text += " 下屬物料清單"
Dim db As DataBase = New DataBase
Dim strSQL As String
strSQL = "select a.物料編號,物料名稱,計量單位,"
strSQL += "規格型號,計劃類別,品牌,顏色,"
strSQL += "進貨提前期,a.低層碼,生產車間,父項編號,"
strSQL += "需要數量,領料車間,損耗率 from 物料清單 as a ,"
strSQL += "物料主文件 as b where a.物料編號 = b.物料編號"
strSQL += " and a.父項編號= '" + treeNodeData.Id + "'"
dvDetailList = db.RunSelectSQL(strSQL)
If dvDetailList.Count = 0 Then
strSQL = "select a.物料編號,物料名稱,計量單位,"
strSQL += "規格型號,計劃類別,品牌,顏色,"
strSQL += "進貨提前期,a.低層碼,生產車間,父項編號,"
strSQL += "需要數量,領料車間,損耗率 from 物料清單 as a ,"
strSQL += "物料主文件 as b where a.物料編號 = "
strSQL += "b.物料編號 and a.物料編號= '" + treeNodeData.Id + "'"
dvDetailList = db.RunSelectSQL(strSQL)
GroupBox2.Text = treeNodeData.Name.Trim + " 無下屬零件"
End If
db.Dispose()
'設置dgdDetail的樣式和數據源
Dim ts As New DataGridTableStyle
Dim aColumnTextColumn As DataGridTextBoxColumn
Dim numCols As Integer = dvDetailList.Table.Columns.Count
Dim i As Integer
For i = 0 To numCols - 1
aColumnTextColumn = New DataGridTextBoxColumn
aColumnTextColumn.MappingName = _
dvDetailList.Table.Columns(i).ColumnName
aColumnTextColumn.HeaderText = _
dvDetailList.Table.Columns(i).ColumnName
aColumnTextColumn.NullText = ""
aColumnTextColumn.Width = 60
ts.GridColumnStyles.Add(aColumnTextColumn)
Next
ts.AlternatingBackColor = Color.LightGray
ts.AllowSorting = False
ts.MappingName = dvDetailList.Table.TableName
dgdDetail.TableStyles.Clear()
dgdDetail.TableStyles.Add(ts)
dvDetailList.AllowNew = False
dvDetailList.AllowDelete = False
dvDetailList.AllowEdit = False
dgdDetail.DataSource = dvDetailList
End Sub
Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, _
ByVal e As ToolBarButtonClickEventArgs) _
Handles ToolBar1.ButtonClick
Select Case e.Button.Text
Case "增子項"
bAdd = True
bLevel = False
Clear()
SetToolBarState(False)
Me.btnOpen.Enabled = True
Case "增同級項"
bAdd = True
bLevel = True
Clear()
SetToolBarState(False)
Me.btnOpen.Enabled = True
Case "修改"
bAdd = False
SetTextBoxState(False)
SetToolBarState(False)
MessageBox. _
Show("物料編號,物料名稱等請在物料主文件中修改!", _
"生成管理系統")
Case "刪除"
DeleteData()
Case "保存"
If bAdd = False Then
SaveForUpdate()
Else
SaveForAdd()
End If
Case "取消"
SetToolBarState(True)
Case "退出"
Me.Close()
End Select
End Sub
Private Sub Clear()
Me.txbCheckDate.Text = ""
Me.txbCode.Text = ""
Me.txbCount.Text = ""
Me.txbDepot.Text = ""
Me.txbId.Text = ""
Me.txbName.Text = ""
Me.txbPID.Text = ""
Me.txbRate.Text = ""
End Sub
Private Sub SetTextBoxState(ByVal bState As Boolean)
txbCount.ReadOnly = bState
txbDepot.ReadOnly = bState
txbRate.ReadOnly = bState
txbCheckDate.ReadOnly = bState
txbWorkShop.ReadOnly = bState
End Sub
Private Sub SetToolBarState(ByVal bState As Boolean)
ToolBar1.Buttons("0").Enabled = bState
ToolBar1.Buttons("1").Enabled = bState
ToolBar1.Buttons("2").Enabled = bState
ToolBar1.Buttons("3").Enabled = bState
ToolBar1.Buttons("4").Enabled = Not bState
ToolBar1.Buttons("5").Enabled = Not bState
End Sub
Private Sub DeleteData()
If trvList.SelectedNode Is Nothing = False Then
'不能刪除具有子節點的節點
If trvList.SelectedNode.Nodes.Count <> 0 Then
MessageBox.Show("請先刪除該項的全部子項", "生成管理系統")
Else
Dim dlgResult As DialogResult = _
MessageBox.Show("你確認刪除此數據?", "刪除")
If dlgResult = DialogResult.OK Then
'生成SQL語句更新數據
Dim db As DataBase = New DataBase
Dim strSQL As String
strSQL = "delete from 物料清單 "
strSQL += " where 物料編號='" + txbId.Text.Trim + "'"
db.RunDelOrInsSQL(strSQL)
db.Dispose()
trvList.SelectedNode.Remove()
End If
End If
End If
End Sub
Private Sub SaveForAdd()
Dim sPID As String
'獲得單擊的節點的數據
If trvList.SelectedNode Is Nothing = False Then
Dim tData As TreeNodeData = _
CType(trvList.SelectedNode.Tag, TreeNodeData)
If bLevel = False Then
'如果是添加子項
sPID = tData.Id.Trim
Else
'如果是添加同級項
sPID = tData.PId.Trim
End If
Try
'生成SQL語句插入新的數據
Dim db As DataBase = New DataBase
Dim strSQL As String
strSQL = "insert into 物料清單(父項編號,物料編號,需要數量,"
strSQL += "領料車間,領料庫房,損耗率,"
strSQL += "審核日期,低層碼) values ('"
strSQL += sPID + "','" + txbId.Text.Trim + "','"
strSQL += txbCount.Text.Trim + "','"
strSQL += txbWorkShop.Text.Trim + "','"
strSQL += txbDepot.Text.Trim + "','"
strSQL += txbRate.Text.Trim + "','"
strSQL += txbCheckDate.Text.Trim + "','"
strSQL += txbCode.Text.Trim + "')"
Me.TextBox10.Text = strSQL
db.RunDelOrInsSQL(strSQL)
db.Dispose()
Dim tmpNode As TreeNode = New TreeNode(txbName.Text.Trim)
tmpNode.Tag = New TreeNodeData(txbId.Text.Trim, sPID, _
txbName.Text.Trim, txbCount.Text.Trim, _
txbCode.Text.Trim, _
txbWorkShop.Text.Trim, txbDepot.Text.Trim, _
txbRate.Text.Trim, txbCheckDate.Text.Trim)
If bLevel = False Then
'如果是添加子項
trvList.SelectedNode.Nodes.Add(tmpNode)
Else
'如果是添加同級項
trvList.SelectedNode.Parent.Nodes.Add(tmpNode)
End If
Catch ex As Exception
MessageBox.Show("數據格式出錯!", "生成管理系統")
End Try
'重新設置節點的數據
tData.Count = Me.txbCount.Text.Trim
tData.Depot = Me.txbDepot.Text.Trim
tData.WorkShop = Me.txbWorkShop.Text.Trim
tData.CheckDate = Me.txbCheckDate.Text.Trim
tData.Rate = Me.txbRate.Text.Trim
End If
End Sub
Private Sub SaveForUpdate()
'更新數據表
'獲得單擊的節點的數據
If trvList.SelectedNode Is Nothing = False Then
Dim tData As TreeNodeData = _
CType(trvList.SelectedNode.Tag, TreeNodeData)
Try
'生成SQL語句更新數據
Dim db As DataBase = New DataBase
Dim strSQL As String
strSQL = "update 物料清單 set 需要數量='"
strSQL += txbCount.Text.Trim + "',"
strSQL += "領料車間='" + txbWorkShop.Text.Trim + "',"
strSQL += "領料庫房='" + Me.txbDepot.Text.Trim + "',"
strSQL += "損耗率='" + Me.txbRate.Text.Trim + "',"
strSQL += "審核日期='" + Me.txbCheckDate.Text.Trim + "'"
strSQL += " where 物料編號='" + tData.Id.Trim + "'"
db.RunDelOrInsSQL(strSQL)
db.Dispose()
Catch ex As Exception
MessageBox.Show("數據格式出錯!", "生成管理系統")
End Try
'重新設置節點的數據
tData.Count = Me.txbCount.Text.Trim
tData.Depot = Me.txbDepot.Text.Trim
tData.WorkShop = Me.txbWorkShop.Text.Trim
tData.CheckDate = Me.txbCheckDate.Text.Trim
tData.Rate = Me.txbRate.Text.Trim
End If
End Sub
End Class
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -