初始化

This commit is contained in:
2025-12-11 11:43:00 +08:00
commit 3ccb7d9375
467 changed files with 32608 additions and 0 deletions

545
WT-DMS/form_QuerySim.vb Normal file
View File

@@ -0,0 +1,545 @@
Public Class form_QuerySim
Dim m_Table As New System.Data.DataTable
Dim m_QuickMode As Boolean = True
Dim m_TotalCount As Integer = 0
Dim m_MaxIndex As Integer = 0
Dim m_MinIndex As Integer = 0
Dim m_CurSelItem_Col As Integer = 0
Dim m_CurSelItem_Row As Integer = 0
Dim m_InitOver As Boolean = False
Dim m_Cell_Enable_Edit As Boolean = False
Dim m_PartNumber As New CPartNumber
Public Function GetLikeString(ByVal likestr As String) As String
Dim rString As String = ""
Dim ch As Char
For i As Integer = 1 To likestr.Length
ch = Strings.GetChar(likestr, i)
If ch = "%" OrElse ch = "_" OrElse ch = "/" Then
rString &= "/"
End If
rString &= ch
Next
Return rString
End Function
Private Sub QueryData()
Dim strSQL As String = "SELECT `" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.料号PN) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.物料名称) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.规格描述) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.单位) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.单重) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.供应商ID) & "`"
strSQL &= " FROM `" & CPartNumber.cst_TABLE_NAME & "`"
Dim oper_idx As Integer = combo_Operate.SelectedIndex
If combo_Operate.Text.Length > 0 AndAlso
combo_Section.Text.Length > 0 AndAlso
tb_Value.Text.Length > 0 Then
Dim oper_str As String = rel_Operator(oper_idx, 1)
Dim isescape As Boolean = CBool(rel_Operator(oper_idx, 3))
Dim str_Value As String = tb_Value.Text
If isescape = True Then
str_Value = GetLikeString(tb_Value.Text)
End If
strSQL &= " WHERE `" & combo_Section.Text & "` " &
" COLLATE gbk_chinese_ci " &
rel_Operator(oper_idx, 1) &
str_Value &
rel_Operator(oper_idx, 2)
If isescape = True Then
strSQL &= " escape '/'"
End If
End If
SQL_Query(COL_RIGHTS.料号管理, strSQL, m_Table)
End Sub
Private Sub SetDataBinding()
If Not m_Table Is Nothing Then
m_Table.Dispose()
End If
m_Table = New DataTable
If m_QuickMode = True Then
QueryData_Quick()
Else
QueryData()
End If
Grid1.DisplayRowNumber = True
Grid1.AllowUserSort = True
Grid1.DisplayFocusRect = False
Grid1.ExtendLastCol = True
Grid1.DisplayRowArrow = True
Grid1.BoldFixedCell = False
Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D
Grid1.SetDataBinding(m_Table, "", True, 1)
CGirdInfo.LoadGridInfo("料号查询", Grid1)
Grid1.AllowUserSort = True
Grid1.Locked = True
End Sub
Private Sub bt_Query_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Query.Click
m_QuickMode = False
SetDataBinding()
End Sub
Private Sub form_QuerySim_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Width = My.Settings.FORM_QUERYSIM_WIDHT
Me.Height = My.Settings.FORM_QUERYSIM_HEIGHT
Me.WindowState = My.Settings.FORM_QUERYSIM_WINSTATE
Me.Left = My.Settings.FORM_QUERYSIM_X
Me.Top = My.Settings.FORM_QUERYSIM_Y
lbl_ImageReading.Visible = False
lbl_NoImage.Visible = False
bt_Del.Enabled = False
If CBool(Current_Rights(COL_RIGHTS.料号管理) And RIGHTS.READ) = False Then
bt_Query.Enabled = False
bt_QueryQuick.Enabled = False
End If
If CBool(Current_Rights(COL_RIGHTS.料号管理) And RIGHTS.MANAGE) = True Then
bt_Del.Enabled = True
End If
combo_Operate.Items.Clear()
For i As Integer = 0 To (rel_Operator.Length / 4 - 1)
combo_Operate.Items.Add(rel_Operator(i, 0))
Next
m_InitOver = True
End Sub
Private Sub QueryData_Quick()
Dim strSQL As String = "SELECT `" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.料号PN) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.物料名称) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.规格描述) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.单位) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.单重) & "`,`" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.供应商ID) & "`, `" &
CPartNumber.m_COLS_NAME(CPartNumber.COLS.序号) & "`"
strSQL &= " FROM `" & CPartNumber.cst_TABLE_NAME & "`"
If tb_PartNumber.Text.Length > 0 OrElse
tb_Name.Text.Length > 0 OrElse
tb_Desc.Text.Length > 0 OrElse
ckb_Pn_Inhaos.Checked = True OrElse
ckb_PnJohao.Checked = True Then
strSQL &= " WHERE "
Dim strSplit() As String
Dim firstLike As Boolean = True
If tb_PartNumber.Text.Length > 0 Then
strSplit = Split(tb_PartNumber.Text, ",")
For i As Integer = 0 To strSplit.Length - 1
If firstLike = True Then
firstLike = False
Else
strSQL &= " AND "
End If
strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.料号PN) & "`"
strSQL &= " COLLATE gbk_chinese_ci "
strSQL &= " LIKE '%"
strSQL &= GetLikeString(strSplit(i)) & "%'"
strSQL &= " escape '/'"
Next
End If
If tb_Name.Text.Length > 0 Then
strSplit = Split(tb_Name.Text, ",")
For i As Integer = 0 To strSplit.Length - 1
If firstLike = True Then
firstLike = False
Else
strSQL &= " AND "
End If
strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.物料名称) & "`"
strSQL &= " COLLATE gbk_chinese_ci "
strSQL &= " LIKE '%"
strSQL &= GetLikeString(strSplit(i)) & "%'"
strSQL &= " escape '/'"
Next
End If
If tb_Desc.Text.Length > 0 Then
strSplit = Split(tb_Desc.Text, ",")
For i As Integer = 0 To strSplit.Length - 1
If firstLike = True Then
firstLike = False
Else
strSQL &= " AND "
End If
strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.规格描述) & "`"
strSQL &= " COLLATE gbk_chinese_ci "
strSQL &= " LIKE '%"
strSQL &= GetLikeString(strSplit(i)) & "%'"
strSQL &= " escape '/'"
Next
End If
Dim customStr As String = ""
If ckb_Pn_Inhaos.Checked Then
customStr &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.供应商ID) & "` = '02'"
End If
If ckb_PnJohao.Checked Then
If String.IsNullOrEmpty(customStr) = False Then
customStr &= " OR "
customStr &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.供应商ID) & "` ='01'"
customStr = $"({customStr})"
Else
customStr &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.供应商ID) & "` ='01'"
End If
End If
If firstLike = True Then
firstLike = False
Else
strSQL &= " AND "
End If
strSQL &= customStr
'If ckb_Pn_Inhaos.Checked Then
' If firstLike = True Then
' firstLike = False
' Else
' strSQL &= " AND "
' End If
' strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.供应商ID) & "` = '02'"
'End If
'If ckb_PnJohao.Checked Then
' If firstLike = True Then
' firstLike = False
' Else
' If ckb_Pn_Inhaos.Checked Then
' strSQL &= " or "
' Else
' strSQL &= " AND "
' End If
' End If
' strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.供应商ID) & "` ='01'"
'End If
End If
SQL_Query(COL_RIGHTS.料号管理, strSQL, m_Table)
End Sub
Private Function GetTableInformation() As Boolean
Dim m_PartNumber As New CPartNumber
lbl_Information.Text = ""
If m_PartNumber.QueryInformation(m_TotalCount, m_MinIndex, m_MaxIndex) = ERROR_CODE.SUCCESS Then
Return True
Else
m_TotalCount = 0
m_MinIndex = 0
m_MaxIndex = 0
End If
Return False
End Function
Private Sub ShowCurrSelectInformation(ByVal index As Integer)
lbl_Information.Text = "查询条数: " & m_Table.Rows.Count
lbl_Information.Text &= ", 总条数: " & m_TotalCount
lbl_Information.Text &= ", 最小序号: " & m_MinIndex
lbl_Information.Text &= ", 最大序号:" & m_MaxIndex
If index >= 0 Then
lbl_Select.Text = "当前条: " & index
lbl_Select.Text &= ", 当前序号: " & Grid1.Cell(index, 7).Text
Else
lbl_Select.Text = ""
End If
End Sub
Private Sub bt_QueryQuick_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_QueryQuick.Click
Dim tempRowIndex As Integer = 0
Grid1.AutoRedraw = False
m_QuickMode = True
SetDataBinding()
If GetTableInformation() Then
ShowCurrSelectInformation(-1)
End If
For tempRowIndex = 1 To Grid1.Rows - 1
Grid1.Cell(tempRowIndex, 0).ForeColor = Color.Black
Grid1.Cell(tempRowIndex, 1).ForeColor = Color.Black
Grid1.Cell(tempRowIndex, 1).FontBold = False
Next
Grid1.Refresh()
Grid1.AutoRedraw = True
End Sub
Private Sub Grid1_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles Grid1.CellChange
'If m_Cell_Enable_Edit Then MessageBox.Show(e.Col & "," & e.Row)
'Grid1.Row(e.Row). = Color.Red
If m_Cell_Enable_Edit Then
Grid1.Cell(e.Row, e.Col).ForeColor = Color.Red
Grid1.Cell(e.Row, 1).ForeColor = Color.Red
Grid1.Cell(e.Row, 1).FontBold = True
End If
' Grid1.Selection.ForeColor = Color.Red
End Sub
Private Sub Grid1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Grid1.MouseDoubleClick
Try
If e.Button = MouseButtons.Left Then
Dim isHeaderClicked As Boolean = False
Dim row As Integer
'判断是否双击列HEADER
Dim X_Start As Integer = 0
Dim X_End As Integer = X_Start + Grid1.Column(0).Width
If e.X >= X_Start AndAlso e.X <= X_End Then
If e.Y < Grid1.Height Then
row = e.Y \ Grid1.Row(0).Height
If row >= Grid1.Rows Then
Return
End If
If row >= 0 Then
isHeaderClicked = True
End If
End If
End If
If isHeaderClicked = True Then
Dim strCopy As String = ""
For i As Integer = 0 To Grid1.Cols - 1
strCopy &= Grid1.Cell(row, i).Text & vbTab
Next
Clipboard.SetText(strCopy)
Else
row = Grid1.Selection.FirstRow
Dim col As Integer = Grid1.Selection.FirstCol
Grid1.Selection.ClearAll()
If row >= 1 AndAlso col >= 1 Then
Clipboard.SetText(Grid1.Cell(row, col).Text)
End If
End If
End If
Catch ex As Exception
End Try
End Sub
Private Sub Grid1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Grid1.MouseClick
m_CurSelItem_Col = -1
m_CurSelItem_Row = -1
If e.Button = MouseButtons.Left Then
Dim isHeaderClicked As Boolean = False
Dim row As Integer
'判断是否双击列HEADER
Dim X_Start As Integer = 0
Dim X_End As Integer = X_Start + Grid1.Column(0).Width
If e.X >= X_Start AndAlso e.X <= X_End Then
If e.Y < Grid1.Height Then
row = e.Y \ Grid1.Row(0).Height
If row >= Grid1.Rows Then
Return
End If
If row >= 0 Then
isHeaderClicked = True
End If
End If
End If
If isHeaderClicked = True Then
Else
row = Grid1.Selection.FirstRow
Dim col As Integer = Grid1.Selection.FirstCol
Grid1.Selection.ClearAll()
If row >= 1 AndAlso col >= 1 Then
m_CurSelItem_Col = col
m_CurSelItem_Row = row
If chkShowImage.Checked = True Then
PictureBox1.BackgroundImage = Nothing
lbl_ImageReading.Visible = True
lbl_NoImage.Visible = False
Application.DoEvents()
If GetItemImage(Grid1.Cell(row, 1).Text) = ERROR_CODE.SUCCESS Then
If PictureBox1.BackgroundImage Is Nothing Then
lbl_NoImage.Visible = True
End If
End If
lbl_ImageReading.Visible = False
End If
End If
End If
End If
End Sub
Private Sub Grid1_SelChange(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.SelChangeEventArgs) Handles Grid1.SelChange
If e.FirstRow >= 1 Then
ShowCurrSelectInformation(e.FirstRow)
End If
End Sub
Private Sub Grid1_ColWidthChange(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.ColWidthChangeEventArgs) Handles Grid1.ColWidthChange
CGirdInfo.SaveGirdInfo("料号查询", Grid1)
End Sub
Private Sub form_QuerySim_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
If m_InitOver = True Then
My.Settings.FORM_QUERYSIM_WIDHT = Me.Width
My.Settings.FORM_QUERYSIM_HEIGHT = Me.Height
My.Settings.FORM_QUERYSIM_WINSTATE = Me.WindowState
My.Settings.Save()
End If
End Sub
Private Sub form_QuerySim_LocationChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LocationChanged
If m_InitOver = True Then
My.Settings.FORM_QUERYSIM_X = Me.Left
My.Settings.FORM_QUERYSIM_Y = Me.Top
My.Settings.Save()
End If
End Sub
Private Function GetItemImage(ByVal strPN As String) As ERROR_CODE
tb_Name.Text = ""
PictureBox1.BackgroundImage = Nothing
Dim strSQL As String = "SELECT 图片 FROM " & CPartNumber.cst_TABLE_NAME & " WHERE "
strSQL &= CPartNumber.m_COLS_NAME(CPartNumber.COLS.料号PN) & " = '" & strPN & "'"
Dim 图片(0) As Byte
Dim rValueTable(0) As Object
If SQL_DataReader(COL_RIGHTS.料号管理, strSQL, rValueTable) = True Then
图片 = rValueTable(0)
PictureBox1.BackgroundImage = GetImageFromBytes(图片)
Return ERROR_CODE.SUCCESS
End If
Return ERROR_CODE.ACCESS
End Function
Private Function DeleteItem(ByVal strPN As String) As ERROR_CODE
tb_Name.Text = ""
PictureBox1.BackgroundImage = Nothing
'DELETE FROM 料号表 WHERE 料号PN = 'U01-C8051F321-MLP28'
Dim strSQL As String = "DELETE FROM " & CPartNumber.cst_TABLE_NAME & " WHERE "
strSQL &= CPartNumber.m_COLS_NAME(CPartNumber.COLS.料号PN) & " = '" & strPN & "'"
If SQL_ExeCommand(COL_RIGHTS.料号管理, strSQL) = True Then
Return ERROR_CODE.SUCCESS
End If
Return ERROR_CODE.ACCESS
End Function
Private Sub chkShowImage_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkShowImage.CheckedChanged
If chkShowImage.Checked = False Then
PictureBox1.BackgroundImage = Nothing
End If
End Sub
Private Sub bt_Del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Del.Click
If m_CurSelItem_Col >= 1 AndAlso m_CurSelItem_Row >= 1 Then '如果选择有效则删除
Dim strPN As String = Grid1.Cell(m_CurSelItem_Row, 1).Text
If MessageBox.Show("请确认删除料号: '" & strPN & "'", "料号删除", MessageBoxButtons.OKCancel) = DialogResult.OK Then
If DeleteItem(strPN) = ERROR_CODE.SUCCESS Then
MsgBox("删除料号: '" & strPN & "' 成功!")
Else
MsgBox("删除料号: '" & strPN & "' 失败!")
End If
bt_QueryQuick.PerformClick()
End If
End If
End Sub
Private Sub btn_Avtive_Click(sender As Object, e As EventArgs) Handles btn_Avtive.Click
If Grid1.Locked = True Then
Grid1.Locked = False
btn_Avtive.Text = "锁定编辑"
btn_Avtive.BackColor = Color.Green
m_Cell_Enable_Edit = True
Grid1.Column(1).Locked = True '锁定料号列
Grid1.Column(7).Locked = True '锁定序列号列
Else
Grid1.Locked = True
btn_Avtive.Text = "激活编辑"
btn_Avtive.BackColor = Color.Red
m_Cell_Enable_Edit = False
End If
End Sub
Private Sub btn_SaveChange_Click(sender As Object, e As EventArgs) Handles btn_SaveChange.Click
Dim tempRowIndex As Integer = 0
Dim tb_PartNumber_Text As String = ""
Dim tb_Name_Text As String = ""
Dim tb_Descr_Text As String = ""
Dim combo_Unit_Text As String = ""
Dim num_Weight_Value As String = ""
Dim strSupplierID As String = ""
Dim SavedCount As Integer = 0
Dim ChangeCount As Integer = 0
Dim result As ERROR_CODE
For tempRowIndex = 0 To Grid1.Rows - 1
If Grid1.Cell(tempRowIndex, 1).ForeColor = Color.Red Then '判断数据修改过
'MessageBox.Show(tempRowIndex)
ChangeCount = ChangeCount + 1
'保存料号
tb_PartNumber_Text = Grid1.Cell(tempRowIndex, 1).Text
tb_Name_Text = Grid1.Cell(tempRowIndex, 2).Text
tb_Descr_Text = Grid1.Cell(tempRowIndex, 3).Text
combo_Unit_Text = Grid1.Cell(tempRowIndex, 4).Text
num_Weight_Value = Grid1.Cell(tempRowIndex, 5).Text
strSupplierID = Grid1.Cell(tempRowIndex, 6).Text
result = m_PartNumber.UpdateItem(tb_PartNumber_Text, tb_Name_Text, tb_Descr_Text, combo_Unit_Text, num_Weight_Value, Nothing, strSupplierID)
If result = ERROR_CODE.SUCCESS Then
If chk_MsgForSaveItembyItem.Checked Then MsgBox("" & tempRowIndex & " 行保存成功!")
Grid1.Cell(tempRowIndex, 1).ForeColor = Color.Green
SavedCount = SavedCount + 1
ElseIf result = ERROR_CODE.NORIGHT Then
MsgBox("保存失败: ""无访问权限!""")
Else
MsgBox("保存失败: 请检查网络连接或联系管理员!")
End If
End If
Next
MsgBox("保存完成,共有 " & ChangeCount & " 项修改!共有 " & SavedCount & " 项保存成功!")
End Sub
End Class