commit f250d0b46d9050816e713a35defc8bf256355055 Author: MomoWen Date: Sat Jan 10 14:53:04 2026 +0800 转到Gitea托管 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8292087 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +WT-DMS/bin +WT-DMS/.vs +WT-DMS/obj +WT-DMS/WT-DMS.vbproj.user diff --git a/WT-DMS.sln b/WT-DMS.sln new file mode 100644 index 0000000..c68faae --- /dev/null +++ b/WT-DMS.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WT-DMS", "WT-DMS\WT-DMS.vbproj", "{5F2F6487-6E84-4827-ADBB-5EEFB94661CB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Debug|Any CPU.ActiveCfg = Debug|x86 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Debug|x86.ActiveCfg = Debug|x86 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Debug|x86.Build.0 = Debug|x86 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Release|Any CPU.ActiveCfg = Release|x86 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Release|Mixed Platforms.Build.0 = Release|x86 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Release|x86.ActiveCfg = Release|x86 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/WT-DMS/AboutBox1.Designer.vb b/WT-DMS/AboutBox1.Designer.vb new file mode 100644 index 0000000..c5cf218 --- /dev/null +++ b/WT-DMS/AboutBox1.Designer.vb @@ -0,0 +1,178 @@ + _ +Partial Class AboutBox1 + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + Friend WithEvents TableLayoutPanel As System.Windows.Forms.TableLayoutPanel + Friend WithEvents LogoPictureBox As System.Windows.Forms.PictureBox + Friend WithEvents LabelProductName As System.Windows.Forms.Label + Friend WithEvents LabelVersion As System.Windows.Forms.Label + Friend WithEvents LabelCompanyName As System.Windows.Forms.Label + Friend WithEvents TextBoxDescription As System.Windows.Forms.TextBox + Friend WithEvents OKButton As System.Windows.Forms.Button + Friend WithEvents LabelCopyright As System.Windows.Forms.Label + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(AboutBox1)) + Me.TableLayoutPanel = New System.Windows.Forms.TableLayoutPanel() + Me.LogoPictureBox = New System.Windows.Forms.PictureBox() + Me.LabelProductName = New System.Windows.Forms.Label() + Me.LabelVersion = New System.Windows.Forms.Label() + Me.LabelCopyright = New System.Windows.Forms.Label() + Me.LabelCompanyName = New System.Windows.Forms.Label() + Me.TextBoxDescription = New System.Windows.Forms.TextBox() + Me.OKButton = New System.Windows.Forms.Button() + Me.TableLayoutPanel.SuspendLayout() + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'TableLayoutPanel + ' + Me.TableLayoutPanel.ColumnCount = 2 + Me.TableLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.0!)) + Me.TableLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67.0!)) + Me.TableLayoutPanel.Controls.Add(Me.LogoPictureBox, 0, 0) + Me.TableLayoutPanel.Controls.Add(Me.LabelProductName, 1, 0) + Me.TableLayoutPanel.Controls.Add(Me.LabelVersion, 1, 1) + Me.TableLayoutPanel.Controls.Add(Me.LabelCopyright, 1, 2) + Me.TableLayoutPanel.Controls.Add(Me.LabelCompanyName, 1, 3) + Me.TableLayoutPanel.Controls.Add(Me.TextBoxDescription, 1, 4) + Me.TableLayoutPanel.Controls.Add(Me.OKButton, 1, 5) + Me.TableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill + Me.TableLayoutPanel.Location = New System.Drawing.Point(9, 8) + Me.TableLayoutPanel.Name = "TableLayoutPanel" + Me.TableLayoutPanel.RowCount = 6 + Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!)) + Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!)) + Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!)) + Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!)) + Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!)) + Me.TableLayoutPanel.Size = New System.Drawing.Size(396, 239) + Me.TableLayoutPanel.TabIndex = 0 + ' + 'LogoPictureBox + ' + Me.LogoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill + Me.LogoPictureBox.Image = CType(resources.GetObject("LogoPictureBox.Image"), System.Drawing.Image) + Me.LogoPictureBox.Location = New System.Drawing.Point(3, 3) + Me.LogoPictureBox.Name = "LogoPictureBox" + Me.TableLayoutPanel.SetRowSpan(Me.LogoPictureBox, 6) + Me.LogoPictureBox.Size = New System.Drawing.Size(124, 233) + Me.LogoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.LogoPictureBox.TabIndex = 0 + Me.LogoPictureBox.TabStop = False + ' + 'LabelProductName + ' + Me.LabelProductName.Dock = System.Windows.Forms.DockStyle.Fill + Me.LabelProductName.Location = New System.Drawing.Point(136, 0) + Me.LabelProductName.Margin = New System.Windows.Forms.Padding(6, 0, 3, 0) + Me.LabelProductName.MaximumSize = New System.Drawing.Size(0, 16) + Me.LabelProductName.Name = "LabelProductName" + Me.LabelProductName.Size = New System.Drawing.Size(257, 16) + Me.LabelProductName.TabIndex = 0 + Me.LabelProductName.Text = "产品名称" + Me.LabelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'LabelVersion + ' + Me.LabelVersion.Dock = System.Windows.Forms.DockStyle.Fill + Me.LabelVersion.Location = New System.Drawing.Point(136, 23) + Me.LabelVersion.Margin = New System.Windows.Forms.Padding(6, 0, 3, 0) + Me.LabelVersion.MaximumSize = New System.Drawing.Size(0, 16) + Me.LabelVersion.Name = "LabelVersion" + Me.LabelVersion.Size = New System.Drawing.Size(257, 16) + Me.LabelVersion.TabIndex = 0 + Me.LabelVersion.Text = "版本" + Me.LabelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'LabelCopyright + ' + Me.LabelCopyright.Dock = System.Windows.Forms.DockStyle.Fill + Me.LabelCopyright.Location = New System.Drawing.Point(136, 46) + Me.LabelCopyright.Margin = New System.Windows.Forms.Padding(6, 0, 3, 0) + Me.LabelCopyright.MaximumSize = New System.Drawing.Size(0, 16) + Me.LabelCopyright.Name = "LabelCopyright" + Me.LabelCopyright.Size = New System.Drawing.Size(257, 16) + Me.LabelCopyright.TabIndex = 0 + Me.LabelCopyright.Text = "版权" + Me.LabelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'LabelCompanyName + ' + Me.LabelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill + Me.LabelCompanyName.Location = New System.Drawing.Point(136, 69) + Me.LabelCompanyName.Margin = New System.Windows.Forms.Padding(6, 0, 3, 0) + Me.LabelCompanyName.MaximumSize = New System.Drawing.Size(0, 16) + Me.LabelCompanyName.Name = "LabelCompanyName" + Me.LabelCompanyName.Size = New System.Drawing.Size(257, 16) + Me.LabelCompanyName.TabIndex = 0 + Me.LabelCompanyName.Text = "公司名称" + Me.LabelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'TextBoxDescription + ' + Me.TextBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill + Me.TextBoxDescription.Location = New System.Drawing.Point(136, 95) + Me.TextBoxDescription.Margin = New System.Windows.Forms.Padding(6, 3, 3, 3) + Me.TextBoxDescription.Multiline = True + Me.TextBoxDescription.Name = "TextBoxDescription" + Me.TextBoxDescription.ReadOnly = True + Me.TextBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both + Me.TextBoxDescription.Size = New System.Drawing.Size(257, 113) + Me.TextBoxDescription.TabIndex = 0 + Me.TextBoxDescription.TabStop = False + Me.TextBoxDescription.Text = "说明 :" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "(在运行时,将用应用程序的程序集信息替换这些标签的文本。" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "在" + ' + 'OKButton + ' + Me.OKButton.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.OKButton.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.OKButton.Location = New System.Drawing.Point(318, 215) + Me.OKButton.Name = "OKButton" + Me.OKButton.Size = New System.Drawing.Size(75, 21) + Me.OKButton.TabIndex = 0 + Me.OKButton.Text = "确定(&O)" + ' + 'AboutBox1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.OKButton + Me.ClientSize = New System.Drawing.Size(414, 255) + Me.Controls.Add(Me.TableLayoutPanel) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "AboutBox1" + Me.Padding = New System.Windows.Forms.Padding(9, 8, 9, 8) + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "AboutBox1" + Me.TableLayoutPanel.ResumeLayout(False) + Me.TableLayoutPanel.PerformLayout() + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + +End Class diff --git a/WT-DMS/AboutBox1.resx b/WT-DMS/AboutBox1.resx new file mode 100644 index 0000000..f007037 --- /dev/null +++ b/WT-DMS/AboutBox1.resx @@ -0,0 +1,604 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/WT-DMS/AboutBox1.vb b/WT-DMS/AboutBox1.vb new file mode 100644 index 0000000..905b8c0 --- /dev/null +++ b/WT-DMS/AboutBox1.vb @@ -0,0 +1,26 @@ +Public NotInheritable Class AboutBox1 + + Private Sub AboutBox1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + ' 设置此窗体的标题。 + Dim ApplicationTitle As String + If My.Application.Info.Title <> "" Then + ApplicationTitle = My.Application.Info.Title + Else + ApplicationTitle = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName) + End If + Me.Text = String.Format("关于 {0}", ApplicationTitle) + ' 初始化“关于”对话框显示的所有文字。 + ' TODO: 在项目的“应用程序”窗格中自定义此应用程序的程序集信息 + ' 属性对话框(在“项目”菜单下)。 + Me.LabelProductName.Text = My.Application.Info.ProductName + Me.LabelVersion.Text = String.Format("版本 {0}", My.Application.Info.Version.ToString) + Me.LabelCopyright.Text = My.Application.Info.Copyright + Me.LabelCompanyName.Text = My.Application.Info.CompanyName + Me.TextBoxDescription.Text = My.Application.Info.Description + End Sub + + Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKButton.Click + Me.Close() + End Sub + +End Class diff --git a/WT-DMS/ApplicationEvents.vb b/WT-DMS/ApplicationEvents.vb new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/WT-DMS/ApplicationEvents.vb @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/WT-DMS/CAccountManage.vb b/WT-DMS/CAccountManage.vb new file mode 100644 index 0000000..78cdc5c --- /dev/null +++ b/WT-DMS/CAccountManage.vb @@ -0,0 +1,158 @@ +Public Class CAccountManage + Dim m_SQL As New CSQLInterface + + Const cst_TABLE_NAME As String = "帐号表" + Public m_COLS_NAME() As String = { + "序号", + "帐号", + "密码", + "员工ID", + "登录", + "系统记录", + "用户管理", + "料号管理", + "原料库存管理", + "成品库存管理", + "BOM管理", + "供应商管理", + "ECN管理", + "公司管理", + "部门管理", + "仓库管理", + "库位管理", + "财务管理" + } + + Public Enum COLS + 序号 + 帐号 + 密码 + 员工ID + 登录 + 系统记录 + 用户管理 + 料号管理 + 原料库存管理 + 成品库存管理 + BOM管理 + 供应商管理 + ECN管理 + 公司管理 + 部门管理 + 仓库管理 + 库位管理 + 财务管理 + max + End Enum + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + + Public Sub New() + End Sub + + 'Public Function AddItem(ByVal AccountName As String, ByVal Password As String, ByVal right As Integer, ByVal EmployeeID As Integer) As ERROR_CODE + ' If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + ' Return ERROR_CODE.NORIGHT + ' End If + ' '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + ' Dim strSql As String = "INSERT INTO " & cst_TABLE_NAME & "(" + ' '加入列名 + ' For i As Integer = 0 To m_COLS_NAME.Length - 1 + ' If i > 0 Then + ' strSql &= "," + ' End If + ' strSql &= "[" & m_COLS_NAME(i) & "]" + ' Next + ' strSql &= ") VALUES (" + ' strSql &= "'" & Password & "'" + ' strSql &= "," & right + ' strSql &= "," & EmployeeID + ' strSql &= ")" + + ' If SQL_ExeCommand(strSql) = True Then + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function + + 'Public Function UpdateItem(ByVal AccountName As String, ByVal Password As String, ByVal right As Integer, ByVal EmployeeID As Integer) As ERROR_CODE + ' If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + ' Return ERROR_CODE.NORIGHT + ' End If + + ' Dim strSql As String = "UPDATE " & cst_TABLE_NAME & " SET" + ' strSql &= " " & m_COLS_NAME(COLS.密码) & "=" & Password + ' strSql &= ", " & m_COLS_NAME(COLS.权限) & "=" & right + ' strSql &= ", " & m_COLS_NAME(COLS.员工ID) & "=" & EmployeeID + ' strSql &= " WHERE " + ' strSql &= m_COLS_NAME(COLS.帐号) & "=" & AccountName + + ' If SQL_ExeCommand(strSql) = True Then + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function + + 'Public Function DeleteItem(ByVal AccountName As String) As ERROR_CODE + ' If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + ' Return ERROR_CODE.NORIGHT + ' End If + + ' Dim strSql As String = "DELETE FROM " & cst_TABLE_NAME & " WHERE " + ' strSql &= m_COLS_NAME(0) & "=" & AccountName + + ' If SQL_ExeCommand(strSql) = True Then + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function + + Public Function QueryItem(ByVal AccountName As String, ByRef Password As String, ByRef EmployeeID As Integer, ByRef right() As String) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + 'SELECT * FROM `帐号表` WHERE `帐号`='tony' + Dim strSql As String = "SELECT * FROM `" & cst_TABLE_NAME & "` WHERE " + 'strSql &= "`" & m_COLS_NAME(COLS.帐号) & "` COLLATE utf8_general_ci ='" & AccountName & "'" + strSql &= "`" & m_COLS_NAME(COLS.帐号) & "` ='" & AccountName & "'" + 'Dim strSql As String = "SELECT * FROM `帐号表`" + + Dim rTable As New System.Data.DataTable + If SQL_Query(COL_RIGHTS.用户管理, strSql, rTable) = True Then + Try + If rTable.Rows.Count > 0 Then + Password = rTable.Rows(0).Item(COLS.密码) + EmployeeID = rTable.Rows(0).Item(COLS.员工ID) + right(COL_RIGHTS.登录) = rTable.Rows(0).Item(COLS.登录) + right(COL_RIGHTS.系统记录) = rTable.Rows(0).Item(COLS.系统记录) + right(COL_RIGHTS.用户管理) = rTable.Rows(0).Item(COLS.用户管理) + right(COL_RIGHTS.料号管理) = rTable.Rows(0).Item(COLS.料号管理) + right(COL_RIGHTS.原料库存管理) = rTable.Rows(0).Item(COLS.原料库存管理) + right(COL_RIGHTS.成品库存管理) = rTable.Rows(0).Item(COLS.成品库存管理) + right(COL_RIGHTS.BOM管理) = rTable.Rows(0).Item(COLS.BOM管理) + right(COL_RIGHTS.供应商管理) = rTable.Rows(0).Item(COLS.供应商管理) + right(COL_RIGHTS.ECN管理) = rTable.Rows(0).Item(COLS.ECN管理) + right(COL_RIGHTS.公司管理) = rTable.Rows(0).Item(COLS.公司管理) + right(COL_RIGHTS.部门管理) = rTable.Rows(0).Item(COLS.部门管理) + right(COL_RIGHTS.仓库管理) = rTable.Rows(0).Item(COLS.仓库管理) + right(COL_RIGHTS.库位管理) = rTable.Rows(0).Item(COLS.库位管理) + right(COL_RIGHTS.财务管理) = rTable.Rows(0).Item(COLS.财务管理) + Return ERROR_CODE.SUCCESS + End If + Catch ex As Exception + + End Try + + End If + + Return ERROR_CODE.ACCESS + End Function +End Class + + diff --git a/WT-DMS/CBOM.vb b/WT-DMS/CBOM.vb new file mode 100644 index 0000000..d36d99a --- /dev/null +++ b/WT-DMS/CBOM.vb @@ -0,0 +1,184 @@ +Public Class CBOM + Dim m_SQL As New CSQLInterface + + Const cst_TABLE_NAME As String = "BOM" + Dim m_COLS_NAME() As String = { + "序号", + "BOM阶层", + "料号PN", + "单位", + "用量", + "使用位置", + "使用备注" + } + + Private Enum COLS + 序号 + BOM阶层 + 料号PN + 单位 + 用量 + 使用位置 + 使用备注 + End Enum + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + + Public Sub New() + End Sub + + Public Function CreateNew(ByVal BOM_ID As String) As ERROR_CODE + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + '"DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci " & + Dim strSql As String = "CREATE TABLE " & "BOM_" & BOM_ID & " " & + "(" & + "序号 int(11) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT," & + "BOM阶层 int(11) NOT NULL," & + "料号PN varchar(16) NOT NULL," & + "单位 varchar(20)," & + "用量 double NOT NULL DEFAULT 0," & + "使用位置 text," & + "使用备注 text" & + ") " & + "DEFAULT CHARACTER SET gbk;" + + If SQL_ExeCommand(COL_RIGHTS.BOM管理, strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + ''查询指定列的总条数 + 'Public Function QueryColumeItemCount(ByVal BOM_ID As String, ByRef rCount As Long) As Boolean + ' rCount = 0 + + ' Dim strSql As String = "SELECT COUNT(" & m_COLS_NAME(0) & ") FROM '" & cst_TABLE_NAME & "-" & BOM_ID & "'" + ' Dim rTable As New System.Data.DataTable + ' If SQL_Query(strSql, rTable) = True Then + ' rCount = rTable.Rows(0).Item(1) + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function + + 'Public Function AddItem(ByVal BOM阶层 As String, _ + ' ByVal 料号PN As String, _ + ' ByVal 单位 As String, _ + ' ByVal 用量 As Integer, _ + ' ByVal 使用位置 As String, _ + ' ByVal 使用备注 As String) As ERROR_CODE + ' If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + ' Return ERROR_CODE.NORIGHT + ' End If + ' '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + ' Dim strSql As String = "INSERT INTO " & cst_TABLE_NAME & "(" + ' '加入列名 + ' For i As Integer = 0 To m_COLS_NAME.Length - 1 + ' If i > 0 Then + ' strSql &= "," + ' End If + ' strSql &= "[" & m_COLS_NAME(i) & "]" + ' Next + ' strSql &= ") VALUES (" + ' strSql &= "'" & 入库单PN & "'" + ' strSql &= "'" & BOM阶层 & "'" + ' strSql &= "'" & 料号PN & "'" + ' strSql &= "'" & 单位 & "'" + ' strSql &= "'" & 用量 & "'" + ' strSql &= "'" & 使用位置 & "'" + ' strSql &= "'" & 使用备注 & "'" + ' strSql &= ")" + + ' If SQL_ExeCommand(strSql) = True Then + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function + + 'Public Function UpdateItem(ByVal 入库单PN As String, _ + ' ByVal 入库日期 As String, _ + ' ByVal 入库时间 As String, _ + ' ByVal 入库数量 As Integer, _ + ' ByVal 单价 As String, _ + ' ByVal 总金额 As String, _ + ' ByVal 操作员ID As String, _ + ' ByVal 料号PN As String, _ + ' ByVal 供应商ID As String) As ERROR_CODE + ' If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + ' Return ERROR_CODE.NORIGHT + ' End If + + ' Dim strSql As String = "UPDATE " & cst_TABLE_NAME & " SET" + ' strSql &= ", " & m_COLS_NAME(COLS.入库日期) & "=" & 入库日期 + ' strSql &= ", " & m_COLS_NAME(COLS.入库时间) & "=" & 入库时间 + ' strSql &= " " & m_COLS_NAME(COLS.入库数量) & "=" & 入库数量 + ' strSql &= ", " & m_COLS_NAME(COLS.单价) & "=" & 单价 + ' strSql &= ", " & m_COLS_NAME(COLS.总金额) & "=" & 总金额 + ' strSql &= ", " & m_COLS_NAME(COLS.操作员ID) & "=" & 操作员ID + ' strSql &= ", " & m_COLS_NAME(COLS.料号PN) & "=" & 料号PN + ' strSql &= ", " & m_COLS_NAME(COLS.供应商ID) & "=" & 供应商ID + ' strSql &= " WHERE " + ' strSql &= m_COLS_NAME(COLS.入库单PN) & "=" & 入库单PN + + ' If SQL_ExeCommand(strSql) = True Then + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function + + 'Public Function DeleteItem(ByVal 入库单PN As String) As ERROR_CODE + ' If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + ' Return ERROR_CODE.NORIGHT + ' End If + + ' Dim strSql As String = "DELETE FROM " & cst_TABLE_NAME & " WHERE " + ' strSql &= m_COLS_NAME(COLS.入库单PN) & "=" & 入库单PN + + ' If SQL_ExeCommand(strSql) = True Then + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function + + 'Public Function QueryItem(ByVal 入库单PN As String, _ + ' ByRef 入库日期 As String, _ + ' ByRef 入库时间 As String, _ + ' ByRef 入库数量 As Integer, _ + ' ByRef 单价 As String, _ + ' ByRef 总金额 As String, _ + ' ByRef 操作员ID As String, _ + ' ByRef 料号PN As String, _ + ' ByRef 供应商ID As String) As ERROR_CODE + ' If CBool(m_AccessRight And RIGHTS.READ) = False Then + ' Return ERROR_CODE.NORIGHT + ' End If + + ' Dim strSql As String = "SELECT * FROM " & cst_TABLE_NAME & " WHERE " + ' strSql &= m_COLS_NAME(COLS.料号PN) & "=" & 料号PN + + ' Dim rTable As New System.Data.DataTable + ' If SQL_Query(strSql, rTable) = True Then + ' 入库日期 = rTable.Rows(0).Item(1) + ' 入库时间 = rTable.Rows(0).Item(2) + ' 入库数量 = rTable.Rows(0).Item(3) + ' 单价 = rTable.Rows(0).Item(4) + ' 总金额 = rTable.Rows(0).Item(5) + ' 操作员ID = rTable.Rows(0).Item(6) + ' 料号PN = rTable.Rows(0).Item(7) + ' 供应商ID = rTable.Rows(0).Item(8) + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function +End Class diff --git a/WT-DMS/CBackupManage.vb b/WT-DMS/CBackupManage.vb new file mode 100644 index 0000000..32df482 --- /dev/null +++ b/WT-DMS/CBackupManage.vb @@ -0,0 +1,36 @@ +Public Class CBackupManage + Public Const cst_TABLE_NAME As String = "备份记录表" + Public Shared m_COLS_NAME() As String = { + "序号", + "备份时间" + } + + Public Enum COLS + 序号 + 备份时间 + End Enum + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + Public Sub New() + End Sub + + Public Function SetBackupTime(ByVal timeString As String) As Boolean + Dim strSql As String = "UPDATE " & cst_TABLE_NAME & " SET " & m_COLS_NAME(COLS.备份时间) & "=" & timeString & " WHERE " & m_COLS_NAME(COLS.序号) & "=" & "1" + + return SQL_ExeCommand(COL_RIGHTS.BOM管理, strSql) + End Function + + Public Function GetBackupTime(ByRef timeString As String) As Boolean + Dim strSql As String = "SELECT " & m_COLS_NAME(COLS.备份时间) & " FROM " & cst_TABLE_NAME & " WHERE " & m_COLS_NAME(COLS.序号) & "=" & "1" + + Dim r_Table As New DataTable + If SQL_Query(COL_RIGHTS.BOM管理, strSql, r_Table) = True Then + timeString = r_Table.Rows(0).Item(0) + Return True + End If + Return False + End Function + +End Class diff --git a/WT-DMS/CCompanyManage.vb b/WT-DMS/CCompanyManage.vb new file mode 100644 index 0000000..74e8d2c --- /dev/null +++ b/WT-DMS/CCompanyManage.vb @@ -0,0 +1,37 @@ +Public Class CCompanyManage + Dim m_SQL As New CSQLInterface + + Const cst_TABLE_NAME As String = "CompanyManageTable" + Dim m_COLS_NAME() As String = {"公司ID", "公司名称", "注册日期", "公司地址"} + Private Enum COLS + 公司ID + 公司名称 + 注册日期 + 公司地址 + End Enum + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + Public Sub New() + End Sub + + Private Function QueryItem(ByVal CopID As String, ByRef CopName As String, ByRef CopDate As String, ByRef CopAddress As String) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "SELECT * FROM " & cst_TABLE_NAME & " WHERE " + strSql &= m_COLS_NAME(COLS.公司ID) & "=" & CopID + + Dim rTable As New System.Data.DataTable + If SQL_Query(COL_RIGHTS.公司管理, strSql, rTable) = True Then + CopName = rTable.Rows(0).Item(1) + CopDate = rTable.Rows(0).Item(2) + CopAddress = rTable.Rows(0).Item(3) + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function +End Class diff --git a/WT-DMS/CDepartmentManage.vb b/WT-DMS/CDepartmentManage.vb new file mode 100644 index 0000000..2bffb29 --- /dev/null +++ b/WT-DMS/CDepartmentManage.vb @@ -0,0 +1,38 @@ +Public Class CDepartmentManage + Dim m_SQL As New CSQLInterface + + Const cst_TABLE_NAME As String = "DepartmentManageTable" + Dim m_COLS_NAME() As String = {"部门ID", "负责人ID", "部门地址", "联系方式"} + Private Enum COLS + 部门ID + 负责人ID + 部门地址 + 联系方式 + End Enum + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + + Public Sub New() + End Sub + + Private Function QueryItem(ByVal departID As String, ByRef HeaderID As Integer, ByRef departAddress As String, ByRef departLink As String) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "SELECT * FROM " & cst_TABLE_NAME & " WHERE " + strSql &= m_COLS_NAME(COLS.部门ID) & "=" & departID + + Dim rTable As New System.Data.DataTable + If SQL_Query(COL_RIGHTS.部门管理, strSql, rTable) = True Then + HeaderID = rTable.Rows(0).Item(1) + departAddress = rTable.Rows(0).Item(2) + departLink = rTable.Rows(0).Item(3) + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function +End Class diff --git a/WT-DMS/CEmployeeManage.vb b/WT-DMS/CEmployeeManage.vb new file mode 100644 index 0000000..a883e93 --- /dev/null +++ b/WT-DMS/CEmployeeManage.vb @@ -0,0 +1,3 @@ +Public Class CEmployeeManage + +End Class diff --git a/WT-DMS/CGirdInfo.vb b/WT-DMS/CGirdInfo.vb new file mode 100644 index 0000000..01946b9 --- /dev/null +++ b/WT-DMS/CGirdInfo.vb @@ -0,0 +1,173 @@ +Imports System.IO +Public Class CGirdInfo + Public Shared LoadBusy As Boolean = False + + Public Shared Function SaveGirdInfo(ByVal gridName As String, ByRef grid As FlexCell.Grid) As Boolean + If LoadBusy = True Then Return False + + Dim strPath As String = Application.StartupPath & "\GRID" + If System.IO.Directory.Exists(strPath) = False Then + System.IO.Directory.CreateDirectory(strPath) + End If + + If System.IO.Directory.Exists(strPath) = True Then + strPath &= "\" & gridName & ".ini" + + Dim fs As New StreamWriter(strPath, False, System.Text.Encoding.Default) + '保存列宽 + For col As Integer = 0 To grid.Cols - 1 + fs.WriteLine("C" & col & "=" & grid.Column(col).Width) + Next + 'For row As Integer = 0 To grid.Rows - 1 + ' fs.Write("R" & row & "=" & grid.Row(row).Height) + 'Next + fs.Close() + End If + + Return True + End Function + + Public Shared Function LoadGridInfo(ByVal gridName As String, ByRef grid As FlexCell.Grid) As Boolean + LoadBusy = True + + Dim strPath As String = Application.StartupPath & "\GRID\" & gridName & ".ini" + If System.IO.File.Exists(strPath) = True Then + Dim fs As New StreamReader(strPath, System.Text.Encoding.Default) + Dim strLine As String = "" + Dim strSplit() As String + Dim colNum As Integer = 0 + Dim widthNum As Integer = 0 + + While fs.EndOfStream = False + strLine = fs.ReadLine() + If Not strLine Is Nothing AndAlso strLine.Length > 0 Then + strSplit = Split(strLine, "=") + If strSplit.Length >= 2 Then + Try + colNum = Strings.Mid(strSplit(0), 2) + widthNum = strSplit(1) + grid.Column(colNum).Width = widthNum + Catch ex As Exception + End Try + End If + End If + End While + + fs.Close() + End If + + LoadBusy = False + Return True + End Function + + Public Shared Function SaveRecentList(ByVal saveName As String, ByRef RecentList As System.Windows.Forms.AutoCompleteStringCollection) As Boolean + Dim strPath As String = Application.StartupPath & "\GRID" + If System.IO.Directory.Exists(strPath) = False Then + System.IO.Directory.CreateDirectory(strPath) + End If + + If System.IO.Directory.Exists(strPath) = True Then + strPath &= "\" & saveName & ".ini" + + Dim fs As New StreamWriter(strPath, False, System.Text.Encoding.Default) + For Each pItem As String In RecentList + fs.WriteLine(pItem) + Next + fs.Close() + End If + + Return True + End Function + + Public Shared Function LoadRecentList(ByVal saveName As String, ByRef RecentList As System.Windows.Forms.AutoCompleteStringCollection) As Boolean + RecentList.Clear() + + Dim strPath As String = Application.StartupPath & "\GRID\" & saveName & ".ini" + If System.IO.File.Exists(strPath) = True Then + Dim fs As New StreamReader(strPath, System.Text.Encoding.Default) + Dim strLine As String = "" + + While fs.EndOfStream = False + strLine = fs.ReadLine() + If Not strLine Is Nothing AndAlso strLine.Length > 0 Then + RecentList.Add(strLine) + End If + End While + + fs.Close() + End If + + Return True + End Function + + Public Shared Function AddToRecentList(ByVal newItem As String, ByRef RecentList As System.Windows.Forms.AutoCompleteStringCollection) As Boolean + If newItem Is Nothing OrElse newItem.Length = 0 Then Return False + + Dim upperItem As String = newItem.ToLower + Dim isExist As Boolean = False + For Each pItem As String In RecentList + If upperItem = pItem.ToLower Then + isExist = True + Exit For + End If + Next + + If isExist = False Then + RecentList.Insert(0, newItem) + Return True + End If + + Return False + End Function + + + Public Class SUB_LIST_INFO + Public name As String = "" + Public list As New System.Windows.Forms.AutoCompleteStringCollection + End Class + Public Shared Function LoadRecentSubList(ByVal parentName As String, ByRef subList As ArrayList) As Boolean + Dim m_ParentList As New System.Windows.Forms.AutoCompleteStringCollection + If LoadRecentList(parentName, m_ParentList) = True Then + For Each pItem As String In m_ParentList + Dim mSubListItem As New SUB_LIST_INFO + mSubListItem.name = parentName & "_" & pItem + LoadRecentList(mSubListItem.name, mSubListItem.list) + subList.Add(mSubListItem) + Next + End If + + Return True + End Function + + Public Shared Function SaveRecentSubList(ByRef subList As ArrayList) As Boolean + For Each pItem As SUB_LIST_INFO In subList + SaveRecentList(pItem.name, pItem.list) + Next + + Return True + End Function + + Public Shared Function AddToRecentSubList(ByVal parentName As String, ByVal subName As String, ByVal addItem As String, ByRef subList As ArrayList) As Boolean + Dim addListName As String = parentName & "_" & subName + For Each pItem As SUB_LIST_INFO In subList + If pItem.name = addListName Then + AddToRecentList(addItem, pItem.list) + End If + Next + + Return True + End Function + + Public Shared Function GetRecentSubList(ByVal parentName As String, ByVal subName As String, ByRef subList As ArrayList, ByRef RecentList As System.Windows.Forms.AutoCompleteStringCollection) As Boolean + Dim subItemName As String = parentName & "_" & subName + RecentList = Nothing + + For Each pItem As SUB_LIST_INFO In subList + If pItem.name = subItemName Then + RecentList = pItem.list + End If + Next + + Return True + End Function +End Class diff --git a/WT-DMS/CLogManage.vb b/WT-DMS/CLogManage.vb new file mode 100644 index 0000000..2f6ebc6 --- /dev/null +++ b/WT-DMS/CLogManage.vb @@ -0,0 +1,132 @@ +Public Class CLogManage + 'Dim m_SQL As New CMSQL_Interface + + Public Const cst_TABLE_NAME As String = "系统记录表" + Public Shared m_COLS_NAME() As String = { + "序号", + "日期", + "时间", + "操作对象", + "操作内容", + "帐号", + "PC名称", + "IP地址"} + Public Enum COLS + 序号 + 日期 + 时间 + 操作对象 + 操作内容 + 帐号 + PC名称 + IP地址 + End Enum + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + Public Sub New() + End Sub + + Public Function AddItem(ByVal 操作对象 As String, + ByVal 操作内容 As String, + ByVal 帐号 As String + ) As ERROR_CODE + 'If CBool(AccessRight And RIGHTS.WRITE) = False Then + ' Return ERROR_CODE.NORIGHT + 'End If + + Dim 时间 As Date = Now + Dim PC名称 As String = My.Computer.Name + Dim IP地址 As String = GetLocalIPAddress() + + Dim strSql As String = "INSERT INTO `" & cst_TABLE_NAME & "`(" + '加入列名 + For i As Integer = 1 To m_COLS_NAME.Length - 1 + If i > 1 Then + strSql &= "," + End If + strSql &= "`" & m_COLS_NAME(i) & "`" + Next + strSql &= ") VALUES (" + strSql &= "'" & 时间.ToString("yyyy-MM-dd") & "'" + strSql &= ",'" & 时间.ToString("HH:mm:ss") & "'" + strSql &= $",'{操作对象}'" '", @objName" + strSql &= $",'{操作内容}'" '", @objContent" + strSql &= ",'" & 帐号 & "'" + strSql &= ",'" & PC名称 & "'" + strSql &= ",'" & IP地址 & "'" + strSql &= ")" + + Dim paramName() As String = {操作对象, 操作内容} + Dim paramValue() As Object = {操作对象, 操作内容} + If m_SQL.ExeCommandWithParamters(strSql, paramName, paramValue) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + 'Public Function DeleteItem(ByVal index As Long) As ERROR_CODE + ' 'If CBool(AccessRight And RIGHTS.WRITE) = False Then + ' ' Return ERROR_CODE.NORIGHT + ' 'End If + + ' Dim strSql As String = "DELETE FROM " & cst_TABLE_NAME & " WHERE " + ' strSql &= m_COLS_NAME(COLS.序号) & "=" & index + + ' If m_SQL.ExeCommand(strSql) = True Then + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function + + 'Public Function QueryItem(ByVal index As Long, + ' ByRef 时间 As Date, + ' ByRef 操作对象 As String, + ' ByRef 操作内容 As String, + ' ByRef 帐号 As String, + ' ByRef PC名称 As String, + ' ByRef IP地址 As String) As ERROR_CODE + ' 'If CBool(AccessRight And RIGHTS.READ) = False Then + ' ' Return ERROR_CODE.NORIGHT + ' 'End If + + ' Dim strSql As String = "SELECT * FROM " & cst_TABLE_NAME & " WHERE " + ' strSql &= m_COLS_NAME(COLS.序号) & "=" & index + + ' Dim rValue(0) As Object + ' If m_SQL.DataReader(strSql, rValue) = True Then + ' 时间 = rValue(COLS.时间) + ' 操作对象 = rValue(COLS.操作对象) + ' 操作内容 = rValue(COLS.操作内容) + ' 帐号 = rValue(COLS.帐号) + ' PC名称 = rValue(COLS.PC名称) + ' IP地址 = rValue(COLS.IP地址) + ' Return ERROR_CODE.SUCCESS + ' End If + + ' Return ERROR_CODE.ACCESS + 'End Function + + Public Function GetLogCounts(ByRef Count As Long) As Boolean + 'If CBool(AccessRight And RIGHTS.READ) = False Then + ' Return ERROR_CODE.NORIGHT + 'End If + + 'SELECT COUNT(22) FROM [TABLE1] + Dim strSql As String = "SELECT COUNT(" & m_COLS_NAME(COLS.序号) & ") FROM " & cst_TABLE_NAME + + Dim rTable As New System.Data.DataTable + If m_SQL.Query(strSql, rTable) = True Then + Try + Count = rTable.Rows(0).Item(0) + Return ERROR_CODE.SUCCESS + Catch ex As Exception + End Try + End If + + Return ERROR_CODE.ACCESS + End Function +End Class diff --git a/WT-DMS/CMSQL_Interface.vb b/WT-DMS/CMSQL_Interface.vb new file mode 100644 index 0000000..76120e0 --- /dev/null +++ b/WT-DMS/CMSQL_Interface.vb @@ -0,0 +1,175 @@ +Imports MySql.Data.MySqlClient +Public Class CMSQL_Interface + Dim m_SqlConn As MySqlConnection = Nothing + Dim m_SqlAdapter As MySqlDataAdapter + Dim m_DTable As New DataTable + Dim m_BaseName As String = "" + Public Function ConnectionSetting(ByVal strHostIp As String, ByVal DataBaseName As String, ByVal user As String, ByVal password As String) As Boolean + If m_SqlConn Is Nothing Then + m_SqlConn = New MySqlConnection + Else + m_SqlConn.Close() + End If + + Dim str As String = "server=" & strHostIp & ";database=" & DataBaseName & ";uid=" & user & ";pwd=" & password & ";SslMode=none;CharSet=utf8mb4;PORT=3307" + m_SqlConn.ConnectionString = str + + m_BaseName = DataBaseName + Return (True) + End Function + + Public Function Query(ByVal strQuery As String, ByRef r_Table As DataTable) As Boolean + Dim Result As Boolean = False + Try + m_SqlConn.Open() + m_SqlAdapter = New MySqlDataAdapter(strQuery, m_SqlConn) + r_Table.Clear() + m_SqlAdapter.Fill(r_Table) + + Result = True + Catch ex As Exception + Dim msg = ex.Message + End Try + + Try + m_SqlConn.Close() + Catch ex As Exception + End Try + + Return Result + End Function + + Public Function Update(ByRef upTable As DataTable) As Boolean + Dim Result As Boolean = True + Dim myCommandBuilder As New MySql.Data.MySqlClient.MySqlCommandBuilder(m_SqlAdapter) + + m_SqlAdapter.DeleteCommand = myCommandBuilder.GetDeleteCommand + m_SqlAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand + m_SqlAdapter.InsertCommand = myCommandBuilder.GetInsertCommand + + Try + m_SqlAdapter.Update(upTable) + Catch ex As Exception + Result = False + End Try + myCommandBuilder.Dispose() + + Return Result + End Function + + 'Public Function Query(ByVal strQuery As String, ByVal colName As String, ByRef r_DataSet As DataSet) As Boolean + ' Dim Result As Boolean = False + ' Try + ' m_SqlConn.Open() + ' Dim daAdapter As MySqlDataAdapter = New MySqlDataAdapter(strQuery, m_SqlConn) + ' daAdapter.Fill(r_DataSet, colName) + + ' Result = True + ' Catch ex As Exception + ' End Try + + ' Try + ' m_SqlConn.Close() + ' Catch ex As Exception + ' End Try + + ' Return Result + 'End Function + + Public Function ExeCommand(ByVal strExe As String) As Boolean + Dim Result As Boolean = False + Dim myCommand As MySqlCommand = Nothing + Try + m_SqlConn.Open() + myCommand = New MySqlCommand(strExe, m_SqlConn) + myCommand.ExecuteNonQuery() + Result = True + Catch ex As Exception + Dim msg = ex.Message + End Try + + Try + myCommand.Dispose() + Catch ex As Exception + End Try + Try + m_SqlConn.Close() + Catch ex As Exception + End Try + + Return Result + End Function + + + Public Function ExeCommandWithParamters(ByVal strExe As String, ByRef ParamName() As String, ByRef ParamValue() As Object) As Boolean + Dim Result As Boolean = False + Dim myCommand As MySqlCommand = Nothing + Try + m_SqlConn.Open() + myCommand = New MySqlCommand(strExe, m_SqlConn) + For i As Integer = 0 To ParamName.Length - 1 + myCommand.Parameters.AddWithValue(ParamName(i), ParamValue(i)) + Next + + myCommand.ExecuteNonQuery() + Result = True + Catch ex As Exception + End Try + + Try + myCommand.Dispose() + Catch ex As Exception + End Try + Try + m_SqlConn.Close() + Catch ex As Exception + End Try + + Return Result + End Function + + Public Function DataReader(ByVal strSelect As String, ByRef valueTable() As Object) As Boolean + Dim Result As Boolean = False + Dim myCommand As MySqlCommand = Nothing + Try + m_SqlConn.Open() + myCommand = New MySqlCommand(strSelect, m_SqlConn) + Dim rData As MySql.Data.MySqlClient.MySqlDataReader + rData = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection) + rData.Read() + + Dim objArray(rData.FieldCount - 1) As Object + For i As Integer = 0 To rData.FieldCount - 1 + objArray(i) = rData.Item(i) + Next + + valueTable = objArray + + Result = True + Catch ex As Exception + End Try + + Try + myCommand.Dispose() + Catch ex As Exception + End Try + Try + m_SqlConn.Close() + Catch ex As Exception + End Try + + Return Result + End Function + + 'Public Function Insert(ByVal strInsert As String) As Boolean + ' Return ExeCommand(strInsert) + 'End Function + + 'Public Function Update(ByVal strUpdate As String) As Boolean + ' Return ExeCommand(strUpdate) + 'End Function + + 'Public Function Delete(ByVal strDelete As String) As Boolean + ' Return ExeCommand(strDelete) + 'End Function +End Class diff --git a/WT-DMS/CMaterialIn.vb b/WT-DMS/CMaterialIn.vb new file mode 100644 index 0000000..7e1d27b --- /dev/null +++ b/WT-DMS/CMaterialIn.vb @@ -0,0 +1,161 @@ +Public Class CMaterialIn + Dim m_SQL As New CSQLInterface + + Const cst_TABLE_NAME As String = "MaterialInTable" + Dim m_COLS_NAME() As String = { + "入库单PN", + "入库日期", + "入库时间", + "入库数量", + "单价", + "总金额", + "操作员ID", + "料号PN", + "供应商ID"} + + Private Enum COLS + 入库单PN + 入库日期 + 入库时间 + 入库数量 + 单价 + 总金额 + 操作员ID + 料号PN + 供应商ID + End Enum + + '权限 + Private m_AccessRight As Integer = RIGHTS.NONE + Public Property AccessRight() As Integer + Get + Return m_AccessRight + End Get + Set(ByVal value As Integer) + m_AccessRight = value + End Set + End Property + + + Public Sub New() + End Sub + + Public Function AddItem(ByVal 入库单PN As String, _ + ByVal 入库日期 As String, _ + ByVal 入库时间 As String, _ + ByVal 入库数量 As Integer, _ + ByVal 单价 As String, _ + ByVal 总金额 As String, _ + ByVal 操作员ID As String, _ + ByVal 料号PN As String, _ + ByVal 供应商ID As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO " & cst_TABLE_NAME & "(" + '加入列名 + For i As Integer = 0 To m_COLS_NAME.Length - 1 + If i > 0 Then + strSql &= "," + End If + strSql &= "[" & m_COLS_NAME(i) & "]" + Next + strSql &= ") VALUES (" + strSql &= "'" & 入库单PN & "'" + strSql &= "'" & 入库日期 & "'" + strSql &= "'" & 入库时间 & "'" + strSql &= "'" & 入库数量 & "'" + strSql &= "'" & 单价 & "'" + strSql &= "'" & 总金额 & "'" + strSql &= "'" & 操作员ID & "'" + strSql &= "'" & 料号PN & "'" + strSql &= "'" & 供应商ID & "'" + strSql &= ")" + + If SQL_ExeCommand(strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function UpdateItem(ByVal 入库单PN As String, _ + ByVal 入库日期 As String, _ + ByVal 入库时间 As String, _ + ByVal 入库数量 As Integer, _ + ByVal 单价 As String, _ + ByVal 总金额 As String, _ + ByVal 操作员ID As String, _ + ByVal 料号PN As String, _ + ByVal 供应商ID As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "UPDATE " & cst_TABLE_NAME & " SET" + strSql &= ", " & m_COLS_NAME(COLS.入库日期) & "=" & 入库日期 + strSql &= ", " & m_COLS_NAME(COLS.入库时间) & "=" & 入库时间 + strSql &= " " & m_COLS_NAME(COLS.入库数量) & "=" & 入库数量 + strSql &= ", " & m_COLS_NAME(COLS.单价) & "=" & 单价 + strSql &= ", " & m_COLS_NAME(COLS.总金额) & "=" & 总金额 + strSql &= ", " & m_COLS_NAME(COLS.操作员ID) & "=" & 操作员ID + strSql &= ", " & m_COLS_NAME(COLS.料号PN) & "=" & 料号PN + strSql &= ", " & m_COLS_NAME(COLS.供应商ID) & "=" & 供应商ID + strSql &= " WHERE " + strSql &= m_COLS_NAME(COLS.入库单PN) & "=" & 入库单PN + + If SQL_ExeCommand(strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function DeleteItem(ByVal 入库单PN As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "DELETE FROM " & cst_TABLE_NAME & " WHERE " + strSql &= m_COLS_NAME(COLS.入库单PN) & "=" & 入库单PN + + If SQL_ExeCommand(strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryItem(ByVal 入库单PN As String, _ + ByRef 入库日期 As String, _ + ByRef 入库时间 As String, _ + ByRef 入库数量 As Integer, _ + ByRef 单价 As String, _ + ByRef 总金额 As String, _ + ByRef 操作员ID As String, _ + ByRef 料号PN As String, _ + ByRef 供应商ID As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "SELECT * FROM " & cst_TABLE_NAME & " WHERE " + strSql &= m_COLS_NAME(COLS.料号PN) & "=" & 料号PN + + Dim rTable As New System.Data.DataTable + If SQL_Query(strSql, rTable) = True Then + 入库日期 = rTable.Rows(0).Item(1) + 入库时间 = rTable.Rows(0).Item(2) + 入库数量 = rTable.Rows(0).Item(3) + 单价 = rTable.Rows(0).Item(4) + 总金额 = rTable.Rows(0).Item(5) + 操作员ID = rTable.Rows(0).Item(6) + 料号PN = rTable.Rows(0).Item(7) + 供应商ID = rTable.Rows(0).Item(8) + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function +End Class diff --git a/WT-DMS/CMaterialInOut.vb b/WT-DMS/CMaterialInOut.vb new file mode 100644 index 0000000..a46fbbc --- /dev/null +++ b/WT-DMS/CMaterialInOut.vb @@ -0,0 +1,130 @@ +Public Class CMaterialInOut + Dim m_SQL As New CSQLInterface + Public Shared cst_TABLE_NAME As String = "原料库存表" + + '=====================新增库位库存 + Public Shared m_COLS_NAME() As String = { + "序号", + "入库出库", + "料号PN", + "订单号", + "日期", + "时间", + "数量", + "操作员ID", + "仓库", + "库位", + "用途", + "库位库存"} + + Public Enum COLS + 序号 + 入库出库 + 料号PN + 订单号 + 日期 + 时间 + 数量 + 操作员ID + 仓库 + 库位 + 用途 + 库位库存 + max + End Enum + + '入库或者出库标志 + Private IsOutStore As Boolean = False + Public Property OutStore() As Boolean + Get + Return IsOutStore + End Get + Set(ByVal value As Boolean) + IsOutStore = value + End Set + End Property + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + + Public Sub New() + IsOutStore = False + End Sub + + Public Function AddItem(ByVal 入库出库 As Boolean, + ByVal 料号PN As String, + ByVal 订单号 As String, + ByVal 日期 As String, + ByVal 时间 As String, + ByVal 数量 As Integer, + ByVal 操作员ID As String, + ByVal 仓库 As String, + ByVal 库位 As String, + ByVal 用途 As String, + ByVal 库位库存 As Integer + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO `" & cst_TABLE_NAME & "` (" + '加入列名 + Dim isFirst As Boolean = True + For i As Integer = COLS.入库出库 To m_COLS_NAME.Length - 1 + If isFirst = True Then + isFirst = False + Else + strSql &= "," + End If + strSql &= "`" & m_COLS_NAME(i) & "`" + Next + strSql &= ") VALUES (" + strSql &= "'" & IIf(入库出库, 1, 0) & "'," + strSql &= "'" & 料号PN & "'," + strSql &= "'" & 订单号 & "'," + strSql &= "'" & 日期 & "'," + strSql &= "'" & 时间 & "'," + strSql &= "'" & 数量 & "'," + strSql &= "'" & 操作员ID & "'," + strSql &= "'" & 仓库 & "'," + strSql &= "'" & 库位 & "'," + strSql &= "'" & 用途 & "'," + strSql &= "'" & 库位库存 & "'" + strSql &= ")" + + If SQL_ExeCommand(COL_RIGHTS.原料库存管理, strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryInformation(ByRef Count As Integer, ByRef minIndex As Integer, ByRef maxIndex As Integer + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSQL As String = "SELECT " & + "COUNT(`" & m_COLS_NAME(COLS.序号) & "`), " & + "MIN(`" & m_COLS_NAME(COLS.序号) & "`), " & + "MAX(`" & m_COLS_NAME(COLS.序号) & "`) " & + " FROM `" & cst_TABLE_NAME & "`" + + Dim rValueTable(0) As Object + If SQL_DataReader(COL_RIGHTS.原料库存管理, strSQL, rValueTable) = True Then + Try + Count = rValueTable(0) + minIndex = rValueTable(1) + maxIndex = rValueTable(2) + Return ERROR_CODE.SUCCESS + Catch ex As Exception + + End Try + End If + + Return ERROR_CODE.ACCESS + End Function +End Class diff --git a/WT-DMS/CMaterialManage.vb b/WT-DMS/CMaterialManage.vb new file mode 100644 index 0000000..8b229a4 --- /dev/null +++ b/WT-DMS/CMaterialManage.vb @@ -0,0 +1,158 @@ +Public Class CMaterialManage + Dim m_SQL As New CSQLInterface + + Const cst_TABLE_NAME As String = "MaterialManageTable" + Dim m_COLS_NAME() As String = {"料号PN", "仓库ID", "库位ID", "数量", "物料名称", "规格描述", "单位", "单重", "供应商ID", "图片"} + Private Enum COLS + 料号PN + 仓库ID + 库位ID + 数量 + 物料名称 + 规格描述 + 单位 + 单重 + 供应商ID + 图片ID + End Enum + + '权限 + Private m_AccessRight As Integer = RIGHTS.NONE + Public Property AccessRight() As Integer + Get + Return m_AccessRight + End Get + Set(ByVal value As Integer) + m_AccessRight = value + End Set + End Property + + + Public Sub New() + End Sub + + Public Function AddItem(ByVal 料号PN As String, _ + ByVal 仓库ID As String, _ + ByVal 库位ID As String, _ + ByVal 数量 As Integer, _ + ByVal 物料名称 As String, _ + ByVal 规格描述 As String, _ + ByVal 单位 As String, _ + ByVal 单重 As String, _ + ByVal 供应商ID As String, _ + ByVal 图片ID As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO " & cst_TABLE_NAME & "(" + '加入列名 + For i As Integer = 0 To m_COLS_NAME.Length - 1 + If i > 0 Then + strSql &= "," + End If + strSql &= "[" & m_COLS_NAME(i) & "]" + Next + strSql &= ") VALUES (" + strSql &= "'" & 料号PN & "'" + strSql &= "'" & 仓库ID & "'" + strSql &= "'" & 库位ID & "'" + strSql &= "'" & 数量 & "'" + strSql &= "'" & 物料名称 & "'" + strSql &= "'" & 规格描述 & "'" + strSql &= "'" & 单位 & "'" + strSql &= "'" & 单重 & "'" + strSql &= "'" & 供应商ID & "'" + strSql &= "'" & 图片ID & "'" + strSql &= ")" + + If SQL_ExeCommand(strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function UpdateItem(ByVal 料号PN As String, _ + ByVal 仓库ID As String, _ + ByVal 库位ID As String, _ + ByVal 数量 As Integer, _ + ByVal 物料名称 As String, _ + ByVal 规格描述 As String, _ + ByVal 单位 As String, _ + ByVal 单重 As String, _ + ByVal 供应商ID As String, _ + ByVal 图片ID As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "UPDATE " & cst_TABLE_NAME & " SET" + strSql &= " " & m_COLS_NAME(COLS.仓库ID) & "=" & 仓库ID + strSql &= ", " & m_COLS_NAME(COLS.库位ID) & "=" & 库位ID + strSql &= ", " & m_COLS_NAME(COLS.数量) & "=" & 数量 + strSql &= ", " & m_COLS_NAME(COLS.物料名称) & "=" & 物料名称 + strSql &= ", " & m_COLS_NAME(COLS.规格描述) & "=" & 规格描述 + strSql &= ", " & m_COLS_NAME(COLS.单位) & "=" & 单位 + strSql &= ", " & m_COLS_NAME(COLS.单重) & "=" & 单重 + strSql &= ", " & m_COLS_NAME(COLS.供应商ID) & "=" & 供应商ID + strSql &= ", " & m_COLS_NAME(COLS.图片ID) & "=" & 图片ID + strSql &= " WHERE " + strSql &= m_COLS_NAME(COLS.料号PN) & "=" & 料号PN + + If SQL_ExeCommand(strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function DeleteItem(ByVal 料号PN As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "DELETE FROM " & cst_TABLE_NAME & " WHERE " + strSql &= m_COLS_NAME(COLS.料号PN) & "=" & 料号PN + + If SQL_ExeCommand(strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryItem(ByVal 料号PN As String, _ + ByRef 仓库ID As String, _ + ByRef 库位ID As String, _ + ByRef 数量 As Integer, _ + ByRef 物料名称 As String, _ + ByRef 规格描述 As String, _ + ByRef 单位 As String, _ + ByRef 单重 As String, _ + ByRef 供应商ID As String, _ + ByRef 图片ID As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "SELECT * FROM " & cst_TABLE_NAME & " WHERE " + strSql &= m_COLS_NAME(COLS.料号PN) & "=" & 料号PN + + Dim rTable As New System.Data.DataTable + If SQL_Query(strSql, rTable) = True Then + 仓库ID = rTable.Rows(0).Item(1) + 库位ID = rTable.Rows(0).Item(2) + 数量 = rTable.Rows(0).Item(3) + 物料名称 = rTable.Rows(0).Item(4) + 规格描述 = rTable.Rows(0).Item(5) + 单位 = rTable.Rows(0).Item(6) + 单重 = rTable.Rows(0).Item(7) + 供应商ID = rTable.Rows(0).Item(8) + 图片ID = rTable.Rows(0).Item(9) + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function +End Class diff --git a/WT-DMS/CMaterialOut.vb b/WT-DMS/CMaterialOut.vb new file mode 100644 index 0000000..fb6a357 --- /dev/null +++ b/WT-DMS/CMaterialOut.vb @@ -0,0 +1,162 @@ +Public Class CMaterialOut + Dim m_SQL As New CSQLInterface + + Const cst_TABLE_NAME As String = "MaterialOutTable" + Dim m_COLS_NAME() As String = { + "出库单PN", + "出库日期", + "出库时间", + "出库数量", + "单价", + "总金额", + "操作员ID", + "料号PN", + "供应商ID"} + + Private Enum COLS + 出库单PN + 出库日期 + 出库时间 + 出库数量 + 单价 + 总金额 + 操作员ID + 料号PN + 供应商ID + End Enum + + '权限 + Private m_AccessRight As Integer = RIGHTS.NONE + Public Property AccessRight() As Integer + Get + Return m_AccessRight + End Get + Set(ByVal value As Integer) + m_AccessRight = value + End Set + End Property + + + Public Sub New() + End Sub + + Public Function AddItem(ByVal 出库单PN As String, _ + ByVal 出库日期 As String, _ + ByVal 出库时间 As String, _ + ByVal 出库数量 As Integer, _ + ByVal 单价 As String, _ + ByVal 总金额 As String, _ + ByVal 操作员ID As String, _ + ByVal 料号PN As String, _ + ByVal 供应商ID As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO " & cst_TABLE_NAME & "(" + '加入列名 + For i As Integer = 0 To m_COLS_NAME.Length - 1 + If i > 0 Then + strSql &= "," + End If + strSql &= "[" & m_COLS_NAME(i) & "]" + Next + strSql &= ") VALUES (" + strSql &= "'" & 出库单PN & "'" + strSql &= "'" & 出库日期 & "'" + strSql &= "'" & 出库时间 & "'" + strSql &= "'" & 出库数量 & "'" + strSql &= "'" & 单价 & "'" + strSql &= "'" & 总金额 & "'" + strSql &= "'" & 操作员ID & "'" + strSql &= "'" & 料号PN & "'" + strSql &= "'" & 供应商ID & "'" + strSql &= ")" + + If SQL_ExeCommand(strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function UpdateItem(ByVal 出库单PN As String, _ + ByVal 出库日期 As String, _ + ByVal 出库时间 As String, _ + ByVal 出库数量 As Integer, _ + ByVal 单价 As String, _ + ByVal 总金额 As String, _ + ByVal 操作员ID As String, _ + ByVal 料号PN As String, _ + ByVal 供应商ID As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "UPDATE " & cst_TABLE_NAME & " SET" + strSql &= " " & m_COLS_NAME(COLS.出库日期) & "=" & 出库日期 + strSql &= ", " & m_COLS_NAME(COLS.出库时间) & "=" & 出库时间 + strSql &= ", " & m_COLS_NAME(COLS.出库数量) & "=" & 出库数量 + strSql &= ", " & m_COLS_NAME(COLS.单价) & "=" & 单价 + strSql &= ", " & m_COLS_NAME(COLS.总金额) & "=" & 总金额 + strSql &= ", " & m_COLS_NAME(COLS.操作员ID) & "=" & 操作员ID + strSql &= ", " & m_COLS_NAME(COLS.料号PN) & "=" & 料号PN + strSql &= ", " & m_COLS_NAME(COLS.供应商ID) & "=" & 供应商ID + strSql &= " WHERE " + strSql &= m_COLS_NAME(COLS.出库单PN) & "=" & 出库单PN + + If SQL_ExeCommand(strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function DeleteItem(ByVal 出库单PN As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "DELETE FROM " & cst_TABLE_NAME & " WHERE " + strSql &= m_COLS_NAME(COLS.出库单PN) & "=" & 出库单PN + + If SQL_ExeCommand(strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryItem(ByVal 出库单PN As String, _ + ByVal 出库日期 As String, _ + ByVal 出库时间 As String, _ + ByVal 出库数量 As Integer, _ + ByVal 单价 As String, _ + ByVal 总金额 As String, _ + ByVal 操作员ID As String, _ + ByVal 料号PN As String, _ + ByVal 供应商ID As String) As ERROR_CODE + If CBool(m_AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "SELECT * FROM " & cst_TABLE_NAME & " WHERE " + strSql &= m_COLS_NAME(COLS.料号PN) & "=" & 料号PN + + Dim rTable As New System.Data.DataTable + If SQL_Query(strSql, rTable) = True Then + 出库单PN = rTable.Rows(0).Item(1) + 出库日期 = rTable.Rows(0).Item(2) + 出库时间 = rTable.Rows(0).Item(3) + 出库数量 = rTable.Rows(0).Item(4) + 单价 = rTable.Rows(0).Item(5) + 总金额 = rTable.Rows(0).Item(6) + 操作员ID = rTable.Rows(0).Item(7) + 料号PN = rTable.Rows(0).Item(8) + 供应商ID = rTable.Rows(0).Item(9) + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function +End Class diff --git a/WT-DMS/CPartNumber.vb b/WT-DMS/CPartNumber.vb new file mode 100644 index 0000000..e7e5f65 --- /dev/null +++ b/WT-DMS/CPartNumber.vb @@ -0,0 +1,314 @@ +Public Class CPartNumber + Dim m_SQL As New CSQLInterface + Public Shared cst_TABLE_NAME As String = "料号表" + Public Shared m_COLS_NAME() As String = { + "序号", + "料号PN", + "物料名称", + "规格描述", + "单位", + "单重", + "图片", + "供应商ID" + } + Public Enum COLS + 序号 + 料号PN + 物料名称 + 规格描述 + 单位 + 单重 + 图片 + 供应商ID + max + End Enum + + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + + Public Function AddItem(ByVal 料号PN As String, + ByVal 物料名称 As String, + ByVal 规格描述 As String, + ByVal 单位 As String, + ByVal 单重 As Double, + ByVal 供应商ID As String + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO `" & cst_TABLE_NAME & "` (" + '加入列名 + Dim isFirst As Boolean = True + For i As Integer = COLS.料号PN To COLS.max - 1 + If i <> COLS.图片 Then + If isFirst = True Then + isFirst = False + Else + strSql &= "," + End If + + strSql &= "`" & m_COLS_NAME(i) & "`" + End If + Next + strSql &= ") VALUES (" + strSql &= "'" & 料号PN & "'," + strSql &= "'" & 物料名称 & "'," + strSql &= "'" & 规格描述 & "'," + strSql &= "'" & 单位 & "'," + strSql &= "'" & 单重 & "'," + strSql &= "'" & 供应商ID & "'" + strSql &= ")" + + If SQL_ExeCommand(COL_RIGHTS.料号管理, strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function AddItem(ByVal 料号PN As String, + ByVal 物料名称 As String, + ByVal 规格描述 As String, + ByVal 单位 As String, + ByVal 单重 As Double, + ByVal 图片() As Byte, + ByVal 供应商ID As String + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO `" & cst_TABLE_NAME & "` (" + '加入列名 + Dim isFirst As Boolean = True + For i As Integer = COLS.料号PN To COLS.max - 1 + If isFirst = True Then + isFirst = False + Else + strSql &= "," + End If + strSql &= "`" & m_COLS_NAME(i) & "`" + Next + strSql &= ") VALUES (" + strSql &= "'" & 料号PN & "'," + strSql &= "'" & 物料名称 & "'," + strSql &= "'" & 规格描述 & "'," + strSql &= "'" & 单位 & "'," + strSql &= "'" & 单重 & "'," + strSql &= "@pic," + strSql &= "'" & 供应商ID & "'" + strSql &= ")" + + Dim ParamName() As String = {"@pic"} + Dim ParamValue() As Object = {图片} + + If SQL_ExeCommandWithParamters(COL_RIGHTS.料号管理, strSql, ParamName, ParamValue) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + 'UPDATE `w&t database`.`料号表` SET `物料名称` = '电阻,001', + '`规格描述` = '10k,0603,1' WHERE `料号表`.`序号` =13; + Public Function UpdateItem(ByVal 料号PN As String, + ByVal 物料名称 As String, + ByVal 规格描述 As String, + ByVal 单位 As String, + ByVal 单重 As Double, + ByVal 图片() As Byte, + ByVal 供应商ID As String + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "UPDATE `" & cst_TABLE_NAME & "` SET " + '加入列名 + strSql &= "`" & m_COLS_NAME(COLS.物料名称) & "` = '" & 物料名称 & "', " + strSql &= "`" & m_COLS_NAME(COLS.规格描述) & "` = '" & 规格描述 & "', " + strSql &= "`" & m_COLS_NAME(COLS.单位) & "` = '" & 单位 & "', " + strSql &= "`" & m_COLS_NAME(COLS.单重) & "` = '" & 单重 & "', " + If Not 图片 Is Nothing Then + strSql &= "`" & m_COLS_NAME(COLS.图片) & "` = @pic, " + End If + strSql &= "`" & m_COLS_NAME(COLS.供应商ID) & "` = '" & 供应商ID & "' " + strSql &= " WHERE " & "`" & m_COLS_NAME(COLS.料号PN) & "` = '" & 料号PN & "' " + + If Not 图片 Is Nothing Then + Dim ParamName() As String = {"@pic"} + Dim ParamValue() As Object = {图片} + + If SQL_ExeCommandWithParamters(COL_RIGHTS.料号管理, strSql, ParamName, ParamValue) = True Then + Return ERROR_CODE.SUCCESS + End If + Else + If SQL_ExeCommand(COL_RIGHTS.料号管理, strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryItem(ByVal 料号PN As String, + ByRef 物料名称 As String, + ByRef 规格描述 As String, + ByRef 单位 As String, + ByRef 单重 As Double, + ByRef 图片() As Byte, + ByRef 供应商ID As String + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSQL As String = "SELECT * FROM " & cst_TABLE_NAME & " WHERE " + strSQL &= m_COLS_NAME(COLS.料号PN) & " = '" & 料号PN & "'" + + Dim rValueTable(0) As Object + If SQL_DataReader(COL_RIGHTS.料号管理, strSQL, rValueTable) = True Then + 物料名称 = rValueTable(COLS.物料名称) + 规格描述 = rValueTable(COLS.规格描述) + 单位 = rValueTable(COLS.单位) + 单重 = rValueTable(COLS.单重) + '图片 = rValueTable(COLS.图片) + 供应商ID = rValueTable(COLS.供应商ID) + + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryItem(ByVal 料号PN As String, + ByRef 物料名称 As String, + ByRef 规格描述 As String, + ByRef 单位 As String, + ByRef 单重 As Double, + ByRef 供应商ID As String + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSQL As String = "SELECT * FROM " & cst_TABLE_NAME & " WHERE " + strSQL &= m_COLS_NAME(COLS.料号PN) & " = '" & 料号PN & "'" + + Dim rValueTable(0) As Object + If SQL_DataReader(COL_RIGHTS.料号管理, strSQL, rValueTable) = True Then + 物料名称 = rValueTable(COLS.物料名称) + 规格描述 = rValueTable(COLS.规格描述) + 单位 = rValueTable(COLS.单位) + 单重 = rValueTable(COLS.单重) + 供应商ID = rValueTable(COLS.供应商ID) + + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryItemIndex(ByVal 料号PN As String,ByRef 序号 As Integer) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSQL As String = "SELECT `" & m_COLS_NAME(COLS.序号) & "` " & + " FROM " & cst_TABLE_NAME & " WHERE " + strSQL &= m_COLS_NAME(COLS.料号PN) & " = '" & 料号PN & "'" + + Dim rValueTable(0) As Object + If SQL_DataReader(COL_RIGHTS.料号管理, strSQL, rValueTable) = True Then + Try + 序号 = rValueTable(0) + Return ERROR_CODE.SUCCESS + Catch ex As Exception + + End Try + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryInformation(ByRef Count As Integer, ByRef minIndex As Integer, ByRef maxIndex As Integer + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSQL As String = "SELECT " & + "COUNT(`" & m_COLS_NAME(COLS.序号) & "`), " & + "MIN(`" & m_COLS_NAME(COLS.序号) & "`), " & + "MAX(`" & m_COLS_NAME(COLS.序号) & "`) " & + " FROM `" & cst_TABLE_NAME & "`" + + Dim rValueTable(0) As Object + If SQL_DataReader(COL_RIGHTS.料号管理, strSQL, rValueTable) = True Then + Try + Count = rValueTable(0) + minIndex = rValueTable(1) + maxIndex = rValueTable(2) + Return ERROR_CODE.SUCCESS + Catch ex As Exception + + End Try + End If + + Return ERROR_CODE.ACCESS + End Function + + + Public Function CheckPartNumber(ByVal 料号PN As String, ByRef isExist As Boolean) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "SELECT `" & m_COLS_NAME(COLS.料号PN) & "` FROM `" & cst_TABLE_NAME & "` WHERE " + strSql &= "`" & m_COLS_NAME(COLS.料号PN) & "` COLLATE gbk_chinese_ci ='" & 料号PN & "'" + + Dim rTable As New System.Data.DataTable + If SQL_Query(COL_RIGHTS.料号管理, strSql, rTable) = True Then + isExist = False + + If rTable.Rows.Count > 0 Then + 'If rTable.Rows(0).Item(0) = 料号PN Then + isExist = True + 'End If + End If + + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + '================================================================================================= + '获取当前库位库存 + Public Function GetStockSum(ByVal 仓库 As String, ByVal 库位 As String, ByRef isExist As Boolean) As Integer + + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "SELECT `库位库存` FROM `原料库存表` WHERE " + strSql &= "`仓库` COLLATE gbk_chinese_ci ='" & 仓库 & "' AND `库位` COLLATE gbk_chinese_ci ='" & 库位 & "'" + + Dim rTable As New System.Data.DataTable + If SQL_Query(COL_RIGHTS.原料库存管理, strSql, rTable) = True Then + isExist = False + + If rTable.Rows.Count > 0 Then + isExist = True + Return rTable.Rows(rTable.Rows.Count - 1).Item(0).ToString() + End If + End If + Return 0 + End Function + '================================================================================================= +End Class diff --git a/WT-DMS/CProductsManage.vb b/WT-DMS/CProductsManage.vb new file mode 100644 index 0000000..c1ed718 --- /dev/null +++ b/WT-DMS/CProductsManage.vb @@ -0,0 +1,100 @@ +Public Class CProductsManage + + Dim m_SQL As New CSQLInterface + Private cst_TABLE_NAME As String = "成品库存表" + + Public Shared m_COLS_NAME() As String = { + "序号", + "入库出库", + "料号PN", + "订单号", + "日期", + "时间", + "数量", + "操作员ID", + "仓库", + "库位", + "用途"} + + Public Enum COLS + 序号 + 入库出库 + 料号PN + 订单号 + 日期 + 时间 + 数量 + 操作员ID + 仓库 + 库位 + 用途 + max + End Enum + + '入库或者出库标志 + Private IsOutStore As Boolean = False + Public Property OutStore() As Boolean + Get + Return IsOutStore + End Get + Set(ByVal value As Boolean) + IsOutStore = value + End Set + End Property + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + + Public Sub New() + IsOutStore = False + End Sub + + Public Function AddItem(ByVal 入库出库 As Boolean, + ByVal 料号PN As String, + ByVal 订单号 As String, + ByVal 日期 As String, + ByVal 时间 As String, + ByVal 数量 As Integer, + ByVal 操作员ID As String, + ByVal 仓库 As String, + ByVal 库位 As String, + ByVal 用途 As String + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO `" & cst_TABLE_NAME & "` (" + '加入列名 + Dim isFirst As Boolean = True + For i As Integer = COLS.入库出库 To m_COLS_NAME.Length - 1 + If isFirst = True Then + isFirst = False + Else + strSql &= "," + End If + strSql &= "`" & m_COLS_NAME(i) & "`" + Next + strSql &= ") VALUES (" + strSql &= "'" & IIf(入库出库, 1, 0) & "'," + strSql &= "'" & 料号PN & "'," + strSql &= "'" & 订单号 & "'," + strSql &= "'" & 日期 & "'," + strSql &= "'" & 时间 & "'," + strSql &= "'" & 数量 & "'," + strSql &= "'" & 操作员ID & "'," + strSql &= "'" & 仓库 & "'," + strSql &= "'" & 库位 & "'," + strSql &= "'" & 用途 & "'" + strSql &= ")" + + If SQL_ExeCommand(COL_RIGHTS.成品库存管理, strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + +End Class diff --git a/WT-DMS/CSQLInterface.vb b/WT-DMS/CSQLInterface.vb new file mode 100644 index 0000000..b89d67a --- /dev/null +++ b/WT-DMS/CSQLInterface.vb @@ -0,0 +1,70 @@ +Imports System.Data.SqlClient + +Public Class CSQLInterface + Dim m_SqlConn As SqlConnection = Nothing + Dim m_DTable As New DataTable + Dim m_BaseName As String = "" + Public Function ConnectionSetting(ByVal strHostIp As String, ByVal DataBaseName As String, ByVal user As String, ByVal password As String) As Boolean + If m_SqlConn Is Nothing Then + m_SqlConn = New SqlConnection + Else + m_SqlConn.Close() + End If + + m_SqlConn.ConnectionString = "server=" & strHostIp & ";database=" & DataBaseName & ";uid=" & user & ";pwd=" & password + + m_BaseName = DataBaseName + Return (True) + End Function + + Public Function Query(ByVal strQuery As String, ByRef r_Table As DataTable) As Boolean + Dim Result As Boolean = False + Try + m_SqlConn.Open() + Dim daAdapter As SqlDataAdapter = New SqlDataAdapter(strQuery, m_SqlConn) + daAdapter.Fill(r_Table) + + Result = True + Catch ex As Exception + End Try + + Try + m_SqlConn.Close() + Catch ex As Exception + End Try + + Return Result + End Function + + Public Function ExeCommand(ByVal strExe As String) As Boolean + Dim Result As Boolean = False + + Try + m_SqlConn.Open() + Dim myCommand As SqlCommand = New SqlCommand(strExe, m_SqlConn) + If myCommand.ExecuteNonQuery() > 0 Then + Result = True + End If + Catch ex As Exception + End Try + + Try + m_SqlConn.Close() + Catch ex As Exception + End Try + + Return Result + End Function + + 'Public Function Insert(ByVal strInsert As String) As Boolean + ' Return ExeCommand(strInsert) + 'End Function + + 'Public Function Update(ByVal strUpdate As String) As Boolean + ' Return ExeCommand(strUpdate) + 'End Function + + 'Public Function Delete(ByVal strDelete As String) As Boolean + ' Return ExeCommand(strDelete) + 'End Function +End Class diff --git a/WT-DMS/CStore.vb b/WT-DMS/CStore.vb new file mode 100644 index 0000000..3060ae2 --- /dev/null +++ b/WT-DMS/CStore.vb @@ -0,0 +1,68 @@ +Public Class CStore + Dim m_SQL As New CSQLInterface + Private cst_TABLE_NAME As String = "仓库表" + + Public Shared m_COLS_NAME() As String = { + "仓库序号", + "仓库名称", + "仓库地点", + "仓库库位表" + } + + Public Enum COLS + 仓库序号 + 仓库名称 + 仓库地点 + 仓库库位表 + max + End Enum + + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + Public Function AddItem(ByVal 仓库名称 As String, + ByVal 仓库地点 As String + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO `" & cst_TABLE_NAME & "` (" + '加入列名 + Dim isFirst As Boolean = True + For i As Integer = COLS.仓库名称 To COLS.max - 1 + If isFirst = True Then + isFirst = False + Else + strSql &= "," + End If + strSql &= "`" & m_COLS_NAME(i) & "`" + Next + strSql &= ") VALUES (" + strSql &= "'" & 仓库名称 & "'," + strSql &= "'" & 仓库地点 & "'" + strSql &= ")" + + If SQL_ExeCommand(COL_RIGHTS.仓库管理, strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryAll(ByRef rTable As Data.DataTable) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSQL As String = "SELECT * FROM " & cst_TABLE_NAME + + If SQL_Query(COL_RIGHTS.仓库管理, strSQL, rTable) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function +End Class diff --git a/WT-DMS/CStoreLocation.vb b/WT-DMS/CStoreLocation.vb new file mode 100644 index 0000000..57629bd --- /dev/null +++ b/WT-DMS/CStoreLocation.vb @@ -0,0 +1,66 @@ +Public Class CStoreLocation + Dim m_SQL As New CSQLInterface + Public TABLE_NAME As String = "" + + Public Shared m_COLS_NAME() As String = { + "序号", + "库位" + } + + Public Enum COLS + 序号 + 库位 + max + End Enum + + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + Public Function AddItem(ByVal 库位 As String + ) As ERROR_CODE + If TABLE_NAME.Length = 0 Then Return ERROR_CODE.NONE + + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO `" & TABLE_NAME & "` (" + '加入列名 + Dim isFirst As Boolean = True + For i As Integer = COLS.库位 To COLS.max - 1 + If isFirst = True Then + isFirst = False + Else + strSql &= "," + End If + strSql &= "`" & m_COLS_NAME(i) & "`" + Next + strSql &= ") VALUES (" + strSql &= "'" & 库位 & "'" + strSql &= ")" + + If SQL_ExeCommand(COL_RIGHTS.库位管理, strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryAll(ByRef rTable As Data.DataTable) As ERROR_CODE + If TABLE_NAME.Length = 0 Then Return ERROR_CODE.NONE + + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSQL As String = "SELECT * FROM " & TABLE_NAME + + If SQL_Query(COL_RIGHTS.库位管理, strSQL, rTable) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function +End Class diff --git a/WT-DMS/CSupplier.vb b/WT-DMS/CSupplier.vb new file mode 100644 index 0000000..2c7fcfd --- /dev/null +++ b/WT-DMS/CSupplier.vb @@ -0,0 +1,185 @@ +Public Class CSupplier + Dim m_SQL As New CSQLInterface + Public Shared cst_TABLE_NAME As String = "供应商信息表" + + Public Shared m_COLS_NAME() As String = { + "序号", + "供应商ID", + "中文名称", + "英文名称", + "供应商工厂全称", + "供应商网址", + "供应商地址", + "公司资本类型", + "公司主营产品", + "公司现有人数", + "公司电话1", + "公司电话2", + "公司电话3", + "公司电话4", + "公司传真", + "主要业务联系人", + "主要业务联系人职务", + "主要业务联系人公司工作年限", + "主要业务联系人联系电话", + "主要业务联系人分机", + "主要业务联系人手机", + "主要业务联系人邮箱", + "主要品质负责人", + "主要品质负责人职务", + "主要品质负责人公司工作年限", + "主要品质负责人联系电话", + "主要品质负责人分机", + "主要品质负责人手机", + "主要品质负责人邮箱", + "对公账号", + "对公账号开户行", + "对公账号户名", + "对公账号帐号", + "对私帐号", + "对私帐号开户行", + "对私帐号户名", + "对私帐号帐号", + "年审情况" + } + + Public Enum COLS + 序号 + 供应商ID + 中文名称 + 英文名称 + 供应商工厂全称 + 供应商网址 + 供应商地址 + 公司资本类型 + 公司主营产品 + 公司现有人数 + 公司电话1 + 公司电话2 + 公司电话3 + 公司电话4 + 公司传真 + 主要业务联系人 + 主要业务联系人职务 + 主要业务联系人公司工作年限 + 主要业务联系人联系电话 + 主要业务联系人分机 + 主要业务联系人手机 + 主要业务联系人邮箱 + 主要品质负责人 + 主要品质负责人职务 + 主要品质负责人公司工作年限 + 主要品质负责人联系电话 + 主要品质负责人分机 + 主要品质负责人手机 + 主要品质负责人邮箱 + 对公账号 + 对公账号开户行 + 对公账号户名 + 对公账号帐号 + 对私帐号 + 对私帐号开户行 + 对私帐号户名 + 对私帐号帐号 + 年审情况 + max + End Enum + + '权限 + Public Shared AccessRight As Integer = RIGHTS.NONE + + Public Function AddItem(ByRef SectionName() As String, + ByRef Value() As String + ) As ERROR_CODE + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "INSERT INTO `" & cst_TABLE_NAME & "` (" + '加入列名 取消第一个序号 序号自增 + Dim isFirst As Boolean = True + For i As Integer = 1 To SectionName.Length - 1 + If isFirst = True Then + isFirst = False + Else + strSql &= "," + End If + strSql &= "`" & SectionName(i) & "`" + Next + strSql &= ") VALUES (" + + isFirst = True + For i As Integer = 1 To SectionName.Length - 1 + + If isFirst = True Then + isFirst = False + Else + strSql &= "," + End If + strSql &= "'" & Value(i) & "'" + Next + strSql &= ")" + + If SQL_ExeCommand(COL_RIGHTS.供应商管理, strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function QueryAll_IDAndName(ByRef rTable As Data.DataTable) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSQL As String = "SELECT 供应商ID,中文名称 FROM " & cst_TABLE_NAME + + If SQL_Query(COL_RIGHTS.供应商管理, strSQL, rTable) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function CheckSupplierID(ByVal 供应商ID As String, ByRef isExist As Boolean) As ERROR_CODE + If CBool(AccessRight And RIGHTS.READ) = False Then + Return ERROR_CODE.NORIGHT + End If + + Dim strSql As String = "SELECT `" & m_COLS_NAME(COLS.供应商ID) & "` FROM `" & cst_TABLE_NAME & "` WHERE " + strSql &= "`" & m_COLS_NAME(COLS.供应商ID) & "`='" & 供应商ID & "'" + + Dim rTable As New System.Data.DataTable + If SQL_Query(COL_RIGHTS.供应商管理, strSql, rTable) = True Then + isExist = False + + If rTable.Rows.Count > 0 Then + 'If rTable.Rows(0).Item(0) = 料号PN Then + isExist = True + 'End If + End If + + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + + Public Function DeleteItem(ByRef 供应商ID As String) As ERROR_CODE + If CBool(AccessRight And RIGHTS.WRITE) = False Then + Return ERROR_CODE.NORIGHT + End If + + '"INSERT INTO [dbo].[TABLE1] ([11],[22],[33],[44],[55]) VALUES ('11','2','3','4','5')" + Dim strSql As String = "DELETE FROM `" & cst_TABLE_NAME & "` WHERE " + strSql &= "`" & m_COLS_NAME(COLS.供应商ID) & "`= '" & 供应商ID & "'" + + If SQL_ExeCommand(COL_RIGHTS.供应商管理, strSql) = True Then + Return ERROR_CODE.SUCCESS + End If + + Return ERROR_CODE.ACCESS + End Function + +End Class diff --git a/WT-DMS/Form1.Designer.vb b/WT-DMS/Form1.Designer.vb new file mode 100644 index 0000000..6239eb6 --- /dev/null +++ b/WT-DMS/Form1.Designer.vb @@ -0,0 +1,317 @@ + _ +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.系统ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.注销ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.退出ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.料号管理ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.录入ToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() + Me.查询ToolStripMenuItem3 = New System.Windows.Forms.ToolStripMenuItem() + Me.原料库存管理ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.录入ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.删除ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.查询ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.出入库记录ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.成品库存管理ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.录入ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.删除ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.查询ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.BOM管理ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BOMToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.合并备料查询ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.供应商管理ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.财务管理ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.录入ToolStripMenuItem3 = New System.Windows.Forms.ToolStripMenuItem() + Me.查询ToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.tsmi_录入_销售部 = New System.Windows.Forms.ToolStripMenuItem() + Me.tsmi_查询_销售部 = New System.Windows.Forms.ToolStripMenuItem() + Me.用户管理ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.系统记录ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.关于ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.备份管理ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.MenuStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.系统ToolStripMenuItem, Me.料号管理ToolStripMenuItem, Me.原料库存管理ToolStripMenuItem, Me.成品库存管理ToolStripMenuItem, Me.BOM管理ToolStripMenuItem, Me.供应商管理ToolStripMenuItem, Me.财务管理ToolStripMenuItem, Me.用户管理ToolStripMenuItem, Me.备份管理ToolStripMenuItem1, Me.系统记录ToolStripMenuItem, Me.关于ToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(956, 25) + Me.MenuStrip1.TabIndex = 1 + Me.MenuStrip1.Text = "MenuStrip1" + ' + '系统ToolStripMenuItem + ' + Me.系统ToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.注销ToolStripMenuItem, Me.退出ToolStripMenuItem}) + Me.系统ToolStripMenuItem.Name = "系统ToolStripMenuItem" + Me.系统ToolStripMenuItem.Size = New System.Drawing.Size(59, 21) + Me.系统ToolStripMenuItem.Text = "系统(&S)" + ' + '注销ToolStripMenuItem + ' + Me.注销ToolStripMenuItem.Name = "注销ToolStripMenuItem" + Me.注销ToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.注销ToolStripMenuItem.Text = "注销(&L)" + ' + '退出ToolStripMenuItem + ' + Me.退出ToolStripMenuItem.Name = "退出ToolStripMenuItem" + Me.退出ToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.退出ToolStripMenuItem.Text = "退出(&X)" + ' + '料号管理ToolStripMenuItem + ' + Me.料号管理ToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.录入ToolStripMenuItem2, Me.查询ToolStripMenuItem3}) + Me.料号管理ToolStripMenuItem.Name = "料号管理ToolStripMenuItem" + Me.料号管理ToolStripMenuItem.Size = New System.Drawing.Size(86, 21) + Me.料号管理ToolStripMenuItem.Text = "料号管理(&N)" + ' + '录入ToolStripMenuItem2 + ' + Me.录入ToolStripMenuItem2.Name = "录入ToolStripMenuItem2" + Me.录入ToolStripMenuItem2.Size = New System.Drawing.Size(152, 22) + Me.录入ToolStripMenuItem2.Text = "录入" + ' + '查询ToolStripMenuItem3 + ' + Me.查询ToolStripMenuItem3.Name = "查询ToolStripMenuItem3" + Me.查询ToolStripMenuItem3.Size = New System.Drawing.Size(152, 22) + Me.查询ToolStripMenuItem3.Text = "查询" + ' + '原料库存管理ToolStripMenuItem + ' + Me.原料库存管理ToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.录入ToolStripMenuItem, Me.删除ToolStripMenuItem, Me.查询ToolStripMenuItem, Me.出入库记录ToolStripMenuItem}) + Me.原料库存管理ToolStripMenuItem.Name = "原料库存管理ToolStripMenuItem" + Me.原料库存管理ToolStripMenuItem.Size = New System.Drawing.Size(112, 21) + Me.原料库存管理ToolStripMenuItem.Text = "原料库存管理(&M)" + ' + '录入ToolStripMenuItem + ' + Me.录入ToolStripMenuItem.Name = "录入ToolStripMenuItem" + Me.录入ToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.录入ToolStripMenuItem.Text = "入库" + ' + '删除ToolStripMenuItem + ' + Me.删除ToolStripMenuItem.Name = "删除ToolStripMenuItem" + Me.删除ToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.删除ToolStripMenuItem.Text = "出库" + ' + '查询ToolStripMenuItem + ' + Me.查询ToolStripMenuItem.Name = "查询ToolStripMenuItem" + Me.查询ToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.查询ToolStripMenuItem.Text = "查询" + ' + '出入库记录ToolStripMenuItem + ' + Me.出入库记录ToolStripMenuItem.Name = "出入库记录ToolStripMenuItem" + Me.出入库记录ToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.出入库记录ToolStripMenuItem.Text = "出/入库记录" + ' + '成品库存管理ToolStripMenuItem + ' + Me.成品库存管理ToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.录入ToolStripMenuItem1, Me.删除ToolStripMenuItem1, Me.查询ToolStripMenuItem1}) + Me.成品库存管理ToolStripMenuItem.Enabled = False + Me.成品库存管理ToolStripMenuItem.Name = "成品库存管理ToolStripMenuItem" + Me.成品库存管理ToolStripMenuItem.Size = New System.Drawing.Size(107, 21) + Me.成品库存管理ToolStripMenuItem.Text = "成品库存管理(&P)" + ' + '录入ToolStripMenuItem1 + ' + Me.录入ToolStripMenuItem1.Name = "录入ToolStripMenuItem1" + Me.录入ToolStripMenuItem1.Size = New System.Drawing.Size(152, 22) + Me.录入ToolStripMenuItem1.Text = "入库" + ' + '删除ToolStripMenuItem1 + ' + Me.删除ToolStripMenuItem1.Name = "删除ToolStripMenuItem1" + Me.删除ToolStripMenuItem1.Size = New System.Drawing.Size(152, 22) + Me.删除ToolStripMenuItem1.Text = "出库" + ' + '查询ToolStripMenuItem1 + ' + Me.查询ToolStripMenuItem1.Name = "查询ToolStripMenuItem1" + Me.查询ToolStripMenuItem1.Size = New System.Drawing.Size(152, 22) + Me.查询ToolStripMenuItem1.Text = "查询" + ' + 'BOM管理ToolStripMenuItem + ' + Me.BOM管理ToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BOMToolStripMenuItem, Me.合并备料查询ToolStripMenuItem}) + Me.BOM管理ToolStripMenuItem.Name = "BOM管理ToolStripMenuItem" + Me.BOM管理ToolStripMenuItem.Size = New System.Drawing.Size(90, 21) + Me.BOM管理ToolStripMenuItem.Text = "BOM管理(&B)" + ' + 'BOMToolStripMenuItem + ' + Me.BOMToolStripMenuItem.Name = "BOMToolStripMenuItem" + Me.BOMToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.BOMToolStripMenuItem.Text = "BOM管理" + ' + '合并备料查询ToolStripMenuItem + ' + Me.合并备料查询ToolStripMenuItem.Name = "合并备料查询ToolStripMenuItem" + Me.合并备料查询ToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.合并备料查询ToolStripMenuItem.Text = "合并备料查询" + ' + '供应商管理ToolStripMenuItem + ' + Me.供应商管理ToolStripMenuItem.Name = "供应商管理ToolStripMenuItem" + Me.供应商管理ToolStripMenuItem.Size = New System.Drawing.Size(97, 21) + Me.供应商管理ToolStripMenuItem.Text = "供应商管理(&G)" + ' + '财务管理ToolStripMenuItem + ' + Me.财务管理ToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.录入ToolStripMenuItem3, Me.查询ToolStripMenuItem2, Me.ToolStripSeparator1, Me.tsmi_录入_销售部, Me.tsmi_查询_销售部}) + Me.财务管理ToolStripMenuItem.Name = "财务管理ToolStripMenuItem" + Me.财务管理ToolStripMenuItem.Size = New System.Drawing.Size(82, 21) + Me.财务管理ToolStripMenuItem.Text = "财务管理(&F)" + ' + '录入ToolStripMenuItem3 + ' + Me.录入ToolStripMenuItem3.Name = "录入ToolStripMenuItem3" + Me.录入ToolStripMenuItem3.Size = New System.Drawing.Size(160, 22) + Me.录入ToolStripMenuItem3.Text = "录入(开发部)" + ' + '查询ToolStripMenuItem2 + ' + Me.查询ToolStripMenuItem2.Name = "查询ToolStripMenuItem2" + Me.查询ToolStripMenuItem2.Size = New System.Drawing.Size(160, 22) + Me.查询ToolStripMenuItem2.Text = "查询(开发部)" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(157, 6) + ' + 'tsmi_录入_销售部 + ' + Me.tsmi_录入_销售部.Name = "tsmi_录入_销售部" + Me.tsmi_录入_销售部.Size = New System.Drawing.Size(160, 22) + Me.tsmi_录入_销售部.Text = "录入(销售部)" + ' + 'tsmi_查询_销售部 + ' + Me.tsmi_查询_销售部.Name = "tsmi_查询_销售部" + Me.tsmi_查询_销售部.Size = New System.Drawing.Size(160, 22) + Me.tsmi_查询_销售部.Text = "查询(销售部)" + ' + '用户管理ToolStripMenuItem + ' + Me.用户管理ToolStripMenuItem.Name = "用户管理ToolStripMenuItem" + Me.用户管理ToolStripMenuItem.Size = New System.Drawing.Size(85, 21) + Me.用户管理ToolStripMenuItem.Text = "用户管理(&U)" + ' + '系统记录ToolStripMenuItem + ' + Me.系统记录ToolStripMenuItem.Name = "系统记录ToolStripMenuItem" + Me.系统记录ToolStripMenuItem.Size = New System.Drawing.Size(82, 21) + Me.系统记录ToolStripMenuItem.Text = "系统记录(&L)" + ' + '关于ToolStripMenuItem + ' + Me.关于ToolStripMenuItem.Name = "关于ToolStripMenuItem" + Me.关于ToolStripMenuItem.Size = New System.Drawing.Size(61, 21) + Me.关于ToolStripMenuItem.Text = "关于(&H)" + ' + 'StatusStrip1 + ' + Me.StatusStrip1.Location = New System.Drawing.Point(0, 493) + Me.StatusStrip1.Name = "StatusStrip1" + Me.StatusStrip1.Size = New System.Drawing.Size(956, 22) + Me.StatusStrip1.TabIndex = 2 + Me.StatusStrip1.Text = "StatusStrip1" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Location = New System.Drawing.Point(0, 25) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(956, 25) + Me.ToolStrip1.TabIndex = 3 + Me.ToolStrip1.Text = "ToolStrip1" + ' + '备份管理ToolStripMenuItem1 + ' + Me.备份管理ToolStripMenuItem1.Name = "备份管理ToolStripMenuItem1" + Me.备份管理ToolStripMenuItem1.Size = New System.Drawing.Size(68, 21) + Me.备份管理ToolStripMenuItem1.Text = "备份管理" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(956, 515) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.StatusStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.IsMdiContainer = True + Me.MainMenuStrip = Me.MenuStrip1 + Me.Name = "Form1" + Me.Text = "W&T Data Manage System" + Me.WindowState = System.Windows.Forms.FormWindowState.Maximized + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip + Friend WithEvents 系统ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 注销ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 退出ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 料号管理ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 原料库存管理ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 成品库存管理ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BOM管理ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 供应商管理ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 用户管理ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 系统记录ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents 关于ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 录入ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 删除ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 查询ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 录入ToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 删除ToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 查询ToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 录入ToolStripMenuItem2 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 查询ToolStripMenuItem3 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 出入库记录ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 财务管理ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 录入ToolStripMenuItem3 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 查询ToolStripMenuItem2 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents tsmi_录入_销售部 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents tsmi_查询_销售部 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BOMToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 合并备料查询ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents 备份管理ToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem + +End Class diff --git a/WT-DMS/Form1.resx b/WT-DMS/Form1.resx new file mode 100644 index 0000000..268a900 --- /dev/null +++ b/WT-DMS/Form1.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 130, 17 + + + 256, 17 + + + 47 + + \ No newline at end of file diff --git a/WT-DMS/Form1.vb b/WT-DMS/Form1.vb new file mode 100644 index 0000000..6b1894a --- /dev/null +++ b/WT-DMS/Form1.vb @@ -0,0 +1,356 @@ +Public Class Form1 + Public QuitReson As QUIT_RESON = QUIT_RESON.close + + Public Enum FORM_TYPE + none + 料号管理 + 料号查询 + 物料入库 + 物料出库 + 物料查询 + 物料入出库记录 + BOM管理 + 供应商管理 + 用户管理 + 系统记录 + 财务明细录入_开发 + 财务明细查询_开发 + 财务明细录入_销售 + 财务明细查询_销售 + 合并用料查询 + 备份管理 + max + End Enum + + Dim g_Form_Track(FORM_TYPE.max - 1) As Form + + + Dim m_AccountManage As New CAccountManage + + Dim m_LastError As String = "" + + Private Function GetLastError() As String + Return m_LastError + End Function + + 'Private Function LoginCheck() As Boolean + ' Dim pLoginForm As New LoginForm1 + + ' pLoginForm.ShowDialog() + ' Return pLoginForm.LoginResult + 'End Function + + '根据权限设置相应菜单的禁用状态 + Private Sub SetAccessState() + '开启最低权限 + Current_Rights(COL_RIGHTS.仓库管理) = Current_Rights(COL_RIGHTS.仓库管理) Or RIGHTS.READ + Current_Rights(COL_RIGHTS.库位管理) = Current_Rights(COL_RIGHTS.库位管理) Or RIGHTS.READ + + + '设置相应权限 + CAccountManage.AccessRight = Current_Rights(COL_RIGHTS.用户管理) + CBOM.AccessRight = Current_Rights(COL_RIGHTS.BOM管理) + 'CCompanyManage.AccessRight = Current_Rights(COL_RIGHTS. + 'CDepartmentManage.AccessRight = Current_Rights( + CLogManage.AccessRight = Current_Rights(COL_RIGHTS.系统记录) + CMaterialInOut.AccessRight = Current_Rights(COL_RIGHTS.原料库存管理) + CPartNumber.AccessRight = Current_Rights(COL_RIGHTS.料号管理) + CProductsManage.AccessRight = Current_Rights(COL_RIGHTS.成品库存管理) + CStore.AccessRight = Current_Rights(COL_RIGHTS.仓库管理) + CStoreLocation.AccessRight = Current_Rights(COL_RIGHTS.库位管理) + CSupplier.AccessRight = Current_Rights(COL_RIGHTS.供应商管理) + + 料号管理ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.料号管理)) + 查询ToolStripMenuItem3.Enabled = CBool(Current_Rights(COL_RIGHTS.料号管理) And RIGHTS.READ) + 录入ToolStripMenuItem2.Enabled = CBool(Current_Rights(COL_RIGHTS.料号管理) And RIGHTS.WRITE) + + 原料库存管理ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.原料库存管理)) And 料号管理ToolStripMenuItem.Enabled + 录入ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.原料库存管理) And RIGHTS.WRITE) And 查询ToolStripMenuItem3.Enabled + 删除ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.原料库存管理) And RIGHTS.WRITE) And 查询ToolStripMenuItem3.Enabled + 查询ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.原料库存管理) And RIGHTS.READ) And 查询ToolStripMenuItem3.Enabled + + '成品库存管理ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.成品库存管理)) + '录入ToolStripMenuItem1.Enabled = CBool(Current_Rights(COL_RIGHTS.成品库存管理) And RIGHTS.WRITE) + '删除ToolStripMenuItem1.Enabled = CBool(Current_Rights(COL_RIGHTS.成品库存管理) And RIGHTS.WRITE) + '查询ToolStripMenuItem1.Enabled = CBool(Current_Rights(COL_RIGHTS.成品库存管理) And RIGHTS.READ) + + 'BOM管理ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.BOM管理)) + 供应商管理ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.供应商管理) And RIGHTS.WRITE) + 用户管理ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.用户管理) And RIGHTS.WRITE) + 系统记录ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.系统记录) And RIGHTS.READ) + + 财务管理ToolStripMenuItem.Enabled = CBool(Current_Rights(COL_RIGHTS.财务管理) And RIGHTS.WRITE) + 录入ToolStripMenuItem3.Enabled = CBool(Current_Rights(COL_RIGHTS.财务管理) And RIGHTS.WRITE) + 查询ToolStripMenuItem2.Enabled = CBool(Current_Rights(COL_RIGHTS.财务管理) And RIGHTS.READ) + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Me.Text &= " (Build:" & My.Application.Info.Version.ToString & ") " & "用户:" & Current_UserName + + MainForm = Me + + '根据权限设置相应菜单的禁用状态 + SetAccessState() + End Sub + + Private Sub 关于ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 关于ToolStripMenuItem.Click + Dim pAbout As New AboutBox1 + pAbout.ShowDialog() + End Sub + + Private Sub 用户管理ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 用户管理ToolStripMenuItem.Click + If g_Form_Track(FORM_TYPE.用户管理) Is Nothing OrElse g_Form_Track(FORM_TYPE.用户管理).IsDisposed Then + g_Form_Track(FORM_TYPE.用户管理) = New form_UserManage + g_Form_Track(FORM_TYPE.用户管理).Text = "Form" & FORM_TYPE.用户管理 & "-" & g_Form_Track(FORM_TYPE.用户管理).Text + End If + g_Form_Track(FORM_TYPE.用户管理).MdiParent = Me + g_Form_Track(FORM_TYPE.用户管理).Show() + g_Form_Track(FORM_TYPE.用户管理).BringToFront() + End Sub + + Private Sub 新建ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + 'Dim m_BomOper As New CBOM + 'If m_BomOper.CreateNew("333") = ERROR_CODE.SUCCESS Then + ' MsgBox("Create OK") + 'Else + ' MsgBox("Create Fail") + 'End If + End Sub + + Private Sub 注销ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 注销ToolStripMenuItem.Click + QuitReson = QUIT_RESON.logout + Me.Close() + End Sub + + Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出ToolStripMenuItem.Click + QuitReson = QUIT_RESON.close + Me.Close() + End Sub + + Private Sub 系统记录ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 系统记录ToolStripMenuItem.Click + If CBool(Current_Rights(COL_RIGHTS.系统记录) & RIGHTS.READ) = False Then + MsgBox("权限不足,请联系管理员!") + Return + End If + + If g_Form_Track(FORM_TYPE.系统记录) Is Nothing OrElse g_Form_Track(FORM_TYPE.系统记录).IsDisposed Then + g_Form_Track(FORM_TYPE.系统记录) = New Form_SysLog + g_Form_Track(FORM_TYPE.系统记录).Text = "Form" & FORM_TYPE.系统记录 & "-" & g_Form_Track(FORM_TYPE.系统记录).Text + End If + g_Form_Track(FORM_TYPE.系统记录).MdiParent = Me + g_Form_Track(FORM_TYPE.系统记录).Show() + g_Form_Track(FORM_TYPE.系统记录).BringToFront() + End Sub + + Private Function StoreSelect(ByRef storeName As String, ByRef 库位表名 As String) As Boolean + Dim pdlg As New dlg_StoreSelect + If dlg_StoreSelect.ShowDialog() <> DialogResult.OK Then Return False + + storeName = dlg_StoreSelect.combo_Store.Text + 库位表名 = dlg_StoreSelect.m_SelPosName + Return True + End Function + + Private Sub 录入ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 录入ToolStripMenuItem.Click + If CBool(Current_Rights(COL_RIGHTS.原料库存管理) & RIGHTS.WRITE) = False Then + MsgBox("权限不足,请联系管理员!") + Return + End If + + Dim StoreName As String = "" + Dim PosName As String = "" + If g_Form_Track(FORM_TYPE.物料入库) Is Nothing OrElse g_Form_Track(FORM_TYPE.物料入库).IsDisposed Then + g_Form_Track(FORM_TYPE.物料入库) = New form_Material + End If + CType(g_Form_Track(FORM_TYPE.物料入库), form_Material).OutStore = False '指定为入库操作 + g_Form_Track(FORM_TYPE.物料入库).Text = "物料入库" + g_Form_Track(FORM_TYPE.物料入库).Text = "Form" & FORM_TYPE.物料入库 & "-" & g_Form_Track(FORM_TYPE.物料入库).Text + g_Form_Track(FORM_TYPE.物料入库).MdiParent = Me + g_Form_Track(FORM_TYPE.物料入库).Show() + g_Form_Track(FORM_TYPE.物料入库).BringToFront() + End Sub + + Private Sub 删除ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 删除ToolStripMenuItem.Click + If CBool(Current_Rights(COL_RIGHTS.原料库存管理) & RIGHTS.WRITE) = False Then + MsgBox("权限不足,请联系管理员!") + Return + End If + + Dim StoreName As String = "" + Dim PosName As String = "" + If g_Form_Track(FORM_TYPE.物料出库) Is Nothing OrElse g_Form_Track(FORM_TYPE.物料出库).IsDisposed Then + g_Form_Track(FORM_TYPE.物料出库) = New form_Material + End If + CType(g_Form_Track(FORM_TYPE.物料出库), form_Material).OutStore = True '指定为出库操作 + g_Form_Track(FORM_TYPE.物料出库).Text = "物料出库" + g_Form_Track(FORM_TYPE.物料出库).Text = "Form" & FORM_TYPE.物料出库 & "-" & g_Form_Track(FORM_TYPE.物料出库).Text + g_Form_Track(FORM_TYPE.物料出库).MdiParent = Me + g_Form_Track(FORM_TYPE.物料出库).Show() + g_Form_Track(FORM_TYPE.物料出库).BringToFront() + End Sub + + Private Sub 供应商管理ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 供应商管理ToolStripMenuItem.Click + If g_Form_Track(FORM_TYPE.供应商管理) Is Nothing OrElse g_Form_Track(FORM_TYPE.供应商管理).IsDisposed Then + g_Form_Track(FORM_TYPE.供应商管理) = New form_SupplierManage + g_Form_Track(FORM_TYPE.供应商管理).Text = "Form" & FORM_TYPE.供应商管理 & "-" & g_Form_Track(FORM_TYPE.供应商管理).Text + End If + g_Form_Track(FORM_TYPE.供应商管理).MdiParent = Me + g_Form_Track(FORM_TYPE.供应商管理).Show() + g_Form_Track(FORM_TYPE.供应商管理).BringToFront() + End Sub + + 'Private Sub 录入ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 录入ToolStripMenuItem1.Click + ' If CBool(Current_Rights(COL_RIGHTS.成品库存管理) & RIGHTS.WRITE) = False Then + ' MsgBox("权限不足,请联系管理员!") + ' Return + ' End If + + ' Dim StoreName As String = "" + ' Dim PosName As String = "" + ' Dim pForm As New form_Product + ' pForm.OutStore = False '指定为入库操作 + ' pForm.Text = "成品入库" + ' pForm.MdiParent = Me + ' pForm.Show() + 'End Sub + + 'Private Sub 删除ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 删除ToolStripMenuItem1.Click + ' If CBool(Current_Rights(COL_RIGHTS.成品库存管理) & RIGHTS.WRITE) = False Then + ' MsgBox("权限不足,请联系管理员!") + ' Return + ' End If + + ' Dim StoreName As String = "" + ' Dim PosName As String = "" + ' Dim pForm As New form_Product + ' pForm.OutStore = True '指定为出库操作 + ' pForm.Text = "成品出库" + ' pForm.MdiParent = Me + ' pForm.Show() + 'End Sub + + Private Sub 查询ToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 查询ToolStripMenuItem3.Click + If g_Form_Track(FORM_TYPE.料号查询) Is Nothing OrElse g_Form_Track(FORM_TYPE.料号查询).IsDisposed Then + g_Form_Track(FORM_TYPE.料号查询) = New form_QuerySim + g_Form_Track(FORM_TYPE.料号查询).Text = "Form" & FORM_TYPE.料号查询 & "-" & g_Form_Track(FORM_TYPE.料号查询).Text + End If + g_Form_Track(FORM_TYPE.料号查询).MdiParent = Me + g_Form_Track(FORM_TYPE.料号查询).Show() + g_Form_Track(FORM_TYPE.料号查询).BringToFront() + End Sub + + Private Sub 录入ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 录入ToolStripMenuItem2.Click + If g_Form_Track(FORM_TYPE.料号管理) Is Nothing OrElse g_Form_Track(FORM_TYPE.料号管理).IsDisposed Then + g_Form_Track(FORM_TYPE.料号管理) = New form_PartNumber + g_Form_Track(FORM_TYPE.料号管理).Text = "Form" & FORM_TYPE.料号管理 & "-" & g_Form_Track(FORM_TYPE.料号管理).Text + End If + g_Form_Track(FORM_TYPE.料号管理).MdiParent = Me + g_Form_Track(FORM_TYPE.料号管理).Show() + g_Form_Track(FORM_TYPE.料号管理).BringToFront() + End Sub + + Private Sub 查询ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 查询ToolStripMenuItem.Click + If g_Form_Track(FORM_TYPE.物料查询) Is Nothing OrElse g_Form_Track(FORM_TYPE.物料查询).IsDisposed Then + g_Form_Track(FORM_TYPE.物料查询) = New Form_QueryStorage + g_Form_Track(FORM_TYPE.物料查询).Text = "Form" & FORM_TYPE.物料查询 & "-" & g_Form_Track(FORM_TYPE.物料查询).Text + End If + + g_Form_Track(FORM_TYPE.物料查询).MdiParent = Me + g_Form_Track(FORM_TYPE.物料查询).Show() + g_Form_Track(FORM_TYPE.物料查询).BringToFront() + End Sub + + Private Sub 出入库记录ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 出入库记录ToolStripMenuItem.Click + If g_Form_Track(FORM_TYPE.物料入出库记录) Is Nothing OrElse g_Form_Track(FORM_TYPE.物料入出库记录).IsDisposed Then + g_Form_Track(FORM_TYPE.物料入出库记录) = New Form_QueryStorageRecord + g_Form_Track(FORM_TYPE.物料入出库记录).Text = "Form" & FORM_TYPE.物料入出库记录 & "-" & g_Form_Track(FORM_TYPE.物料入出库记录).Text + End If + + g_Form_Track(FORM_TYPE.物料入出库记录).MdiParent = Me + g_Form_Track(FORM_TYPE.物料入出库记录).Show() + g_Form_Track(FORM_TYPE.物料入出库记录).BringToFront() + End Sub + + Private Sub BOM管理ToolStripMenuItem_Click(sender As Object, e As EventArgs) + + End Sub + + Private Sub 录入ToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles 录入ToolStripMenuItem3.Click + If g_Form_Track(FORM_TYPE.财务明细录入_开发) Is Nothing OrElse g_Form_Track(FORM_TYPE.财务明细录入_开发).IsDisposed Then + g_Form_Track(FORM_TYPE.财务明细录入_开发) = New Form_FinancialRecords_Development + g_Form_Track(FORM_TYPE.财务明细录入_开发).Text = "Form" & FORM_TYPE.财务明细录入_开发 & "-" & g_Form_Track(FORM_TYPE.财务明细录入_开发).Text + End If + + g_Form_Track(FORM_TYPE.财务明细录入_开发).MdiParent = Me + g_Form_Track(FORM_TYPE.财务明细录入_开发).Show() + g_Form_Track(FORM_TYPE.财务明细录入_开发).BringToFront() + End Sub + + Private Sub 查询ToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles 查询ToolStripMenuItem2.Click + If g_Form_Track(FORM_TYPE.财务明细查询_开发) Is Nothing OrElse g_Form_Track(FORM_TYPE.财务明细查询_开发).IsDisposed Then + g_Form_Track(FORM_TYPE.财务明细查询_开发) = New Form_FinancialQuery_Development + g_Form_Track(FORM_TYPE.财务明细查询_开发).Text = "Form" & FORM_TYPE.财务明细查询_开发 & "-" & g_Form_Track(FORM_TYPE.财务明细查询_开发).Text + End If + + g_Form_Track(FORM_TYPE.财务明细查询_开发).MdiParent = Me + g_Form_Track(FORM_TYPE.财务明细查询_开发).Show() + g_Form_Track(FORM_TYPE.财务明细查询_开发).BringToFront() + End Sub + + Private Sub tsmi_录入_销售部_Click(sender As Object, e As EventArgs) Handles tsmi_录入_销售部.Click + If g_Form_Track(FORM_TYPE.财务明细录入_销售) Is Nothing OrElse g_Form_Track(FORM_TYPE.财务明细录入_销售).IsDisposed Then + g_Form_Track(FORM_TYPE.财务明细录入_销售) = New Form_FinancialRecords_Sales + g_Form_Track(FORM_TYPE.财务明细录入_销售).Text = "Form" & FORM_TYPE.财务明细录入_销售 & "-" & g_Form_Track(FORM_TYPE.财务明细录入_销售).Text + End If + + g_Form_Track(FORM_TYPE.财务明细录入_销售).MdiParent = Me + g_Form_Track(FORM_TYPE.财务明细录入_销售).Show() + g_Form_Track(FORM_TYPE.财务明细录入_销售).BringToFront() + End Sub + + Private Sub tsmi_查询_销售部_Click(sender As Object, e As EventArgs) Handles tsmi_查询_销售部.Click + If g_Form_Track(FORM_TYPE.财务明细查询_销售) Is Nothing OrElse g_Form_Track(FORM_TYPE.财务明细查询_销售).IsDisposed Then + g_Form_Track(FORM_TYPE.财务明细查询_销售) = New Form_FinancialQuery_Sales + g_Form_Track(FORM_TYPE.财务明细查询_销售).Text = "Form" & FORM_TYPE.财务明细查询_销售 & "-" & g_Form_Track(FORM_TYPE.财务明细查询_销售).Text + End If + + g_Form_Track(FORM_TYPE.财务明细查询_销售).MdiParent = Me + g_Form_Track(FORM_TYPE.财务明细查询_销售).Show() + g_Form_Track(FORM_TYPE.财务明细查询_销售).BringToFront() + End Sub + + Private Sub BOMToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BOMToolStripMenuItem.Click + If g_Form_Track(FORM_TYPE.BOM管理) Is Nothing OrElse g_Form_Track(FORM_TYPE.BOM管理).IsDisposed Then + g_Form_Track(FORM_TYPE.BOM管理) = New form_BomManage + g_Form_Track(FORM_TYPE.BOM管理).Text = "Form" & FORM_TYPE.BOM管理 & "-" & g_Form_Track(FORM_TYPE.BOM管理).Text + End If + + g_Form_Track(FORM_TYPE.BOM管理).MdiParent = Me + g_Form_Track(FORM_TYPE.BOM管理).Show() + g_Form_Track(FORM_TYPE.BOM管理).BringToFront() + End Sub + + Private Sub 合并备料查询ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 合并备料查询ToolStripMenuItem.Click + If g_Form_Track(FORM_TYPE.合并用料查询) Is Nothing OrElse g_Form_Track(FORM_TYPE.合并用料查询).IsDisposed Then + g_Form_Track(FORM_TYPE.合并用料查询) = New Form_合并备料查询 + g_Form_Track(FORM_TYPE.合并用料查询).Text = "Form" & FORM_TYPE.合并用料查询 & "-" & g_Form_Track(FORM_TYPE.合并用料查询).Text + End If + + g_Form_Track(FORM_TYPE.合并用料查询).MdiParent = Me + g_Form_Track(FORM_TYPE.合并用料查询).Show() + g_Form_Track(FORM_TYPE.合并用料查询).BringToFront() + End Sub + + Private Sub 备份管理ToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles 备份管理ToolStripMenuItem1.Click + If g_Form_Track(FORM_TYPE.备份管理) Is Nothing OrElse g_Form_Track(FORM_TYPE.备份管理).IsDisposed Then + g_Form_Track(FORM_TYPE.备份管理) = New Form_备份管理 + g_Form_Track(FORM_TYPE.备份管理).Text = "Form" & FORM_TYPE.备份管理 & "-" & g_Form_Track(FORM_TYPE.备份管理).Text + End If + + g_Form_Track(FORM_TYPE.备份管理).MdiParent = Me + g_Form_Track(FORM_TYPE.备份管理).Show() + g_Form_Track(FORM_TYPE.备份管理).BringToFront() + End Sub +End Class + + diff --git a/WT-DMS/Form_FinancialQuery_Development.Designer.vb b/WT-DMS/Form_FinancialQuery_Development.Designer.vb new file mode 100644 index 0000000..0364758 --- /dev/null +++ b/WT-DMS/Form_FinancialQuery_Development.Designer.vb @@ -0,0 +1,103 @@ + _ +Partial Class Form_FinancialQuery_Development + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form_FinancialQuery_Development)) + Me.Grid1 = New FlexCell.Grid() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.tsb_Query = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.tsb_ExportToExcel = New System.Windows.Forms.ToolStripButton() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'Grid1 + ' + Me.Grid1.AllowUserSort = True + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.Cols = 7 + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.ImeMode = System.Windows.Forms.ImeMode.[On] + Me.Grid1.Location = New System.Drawing.Point(0, 28) + Me.Grid1.Name = "Grid1" + Me.Grid1.Rows = 500 + Me.Grid1.Size = New System.Drawing.Size(948, 539) + Me.Grid1.TabIndex = 16 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsb_Query, Me.ToolStripSeparator1, Me.tsb_ExportToExcel}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(948, 25) + Me.ToolStrip1.TabIndex = 19 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'tsb_Query + ' + Me.tsb_Query.Image = CType(resources.GetObject("tsb_Query.Image"), System.Drawing.Image) + Me.tsb_Query.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsb_Query.Name = "tsb_Query" + Me.tsb_Query.Size = New System.Drawing.Size(52, 22) + Me.tsb_Query.Text = "查询" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'tsb_ExportToExcel + ' + Me.tsb_ExportToExcel.Image = CType(resources.GetObject("tsb_ExportToExcel.Image"), System.Drawing.Image) + Me.tsb_ExportToExcel.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsb_ExportToExcel.Name = "tsb_ExportToExcel" + Me.tsb_ExportToExcel.Size = New System.Drawing.Size(93, 22) + Me.tsb_ExportToExcel.Text = "导出为Excel" + ' + 'Form_FinancialQuery_Development + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(948, 569) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.Grid1) + Me.Name = "Form_FinancialQuery_Development" + Me.Text = "帐务明细查询-开发部" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents tsb_ExportToExcel As System.Windows.Forms.ToolStripButton + Friend WithEvents tsb_Query As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator +End Class diff --git a/WT-DMS/Form_FinancialQuery_Development.resx b/WT-DMS/Form_FinancialQuery_Development.resx new file mode 100644 index 0000000..23998a4 --- /dev/null +++ b/WT-DMS/Form_FinancialQuery_Development.resx @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/w///4AKOo/wAP//gAo6jwAAD/+ACjqPAPAA/4AKOo8P/wAPgAo6j///8A+A + CjqP////D4AKOo//////gAo6iIiIiIiACjo= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/////4AKOo//////gAo6j/////+ACjqP/////4AKOo//////gAo6j/////+A + CjqP/////4AKOo//////gAo6iIiIiIiACjo= + + + + 17, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI + ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9 + HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN + rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K + TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx + oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8 + 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI + xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX + LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd + KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI + ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9 + HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN + rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K + TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx + oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8 + 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI + xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX + LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd + KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/WT-DMS/Form_FinancialQuery_Development.vb b/WT-DMS/Form_FinancialQuery_Development.vb new file mode 100644 index 0000000..fbc2684 --- /dev/null +++ b/WT-DMS/Form_FinancialQuery_Development.vb @@ -0,0 +1,63 @@ +Public Class Form_FinancialQuery_Development + Dim m_Table As New System.Data.DataTable + Dim m_InitOver As Boolean = False + + Public Shared cst_TABLE_NAME As String = "收支明细表_开发" + + Private Sub tsb_Query_Click(sender As Object, e As EventArgs) Handles tsb_Query.Click + RefreshList() + End Sub + + Private Function QueryAllFinancialItems() As Boolean + Dim result As Boolean = False + Dim strSQL As String = "SELECT * FROM `" & cst_TABLE_NAME & "` GROUP BY `序号`" + + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If SQL_Query(COL_RIGHTS.财务管理, strSQL, m_Table) = True Then + result = True + End If + + Return result + End Function + + Private Function RefreshList() As Boolean + QueryAllFinancialItems() + + Grid1.AllowUserSort = True + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + '绑定到数据源时可以指定固定行数,但绑定后不能改变Grid.FixedRows属性的值 + 'Grid1.SetDataBinding(m_Table, "products", True, 2) + Grid1.SetDataBinding(m_Table, "", True, 1) + + CGirdInfo.LoadGridInfo("财务管理_查询", Grid1) + + Grid1.Locked = True + + Return True + End Function + + Private Sub Grid1_ColWidthChange(Sender As Object, e As FlexCell.Grid.ColWidthChangeEventArgs) Handles Grid1.ColWidthChange + CGirdInfo.SaveGirdInfo("财务管理_查询", Grid1) + End Sub + + Private Sub tsb_ExportToExcel_Click(sender As Object, e As EventArgs) Handles tsb_ExportToExcel.Click + Dim dlg As New SaveFileDialog + dlg.DefaultExt = "xls" + dlg.Filter = "Excel File (*.xls)|*.xls" + If dlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then + Return + End If + + If Grid1.ExportToExcel(dlg.FileName, True, False) = True Then + MsgBox("导出为Excel OK!") + Else + MsgBox("导出为Excel Error!") + End If + End Sub +End Class \ No newline at end of file diff --git a/WT-DMS/Form_FinancialQuery_Sales.Designer.vb b/WT-DMS/Form_FinancialQuery_Sales.Designer.vb new file mode 100644 index 0000000..2d2e335 --- /dev/null +++ b/WT-DMS/Form_FinancialQuery_Sales.Designer.vb @@ -0,0 +1,101 @@ + _ +Partial Class Form_FinancialQuery_Sales + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form_FinancialQuery_Sales)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.tsb_Query = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.tsb_ExportToExcel = New System.Windows.Forms.ToolStripButton() + Me.Grid1 = New FlexCell.Grid() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsb_Query, Me.ToolStripSeparator1, Me.tsb_ExportToExcel}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(893, 25) + Me.ToolStrip1.TabIndex = 21 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'tsb_Query + ' + Me.tsb_Query.Image = CType(resources.GetObject("tsb_Query.Image"), System.Drawing.Image) + Me.tsb_Query.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsb_Query.Name = "tsb_Query" + Me.tsb_Query.Size = New System.Drawing.Size(52, 22) + Me.tsb_Query.Text = "查询" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'tsb_ExportToExcel + ' + Me.tsb_ExportToExcel.Image = CType(resources.GetObject("tsb_ExportToExcel.Image"), System.Drawing.Image) + Me.tsb_ExportToExcel.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsb_ExportToExcel.Name = "tsb_ExportToExcel" + Me.tsb_ExportToExcel.Size = New System.Drawing.Size(93, 22) + Me.tsb_ExportToExcel.Text = "导出为Excel" + ' + 'Grid1 + ' + Me.Grid1.AllowUserSort = True + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.Cols = 7 + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Dock = System.Windows.Forms.DockStyle.Fill + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.ImeMode = System.Windows.Forms.ImeMode.[On] + Me.Grid1.Location = New System.Drawing.Point(0, 25) + Me.Grid1.Name = "Grid1" + Me.Grid1.Rows = 500 + Me.Grid1.Size = New System.Drawing.Size(893, 535) + Me.Grid1.TabIndex = 22 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'Form_FinancialQuery_Sales + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(893, 560) + Me.Controls.Add(Me.Grid1) + Me.Controls.Add(Me.ToolStrip1) + Me.Name = "Form_FinancialQuery_Sales" + Me.Text = "帐务明细查询-销售部" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents tsb_Query As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents tsb_ExportToExcel As System.Windows.Forms.ToolStripButton + Friend WithEvents Grid1 As FlexCell.Grid +End Class diff --git a/WT-DMS/Form_FinancialQuery_Sales.resx b/WT-DMS/Form_FinancialQuery_Sales.resx new file mode 100644 index 0000000..0935aea --- /dev/null +++ b/WT-DMS/Form_FinancialQuery_Sales.resx @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI + ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9 + HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN + rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K + TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx + oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8 + 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI + xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX + LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd + KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI + ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9 + HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN + rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K + TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx + oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8 + 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI + xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX + LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd + KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/w///4AKOo/wAP//gAo6jwAAD/+ACjqPAPAA/4AKOo8P/wAPgAo6j///8A+A + CjqP////D4AKOo//////gAo6iIiIiIiACjo= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/////4AKOo//////gAo6j/////+ACjqP/////4AKOo//////gAo6j/////+A + CjqP/////4AKOo//////gAo6iIiIiIiACjo= + + + \ No newline at end of file diff --git a/WT-DMS/Form_FinancialQuery_Sales.vb b/WT-DMS/Form_FinancialQuery_Sales.vb new file mode 100644 index 0000000..dce93e6 --- /dev/null +++ b/WT-DMS/Form_FinancialQuery_Sales.vb @@ -0,0 +1,63 @@ +Public Class Form_FinancialQuery_Sales + Dim m_Table As New System.Data.DataTable + Dim m_InitOver As Boolean = False + + Public Shared cst_TABLE_NAME As String = "收支明细表_销售" + + Private Sub tsb_Query_Click(sender As Object, e As EventArgs) Handles tsb_Query.Click + RefreshList() + End Sub + + Private Function QueryAllFinancialItems() As Boolean + Dim result As Boolean = False + Dim strSQL As String = "SELECT * FROM `" & cst_TABLE_NAME & "` GROUP BY `序号`" + + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If SQL_Query(COL_RIGHTS.财务管理, strSQL, m_Table) = True Then + result = True + End If + + Return result + End Function + + Private Function RefreshList() As Boolean + QueryAllFinancialItems() + + Grid1.AllowUserSort = True + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + '绑定到数据源时可以指定固定行数,但绑定后不能改变Grid.FixedRows属性的值 + 'Grid1.SetDataBinding(m_Table, "products", True, 2) + Grid1.SetDataBinding(m_Table, "", True, 1) + + CGirdInfo.LoadGridInfo("财务管理_查询_销售", Grid1) + + Grid1.Locked = True + + Return True + End Function + + Private Sub Grid1_ColWidthChange(Sender As Object, e As FlexCell.Grid.ColWidthChangeEventArgs) Handles Grid1.ColWidthChange + CGirdInfo.SaveGirdInfo("财务管理_查询_销售", Grid1) + End Sub + + Private Sub tsb_ExportToExcel_Click(sender As Object, e As EventArgs) Handles tsb_ExportToExcel.Click + Dim dlg As New SaveFileDialog + dlg.DefaultExt = "xls" + dlg.Filter = "Excel File (*.xls)|*.xls" + If dlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then + Return + End If + + If Grid1.ExportToExcel(dlg.FileName, True, False) = True Then + MsgBox("导出为Excel OK!") + Else + MsgBox("导出为Excel Error!") + End If + End Sub +End Class \ No newline at end of file diff --git a/WT-DMS/Form_FinancialRecords_Development.Designer.vb b/WT-DMS/Form_FinancialRecords_Development.Designer.vb new file mode 100644 index 0000000..b28f2ba --- /dev/null +++ b/WT-DMS/Form_FinancialRecords_Development.Designer.vb @@ -0,0 +1,139 @@ + _ +Partial Class Form_FinancialRecords_Development + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form_FinancialRecords_Development)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.新建NToolStripButton = New System.Windows.Forms.ToolStripButton() + Me.保存SToolStripButton = New System.Windows.Forms.ToolStripButton() + Me.toolStripSeparator = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() + Me.Grid1 = New FlexCell.Grid() + Me.Label1 = New System.Windows.Forms.Label() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.AutoSize = False + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.新建NToolStripButton, Me.保存SToolStripButton, Me.toolStripSeparator, Me.ToolStripButton1, Me.ToolStripButton2}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(828, 48) + Me.ToolStrip1.TabIndex = 0 + Me.ToolStrip1.Text = "ToolStrip1" + ' + '新建NToolStripButton + ' + Me.新建NToolStripButton.Image = CType(resources.GetObject("新建NToolStripButton.Image"), System.Drawing.Image) + Me.新建NToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta + Me.新建NToolStripButton.Name = "新建NToolStripButton" + Me.新建NToolStripButton.Size = New System.Drawing.Size(70, 45) + Me.新建NToolStripButton.Text = "新建(&N)" + ' + '保存SToolStripButton + ' + Me.保存SToolStripButton.Image = CType(resources.GetObject("保存SToolStripButton.Image"), System.Drawing.Image) + Me.保存SToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta + Me.保存SToolStripButton.Name = "保存SToolStripButton" + Me.保存SToolStripButton.Size = New System.Drawing.Size(67, 45) + Me.保存SToolStripButton.Text = "保存(&S)" + ' + 'toolStripSeparator + ' + Me.toolStripSeparator.Name = "toolStripSeparator" + Me.toolStripSeparator.Size = New System.Drawing.Size(6, 48) + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(48, 45) + Me.ToolStripButton1.Text = "增加行" + ' + 'ToolStripButton2 + ' + Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text + Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image) + Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton2.Name = "ToolStripButton2" + Me.ToolStripButton2.Size = New System.Drawing.Size(48, 45) + Me.ToolStripButton2.Text = "删除行" + ' + 'Grid1 + ' + Me.Grid1.AllowUserSort = True + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.Cols = 7 + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Dock = System.Windows.Forms.DockStyle.Fill + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.ImeMode = System.Windows.Forms.ImeMode.[On] + Me.Grid1.Location = New System.Drawing.Point(0, 48) + Me.Grid1.Name = "Grid1" + Me.Grid1.Rows = 500 + Me.Grid1.Size = New System.Drawing.Size(828, 442) + Me.Grid1.TabIndex = 16 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.BackColor = System.Drawing.Color.Gainsboro + Me.Label1.Font = New System.Drawing.Font("微软雅黑", 26.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.Blue + Me.Label1.Location = New System.Drawing.Point(348, 1) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(125, 46) + Me.Label1.TabIndex = 17 + Me.Label1.Text = "开发部" + ' + 'Form_FinancialRecords_Development + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(828, 490) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.Grid1) + Me.Controls.Add(Me.ToolStrip1) + Me.Name = "Form_FinancialRecords_Development" + Me.Text = "帐务明细录入-开发部" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents 新建NToolStripButton As System.Windows.Forms.ToolStripButton + Friend WithEvents 保存SToolStripButton As System.Windows.Forms.ToolStripButton + Friend WithEvents toolStripSeparator As System.Windows.Forms.ToolStripSeparator + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton2 As System.Windows.Forms.ToolStripButton + Friend WithEvents Label1 As System.Windows.Forms.Label +End Class diff --git a/WT-DMS/Form_FinancialRecords_Development.resx b/WT-DMS/Form_FinancialRecords_Development.resx new file mode 100644 index 0000000..256d783 --- /dev/null +++ b/WT-DMS/Form_FinancialRecords_Development.resx @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEPSURBVDhPrdPZasJAFAZgX8q+Q32N9o2kXkjphQsigoJC + ixa1VAWXiohG7IakbmjcNcYl5i8TCQSdGXPhgcPczHwz5xzGZrtWRN+bOM1wqo5gvAJfrIBy4w/cu8hh + VjyG3nDjuOcjkbTABB58cSRy9SMiiPSXhF6rTMDpedEPG0ktJfD8wQT26gEEMSAq4I3mqYCmaZCVHQZj + WQfst3f0Ep7CGSqw3amYzBWI/TkfcAdTZ4B60LCQt+hJK3yJEz7g8ifOAGWzhzRdo9WdofYt8QFSnzlI + 42bLDdqDBZqtMUpC3zpgbtxPe4rq5xDZSsc6YG6c8DtCodZDsihaA4x5s1bmGI0Zkw2X8lofWHf+AdjM + 9sNc+xBlAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIsSURBVDhPrZPdS5NxFMf3L3TfTdBFtzU1hmuxGjzlHMqq + YVgRvT2RL+XSZZqoWJlGLV8gW+HSScvpJJxU+AamSI2hTCVLM1e0xKGm2EQw+PY7v+j5tTIvoh+cy8/n + POec76NS/Y/37GkUVL72ZbR5l/DYvYDGhgjuO2ZQW/MJ9tsh3CifQmnJBAoLXiMvdxQXzgeh9Cawtweo + qV7FRm9ldQ3GtF4cTnvCSxF4Wxe5oLLiy195giMLK9htfg61WoblkEcI3I/muaC05PO6gp/w+/Ai4kw+ + FFyexgFzkxA462e54JLt3R+CX+GRyQi2SV5Yc8aRmuIUgrq7YS7IzhqNEfwODwbD2Kx3Q5YDMJkcQlBd + 9ZEL5DMBRbAe3OP/gE2JDThy9AWSkmqF4GblNLq7wE4JHD/5CpZjA3zbtDCamT6bOv+A+3DQ0glJsgvB + 1bJJdPjAMgA0ub6xu39F+fU5vlRaGM2cmRFU4OTUdhgMFUJwpXAcnmbgoXONBScKY3pOTJlP2JB+roh3 + Tk5h8H4P9PoyIbDljTEYqLoT5Z1JwEKCOK2EobezGJuag5x7DXuNbRzW7nFBpysSAoql4x6UzyYBwWfz + b+FNaB6hmSVcLLYjXu9icCPidz2ANjFfCDIzhtncy3zmrQYPtuyQ0NLRD1/XILr7/Bh4OYR9JgvUunok + MHi7pg4ajVUIKNOnT/XzeFLCKCR0ZzoVbZsWRjNTVyqCdyZkxwr+9a/+Dk60OMVjMFpXAAAAAElFTkSu + QmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI + ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9 + HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN + rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K + TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx + oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8 + 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI + xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX + LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd + KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI + ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9 + HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN + rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K + TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx + oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8 + 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI + xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX + LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd + KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/w///4AKOo/wAP//gAo6jwAAD/+ACjqPAPAA/4AKOo8P/wAPgAo6j///8A+A + CjqP////D4AKOo//////gAo6iIiIiIiACjo= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/////4AKOo//////gAo6j/////+ACjqP/////4AKOo//////gAo6j/////+A + CjqP/////4AKOo//////gAo6iIiIiIiACjo= + + + \ No newline at end of file diff --git a/WT-DMS/Form_FinancialRecords_Development.vb b/WT-DMS/Form_FinancialRecords_Development.vb new file mode 100644 index 0000000..d6a137c --- /dev/null +++ b/WT-DMS/Form_FinancialRecords_Development.vb @@ -0,0 +1,564 @@ +Public Class Form_FinancialRecords_Development + Dim m_Table As New System.Data.DataTable + Dim m_InitOver As Boolean = False + + Public Shared cst_TABLE_NAME As String = "收支明细表_开发" + + Public Enum COLS + 序号 + 日期 + 收入 + 支出 + 余额 + 收支类别 + 收支子类别 + 机种 + 交易方 + 业务类型 + 事由 + 经手人 + 单据类型 + 单据编号 + 备注1 + 备注2 + 备注3 + 记录日期 + 记录时间 + max + End Enum + + Public Enum COLS_PROP + Name + Insert + Visible + End Enum + + '名称/Query + Public Shared m_COLS_NAME(,) As String = { + {"序号", "0", "1"}, + {"日期", "1", "1"}, + {"收入", "1", "1"}, + {"支出", "1", "1"}, + {"余额", "1", "1"}, + {"收支类别", "1", "1"}, + {"收支子类别", "1", "1"}, + {"机种", "1", "1"}, + {"交易方", "1", "1"}, + {"业务类型", "1", "1"}, + {"事由", "1", "1"}, + {"经手人", "1", "1"}, + {"单据类型", "1", "1"}, + {"单据编号", "1", "1"}, + {"备注1", "1", "1"}, + {"备注2", "1", "1"}, + {"备注3", "1", "1"}, + {"记录日期", "1", "1"}, + {"记录时间", "1", "1"} + } + + Private m_ColsType() As FlexCell.CellTypeEnum = { + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.Calendar, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox + } + + + Dim gridItemRecords_收支类别 As New System.Windows.Forms.AutoCompleteStringCollection + Dim gridItemRecords_机种 As New System.Windows.Forms.AutoCompleteStringCollection + Dim gridItemRecords_交易方 As New System.Windows.Forms.AutoCompleteStringCollection + Dim gridItemRecords_业务类型 As New System.Windows.Forms.AutoCompleteStringCollection + Dim gridItemRecords_单据类型 As New System.Windows.Forms.AutoCompleteStringCollection + + Dim gridSubList_收支类别 As New ArrayList + + Dim gridItemRecords_收支子类别 As New System.Windows.Forms.AutoCompleteStringCollection + + Private Sub FillGridHeaderByDataTable() + Grid1.NewFile() + + Grid1.AllowUserSort = False + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + Grid1.Cols = COLS.max + Dim colIndex As Integer = 0 + For col As Integer = 0 To COLS.max - 1 + If m_COLS_NAME(col, COLS_PROP.Visible) = "1" Then + Grid1.Cell(0, colIndex).Text = m_COLS_NAME(col, 0) + Grid1.Column(colIndex).CellType = m_ColsType(col) + colIndex += 1 + End If + Next + + SetGridDataSource() + + + '调整宽度 + Grid1.Column(COLS.序号).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_序号 + Grid1.Column(COLS.日期).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_日期 + Grid1.Column(COLS.收入).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收入 + Grid1.Column(COLS.支出).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_支出 + Grid1.Column(COLS.余额).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_余额 + Grid1.Column(COLS.收支类别).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收支类别 + Grid1.Column(COLS.收支子类别).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收支子类别 + Grid1.Column(COLS.机种).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_机种 + Grid1.Column(COLS.交易方).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_交易方 + Grid1.Column(COLS.业务类型).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_业务类型 + Grid1.Column(COLS.事由).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_事由 + Grid1.Column(COLS.经手人).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_经手人 + Grid1.Column(COLS.单据类型).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_单据类型 + Grid1.Column(COLS.单据编号).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_单据编号 + Grid1.Column(COLS.备注1).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注1 + Grid1.Column(COLS.备注2).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注2 + Grid1.Column(COLS.备注3).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注3 + Me.Height = My.Settings.FORM_FINAN_RECORD_HEIGHT + Me.Width = My.Settings.FORM_FINAN_RECORD_WIDTH + + + Grid1.Column(COLS.余额).Locked = True + Grid1.Column(COLS.记录日期).Locked = True + Grid1.Column(COLS.记录时间).Locked = True + + + Grid1.AllowUserSort = True + Grid1.Locked = False + Grid1.Column(COLS.序号).Locked = True + + Grid1.Rows = 500 + + '更新序号 + UpdateItemSN() + + Application.DoEvents() + End Sub + + Private Sub SetGridDataSource() + With Grid1.ComboBox(COLS.收支类别) + .DataSource = Nothing + .DataSource = gridItemRecords_收支类别 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.收支子类别) + .DataSource = Nothing + .DataSource = gridItemRecords_收支子类别 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.机种) + .DataSource = Nothing + .DataSource = gridItemRecords_机种 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.交易方) + .DataSource = Nothing + .DataSource = gridItemRecords_交易方 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.业务类型) + .DataSource = Nothing + .DataSource = gridItemRecords_业务类型 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.单据类型) + .DataSource = Nothing + .DataSource = gridItemRecords_单据类型 + .Locked = False + .AutoComplete = True + End With + End Sub + + Private Sub Form_FinancialRecords_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_序号 = Grid1.Column(COLS.序号).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_日期 = Grid1.Column(COLS.日期).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收入 = Grid1.Column(COLS.收入).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_支出 = Grid1.Column(COLS.支出).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_余额 = Grid1.Column(COLS.余额).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收支类别 = Grid1.Column(COLS.收支类别).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收支子类别 = Grid1.Column(COLS.收支子类别).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_机种 = Grid1.Column(COLS.机种).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_交易方 = Grid1.Column(COLS.交易方).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_业务类型 = Grid1.Column(COLS.业务类型).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_事由 = Grid1.Column(COLS.事由).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_经手人 = Grid1.Column(COLS.经手人).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_单据类型 = Grid1.Column(COLS.单据类型).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_单据编号 = Grid1.Column(COLS.单据编号).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注1 = Grid1.Column(COLS.备注1).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注2 = Grid1.Column(COLS.备注2).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注3 = Grid1.Column(COLS.备注3).Width + My.Settings.FORM_FINAN_RECORD_HEIGHT = Me.Height + My.Settings.FORM_FINAN_RECORD_WIDTH = Me.Width + + My.Settings.Save() + CGirdInfo.SaveRecentList("财务_收支类别", gridItemRecords_收支类别) + 'CGirdInfo.SaveRecentList("财务_收支子类别", gridItemRecords_收支子类别) + CGirdInfo.SaveRecentList("财务_机种", gridItemRecords_机种) + CGirdInfo.SaveRecentList("财务_交易方", gridItemRecords_交易方) + CGirdInfo.SaveRecentList("财务_业务类型", gridItemRecords_业务类型) + CGirdInfo.SaveRecentList("财务_单据类型", gridItemRecords_单据类型) + CGirdInfo.SaveRecentSubList(gridSubList_收支类别) + End Sub + + Private Sub Form_FinancialRecords_Load(sender As Object, e As EventArgs) Handles MyBase.Load + CGirdInfo.LoadRecentList("财务_收支类别", gridItemRecords_收支类别) + 'CGirdInfo.LoadRecentList("财务_收支子类别", gridItemRecords_收支子类别) + CGirdInfo.LoadRecentList("财务_机种", gridItemRecords_机种) + CGirdInfo.LoadRecentList("财务_交易方", gridItemRecords_交易方) + CGirdInfo.LoadRecentList("财务_业务类型", gridItemRecords_业务类型) + CGirdInfo.LoadRecentList("财务_单据类型", gridItemRecords_单据类型) + CGirdInfo.LoadRecentSubList("财务_收支类别", gridSubList_收支类别) + + gridItemRecords_收支子类别 = Nothing + + FillGridHeaderByDataTable() + End Sub + + + Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click + Grid1.Selection.InsertRows() + UpdateItemSN() + End Sub + + Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click + Grid1.Selection.DeleteByRow() + UpdateItemSN() + End Sub + + Private Sub 新建NToolStripButton_Click(sender As Object, e As EventArgs) Handles 新建NToolStripButton.Click + FillGridHeaderByDataTable() + End Sub + Private Sub 保存SToolStripButton_Click(sender As Object, e As EventArgs) Handles 保存SToolStripButton.Click + If CheckAllRowValid() = False Then + MsgBox("输入信息存在错误!") + Return + End If + + '计算余额 + Dim dblBalance As Double = 0 + If GetLatestBalance(dblBalance) = False Then + MsgBox("查询余额失败!") + Return + End If + + '计算各个有效列对应的余额 + Dim dblIncom As Double = 0 + Dim dblExpenditure As Double = 0 + For row = 1 To Grid1.Rows - 1 + If Grid1.Cell(row, COLS.序号).BackColor = Color.Green Then + dblIncom = Grid1.Cell(row, COLS.收入).Text + dblExpenditure = Grid1.Cell(row, COLS.支出).Text + dblBalance += dblIncom + dblBalance -= dblExpenditure + + Grid1.Cell(row, COLS.余额).Text = dblBalance + End If + Next + + '更新"记录日期"及"记录时间" + Dim mCurrDateTime As Date = Now + For row = 1 To Grid1.Rows - 1 + If Grid1.Cell(row, COLS.序号).BackColor = Color.Green Then + Grid1.Cell(row, COLS.记录日期).Text = mCurrDateTime.ToString("yyyy-MM-dd") + Grid1.Cell(row, COLS.记录时间).Text = mCurrDateTime.ToString("HH:mm:ss") + End If + Next + + + '将列表中的数据保存到数据库中 + If SaveFinancialRecordItems() = True Then + MsgBox("保存成功!") + Else + MsgBox("保存失败!") + End If + + '更新历史列表 + SaveRecentList() + End Sub + + Private Function SaveRecentList() As Boolean + For row As Integer = 1 To Grid1.Rows - 1 + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.机种).Text, gridItemRecords_机种) + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.交易方).Text, gridItemRecords_交易方) + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.业务类型).Text, gridItemRecords_业务类型) + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.单据类型).Text, gridItemRecords_单据类型) + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.收支类别).Text, gridItemRecords_收支类别) + If Grid1.Cell(row, COLS.收支类别).Text.Length > 0 AndAlso Grid1.Cell(row, COLS.收支子类别).Text.Length > 0 Then + CGirdInfo.AddToRecentSubList("财务_收支类别", Grid1.Cell(row, COLS.收支类别).Text, Grid1.Cell(row, COLS.收支子类别).Text, gridSubList_收支类别) + End If + Next + + SetGridDataSource() + + Return True + End Function + + Private Function CheckRowValid(ByVal rowIndex As Integer) As Boolean + Dim checkResult As Boolean = True + + If Grid1.Cell(rowIndex, COLS.日期).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.日期).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.日期).BackColor = Color.Green + End If + + Dim strVal1 As String = Grid1.Cell(rowIndex, COLS.收入).Text + Dim strVal2 As String = Grid1.Cell(rowIndex, COLS.支出).Text + Dim DataValid1 As Boolean = False + Dim DataValid2 As Boolean = False + If strVal1.Length > 0 AndAlso strVal1 <> "0" Then + DataValid1 = isDoubleValue(strVal1) + + If DataValid1 = False Then + Grid1.Cell(rowIndex, COLS.收入).BackColor = Color.Red + Else + Grid1.Cell(rowIndex, COLS.收入).BackColor = Color.Green + End If + End If + If strVal2.Length > 0 AndAlso strVal2 <> "0" Then + DataValid2 = isDoubleValue(strVal2) + + If DataValid2 = False Then + Grid1.Cell(rowIndex, COLS.支出).BackColor = Color.Red + Else + Grid1.Cell(rowIndex, COLS.支出).BackColor = Color.Green + End If + End If + + If (DataValid1 = True AndAlso DataValid2 = True) OrElse + (DataValid1 = False AndAlso DataValid2 = False) Then + Grid1.Cell(rowIndex, COLS.收入).BackColor = Color.Red + Grid1.Cell(rowIndex, COLS.支出).BackColor = Color.Red + checkResult = False + Else + If DataValid1 = False Then + Grid1.Cell(rowIndex, COLS.收入).Text = "0" + Grid1.Cell(rowIndex, COLS.收入).BackColor = Color.Green + End If + If DataValid2 = False Then + Grid1.Cell(rowIndex, COLS.支出).Text = "0" + Grid1.Cell(rowIndex, COLS.支出).BackColor = Color.Green + End If + End If + + + If Grid1.Cell(rowIndex, COLS.收支类别).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.收支类别).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.收支类别).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.收支子类别).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.收支子类别).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.收支子类别).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.机种).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.机种).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.机种).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.交易方).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.交易方).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.交易方).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.业务类型).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.业务类型).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.业务类型).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.事由).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.事由).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.事由).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.经手人).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.经手人).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.经手人).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.单据类型).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.单据类型).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.单据类型).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.单据编号).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.单据编号).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.单据编号).BackColor = Color.Green + End If + + + Return checkResult + End Function + + Private Function CheckAllRowValid() As Boolean + '清除表状态 + For row As Integer = 1 To Grid1.Rows - 1 + For col As Integer = 0 To Grid1.Cols - 1 + Grid1.Cell(row, col).BackColor = Color.White + Next + Next + + Dim checkResult As Boolean = True + Dim isEmpty As Boolean = True + For row As Integer = 1 To Grid1.Rows - 1 + If Grid1.Cell(row, COLS.日期).Text.Length > 0 Then + isEmpty = False + If CheckRowValid(row) = False Then + checkResult = False + Else + Grid1.Cell(row, COLS.序号).BackColor = Color.Green + End If + End If + Next + + If isEmpty = True Then + checkResult = False + MsgBox("列表为空!") + End If + + Return checkResult + End Function + + Private Function SaveFinancialRecordItems() As Boolean + Dim row As Integer + Dim col As Integer + Dim result As Boolean = True + + 'INSERT INTO table_name(col_name,...) values(expr,...) + Dim strInsert As String = "INSERT INTO `" & cst_TABLE_NAME & "` " + Dim insertItems As String = "" + For col = 0 To COLS.max - 1 + If m_COLS_NAME(col, COLS_PROP.Insert) = "1" Then + If insertItems.Length > 0 Then + insertItems &= "," + End If + insertItems &= "`" & m_COLS_NAME(col, 0) & "`" + End If + Next + + '增加“操作人”字段 + insertItems &= ",`操作人`" + + For row = 1 To Grid1.Rows - 1 + If Grid1.Cell(row, COLS.序号).BackColor = Color.Green Then + Dim insertValues As String = "" + + For col = 0 To COLS.max - 1 + If m_COLS_NAME(col, COLS_PROP.Insert) = "1" Then + If insertValues.Length > 0 Then + insertValues &= "," + End If + + If Grid1.Column(col).CellType = FlexCell.CellTypeEnum.CheckBox Then + If Grid1.Cell(row, col).BooleanValue = True Then + insertValues &= "'1'" + Else + insertValues &= "'0'" + End If + Else + insertValues &= "'" & Grid1.Cell(row, col).Text & "'" + End If + End If + Next + + insertValues &= "," & "'" & Current_UserName & "'" + + Dim strSQL As String = strInsert & "(" & insertItems & ") values(" & insertValues & ")" + If SQL_ExeCommand(COL_RIGHTS.财务管理, strSQL) = False Then + result = False + Exit For + End If + End If + Next + + Return result + End Function + + Private Sub UpdateItemSN() + For row As Integer = 1 To Grid1.Rows - 1 + Grid1.Cell(row, COLS.序号).Text = row + Next + End Sub + + Private Sub Grid1_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles Grid1.CellChange + If e.Row > 0 AndAlso e.Col = COLS.收支类别 Then + Grid1.Cell(e.Row, COLS.收支子类别).Text = "" + + ''查找当前“收支类别”对应的子类别 + 'If Grid1.Cell(e.Row, COLS.收支类别).Text.Length > 0 Then + ' CGirdInfo.GetRecentSubList("财务_收支类别", Grid1.Cell(e.Row, COLS.收支类别).Text, gridSubList_收支类别, gridItemRecords_收支子类别) + ' SetGridDataSource() + 'End If + End If + End Sub + + Private Sub Grid1_RowColChange(Sender As Object, e As FlexCell.Grid.RowColChangeEventArgs) Handles Grid1.RowColChange + If e.Row > 0 AndAlso e.Col = COLS.收支子类别 Then + '查找当前“收支类别”对应的子类别 + If Grid1.Cell(e.Row, COLS.收支类别).Text.Length > 0 Then + CGirdInfo.GetRecentSubList("财务_收支类别", Grid1.Cell(e.Row, COLS.收支类别).Text, gridSubList_收支类别, gridItemRecords_收支子类别) + SetGridDataSource() + End If + End If + End Sub + + Private Function GetLatestBalance(ByRef rBalance As Double) As Boolean + Dim result As Boolean = False + Dim strSQL As String = "SELECT `" & m_COLS_NAME(COLS.余额, COLS_PROP.Name) & "` FROM `" & cst_TABLE_NAME & "` WHERE `" & m_COLS_NAME(COLS.序号, COLS_PROP.Name) & "`= (SELECT max(`" & m_COLS_NAME(COLS.序号, COLS_PROP.Name) & "`) FROM `" & cst_TABLE_NAME & "`)" + + rBalance = 0 + + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If SQL_Query(COL_RIGHTS.财务管理, strSQL, m_Table) = True Then + Try + rBalance = m_Table.Rows(0).Item(0) + Catch ex As Exception + End Try + result = True + End If + + Return result + End Function +End Class \ No newline at end of file diff --git a/WT-DMS/Form_FinancialRecords_Sales.Designer.vb b/WT-DMS/Form_FinancialRecords_Sales.Designer.vb new file mode 100644 index 0000000..e5c4537 --- /dev/null +++ b/WT-DMS/Form_FinancialRecords_Sales.Designer.vb @@ -0,0 +1,139 @@ + _ +Partial Class Form_FinancialRecords_Sales + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form_FinancialRecords_Sales)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.新建NToolStripButton = New System.Windows.Forms.ToolStripButton() + Me.保存SToolStripButton = New System.Windows.Forms.ToolStripButton() + Me.toolStripSeparator = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() + Me.Label1 = New System.Windows.Forms.Label() + Me.Grid1 = New FlexCell.Grid() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.AutoSize = False + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.新建NToolStripButton, Me.保存SToolStripButton, Me.toolStripSeparator, Me.ToolStripButton1, Me.ToolStripButton2}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(855, 48) + Me.ToolStrip1.TabIndex = 18 + Me.ToolStrip1.Text = "ToolStrip1" + ' + '新建NToolStripButton + ' + Me.新建NToolStripButton.Image = CType(resources.GetObject("新建NToolStripButton.Image"), System.Drawing.Image) + Me.新建NToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta + Me.新建NToolStripButton.Name = "新建NToolStripButton" + Me.新建NToolStripButton.Size = New System.Drawing.Size(70, 45) + Me.新建NToolStripButton.Text = "新建(&N)" + ' + '保存SToolStripButton + ' + Me.保存SToolStripButton.Image = CType(resources.GetObject("保存SToolStripButton.Image"), System.Drawing.Image) + Me.保存SToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta + Me.保存SToolStripButton.Name = "保存SToolStripButton" + Me.保存SToolStripButton.Size = New System.Drawing.Size(67, 45) + Me.保存SToolStripButton.Text = "保存(&S)" + ' + 'toolStripSeparator + ' + Me.toolStripSeparator.Name = "toolStripSeparator" + Me.toolStripSeparator.Size = New System.Drawing.Size(6, 48) + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text + Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image) + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(48, 45) + Me.ToolStripButton1.Text = "增加行" + ' + 'ToolStripButton2 + ' + Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text + Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image) + Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton2.Name = "ToolStripButton2" + Me.ToolStripButton2.Size = New System.Drawing.Size(48, 45) + Me.ToolStripButton2.Text = "删除行" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.BackColor = System.Drawing.Color.Gainsboro + Me.Label1.Font = New System.Drawing.Font("微软雅黑", 26.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.Blue + Me.Label1.Location = New System.Drawing.Point(361, 2) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(125, 46) + Me.Label1.TabIndex = 21 + Me.Label1.Text = "销售部" + ' + 'Grid1 + ' + Me.Grid1.AllowUserSort = True + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.Cols = 7 + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Dock = System.Windows.Forms.DockStyle.Fill + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.ImeMode = System.Windows.Forms.ImeMode.[On] + Me.Grid1.Location = New System.Drawing.Point(0, 48) + Me.Grid1.Name = "Grid1" + Me.Grid1.Rows = 500 + Me.Grid1.Size = New System.Drawing.Size(855, 468) + Me.Grid1.TabIndex = 22 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'Form_FinancialRecords_Sales + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(855, 516) + Me.Controls.Add(Me.Grid1) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.ToolStrip1) + Me.Name = "Form_FinancialRecords_Sales" + Me.Text = "帐务明细录入-销售部" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents 新建NToolStripButton As System.Windows.Forms.ToolStripButton + Friend WithEvents 保存SToolStripButton As System.Windows.Forms.ToolStripButton + Friend WithEvents toolStripSeparator As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton2 As System.Windows.Forms.ToolStripButton + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Grid1 As FlexCell.Grid +End Class diff --git a/WT-DMS/Form_FinancialRecords_Sales.resx b/WT-DMS/Form_FinancialRecords_Sales.resx new file mode 100644 index 0000000..495bd87 --- /dev/null +++ b/WT-DMS/Form_FinancialRecords_Sales.resx @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEPSURBVDhPrdPZasJAFAZgX8q+Q32N9o2kXkjphQsigoJC + ixa1VAWXiohG7IakbmjcNcYl5i8TCQSdGXPhgcPczHwz5xzGZrtWRN+bOM1wqo5gvAJfrIBy4w/cu8hh + VjyG3nDjuOcjkbTABB58cSRy9SMiiPSXhF6rTMDpedEPG0ktJfD8wQT26gEEMSAq4I3mqYCmaZCVHQZj + WQfst3f0Ep7CGSqw3amYzBWI/TkfcAdTZ4B60LCQt+hJK3yJEz7g8ifOAGWzhzRdo9WdofYt8QFSnzlI + 42bLDdqDBZqtMUpC3zpgbtxPe4rq5xDZSsc6YG6c8DtCodZDsihaA4x5s1bmGI0Zkw2X8lofWHf+AdjM + 9sNc+xBlAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIsSURBVDhPrZPdS5NxFMf3L3TfTdBFtzU1hmuxGjzlHMqq + YVgRvT2RL+XSZZqoWJlGLV8gW+HSScvpJJxU+AamSI2hTCVLM1e0xKGm2EQw+PY7v+j5tTIvoh+cy8/n + POec76NS/Y/37GkUVL72ZbR5l/DYvYDGhgjuO2ZQW/MJ9tsh3CifQmnJBAoLXiMvdxQXzgeh9Cawtweo + qV7FRm9ldQ3GtF4cTnvCSxF4Wxe5oLLiy195giMLK9htfg61WoblkEcI3I/muaC05PO6gp/w+/Ai4kw+ + FFyexgFzkxA462e54JLt3R+CX+GRyQi2SV5Yc8aRmuIUgrq7YS7IzhqNEfwODwbD2Kx3Q5YDMJkcQlBd + 9ZEL5DMBRbAe3OP/gE2JDThy9AWSkmqF4GblNLq7wE4JHD/5CpZjA3zbtDCamT6bOv+A+3DQ0glJsgvB + 1bJJdPjAMgA0ub6xu39F+fU5vlRaGM2cmRFU4OTUdhgMFUJwpXAcnmbgoXONBScKY3pOTJlP2JB+roh3 + Tk5h8H4P9PoyIbDljTEYqLoT5Z1JwEKCOK2EobezGJuag5x7DXuNbRzW7nFBpysSAoql4x6UzyYBwWfz + b+FNaB6hmSVcLLYjXu9icCPidz2ANjFfCDIzhtncy3zmrQYPtuyQ0NLRD1/XILr7/Bh4OYR9JgvUunok + MHi7pg4ajVUIKNOnT/XzeFLCKCR0ZzoVbZsWRjNTVyqCdyZkxwr+9a/+Dk60OMVjMFpXAAAAAElFTkSu + QmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI + ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9 + HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN + rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K + TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx + oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8 + 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI + xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX + LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd + KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI + ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9 + HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN + rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K + TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx + oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8 + 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI + xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX + LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd + KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/w///4AKOo/wAP//gAo6jwAAD/+ACjqPAPAA/4AKOo8P/wAPgAo6j///8A+A + CjqP////D4AKOo//////gAo6iIiIiIiACjo= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/////4AKOo//////gAo6j/////+ACjqP/////4AKOo//////gAo6j/////+A + CjqP/////4AKOo//////gAo6iIiIiIiACjo= + + + + 66 + + \ No newline at end of file diff --git a/WT-DMS/Form_FinancialRecords_Sales.vb b/WT-DMS/Form_FinancialRecords_Sales.vb new file mode 100644 index 0000000..ad8a685 --- /dev/null +++ b/WT-DMS/Form_FinancialRecords_Sales.vb @@ -0,0 +1,564 @@ +Public Class Form_FinancialRecords_Sales + Dim m_Table As New System.Data.DataTable + Dim m_InitOver As Boolean = False + + Public Shared cst_TABLE_NAME As String = "收支明细表_销售" + + Public Enum COLS + 序号 + 日期 + 收入 + 支出 + 余额 + 收支类别 + 收支子类别 + 机种 + 交易方 + 业务类型 + 事由 + 经手人 + 单据类型 + 单据编号 + 备注1 + 备注2 + 备注3 + 记录日期 + 记录时间 + max + End Enum + + Public Enum COLS_PROP + Name + Insert + Visible + End Enum + + '名称/Query + Public Shared m_COLS_NAME(,) As String = { + {"序号", "0", "1"}, + {"日期", "1", "1"}, + {"收入", "1", "1"}, + {"支出", "1", "1"}, + {"余额", "1", "1"}, + {"收支类别", "1", "1"}, + {"收支子类别", "1", "1"}, + {"机种", "1", "1"}, + {"交易方", "1", "1"}, + {"业务类型", "1", "1"}, + {"事由", "1", "1"}, + {"经手人", "1", "1"}, + {"单据类型", "1", "1"}, + {"单据编号", "1", "1"}, + {"备注1", "1", "1"}, + {"备注2", "1", "1"}, + {"备注3", "1", "1"}, + {"记录日期", "1", "1"}, + {"记录时间", "1", "1"} + } + + Private m_ColsType() As FlexCell.CellTypeEnum = { + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.Calendar, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.ComboBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox, + FlexCell.CellTypeEnum.TextBox + } + + + Dim gridItemRecords_收支类别 As New System.Windows.Forms.AutoCompleteStringCollection + Dim gridItemRecords_机种 As New System.Windows.Forms.AutoCompleteStringCollection + Dim gridItemRecords_交易方 As New System.Windows.Forms.AutoCompleteStringCollection + Dim gridItemRecords_业务类型 As New System.Windows.Forms.AutoCompleteStringCollection + Dim gridItemRecords_单据类型 As New System.Windows.Forms.AutoCompleteStringCollection + + Dim gridSubList_收支类别 As New ArrayList + + Dim gridItemRecords_收支子类别 As New System.Windows.Forms.AutoCompleteStringCollection + + Private Sub FillGridHeaderByDataTable() + Grid1.NewFile() + + Grid1.AllowUserSort = False + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + Grid1.Cols = COLS.max + Dim colIndex As Integer = 0 + For col As Integer = 0 To COLS.max - 1 + If m_COLS_NAME(col, COLS_PROP.Visible) = "1" Then + Grid1.Cell(0, colIndex).Text = m_COLS_NAME(col, 0) + Grid1.Column(colIndex).CellType = m_ColsType(col) + colIndex += 1 + End If + Next + + SetGridDataSource() + + + '调整宽度 + Grid1.Column(COLS.序号).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_序号 + Grid1.Column(COLS.日期).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_日期 + Grid1.Column(COLS.收入).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收入 + Grid1.Column(COLS.支出).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_支出 + Grid1.Column(COLS.余额).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_余额 + Grid1.Column(COLS.收支类别).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收支类别 + Grid1.Column(COLS.收支子类别).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收支子类别 + Grid1.Column(COLS.机种).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_机种 + Grid1.Column(COLS.交易方).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_交易方 + Grid1.Column(COLS.业务类型).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_业务类型 + Grid1.Column(COLS.事由).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_事由 + Grid1.Column(COLS.经手人).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_经手人 + Grid1.Column(COLS.单据类型).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_单据类型 + Grid1.Column(COLS.单据编号).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_单据编号 + Grid1.Column(COLS.备注1).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注1 + Grid1.Column(COLS.备注2).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注2 + Grid1.Column(COLS.备注3).Width = My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注3 + Me.Height = My.Settings.FORM_FINAN_RECORD_HEIGHT + Me.Width = My.Settings.FORM_FINAN_RECORD_WIDTH + + + Grid1.Column(COLS.余额).Locked = True + Grid1.Column(COLS.记录日期).Locked = True + Grid1.Column(COLS.记录时间).Locked = True + + + Grid1.AllowUserSort = True + Grid1.Locked = False + Grid1.Column(COLS.序号).Locked = True + + Grid1.Rows = 500 + + '更新序号 + UpdateItemSN() + + Application.DoEvents() + End Sub + + Private Sub SetGridDataSource() + With Grid1.ComboBox(COLS.收支类别) + .DataSource = Nothing + .DataSource = gridItemRecords_收支类别 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.收支子类别) + .DataSource = Nothing + .DataSource = gridItemRecords_收支子类别 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.机种) + .DataSource = Nothing + .DataSource = gridItemRecords_机种 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.交易方) + .DataSource = Nothing + .DataSource = gridItemRecords_交易方 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.业务类型) + .DataSource = Nothing + .DataSource = gridItemRecords_业务类型 + .Locked = False + .AutoComplete = True + End With + With Grid1.ComboBox(COLS.单据类型) + .DataSource = Nothing + .DataSource = gridItemRecords_单据类型 + .Locked = False + .AutoComplete = True + End With + End Sub + + Private Sub Form_FinancialRecords_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_序号 = Grid1.Column(COLS.序号).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_日期 = Grid1.Column(COLS.日期).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收入 = Grid1.Column(COLS.收入).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_支出 = Grid1.Column(COLS.支出).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_余额 = Grid1.Column(COLS.余额).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收支类别 = Grid1.Column(COLS.收支类别).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_收支子类别 = Grid1.Column(COLS.收支子类别).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_机种 = Grid1.Column(COLS.机种).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_交易方 = Grid1.Column(COLS.交易方).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_业务类型 = Grid1.Column(COLS.业务类型).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_事由 = Grid1.Column(COLS.事由).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_经手人 = Grid1.Column(COLS.经手人).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_单据类型 = Grid1.Column(COLS.单据类型).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_单据编号 = Grid1.Column(COLS.单据编号).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注1 = Grid1.Column(COLS.备注1).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注2 = Grid1.Column(COLS.备注2).Width + My.Settings.FORM_FINAN_RECORD_COL_WIDTH_备注3 = Grid1.Column(COLS.备注3).Width + My.Settings.FORM_FINAN_RECORD_HEIGHT = Me.Height + My.Settings.FORM_FINAN_RECORD_WIDTH = Me.Width + + My.Settings.Save() + CGirdInfo.SaveRecentList("财务_收支类别_销售", gridItemRecords_收支类别) + 'CGirdInfo.SaveRecentList("财务_收支子类别_销售", gridItemRecords_收支子类别) + CGirdInfo.SaveRecentList("财务_机种_销售", gridItemRecords_机种) + CGirdInfo.SaveRecentList("财务_交易方_销售", gridItemRecords_交易方) + CGirdInfo.SaveRecentList("财务_业务类型_销售", gridItemRecords_业务类型) + CGirdInfo.SaveRecentList("财务_单据类型_销售", gridItemRecords_单据类型) + CGirdInfo.SaveRecentSubList(gridSubList_收支类别) + End Sub + + Private Sub Form_FinancialRecords_Load(sender As Object, e As EventArgs) Handles MyBase.Load + CGirdInfo.LoadRecentList("财务_收支类别_销售", gridItemRecords_收支类别) + 'CGirdInfo.LoadRecentList("财务_收支子类别", gridItemRecords_收支子类别) + CGirdInfo.LoadRecentList("财务_机种_销售", gridItemRecords_机种) + CGirdInfo.LoadRecentList("财务_交易方_销售", gridItemRecords_交易方) + CGirdInfo.LoadRecentList("财务_业务类型_销售", gridItemRecords_业务类型) + CGirdInfo.LoadRecentList("财务_单据类型_销售", gridItemRecords_单据类型) + CGirdInfo.LoadRecentSubList("财务_收支类别_销售", gridSubList_收支类别) + + gridItemRecords_收支子类别 = Nothing + + FillGridHeaderByDataTable() + End Sub + + + Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click + Grid1.Selection.InsertRows() + UpdateItemSN() + End Sub + + Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click + Grid1.Selection.DeleteByRow() + UpdateItemSN() + End Sub + + Private Sub 新建NToolStripButton_Click(sender As Object, e As EventArgs) Handles 新建NToolStripButton.Click + FillGridHeaderByDataTable() + End Sub + Private Sub 保存SToolStripButton_Click(sender As Object, e As EventArgs) Handles 保存SToolStripButton.Click + If CheckAllRowValid() = False Then + MsgBox("输入信息存在错误!") + Return + End If + + '计算余额 + Dim dblBalance As Double = 0 + If GetLatestBalance(dblBalance) = False Then + MsgBox("查询余额失败!") + Return + End If + + '计算各个有效列对应的余额 + Dim dblIncom As Double = 0 + Dim dblExpenditure As Double = 0 + For row = 1 To Grid1.Rows - 1 + If Grid1.Cell(row, COLS.序号).BackColor = Color.Green Then + dblIncom = Grid1.Cell(row, COLS.收入).Text + dblExpenditure = Grid1.Cell(row, COLS.支出).Text + dblBalance += dblIncom + dblBalance -= dblExpenditure + + Grid1.Cell(row, COLS.余额).Text = dblBalance + End If + Next + + '更新"记录日期"及"记录时间" + Dim mCurrDateTime As Date = Now + For row = 1 To Grid1.Rows - 1 + If Grid1.Cell(row, COLS.序号).BackColor = Color.Green Then + Grid1.Cell(row, COLS.记录日期).Text = mCurrDateTime.ToString("yyyy-MM-dd") + Grid1.Cell(row, COLS.记录时间).Text = mCurrDateTime.ToString("HH:mm:ss") + End If + Next + + + '将列表中的数据保存到数据库中 + If SaveFinancialRecordItems() = True Then + MsgBox("保存成功!") + Else + MsgBox("保存失败!") + End If + + '更新历史列表 + SaveRecentList() + End Sub + + Private Function SaveRecentList() As Boolean + For row As Integer = 1 To Grid1.Rows - 1 + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.机种).Text, gridItemRecords_机种) + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.交易方).Text, gridItemRecords_交易方) + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.业务类型).Text, gridItemRecords_业务类型) + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.单据类型).Text, gridItemRecords_单据类型) + CGirdInfo.AddToRecentList(Grid1.Cell(row, COLS.收支类别).Text, gridItemRecords_收支类别) + If Grid1.Cell(row, COLS.收支类别).Text.Length > 0 AndAlso Grid1.Cell(row, COLS.收支子类别).Text.Length > 0 Then + CGirdInfo.AddToRecentSubList("财务_收支类别_销售", Grid1.Cell(row, COLS.收支类别).Text, Grid1.Cell(row, COLS.收支子类别).Text, gridSubList_收支类别) + End If + Next + + SetGridDataSource() + + Return True + End Function + + Private Function CheckRowValid(ByVal rowIndex As Integer) As Boolean + Dim checkResult As Boolean = True + + If Grid1.Cell(rowIndex, COLS.日期).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.日期).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.日期).BackColor = Color.Green + End If + + Dim strVal1 As String = Grid1.Cell(rowIndex, COLS.收入).Text + Dim strVal2 As String = Grid1.Cell(rowIndex, COLS.支出).Text + Dim DataValid1 As Boolean = False + Dim DataValid2 As Boolean = False + If strVal1.Length > 0 AndAlso strVal1 <> "0" Then + DataValid1 = isDoubleValue(strVal1) + + If DataValid1 = False Then + Grid1.Cell(rowIndex, COLS.收入).BackColor = Color.Red + Else + Grid1.Cell(rowIndex, COLS.收入).BackColor = Color.Green + End If + End If + If strVal2.Length > 0 AndAlso strVal2 <> "0" Then + DataValid2 = isDoubleValue(strVal2) + + If DataValid2 = False Then + Grid1.Cell(rowIndex, COLS.支出).BackColor = Color.Red + Else + Grid1.Cell(rowIndex, COLS.支出).BackColor = Color.Green + End If + End If + + If (DataValid1 = True AndAlso DataValid2 = True) OrElse + (DataValid1 = False AndAlso DataValid2 = False) Then + Grid1.Cell(rowIndex, COLS.收入).BackColor = Color.Red + Grid1.Cell(rowIndex, COLS.支出).BackColor = Color.Red + checkResult = False + Else + If DataValid1 = False Then + Grid1.Cell(rowIndex, COLS.收入).Text = "0" + Grid1.Cell(rowIndex, COLS.收入).BackColor = Color.Green + End If + If DataValid2 = False Then + Grid1.Cell(rowIndex, COLS.支出).Text = "0" + Grid1.Cell(rowIndex, COLS.支出).BackColor = Color.Green + End If + End If + + + If Grid1.Cell(rowIndex, COLS.收支类别).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.收支类别).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.收支类别).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.收支子类别).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.收支子类别).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.收支子类别).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.机种).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.机种).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.机种).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.交易方).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.交易方).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.交易方).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.业务类型).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.业务类型).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.业务类型).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.事由).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.事由).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.事由).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.经手人).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.经手人).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.经手人).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.单据类型).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.单据类型).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.单据类型).BackColor = Color.Green + End If + + If Grid1.Cell(rowIndex, COLS.单据编号).Text.Length = 0 Then + Grid1.Cell(rowIndex, COLS.单据编号).BackColor = Color.Red + checkResult = False + Else + Grid1.Cell(rowIndex, COLS.单据编号).BackColor = Color.Green + End If + + + Return checkResult + End Function + + Private Function CheckAllRowValid() As Boolean + '清除表状态 + For row As Integer = 1 To Grid1.Rows - 1 + For col As Integer = 0 To Grid1.Cols - 1 + Grid1.Cell(row, col).BackColor = Color.White + Next + Next + + Dim checkResult As Boolean = True + Dim isEmpty As Boolean = True + For row As Integer = 1 To Grid1.Rows - 1 + If Grid1.Cell(row, COLS.日期).Text.Length > 0 Then + isEmpty = False + If CheckRowValid(row) = False Then + checkResult = False + Else + Grid1.Cell(row, COLS.序号).BackColor = Color.Green + End If + End If + Next + + If isEmpty = True Then + checkResult = False + MsgBox("列表为空!") + End If + + Return checkResult + End Function + + Private Function SaveFinancialRecordItems() As Boolean + Dim row As Integer + Dim col As Integer + Dim result As Boolean = True + + 'INSERT INTO table_name(col_name,...) values(expr,...) + Dim strInsert As String = "INSERT INTO `" & cst_TABLE_NAME & "` " + Dim insertItems As String = "" + For col = 0 To COLS.max - 1 + If m_COLS_NAME(col, COLS_PROP.Insert) = "1" Then + If insertItems.Length > 0 Then + insertItems &= "," + End If + insertItems &= "`" & m_COLS_NAME(col, 0) & "`" + End If + Next + + '增加“操作人”字段 + insertItems &= ",`操作人`" + + For row = 1 To Grid1.Rows - 1 + If Grid1.Cell(row, COLS.序号).BackColor = Color.Green Then + Dim insertValues As String = "" + + For col = 0 To COLS.max - 1 + If m_COLS_NAME(col, COLS_PROP.Insert) = "1" Then + If insertValues.Length > 0 Then + insertValues &= "," + End If + + If Grid1.Column(col).CellType = FlexCell.CellTypeEnum.CheckBox Then + If Grid1.Cell(row, col).BooleanValue = True Then + insertValues &= "'1'" + Else + insertValues &= "'0'" + End If + Else + insertValues &= "'" & Grid1.Cell(row, col).Text & "'" + End If + End If + Next + + insertValues &= "," & "'" & Current_UserName & "'" + + Dim strSQL As String = strInsert & "(" & insertItems & ") values(" & insertValues & ")" + If SQL_ExeCommand(COL_RIGHTS.财务管理, strSQL) = False Then + result = False + Exit For + End If + End If + Next + + Return result + End Function + + Private Sub UpdateItemSN() + For row As Integer = 1 To Grid1.Rows - 1 + Grid1.Cell(row, COLS.序号).Text = row + Next + End Sub + + Private Sub Grid1_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles Grid1.CellChange + If e.Row > 0 AndAlso e.Col = COLS.收支类别 Then + Grid1.Cell(e.Row, COLS.收支子类别).Text = "" + + ''查找当前“收支类别”对应的子类别 + 'If Grid1.Cell(e.Row, COLS.收支类别).Text.Length > 0 Then + ' CGirdInfo.GetRecentSubList("财务_收支类别", Grid1.Cell(e.Row, COLS.收支类别).Text, gridSubList_收支类别, gridItemRecords_收支子类别) + ' SetGridDataSource() + 'End If + End If + End Sub + + Private Sub Grid1_RowColChange(Sender As Object, e As FlexCell.Grid.RowColChangeEventArgs) Handles Grid1.RowColChange + If e.Row > 0 AndAlso e.Col = COLS.收支子类别 Then + '查找当前“收支类别”对应的子类别 + If Grid1.Cell(e.Row, COLS.收支类别).Text.Length > 0 Then + CGirdInfo.GetRecentSubList("财务_收支类别_销售", Grid1.Cell(e.Row, COLS.收支类别).Text, gridSubList_收支类别, gridItemRecords_收支子类别) + SetGridDataSource() + End If + End If + End Sub + + Private Function GetLatestBalance(ByRef rBalance As Double) As Boolean + Dim result As Boolean = False + Dim strSQL As String = "SELECT `" & m_COLS_NAME(COLS.余额, COLS_PROP.Name) & "` FROM `" & cst_TABLE_NAME & "` WHERE `" & m_COLS_NAME(COLS.序号, COLS_PROP.Name) & "`= (SELECT max(`" & m_COLS_NAME(COLS.序号, COLS_PROP.Name) & "`) FROM `" & cst_TABLE_NAME & "`)" + + rBalance = 0 + + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If SQL_Query(COL_RIGHTS.财务管理, strSQL, m_Table) = True Then + Try + rBalance = m_Table.Rows(0).Item(0) + Catch ex As Exception + End Try + result = True + End If + + Return result + End Function +End Class \ No newline at end of file diff --git a/WT-DMS/Form_LogManage.Designer.vb b/WT-DMS/Form_LogManage.Designer.vb new file mode 100644 index 0000000..9fe5b28 --- /dev/null +++ b/WT-DMS/Form_LogManage.Designer.vb @@ -0,0 +1,81 @@ + _ +Partial Class Form_LogManage + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form_LogManage)) + Me.Grid1 = New FlexCell.Grid() + Me.btAdd = New System.Windows.Forms.Button() + Me.btDelete = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'Grid1 + ' + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.Location = New System.Drawing.Point(12, 12) + Me.Grid1.MultiSelect = False + Me.Grid1.Name = "Grid1" + Me.Grid1.Size = New System.Drawing.Size(600, 503) + Me.Grid1.TabIndex = 1 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'btAdd + ' + Me.btAdd.Location = New System.Drawing.Point(618, 12) + Me.btAdd.Name = "btAdd" + Me.btAdd.Size = New System.Drawing.Size(93, 23) + Me.btAdd.TabIndex = 2 + Me.btAdd.Text = "Add" + Me.btAdd.UseVisualStyleBackColor = True + ' + 'btDelete + ' + Me.btDelete.Location = New System.Drawing.Point(618, 41) + Me.btDelete.Name = "btDelete" + Me.btDelete.Size = New System.Drawing.Size(93, 23) + Me.btDelete.TabIndex = 2 + Me.btDelete.Text = "Delete" + Me.btDelete.UseVisualStyleBackColor = True + ' + 'Form_LogManage + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(723, 527) + Me.Controls.Add(Me.btDelete) + Me.Controls.Add(Me.btAdd) + Me.Controls.Add(Me.Grid1) + Me.Name = "Form_LogManage" + Me.Text = "系统记录管理" + Me.ResumeLayout(False) + + End Sub + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents btAdd As System.Windows.Forms.Button + Friend WithEvents btDelete As System.Windows.Forms.Button +End Class diff --git a/WT-DMS/Form_LogManage.resx b/WT-DMS/Form_LogManage.resx new file mode 100644 index 0000000..16faba9 --- /dev/null +++ b/WT-DMS/Form_LogManage.resx @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAD/j/////+AAP+P/w///4AA/4/wAP//gAD/jwAAD/+AAP+PAPAA/4AA/48P/wAPgAD/j///8A+A + AP+P////D4AA/4//////gAD/iIiIiIiAAP8= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAD/j/////+AAP+P/////4AA/4//////gAD/j/////+AAP+P/////4AA/4//////gAD/j/////+A + AP+P/////4AA/4//////gAD/iIiIiIiAAP8= + + + \ No newline at end of file diff --git a/WT-DMS/Form_LogManage.vb b/WT-DMS/Form_LogManage.vb new file mode 100644 index 0000000..c660e89 --- /dev/null +++ b/WT-DMS/Form_LogManage.vb @@ -0,0 +1,3 @@ +Public Class Form_LogManage + +End Class \ No newline at end of file diff --git a/WT-DMS/Form_QueryStorage.Designer.vb b/WT-DMS/Form_QueryStorage.Designer.vb new file mode 100644 index 0000000..8750e2d --- /dev/null +++ b/WT-DMS/Form_QueryStorage.Designer.vb @@ -0,0 +1,157 @@ + _ +Partial Class Form_QueryStorage + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form_QueryStorage)) + Me.Grid1 = New FlexCell.Grid() + Me.Label1 = New System.Windows.Forms.Label() + Me.tb_PN = New System.Windows.Forms.TextBox() + Me.bt_Add = New System.Windows.Forms.Button() + Me.bt_Query = New System.Windows.Forms.Button() + Me.bt_Delete = New System.Windows.Forms.Button() + Me.bt_Clear = New System.Windows.Forms.Button() + Me.lbl_Result = New System.Windows.Forms.Label() + Me.btn_SaveAs = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'Grid1 + ' + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.Cols = 7 + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.Location = New System.Drawing.Point(12, 82) + Me.Grid1.Name = "Grid1" + Me.Grid1.Rows = 500 + Me.Grid1.Size = New System.Drawing.Size(741, 524) + Me.Grid1.TabIndex = 5 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(13, 13) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(29, 12) + Me.Label1.TabIndex = 3 + Me.Label1.Text = "料号" + ' + 'tb_PN + ' + Me.tb_PN.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper + Me.tb_PN.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_PN.Location = New System.Drawing.Point(60, 10) + Me.tb_PN.MaxLength = 32 + Me.tb_PN.Name = "tb_PN" + Me.tb_PN.Size = New System.Drawing.Size(239, 21) + Me.tb_PN.TabIndex = 0 + ' + 'bt_Add + ' + Me.bt_Add.Location = New System.Drawing.Point(220, 37) + Me.bt_Add.Name = "bt_Add" + Me.bt_Add.Size = New System.Drawing.Size(79, 23) + Me.bt_Add.TabIndex = 1 + Me.bt_Add.Text = "添加料号" + Me.bt_Add.UseVisualStyleBackColor = True + ' + 'bt_Query + ' + Me.bt_Query.Location = New System.Drawing.Point(305, 10) + Me.bt_Query.Name = "bt_Query" + Me.bt_Query.Size = New System.Drawing.Size(100, 50) + Me.bt_Query.TabIndex = 2 + Me.bt_Query.Text = "查询" + Me.bt_Query.UseVisualStyleBackColor = True + ' + 'bt_Delete + ' + Me.bt_Delete.Location = New System.Drawing.Point(12, 37) + Me.bt_Delete.Name = "bt_Delete" + Me.bt_Delete.Size = New System.Drawing.Size(75, 23) + Me.bt_Delete.TabIndex = 3 + Me.bt_Delete.Text = "删除" + Me.bt_Delete.UseVisualStyleBackColor = True + ' + 'bt_Clear + ' + Me.bt_Clear.Location = New System.Drawing.Point(93, 37) + Me.bt_Clear.Name = "bt_Clear" + Me.bt_Clear.Size = New System.Drawing.Size(75, 23) + Me.bt_Clear.TabIndex = 4 + Me.bt_Clear.Text = "清空" + Me.bt_Clear.UseVisualStyleBackColor = True + ' + 'lbl_Result + ' + Me.lbl_Result.AutoSize = True + Me.lbl_Result.ForeColor = System.Drawing.Color.Blue + Me.lbl_Result.Location = New System.Drawing.Point(12, 67) + Me.lbl_Result.Name = "lbl_Result" + Me.lbl_Result.Size = New System.Drawing.Size(0, 12) + Me.lbl_Result.TabIndex = 8 + ' + 'btn_SaveAs + ' + Me.btn_SaveAs.Location = New System.Drawing.Point(458, 10) + Me.btn_SaveAs.Name = "btn_SaveAs" + Me.btn_SaveAs.Size = New System.Drawing.Size(159, 50) + Me.btn_SaveAs.TabIndex = 9 + Me.btn_SaveAs.Text = "另存为。。。" + Me.btn_SaveAs.UseVisualStyleBackColor = True + ' + 'Form_QueryStorage + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(765, 618) + Me.Controls.Add(Me.btn_SaveAs) + Me.Controls.Add(Me.lbl_Result) + Me.Controls.Add(Me.bt_Clear) + Me.Controls.Add(Me.bt_Delete) + Me.Controls.Add(Me.bt_Query) + Me.Controls.Add(Me.bt_Add) + Me.Controls.Add(Me.tb_PN) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.Grid1) + Me.MinimumSize = New System.Drawing.Size(100, 100) + Me.Name = "Form_QueryStorage" + Me.Text = "物料库存查询" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents tb_PN As System.Windows.Forms.TextBox + Friend WithEvents bt_Add As System.Windows.Forms.Button + Friend WithEvents bt_Query As System.Windows.Forms.Button + Friend WithEvents bt_Delete As System.Windows.Forms.Button + Friend WithEvents bt_Clear As System.Windows.Forms.Button + Friend WithEvents lbl_Result As System.Windows.Forms.Label + Friend WithEvents btn_SaveAs As System.Windows.Forms.Button +End Class diff --git a/WT-DMS/Form_QueryStorage.resx b/WT-DMS/Form_QueryStorage.resx new file mode 100644 index 0000000..0f89e9c --- /dev/null +++ b/WT-DMS/Form_QueryStorage.resx @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + \ No newline at end of file diff --git a/WT-DMS/Form_QueryStorage.vb b/WT-DMS/Form_QueryStorage.vb new file mode 100644 index 0000000..3f518d1 --- /dev/null +++ b/WT-DMS/Form_QueryStorage.vb @@ -0,0 +1,379 @@ +Public Class Form_QueryStorage + Dim m_Table As New System.Data.DataTable + Dim 仓库列表 As New ArrayList + Dim m_PartNumber As New CPartNumber + Dim m_InitOver As Boolean = False + + Public Enum COLS + 序号 + 料号 + 物料名称 + 规格描述 + 总数量 + START + End Enum + + Private Function GetStoreList() As Boolean + Dim m_Store As New CStore + + 仓库列表.Clear() + + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If m_Store.QueryAll(m_Table) = ERROR_CODE.SUCCESS Then + For i As Integer = 0 To m_Table.Rows.Count - 1 + 仓库列表.Add(m_Table.Rows(i).Item(CStore.COLS.仓库名称)) + Next + Return True + End If + + Return False + End Function + + Private Sub Set_GridTitles() + Grid1.Rows = 500 + Grid1.Cols = 5 + Grid1.Cell(0, COLS.序号).Text = "序号" + Grid1.Cell(0, COLS.料号).Text = "料号" + Grid1.Cell(0, COLS.物料名称).Text = "物料名称" + Grid1.Cell(0, COLS.规格描述).Text = "规格描述" + Grid1.Cell(0, COLS.总数量).Text = "总数量" + Dim col As Integer = COLS.START + For Each pItem As String In 仓库列表 + Grid1.Cols += 1 + Grid1.Cell(0, col).Text = pItem + col += 1 + 'V1.6.0.0 Momo: 查库存同时查库位 + Grid1.Cols += 1 + Grid1.Cell(0, col).Text = "库位" 'V1.6.0.0 Momo: 查库存同时查库位 + col += 1 + + Next + + Grid1.FixedRows = 1 + Grid1.FixedCols = 1 + End Sub + + Private Sub Form_QueryStorage_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + + Me.Width = My.Settings.FORM_QUERYSTORAGE_WIDTH + Me.Height = My.Settings.FORM_QUERYSTORAGE_HEIGHT + Me.Left = My.Settings.FORM_QUERYSTORAGE_X + Me.Top = My.Settings.FORM_QUERYSTORAGE_Y + Me.WindowState = My.Settings.FORM_QUERYSTORAGE_WINSTATE + + + If CBool(Current_Rights(COL_RIGHTS.料号管理) And RIGHTS.READ) = False OrElse + CBool(Current_Rights(COL_RIGHTS.原料库存管理) And RIGHTS.READ) = False Then + bt_Query.Enabled = False + bt_Add.Enabled = False + End If + + If GetStoreList() = False Then + MsgBox("无法获取仓库列表,请检查网络连接!") + End If + + Set_GridTitles() + + CGirdInfo.LoadGridInfo("物料库存查询", Grid1) + + m_InitOver = True + End Sub + + Private Sub bt_Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Add.Click + + Grid1.NewFile() + Set_GridTitles() + + If Not m_Table Is Nothing Then + m_Table.Dispose() + End If + m_Table = New DataTable + + QueryData_Quick() + + Grid1.AllowUserSort = False + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + 'Grid1.SetDataBinding(m_Table, "", True, 1) + If m_Table.Rows.Count < 500 Then + Grid1.Rows = 500 + Else + Grid1.Rows = m_Table.Rows.Count + End If + + For i As Integer = 0 To m_Table.Rows.Count - 1 + Grid1.Cell(i + 1, COLS.料号).Text = m_Table.Rows(i).Item(0) + Next + + For i As Integer = 1 To Grid1.Rows - 1 + Grid1.Cell(i, 0).Text = i + Next + + CGirdInfo.LoadGridInfo("料号查询", Grid1) + Grid1.AllowUserSort = True + + 'Grid1.Locked = True + End Sub + + Private Sub bt_Clear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Clear.Click + Grid1.Rows = 1 + End Sub + + Private Sub bt_Delete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Delete.Click + If Grid1.Selection.FirstRow >= 1 Then + Grid1.RemoveItem(Grid1.Selection.FirstRow) + Grid1.Selection.ClearAll() + End If + End Sub + + Private Function QueryStorageCount(ByVal storeIndex As Integer, ByVal PartNumber As String, ByRef rCount As Integer) As Boolean + Dim strSelect As String = "SELECT SUM(`" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.数量) & "`) FROM " + strSelect &= "`" & CMaterialInOut.cst_TABLE_NAME & "` " + strSelect &= " WHERE `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.料号PN) & "` COLLATE gbk_chinese_ci = '" & PartNumber & "' " + strSelect &= "AND `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.仓库) & "` = '" & 仓库列表.Item(storeIndex) & "' " + + '查询入库数量 + Dim result As Boolean = False + Dim Count_In As Integer = 0 + Dim strSQL As String = strSelect + strSQL &= "AND `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.入库出库) & "` = '0'" + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If SQL_Query(COL_RIGHTS.原料库存管理, strSQL, m_Table) = True Then + Try + Count_In = m_Table.Rows(0).Item(0) + Catch ex As Exception + Count_In = 0 + End Try + + result = True + End If + + '查询出库数量 + Dim Count_Out As Integer = 0 + strSQL = strSelect + strSQL &= "AND `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.入库出库) & "` = '1'" + If result Then + result = False + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If SQL_Query(COL_RIGHTS.原料库存管理, strSQL, m_Table) = True Then + Try + Count_Out = m_Table.Rows(0).Item(0) + Catch ex As Exception + Count_Out = 0 + End Try + result = True + End If + End If + + rCount = Count_In - Count_Out + + Return result + End Function + + Private Function QueryStorageLocation(ByVal storeIndex As Integer, ByVal PartNumber As String, ByRef dataTable As System.Data.DataTable) As Boolean + Dim strSelect As String = "SELECT DISTINCT `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.库位) & "` FROM " + strSelect &= "`" & CMaterialInOut.cst_TABLE_NAME & "` " + strSelect &= " WHERE `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.料号PN) & "` COLLATE gbk_chinese_ci = '" & PartNumber & "' " + strSelect &= "AND `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.仓库) & "` = '" & 仓库列表.Item(storeIndex) & "' " + + '查询入库数量 + Dim result As Boolean = False + Dim strSQL As String = strSelect + strSQL &= "AND `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.库位库存) & "` > '0'" + dataTable.Rows.Clear() + dataTable.Columns.Clear() + If SQL_Query(COL_RIGHTS.原料库存管理, strSQL, dataTable) = True Then + result = True + End If + + Return result + End Function + + Private Sub bt_Query_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Query.Click + lbl_Result.Text = "" + Grid1.AutoRedraw = False + + '检测查询列是否有效 + If Grid1.Rows > 1 Then + Dim col As Integer + Dim row As Integer + + '清除每行的颜色 + For row = 1 To Grid1.Rows - 1 + Grid1.Cell(row, 1).BackColor = Grid1.Cell(0, 0).BackColor + Next + + Dim result As Boolean + Dim rCount As Integer = 0 + Dim TotalCount As Integer = 0 + Dim OK_Cnt As Integer = 0 + Dim Fail_Cnt As Integer = 0 + + Dim m_物料名称 As String = "" + Dim m_规格描述 As String = "" + Dim m_单位 As String = "" + Dim m_单重 As Double = 0.0 + Dim m_供应商ID As String = "" + + For row = 1 To Grid1.Rows - 1 + Grid1.Cell(row, 0).Text = row + result = False + TotalCount = 0 + col = COLS.START + For i As Integer = 0 To 仓库列表.Count - 1 + 'V1.6.0.0 Momo 增加对空白栏的检测 + Dim temp_tb_PN = Grid1.Cell(row, COLS.料号).Text + If temp_tb_PN.Length > 0 Then + '检测料号是否有效 + Dim isExist As Boolean = True + If m_PartNumber.CheckPartNumber(temp_tb_PN, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + 'MsgBox("当前料号不存在: " & tb_PN.Text) + result = False + Else + '查询料号信息 + m_物料名称 = "" + m_规格描述 = "" + m_单位 = "" + m_单重 = 0.0 + m_供应商ID = "" + If m_PartNumber.QueryItem(temp_tb_PN, m_物料名称, m_规格描述, m_单位, m_单重, m_供应商ID) = ERROR_CODE.SUCCESS Then + Grid1.Cell(row, COLS.物料名称).Text = m_物料名称 + Grid1.Cell(row, COLS.规格描述).Text = m_规格描述 + End If + + If QueryStorageCount(i, Grid1.Cell(row, COLS.料号).Text, rCount) = True Then + Grid1.Cell(row, col).Text = rCount + TotalCount += rCount + Grid1.Cell(row, 1).ForeColor = Color.Green + result = True + Else + Grid1.Cell(row, 1).ForeColor = Color.Red + result = False + End If + + Dim strLoc As String = "" + If QueryStorageLocation(i, Grid1.Cell(row, COLS.料号).Text, m_Table) = True Then + If m_Table.Rows.Count > 0 Then + For k As Integer = 0 To m_Table.Rows.Count - 1 + Dim isExit As Boolean + If m_PartNumber.GetStockSum(仓库列表.Item(i), m_Table.Rows(k).Item(0), isExit) <= 0 Then '若库位库存量为0则跳过本次循环 + Continue For + End If + If strLoc.Length > 0 Then + strLoc &= "," + End If + strLoc &= m_Table.Rows(k).Item(0) + Next + End If + End If + Grid1.Cell(row, col + 1).Text = strLoc + Grid1.Cell(row, 4).Font = New Font("Arial", 8) + Grid1.Cell(row, 4).FontSize = 11 + Grid1.Cell(row, 4).Alignment = FlexCell.AlignmentEnum.CenterCenter + Grid1.Cell(row, 4).FontBold = True + Grid1.Cell(row, 4).ForeColor = Color.Blue + + Grid1.Cell(row, 5).Alignment = FlexCell.AlignmentEnum.CenterCenter + Grid1.Cell(row, 6).Alignment = FlexCell.AlignmentEnum.CenterCenter + Grid1.Cell(row, 7).Alignment = FlexCell.AlignmentEnum.CenterCenter + Grid1.Cell(row, 8).Alignment = FlexCell.AlignmentEnum.CenterCenter + + End If + Else + 'MsgBox("访问数据库失败: 请检查网络连接或联系管理员!") + result = False + End If + Else + result = False + End If + col += 2 + Next i + + If result = True Then + Grid1.Cell(row, COLS.总数量).Text = TotalCount + OK_Cnt += 1 + Else + Fail_Cnt += 1 + End If + Next row + + lbl_Result.Text = "查询完成: 共" & OK_Cnt + Fail_Cnt & "条, 成功" & OK_Cnt & "条" + End If + + 'Format + + Grid1.Refresh() + Grid1.AutoRedraw = True + 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_QueryStorage_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize + If m_InitOver = True Then + My.Settings.FORM_QUERYSTORAGE_WIDTH = Me.Width + My.Settings.FORM_QUERYSTORAGE_HEIGHT = Me.Height + My.Settings.FORM_QUERYSTORAGE_WINSTATE = Me.WindowState + My.Settings.Save() + End If + End Sub + + Private Sub Form_QueryStorage_LocationChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LocationChanged + If m_InitOver = True Then + My.Settings.FORM_QUERYSTORAGE_X = Me.Left + My.Settings.FORM_QUERYSTORAGE_Y = Me.Top + My.Settings.Save() + End If + End Sub + ' V1.6.0.0 Momo 库存页面增加模糊查询 + Private Sub QueryData_Quick() + Dim strSQL As String = "SELECT `" & + CPartNumber.m_COLS_NAME(CPartNumber.COLS.料号PN) & "`" + strSQL &= " FROM `" & CPartNumber.cst_TABLE_NAME & "`" + + If tb_PN.Text.Length > 0 Then + strSQL &= " WHERE " + + Dim strSplit() As String + Dim firstLike As Boolean = True + If tb_PN.Text.Length > 0 Then + strSplit = Split(tb_PN.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 &= form_QuerySim.GetLikeString(strSplit(i)) & "%'" + strSQL &= " escape '/'" + Next + End If + End If + SQL_Query(COL_RIGHTS.料号管理, strSQL, m_Table) + End Sub + + Private Sub btn_SaveAs_Click(sender As Object, e As EventArgs) Handles btn_SaveAs.Click + Dim dlg As New SaveFileDialog() + dlg.DefaultExt = "xls" + dlg.Filter = "Excel File|*.xls" + If dlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return + + If Grid1.ExportToExcel(dlg.FileName, True, True) Then + MsgBox("保存为Excel成功:" & dlg.FileName) + Else + MsgBox("保存失败!") + End If + End Sub +End Class \ No newline at end of file diff --git a/WT-DMS/Form_QueryStorageRecord.Designer.vb b/WT-DMS/Form_QueryStorageRecord.Designer.vb new file mode 100644 index 0000000..9216455 --- /dev/null +++ b/WT-DMS/Form_QueryStorageRecord.Designer.vb @@ -0,0 +1,121 @@ + _ +Partial Class Form_QueryStorageRecord + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form_QueryStorageRecord)) + Me.Grid1 = New FlexCell.Grid() + Me.Label1 = New System.Windows.Forms.Label() + Me.tb_PN = New System.Windows.Forms.TextBox() + Me.bt_Query = New System.Windows.Forms.Button() + Me.lbl_Result = New System.Windows.Forms.Label() + Me.btn_SaveAs = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'Grid1 + ' + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.Cols = 7 + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.Location = New System.Drawing.Point(12, 72) + Me.Grid1.Name = "Grid1" + Me.Grid1.Rows = 500 + Me.Grid1.Size = New System.Drawing.Size(741, 534) + Me.Grid1.TabIndex = 5 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(13, 13) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(137, 12) + Me.Label1.TabIndex = 3 + Me.Label1.Text = "料号: (不支持模糊查询)" + ' + 'tb_PN + ' + Me.tb_PN.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper + Me.tb_PN.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_PN.Location = New System.Drawing.Point(12, 28) + Me.tb_PN.MaxLength = 32 + Me.tb_PN.Name = "tb_PN" + Me.tb_PN.Size = New System.Drawing.Size(292, 21) + Me.tb_PN.TabIndex = 0 + ' + 'bt_Query + ' + Me.bt_Query.Location = New System.Drawing.Point(306, 13) + Me.bt_Query.Name = "bt_Query" + Me.bt_Query.Size = New System.Drawing.Size(100, 37) + Me.bt_Query.TabIndex = 2 + Me.bt_Query.Text = "查询" + Me.bt_Query.UseVisualStyleBackColor = True + ' + 'lbl_Result + ' + Me.lbl_Result.AutoSize = True + Me.lbl_Result.ForeColor = System.Drawing.Color.Blue + Me.lbl_Result.Location = New System.Drawing.Point(12, 57) + Me.lbl_Result.Name = "lbl_Result" + Me.lbl_Result.Size = New System.Drawing.Size(0, 12) + Me.lbl_Result.TabIndex = 8 + ' + 'btn_SaveAs + ' + Me.btn_SaveAs.Location = New System.Drawing.Point(417, 13) + Me.btn_SaveAs.Name = "btn_SaveAs" + Me.btn_SaveAs.Size = New System.Drawing.Size(179, 37) + Me.btn_SaveAs.TabIndex = 9 + Me.btn_SaveAs.Text = "保存为Excel表格" + Me.btn_SaveAs.UseVisualStyleBackColor = True + ' + 'Form_QueryStorageRecord + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(765, 618) + Me.Controls.Add(Me.btn_SaveAs) + Me.Controls.Add(Me.lbl_Result) + Me.Controls.Add(Me.bt_Query) + Me.Controls.Add(Me.tb_PN) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.Grid1) + Me.MinimumSize = New System.Drawing.Size(100, 100) + Me.Name = "Form_QueryStorageRecord" + Me.Text = "物料出入库记录查询" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents tb_PN As System.Windows.Forms.TextBox + Friend WithEvents bt_Query As System.Windows.Forms.Button + Friend WithEvents lbl_Result As System.Windows.Forms.Label + Friend WithEvents btn_SaveAs As System.Windows.Forms.Button +End Class diff --git a/WT-DMS/Form_QueryStorageRecord.resx b/WT-DMS/Form_QueryStorageRecord.resx new file mode 100644 index 0000000..0f89e9c --- /dev/null +++ b/WT-DMS/Form_QueryStorageRecord.resx @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + \ No newline at end of file diff --git a/WT-DMS/Form_QueryStorageRecord.vb b/WT-DMS/Form_QueryStorageRecord.vb new file mode 100644 index 0000000..992bc27 --- /dev/null +++ b/WT-DMS/Form_QueryStorageRecord.vb @@ -0,0 +1,218 @@ +Public Class Form_QueryStorageRecord + Dim m_Table As New System.Data.DataTable + Dim 仓库列表 As New ArrayList + Dim m_PartNumber As New CPartNumber + Dim m_InitOver As Boolean = False + + Public Enum COLS + 序号 + 日期 + 时间 + 仓库 + 库位 + 入库 + 出库 + 库位库存 + 总结余 + 用途 + 操作员ID + max + End Enum + + Public Shared m_COLS_NAME() As String = { + "序号", + "日期", + "时间", + "仓库", + "库位", + "入库", + "出库", + "库位库存", + "总结余", + "用途", + "操作员ID" + } + + + Private Sub Set_GridTitles() + Grid1.NewFile() + + Grid1.Rows = 1 + Grid1.Cols = COLS.max + + For i As Integer = 0 To COLS.max - 1 + Grid1.Cell(0, i).Text = m_COLS_NAME(i) + Next + + Grid1.FixedRows = 1 + Grid1.FixedCols = 1 + End Sub + + Private Sub Form_QueryStorage_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Me.Width = My.Settings.FORM_QUERYSTORAGE_WIDTH + Me.Height = My.Settings.FORM_QUERYSTORAGE_HEIGHT + Me.Left = My.Settings.FORM_QUERYSTORAGE_X + Me.Top = My.Settings.FORM_QUERYSTORAGE_Y + Me.WindowState = My.Settings.FORM_QUERYSTORAGE_WINSTATE + + If CBool(Current_Rights(COL_RIGHTS.料号管理) And RIGHTS.READ) = False OrElse + CBool(Current_Rights(COL_RIGHTS.原料库存管理) And RIGHTS.READ) = False Then + bt_Query.Enabled = False + End If + + Set_GridTitles() + + m_InitOver = True + End Sub + + Private Function QueryStorageInOutRecords(ByVal PartNumber As String, ByRef dataTable As Data.DataTable) As Boolean + ' Dim selectItem As String = "`日期`,`时间`,`仓库`,`库位`,`入库出库`,`数量`,`用途`,`操作员ID`" + + '================================================================================================= + '获取需要的数据列 + Dim selectItem As String = "`日期`,`时间`,`仓库`,`库位`,`入库出库`,`数量`,`用途`,`操作员ID`,`库位库存`" + '================================================================================================= + Dim strSelect As String = "SELECT " & selectItem + strSelect &= " FROM `" & CMaterialInOut.cst_TABLE_NAME & "` " + ' strSelect &= " WHERE `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.料号PN) & "` COLLATE gbk_chinese_ci = '" & PartNumber & "' " + strSelect &= " WHERE `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.料号PN) & "`= '" & PartNumber & "' " + '查询入库数量 + Dim result As Boolean = False + Dim strSQL As String = strSelect + dataTable.Rows.Clear() + dataTable.Columns.Clear() + If SQL_Query(COL_RIGHTS.原料库存管理, strSQL, dataTable) = True Then + result = True + End If + + Return result + End Function + + Private Sub bt_Query_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Query.Click + lbl_Result.Text = "" + + If tb_PN.Text.Length = 0 Then + MsgBox("请指定料号!") + Return + End If + + Dim row As Integer + Dim totalCount As Long = 0 + Dim inOutFlag As Boolean = False + + Set_GridTitles() + + If QueryStorageInOutRecords(tb_PN.Text, m_Table) = True Then + If m_Table.Rows.Count > 0 Then + Grid1.Rows = m_Table.Rows.Count + 1 + For row = 0 To m_Table.Rows.Count - 1 + Dim insertRow As Integer = row + 1 + + Grid1.Cell(insertRow, COLS.序号).Text = row + 1 + Grid1.Cell(insertRow, COLS.日期).Text = m_Table.Rows.Item(row).Item(0).ToString + Grid1.Cell(insertRow, COLS.时间).Text = m_Table.Rows.Item(row).Item(1).ToString + Grid1.Cell(insertRow, COLS.仓库).Text = m_Table.Rows.Item(row).Item(2).ToString + Grid1.Cell(insertRow, COLS.库位).Text = m_Table.Rows.Item(row).Item(3).ToString + + inOutFlag = CBool(m_Table.Rows.Item(row).Item(4)) + If inOutFlag = True Then + Grid1.Cell(insertRow, COLS.入库).Text = "0" + Grid1.Cell(insertRow, COLS.出库).Text = m_Table.Rows.Item(row).Item(5) + Else + Grid1.Cell(insertRow, COLS.入库).Text = m_Table.Rows.Item(row).Item(5) + Grid1.Cell(insertRow, COLS.出库).Text = "0" + End If + ' Grid1.Cell(insertRow, COLS.数量).Text = m_Table.Rows.Item(row).Item(5) + + '================================================================================================= + '添加内容至表格 + Grid1.Cell(insertRow, COLS.库位库存).Text = m_Table.Rows.Item(row).Item(8) + + '================================================================================================= + Dim numCount As Long = 0 + Try + numCount = CLng(m_Table.Rows.Item(row).Item(5)) + If inOutFlag = True Then + totalCount -= numCount + Else + totalCount += numCount + End If + Catch ex As Exception + MsgBox("库存信息错误!") + Return + End Try + + Grid1.Cell(insertRow, COLS.总结余).Text = totalCount + Grid1.Cell(insertRow, COLS.用途).Text = m_Table.Rows.Item(row).Item(6) + Grid1.Cell(insertRow, COLS.操作员ID).Text = m_Table.Rows.Item(row).Item(7) + Next + End If + + lbl_Result.Text = "查询完成: 共" & m_Table.Rows.Count & "条" + 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_QueryStorage_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize + If m_InitOver = True Then + My.Settings.FORM_QUERYSTORAGE_WIDTH = Me.Width + My.Settings.FORM_QUERYSTORAGE_HEIGHT = Me.Height + My.Settings.FORM_QUERYSTORAGE_WINSTATE = Me.WindowState + My.Settings.Save() + End If + End Sub + + Private Sub Form_QueryStorage_LocationChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LocationChanged + If m_InitOver = True Then + My.Settings.FORM_QUERYSTORAGE_X = Me.Left + My.Settings.FORM_QUERYSTORAGE_Y = Me.Top + My.Settings.Save() + End If + End Sub + ' V1.6.0.0 Momo 库存页面增加模糊查询 + Private Sub QueryData_Quick() + Dim strSQL As String = "SELECT `" & + CPartNumber.m_COLS_NAME(CPartNumber.COLS.料号PN) & "`" + strSQL &= " FROM `" & CPartNumber.cst_TABLE_NAME & "`" + + If tb_PN.Text.Length > 0 Then + strSQL &= " WHERE " + + Dim strSplit() As String + Dim firstLike As Boolean = True + If tb_PN.Text.Length > 0 Then + strSplit = Split(tb_PN.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 &= form_QuerySim.GetLikeString(strSplit(i)) & "%'" + strSQL &= " escape '/'" + Next + End If + End If + SQL_Query(COL_RIGHTS.料号管理, strSQL, m_Table) + End Sub + + Private Sub btn_SaveAs_Click(sender As Object, e As EventArgs) Handles btn_SaveAs.Click + Dim dlg As New SaveFileDialog() + dlg.DefaultExt = "xls" + dlg.Filter = "Excel File|*.xls" + If dlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return + + If Grid1.ExportToExcel(dlg.FileName, True, True) Then + MsgBox("保存为Excel成功:" & dlg.FileName) + Else + MsgBox("保存失败!") + End If + End Sub + +End Class \ No newline at end of file diff --git a/WT-DMS/Form_SysLog.Designer.vb b/WT-DMS/Form_SysLog.Designer.vb new file mode 100644 index 0000000..d69f04f --- /dev/null +++ b/WT-DMS/Form_SysLog.Designer.vb @@ -0,0 +1,70 @@ + _ +Partial Class Form_SysLog + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form_SysLog)) + Me.Grid1 = New FlexCell.Grid() + Me.btRefresh = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'Grid1 + ' + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.Location = New System.Drawing.Point(12, 41) + Me.Grid1.MultiSelect = False + Me.Grid1.Name = "Grid1" + Me.Grid1.Size = New System.Drawing.Size(699, 443) + Me.Grid1.TabIndex = 1 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'btRefresh + ' + Me.btRefresh.Location = New System.Drawing.Point(12, 12) + Me.btRefresh.Name = "btRefresh" + Me.btRefresh.Size = New System.Drawing.Size(105, 23) + Me.btRefresh.TabIndex = 6 + Me.btRefresh.Text = "刷新" + Me.btRefresh.UseVisualStyleBackColor = True + ' + 'Form_SysLog + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(723, 496) + Me.Controls.Add(Me.btRefresh) + Me.Controls.Add(Me.Grid1) + Me.MinimumSize = New System.Drawing.Size(100, 100) + Me.Name = "Form_SysLog" + Me.Text = "系统记录" + Me.ResumeLayout(False) + + End Sub + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents btRefresh As System.Windows.Forms.Button +End Class diff --git a/WT-DMS/Form_SysLog.resx b/WT-DMS/Form_SysLog.resx new file mode 100644 index 0000000..559091c --- /dev/null +++ b/WT-DMS/Form_SysLog.resx @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAMAj/////+AAwCP/w///4ADAI/wAP//gAMAjwAAD/+AAwCPAPAA/4ADAI8P/wAPgAMAj///8A+A + AwCP////D4ADAI//////gAMAiIiIiIiAAwA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAMAj/////+AAwCP/////4ADAI//////gAMAj/////+AAwCP/////4ADAI//////gAMAj/////+A + AwCP/////4ADAI//////gAMAiIiIiIiAAwA= + + + \ No newline at end of file diff --git a/WT-DMS/Form_SysLog.vb b/WT-DMS/Form_SysLog.vb new file mode 100644 index 0000000..8b25030 --- /dev/null +++ b/WT-DMS/Form_SysLog.vb @@ -0,0 +1,97 @@ +Public Class Form_SysLog + Dim m_LogManage As New CLogManage + Dim m_Table As New System.Data.DataTable + Dim m_InitOver As Boolean = False + + Private Sub GetDataSet() + If Not m_Table Is Nothing Then + m_Table.Dispose() + End If + m_Table = New DataTable + + SQL_Query(COL_RIGHTS.系统记录, "SELECT * FROM `" & CLogManage.cst_TABLE_NAME & "` GROUP BY `" & CLogManage.m_COLS_NAME(CLogManage.COLS.序号) & "`", m_Table) + End Sub + + 'Private Sub bt_Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + ' If m_LogManage.AddItem("系统记录表", "添加一条", "tony") = ERROR_CODE.SUCCESS Then + ' MsgBox("OK") + ' Else + ' MsgBox("error") + ' End If + 'End Sub + + 'Private Sub btDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + ' m_LogManage.DeleteItem(1) + 'End Sub + + 'Private Sub btQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + + ' Dim rDate As Date = Now + ' Dim rData(6) As String + + ' m_LogManage.QueryItem(2, rDate, rData(1), rData(2), rData(3), rData(4), rData(5)) + 'End Sub + + 'Private Sub btGetCount_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + ' Dim count As Integer + ' m_LogManage.GetLogCounts(count) + ' MsgBox(count) + 'End Sub + + Private Sub btRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btRefresh.Click + RefreshList() + End Sub + + Private Function RefreshList() As Boolean + GetDataSet() + + Grid1.AllowUserSort = True + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + '绑定到数据源时可以指定固定行数,但绑定后不能改变Grid.FixedRows属性的值 + 'Grid1.SetDataBinding(m_Table, "products", True, 2) + Grid1.SetDataBinding(m_Table, "", True, 1) + + CGirdInfo.LoadGridInfo("系统记录", Grid1) + + Grid1.Locked = True + + Return True + End Function + + Private Sub Form_SysLog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + RefreshList() + CGirdInfo.LoadGridInfo("系统记录", Grid1) + + Me.Left = My.Settings.FORM_SYSLOG_X + Me.Top = My.Settings.FORM_SYSLOG_Y + Me.Width = My.Settings.FORM_SYSLOG_WIDTH + Me.Height = My.Settings.FORM_SYSLOG_HEIGHT + + m_InitOver = True + End Sub + + Private Sub Form_SysLog_LocationChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LocationChanged + If m_InitOver = True Then + My.Settings.FORM_SYSLOG_X = Me.Left + My.Settings.FORM_SYSLOG_Y = Me.Top + My.Settings.Save() + End If + End Sub + + Private Sub Form_SysLog_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize + If m_InitOver = True Then + My.Settings.FORM_SYSLOG_HEIGHT = Me.Height + My.Settings.FORM_SYSLOG_WIDTH = Me.Width + My.Settings.Save() + 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 +End Class \ No newline at end of file diff --git a/WT-DMS/Form_合并备料查询.Designer.vb b/WT-DMS/Form_合并备料查询.Designer.vb new file mode 100644 index 0000000..cc8e3ef --- /dev/null +++ b/WT-DMS/Form_合并备料查询.Designer.vb @@ -0,0 +1,144 @@ + _ +Partial Class Form_合并备料查询 + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form_合并备料查询)) + Me.Grid_Input = New FlexCell.Grid() + Me.Grid_QueryInfo = New FlexCell.Grid() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.Label1 = New System.Windows.Forms.Label() + Me.bt_Go = New System.Windows.Forms.Button() + Me.bt_ExportResult = New System.Windows.Forms.Button() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + Me.SuspendLayout() + ' + 'Grid_Input + ' + Me.Grid_Input.AllowUserSort = True + Me.Grid_Input.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid_Input.CheckedImage = CType(resources.GetObject("Grid_Input.CheckedImage"), System.Drawing.Bitmap) + Me.Grid_Input.Cols = 7 + Me.Grid_Input.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid_Input.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid_Input.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid_Input.ImeMode = System.Windows.Forms.ImeMode.[On] + Me.Grid_Input.Location = New System.Drawing.Point(4, 56) + Me.Grid_Input.Name = "Grid_Input" + Me.Grid_Input.Rows = 500 + Me.Grid_Input.Size = New System.Drawing.Size(365, 585) + Me.Grid_Input.TabIndex = 7 + Me.Grid_Input.UncheckedImage = CType(resources.GetObject("Grid_Input.UncheckedImage"), System.Drawing.Bitmap) + ' + 'Grid_QueryInfo + ' + Me.Grid_QueryInfo.AllowUserSort = True + Me.Grid_QueryInfo.CheckedImage = CType(resources.GetObject("Grid_QueryInfo.CheckedImage"), System.Drawing.Bitmap) + Me.Grid_QueryInfo.Cols = 7 + Me.Grid_QueryInfo.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid_QueryInfo.Dock = System.Windows.Forms.DockStyle.Fill + Me.Grid_QueryInfo.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid_QueryInfo.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid_QueryInfo.ImeMode = System.Windows.Forms.ImeMode.[On] + Me.Grid_QueryInfo.Location = New System.Drawing.Point(0, 0) + Me.Grid_QueryInfo.Name = "Grid_QueryInfo" + Me.Grid_QueryInfo.Rows = 500 + Me.Grid_QueryInfo.Size = New System.Drawing.Size(738, 644) + Me.Grid_QueryInfo.TabIndex = 7 + Me.Grid_QueryInfo.UncheckedImage = CType(resources.GetObject("Grid_QueryInfo.UncheckedImage"), System.Drawing.Bitmap) + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer1.Name = "SplitContainer1" + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.bt_ExportResult) + Me.SplitContainer1.Panel1.Controls.Add(Me.bt_Go) + Me.SplitContainer1.Panel1.Controls.Add(Me.Label1) + Me.SplitContainer1.Panel1.Controls.Add(Me.Grid_Input) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.Grid_QueryInfo) + Me.SplitContainer1.Size = New System.Drawing.Size(1113, 644) + Me.SplitContainer1.SplitterDistance = 371 + Me.SplitContainer1.TabIndex = 8 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(2, 38) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(95, 12) + Me.Label1.TabIndex = 8 + Me.Label1.Text = "待查询机种列表:" + ' + 'bt_Go + ' + Me.bt_Go.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.bt_Go.Location = New System.Drawing.Point(259, 3) + Me.bt_Go.Name = "bt_Go" + Me.bt_Go.Size = New System.Drawing.Size(109, 47) + Me.bt_Go.TabIndex = 9 + Me.bt_Go.Text = "查询" + Me.bt_Go.UseVisualStyleBackColor = True + ' + 'bt_ExportResult + ' + Me.bt_ExportResult.Location = New System.Drawing.Point(113, 3) + Me.bt_ExportResult.Name = "bt_ExportResult" + Me.bt_ExportResult.Size = New System.Drawing.Size(62, 47) + Me.bt_ExportResult.TabIndex = 10 + Me.bt_ExportResult.Text = "导出查询结果" + Me.bt_ExportResult.UseVisualStyleBackColor = True + ' + 'Form_合并备料查询 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1113, 644) + Me.Controls.Add(Me.SplitContainer1) + Me.Name = "Form_合并备料查询" + Me.Text = "Form_合并备料查询" + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel1.PerformLayout() + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents Grid_Input As FlexCell.Grid + Friend WithEvents Grid_QueryInfo As FlexCell.Grid + Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer + Friend WithEvents bt_Go As System.Windows.Forms.Button + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents bt_ExportResult As System.Windows.Forms.Button +End Class diff --git a/WT-DMS/Form_合并备料查询.resx b/WT-DMS/Form_合并备料查询.resx new file mode 100644 index 0000000..bb96169 --- /dev/null +++ b/WT-DMS/Form_合并备料查询.resx @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/w///4AKOo/wAP//gAo6jwAAD/+ACjqPAPAA/4AKOo8P/wAPgAo6j///8A+A + CjqP////D4AKOo//////gAo6iIiIiIiACjo= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/////4AKOo//////gAo6j/////+ACjqP/////4AKOo//////gAo6j/////+A + CjqP/////4AKOo//////gAo6iIiIiIiACjo= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/w///4AKOo/wAP//gAo6jwAAD/+ACjqPAPAA/4AKOo8P/wAPgAo6j///8A+A + CjqP////D4AKOo//////gAo6iIiIiIiACjo= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAo6j/////+ACjqP/////4AKOo//////gAo6j/////+ACjqP/////4AKOo//////gAo6j/////+A + CjqP/////4AKOo//////gAo6iIiIiIiACjo= + + + \ No newline at end of file diff --git a/WT-DMS/Form_合并备料查询.vb b/WT-DMS/Form_合并备料查询.vb new file mode 100644 index 0000000..a144754 --- /dev/null +++ b/WT-DMS/Form_合并备料查询.vb @@ -0,0 +1,391 @@ +Public Class Form_合并备料查询 + Dim m_Table As New System.Data.DataTable + Dim m_InitOver As Boolean = False + Dim m_PartNumber As New CPartNumber + + Dim validBomPnList As New ArrayList + Dim validBomBackupCountList As New ArrayList + + Public Enum COLS_INPUT + 序号 + 料号PN + 数量 + max + End Enum + + Public Shared m_COLS_NAME_INPUT(,) As String = { + {"序号", "0"}, + {"料号PN", "1"}, + {"数量", "1"} + } + + Public Enum COLS_QUERYINFO + 序号 + 料号PN + 物料名称 + 规格描述 + 单位 + 总数量 + 库存数量 + 剩余数量 + max + End Enum + + Public Shared m_COLS_NAME_QUERYINFO(,) As String = { + {"序号", "0"}, + {"料号PN", "1"}, + {"物料名称", "0"}, + {"规格描述", "0"}, + {"单位", "0"}, + {"总数量", "0"}, + {"库存数量", "0"}, + {"剩余数量", "0"} + } + + + Private Sub Form_合并备料查询_Load(sender As Object, e As EventArgs) Handles MyBase.Load + InitGrid_Input() + End Sub + + Private Sub InitGrid_Input() + Grid_Input.NewFile() + + Grid_Input.AllowUserSort = False + Grid_Input.DisplayFocusRect = False + Grid_Input.ExtendLastCol = True + Grid_Input.DisplayRowArrow = True + Grid_Input.BoldFixedCell = False + Grid_Input.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + Grid_Input.Cols = COLS_INPUT.max + For col As Integer = 0 To COLS_INPUT.max - 1 + Grid_Input.Cell(0, col).Text = m_COLS_NAME_INPUT(col, 0) + Next + + '调整宽度 + Grid_Input.Column(COLS_INPUT.序号).Width = 50 + Grid_Input.Column(COLS_INPUT.料号PN).Width = 100 + Grid_Input.Column(COLS_INPUT.数量).Width = 50 + + Grid_Input.AllowUserSort = True + Grid_Input.Locked = False + Grid_Input.Column(COLS_INPUT.序号).Locked = True + + Grid_Input.Rows = 500 + + Application.DoEvents() + End Sub + + Private Sub InitGrid_QueryInfo(ByVal BomPnCount As Integer, ByRef bomArray As ArrayList) + Grid_QueryInfo.NewFile() + + Grid_QueryInfo.AllowUserSort = False + Grid_QueryInfo.DisplayFocusRect = False + Grid_QueryInfo.ExtendLastCol = True + Grid_QueryInfo.DisplayRowArrow = True + Grid_QueryInfo.BoldFixedCell = False + Grid_QueryInfo.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + Grid_QueryInfo.Cols = COLS_QUERYINFO.max + For col As Integer = 0 To COLS_QUERYINFO.max - 1 + Grid_QueryInfo.Cell(0, col).Text = m_COLS_NAME_QUERYINFO(col, 0) + Next + + If BomPnCount > 0 Then + For i = 0 To BomPnCount - 1 + Grid_QueryInfo.Cols += 1 + Grid_QueryInfo.Cell(0, Grid_QueryInfo.Cols - 1).Text = bomArray.Item(i) + Next + End If + + '调整宽度 + Grid_QueryInfo.Column(COLS_QUERYINFO.序号).Width = My.Settings.FORM_合并用料查询_COL_WIDTH_序号 + Grid_QueryInfo.Column(COLS_QUERYINFO.料号PN).Width = My.Settings.FORM_合并用料查询_COL_WIDTH_料号PN + Grid_QueryInfo.Column(COLS_QUERYINFO.物料名称).Width = My.Settings.FORM_合并用料查询_COL_WIDTH_物料名称 + Grid_QueryInfo.Column(COLS_QUERYINFO.规格描述).Width = My.Settings.FORM_合并用料查询_COL_WIDTH_规格描述 + Grid_QueryInfo.Column(COLS_QUERYINFO.单位).Width = My.Settings.FORM_合并用料查询_COL_WIDTH_单位 + Me.Height = My.Settings.FORM_合并用料查询_HEIGHT + Me.Width = My.Settings.FORM_合并用料查询_WIDTH + + Grid_QueryInfo.AllowUserSort = True + Grid_QueryInfo.Locked = True + Grid_QueryInfo.Rows = 1 + + Application.DoEvents() + End Sub + + + Private Function QueryBom(ByVal BomName As String, ByRef dataTable As Data.DataTable) As Boolean + Dim strSelect As String = "SELECT * FROM `" & "bom_" & BomName & "`" + + '查询入库数量 + Dim result As Boolean = False + Dim strSQL As String = strSelect + dataTable.Rows.Clear() + dataTable.Columns.Clear() + If SQL_Query(COL_RIGHTS.BOM管理, strSQL, dataTable) = True Then + result = True + End If + + Return result + End Function + + Private Function CheckBomExist(ByVal bomName As String, ByRef isExist As Boolean) As Boolean + Dim strSQL As String = "CHECK TABLE `" & "bom_" & bomName & "`" 'CHECK TABLE `BOM_U01-ATMEGA328P-TQFP32` + Dim result As Boolean = False + m_Table.Rows.Clear() + m_Table.Columns.Clear() + isExist = False + If SQL_Query(COL_RIGHTS.BOM管理, strSQL, m_Table) = True Then + If m_Table.Rows.Count > 0 Then + If m_Table.Rows(0).Item(3) = "OK" Then + isExist = True + End If + End If + result = True + End If + + Return result + End Function + + Private Sub bt_Go_Click(sender As Object, e As EventArgs) Handles bt_Go.Click + '检测Input表格是否存在错误 + Dim inputSn As String = "" + Dim validBomPnCount As Integer = 0 + validBomPnList.Clear() + validBomBackupCountList.Clear() + Dim notEmptyCount As Integer = 0 + Dim curRowResult As Boolean = False + + For row = 1 To Grid_Input.Rows - 1 + Grid_Input.Cell(row, COLS_INPUT.序号).Text = "" + Grid_Input.Cell(row, COLS_INPUT.料号PN).BackColor = Color.White + Grid_Input.Cell(row, COLS_INPUT.数量).BackColor = Color.White + Next + For row = 1 To Grid_Input.Rows - 1 + inputSn = Grid_Input.Cell(row, COLS_INPUT.料号PN).Text + If inputSn.Length > 0 Then + notEmptyCount += 1 + '检查输入料号是否有效 + curRowResult = True + + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(inputSn, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + Grid_Input.Cell(row, COLS_INPUT.料号PN).BackColor = Color.Red + curRowResult = False + End If + Else + MsgBox("查询BOM料号错误!") + Return + End If + + '检测输入料号的料表是否已经存在 + If CheckBomExist(inputSn, isExist) = True Then + If isExist = False Then + Grid_Input.Cell(row, COLS_INPUT.料号PN).BackColor = Color.Red + curRowResult = False + End If + Else + MsgBox("无法查询输入料号对应的料表是否存在,请检查网络连接!") + Return + End If + + If curRowResult = True Then + Grid_Input.Cell(row, COLS_INPUT.料号PN).BackColor = Color.Green + + '检查数量是否正确 + Dim numStr As String = Grid_Input.Cell(row, COLS_INPUT.数量).Text + Dim numNum As Integer = 0 + Try + numNum = numStr + validBomPnCount += 1 + validBomPnList.Add(inputSn) + validBomBackupCountList.Add(numNum) + Grid_Input.Cell(row, COLS_INPUT.数量).BackColor = Color.Green + Catch ex As Exception + Grid_Input.Cell(row, COLS_INPUT.数量).BackColor = Color.Red + End Try + Else + Grid_Input.Cell(row, COLS_INPUT.料号PN).BackColor = Color.Red + End If + Grid_Input.Cell(row, COLS_INPUT.序号).Text = validBomPnCount + End If + Next + + If notEmptyCount > 0 Then + If validBomPnCount <> notEmptyCount Then + MsgBox("输入BOM料号列表存在错误") + Return + End If + Else + MsgBox("输入不能为空") + Return + End If + + '重新设置QueryInfo表格内容 + InitGrid_QueryInfo(validBomPnCount, validBomPnList) + + '逐个机种查询----------------------------- + For bomIndex = 0 To validBomPnCount - 1 + '查询物料列表 + Dim queryBomName As String = validBomPnList.Item(bomIndex) + If QueryBom(queryBomName, m_Table) = True Then + CompareAndFillToGridByDataTable(bomIndex) + End If + Next + + '查询物料其它信息 + For rowIndex = 1 To Grid_QueryInfo.Rows - 1 + If Grid_QueryInfo.Cell(rowIndex, COLS_QUERYINFO.料号PN).Text.Length > 0 Then + If GetPNItemInfo(rowIndex) = False Then + Return + End If + End If + Next + + '查询库存数量 + For rowIndex = 1 To Grid_QueryInfo.Rows - 1 + Dim strPN As String = Grid_QueryInfo.Cell(rowIndex, COLS_QUERYINFO.料号PN).Text + If strPN.Length > 0 Then + Dim countInStore As Integer = 0 + Dim usageCount As Integer = Grid_QueryInfo.Cell(rowIndex, COLS_QUERYINFO.总数量).Text + If QueryStorageCount(strPN, countInStore) = True Then + Grid_QueryInfo.Cell(rowIndex, COLS_QUERYINFO.库存数量).Text = countInStore + Grid_QueryInfo.Cell(rowIndex, COLS_QUERYINFO.剩余数量).Text = countInStore - usageCount + Else + Return + End If + End If + Next + + MsgBox("查询完成.") + End Sub + + Private Function QueryStorageCount(ByVal PartNumber As String, ByRef rCount As Integer) As Boolean + Dim strSelect As String = "SELECT SUM(`" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.数量) & "`) FROM " + strSelect &= "`" & CMaterialInOut.cst_TABLE_NAME & "` " + strSelect &= " WHERE `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.料号PN) & "` COLLATE gbk_chinese_ci = '" & PartNumber & "' " + + '查询入库数量 + Dim result As Boolean = False + Dim Count_In As Integer = 0 + Dim strSQL As String = strSelect + strSQL &= "AND `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.入库出库) & "` = '0'" + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If SQL_Query(COL_RIGHTS.原料库存管理, strSQL, m_Table) = True Then + Try + Count_In = m_Table.Rows(0).Item(0) + Catch ex As Exception + Count_In = 0 + End Try + + result = True + End If + + '查询出库数量 + Dim Count_Out As Integer = 0 + strSQL = strSelect + strSQL &= "AND `" & CMaterialInOut.m_COLS_NAME(CMaterialInOut.COLS.入库出库) & "` = '1'" + If result Then + result = False + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If SQL_Query(COL_RIGHTS.原料库存管理, strSQL, m_Table) = True Then + Try + Count_Out = m_Table.Rows(0).Item(0) + Catch ex As Exception + Count_Out = 0 + End Try + result = True + End If + End If + + rCount = Count_In - Count_Out + + Return result + End Function + + Private Sub CompareAndFillToGridByDataTable(ByVal bomIndex As Integer) + Dim existRows As Integer = Grid_QueryInfo.Rows + Dim insertRow As Integer = 0 + Dim queryPn As String = "" + Dim queryCount As Integer = 0 + Dim curCount As Integer = 0 + Dim CountForBackup As Integer = validBomBackupCountList.Item(bomIndex) + Dim MultiCount As Integer = 0 + If m_Table.Rows.Count > 0 Then + For row = 0 To m_Table.Rows.Count - 1 + queryPn = m_Table.Rows.Item(row).Item(2) + queryCount = m_Table.Rows.Item(row).Item(3) + MultiCount = queryCount * CountForBackup + + Dim findIndex As Integer = -1 + For rowIndex = 1 To Grid_QueryInfo.Rows - 1 + If Grid_QueryInfo.Cell(rowIndex, COLS_QUERYINFO.料号PN).Text.ToUpper = queryPn.ToUpper Then + findIndex = rowIndex + Exit For + End If + Next + + If findIndex > 0 Then + Try + curCount = Grid_QueryInfo.Cell(findIndex, COLS_QUERYINFO.总数量).Text + Catch ex As Exception + curCount = 0 + End Try + curCount += MultiCount + Grid_QueryInfo.Cell(findIndex, COLS_QUERYINFO.总数量).Text = curCount + Else + Grid_QueryInfo.Rows += 1 + findIndex = Grid_QueryInfo.Rows - 1 + Grid_QueryInfo.Cell(findIndex, COLS_QUERYINFO.料号PN).Text = queryPn + Grid_QueryInfo.Cell(findIndex, COLS_QUERYINFO.总数量).Text = MultiCount + End If + + Grid_QueryInfo.Cell(findIndex, COLS_QUERYINFO.max + bomIndex).Text = MultiCount + Next + End If + End Sub + + Private Function GetPNItemInfo(ByVal gridRowIndex As Integer) As Boolean + Dim 物料名称 As String = "" + Dim 规格描述 As String = "" + Dim 单位 As String = "" + Dim 单重 As Double = 0 + Dim 图片(0) As Byte + Dim 供应商ID As String = "" + + Grid_QueryInfo.Cell(gridRowIndex, COLS_QUERYINFO.物料名称).Text = "" + Grid_QueryInfo.Cell(gridRowIndex, COLS_QUERYINFO.规格描述).Text = "" + Grid_QueryInfo.Cell(gridRowIndex, COLS_QUERYINFO.单位).Text = "" + + Dim result As Boolean = False + Dim strPn As String = Grid_QueryInfo.Cell(gridRowIndex, COLS_QUERYINFO.料号PN).Text + If m_PartNumber.QueryItem(strPn, 物料名称, 规格描述, 单位, 单重, 供应商ID) = ERROR_CODE.SUCCESS Then + Grid_QueryInfo.Cell(gridRowIndex, COLS_QUERYINFO.物料名称).Text = 物料名称 + Grid_QueryInfo.Cell(gridRowIndex, COLS_QUERYINFO.规格描述).Text = 规格描述 + Grid_QueryInfo.Cell(gridRowIndex, COLS_QUERYINFO.单位).Text = 单位 + + result = True + Else + MsgBox("查询物料信息错误,料号:" & strPn) + End If + + Return result + End Function + + Private Sub bt_ExportResult_Click(sender As Object, e As EventArgs) Handles bt_ExportResult.Click + Dim dlg As New SaveFileDialog() + dlg.DefaultExt = "xls" + dlg.Filter = "Excel File|*.xls" + If dlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return + + If Grid_QueryInfo.ExportToExcel(dlg.FileName, True, True) Then + MsgBox("保存为Excel成功:" & dlg.FileName) + Else + MsgBox("保存失败!") + End If + End Sub +End Class \ No newline at end of file diff --git a/WT-DMS/Form_备份管理.Designer.vb b/WT-DMS/Form_备份管理.Designer.vb new file mode 100644 index 0000000..ef0f8f9 --- /dev/null +++ b/WT-DMS/Form_备份管理.Designer.vb @@ -0,0 +1,101 @@ + _ +Partial Class Form_备份管理 + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.bt_BackupNow = New System.Windows.Forms.Button() + Me.bt_RestoreBackup = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.lbl_LatestTime = New System.Windows.Forms.Label() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.SuspendLayout() + ' + 'bt_BackupNow + ' + Me.bt_BackupNow.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.bt_BackupNow.Location = New System.Drawing.Point(122, 96) + Me.bt_BackupNow.Name = "bt_BackupNow" + Me.bt_BackupNow.Size = New System.Drawing.Size(124, 46) + Me.bt_BackupNow.TabIndex = 9 + Me.bt_BackupNow.Text = "立即备份" + Me.bt_BackupNow.UseVisualStyleBackColor = True + ' + 'bt_RestoreBackup + ' + Me.bt_RestoreBackup.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.bt_RestoreBackup.Location = New System.Drawing.Point(312, 96) + Me.bt_RestoreBackup.Name = "bt_RestoreBackup" + Me.bt_RestoreBackup.Size = New System.Drawing.Size(124, 46) + Me.bt_RestoreBackup.TabIndex = 9 + Me.bt_RestoreBackup.Text = "还原备份" + Me.bt_RestoreBackup.UseVisualStyleBackColor = True + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("宋体", 16.0!) + Me.Label1.ForeColor = System.Drawing.Color.MidnightBlue + Me.Label1.Location = New System.Drawing.Point(26, 42) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(153, 22) + Me.Label1.TabIndex = 10 + Me.Label1.Text = "最近备份时间:" + ' + 'lbl_LatestTime + ' + Me.lbl_LatestTime.AutoSize = True + Me.lbl_LatestTime.Font = New System.Drawing.Font("宋体", 16.0!) + Me.lbl_LatestTime.ForeColor = System.Drawing.Color.BlueViolet + Me.lbl_LatestTime.Location = New System.Drawing.Point(185, 42) + Me.lbl_LatestTime.Name = "lbl_LatestTime" + Me.lbl_LatestTime.Size = New System.Drawing.Size(0, 22) + Me.lbl_LatestTime.TabIndex = 10 + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Location = New System.Drawing.Point(45, 178) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(457, 23) + Me.ProgressBar1.TabIndex = 11 + ' + 'Form_备份管理 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(547, 246) + Me.Controls.Add(Me.ProgressBar1) + Me.Controls.Add(Me.lbl_LatestTime) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.bt_RestoreBackup) + Me.Controls.Add(Me.bt_BackupNow) + Me.Name = "Form_备份管理" + Me.Text = "备份管理" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents bt_BackupNow As System.Windows.Forms.Button + Friend WithEvents bt_RestoreBackup As System.Windows.Forms.Button + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents lbl_LatestTime As System.Windows.Forms.Label + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar +End Class diff --git a/WT-DMS/Form_备份管理.resx b/WT-DMS/Form_备份管理.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/WT-DMS/Form_备份管理.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WT-DMS/Form_备份管理.vb b/WT-DMS/Form_备份管理.vb new file mode 100644 index 0000000..a856959 --- /dev/null +++ b/WT-DMS/Form_备份管理.vb @@ -0,0 +1,164 @@ +Public Class Form_备份管理 + Dim m_Table As New System.Data.DataTable + Dim m_InitOver As Boolean = False + Public Const cst_TABLE_NAME As String = "备份记录表" + Dim m_BackupManage As New CBackupManage + + Dim m_FixTableNames() As String = { + "帐号表", "仓库表", "原料库存表", "员工信息表", "库位表_大岭山", "库位表_松山湖", "料号表" + } + + Private Function CopyTable(ByVal srcTable As String, ByVal aimTable As String) As Boolean + Dim strCreate As String = "CREATE TABLE `" & aimTable & "` LIKE `" & srcTable & "`" + Dim strInsert As String = "INSERT INTO `" & aimTable & "` SELECT * FROM `" & srcTable & "`" + + Dim result As Boolean = False + If SQL_ExeCommand(COL_RIGHTS.BOM管理, strCreate) = True AndAlso + SQL_ExeCommand(COL_RIGHTS.BOM管理, strInsert) = True Then + result = True + End If + + Return result + End Function + + Private Function CheckTableExist(ByVal table As String, ByRef isExist As Boolean) As Boolean + Dim strSQL As String = "CHECK TABLE `" & table & "`" 'CHECK TABLE `BOM_U01-ATMEGA328P-TQFP32` + Dim result As Boolean = False + m_Table.Rows.Clear() + m_Table.Columns.Clear() + isExist = False + If SQL_Query(COL_RIGHTS.BOM管理, strSQL, m_Table) = True Then + If m_Table.Rows.Count > 0 Then + If m_Table.Rows(0).Item(3) = "OK" Then + isExist = True + End If + End If + result = True + End If + + Return result + End Function + Private Function DropTable(ByVal tableName As String) As Boolean + Dim strSQL As String = "DROP TABLE IF EXISTS `" & tableName & "`" + Dim result As Boolean = False + If SQL_ExeCommand(COL_RIGHTS.BOM管理, strSQL) = True Then + result = True + End If + + Return result + End Function + + Private Function GetAllBomTableNames(ByRef nameList As ArrayList) As Boolean + Dim strQuery As String = "SELECT `" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.料号PN) & "` FROM `" & CPartNumber.cst_TABLE_NAME & "`" + Dim rTable As New System.Data.DataTable + If SQL_Query(COL_RIGHTS.BOM管理, strQuery, rTable) = False Then + Return False + End If + + Dim result As Boolean = True + nameList.Clear() + For i As Integer = 0 To rTable.Rows.Count - 1 + Try + Dim name As String = rTable.Rows.Item(i).Item(0) + nameList.Add(name) + Catch ex As Exception + result = False + End Try + Next + Return result + End Function + + + Private Sub bt_BackupNow_Click(sender As Object, e As EventArgs) Handles bt_BackupNow.Click + Dim result As Boolean = True + + Dim timeNow As Date = Now + Dim backName As String = "bak_" + '备份固定表 + For Each pTableName As String In m_FixTableNames + Dim newTablename As String = backName & pTableName + DropTable(newTablename) + If CopyTable(pTableName, newTablename) = False Then + MsgBox("备份失败,文件:" & pTableName) + result = False + Exit For + End If + Next + + '备份BOM表 + If result Then + Dim bomNameList As New ArrayList + If GetAllBomTableNames(bomNameList) = True Then + Dim totalCount = bomNameList.Count + ProgressBar1.Visible = True + ProgressBar1.Maximum = 0 + ProgressBar1.Maximum = totalCount + Dim index As Integer = 0 + Dim isExist As Boolean = False + For Each pTableName As String In bomNameList + pTableName = Strings.Trim(pTableName) + Dim bomName = "bom_" & pTableName + If CheckTableExist(bomName, isExist) = False Then + MsgBox("备份失败,文件:" & bomName) + result = False + Exit For + End If + + If isExist = True Then + Dim newTablename As String = backName & bomName + DropTable(newTablename) + If CopyTable(bomName, newTablename) = False Then + MsgBox("备份失败,文件:" & bomName) + result = False + Exit For + End If + End If + + index += 1 + ProgressBar1.Value = index + ProgressBar1.Refresh() + Application.DoEvents() + Next + + ProgressBar1.Visible = False + End If + + bomNameList.Clear() + End If + + If result Then + Dim timeStr As String = timeNow.ToString("yyyyMMddHHmmss") + + m_BackupManage.SetBackupTime(timeStr) + + RefreshUpdateTime() + + MsgBox("备份完成") + Else + MsgBox("备份失败") + End If + End Sub + + Private Sub RefreshUpdateTime() + Dim rTimeStr As String = "" + If m_BackupManage.GetBackupTime(rTimeStr) = True Then + lbl_LatestTime.Text = Strings.Left(rTimeStr, 4) & "年" & Strings.Mid(rTimeStr, 5, 2) & "月" & Strings.Mid(rTimeStr, 7, 2) & "日" & + Strings.Mid(rTimeStr, 9, 2) & ":" & Strings.Mid(rTimeStr, 11, 2) & ":" & Strings.Mid(rTimeStr, 13, 2) + Else + lbl_LatestTime.Text = "----" + End If + End Sub + + Private Sub Form_备份管理_Load(sender As Object, e As EventArgs) Handles MyBase.Load + RefreshUpdateTime() + End Sub + + Private Sub Button1_Click(sender As Object, e As EventArgs) + Dim timeNow As Date = Now + Dim timeStr As String = timeNow.ToString("yyyyMMddHHmmss") + + m_BackupManage.SetBackupTime(timeStr) + + RefreshUpdateTime() + End Sub +End Class \ No newline at end of file diff --git a/WT-DMS/LoginForm1.Designer.vb b/WT-DMS/LoginForm1.Designer.vb new file mode 100644 index 0000000..74b0427 --- /dev/null +++ b/WT-DMS/LoginForm1.Designer.vb @@ -0,0 +1,202 @@ + _ + _ +Partial Class LoginForm1 + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + Friend WithEvents LogoPictureBox As System.Windows.Forms.PictureBox + Friend WithEvents UsernameLabel As System.Windows.Forms.Label + Friend WithEvents PasswordLabel As System.Windows.Forms.Label + Friend WithEvents UsernameTextBox As System.Windows.Forms.TextBox + Friend WithEvents PasswordTextBox As System.Windows.Forms.TextBox + Friend WithEvents OK As System.Windows.Forms.Button + Friend WithEvents Cancel As System.Windows.Forms.Button + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(LoginForm1)) + Me.LogoPictureBox = New System.Windows.Forms.PictureBox() + Me.UsernameLabel = New System.Windows.Forms.Label() + Me.PasswordLabel = New System.Windows.Forms.Label() + Me.PasswordTextBox = New System.Windows.Forms.TextBox() + Me.OK = New System.Windows.Forms.Button() + Me.Cancel = New System.Windows.Forms.Button() + Me.UsernameTextBox = New System.Windows.Forms.TextBox() + Me.chk_AutoLogin = New System.Windows.Forms.CheckBox() + Me.chk_SaveUserName = New System.Windows.Forms.CheckBox() + Me.Timer1 = New System.Windows.Forms.Timer(Me.components) + Me.txtDomain = New System.Windows.Forms.TextBox() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'LogoPictureBox + ' + Me.LogoPictureBox.Image = CType(resources.GetObject("LogoPictureBox.Image"), System.Drawing.Image) + Me.LogoPictureBox.Location = New System.Drawing.Point(0, 0) + Me.LogoPictureBox.Margin = New System.Windows.Forms.Padding(4) + Me.LogoPictureBox.Name = "LogoPictureBox" + Me.LogoPictureBox.Size = New System.Drawing.Size(248, 290) + Me.LogoPictureBox.TabIndex = 0 + Me.LogoPictureBox.TabStop = False + ' + 'UsernameLabel + ' + Me.UsernameLabel.Location = New System.Drawing.Point(258, 60) + Me.UsernameLabel.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.UsernameLabel.Name = "UsernameLabel" + Me.UsernameLabel.Size = New System.Drawing.Size(330, 34) + Me.UsernameLabel.TabIndex = 0 + Me.UsernameLabel.Text = "用户名(&U)" + Me.UsernameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'PasswordLabel + ' + Me.PasswordLabel.Location = New System.Drawing.Point(258, 122) + Me.PasswordLabel.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.PasswordLabel.Name = "PasswordLabel" + Me.PasswordLabel.Size = New System.Drawing.Size(330, 34) + Me.PasswordLabel.TabIndex = 2 + Me.PasswordLabel.Text = "密码(&P)" + Me.PasswordLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'PasswordTextBox + ' + Me.PasswordTextBox.Location = New System.Drawing.Point(261, 152) + Me.PasswordTextBox.Margin = New System.Windows.Forms.Padding(4) + Me.PasswordTextBox.Name = "PasswordTextBox" + Me.PasswordTextBox.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42) + Me.PasswordTextBox.Size = New System.Drawing.Size(328, 28) + Me.PasswordTextBox.TabIndex = 1 + ' + 'OK + ' + Me.OK.Location = New System.Drawing.Point(292, 255) + Me.OK.Margin = New System.Windows.Forms.Padding(4) + Me.OK.Name = "OK" + Me.OK.Size = New System.Drawing.Size(141, 34) + Me.OK.TabIndex = 2 + Me.OK.Text = "确定(&O)" + ' + 'Cancel + ' + Me.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel.Location = New System.Drawing.Point(447, 255) + Me.Cancel.Margin = New System.Windows.Forms.Padding(4) + Me.Cancel.Name = "Cancel" + Me.Cancel.Size = New System.Drawing.Size(141, 34) + Me.Cancel.TabIndex = 3 + Me.Cancel.Text = "取消(&C)" + ' + 'UsernameTextBox + ' + Me.UsernameTextBox.Location = New System.Drawing.Point(261, 90) + Me.UsernameTextBox.Margin = New System.Windows.Forms.Padding(4) + Me.UsernameTextBox.Name = "UsernameTextBox" + Me.UsernameTextBox.Size = New System.Drawing.Size(328, 28) + Me.UsernameTextBox.TabIndex = 0 + ' + 'chk_AutoLogin + ' + Me.chk_AutoLogin.AutoSize = True + Me.chk_AutoLogin.Checked = Global.WT_DMS.My.MySettings.Default.CHK_AUTOLOGIN + Me.chk_AutoLogin.DataBindings.Add(New System.Windows.Forms.Binding("Checked", Global.WT_DMS.My.MySettings.Default, "CHK_AUTOLOGIN", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)) + Me.chk_AutoLogin.Location = New System.Drawing.Point(447, 206) + Me.chk_AutoLogin.Margin = New System.Windows.Forms.Padding(4) + Me.chk_AutoLogin.Name = "chk_AutoLogin" + Me.chk_AutoLogin.Size = New System.Drawing.Size(106, 22) + Me.chk_AutoLogin.TabIndex = 5 + Me.chk_AutoLogin.Text = "自动登录" + Me.chk_AutoLogin.UseVisualStyleBackColor = True + ' + 'chk_SaveUserName + ' + Me.chk_SaveUserName.AutoSize = True + Me.chk_SaveUserName.Checked = Global.WT_DMS.My.MySettings.Default.CHK_SAVEUSERNAME + Me.chk_SaveUserName.DataBindings.Add(New System.Windows.Forms.Binding("Checked", Global.WT_DMS.My.MySettings.Default, "CHK_SAVEUSERNAME", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)) + Me.chk_SaveUserName.Location = New System.Drawing.Point(274, 206) + Me.chk_SaveUserName.Margin = New System.Windows.Forms.Padding(4) + Me.chk_SaveUserName.Name = "chk_SaveUserName" + Me.chk_SaveUserName.Size = New System.Drawing.Size(124, 22) + Me.chk_SaveUserName.TabIndex = 4 + Me.chk_SaveUserName.Text = "记住用户名" + Me.chk_SaveUserName.UseVisualStyleBackColor = True + ' + 'Timer1 + ' + Me.Timer1.Interval = 2000 + ' + 'txtDomain + ' + Me.txtDomain.Location = New System.Drawing.Point(261, 28) + Me.txtDomain.Margin = New System.Windows.Forms.Padding(4) + Me.txtDomain.Name = "txtDomain" + Me.txtDomain.Size = New System.Drawing.Size(328, 28) + Me.txtDomain.TabIndex = 6 + Me.txtDomain.Text = "blv-rd.tech" + ' + 'MenuStrip1 + ' + Me.MenuStrip1.GripMargin = New System.Windows.Forms.Padding(2, 2, 0, 2) + Me.MenuStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(602, 24) + Me.MenuStrip1.TabIndex = 7 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'LoginForm1 + ' + Me.AcceptButton = Me.OK + Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 18.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel + Me.ClientSize = New System.Drawing.Size(602, 316) + Me.Controls.Add(Me.txtDomain) + Me.Controls.Add(Me.chk_AutoLogin) + Me.Controls.Add(Me.chk_SaveUserName) + Me.Controls.Add(Me.Cancel) + Me.Controls.Add(Me.OK) + Me.Controls.Add(Me.PasswordTextBox) + Me.Controls.Add(Me.UsernameTextBox) + Me.Controls.Add(Me.PasswordLabel) + Me.Controls.Add(Me.UsernameLabel) + Me.Controls.Add(Me.LogoPictureBox) + Me.Controls.Add(Me.MenuStrip1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MainMenuStrip = Me.MenuStrip1 + Me.Margin = New System.Windows.Forms.Padding(4) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "LoginForm1" + Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "INHAOS DMS" + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents chk_SaveUserName As System.Windows.Forms.CheckBox + Friend WithEvents chk_AutoLogin As System.Windows.Forms.CheckBox + Friend WithEvents Timer1 As System.Windows.Forms.Timer + Friend WithEvents txtDomain As TextBox + Friend WithEvents MenuStrip1 As MenuStrip +End Class diff --git a/WT-DMS/LoginForm1.resx b/WT-DMS/LoginForm1.resx new file mode 100644 index 0000000..4fd8aa7 --- /dev/null +++ b/WT-DMS/LoginForm1.resx @@ -0,0 +1,745 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + 17, 17 + + + 142, 17 + + \ No newline at end of file diff --git a/WT-DMS/LoginForm1.vb b/WT-DMS/LoginForm1.vb new file mode 100644 index 0000000..4c39f2c --- /dev/null +++ b/WT-DMS/LoginForm1.vb @@ -0,0 +1,209 @@ +Public Class LoginForm1 + Dim pMainForm As Form1 + Dim m_Log As New CLogManage + + ' TODO: 插入代码,以使用提供的用户名和密码执行自定义的身份验证 + ' (请参见 http://go.microsoft.com/fwlink/?LinkId=35339)。 + ' 随后自定义主体可附加到当前线程的主体,如下所示: + ' My.User.CurrentPrincipal = CustomPrincipal + ' 其中 CustomPrincipal 是用于执行身份验证的 IPrincipal 实现。 + ' 随后,My.User 将返回 CustomPrincipal 对象中封装的标识信息 + ' 如用户名、显示名等 + + Public LoginResult As Boolean = False + Dim m_LastError As String = "" + Dim m_InitOver As Boolean = False + Dim r_Right(COL_RIGHTS.max - 1) As String + + '将字符串权限转换为对应的RIGHTS值 + Private Sub ConvertRights(ByRef strSrc() As String, ByRef rRight() As RIGHTS) + For i As Integer = 0 To COL_RIGHTS.max - 1 + Select Case strSrc(i) + Case "只读" + rRight(i) = RIGHTS.READ + Case "读写" + rRight(i) = RIGHTS.READ_WRITE + Case "管理" + rRight(i) = RIGHTS.MANAGE Or RIGHTS.READ_WRITE + Case Else + rRight(i) = RIGHTS.NONE + End Select + Next + End Sub + + ''' + ''' 登录检测 + ''' + ''' + ''' + Private Function LoginCheck(Optional domain As String = "") As Boolean + + Dim m_AccountManage As New CAccountManage + + Dim m_UserName As String = UsernameTextBox.Text + Dim m_UserPassword As String = PasswordTextBox.Text + Dim r_Password As String = "" + Dim r_EmployeeID As Integer = 0 + + '清除密码 + PasswordTextBox.Text = "" + + If m_UserName.Length = 0 Then + m_LastError = "用户名不能为空" + Return False + End If + + Dim ipaddr As String + 'Dim ipaddr As String = GetIPFromNetUrl("uts-svr2.qicp.net") ' + 'Dim ipaddr As String = GetIPFromNetUrl("uts-svr2.ticp.vip") ' + 'Dim ipaddr As String = GetIPFromNetUrl("blv-rd.tech") ' + 'Dim ipaddr As String = "172.16.4.182" + + '判断domian是否为有效域名 + If False Then + m_LastError = "域名无效" + Return False + End If + + '如域名为空,则使用默认IP + Dim isDomainvailable As Boolean = IsValidDomainUsingUri(Trim(domain)) + If isDomainvailable Then + ipaddr = GetIPFromNetUrl(domain) + Else + MsgBox("域名无效,即将使用内网IP。") + ipaddr = "172.16.4.185" + End If + + SQL_ConnectionSetting(ipaddr, "uts_DMS", "uts_DMS_Manager", "A98ya9hu(*HU8hu(*HU(hu") + + 'SQL_ConnectionSetting("10.46.213.199", "w&t database", "root", "3ZAn8dTtqxBTubWz") + Current_Rights(COL_RIGHTS.用户管理) = RIGHTS.READ + CAccountManage.AccessRight = RIGHTS.READ + If m_AccountManage.QueryItem(m_UserName, r_Password, r_EmployeeID, r_Right) = ERROR_CODE.SUCCESS Then + If Strings.StrComp(m_UserPassword, r_Password, Microsoft.VisualBasic.CompareMethod.Text) = 0 Then + If r_Right(COL_RIGHTS.登录) = "开启" Then + Return True + Else + m_LastError = "无登录权限" + End If + Else + m_LastError = "用户密码不正确" + End If + Else + m_LastError = "数据库连接失败,或者用户名不正确" + End If + + Return False + End Function + + + + Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click + If My.Settings.CHK_SAVEUSERNAME = True Then + My.Settings.TXT_USERNAME = UsernameTextBox.Text + My.Settings.strDomain = txtDomain.Text + + If My.Settings.CHK_AUTOLOGIN = True Then + My.Settings.TXT_PASSWORD = PasswordTextBox.Text + End If + + My.Settings.Save() + End If + + 'heck domain + If txtDomain.TextLength > 0 Then + LoginResult = LoginCheck(txtDomain.Text) + Else + LoginResult = LoginCheck() + End If + + 'LoginResult = LoginCheck() + If LoginResult = True Then + If m_Log.AddItem("系统", "登入", UsernameTextBox.Text) = ERROR_CODE.SUCCESS Then + Me.Hide() + pMainForm = New Form1 + Current_UserName = UsernameTextBox.Text + ConvertRights(r_Right, Current_Rights) + pMainForm.ShowDialog() + + m_Log.AddItem("系统", "退出", UsernameTextBox.Text) + If pMainForm.QuitReson = QUIT_RESON.close Then + Me.Close() + Else + Me.Show() + End If + Else + MsgBox("保存登录信息失败!") + End If + Else + MsgBox(m_LastError) + End If + End Sub + + Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click + LoginResult = False + Me.Close() + End Sub + + Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + If My.Settings.CHK_SAVEUSERNAME = True Then + UsernameTextBox.Text = My.Settings.TXT_USERNAME + txtDomain.Text = My.Settings.strDomain + End If + + m_InitOver = True + End Sub + + Private Sub chk_SaveUserName_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_SaveUserName.CheckedChanged + If m_InitOver = False Then Return + + My.Settings.CHK_SAVEUSERNAME = chk_SaveUserName.Checked + + If My.Settings.CHK_SAVEUSERNAME = True Then + My.Settings.TXT_USERNAME = UsernameTextBox.Text + My.Settings.Save() + Else + If My.Settings.CHK_AUTOLOGIN = True Then + chk_SaveUserName.Checked = True + End If + End If + End Sub + + Private Sub LoginForm1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown + If UsernameTextBox.Text.Length > 0 Then + PasswordTextBox.Focus() + End If + + If My.Settings.CHK_AUTOLOGIN = True Then + PasswordTextBox.Text = My.Settings.TXT_PASSWORD + PasswordTextBox.Refresh() + + Timer1.Start() + End If + End Sub + + Private Sub chk_AutoLogin_CheckedChanged(sender As Object, e As EventArgs) Handles chk_AutoLogin.CheckedChanged + If m_InitOver = False Then Return + + My.Settings.CHK_AUTOLOGIN = chk_AutoLogin.Checked + If My.Settings.CHK_AUTOLOGIN = True Then + If chk_SaveUserName.Checked = False Then + chk_SaveUserName.Checked = True + End If + + My.Settings.TXT_PASSWORD = PasswordTextBox.Text + My.Settings.Save() + End If + End Sub + + Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick + Timer1.Stop() + If chk_AutoLogin.Checked Then + OK.PerformClick() + End If + End Sub + + Private Sub PasswordTextBox_TextChanged(sender As Object, e As EventArgs) Handles PasswordTextBox.TextChanged + + End Sub +End Class diff --git a/WT-DMS/LoginForm1_bak1.vb b/WT-DMS/LoginForm1_bak1.vb new file mode 100644 index 0000000..ea25f9b --- /dev/null +++ b/WT-DMS/LoginForm1_bak1.vb @@ -0,0 +1,124 @@ +Public Class LoginForm1 + Dim pMainForm As Form1 + + ' TODO: 插入代码,以使用提供的用户名和密码执行自定义的身份验证 + ' (请参见 http://go.microsoft.com/fwlink/?LinkId=35339)。 + ' 随后自定义主体可附加到当前线程的主体,如下所示: + ' My.User.CurrentPrincipal = CustomPrincipal + ' 其中 CustomPrincipal 是用于执行身份验证的 IPrincipal 实现。 + ' 随后,My.User 将返回 CustomPrincipal 对象中封装的标识信息 + ' 如用户名、显示名等 + + Public LoginResult As Boolean = False + Dim m_LastError As String = "" + Dim m_InitOver As Boolean = False + Dim r_Right(CAccountManage.COL_RIGHTS.max - 1) As String + + '将字符串权限转换为对应的RIGHTS值 + Private Sub ConvertRights(ByRef strSrc() As String, ByRef rRight() As RIGHTS) + For i As Integer = 0 To CAccountManage.COL_RIGHTS.max - 1 + Select Case strSrc(i) + Case "只读" + rRight(i) = RIGHTS.READ + Case "读写" + rRight(i) = RIGHTS.READ_WRITE + Case Else + rRight(i) = RIGHTS.NONE + End Select + Next + End Sub + + ''' + ''' 登录检测 + ''' + ''' + ''' + Private Function LoginCheck() As Boolean + + Dim m_AccountManage As New CAccountManage + + Dim m_UserName As String = UsernameTextBox.Text + Dim m_UserPassword As String = PasswordTextBox.Text + Dim r_Password As String = "" + Dim r_EmployeeID As Integer = 0 + + '清除密码 + PasswordTextBox.Text = "" + + If m_UserName.Length = 0 Then + m_LastError = "用户名不能为空" + Return False + End If + + Dim ipaddr As String = GetIPFromNetUrl("inhaos-server.synology.me") + If ipaddr.Length = 0 Then Return False + SQL_ConnectionSetting(ipaddr, "w&t database", "Tony", "123") + 'SQL_ConnectionSetting("10.46.213.199", "w&t database", "Tony", "123") + + 'SQL_ConnectionSetting("127.0.0.1", "W&T Database", "Tony", "123") + + m_AccountManage.AccessRight = RIGHTS.READ + If m_AccountManage.QueryItem(m_UserName, r_Password, r_EmployeeID, r_Right) = ERROR_CODE.SUCCESS Then + If Strings.StrComp(m_UserPassword, r_Password, Microsoft.VisualBasic.CompareMethod.Text) = 0 Then + If r_Right(CAccountManage.COL_RIGHTS.登录) = "开启" Then + Return True + Else + m_LastError = "无登录权限" + End If + Else + m_LastError = "用户密码不正确" + End If + Else + m_LastError = "数据库连接失败,或者用户名不正确" + End If + + Return False + End Function + + Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click + If My.Settings.CHK_SAVEUSERNAME = True Then + My.Settings.TXT_USERNAME = UsernameTextBox.Text + My.Settings.Save() + End If + + LoginResult = LoginCheck() + If LoginResult = True Then + Me.Hide() + pMainForm = New Form1 + pMainForm.Current_UserName = My.Settings.TXT_USERNAME + ConvertRights(r_Right, pMainForm.Current_Rights) + pMainForm.ShowDialog() + If pMainForm.QuitReson = QUIT_RESON.close Then + Me.Close() + Else + Me.Show() + End If + Else + MsgBox(m_LastError) + End If + End Sub + + Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click + LoginResult = False + Me.Close() + End Sub + + Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + If My.Settings.CHK_SAVEUSERNAME = True Then + UsernameTextBox.Text = My.Settings.TXT_USERNAME + End If + + PasswordTextBox.Focus() + + m_InitOver = True + End Sub + + Private Sub chk_SaveUserName_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_SaveUserName.CheckedChanged + My.Settings.CHK_SAVEUSERNAME = chk_SaveUserName.Checked + If m_InitOver = False Then Return + If My.Settings.CHK_SAVEUSERNAME = True Then + My.Settings.TXT_USERNAME = UsernameTextBox.Text + My.Settings.Save() + End If + End Sub +End Class diff --git a/WT-DMS/My Project/Application.Designer.vb b/WT-DMS/My Project/Application.Designer.vb new file mode 100644 index 0000000..06d52b4 --- /dev/null +++ b/WT-DMS/My Project/Application.Designer.vb @@ -0,0 +1,44 @@ +'------------------------------------------------------------------------------ +' +' 此代码由工具生成。 +' 运行时版本:4.0.30319.42000 +' +' 对此文件的更改可能会导致不正确的行为,并且如果 +' 重新生成代码,这些更改将会丢失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + '注意:此文件是自动生成的;请勿直接进行修改。若要更改, + ' 或者如果您在此文件中遇到生成错误,请转至项目设计器 + ' (转至“项目属性”或在解决方案资源管理器中双击“我的项目”节点), + ' 然后在“应用程序”选项卡中进行更改。 + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = true + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.WT_DMS.LoginForm1 + End Sub + + _ + Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean + Me.MinimumSplashScreenDisplayTime = 0 + Return MyBase.OnInitialize(commandLineArgs) + End Function + End Class +End Namespace diff --git a/WT-DMS/My Project/Application.myapp b/WT-DMS/My Project/Application.myapp new file mode 100644 index 0000000..8ea4cdd --- /dev/null +++ b/WT-DMS/My Project/Application.myapp @@ -0,0 +1,12 @@ + + + true + LoginForm1 + true + 0 + true + 0 + 0 + true + 0 + \ No newline at end of file diff --git a/WT-DMS/My Project/AssemblyInfo.vb b/WT-DMS/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..a8075ad --- /dev/null +++ b/WT-DMS/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' 有关程序集的常规信息通过下列特性集 +' 控制。更改这些特性值可修改 +' 与程序集关联的信息。 + +' 查看程序集特性的值 + + + + + + + + + + +'如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID + + +' 程序集的版本信息由下面四个值组成: +' +' 主版本 +' 次版本 +' 内部版本号 +' 修订号 +' +' 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, +' 方法是按如下所示使用“*”: +' + + + diff --git a/WT-DMS/My Project/AssemblyInfo_BLV_MOMO_八月-22-180512-2023_Conflict.vb b/WT-DMS/My Project/AssemblyInfo_BLV_MOMO_八月-22-180512-2023_Conflict.vb new file mode 100644 index 0000000..2d6a92b --- /dev/null +++ b/WT-DMS/My Project/AssemblyInfo_BLV_MOMO_八月-22-180512-2023_Conflict.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' 有关程序集的常规信息通过下列特性集 +' 控制。更改这些特性值可修改 +' 与程序集关联的信息。 + +' 查看程序集特性的值 + + + + + + + + + + +'如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID + + +' 程序集的版本信息由下面四个值组成: +' +' 主版本 +' 次版本 +' 内部版本号 +' 修订号 +' +' 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, +' 方法是按如下所示使用“*”: +' + + + diff --git a/WT-DMS/My Project/Resources.Designer.vb b/WT-DMS/My Project/Resources.Designer.vb new file mode 100644 index 0000000..1f1e9d3 --- /dev/null +++ b/WT-DMS/My Project/Resources.Designer.vb @@ -0,0 +1,63 @@ +'------------------------------------------------------------------------------ +' +' 此代码由工具生成。 +' 运行时版本:4.0.30319.42000 +' +' 对此文件的更改可能会导致不正确的行为,并且如果 +' 重新生成代码,这些更改将会丢失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + '此类是由 StronglyTypedResourceBuilder + '类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + '若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + '(以 /str 作为命令选项),或重新生成 VS 项目。 + ''' + ''' 一个强类型的资源类,用于查找本地化的字符串等。 + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' 返回此类使用的缓存的 ResourceManager 实例。 + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("WT_DMS.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' 重写当前线程的 CurrentUICulture 属性,对 + ''' 使用此强类型资源类的所有资源查找执行重写。 + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/WT-DMS/My Project/Resources.resx b/WT-DMS/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/WT-DMS/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WT-DMS/My Project/Settings.Designer.vb b/WT-DMS/My Project/Settings.Designer.vb new file mode 100644 index 0000000..49799e3 --- /dev/null +++ b/WT-DMS/My Project/Settings.Designer.vb @@ -0,0 +1,925 @@ +'------------------------------------------------------------------------------ +' +' 此代码由工具生成。 +' 运行时版本:4.0.30319.42000 +' +' 对此文件的更改可能会导致不正确的行为,并且如果 +' 重新生成代码,这些更改将会丢失。 +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings 自动保存功能" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + + _ + Public Property TXT_USERNAME() As String + Get + Return CType(Me("TXT_USERNAME"),String) + End Get + Set + Me("TXT_USERNAME") = value + End Set + End Property + + _ + Public Property CHK_SAVEUSERNAME() As Boolean + Get + Return CType(Me("CHK_SAVEUSERNAME"),Boolean) + End Get + Set + Me("CHK_SAVEUSERNAME") = value + End Set + End Property + + _ + Public Property CHK_PREVIEW() As Boolean + Get + Return CType(Me("CHK_PREVIEW"),Boolean) + End Get + Set + Me("CHK_PREVIEW") = value + End Set + End Property + + _ + Public Property FORM_QUERYSIM_WIDHT() As Integer + Get + Return CType(Me("FORM_QUERYSIM_WIDHT"),Integer) + End Get + Set + Me("FORM_QUERYSIM_WIDHT") = value + End Set + End Property + + _ + Public Property FORM_QUERYSIM_HEIGHT() As Integer + Get + Return CType(Me("FORM_QUERYSIM_HEIGHT"),Integer) + End Get + Set + Me("FORM_QUERYSIM_HEIGHT") = value + End Set + End Property + + _ + Public Property FORM_QUERYSTORAGE_WIDTH() As Integer + Get + Return CType(Me("FORM_QUERYSTORAGE_WIDTH"),Integer) + End Get + Set + Me("FORM_QUERYSTORAGE_WIDTH") = value + End Set + End Property + + _ + Public Property FORM_QUERYSTORAGE_HEIGHT() As Integer + Get + Return CType(Me("FORM_QUERYSTORAGE_HEIGHT"),Integer) + End Get + Set + Me("FORM_QUERYSTORAGE_HEIGHT") = value + End Set + End Property + + _ + Public Property FORM_QUERYSIM_WINSTATE() As Integer + Get + Return CType(Me("FORM_QUERYSIM_WINSTATE"),Integer) + End Get + Set + Me("FORM_QUERYSIM_WINSTATE") = value + End Set + End Property + + _ + Public Property FORM_QUERYSTORAGE_WINSTATE() As Integer + Get + Return CType(Me("FORM_QUERYSTORAGE_WINSTATE"),Integer) + End Get + Set + Me("FORM_QUERYSTORAGE_WINSTATE") = value + End Set + End Property + + _ + Public Property FORM_QUERYSIM_X() As Integer + Get + Return CType(Me("FORM_QUERYSIM_X"),Integer) + End Get + Set + Me("FORM_QUERYSIM_X") = value + End Set + End Property + + _ + Public Property FORM_QUERYSIM_Y() As Integer + Get + Return CType(Me("FORM_QUERYSIM_Y"),Integer) + End Get + Set + Me("FORM_QUERYSIM_Y") = value + End Set + End Property + + _ + Public Property FORM_QUERYSTORAGE_X() As Integer + Get + Return CType(Me("FORM_QUERYSTORAGE_X"),Integer) + End Get + Set + Me("FORM_QUERYSTORAGE_X") = value + End Set + End Property + + _ + Public Property FORM_QUERYSTORAGE_Y() As Integer + Get + Return CType(Me("FORM_QUERYSTORAGE_Y"),Integer) + End Get + Set + Me("FORM_QUERYSTORAGE_Y") = value + End Set + End Property + + _ + Public Property FORM_PARTNUMBER_X() As Integer + Get + Return CType(Me("FORM_PARTNUMBER_X"),Integer) + End Get + Set + Me("FORM_PARTNUMBER_X") = value + End Set + End Property + + _ + Public Property FORM_PARTNUMBER_Y() As Integer + Get + Return CType(Me("FORM_PARTNUMBER_Y"),Integer) + End Get + Set + Me("FORM_PARTNUMBER_Y") = value + End Set + End Property + + _ + Public Property FORM_MATERIAL_X() As Integer + Get + Return CType(Me("FORM_MATERIAL_X"),Integer) + End Get + Set + Me("FORM_MATERIAL_X") = value + End Set + End Property + + _ + Public Property FORM_MATERIAL_Y() As Integer + Get + Return CType(Me("FORM_MATERIAL_Y"),Integer) + End Get + Set + Me("FORM_MATERIAL_Y") = value + End Set + End Property + + _ + Public Property FORM_SYSLOG_WIDTH() As Integer + Get + Return CType(Me("FORM_SYSLOG_WIDTH"),Integer) + End Get + Set + Me("FORM_SYSLOG_WIDTH") = value + End Set + End Property + + _ + Public Property FORM_SYSLOG_HEIGHT() As Integer + Get + Return CType(Me("FORM_SYSLOG_HEIGHT"),Integer) + End Get + Set + Me("FORM_SYSLOG_HEIGHT") = value + End Set + End Property + + _ + Public Property FORM_SYSLOG_X() As Integer + Get + Return CType(Me("FORM_SYSLOG_X"),Integer) + End Get + Set + Me("FORM_SYSLOG_X") = value + End Set + End Property + + _ + Public Property FORM_SYSLOG_Y() As Integer + Get + Return CType(Me("FORM_SYSLOG_Y"),Integer) + End Get + Set + Me("FORM_SYSLOG_Y") = value + End Set + End Property + + _ + Public Property CHK_SHOWIMAGE() As Boolean + Get + Return CType(Me("CHK_SHOWIMAGE"),Boolean) + End Get + Set + Me("CHK_SHOWIMAGE") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_序号() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_序号"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_序号") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_料号PN() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_料号PN"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_料号PN") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_物料名称() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_物料名称"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_物料名称") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_规格描述() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_规格描述"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_规格描述") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_单位() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_单位"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_单位") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_用量() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_用量"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_用量") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_使用位置() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_使用位置"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_使用位置") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_父料号() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_父料号"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_父料号") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_图片() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_图片"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_图片") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_备注() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_备注"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_备注") = value + End Set + End Property + + _ + Public Property FORM_BOM_WIDTH() As Integer + Get + Return CType(Me("FORM_BOM_WIDTH"),Integer) + End Get + Set + Me("FORM_BOM_WIDTH") = value + End Set + End Property + + _ + Public Property FORM_BOM_HEIGHT() As Integer + Get + Return CType(Me("FORM_BOM_HEIGHT"),Integer) + End Get + Set + Me("FORM_BOM_HEIGHT") = value + End Set + End Property + + _ + Public Property CHK_SHOWPNINFO() As Boolean + Get + Return CType(Me("CHK_SHOWPNINFO"),Boolean) + End Get + Set + Me("CHK_SHOWPNINFO") = value + End Set + End Property + + _ + Public Property CHK_SHOWPNIMAGE() As Boolean + Get + Return CType(Me("CHK_SHOWPNIMAGE"),Boolean) + End Get + Set + Me("CHK_SHOWPNIMAGE") = value + End Set + End Property + + _ + Public Property DLG_IMAGE_WIDTH() As Integer + Get + Return CType(Me("DLG_IMAGE_WIDTH"),Integer) + End Get + Set + Me("DLG_IMAGE_WIDTH") = value + End Set + End Property + + _ + Public Property DLG_IMAGE_HEIGHT() As Integer + Get + Return CType(Me("DLG_IMAGE_HEIGHT"),Integer) + End Get + Set + Me("DLG_IMAGE_HEIGHT") = value + End Set + End Property + + _ + Public Property DLG_IMAGE_LEFT() As Integer + Get + Return CType(Me("DLG_IMAGE_LEFT"),Integer) + End Get + Set + Me("DLG_IMAGE_LEFT") = value + End Set + End Property + + _ + Public Property DLG_IMAGE_TOP() As Integer + Get + Return CType(Me("DLG_IMAGE_TOP"),Integer) + End Get + Set + Me("DLG_IMAGE_TOP") = value + End Set + End Property + + _ + Public Property FORM_BOM_COL_WIDTH_工艺流程() As Integer + Get + Return CType(Me("FORM_BOM_COL_WIDTH_工艺流程"),Integer) + End Get + Set + Me("FORM_BOM_COL_WIDTH_工艺流程") = value + End Set + End Property + + _ + Public Property CHK_AUTOLOGIN() As Boolean + Get + Return CType(Me("CHK_AUTOLOGIN"),Boolean) + End Get + Set + Me("CHK_AUTOLOGIN") = value + End Set + End Property + + _ + Public Property TXT_PASSWORD() As String + Get + Return CType(Me("TXT_PASSWORD"),String) + End Get + Set + Me("TXT_PASSWORD") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_序号() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_序号"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_序号") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_日期() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_日期"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_日期") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_时间() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_时间"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_时间") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_收入() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_收入"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_收入") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_支出() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_支出"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_支出") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_收支类别() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_收支类别"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_收支类别") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_收支子类别() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_收支子类别"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_收支子类别") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_机种() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_机种"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_机种") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_交易方() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_交易方"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_交易方") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_业务类型() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_业务类型"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_业务类型") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_事由() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_事由"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_事由") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_经手人() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_经手人"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_经手人") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_单据类型() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_单据类型"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_单据类型") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_单据编号() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_单据编号"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_单据编号") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_备注1() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_备注1"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_备注1") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_备注2() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_备注2"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_备注2") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_备注3() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_备注3"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_备注3") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_WIDTH() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_WIDTH"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_WIDTH") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_HEIGHT() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_HEIGHT"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_HEIGHT") = value + End Set + End Property + + _ + Public Property FORM_FINAN_RECORD_COL_WIDTH_余额() As Integer + Get + Return CType(Me("FORM_FINAN_RECORD_COL_WIDTH_余额"),Integer) + End Get + Set + Me("FORM_FINAN_RECORD_COL_WIDTH_余额") = value + End Set + End Property + + _ + Public Property FORM_合并用料查询_COL_WIDTH_序号() As Integer + Get + Return CType(Me("FORM_合并用料查询_COL_WIDTH_序号"),Integer) + End Get + Set + Me("FORM_合并用料查询_COL_WIDTH_序号") = value + End Set + End Property + + _ + Public Property FORM_合并用料查询_COL_WIDTH_料号PN() As Integer + Get + Return CType(Me("FORM_合并用料查询_COL_WIDTH_料号PN"),Integer) + End Get + Set + Me("FORM_合并用料查询_COL_WIDTH_料号PN") = value + End Set + End Property + + _ + Public Property FORM_合并用料查询_COL_WIDTH_物料名称() As Integer + Get + Return CType(Me("FORM_合并用料查询_COL_WIDTH_物料名称"),Integer) + End Get + Set + Me("FORM_合并用料查询_COL_WIDTH_物料名称") = value + End Set + End Property + + _ + Public Property FORM_合并用料查询_COL_WIDTH_规格描述() As Integer + Get + Return CType(Me("FORM_合并用料查询_COL_WIDTH_规格描述"),Integer) + End Get + Set + Me("FORM_合并用料查询_COL_WIDTH_规格描述") = value + End Set + End Property + + _ + Public Property FORM_合并用料查询_COL_WIDTH_单位() As Integer + Get + Return CType(Me("FORM_合并用料查询_COL_WIDTH_单位"),Integer) + End Get + Set + Me("FORM_合并用料查询_COL_WIDTH_单位") = value + End Set + End Property + + _ + Public Property FORM_合并用料查询_WIDTH() As Integer + Get + Return CType(Me("FORM_合并用料查询_WIDTH"),Integer) + End Get + Set + Me("FORM_合并用料查询_WIDTH") = value + End Set + End Property + + _ + Public Property FORM_合并用料查询_HEIGHT() As Integer + Get + Return CType(Me("FORM_合并用料查询_HEIGHT"),Integer) + End Get + Set + Me("FORM_合并用料查询_HEIGHT") = value + End Set + End Property + + _ + Public Property strDomain() As String + Get + Return CType(Me("strDomain"),String) + End Get + Set + Me("strDomain") = value + End Set + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.WT_DMS.My.MySettings + Get + Return Global.WT_DMS.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/WT-DMS/My Project/Settings.settings b/WT-DMS/My Project/Settings.settings new file mode 100644 index 0000000..8e31317 --- /dev/null +++ b/WT-DMS/My Project/Settings.settings @@ -0,0 +1,219 @@ + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + blv-rd.tech + + + \ No newline at end of file diff --git a/WT-DMS/My Project/app.manifest b/WT-DMS/My Project/app.manifest new file mode 100644 index 0000000..2acc8a7 --- /dev/null +++ b/WT-DMS/My Project/app.manifest @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/WT-DMS.vbproj b/WT-DMS/WT-DMS.vbproj new file mode 100644 index 0000000..1074483 --- /dev/null +++ b/WT-DMS/WT-DMS.vbproj @@ -0,0 +1,456 @@ + + + + Debug + x86 + + + 2.0 + {5F2F6487-6E84-4827-ADBB-5EEFB94661CB} + WinExe + WT_DMS.My.MyApplication + WT_DMS + INHAOS_DMS + 512 + WindowsForms + v4.8 + + + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 3.8.0.%2a + false + true + true + + + x86 + true + full + true + true + bin\Debug\ + INHAOS_DMS.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + AnyCPU + pdbonly + false + true + true + bin\Release\ + INHAOS_DMS.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + My Project\app.manifest + + + 63DFE2C29A43988A1161842CA8A79E91BD8FD2B7 + + + WT-DMS_TemporaryKey.pfx + + + true + + + false + + + LocalIntranet + + + + ..\..\CamSnapShot\CamSnapShot\bin\Debug\CamSnapShot.dll + + + False + ..\..\CamSnapShot\CamSnapShot\bin\Debug\DirectShowLib-2005.dll + + + False + C:\Program Files (x86)\FlexCell Technologies\FlexCell.NET4\bin\FlexCell.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + AboutBox1.vb + + + Form + + + + + + + + + + + + + + + + + + + + dlgImage.vb + + + Form + + + dlg_AddSupplier.vb + + + Form + + + dlg_Input.vb + + + Form + + + dlg_StoreSelect.vb + + + Form + + + Form + + + Form1.vb + Form + + + form_BomManage.vb + + + Form + + + Form_FinancialQuery_Development.vb + + + Form + + + Form_FinancialQuery_Sales.vb + + + Form + + + Form_FinancialRecords_Development.vb + + + Form + + + Form_FinancialRecords_Sales.vb + + + Form + + + form_Material.vb + + + Form + + + form_PartNumber.vb + + + Form + + + form_Product.vb + + + Form + + + form_QuerySim.vb + + + Form + + + Form_QueryStorageRecord.vb + + + Form + + + Form_QueryStorage.vb + + + Form + + + form_StoreLocManage.vb + + + Form + + + form_SupplierManage.vb + + + Form + + + Form_SysLog.vb + + + Form + + + form_UserManage.vb + + + Form + + + Form_合并备料查询.vb + + + Form + + + Form_备份管理.vb + + + Form + + + LoginForm1.vb + + + Form + + + + + + + + True + Application.myapp + True + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + AboutBox1.vb + + + dlgImage.vb + + + dlg_AddSupplier.vb + + + dlg_Input.vb + + + dlg_StoreSelect.vb + + + Form1.vb + + + form_BomManage.vb + + + Form_FinancialQuery_Development.vb + + + Form_FinancialQuery_Sales.vb + + + Form_FinancialRecords_Development.vb + + + Form_FinancialRecords_Sales.vb + + + form_Material.vb + + + form_PartNumber.vb + + + form_Product.vb + + + form_QuerySim.vb + + + Form_QueryStorageRecord.vb + + + Form_QueryStorage.vb + + + form_StoreLocManage.vb + + + form_SupplierManage.vb + + + Form_SysLog.vb + + + form_UserManage.vb + + + Form_合并备料查询.vb + + + Form_备份管理.vb + + + LoginForm1.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + False + + + + + Include + True + Assembly + + + False + + + + + Exclude + True + File + + + + + False + Microsoft .NET Framework 4 Client Profile %28x86 和 x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/WT-DMS/WT-DMS_TemporaryKey.pfx b/WT-DMS/WT-DMS_TemporaryKey.pfx new file mode 100644 index 0000000..c1c1b4d Binary files /dev/null and b/WT-DMS/WT-DMS_TemporaryKey.pfx differ diff --git a/WT-DMS/app.config b/WT-DMS/app.config new file mode 100644 index 0000000..af460c3 --- /dev/null +++ b/WT-DMS/app.config @@ -0,0 +1,245 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + blv-rd.tech + + + + diff --git a/WT-DMS/dlgImage.Designer.vb b/WT-DMS/dlgImage.Designer.vb new file mode 100644 index 0000000..3f7c92a --- /dev/null +++ b/WT-DMS/dlgImage.Designer.vb @@ -0,0 +1,44 @@ + _ +Partial Class dlgImage + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.SuspendLayout() + ' + 'dlgImage + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.ClientSize = New System.Drawing.Size(490, 340) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgImage" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "dlgImage" + Me.ResumeLayout(False) + + End Sub + +End Class diff --git a/WT-DMS/dlgImage.resx b/WT-DMS/dlgImage.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/WT-DMS/dlgImage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WT-DMS/dlgImage.vb b/WT-DMS/dlgImage.vb new file mode 100644 index 0000000..296d0ff --- /dev/null +++ b/WT-DMS/dlgImage.vb @@ -0,0 +1,43 @@ +Imports System.Windows.Forms + +Public Class dlgImage + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + + Private Sub dlgImage_MouseClick(sender As Object, e As MouseEventArgs) Handles MyBase.MouseClick + Me.Close() + End Sub + + Private Sub dlgImage_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles MyBase.MouseDoubleClick + Me.Close() + End Sub + + Private Sub dlgImage_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown + If e.KeyCode = Keys.Enter OrElse e.KeyCode = Keys.Escape Then + Me.Close() + End If + End Sub + + Private Sub dlgImage_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Me.Width = My.Settings.DLG_IMAGE_WIDTH + Me.Height = My.Settings.DLG_IMAGE_HEIGHT + Me.Left = My.Settings.DLG_IMAGE_LEFT + Me.Top = My.Settings.DLG_IMAGE_TOP + End Sub + Private Sub dlgImage_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing + My.Settings.DLG_IMAGE_WIDTH = Me.Width + My.Settings.DLG_IMAGE_HEIGHT = Me.Height + My.Settings.DLG_IMAGE_LEFT = Me.Left + My.Settings.DLG_IMAGE_TOP = Me.Top + My.Settings.Save() + End Sub +End Class diff --git a/WT-DMS/dlg_AddSupplier.Designer.vb b/WT-DMS/dlg_AddSupplier.Designer.vb new file mode 100644 index 0000000..e223592 --- /dev/null +++ b/WT-DMS/dlg_AddSupplier.Designer.vb @@ -0,0 +1,122 @@ + _ +Partial Class dlg_AddSupplier + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlg_AddSupplier)) + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.Grid1 = New FlexCell.Grid() + Me.Label1 = New System.Windows.Forms.Label() + Me.TableLayoutPanel1.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(466, 374) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 27) + Me.TableLayoutPanel1.TabIndex = 0 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 21) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "保存" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 21) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "取消" + ' + 'Grid1 + ' + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.Location = New System.Drawing.Point(12, 27) + Me.Grid1.MultiSelect = False + Me.Grid1.Name = "Grid1" + Me.Grid1.SelectionMode = FlexCell.SelectionModeEnum.ByRow + Me.Grid1.Size = New System.Drawing.Size(600, 341) + Me.Grid1.TabIndex = 2 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(13, 9) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(107, 12) + Me.Label1.TabIndex = 3 + Me.Label1.Text = "请输入供应商信息:" + ' + 'dlg_AddSupplier + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(624, 412) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.Grid1) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlg_AddSupplier" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "添加供应商" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents Label1 As System.Windows.Forms.Label + +End Class diff --git a/WT-DMS/dlg_AddSupplier.resx b/WT-DMS/dlg_AddSupplier.resx new file mode 100644 index 0000000..0f89e9c --- /dev/null +++ b/WT-DMS/dlg_AddSupplier.resx @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + \ No newline at end of file diff --git a/WT-DMS/dlg_AddSupplier.vb b/WT-DMS/dlg_AddSupplier.vb new file mode 100644 index 0000000..6e03e08 --- /dev/null +++ b/WT-DMS/dlg_AddSupplier.vb @@ -0,0 +1,80 @@ +Imports System.Windows.Forms + +Public Class dlg_AddSupplier + Dim m_Supplier As New CSupplier + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + If Save() = True Then + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End If + End Sub + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + '获取所有表对应的字段名称列表 + Private Function GetSectionNameList() As Boolean + Dim rTable As New Data.DataTable + Dim result As Boolean = True + + rTable.Columns.Clear() + rTable.Rows.Clear() + rTable.Clear() + + Grid1.Cols = 2 + Grid1.Rows = 1 + Grid1.Column(0).Width = 200 + Grid1.Column(1).Width = 200 + Grid1.Column(0).Alignment = FlexCell.AlignmentEnum.LeftCenter + Grid1.Column(1).Alignment = FlexCell.AlignmentEnum.LeftCenter + + Grid1.Cell(0, 0).Text = "字段名称" + Grid1.Cell(0, 1).Text = "值" + If SQL_Query(COL_RIGHTS.供应商管理, "SELECT * FROM `" & CSupplier.cst_TABLE_NAME & "` WHERE 0", rTable) = True Then + Dim rowindex As Integer = 1 + For i As Integer = 0 To rTable.Columns.Count - 1 + Grid1.Rows += 1 + Grid1.Cell(rowindex, 0).Text = rTable.Columns.Item(i).ColumnName + rowindex += 1 + Next + + If Grid1.Rows > 1 Then + Grid1.Cell(1, 1).Locked = True + End If + Else + result = False + End If + + Return result + End Function + + Private Sub dlg_AddSupplier_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + GetSectionNameList() + End Sub + + Private Function Save() As Boolean + Dim RowCount As Integer = Grid1.Rows - 2 + Dim SectionName(RowCount) As String + Dim Values(RowCount) As String + + Dim tableindex As Integer = 1 + For row As Integer = 0 To RowCount + SectionName(row) = Grid1.Cell(tableindex, 0).Text + Values(row) = Grid1.Cell(tableindex, 1).Text + tableindex += 1 + Next + + Dim result As ERROR_CODE = m_Supplier.AddItem(SectionName, Values) + If result = ERROR_CODE.SUCCESS Then + Return True + Else + MsgBox(GetErrorCodeString(result)) + End If + + Return False + End Function + +End Class diff --git a/WT-DMS/dlg_Input.Designer.vb b/WT-DMS/dlg_Input.Designer.vb new file mode 100644 index 0000000..0106d6e --- /dev/null +++ b/WT-DMS/dlg_Input.Designer.vb @@ -0,0 +1,101 @@ + _ +Partial Class dlg_Input + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.tb_Input = New System.Windows.Forms.TextBox() + Me.TableLayoutPanel1.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Font = New System.Drawing.Font("宋体", 12.0!) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(203, 91) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(210, 40) + Me.TableLayoutPanel1.TabIndex = 0 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 5) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(99, 29) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "确定" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(108, 5) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(99, 29) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "取消" + ' + 'tb_Input + ' + Me.tb_Input.Font = New System.Drawing.Font("宋体", 20.0!) + Me.tb_Input.Location = New System.Drawing.Point(12, 32) + Me.tb_Input.Name = "tb_Input" + Me.tb_Input.Size = New System.Drawing.Size(401, 38) + Me.tb_Input.TabIndex = 0 + ' + 'dlg_Input + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(425, 142) + Me.Controls.Add(Me.tb_Input) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlg_Input" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "dlg_Input" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents tb_Input As System.Windows.Forms.TextBox + +End Class diff --git a/WT-DMS/dlg_Input.resx b/WT-DMS/dlg_Input.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/WT-DMS/dlg_Input.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WT-DMS/dlg_Input.vb b/WT-DMS/dlg_Input.vb new file mode 100644 index 0000000..04f12ea --- /dev/null +++ b/WT-DMS/dlg_Input.vb @@ -0,0 +1,15 @@ +Imports System.Windows.Forms + +Public Class dlg_Input + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + +End Class diff --git a/WT-DMS/dlg_StoreSelect.Designer.vb b/WT-DMS/dlg_StoreSelect.Designer.vb new file mode 100644 index 0000000..d1a7ffc --- /dev/null +++ b/WT-DMS/dlg_StoreSelect.Designer.vb @@ -0,0 +1,138 @@ + _ +Partial Class dlg_StoreSelect + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.combo_Store = New System.Windows.Forms.ComboBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.lblAddress = New System.Windows.Forms.Label() + Me.TableLayoutPanel1.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(202, 186) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 27) + Me.TableLayoutPanel1.TabIndex = 0 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 21) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "确定" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 21) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "取消" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("隶书", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Label1.Location = New System.Drawing.Point(22, 24) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(109, 19) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "请选择仓库" + ' + 'combo_Store + ' + Me.combo_Store.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_Store.Font = New System.Drawing.Font("隶书", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.combo_Store.FormattingEnabled = True + Me.combo_Store.Location = New System.Drawing.Point(64, 49) + Me.combo_Store.Name = "combo_Store" + Me.combo_Store.Size = New System.Drawing.Size(246, 27) + Me.combo_Store.TabIndex = 2 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(26, 91) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(65, 12) + Me.Label2.TabIndex = 3 + Me.Label2.Text = "仓库地点:" + ' + 'lblAddress + ' + Me.lblAddress.ForeColor = System.Drawing.Color.Navy + Me.lblAddress.Location = New System.Drawing.Point(98, 91) + Me.lblAddress.Name = "lblAddress" + Me.lblAddress.Size = New System.Drawing.Size(212, 76) + Me.lblAddress.TabIndex = 4 + ' + 'dlg_StoreSelect + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(360, 224) + Me.Controls.Add(Me.lblAddress) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.combo_Store) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlg_StoreSelect" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "仓库选择" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents combo_Store As System.Windows.Forms.ComboBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents lblAddress As System.Windows.Forms.Label + +End Class diff --git a/WT-DMS/dlg_StoreSelect.resx b/WT-DMS/dlg_StoreSelect.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/WT-DMS/dlg_StoreSelect.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WT-DMS/dlg_StoreSelect.vb b/WT-DMS/dlg_StoreSelect.vb new file mode 100644 index 0000000..06554c6 --- /dev/null +++ b/WT-DMS/dlg_StoreSelect.vb @@ -0,0 +1,55 @@ +Imports System.Windows.Forms + +Public Class dlg_StoreSelect + Dim rTable As New DataTable + Dim m_SQL As New CStore + Dim m_AddressList As New ArrayList + Dim 库位表 As New ArrayList + Public m_SelPosName As String = "" + + Private Function GetStoreList() As Boolean + combo_Store.Items.Clear() + m_AddressList.Clear() + 库位表.Clear() + + If m_SQL.QueryAll(rTable) = ERROR_CODE.SUCCESS Then + For i As Integer = 0 To rTable.Rows.Count - 1 + combo_Store.Items.Add(rTable.Rows(i).Item(CStore.COLS.仓库名称)) + m_AddressList.Add(rTable.Rows(i).Item(CStore.COLS.仓库地点)) + 库位表.Add(rTable.Rows(i).Item(CStore.COLS.仓库库位表)) + Next + Return True + End If + + Return False + End Function + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + If combo_Store.Text.Length = 0 Then + MsgBox("请选择仓库!") + Return + End If + + m_SelPosName = 库位表.Item(combo_Store.SelectedIndex) + + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + Private Sub dlg_StoreSelect_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + GetStoreList() + End Sub + + Private Sub combo_Store_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles combo_Store.SelectedIndexChanged + If combo_Store.SelectedIndex >= 0 Then + lblAddress.Text = m_AddressList.Item(combo_Store.SelectedIndex) + Else + lblAddress.Text = "" + End If + End Sub +End Class diff --git a/WT-DMS/form_BomManage.Designer.vb b/WT-DMS/form_BomManage.Designer.vb new file mode 100644 index 0000000..b5e17c9 --- /dev/null +++ b/WT-DMS/form_BomManage.Designer.vb @@ -0,0 +1,803 @@ + _ +Partial Class form_BomManage + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_BomManage)) + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.bt_Export = New System.Windows.Forms.Button() + Me.chk_ShowPnImage = New System.Windows.Forms.CheckBox() + Me.chk_ShowPnInfo = New System.Windows.Forms.CheckBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.lblBomPath = New System.Windows.Forms.Label() + Me.btOpenBack = New System.Windows.Forms.Button() + Me.btOpenNext = New System.Windows.Forms.Button() + Me.btUpdate = New System.Windows.Forms.Button() + Me.btDeleteRow = New System.Windows.Forms.Button() + Me.btInsertRow = New System.Windows.Forms.Button() + Me.Grid1 = New FlexCell.Grid() + Me.btDelete = New System.Windows.Forms.Button() + Me.btSave = New System.Windows.Forms.Button() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.TabPage3 = New System.Windows.Forms.TabPage() + Me.SplSearch = New System.Windows.Forms.SplitContainer() + Me.GrdSourceBom = New FlexCell.Grid() + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.查询ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator() + Me.更新当前物料ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.更新物料信息ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.合并相同料号ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.保存至数据库ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.保存至数据库BOM表ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() + Me.导出ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() + Me.插入行ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.删除行ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.清空表格ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TabControl2 = New System.Windows.Forms.TabControl() + Me.TabPage4 = New System.Windows.Forms.TabPage() + Me.ChkUpdatePart = New System.Windows.Forms.CheckBox() + Me.ChkHasPartType = New System.Windows.Forms.CheckBox() + Me.ckb_Pn_Inhaos = New System.Windows.Forms.CheckBox() + Me.ckb_PnJohao = New System.Windows.Forms.CheckBox() + Me.bt_QueryQuick = New System.Windows.Forms.Button() + Me.tb_Desc = New System.Windows.Forms.TextBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.tb_Name = New System.Windows.Forms.TextBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.tb_PartNumber = New System.Windows.Forms.TextBox() + Me.Label4 = New System.Windows.Forms.Label() + Me.TabPage5 = New System.Windows.Forms.TabPage() + Me.bt_Query = New System.Windows.Forms.Button() + Me.tb_Value = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.combo_Section = New System.Windows.Forms.ComboBox() + Me.Label7 = New System.Windows.Forms.Label() + Me.Label8 = New System.Windows.Forms.Label() + Me.combo_Operate = New System.Windows.Forms.ComboBox() + Me.GrdQueueResult = New FlexCell.Grid() + Me.tbBomPN = New System.Windows.Forms.TextBox() + Me.btQueryBom = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.lbl_CurrentPN = New System.Windows.Forms.Label() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.TabPage3.SuspendLayout() + CType(Me.SplSearch, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplSearch.Panel1.SuspendLayout() + Me.SplSearch.Panel2.SuspendLayout() + Me.SplSearch.SuspendLayout() + Me.ContextMenuStrip1.SuspendLayout() + Me.TabControl2.SuspendLayout() + Me.TabPage4.SuspendLayout() + Me.TabPage5.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.SuspendLayout() + ' + 'TabControl1 + ' + Me.TabControl1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Controls.Add(Me.TabPage3) + Me.TabControl1.Location = New System.Drawing.Point(6, 30) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(753, 502) + Me.TabControl1.TabIndex = 0 + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.bt_Export) + Me.TabPage1.Controls.Add(Me.chk_ShowPnImage) + Me.TabPage1.Controls.Add(Me.chk_ShowPnInfo) + Me.TabPage1.Controls.Add(Me.Label2) + Me.TabPage1.Controls.Add(Me.lblBomPath) + Me.TabPage1.Controls.Add(Me.btOpenBack) + Me.TabPage1.Controls.Add(Me.btOpenNext) + Me.TabPage1.Controls.Add(Me.btUpdate) + Me.TabPage1.Controls.Add(Me.btDeleteRow) + Me.TabPage1.Controls.Add(Me.btInsertRow) + Me.TabPage1.Controls.Add(Me.Grid1) + Me.TabPage1.Controls.Add(Me.btDelete) + Me.TabPage1.Controls.Add(Me.btSave) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage1.Size = New System.Drawing.Size(745, 476) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "料表明细" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'bt_Export + ' + Me.bt_Export.Location = New System.Drawing.Point(9, 448) + Me.bt_Export.Name = "bt_Export" + Me.bt_Export.Size = New System.Drawing.Size(90, 23) + Me.bt_Export.TabIndex = 14 + Me.bt_Export.Text = "另存为Excel表格" + Me.bt_Export.UseVisualStyleBackColor = True + ' + 'chk_ShowPnImage + ' + Me.chk_ShowPnImage.AutoSize = True + Me.chk_ShowPnImage.Checked = Global.WT_DMS.My.MySettings.Default.CHK_SHOWPNIMAGE + Me.chk_ShowPnImage.DataBindings.Add(New System.Windows.Forms.Binding("Checked", Global.WT_DMS.My.MySettings.Default, "CHK_SHOWPNIMAGE", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)) + Me.chk_ShowPnImage.Location = New System.Drawing.Point(9, 266) + Me.chk_ShowPnImage.Name = "chk_ShowPnImage" + Me.chk_ShowPnImage.Size = New System.Drawing.Size(96, 16) + Me.chk_ShowPnImage.TabIndex = 13 + Me.chk_ShowPnImage.Text = "显示图片信息" + Me.chk_ShowPnImage.UseVisualStyleBackColor = True + ' + 'chk_ShowPnInfo + ' + Me.chk_ShowPnInfo.AutoSize = True + Me.chk_ShowPnInfo.Checked = Global.WT_DMS.My.MySettings.Default.CHK_SHOWPNINFO + Me.chk_ShowPnInfo.DataBindings.Add(New System.Windows.Forms.Binding("Checked", Global.WT_DMS.My.MySettings.Default, "CHK_SHOWPNINFO", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)) + Me.chk_ShowPnInfo.Location = New System.Drawing.Point(9, 244) + Me.chk_ShowPnInfo.Name = "chk_ShowPnInfo" + Me.chk_ShowPnInfo.Size = New System.Drawing.Size(96, 16) + Me.chk_ShowPnInfo.TabIndex = 13 + Me.chk_ShowPnInfo.Text = "显示料号信息" + Me.chk_ShowPnInfo.UseVisualStyleBackColor = True + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("宋体", 12.0!) + Me.Label2.ForeColor = System.Drawing.Color.DarkCyan + Me.Label2.Location = New System.Drawing.Point(6, 12) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(112, 16) + Me.Label2.TabIndex = 12 + Me.Label2.Text = "料表层级路径:" + ' + 'lblBomPath + ' + Me.lblBomPath.AutoSize = True + Me.lblBomPath.Font = New System.Drawing.Font("宋体", 12.0!) + Me.lblBomPath.ForeColor = System.Drawing.Color.DarkCyan + Me.lblBomPath.Location = New System.Drawing.Point(115, 12) + Me.lblBomPath.Name = "lblBomPath" + Me.lblBomPath.Size = New System.Drawing.Size(96, 16) + Me.lblBomPath.TabIndex = 11 + Me.lblBomPath.Text = "B-002\B-001" + ' + 'btOpenBack + ' + Me.btOpenBack.Location = New System.Drawing.Point(9, 167) + Me.btOpenBack.Name = "btOpenBack" + Me.btOpenBack.Size = New System.Drawing.Size(91, 23) + Me.btOpenBack.TabIndex = 10 + Me.btOpenBack.Text = "返回上一级" + Me.btOpenBack.UseVisualStyleBackColor = True + ' + 'btOpenNext + ' + Me.btOpenNext.Location = New System.Drawing.Point(9, 196) + Me.btOpenNext.Name = "btOpenNext" + Me.btOpenNext.Size = New System.Drawing.Size(91, 23) + Me.btOpenNext.TabIndex = 9 + Me.btOpenNext.Text = "进入下一级" + Me.btOpenNext.UseVisualStyleBackColor = True + ' + 'btUpdate + ' + Me.btUpdate.Location = New System.Drawing.Point(8, 114) + Me.btUpdate.Name = "btUpdate" + Me.btUpdate.Size = New System.Drawing.Size(91, 23) + Me.btUpdate.TabIndex = 8 + Me.btUpdate.Text = "更新信息" + Me.btUpdate.UseVisualStyleBackColor = True + ' + 'btDeleteRow + ' + Me.btDeleteRow.Location = New System.Drawing.Point(8, 69) + Me.btDeleteRow.Name = "btDeleteRow" + Me.btDeleteRow.Size = New System.Drawing.Size(92, 23) + Me.btDeleteRow.TabIndex = 7 + Me.btDeleteRow.Text = "删除行" + Me.btDeleteRow.UseVisualStyleBackColor = True + ' + 'btInsertRow + ' + Me.btInsertRow.Location = New System.Drawing.Point(8, 40) + Me.btInsertRow.Name = "btInsertRow" + Me.btInsertRow.Size = New System.Drawing.Size(92, 23) + Me.btInsertRow.TabIndex = 7 + Me.btInsertRow.Text = "插入行" + Me.btInsertRow.UseVisualStyleBackColor = True + ' + 'Grid1 + ' + Me.Grid1.AllowUserSort = True + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.BorderStyle = FlexCell.BorderStyleEnum.None + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.Cols = 7 + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.ImeMode = System.Windows.Forms.ImeMode.[On] + Me.Grid1.Location = New System.Drawing.Point(105, 40) + Me.Grid1.Name = "Grid1" + Me.Grid1.Rows = 500 + Me.Grid1.Size = New System.Drawing.Size(634, 430) + Me.Grid1.TabIndex = 6 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'btDelete + ' + Me.btDelete.Location = New System.Drawing.Point(7, 385) + Me.btDelete.Name = "btDelete" + Me.btDelete.Size = New System.Drawing.Size(93, 23) + Me.btDelete.TabIndex = 3 + Me.btDelete.Text = "删除" + Me.btDelete.UseVisualStyleBackColor = True + ' + 'btSave + ' + Me.btSave.Location = New System.Drawing.Point(7, 340) + Me.btSave.Name = "btSave" + Me.btSave.Size = New System.Drawing.Size(93, 23) + Me.btSave.TabIndex = 3 + Me.btSave.Text = "保存" + Me.btSave.UseVisualStyleBackColor = True + ' + 'TabPage2 + ' + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage2.Size = New System.Drawing.Size(745, 476) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "料表平铺" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'TabPage3 + ' + Me.TabPage3.Controls.Add(Me.SplSearch) + Me.TabPage3.Location = New System.Drawing.Point(4, 22) + Me.TabPage3.Name = "TabPage3" + Me.TabPage3.Size = New System.Drawing.Size(745, 476) + Me.TabPage3.TabIndex = 2 + Me.TabPage3.Text = "AD BOM 向导" + Me.TabPage3.UseVisualStyleBackColor = True + ' + 'SplSearch + ' + Me.SplSearch.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplSearch.Location = New System.Drawing.Point(0, 0) + Me.SplSearch.Name = "SplSearch" + Me.SplSearch.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplSearch.Panel1 + ' + Me.SplSearch.Panel1.Controls.Add(Me.GrdSourceBom) + ' + 'SplSearch.Panel2 + ' + Me.SplSearch.Panel2.Controls.Add(Me.TabControl2) + Me.SplSearch.Panel2.Controls.Add(Me.GrdQueueResult) + Me.SplSearch.Size = New System.Drawing.Size(745, 476) + Me.SplSearch.SplitterDistance = 269 + Me.SplSearch.SplitterWidth = 6 + Me.SplSearch.TabIndex = 0 + ' + 'GrdSourceBom + ' + Me.GrdSourceBom.BorderStyle = FlexCell.BorderStyleEnum.None + Me.GrdSourceBom.CheckedImage = Nothing + Me.GrdSourceBom.Cols = 20 + Me.GrdSourceBom.ContextMenuStrip = Me.ContextMenuStrip1 + Me.GrdSourceBom.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.GrdSourceBom.Dock = System.Windows.Forms.DockStyle.Fill + Me.GrdSourceBom.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.GrdSourceBom.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.GrdSourceBom.Location = New System.Drawing.Point(0, 0) + Me.GrdSourceBom.Name = "GrdSourceBom" + Me.GrdSourceBom.Size = New System.Drawing.Size(745, 269) + Me.GrdSourceBom.TabIndex = 0 + Me.GrdSourceBom.UncheckedImage = Nothing + ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.查询ToolStripMenuItem, Me.ToolStripSeparator2, Me.更新当前物料ToolStripMenuItem, Me.更新物料信息ToolStripMenuItem, Me.合并相同料号ToolStripMenuItem, Me.ToolStripSeparator1, Me.保存至数据库ToolStripMenuItem, Me.保存至数据库BOM表ToolStripMenuItem, Me.ToolStripSeparator3, Me.导出ToolStripMenuItem, Me.ToolStripSeparator4, Me.插入行ToolStripMenuItem, Me.删除行ToolStripMenuItem, Me.清空表格ToolStripMenuItem}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(191, 248) + ' + '查询ToolStripMenuItem + ' + Me.查询ToolStripMenuItem.Name = "查询ToolStripMenuItem" + Me.查询ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.查询ToolStripMenuItem.Text = "查询物料信息" + ' + 'ToolStripSeparator2 + ' + Me.ToolStripSeparator2.Name = "ToolStripSeparator2" + Me.ToolStripSeparator2.Size = New System.Drawing.Size(187, 6) + ' + '更新当前物料ToolStripMenuItem + ' + Me.更新当前物料ToolStripMenuItem.Name = "更新当前物料ToolStripMenuItem" + Me.更新当前物料ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.更新当前物料ToolStripMenuItem.Text = "更新当前物料" + ' + '更新物料信息ToolStripMenuItem + ' + Me.更新物料信息ToolStripMenuItem.Name = "更新物料信息ToolStripMenuItem" + Me.更新物料信息ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.更新物料信息ToolStripMenuItem.Text = "更新全部物料" + ' + '合并相同料号ToolStripMenuItem + ' + Me.合并相同料号ToolStripMenuItem.Name = "合并相同料号ToolStripMenuItem" + Me.合并相同料号ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.合并相同料号ToolStripMenuItem.Text = "合并相同物料" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(187, 6) + ' + '保存至数据库ToolStripMenuItem + ' + Me.保存至数据库ToolStripMenuItem.Name = "保存至数据库ToolStripMenuItem" + Me.保存至数据库ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.保存至数据库ToolStripMenuItem.Text = "保存至数据库临时表" + ' + '保存至数据库BOM表ToolStripMenuItem + ' + Me.保存至数据库BOM表ToolStripMenuItem.Name = "保存至数据库BOM表ToolStripMenuItem" + Me.保存至数据库BOM表ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.保存至数据库BOM表ToolStripMenuItem.Text = "保存至数据库BOM表" + ' + 'ToolStripSeparator3 + ' + Me.ToolStripSeparator3.Name = "ToolStripSeparator3" + Me.ToolStripSeparator3.Size = New System.Drawing.Size(187, 6) + ' + '导出ToolStripMenuItem + ' + Me.导出ToolStripMenuItem.Name = "导出ToolStripMenuItem" + Me.导出ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.导出ToolStripMenuItem.Text = "导出为BOM文件" + ' + 'ToolStripSeparator4 + ' + Me.ToolStripSeparator4.Name = "ToolStripSeparator4" + Me.ToolStripSeparator4.Size = New System.Drawing.Size(187, 6) + ' + '插入行ToolStripMenuItem + ' + Me.插入行ToolStripMenuItem.Name = "插入行ToolStripMenuItem" + Me.插入行ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.插入行ToolStripMenuItem.Text = "插入行" + ' + '删除行ToolStripMenuItem + ' + Me.删除行ToolStripMenuItem.Name = "删除行ToolStripMenuItem" + Me.删除行ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.删除行ToolStripMenuItem.Text = "删除行" + ' + '清空表格ToolStripMenuItem + ' + Me.清空表格ToolStripMenuItem.Name = "清空表格ToolStripMenuItem" + Me.清空表格ToolStripMenuItem.Size = New System.Drawing.Size(190, 22) + Me.清空表格ToolStripMenuItem.Text = "清空表格" + ' + 'TabControl2 + ' + Me.TabControl2.Controls.Add(Me.TabPage4) + Me.TabControl2.Controls.Add(Me.TabPage5) + Me.TabControl2.Dock = System.Windows.Forms.DockStyle.Right + Me.TabControl2.Location = New System.Drawing.Point(387, 0) + Me.TabControl2.Name = "TabControl2" + Me.TabControl2.SelectedIndex = 0 + Me.TabControl2.Size = New System.Drawing.Size(358, 201) + Me.TabControl2.TabIndex = 1 + ' + 'TabPage4 + ' + Me.TabPage4.Controls.Add(Me.ChkUpdatePart) + Me.TabPage4.Controls.Add(Me.ChkHasPartType) + Me.TabPage4.Controls.Add(Me.ckb_Pn_Inhaos) + Me.TabPage4.Controls.Add(Me.ckb_PnJohao) + Me.TabPage4.Controls.Add(Me.bt_QueryQuick) + Me.TabPage4.Controls.Add(Me.tb_Desc) + Me.TabPage4.Controls.Add(Me.Label6) + Me.TabPage4.Controls.Add(Me.tb_Name) + Me.TabPage4.Controls.Add(Me.Label5) + Me.TabPage4.Controls.Add(Me.tb_PartNumber) + Me.TabPage4.Controls.Add(Me.Label4) + Me.TabPage4.Location = New System.Drawing.Point(4, 22) + Me.TabPage4.Name = "TabPage4" + Me.TabPage4.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage4.Size = New System.Drawing.Size(350, 175) + Me.TabPage4.TabIndex = 0 + Me.TabPage4.Text = "快速查询" + Me.TabPage4.UseVisualStyleBackColor = True + ' + 'ChkUpdatePart + ' + Me.ChkUpdatePart.AutoSize = True + Me.ChkUpdatePart.Checked = True + Me.ChkUpdatePart.CheckState = System.Windows.Forms.CheckState.Checked + Me.ChkUpdatePart.Location = New System.Drawing.Point(216, 150) + Me.ChkUpdatePart.Name = "ChkUpdatePart" + Me.ChkUpdatePart.Size = New System.Drawing.Size(96, 16) + Me.ChkUpdatePart.TabIndex = 8 + Me.ChkUpdatePart.Text = "同步更新料号" + Me.ChkUpdatePart.UseVisualStyleBackColor = True + ' + 'ChkHasPartType + ' + Me.ChkHasPartType.AutoSize = True + Me.ChkHasPartType.Checked = True + Me.ChkHasPartType.CheckState = System.Windows.Forms.CheckState.Checked + Me.ChkHasPartType.Location = New System.Drawing.Point(216, 128) + Me.ChkHasPartType.Name = "ChkHasPartType" + Me.ChkHasPartType.Size = New System.Drawing.Size(96, 16) + Me.ChkHasPartType.TabIndex = 7 + Me.ChkHasPartType.Text = "包含型号搜索" + Me.ChkHasPartType.UseVisualStyleBackColor = True + ' + 'ckb_Pn_Inhaos + ' + Me.ckb_Pn_Inhaos.AutoSize = True + Me.ckb_Pn_Inhaos.Checked = True + Me.ckb_Pn_Inhaos.CheckState = System.Windows.Forms.CheckState.Checked + Me.ckb_Pn_Inhaos.Location = New System.Drawing.Point(38, 150) + Me.ckb_Pn_Inhaos.Name = "ckb_Pn_Inhaos" + Me.ckb_Pn_Inhaos.Size = New System.Drawing.Size(96, 16) + Me.ckb_Pn_Inhaos.TabIndex = 6 + Me.ckb_Pn_Inhaos.Text = " INHAOS 料号" + Me.ckb_Pn_Inhaos.UseVisualStyleBackColor = True + ' + 'ckb_PnJohao + ' + Me.ckb_PnJohao.AutoSize = True + Me.ckb_PnJohao.Checked = True + Me.ckb_PnJohao.CheckState = System.Windows.Forms.CheckState.Checked + Me.ckb_PnJohao.Location = New System.Drawing.Point(38, 128) + Me.ckb_PnJohao.Name = "ckb_PnJohao" + Me.ckb_PnJohao.Size = New System.Drawing.Size(78, 16) + Me.ckb_PnJohao.TabIndex = 5 + Me.ckb_PnJohao.Text = " 卓豪料号" + Me.ckb_PnJohao.UseVisualStyleBackColor = True + ' + 'bt_QueryQuick + ' + Me.bt_QueryQuick.Location = New System.Drawing.Point(300, 19) + Me.bt_QueryQuick.Name = "bt_QueryQuick" + Me.bt_QueryQuick.Size = New System.Drawing.Size(38, 90) + Me.bt_QueryQuick.TabIndex = 3 + Me.bt_QueryQuick.Text = "查询" + Me.bt_QueryQuick.UseVisualStyleBackColor = True + ' + 'tb_Desc + ' + Me.tb_Desc.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_Desc.Location = New System.Drawing.Point(73, 88) + Me.tb_Desc.Name = "tb_Desc" + Me.tb_Desc.Size = New System.Drawing.Size(221, 21) + Me.tb_Desc.TabIndex = 2 + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(12, 91) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(53, 12) + Me.Label6.TabIndex = 0 + Me.Label6.Text = "规格描述" + ' + 'tb_Name + ' + Me.tb_Name.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_Name.Location = New System.Drawing.Point(73, 53) + Me.tb_Name.Name = "tb_Name" + Me.tb_Name.Size = New System.Drawing.Size(221, 21) + Me.tb_Name.TabIndex = 1 + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(12, 56) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(53, 12) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "物料名称" + ' + 'tb_PartNumber + ' + Me.tb_PartNumber.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper + Me.tb_PartNumber.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_PartNumber.Location = New System.Drawing.Point(73, 19) + Me.tb_PartNumber.MaxLength = 32 + Me.tb_PartNumber.Name = "tb_PartNumber" + Me.tb_PartNumber.Size = New System.Drawing.Size(221, 21) + Me.tb_PartNumber.TabIndex = 0 + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(36, 22) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(29, 12) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "料号" + ' + 'TabPage5 + ' + Me.TabPage5.Controls.Add(Me.bt_Query) + Me.TabPage5.Controls.Add(Me.tb_Value) + Me.TabPage5.Controls.Add(Me.Label3) + Me.TabPage5.Controls.Add(Me.combo_Section) + Me.TabPage5.Controls.Add(Me.Label7) + Me.TabPage5.Controls.Add(Me.Label8) + Me.TabPage5.Controls.Add(Me.combo_Operate) + Me.TabPage5.Location = New System.Drawing.Point(4, 22) + Me.TabPage5.Name = "TabPage5" + Me.TabPage5.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage5.Size = New System.Drawing.Size(350, 175) + Me.TabPage5.TabIndex = 1 + Me.TabPage5.Text = "高级查询" + Me.TabPage5.UseVisualStyleBackColor = True + ' + 'bt_Query + ' + Me.bt_Query.Location = New System.Drawing.Point(282, 12) + Me.bt_Query.Name = "bt_Query" + Me.bt_Query.Size = New System.Drawing.Size(53, 101) + Me.bt_Query.TabIndex = 3 + Me.bt_Query.Text = "查询" + Me.bt_Query.UseVisualStyleBackColor = True + ' + 'tb_Value + ' + Me.tb_Value.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_Value.Location = New System.Drawing.Point(53, 65) + Me.tb_Value.Multiline = True + Me.tb_Value.Name = "tb_Value" + Me.tb_Value.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.tb_Value.Size = New System.Drawing.Size(214, 48) + Me.tb_Value.TabIndex = 2 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(18, 15) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(29, 12) + Me.Label3.TabIndex = 1 + Me.Label3.Text = "字段" + ' + 'combo_Section + ' + Me.combo_Section.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_Section.FormattingEnabled = True + Me.combo_Section.Items.AddRange(New Object() {"料号PN", "物料名称", "规格描述"}) + Me.combo_Section.Location = New System.Drawing.Point(53, 12) + Me.combo_Section.Name = "combo_Section" + Me.combo_Section.Size = New System.Drawing.Size(214, 20) + Me.combo_Section.TabIndex = 0 + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(30, 68) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(17, 12) + Me.Label7.TabIndex = 1 + Me.Label7.Text = "值" + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Location = New System.Drawing.Point(18, 41) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(29, 12) + Me.Label8.TabIndex = 1 + Me.Label8.Text = "运算" + ' + 'combo_Operate + ' + Me.combo_Operate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_Operate.FormattingEnabled = True + Me.combo_Operate.Location = New System.Drawing.Point(53, 38) + Me.combo_Operate.Name = "combo_Operate" + Me.combo_Operate.Size = New System.Drawing.Size(214, 20) + Me.combo_Operate.TabIndex = 1 + ' + 'GrdQueueResult + ' + Me.GrdQueueResult.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GrdQueueResult.BorderStyle = FlexCell.BorderStyleEnum.Light3D + Me.GrdQueueResult.CheckedImage = Nothing + Me.GrdQueueResult.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.GrdQueueResult.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.GrdQueueResult.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.GrdQueueResult.Location = New System.Drawing.Point(0, 0) + Me.GrdQueueResult.Name = "GrdQueueResult" + Me.GrdQueueResult.Size = New System.Drawing.Size(385, 177) + Me.GrdQueueResult.TabIndex = 0 + Me.GrdQueueResult.UncheckedImage = Nothing + ' + 'tbBomPN + ' + Me.tbBomPN.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper + Me.tbBomPN.Location = New System.Drawing.Point(50, 14) + Me.tbBomPN.Name = "tbBomPN" + Me.tbBomPN.Size = New System.Drawing.Size(246, 21) + Me.tbBomPN.TabIndex = 1 + ' + 'btQueryBom + ' + Me.btQueryBom.Location = New System.Drawing.Point(302, 12) + Me.btQueryBom.Name = "btQueryBom" + Me.btQueryBom.Size = New System.Drawing.Size(75, 23) + Me.btQueryBom.TabIndex = 2 + Me.btQueryBom.Text = "查询" + Me.btQueryBom.UseVisualStyleBackColor = True + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(15, 17) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(35, 12) + Me.Label1.TabIndex = 4 + Me.Label1.Text = "料号:" + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.lbl_CurrentPN) + Me.GroupBox1.Controls.Add(Me.TabControl1) + Me.GroupBox1.Location = New System.Drawing.Point(12, 41) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.RightToLeft = System.Windows.Forms.RightToLeft.No + Me.GroupBox1.Size = New System.Drawing.Size(765, 553) + Me.GroupBox1.TabIndex = 5 + Me.GroupBox1.TabStop = False + ' + 'lbl_CurrentPN + ' + Me.lbl_CurrentPN.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lbl_CurrentPN.BackColor = System.Drawing.Color.LightBlue + Me.lbl_CurrentPN.Location = New System.Drawing.Point(5, 13) + Me.lbl_CurrentPN.Name = "lbl_CurrentPN" + Me.lbl_CurrentPN.Size = New System.Drawing.Size(754, 14) + Me.lbl_CurrentPN.TabIndex = 1 + Me.lbl_CurrentPN.Text = "当前料号: " + Me.lbl_CurrentPN.TextAlign = System.Drawing.ContentAlignment.TopCenter + ' + 'form_BomManage + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 12!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(790, 597) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.btQueryBom) + Me.Controls.Add(Me.tbBomPN) + Me.KeyPreview = true + Me.Name = "form_BomManage" + Me.Text = "BOM管理" + Me.TabControl1.ResumeLayout(false) + Me.TabPage1.ResumeLayout(false) + Me.TabPage1.PerformLayout + Me.TabPage3.ResumeLayout(false) + Me.SplSearch.Panel1.ResumeLayout(false) + Me.SplSearch.Panel2.ResumeLayout(false) + CType(Me.SplSearch,System.ComponentModel.ISupportInitialize).EndInit + Me.SplSearch.ResumeLayout(false) + Me.ContextMenuStrip1.ResumeLayout(false) + Me.TabControl2.ResumeLayout(false) + Me.TabPage4.ResumeLayout(false) + Me.TabPage4.PerformLayout + Me.TabPage5.ResumeLayout(false) + Me.TabPage5.PerformLayout + Me.GroupBox1.ResumeLayout(false) + Me.ResumeLayout(false) + Me.PerformLayout + +End Sub + Friend WithEvents TabControl1 As System.Windows.Forms.TabControl + Friend WithEvents TabPage1 As System.Windows.Forms.TabPage + Friend WithEvents TabPage2 As System.Windows.Forms.TabPage + Friend WithEvents tbBomPN As System.Windows.Forms.TextBox + Friend WithEvents btQueryBom As System.Windows.Forms.Button + Friend WithEvents btSave As System.Windows.Forms.Button + Friend WithEvents btDelete As System.Windows.Forms.Button + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents lbl_CurrentPN As System.Windows.Forms.Label + Friend WithEvents btDeleteRow As System.Windows.Forms.Button + Friend WithEvents btInsertRow As System.Windows.Forms.Button + Friend WithEvents btUpdate As System.Windows.Forms.Button + Friend WithEvents btOpenNext As System.Windows.Forms.Button + Friend WithEvents btOpenBack As System.Windows.Forms.Button + Friend WithEvents lblBomPath As System.Windows.Forms.Label + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents chk_ShowPnImage As System.Windows.Forms.CheckBox + Friend WithEvents chk_ShowPnInfo As System.Windows.Forms.CheckBox + Friend WithEvents bt_Export As System.Windows.Forms.Button + Friend WithEvents TabPage3 As TabPage + Friend WithEvents SplSearch As SplitContainer + Friend WithEvents GrdSourceBom As FlexCell.Grid + Friend WithEvents GrdQueueResult As FlexCell.Grid + Friend WithEvents TabControl2 As TabControl + Friend WithEvents TabPage4 As TabPage + Friend WithEvents ckb_Pn_Inhaos As CheckBox + Friend WithEvents ckb_PnJohao As CheckBox + Friend WithEvents bt_QueryQuick As Button + Friend WithEvents tb_Desc As TextBox + Friend WithEvents Label6 As Label + Friend WithEvents tb_Name As TextBox + Friend WithEvents Label5 As Label + Friend WithEvents tb_PartNumber As TextBox + Friend WithEvents Label4 As Label + Friend WithEvents TabPage5 As TabPage + Friend WithEvents bt_Query As Button + Friend WithEvents tb_Value As TextBox + Friend WithEvents Label3 As Label + Friend WithEvents combo_Section As ComboBox + Friend WithEvents Label7 As Label + Friend WithEvents Label8 As Label + Friend WithEvents combo_Operate As ComboBox + Friend WithEvents ContextMenuStrip1 As ContextMenuStrip + Friend WithEvents 查询ToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStripSeparator1 As ToolStripSeparator + Friend WithEvents 导出ToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ChkHasPartType As CheckBox + Friend WithEvents 保存至数据库ToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStripSeparator2 As ToolStripSeparator + Friend WithEvents 更新物料信息ToolStripMenuItem As ToolStripMenuItem + Friend WithEvents 保存至数据库BOM表ToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStripSeparator3 As ToolStripSeparator + Friend WithEvents ChkUpdatePart As CheckBox + Friend WithEvents 更新当前物料ToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStripSeparator4 As ToolStripSeparator + Friend WithEvents 插入行ToolStripMenuItem As ToolStripMenuItem + Friend WithEvents 删除行ToolStripMenuItem As ToolStripMenuItem + Friend WithEvents 清空表格ToolStripMenuItem As ToolStripMenuItem + Friend WithEvents 合并相同料号ToolStripMenuItem As ToolStripMenuItem +End Class diff --git a/WT-DMS/form_BomManage.resx b/WT-DMS/form_BomManage.resx new file mode 100644 index 0000000..2110be1 --- /dev/null +++ b/WT-DMS/form_BomManage.resx @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + + 17, 17 + + + 46 + + \ No newline at end of file diff --git a/WT-DMS/form_BomManage.vb b/WT-DMS/form_BomManage.vb new file mode 100644 index 0000000..0ec4c3f --- /dev/null +++ b/WT-DMS/form_BomManage.vb @@ -0,0 +1,1736 @@ +Imports System.Text + +Public Class form_BomManage + Dim m_Table As New System.Data.DataTable + Dim m_InitOver As Boolean = False + Dim m_PartNumber As New CPartNumber + + Dim m_BomTemplateName As String = "模板" + Dim m_CurrentBomPN As String = "" + Dim m_BomPath As New ArrayList + + Public Enum COLS + 序号 + 工艺流程 + 料号PN + 物料名称 + 规格描述 + 单位 + 用量 + 使用位置 + 父料号 + 图片 + 备注 + 单价 'V2.4 + 单位总价 'V2.4 + max + End Enum + + Public Shared m_COLS_NAME(,) As String = { + {"序号", "0"}, + {"工艺流程", "1"}, + {"料号PN", "1"}, + {"物料名称", "0"}, + {"规格描述", "0"}, + {"单位", "0"}, + {"用量", "1"}, + {"使用位置", "1"}, + {"父料号", "1"}, + {"图片", "0"}, + {"备注", "1"}, + {"单价", "1"}, + {"单位总价", "1"} + } + + Public Shared m_ProcessRoutingTable() As String = { + "Bonding", + "SMT", + "DIP", + "成品组装", + "成品包装", + "线外加工", + "其它-1", + "其它-2", + "其它-3", + "其它-4", + "其它-5" + } + + Private Sub FillGridHeaderByDataTable() + Grid1.NewFile() + + Grid1.AllowUserSort = False + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + Grid1.Cols = COLS.max + For col As Integer = 0 To COLS.max - 1 + Grid1.Cell(0, col).Text = m_COLS_NAME(col, 0) + Next + + Grid1.Column(COLS.父料号).CellType = FlexCell.CellTypeEnum.CheckBox + Grid1.Column(COLS.工艺流程).CellType = FlexCell.CellTypeEnum.ComboBox + With Grid1.ComboBox(COLS.工艺流程) + .DataSource = m_ProcessRoutingTable + .Locked = False + .AutoComplete = True + End With + + '调整宽度 + Grid1.Column(COLS.序号).Width = My.Settings.FORM_BOM_COL_WIDTH_序号 + Grid1.Column(COLS.工艺流程).Width = My.Settings.FORM_BOM_COL_WIDTH_工艺流程 + Grid1.Column(COLS.料号PN).Width = My.Settings.FORM_BOM_COL_WIDTH_料号PN + Grid1.Column(COLS.物料名称).Width = My.Settings.FORM_BOM_COL_WIDTH_物料名称 + Grid1.Column(COLS.规格描述).Width = My.Settings.FORM_BOM_COL_WIDTH_规格描述 + Grid1.Column(COLS.单位).Width = My.Settings.FORM_BOM_COL_WIDTH_单位 + Grid1.Column(COLS.用量).Width = My.Settings.FORM_BOM_COL_WIDTH_用量 + Grid1.Column(COLS.使用位置).Width = My.Settings.FORM_BOM_COL_WIDTH_使用位置 + Grid1.Column(COLS.父料号).Width = My.Settings.FORM_BOM_COL_WIDTH_父料号 + Grid1.Column(COLS.图片).Width = My.Settings.FORM_BOM_COL_WIDTH_图片 + Grid1.Column(COLS.备注).Width = My.Settings.FORM_BOM_COL_WIDTH_备注 + Me.Height = My.Settings.FORM_BOM_HEIGHT + Me.Width = My.Settings.FORM_BOM_WIDTH + + ''Dim row As Integer + 'Dim col As Integer + 'If m_Table.Columns.Count > 0 Then + ' Grid1.Cols = m_Table.Columns.Count + ' For col = 0 To m_Table.Columns.Count - 1 + ' If m_Table.Columns(col).DataType.Name = "Boolean" Then + ' Grid1.Column(col).CellType = FlexCell.CellTypeEnum.CheckBox + ' End If + ' Grid1.Cell(0, col).Text = m_Table.Columns(col).ColumnName + ' Next + 'End If + + 'For i As Integer = 1 To Grid1.Rows - 1 + ' Grid1.Cell(i, 0).Text = i + 'Next + + Grid1.AllowUserSort = True + Grid1.Locked = False + Grid1.Column(COLS.序号).Locked = True + + Grid1.Rows = 500 + + Application.DoEvents() + End Sub + + Private Sub FillGridByDataTable() + Dim row As Integer + Dim col As Integer + + 'Grid1.AutoRedraw = False + If Grid1.Rows < m_Table.Rows.Count Then + Grid1.Rows = m_Table.Rows.Count + 100 + End If + + Dim insertRow As Integer = 0 + + If m_Table.Rows.Count > 0 Then + For row = 0 To m_Table.Rows.Count - 1 + insertRow = row + 1 + + Grid1.Cell(insertRow, COLS.序号).Text = insertRow + 'Dim queryCol As Integer = 1 + Dim queryCol As Integer = 0 + For col = 0 To COLS.max - 1 + If m_COLS_NAME(col, 1) = "1" Then + Try + Grid1.Cell(insertRow, col).Text = m_Table.Rows.Item(row).Item(queryCol) + Catch ex As Exception + Grid1.Cell(insertRow, col).Text = "" + End Try + + queryCol += 1 + End If + Next + Next + End If + + 'Grid1.AutoRedraw = True + 'Grid1.Refresh() + End Sub + + Private Function QueryBom(ByVal BomName As String, ByRef dataTable As Data.DataTable) As Boolean + Dim strSelect As String = "SELECT * FROM `" & "bom_" & BomName & "`" + + '查询入库数量 + Dim result As Boolean = False + Dim strSQL As String = strSelect + dataTable.Rows.Clear() + dataTable.Columns.Clear() + If SQL_Query(COL_RIGHTS.BOM管理, strSQL, dataTable) = True Then + result = True + End If + + Return result + End Function + + Private Function CheckBomExist(ByVal bomName As String, ByRef isExist As Boolean) As Boolean + Dim strSQL As String = "CHECK TABLE `" & "bom_" & bomName & "`" 'CHECK TABLE `BOM_U01-ATMEGA328P-TQFP32` + Dim result As Boolean = False + m_Table.Rows.Clear() + m_Table.Columns.Clear() + isExist = False + If SQL_Query(COL_RIGHTS.BOM管理, strSQL, m_Table) = True Then + If m_Table.Rows.Count > 0 Then + If m_Table.Rows(0).Item(3) = "OK" Then + isExist = True + End If + End If + result = True + End If + + Return result + End Function + + Private Function DropBom(ByVal bomName As String) As Boolean + Dim strSQL As String = "DROP TABLE IF EXISTS `" & "bom_" & bomName & "`" + Dim result As Boolean = False + If SQL_ExeCommand(COL_RIGHTS.BOM管理, strSQL) = True Then + result = True + End If + + Return result + End Function + + Private Function CreateBom(ByVal bomName As String) As Boolean + Dim strSQL As String = "CREATE TABLE IF NOT EXISTS `" & "bom_" & bomName & "` Like `" & "bom_" & m_BomTemplateName & "`" + Dim result As Boolean = False + If SQL_ExeCommand(COL_RIGHTS.BOM管理, strSQL) = True Then + result = True + End If + + Return result + End Function + + Private Function CreateContextBom(ByVal bomName As String) As Boolean + Dim strSQL As String = "CREATE TABLE IF NOT EXISTS `" & "bom_" & bomName & "` Like `" & "bom_" & m_BomTemplateName & "_context`" + Dim result As Boolean = False + If SQL_ExeCommand(COL_RIGHTS.BOM管理, strSQL) = True Then + result = True + End If + + Return result + End Function + + Private Function RenameBom(ByVal oldName As String, ByVal newName As String) As Boolean + Dim strSQL As String = "ALTER TABLE `" & "bom_" & oldName & "`" & " RENAME TO `" & "bom_" & newName & "`" + Dim result As Boolean = False + If SQL_ExeCommand(COL_RIGHTS.BOM管理, strSQL) = True Then + result = True + End If + + Return result + End Function + + Private Sub btNew_Click(sender As Object, e As EventArgs) + Dim inputDlg As New dlg_Input + inputDlg.Text = "请输入新建的料号" + inputDlg.tb_Input.MaxLength = 32 + inputDlg.tb_Input.CharacterCasing = CharacterCasing.Upper + If inputDlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return + + m_CurrentBomPN = "" + If inputDlg.tb_Input.Text.Length = 0 Then + MsgBox("输入料号不能为空") + Return + End If + + Dim inputBomSn As String = inputDlg.tb_Input.Text + + '检查输入料号是否有效 + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(inputBomSn, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + MsgBox("输入料号不存在!") + Return + End If + Else + MsgBox("无法查询输入料号,请检查网络连接!") + Return + End If + + '检测输入料号的料表是否已经存在 + If CheckBomExist(inputBomSn, isExist) = True Then + If isExist = True Then + MsgBox("输入料号料表已经存在") + Return + End If + Else + MsgBox("无法查询输入料号对应的料表是否存在,请检查网络连接!") + Return + End If + + m_CurrentBomPN = inputBomSn + lbl_CurrentPN.Text = "当前料表料号:" & m_CurrentBomPN + + '查询料表模板 + If QueryBom(m_BomTemplateName, m_Table) = True Then + FillGridHeaderByDataTable() + End If + End Sub + + 'Private Sub Grid1_LeaveRow(Sender As Object, e As FlexCell.Grid.LeaveRowEventArgs) Handles Grid1.LeaveRow + ' If e.Row > 0 Then + ' If Grid1.Cell(e.Row, COLS.料号PN).Text.Length > 0 Then + ' Grid1.Cell(e.Row, COLS.序号).Text = e.Row + ' End If + ' End If + 'End Sub + + + Private Sub btSave_Click(sender As Object, e As EventArgs) Handles btSave.Click + If m_CurrentBomPN.Length = 0 Then + MsgBox("未指定当前BOM料号!") + Return + End If + + '检查输入料号是否有效 + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(m_CurrentBomPN, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + MsgBox("输入料号不存在!") + Return + End If + Else + MsgBox("无法查询输入料号,请检查网络连接!") + Return + End If + + '检测内容中的PN字段有效性 + If CheckPNValid() = False Then + MsgBox("输入信息存在错误,不能进行保存!") + Return + End If + + '创建料号表 + If SaveBom(m_CurrentBomPN) = False Then + MsgBox("保存料表失败") + Return + End If + + MsgBox("保存料表:" & m_CurrentBomPN & "成功") + End Sub + + + Private Function CheckPNValid() As Boolean + Dim row As Integer + '清除背景颜色 + For row = 1 To Grid1.Rows - 1 + Grid1.Cell(row, COLS.料号PN).BackColor = Color.White + Grid1.Cell(row, COLS.用量).BackColor = Color.White + Grid1.Cell(row, COLS.序号).Text = "" + Next + + + '检测料表输入数据是否有效 + Dim strPN As String + Dim isExist As Boolean = False + Dim checkResult As Boolean = True + Dim m_SN As Integer = 1 + Dim m_Number As Long + For row = 1 To Grid1.Rows - 1 + strPN = Grid1.Cell(row, COLS.料号PN).Text + If strPN.Length > 0 Then + '检测料号有效性 + If m_PartNumber.CheckPartNumber(strPN, isExist) = ERROR_CODE.SUCCESS Then + If isExist = True Then + Grid1.Cell(row, COLS.料号PN).BackColor = Color.Green + Else + checkResult = False + Grid1.Cell(row, COLS.料号PN).BackColor = Color.Red + End If + Else + checkResult = False + Grid1.Cell(row, COLS.料号PN).BackColor = Color.Red + End If + + '检测“用量”列,是否为数据 + Try + m_Number = Grid1.Cell(row, COLS.用量).Text + Grid1.Cell(row, COLS.用量).BackColor = Color.Green + Catch ex As Exception + Grid1.Cell(row, COLS.用量).BackColor = Color.Red + checkResult = False + End Try + + Grid1.Cell(row, COLS.序号).Text = m_SN + m_SN += 1 + End If + Next + + Return checkResult + End Function + + Private Function SaveBomItems(ByVal bomName As String) As Boolean + Dim row As Integer + Dim col As Integer + Dim result As Boolean = True + + 'INSERT INTO table_name(col_name,...) values(expr,...) + Dim strInsert As String = "INSERT INTO `" & "bom_" & bomName & "` " + Dim insertItems As String = "" + For col = 0 To COLS.max - 3 + If m_COLS_NAME(col, 1) = "1" Then + If insertItems.Length > 0 Then + insertItems &= "," + End If + insertItems &= "`" & m_COLS_NAME(col, 0) & "`" + End If + Next + + For row = 1 To Grid1.Rows - 1 + If Grid1.Cell(row, COLS.料号PN).BackColor = Color.Green Then + Dim insertValues As String = "" + + For col = 0 To COLS.max - 3 + If m_COLS_NAME(col, 1) = "1" Then + If insertValues.Length > 0 Then + insertValues &= "," + End If + + If Grid1.Column(col).CellType = FlexCell.CellTypeEnum.CheckBox Then + If Grid1.Cell(row, col).BooleanValue = True Then + insertValues &= "'1'" + Else + insertValues &= "'0'" + End If + Else + insertValues &= "'" & Grid1.Cell(row, col).Text & "'" + End If + End If + Next + + Dim strSQL As String = strInsert & "(" & insertItems & ") values(" & insertValues & ")" + If SQL_ExeCommand(COL_RIGHTS.BOM管理, strSQL) = False Then + result = False + Exit For + End If + End If + Next + + Return result + End Function + + Private Function SaveBom(ByVal bomName As String) As Boolean + '删除原Bom + 'If DropBom(bomName) = False Then Return False + 'MsgBox("DropBOM OK!") + + '创建新Bom + Dim tempBom As String = bomName & "_temp" + If CreateBom(tempBom) = False Then Return False + 'MsgBox("CreateBom OK!") + + '保存Bom内容 + If SaveBomItems(tempBom) = False Then Return False + 'MsgBox("SaveBomItems OK!") + + '删除原Bom + If DropBom(bomName) = False Then Return False + + '重命名新BOM + If RenameBom(tempBom, bomName) = False Then Return False + + Return True + End Function + + + Private Function SaveBomItems2(tempBom) As Boolean + Dim result As Boolean = True + + Dim cmdText As New StringBuilder + Dim insertStr As New StringBuilder + insertStr.Append($"INSERT INTO `bom_{tempBom}` ") + insertStr.Append("(") + insertStr.Append($"`{SourceGridCols.使用位置}`,") + insertStr.Append($"`{SourceGridCols.用量}`,") + insertStr.Append($"`{SourceGridCols.工艺流程}`,") + insertStr.Append($"`{SourceGridCols.料号PN}`") + insertStr.Append(")") + insertStr.Append(" values") + + For i = 1 To GrdSourceBom.Rows - 1 + If String.IsNullOrEmpty(GrdSourceBom.Cell(i, SourceGridCols.注释).Text) Then + If String.IsNullOrEmpty(GrdSourceBom.Cell(i, SourceGridCols.料号PN).Text) Then + Continue For + End If + End If + + cmdText.Clear() + cmdText.Append(insertStr.ToString) + cmdText.Append("(") + + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.使用位置).Text}',") + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.用量).Text}',") + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.工艺流程).Text}',") + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.料号PN).Text}'") + + cmdText.Append(")") + + If SQL_ExeCommand(COL_RIGHTS.BOM管理, cmdText.ToString) = False Then + result = False + Exit For + End If + Next + + Return result + End Function + + + ''' + ''' 保存BOM临时表 + ''' + ''' + ''' + Private Function SaveBom2(bomName As String) As Boolean + + '创建新Bom + Dim tempBom As String = bomName & "_temp" + If CreateBom(tempBom) = False Then Return False + + '保存Bom内容 + If SaveBomItems2(tempBom) = False Then Return False + + '删除原Bom + If DropBom(bomName) = False Then Return False + + '重命名新BOM + If RenameBom(tempBom, bomName) = False Then Return False + + Return True + End Function + + + Private Function SaveBomContextItems(tempBom) As Boolean + Dim result As Boolean = True + + 'INSERT INTO table_name(col_name,...) values(expr,...) + Dim cmdText As New StringBuilder + Dim insertStr As New StringBuilder + insertStr.Append($"INSERT INTO `bom_{tempBom}` ") + insertStr.Append("(") + insertStr.Append($"`{SourceGridCols.注释}`,") + insertStr.Append($"`{SourceGridCols.使用位置}`,") + insertStr.Append($"`{SourceGridCols.型号}`,") + insertStr.Append($"`{SourceGridCols.用量}`,") + insertStr.Append($"`{SourceGridCols.校验}`,") + insertStr.Append($"`{SourceGridCols.工艺流程}`,") + insertStr.Append($"`{SourceGridCols.料号PN}`") + insertStr.Append(")") + insertStr.Append(" values") + + For i = 1 To GrdSourceBom.Rows - 1 + If String.IsNullOrEmpty(GrdSourceBom.Cell(i, SourceGridCols.注释).Text) Then + If String.IsNullOrEmpty(GrdSourceBom.Cell(i, SourceGridCols.料号PN).Text) Then + Continue For + End If + End If + + cmdText.Clear() + cmdText.Append(insertStr.ToString) + cmdText.Append("(") + + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.注释).Text}',") + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.使用位置).Text}',") + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.型号).Text}',") + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.用量).Text}',") + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.校验).Text}',") + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.工艺流程).Text}',") + cmdText.Append($"'{GrdSourceBom.Cell(i, SourceGridCols.料号PN).Text}'") + + cmdText.Append(")") + + If SQL_ExeCommand(COL_RIGHTS.BOM管理, cmdText.ToString) = False Then + result = False + Exit For + End If + Next + + Return result + End Function + + + ''' + ''' 保存BOM临时表 + ''' + ''' + ''' + Private Function SaveBomContext(bomName As String) As Boolean + '创建新Bom + Dim oldBom As String = bomName & "_context" + Dim tempBom As String = bomName & "_context" & "_temp" + If CreateContextBom(tempBom) = False Then Return False + + '保存Bom内容 + If SaveBomContextItems(tempBom) = False Then Return False + + '删除原Bom + If DropBom(oldBom) = False Then Return False + + '重命名新BOM + If RenameBom(tempBom, oldBom) = False Then Return False + + Return True + End Function + + + + + Private Sub PushToBomPath(ByVal bomName As String) + m_BomPath.Add(m_CurrentBomPN) + RefreshBomPath() + End Sub + + Private Function PopFromBomPath() As String + Dim backBomName As String = "" + + If m_BomPath.Count >= 2 Then + m_BomPath.RemoveAt(m_BomPath.Count - 1) + backBomName = m_BomPath.Item(m_BomPath.Count - 1) + m_BomPath.RemoveAt(m_BomPath.Count - 1) + End If + + RefreshBomPath() + + Return backBomName + End Function + + Private Sub RefreshBomPath() + Dim tempPath As String = "" + + For Each pItem As String In m_BomPath + If tempPath.Length > 0 Then + tempPath &= "\" + End If + tempPath &= pItem + Next + + lblBomPath.Text = tempPath + + If m_BomPath.Count >= 2 Then + btOpenBack.Enabled = True + Else + btOpenBack.Enabled = False + End If + + btOpenNext.Enabled = False + + Application.DoEvents() + End Sub + + Private Function OpenBom(ByVal bomName As String) As Boolean + Dim result As Boolean = False + + '检查输入料号是否有效 + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(bomName, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + MsgBox("输入料号不存在!") + Return False + End If + Else + MsgBox("无法查询输入料号,请检查网络连接!") + Return False + End If + + '检测输入料号的料表是否已经存在 + If CheckBomExist(bomName, isExist) = True Then + If isExist = True Then + m_CurrentBomPN = bomName + lbl_CurrentPN.Text = "当前料表料号:" & m_CurrentBomPN + + '查询料表模板 + If QueryBom(m_CurrentBomPN, m_Table) = True Then + PushToBomPath(m_CurrentBomPN) + + FillGridHeaderByDataTable() + FillGridByDataTable() + If chk_ShowPnInfo.Checked = True Then + GetAllPNItemInfo() + End If + + result = True + End If + Else + If MessageBox.Show("输入料号BOM不存在,是否新建BOM?" & vbNewLine & "选择""是""新建, 否则""取消""", "新建BOM?", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then + m_CurrentBomPN = bomName + lbl_CurrentPN.Text = "当前料表料号:" & m_CurrentBomPN + + '查询料表模板 + If QueryBom(m_BomTemplateName, m_Table) = True Then + PushToBomPath(m_CurrentBomPN) + FillGridHeaderByDataTable() + + result = True + End If + End If + End If + Else + MsgBox("无法查询输入料号对应的BOM是否存在,请检查网络连接!") + End If + + Return result + End Function + + ''' + ''' 加载临时Bom表 + ''' + ''' + ''' + Private Function OpenBomContext(bomName As String) As Boolean + '检查输入料号是否有效 + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(bomName, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + MsgBox("输入料号不存在!") + Return False + End If + Else + MsgBox("无法查询输入料号,请检查网络连接!") + Return False + End If + + '检测输入料号的料表是否已经存在 + If CheckBomExist(bomName, isExist) = False Then + MsgBox("无法查询输入料号对应的BOM是否存在,请检查网络连接!") + Return False + End If + + Dim tbName As String '数据表名 + If isExist = False Then + If MessageBox.Show($"输入料号BOM不存在,是否新建BOM?{vbNewLine}选择""是""新建, 否则""取消""", "新建BOM?", MessageBoxButtons.YesNo) <> Windows.Forms.DialogResult.Yes Then + Return False + End If + tbName = $"bom_模板_context" + Else + tbName = $"bom_{bomName}_context" + End If + + lbl_CurrentPN.Text = "当前料表料号:" & bomName + + + '查询云端数据 + Dim strSQL As String = $"Select * From `{tbName}` order by `ID` asc" + Dim dtTable As New DataTable + If SQL_Query(COL_RIGHTS.BOM管理, strSQL, dtTable) = False Then Return False + + '名称有所变化(不明作用) + ' PushToBomPath(bomName) + + '填充至表格 + InitSourceGrid() '初始化表格 + GrdSourceBom.AutoRedraw = False + For i = 0 To dtTable.Rows.Count - 1 + GrdSourceBom.Cell(i + 1, SourceGridCols.注释).Text = dtTable(i)($"{SourceGridCols.注释}").ToString + GrdSourceBom.Cell(i + 1, SourceGridCols.使用位置).Text = dtTable(i)($"{SourceGridCols.使用位置}").ToString + GrdSourceBom.Cell(i + 1, SourceGridCols.型号).Text = dtTable(i)($"{SourceGridCols.型号}").ToString + GrdSourceBom.Cell(i + 1, SourceGridCols.用量).Text = dtTable(i)($"{SourceGridCols.用量}").ToString + GrdSourceBom.Cell(i + 1, SourceGridCols.校验).Text = dtTable(i)($"{SourceGridCols.校验}").ToString + GrdSourceBom.Cell(i + 1, SourceGridCols.工艺流程).Text = dtTable(i)($"{SourceGridCols.工艺流程}").ToString + GrdSourceBom.Cell(i + 1, SourceGridCols.料号PN).Text = dtTable(i)($"{SourceGridCols.料号PN}").ToString + Next + GrdSourceBom.AutoRedraw = True + GrdSourceBom.Refresh() + + If chk_ShowPnInfo.Checked Then + GetAllPnInfo() + End If + + Return True + End Function + + + Private Sub btQueryBom_Click(sender As Object, e As EventArgs) Handles btQueryBom.Click + m_CurrentBomPN = "" + m_BomPath.Clear() + + If tbBomPN.Text.Length = 0 Then + MsgBox("输入料号不能为空") + Return + End If + + If TabControl1.SelectedIndex = 0 Then + OpenBom(tbBomPN.Text) + ElseIf TabControl1.SelectedIndex = 2 Then + OpenBomContext(tbBomPN.Text) '加载临时BOM + End If + End Sub + + Private Function GetPNItemInfo(ByVal gridRowIndex As Integer) As Boolean + Dim 物料名称 As String = "" + Dim 规格描述 As String = "" + Dim 单位 As String = "" + Dim 单重 As Double = 0 + Dim 图片(0) As Byte + Dim 供应商ID As String = "" + + Dim 用量 As String = Grid1.Cell(gridRowIndex, 6).IntegerValue + + + 'Grid1.Cell(gridRowIndex, COLS.物料名称).Text = "" + 'Grid1.Cell(gridRowIndex, COLS.规格描述).Text = "" + 'Grid1.Cell(gridRowIndex, COLS.单位).Text = "" + 'Grid1.Cell(gridRowIndex, COLS.单价).Text = "" + 'Grid1.Cell(gridRowIndex, COLS.单位总价).Text = "" + 'Grid1.Cell(gridRowIndex, COLS.图片).Text = "" + + Dim result As Boolean = False + Dim strPn As String = Grid1.Cell(gridRowIndex, COLS.料号PN).Text + + + 'If chk_ShowPnImage.Checked = True Then + ' If m_PartNumber.QueryItem(strPn, 物料名称, 规格描述, 单位, 单重, 图片, 供应商ID) = ERROR_CODE.SUCCESS Then + ' Grid1.Cell(gridRowIndex, COLS.物料名称).Text = 物料名称 + ' Grid1.Cell(gridRowIndex, COLS.规格描述).Text = 规格描述 + ' Grid1.Cell(gridRowIndex, COLS.单位).Text = 单位 + ' Grid1.Cell(gridRowIndex, COLS.单价).Text = 单重 + ' Grid1.Cell(gridRowIndex, COLS.单位总价).Text = 单重 * 用量 + + ' Grid1.Cell(gridRowIndex, COLS.图片).Text = "" + + ' Dim mImage As System.Drawing.Image = GetImageFromBytes(图片) + ' If Grid1.Images.Count >= gridRowIndex Then + ' Grid1.Images.Remove(gridRowIndex.ToString) + ' End If + ' Grid1.Images.Add(mImage, gridRowIndex.ToString) + ' Grid1.Cell(gridRowIndex, COLS.图片).SetImage(gridRowIndex.ToString) + + ' result = True + ' End If + 'Else + ' If m_PartNumber.QueryItem(strPn, 物料名称, 规格描述, 单位, 单重, 供应商ID) = ERROR_CODE.SUCCESS Then + ' Grid1.Cell(gridRowIndex, COLS.物料名称).Text = 物料名称 + ' Grid1.Cell(gridRowIndex, COLS.规格描述).Text = 规格描述 + ' Grid1.Cell(gridRowIndex, COLS.单位).Text = 单位 + ' Grid1.Cell(gridRowIndex, COLS.单价).Text = 单重 + ' Grid1.Cell(gridRowIndex, COLS.单位总价).Text = 单重 * 用量 + ' Grid1.Cell(gridRowIndex, COLS.图片).Text = "" + ' result = True + ' End If + 'End If + + + + If chk_ShowPnImage.Checked = True Then + If m_PartNumber.QueryItem(strPn, 物料名称, 规格描述, 单位, 单重, 图片, 供应商ID) = ERROR_CODE.SUCCESS Then + '填充图像 + Dim mImage As System.Drawing.Image = GetImageFromBytes(图片) + If Grid1.Images.Count >= gridRowIndex Then + Grid1.Images.Remove(gridRowIndex.ToString) + End If + Grid1.Images.Add(mImage, gridRowIndex.ToString) + Grid1.Cell(gridRowIndex, COLS.图片).SetImage(gridRowIndex.ToString) + + result = True + End If + Else + If m_PartNumber.QueryItem(strPn, 物料名称, 规格描述, 单位, 单重, 供应商ID) = ERROR_CODE.SUCCESS Then + result = True + End If + End If + + Grid1.Cell(gridRowIndex, COLS.物料名称).Text = 物料名称 + Grid1.Cell(gridRowIndex, COLS.规格描述).Text = 规格描述 + Grid1.Cell(gridRowIndex, COLS.单位).Text = 单位 + Grid1.Cell(gridRowIndex, COLS.单价).Text = 单重 + Grid1.Cell(gridRowIndex, COLS.单位总价).Text = 单重 * 用量 + Grid1.Cell(gridRowIndex, COLS.图片).Text = "" + + Return result + End Function + + + Private Function GetAllPNItemInfo() As Boolean + Dim TotalCost As Double = 0 + Dim AvailabeRows As Integer = 0 + + For row As Integer = 1 To Grid1.Rows - 1 + Grid1.Cell(row, COLS.物料名称).Text = "" + Grid1.Cell(row, COLS.规格描述).Text = "" + Grid1.Cell(row, COLS.单位).Text = "" + + Grid1.Cell(row, COLS.单价).Text = "" + Grid1.Cell(row, COLS.单位总价).Text = "" + + Grid1.Cell(row, COLS.图片).Text = "" + Next + + Grid1.Images.Clear() + + Dim result As Boolean = True + + For row As Integer = 1 To Grid1.Rows - 1 + AvailabeRows = AvailabeRows + 1 + If GetPNItemInfo(row) = False Then + result = False + Exit For + End If + TotalCost = TotalCost + Grid1.Cell(row, COLS.单位总价).Text + Next + Grid1.Cell(AvailabeRows, COLS.单位总价 - 1).Text = "Total : " + Grid1.Cell(AvailabeRows, COLS.单位总价).Text = TotalCost + + Return result + End Function + + Private Sub Grid1_LeaveCell(Sender As Object, e As FlexCell.Grid.LeaveCellEventArgs) Handles Grid1.LeaveCell + If e.Row > 1 AndAlso e.Col = COLS.料号PN Then + If Grid1.Cell(e.Row, e.Col).Text.Length > 0 Then + Dim inputBomPn As String = Grid1.Cell(e.Row, e.Col).Text.ToUpper + Grid1.Cell(e.Row, e.Col).Text = inputBomPn + + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(inputBomPn, isExist) = ERROR_CODE.SUCCESS Then + If isExist = True Then + If chk_ShowPnInfo.Checked = True Then + GetPNItemInfo(e.Row) + End If + Else + Grid1.Cell(e.Row, e.Col).BackColor = Color.Red + End If + Else + MsgBox("无法查询输入料号,请检查网络连接!") + Return + End If + End If + End If + End Sub + + Private Sub form_BomManage_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed + My.Settings.FORM_BOM_COL_WIDTH_序号 = Grid1.Column(COLS.序号).Width + My.Settings.FORM_BOM_COL_WIDTH_工艺流程 = Grid1.Column(COLS.工艺流程).Width + My.Settings.FORM_BOM_COL_WIDTH_料号PN = Grid1.Column(COLS.料号PN).Width + My.Settings.FORM_BOM_COL_WIDTH_物料名称 = Grid1.Column(COLS.物料名称).Width + My.Settings.FORM_BOM_COL_WIDTH_规格描述 = Grid1.Column(COLS.规格描述).Width + My.Settings.FORM_BOM_COL_WIDTH_单位 = Grid1.Column(COLS.单位).Width + My.Settings.FORM_BOM_COL_WIDTH_用量 = Grid1.Column(COLS.用量).Width + My.Settings.FORM_BOM_COL_WIDTH_使用位置 = Grid1.Column(COLS.使用位置).Width + My.Settings.FORM_BOM_COL_WIDTH_父料号 = Grid1.Column(COLS.父料号).Width + My.Settings.FORM_BOM_COL_WIDTH_图片 = Grid1.Column(COLS.图片).Width + My.Settings.FORM_BOM_COL_WIDTH_备注 = Grid1.Column(COLS.备注).Width + My.Settings.FORM_BOM_HEIGHT = Me.Height + My.Settings.FORM_BOM_WIDTH = Me.Width + + My.Settings.Save() + End Sub + + Private Sub btInsertRow_Click(sender As Object, e As EventArgs) Handles btInsertRow.Click + Grid1.Selection.InsertRows() + End Sub + + Private Sub btDeleteRow_Click(sender As Object, e As EventArgs) Handles btDeleteRow.Click + Grid1.Selection.DeleteByRow() + End Sub + + Private Sub btUpdate_Click(sender As Object, e As EventArgs) Handles btUpdate.Click + GetAllPNItemInfo() + End Sub + + Private Sub btOpenFatherPN_Click(sender As Object, e As EventArgs) Handles btOpenNext.Click + Dim selRow As Integer = Grid1.Selection.FirstRow + If selRow >= 1 Then + If Grid1.Cell(selRow, COLS.父料号).BooleanValue = True Then + tbBomPN.Text = Grid1.Cell(Grid1.Selection.FirstRow, COLS.料号PN).Text + OpenBom(tbBomPN.Text) + Else + MsgBox("选择项不是父料号,无法打开") + End If + End If + End Sub + + Private Sub btOpenBack_Click(sender As Object, e As EventArgs) Handles btOpenBack.Click + tbBomPN.Text = PopFromBomPath() + If tbBomPN.Text.Length > 0 Then + OpenBom(tbBomPN.Text) + End If + End Sub + + Private Sub form_BomManage_Load(sender As Object, e As EventArgs) Handles MyBase.Load + FillGridHeaderByDataTable() + m_BomPath.Clear() + RefreshBomPath() + btOpenNext.Enabled = False + + InitSourceGrid() + End Sub + + Private Sub Grid1_MouseClick(sender As Object, e As MouseEventArgs) Handles Grid1.MouseClick + btOpenNext.Enabled = False + If Grid1.Selection.FirstRow >= 1 Then + If Grid1.Cell(Grid1.Selection.FirstRow, COLS.父料号).BooleanValue = True Then + If Grid1.Cell(Grid1.Selection.FirstRow, COLS.料号PN).Text.Length > 0 Then + btOpenNext.Enabled = True + End If + End If + End If + End Sub + + Private Sub Grid1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles Grid1.MouseDoubleClick + Dim selRow As Integer = Grid1.Selection.FirstRow + Dim selCol As Integer = Grid1.Selection.FirstCol + If Grid1.Selection.FirstRow >= 1 Then + If Grid1.Selection.FirstCol = COLS.图片 Then + Dim imageKey As String = Grid1.Cell(selRow, selCol).ImageKey + If Not imageKey Is Nothing AndAlso imageKey.Length > 0 Then + Dim mImage As System.Drawing.Image = Grid1.Images.Item(imageKey).Picture + If Not mImage Is Nothing Then + Dim dlgImage As New dlgImage + dlgImage.Text = Grid1.Cell(selRow, COLS.料号PN).Text + dlgImage.BackgroundImage = mImage + dlgImage.ShowDialog() + End If + End If + End If + End If + End Sub + + Private Sub tbBomPN_KeyDown(sender As Object, e As KeyEventArgs) Handles tbBomPN.KeyDown + If e.KeyCode = Keys.Enter Then + btQueryBom.PerformClick() + End If + End Sub + + Private Sub chk_ShowPnImage_CheckedChanged(sender As Object, e As EventArgs) Handles chk_ShowPnImage.CheckedChanged + If chk_ShowPnImage.Checked = False Then + Grid1.Images.Clear() + End If + End Sub + + Private Sub btDelete_Click(sender As Object, e As EventArgs) Handles btDelete.Click + If m_CurrentBomPN.Length = 0 Then + MsgBox("未指定当前BOM料号!") + Return + End If + + '检查输入料号是否有效 + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(m_CurrentBomPN, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + MsgBox("输入料号不存在!") + Return + End If + Else + MsgBox("无法查询输入料号,请检查网络连接!") + Return + End If + + '检测Bom表是否存在 + isExist = False + If CheckBomExist(m_CurrentBomPN, isExist) = False Then + MsgBox("指定料号对应BOM不存在!") + Return + End If + + If MessageBox.Show("确认删除指定BOM:" & m_CurrentBomPN & ",删除后无法恢复!", "BOM:" & m_CurrentBomPN & "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.OK Then + '删除料号表 + If DropBom(m_CurrentBomPN) = False Then + MsgBox("删除料表失败") + Return + End If + + MsgBox("删除料表:" & m_CurrentBomPN & "成功") + End If + End Sub + + Private Sub bt_Export_Click(sender As Object, e As EventArgs) Handles bt_Export.Click + Dim dlg As New SaveFileDialog() + dlg.DefaultExt = "xls" + dlg.Filter = "Excel File|*.xls" + If dlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return + + If Grid1.ExportToExcel(dlg.FileName, True, True) Then + MsgBox("保存为Excel成功:" & dlg.FileName) + Else + MsgBox("保存失败!") + End If + End Sub + + + + + + + + + '2021/10/06 Qizengbiao修改 +#Region "数据查询" + 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_Quick(partNumber As String, partName As String, partDesc As String, hasInhaos As Boolean, hasJohao As Boolean) + 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 partNumber.Length > 0 OrElse + partName.Length > 0 OrElse + partDesc.Length > 0 OrElse + hasInhaos = True OrElse + hasJohao = True Then + + strSQL &= " WHERE " + + Dim strSplit() As String + Dim firstLike As Boolean = True + If partNumber.Length > 0 Then + strSplit = Split(partNumber, ",") + 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 partName.Length > 0 Then + strSplit = Split(partName, ",") + 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 partDesc.Length > 0 Then + strSplit = Split(partDesc, ",") + For i As Integer = 0 To strSplit.Length - 1 + Dim tmp As String = GetLikeString(strSplit(i)) + If String.IsNullOrEmpty(tmp) Then Continue For + + If firstLike = True Then + firstLike = False + Else + strSQL &= " AND " + End If + + Select Case tmp(tmp.Length - 1)'查看是否以R或Ω结尾 + Case "R"c + strSQL &= "(" + + strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.规格描述) & "`" + strSQL &= " COLLATE gbk_chinese_ci " + strSQL &= " LIKE '%" + strSQL &= tmp & "%'" + strSQL &= " escape '/'" + + strSQL &= " or " + + strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.规格描述) & "`" + strSQL &= " COLLATE gbk_chinese_ci " + strSQL &= " LIKE '%" + strSQL &= tmp.Replace("R"c, "Ω"c) & "%'" + strSQL &= " escape '/'" + + strSQL &= ")" + Case "Ω"c + strSQL &= "(" + + strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.规格描述) & "`" + strSQL &= " COLLATE gbk_chinese_ci " + strSQL &= " LIKE '%" + strSQL &= tmp & "%'" + strSQL &= " escape '/'" + + strSQL &= " or " + + strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.规格描述) & "`" + strSQL &= " COLLATE gbk_chinese_ci " + strSQL &= " LIKE '%" + strSQL &= tmp.Replace("Ω"c, "R"c) & "%'" + strSQL &= " escape '/'" + + strSQL &= ")" + Case Else + strSQL &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.规格描述) & "`" + strSQL &= " COLLATE gbk_chinese_ci " + strSQL &= " LIKE '%" + strSQL &= GetLikeString(strSplit(i)) & "%'" + strSQL &= " escape '/'" + End Select + Next + End If + + Dim customStr As String = "" + If hasInhaos Then + customStr &= "`" & CPartNumber.m_COLS_NAME(CPartNumber.COLS.供应商ID) & "` = '02'" + End If + + If hasJohao 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 + End If + + SQL_Query(COL_RIGHTS.料号管理, strSQL, m_Table) + End Sub + + + +#End Region + Enum SourceGridCols + Sn + 注释 + 使用位置 + 型号 + 用量 + 校验 + 工艺流程 + 料号PN + 物料名称 + 规格描述 + 单位 + 单价 + Max + End Enum + + Private Sub InitSourceGrid() + GrdSourceBom.NewFile() + + GrdSourceBom.Cols = SourceGridCols.Max + GrdSourceBom.Rows = 500 + + GrdSourceBom.AutoRedraw = False + GrdSourceBom.DisplayRowNumber = True + GrdSourceBom.ExtendLastCol = True + + For i = 0 To GrdSourceBom.Cols - 1 + GrdSourceBom.Cell(0, i).Text = [Enum].GetName(GetType(SourceGridCols), i) + Next + + GrdSourceBom.Column(SourceGridCols.规格描述).Width = 200 + GrdSourceBom.Column(SourceGridCols.校验).CellType = FlexCell.CellTypeEnum.CheckBox + + GrdSourceBom.Column(SourceGridCols.工艺流程).CellType = FlexCell.CellTypeEnum.ComboBox + With GrdSourceBom.ComboBox(SourceGridCols.工艺流程) + .DataSource = m_ProcessRoutingTable + .Locked = False + .AutoComplete = True + End With + + GrdSourceBom.Range(0, SourceGridCols.校验, GrdSourceBom.Rows - 1, SourceGridCols.校验).BackColor = Color.LightBlue + + GrdSourceBom.AutoRedraw = True + GrdSourceBom.Refresh() + End Sub + + Enum QueueGridCols + Sn + 料号PN + 物料名称 + 规格描述 + 单位 + 单重 + 供应商ID + 序号 + End Enum + + Enum DestBomGridCols + 序号 + 工艺流程 + 料号PN + 物料名称 + 规格描述 + 单位 + 用量 + 使用位置 + 单价 + 单位总价 + MAX + End Enum + + + Private Sub 导出ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 导出ToolStripMenuItem.Click + Using fileDialog As New SaveFileDialog + fileDialog.Filter = "Excel文档(*.xls)|*.xls" + fileDialog.AddExtension = True + + If String.IsNullOrEmpty(tbBomPN.Text) Then + fileDialog.FileName = tbBomPN.Text + Else + fileDialog.FileName = tbBomPN.Text & "-BOM" + End If + + + If fileDialog.ShowDialog <> DialogResult.OK Then Return + + GrdSourceBom.ExportToExcel(fileDialog.FileName, True, True) + + Dim tmpGrid As New FlexCell.Grid + tmpGrid.DisplayRowNumber = True + tmpGrid.Cols = DestBomGridCols.MAX + 1 + tmpGrid.Rows = GrdSourceBom.Rows + + tmpGrid.BackColorFixed = tmpGrid.BackColor1 + + tmpGrid.Cell(0, DestBomGridCols.序号).Text = "序号" + tmpGrid.Cell(0, DestBomGridCols.工艺流程).Text = "工艺流程" + tmpGrid.Cell(0, DestBomGridCols.料号PN).Text = "料号PN" + tmpGrid.Cell(0, DestBomGridCols.物料名称).Text = "物料名称" + tmpGrid.Cell(0, DestBomGridCols.规格描述).Text = "规格描述" + tmpGrid.Cell(0, DestBomGridCols.单位).Text = "单位" + tmpGrid.Cell(0, DestBomGridCols.用量).Text = "用量" + tmpGrid.Cell(0, DestBomGridCols.使用位置).Text = "使用位置" + tmpGrid.Cell(0, DestBomGridCols.单价).Text = "单价" + tmpGrid.Cell(0, DestBomGridCols.单位总价).Text = "单位总价" + + tmpGrid.Cell(1, DestBomGridCols.序号 + 1).Text = "序号" + tmpGrid.Cell(1, DestBomGridCols.工艺流程 + 1).Text = "工艺流程" + tmpGrid.Cell(1, DestBomGridCols.料号PN + 1).Text = "料号PN" + tmpGrid.Cell(1, DestBomGridCols.物料名称 + 1).Text = "物料名称" + tmpGrid.Cell(1, DestBomGridCols.规格描述 + 1).Text = "规格描述" + tmpGrid.Cell(1, DestBomGridCols.单位 + 1).Text = "单位" + tmpGrid.Cell(1, DestBomGridCols.用量 + 1).Text = "用量" + tmpGrid.Cell(1, DestBomGridCols.使用位置 + 1).Text = "使用位置" + tmpGrid.Cell(1, DestBomGridCols.单价 + 1).Text = "单价" + tmpGrid.Cell(1, DestBomGridCols.单位总价 + 1).Text = "单位总价" + + For i = 2 To tmpGrid.Rows - 1 + If String.IsNullOrEmpty(GrdSourceBom.Cell(i, SourceGridCols.料号PN).Text) Then + tmpGrid.Cell(i, DestBomGridCols.单价 + 1).Text = "Totel:" + + + Dim totel As Double = 0 + For j = 2 To i - 1 + totel += tmpGrid.Cell(j, DestBomGridCols.单位总价 + 1).DoubleValue + Next + + tmpGrid.Cell(i, DestBomGridCols.单位总价 + 1).Text = totel + Continue For + End If + + tmpGrid.Cell(i, DestBomGridCols.序号 + 1).Text = i - 1 + tmpGrid.Cell(i, DestBomGridCols.工艺流程 + 1).Text = GrdSourceBom.Cell(i - 1, SourceGridCols.工艺流程).Text + tmpGrid.Cell(i, DestBomGridCols.料号PN + 1).Text = GrdSourceBom.Cell(i - 1, SourceGridCols.料号PN).Text + tmpGrid.Cell(i, DestBomGridCols.物料名称 + 1).Text = GrdSourceBom.Cell(i - 1, SourceGridCols.物料名称).Text + tmpGrid.Cell(i, DestBomGridCols.规格描述 + 1).Text = GrdSourceBom.Cell(i - 1, SourceGridCols.规格描述).Text + tmpGrid.Cell(i, DestBomGridCols.单位 + 1).Text = GrdSourceBom.Cell(i - 1, SourceGridCols.单位).Text + tmpGrid.Cell(i, DestBomGridCols.用量 + 1).Text = GrdSourceBom.Cell(i - 1, SourceGridCols.用量).Text + tmpGrid.Cell(i, DestBomGridCols.使用位置 + 1).Text = GrdSourceBom.Cell(i - 1, SourceGridCols.使用位置).Text + tmpGrid.Cell(i, DestBomGridCols.单价 + 1).Text = GrdSourceBom.Cell(i - 1, SourceGridCols.单价).Text + tmpGrid.Cell(i, DestBomGridCols.单位总价 + 1).Text = GrdSourceBom.Cell(i - 1, SourceGridCols.用量).IntegerValue * GrdSourceBom.Cell(i - 1, SourceGridCols.单价).DoubleValue + Next + + Try + tmpGrid.ExportToExcel(fileDialog.FileName) + MsgBox($"导出BOM至{fileDialog.FileName}完成!") + Catch ex As Exception + MsgBox($"导出BOM至{fileDialog.FileName}失败,{ex.Message}") + End Try + + End Using + End Sub + + Private Function GetPartFootPrintNum(footPrint As String) As String + Dim result As New StringBuilder + Dim findPoint As Boolean = False + Dim findNum As Boolean = False + + If footPrint.Length = 0 Then Return footPrint + For i = footPrint.Length - 1 To 0 Step -1 + Select Case footPrint(i) + Case "0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c + If findNum = False Then findNum = True + result.Insert(0, footPrint(i)) + Case "."c + If findNum = False Then Continue For '未查找到数字则忽略小数点 + If findPoint Then Exit For '已添加小数点则退出搜索 + If findPoint = False Then findPoint = True '变更状态为已添加小数点 + result.Insert(0, footPrint(i)) + Case Else + If findNum = False Then Continue For '未查找到数字则继续寻找数字 + Exit For '已找到数字则退出搜索 + End Select + Next + + If findNum = False Then Return footPrint '未查找到数字则返回原字符串 + + If result(0) = "."c Then result.Remove(0, 1) '小数点开头则移除小数点 + + Return result.ToString + End Function + + + Private Function GetPartFootComment(footPrint As String) As String + If footPrint.Length = 0 Then Return footPrint + + Select Case footPrint(footPrint.Length - 1) + Case "R"c + footPrint &= $",{footPrint.Replace("R"c, "Ω"c)}" + Case "Ω"c + footPrint &= $",{footPrint.Replace("Ω"c, "R"c)}" + End Select + + Return footPrint + End Function + + + Private Sub QueuePart(partDesc As String) + ' If String.IsNullOrWhiteSpace(partDesc) Then Return + + If partDesc.EndsWith(",") Then + partDesc = partDesc.Remove(partDesc.Length - 1) + End If + + QueryData_Quick(tb_PartNumber.Text, tb_Name.Text, partDesc, ckb_Pn_Inhaos.Checked, ckb_PnJohao.Checked) + + '初始化表格 + GrdQueueResult.DisplayRowNumber = True + GrdQueueResult.AllowUserSort = True + GrdQueueResult.DisplayFocusRect = False + GrdQueueResult.ExtendLastCol = True + GrdQueueResult.DisplayRowArrow = True + GrdQueueResult.BoldFixedCell = False + GrdQueueResult.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + '将查询结果与表格绑定 + GrdQueueResult.SetDataBinding(m_Table, "", True, 1) + + GrdQueueResult.Column(QueueGridCols.规格描述).Width = 360 + End Sub + + Private Sub 查询ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 查询ToolStripMenuItem.Click + If GrdSourceBom.ActiveCell Is Nothing Then Return + Dim row As Integer = GrdSourceBom.ActiveCell.Row + + If Not m_Table Is Nothing Then + m_Table.Dispose() + End If + m_Table = New DataTable + + '从数据库查询指定内容的物料信息 + Dim partComment As String = $"{GrdSourceBom.Cell(row, SourceGridCols.注释).Text.Trim}" + + Dim partFootPrint As String = $"{GrdSourceBom.Cell(row, SourceGridCols.型号).Text}" + partFootPrint = GetPartFootPrintNum(partFootPrint) + + Dim partDesc As String = partComment + + If ChkHasPartType.Checked Then + If partDesc.Length = 0 Then + partDesc = partFootPrint + Else + If partFootPrint.Length > 0 Then partDesc &= $",{partFootPrint}" + End If + End If + + tb_Desc.Text = partDesc + + QueuePart(partDesc) + End Sub + + Private Sub GrdSourceBom_DoubleClick(Sender As Object, e As EventArgs) Handles GrdSourceBom.DoubleClick + If GrdSourceBom.ActiveCell Is Nothing Then Return + Dim row As Integer = GrdSourceBom.ActiveCell.Row + + If Not m_Table Is Nothing Then + m_Table.Dispose() + End If + m_Table = New DataTable + + '从数据库查询指定内容的物料信息 + Dim partComment As String = $"{GrdSourceBom.Cell(row, SourceGridCols.注释).Text.Trim.Replace(" "c, ","c).Replace("\", ",").Replace("/", ",")}" + + Dim partFootPrint As String = $"{GrdSourceBom.Cell(row, SourceGridCols.型号).Text}" + partFootPrint = GetPartFootPrintNum(partFootPrint) + + Dim partDesc As String = partComment + + If ChkHasPartType.Checked Then + If partDesc.Length = 0 Then + partDesc = partFootPrint + Else + If partFootPrint.Length > 0 Then partDesc &= $",{partFootPrint}" + End If + End If + + tb_Desc.Text = partDesc + + QueuePart(partDesc) + End Sub + + Private Sub bt_QueryQuick_Click(sender As Object, e As EventArgs) Handles bt_QueryQuick.Click + QueuePart(tb_Desc.Text) + End Sub + + Private Sub GrdQueueResult_DoubleClick(Sender As Object, e As EventArgs) Handles GrdQueueResult.DoubleClick + If GrdSourceBom.ActiveCell Is Nothing Then Return + + If GrdSourceBom.Cell(GrdSourceBom.ActiveCell.Row, SourceGridCols.校验).BooleanValue Then Return + + GrdSourceBom.Cell(GrdSourceBom.ActiveCell.Row, SourceGridCols.校验).Text = "" + GrdSourceBom.Cell(GrdSourceBom.ActiveCell.Row, SourceGridCols.工艺流程).Text = "" + GrdSourceBom.Cell(GrdSourceBom.ActiveCell.Row, SourceGridCols.料号PN).Text = GrdQueueResult.Cell(GrdQueueResult.ActiveCell.Row, QueueGridCols.料号PN).Text + GrdSourceBom.Cell(GrdSourceBom.ActiveCell.Row, SourceGridCols.物料名称).Text = GrdQueueResult.Cell(GrdQueueResult.ActiveCell.Row, QueueGridCols.物料名称).Text + GrdSourceBom.Cell(GrdSourceBom.ActiveCell.Row, SourceGridCols.规格描述).Text = GrdQueueResult.Cell(GrdQueueResult.ActiveCell.Row, QueueGridCols.规格描述).Text + GrdSourceBom.Cell(GrdSourceBom.ActiveCell.Row, SourceGridCols.单位).Text = GrdQueueResult.Cell(GrdQueueResult.ActiveCell.Row, QueueGridCols.单位).Text + GrdSourceBom.Cell(GrdSourceBom.ActiveCell.Row, SourceGridCols.单价).Text = GrdQueueResult.Cell(GrdQueueResult.ActiveCell.Row, QueueGridCols.单重).Text + End Sub + + Private Sub GrdSourceBom_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles GrdSourceBom.CellChange + If e.Col = SourceGridCols.校验 Then + If GrdSourceBom.Cell(e.Row, e.Col).BooleanValue = True Then + GrdSourceBom.Range(e.Row, 1, e.Row, GrdSourceBom.Cols - 1).BackColor = Color.LightGreen + + GrdSourceBom.Range(e.Row, 1, e.Row, SourceGridCols.校验 - 1).Locked = True + GrdSourceBom.Range(e.Row, SourceGridCols.校验 + 1, e.Row, GrdSourceBom.Cols - 1).Locked = True + Else + GrdSourceBom.Range(e.Row, 1, e.Row, GrdSourceBom.Cols - 1).BackColor = GrdSourceBom.BackColor1 + GrdSourceBom.Cell(e.Row, e.Col).BackColor = Color.LightBlue + + GrdSourceBom.Range(e.Row, 1, e.Row, SourceGridCols.校验 - 1).Locked = False + GrdSourceBom.Range(e.Row, SourceGridCols.校验 + 1, e.Row, GrdSourceBom.Cols - 1).Locked = False + End If + End If + End Sub + + Private Sub 保存至数据库ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 保存至数据库ToolStripMenuItem.Click + If tbBomPN.Text.Length = 0 Then + MsgBox("未指定当前BOM料号!") + Return + End If + + '检查输入料号是否有效 + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(m_CurrentBomPN, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + MsgBox("输入料号不存在!") + Return + End If + Else + MsgBox("无法查询输入料号,请检查网络连接!") + Return + End If + + '检测内容中的PN字段有效性 + If CheckPNValid() = False Then + MsgBox("输入信息存在错误,不能进行保存!") + Return + End If + + '创建料号表 + If SaveBomContext(tbBomPN.Text) = False Then + MsgBox("保存料表失败") + Return + End If + + '保存临时表内容至XMl文件 + Try + Dim dirPath As String = Application.StartupPath & "\" & "Context" + IO.Directory.CreateDirectory(dirPath) + GrdSourceBom.ExportToXML($"{dirPath}\{m_CurrentBomPN}_context_{Now:yyyyMMdd_HHmmss}.xml") + Catch ex As Exception + + End Try + + MsgBox("保存料表:" & tbBomPN.Text & "成功") + End Sub + + Private Sub 保存至数据库BOM表ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 保存至数据库BOM表ToolStripMenuItem.Click + If tbBomPN.Text.Length = 0 Then + MsgBox("未指定当前BOM料号!") + Return + End If + + '检查输入料号是否有效 + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(m_CurrentBomPN, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + MsgBox("输入料号不存在!") + Return + End If + Else + MsgBox("无法查询输入料号,请检查网络连接!") + Return + End If + + '检测内容中的PN字段有效性 + If CheckPNValid() = False Then + MsgBox("输入信息存在错误,不能进行保存!") + Return + End If + + '创建料号表 + If SaveBom2(tbBomPN.Text) = False Then + MsgBox("保存料表失败") + Return + End If + + MsgBox("保存料表:" & tbBomPN.Text & "成功") + End Sub + + Private Sub 更新当前物料ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 更新当前物料ToolStripMenuItem.Click + If GrdSourceBom.ActiveCell Is Nothing Then Return + + Dim row As Integer = GrdSourceBom.ActiveCell.Row + If row = 0 Then Return + + Dim pn As String + '清空内容 + GrdSourceBom.Cell(row, SourceGridCols.物料名称).Text = "" + GrdSourceBom.Cell(row, SourceGridCols.规格描述).Text = "" + GrdSourceBom.Cell(row, SourceGridCols.单位).Text = "" + GrdSourceBom.Cell(row, SourceGridCols.单价).Text = "" + + '查询指定pn的信息 + pn = GrdSourceBom.Cell(row, SourceGridCols.料号PN).Text + If String.IsNullOrEmpty(pn) Then Return + + Dim pninfo As New PnInfo With {.PN = pn} + + If GetPnInfoByName(pn, pninfo) Then + GrdSourceBom.Cell(row, SourceGridCols.物料名称).Text = pninfo.物料名称 + GrdSourceBom.Cell(row, SourceGridCols.规格描述).Text = pninfo.规格描述 + GrdSourceBom.Cell(row, SourceGridCols.单位).Text = pninfo.单位 + GrdSourceBom.Cell(row, SourceGridCols.单价).Text = pninfo.单重 + End If + End Sub + + Private Sub 更新物料信息ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 更新物料信息ToolStripMenuItem.Click + GetAllPnInfo() + End Sub + + Private Sub GetAllPnInfo() + Dim pn As String + For row = 1 To GrdSourceBom.Rows - 1 + '注释为空后面则认为为无效行 + If String.IsNullOrEmpty(GrdSourceBom.Cell(row, SourceGridCols.注释).Text) Then + If String.IsNullOrEmpty(GrdSourceBom.Cell(row, SourceGridCols.料号PN).Text) Then + Continue For + End If + End If + + '清空内容 + GrdSourceBom.Cell(row, SourceGridCols.物料名称).Text = "" + GrdSourceBom.Cell(row, SourceGridCols.规格描述).Text = "" + GrdSourceBom.Cell(row, SourceGridCols.单位).Text = "" + GrdSourceBom.Cell(row, SourceGridCols.单价).Text = "" + + '查询指定pn的信息 + pn = GrdSourceBom.Cell(row, SourceGridCols.料号PN).Text + If String.IsNullOrEmpty(pn) Then Continue For + + Dim pninfo As New PnInfo With {.PN = pn} + + If GetPnInfoByName(pn, pninfo) Then + GrdSourceBom.Cell(row, SourceGridCols.物料名称).Text = pninfo.物料名称 + GrdSourceBom.Cell(row, SourceGridCols.规格描述).Text = pninfo.规格描述 + GrdSourceBom.Cell(row, SourceGridCols.单位).Text = pninfo.单位 + GrdSourceBom.Cell(row, SourceGridCols.单价).Text = pninfo.单重 + End If + Next + End Sub + + + Private Function GetPnInfoByName(pn As String, ByRef pnInfo As PnInfo) As Boolean + Return m_PartNumber.QueryItem(pn, pnInfo.物料名称, pnInfo.规格描述, pnInfo.单位, pnInfo.单重, pnInfo.供应商ID) = ERROR_CODE.SUCCESS + End Function + + Public Class PnInfo + Public PN As String = "" + + Public 物料名称 As String = "" + Public 规格描述 As String = "" + Public 单位 As String = "" + Public 单重 As Double = 0 + Public 图片(0) As Byte + Public 供应商ID As String = "" + End Class + + Private Sub 插入行ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 插入行ToolStripMenuItem.Click + If GrdSourceBom.Selection Is Nothing Then + GrdSourceBom.AddItem("") + Else + GrdSourceBom.InsertRow(GrdSourceBom.Selection.FirstRow, 1) + End If + + End Sub + + Private Sub 删除行ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 删除行ToolStripMenuItem.Click + If MsgBox("是否删除选中行?", MsgBoxStyle.OkCancel) <> MsgBoxResult.Ok Then Return + If GrdSourceBom.Selection IsNot Nothing Then + GrdSourceBom.Selection.DeleteByRow() + End If + End Sub + + Private Sub 清空表格ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 清空表格ToolStripMenuItem.Click + If MsgBox("是否清空表格?", MsgBoxStyle.OkCancel) <> MsgBoxResult.Ok Then Return + + InitSourceGrid() + End Sub + + Private Sub 合并相同料号ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 合并相同料号ToolStripMenuItem.Click + Dim snList As New Dictionary(Of String, Integer) + Dim deleteRows As New List(Of Integer) + ' 查询所有料号 + Dim pn As String + For row = 1 To GrdSourceBom.Rows - 1 + pn = GrdSourceBom.Cell(row, SourceGridCols.料号PN).Text + If String.IsNullOrEmpty(pn) Then Continue For + + If snList.ContainsKey(pn) Then + deleteRows.Add(row) + + GrdSourceBom.Cell(snList(pn), SourceGridCols.用量).Text = GrdSourceBom.Cell(snList(pn), SourceGridCols.用量).IntegerValue + GrdSourceBom.Cell(row, SourceGridCols.用量).IntegerValue + + + GrdSourceBom.Cell(snList(pn), SourceGridCols.使用位置).Text = GrdSourceBom.Cell(snList(pn), SourceGridCols.使用位置).Text & "," & GrdSourceBom.Cell(row, SourceGridCols.使用位置).Text + Else + snList.Add(pn, row) + End If + Next + + For row = 0 To deleteRows.Count - 1 + GrdSourceBom.Row(deleteRows(row) - row).Delete() + Next + End Sub + +End Class \ No newline at end of file diff --git a/WT-DMS/form_Material.Designer.vb b/WT-DMS/form_Material.Designer.vb new file mode 100644 index 0000000..4f59ee0 --- /dev/null +++ b/WT-DMS/form_Material.Designer.vb @@ -0,0 +1,388 @@ + _ +Partial Class form_Material + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.lstb_Log = New System.Windows.Forms.ListBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.bt_Clear = New System.Windows.Forms.Button() + Me.bt_AddStoreLoc = New System.Windows.Forms.Button() + Me.num_Count = New System.Windows.Forms.NumericUpDown() + Me.Label11 = New System.Windows.Forms.Label() + Me.bt_Query = New System.Windows.Forms.Button() + Me.bt_Save = New System.Windows.Forms.Button() + Me.combo_StoreName = New System.Windows.Forms.ComboBox() + Me.combo_StoreLoc = New System.Windows.Forms.ComboBox() + Me.combo_Unit = New System.Windows.Forms.ComboBox() + Me.tb_UseInfo = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label7 = New System.Windows.Forms.Label() + Me.Label6 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.tb_OderNumber = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.tb_PartNumber = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.tb_PartNumberInfo = New System.Windows.Forms.TextBox() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.chk_Preview = New System.Windows.Forms.CheckBox() + Me.lbl_QueryInfo = New System.Windows.Forms.Label() + Me.GroupBox1.SuspendLayout() + CType(Me.num_Count, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox2.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'lstb_Log + ' + Me.lstb_Log.FormattingEnabled = True + Me.lstb_Log.ItemHeight = 12 + Me.lstb_Log.Location = New System.Drawing.Point(12, 356) + Me.lstb_Log.Name = "lstb_Log" + Me.lstb_Log.Size = New System.Drawing.Size(444, 148) + Me.lstb_Log.TabIndex = 1 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.bt_Clear) + Me.GroupBox1.Controls.Add(Me.bt_AddStoreLoc) + Me.GroupBox1.Controls.Add(Me.num_Count) + Me.GroupBox1.Controls.Add(Me.Label11) + Me.GroupBox1.Controls.Add(Me.bt_Query) + Me.GroupBox1.Controls.Add(Me.bt_Save) + Me.GroupBox1.Controls.Add(Me.combo_StoreName) + Me.GroupBox1.Controls.Add(Me.combo_StoreLoc) + Me.GroupBox1.Controls.Add(Me.combo_Unit) + Me.GroupBox1.Controls.Add(Me.tb_UseInfo) + Me.GroupBox1.Controls.Add(Me.Label3) + Me.GroupBox1.Controls.Add(Me.Label7) + Me.GroupBox1.Controls.Add(Me.Label6) + Me.GroupBox1.Controls.Add(Me.Label5) + Me.GroupBox1.Controls.Add(Me.Label4) + Me.GroupBox1.Controls.Add(Me.tb_OderNumber) + Me.GroupBox1.Controls.Add(Me.Label2) + Me.GroupBox1.Controls.Add(Me.tb_PartNumber) + Me.GroupBox1.Controls.Add(Me.Label1) + Me.GroupBox1.Location = New System.Drawing.Point(12, 12) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(444, 314) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "物料属性" + ' + 'bt_Clear + ' + Me.bt_Clear.Location = New System.Drawing.Point(347, 70) + Me.bt_Clear.Name = "bt_Clear" + Me.bt_Clear.Size = New System.Drawing.Size(80, 71) + Me.bt_Clear.TabIndex = 8 + Me.bt_Clear.Text = "新建" + Me.bt_Clear.UseVisualStyleBackColor = True + ' + 'bt_AddStoreLoc + ' + Me.bt_AddStoreLoc.Location = New System.Drawing.Point(276, 182) + Me.bt_AddStoreLoc.Name = "bt_AddStoreLoc" + Me.bt_AddStoreLoc.Size = New System.Drawing.Size(56, 23) + Me.bt_AddStoreLoc.TabIndex = 9 + Me.bt_AddStoreLoc.Text = "修改" + Me.bt_AddStoreLoc.UseVisualStyleBackColor = True + ' + 'num_Count + ' + Me.num_Count.Location = New System.Drawing.Point(90, 94) + Me.num_Count.Maximum = New Decimal(New Integer() {1215752191, 23, 0, 0}) + Me.num_Count.Name = "num_Count" + Me.num_Count.Size = New System.Drawing.Size(242, 21) + Me.num_Count.TabIndex = 2 + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.ForeColor = System.Drawing.Color.Red + Me.Label11.Location = New System.Drawing.Point(88, 10) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(263, 24) + Me.Label11.TabIndex = 6 + Me.Label11.Text = "提示:带*字段必须填写" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "如果不能输入中文,请单击右键,选择""打开IME""" + ' + 'bt_Query + ' + Me.bt_Query.Location = New System.Drawing.Point(347, 36) + Me.bt_Query.Name = "bt_Query" + Me.bt_Query.Size = New System.Drawing.Size(80, 26) + Me.bt_Query.TabIndex = 7 + Me.bt_Query.Text = "查询" + Me.bt_Query.UseVisualStyleBackColor = True + ' + 'bt_Save + ' + Me.bt_Save.BackColor = System.Drawing.Color.MistyRose + Me.bt_Save.Font = New System.Drawing.Font("楷体", 21.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.bt_Save.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(0, Byte), Integer)) + Me.bt_Save.Location = New System.Drawing.Point(347, 156) + Me.bt_Save.Name = "bt_Save" + Me.bt_Save.Size = New System.Drawing.Size(80, 140) + Me.bt_Save.TabIndex = 9 + Me.bt_Save.Text = "入库" + Me.bt_Save.UseVisualStyleBackColor = False + ' + 'combo_StoreName + ' + Me.combo_StoreName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.combo_StoreName.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.combo_StoreName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_StoreName.FormattingEnabled = True + Me.combo_StoreName.Items.AddRange(New Object() {"pcs", "个", "台", "条", "颗", "盒", "包", "箱"}) + Me.combo_StoreName.Location = New System.Drawing.Point(90, 156) + Me.combo_StoreName.MaxLength = 20 + Me.combo_StoreName.Name = "combo_StoreName" + Me.combo_StoreName.Size = New System.Drawing.Size(180, 20) + Me.combo_StoreName.TabIndex = 4 + ' + 'combo_StoreLoc + ' + Me.combo_StoreLoc.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.combo_StoreLoc.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.combo_StoreLoc.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_StoreLoc.FormattingEnabled = True + Me.combo_StoreLoc.Location = New System.Drawing.Point(90, 183) + Me.combo_StoreLoc.MaxLength = 20 + Me.combo_StoreLoc.Name = "combo_StoreLoc" + Me.combo_StoreLoc.Size = New System.Drawing.Size(180, 20) + Me.combo_StoreLoc.TabIndex = 5 + ' + 'combo_Unit + ' + Me.combo_Unit.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.combo_Unit.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.combo_Unit.FormattingEnabled = True + Me.combo_Unit.ImeMode = System.Windows.Forms.ImeMode.Off + Me.combo_Unit.Items.AddRange(New Object() {"pcs", "个", "台", "条", "颗", "盒", "包", "箱"}) + Me.combo_Unit.Location = New System.Drawing.Point(90, 121) + Me.combo_Unit.MaxLength = 20 + Me.combo_Unit.Name = "combo_Unit" + Me.combo_Unit.Size = New System.Drawing.Size(242, 20) + Me.combo_Unit.TabIndex = 3 + ' + 'tb_UseInfo + ' + Me.tb_UseInfo.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.tb_UseInfo.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.tb_UseInfo.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_UseInfo.Location = New System.Drawing.Point(90, 209) + Me.tb_UseInfo.MaxLength = 200 + Me.tb_UseInfo.Multiline = True + Me.tb_UseInfo.Name = "tb_UseInfo" + Me.tb_UseInfo.Size = New System.Drawing.Size(242, 87) + Me.tb_UseInfo.TabIndex = 6 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(37, 186) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(47, 12) + Me.Label3.TabIndex = 0 + Me.Label3.Text = "库位(*)" + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(55, 212) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(29, 12) + Me.Label7.TabIndex = 0 + Me.Label7.Text = "用途" + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(37, 159) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(47, 12) + Me.Label6.TabIndex = 0 + Me.Label6.Text = "仓库(*)" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(37, 96) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(47, 12) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "数量(*)" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(55, 124) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(29, 12) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "单位" + ' + 'tb_OderNumber + ' + Me.tb_OderNumber.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.tb_OderNumber.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.tb_OderNumber.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper + Me.tb_OderNumber.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_OderNumber.Location = New System.Drawing.Point(90, 67) + Me.tb_OderNumber.Name = "tb_OderNumber" + Me.tb_OderNumber.Size = New System.Drawing.Size(242, 21) + Me.tb_OderNumber.TabIndex = 1 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(43, 70) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(41, 12) + Me.Label2.TabIndex = 0 + Me.Label2.Text = "订单号" + ' + 'tb_PartNumber + ' + Me.tb_PartNumber.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.tb_PartNumber.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.tb_PartNumber.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper + Me.tb_PartNumber.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_PartNumber.Location = New System.Drawing.Point(90, 40) + Me.tb_PartNumber.MaxLength = 32 + Me.tb_PartNumber.Name = "tb_PartNumber" + Me.tb_PartNumber.Size = New System.Drawing.Size(242, 21) + Me.tb_PartNumber.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(37, 43) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(47, 12) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "料号(*)" + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.tb_PartNumberInfo) + Me.GroupBox2.Controls.Add(Me.PictureBox1) + Me.GroupBox2.Controls.Add(Me.chk_Preview) + Me.GroupBox2.Location = New System.Drawing.Point(462, 12) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(648, 492) + Me.GroupBox2.TabIndex = 11 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "料号信息" + ' + 'tb_PartNumberInfo + ' + Me.tb_PartNumberInfo.Font = New System.Drawing.Font("宋体", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.tb_PartNumberInfo.Location = New System.Drawing.Point(7, 25) + Me.tb_PartNumberInfo.Multiline = True + Me.tb_PartNumberInfo.Name = "tb_PartNumberInfo" + Me.tb_PartNumberInfo.ReadOnly = True + Me.tb_PartNumberInfo.Size = New System.Drawing.Size(204, 461) + Me.tb_PartNumberInfo.TabIndex = 7 + ' + 'PictureBox1 + ' + Me.PictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.PictureBox1.Location = New System.Drawing.Point(217, 49) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(425, 437) + Me.PictureBox1.TabIndex = 2 + Me.PictureBox1.TabStop = False + ' + 'chk_Preview + ' + Me.chk_Preview.AutoSize = True + Me.chk_Preview.Checked = Global.WT_DMS.My.MySettings.Default.CHK_PREVIEW + Me.chk_Preview.DataBindings.Add(New System.Windows.Forms.Binding("Checked", Global.WT_DMS.My.MySettings.Default, "CHK_PREVIEW", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)) + Me.chk_Preview.Location = New System.Drawing.Point(217, 25) + Me.chk_Preview.Name = "chk_Preview" + Me.chk_Preview.Size = New System.Drawing.Size(96, 16) + Me.chk_Preview.TabIndex = 0 + Me.chk_Preview.Text = "物料图片预览" + Me.chk_Preview.UseVisualStyleBackColor = True + ' + 'lbl_QueryInfo + ' + Me.lbl_QueryInfo.AutoSize = True + Me.lbl_QueryInfo.ForeColor = System.Drawing.Color.Blue + Me.lbl_QueryInfo.Location = New System.Drawing.Point(16, 338) + Me.lbl_QueryInfo.Name = "lbl_QueryInfo" + Me.lbl_QueryInfo.Size = New System.Drawing.Size(0, 12) + Me.lbl_QueryInfo.TabIndex = 11 + ' + 'form_Material + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1124, 522) + Me.Controls.Add(Me.lbl_QueryInfo) + Me.Controls.Add(Me.GroupBox2) + Me.Controls.Add(Me.lstb_Log) + Me.Controls.Add(Me.GroupBox1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.Name = "form_Material" + Me.Text = "物料入库" + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + CType(Me.num_Count, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents lstb_Log As System.Windows.Forms.ListBox + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents num_Count As System.Windows.Forms.NumericUpDown + Friend WithEvents Label11 As System.Windows.Forms.Label + Friend WithEvents bt_Query As System.Windows.Forms.Button + Friend WithEvents bt_Save As System.Windows.Forms.Button + Friend WithEvents combo_Unit As System.Windows.Forms.ComboBox + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents tb_UseInfo As System.Windows.Forms.TextBox + Friend WithEvents Label7 As System.Windows.Forms.Label + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents tb_OderNumber As System.Windows.Forms.TextBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents tb_PartNumber As System.Windows.Forms.TextBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents chk_Preview As System.Windows.Forms.CheckBox + Friend WithEvents combo_StoreLoc As System.Windows.Forms.ComboBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents bt_AddStoreLoc As System.Windows.Forms.Button + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents tb_PartNumberInfo As System.Windows.Forms.TextBox + Friend WithEvents combo_StoreName As System.Windows.Forms.ComboBox + Friend WithEvents bt_Clear As System.Windows.Forms.Button + Friend WithEvents lbl_QueryInfo As System.Windows.Forms.Label +End Class diff --git a/WT-DMS/form_Material.resx b/WT-DMS/form_Material.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/WT-DMS/form_Material.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WT-DMS/form_Material.vb b/WT-DMS/form_Material.vb new file mode 100644 index 0000000..03530da --- /dev/null +++ b/WT-DMS/form_Material.vb @@ -0,0 +1,369 @@ +Public Class form_Material + Dim m_Table As New System.Data.DataTable + Dim m_Material As New CMaterialInOut + Dim m_PartNumber As New CPartNumber + Dim 库位表列表 As New ArrayList + Dim 库位表名 As String = "" + Dim m_InitOver As Boolean = False + + Dim m_RecentList_PN As New System.Windows.Forms.AutoCompleteStringCollection + Dim m_RecentList_OrderList As New System.Windows.Forms.AutoCompleteStringCollection + Dim m_RecentList_UseInfo As New System.Windows.Forms.AutoCompleteStringCollection + + Public Property OutStore() As Boolean + Get + Return m_Material.OutStore + End Get + Set(ByVal value As Boolean) + m_Material.OutStore = value + End Set + End Property + + Private Function GetStoreList() As Boolean + Dim m_Store As New CStore + + combo_StoreName.Items.Clear() + 库位表列表.Clear() + + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If m_Store.QueryAll(m_Table) = ERROR_CODE.SUCCESS Then + For i As Integer = 0 To m_Table.Rows.Count - 1 + combo_StoreName.Items.Add(m_Table.Rows(i).Item(CStore.COLS.仓库名称)) + 库位表列表.Add(m_Table.Rows(i).Item(CStore.COLS.仓库库位表)) + Next + Return True + End If + + Return False + End Function + + Private Function GetStoreLocationList() As Boolean + Dim m_StoreLocation As New CStoreLocation() + combo_StoreLoc.Items.Clear() + + m_StoreLocation.TABLE_NAME = 库位表名 + m_Table.Rows.Clear() + m_Table.Columns.Clear() + combo_StoreLoc.Items.Add("") + If m_StoreLocation.QueryAll(m_Table) = ERROR_CODE.SUCCESS Then + For i As Integer = 0 To m_Table.Rows.Count - 1 + combo_StoreLoc.Items.Add(m_Table.Rows(i).Item(CStoreLocation.COLS.库位)) + Next + + Return True + End If + + Return False + End Function + + '获取料号信息 + Private Function GetPartNumberInformation(ByVal strPartNumber As String) As Boolean + Dim 物料名称 As String = "" + Dim 规格描述 As String = "" + Dim 单位 As String = "" + Dim 单重 As Double = 0 + Dim 图片(0) As Byte + Dim 供应商ID As String = "" + + Dim strInfo As String = "" + tb_PartNumberInfo.Text = "" + Dim result As Boolean = False + If chk_Preview.Checked = True Then + If m_PartNumber.QueryItem(tb_PartNumber.Text, 物料名称, 规格描述, 单位, 单重, 图片, 供应商ID) = ERROR_CODE.SUCCESS Then + strInfo = "物料名称: " & 物料名称 & vbNewLine + strInfo &= "规格描述: " & 规格描述 & vbNewLine + strInfo &= "单位: " & 单位 & vbNewLine + strInfo &= "单重: " & 单重 & vbNewLine + strInfo &= "供应商ID: " & 供应商ID & vbNewLine + + PictureBox1.BackgroundImage = GetImageFromBytes(图片) + tb_PartNumberInfo.Text = strInfo + result = True + End If + Else + If m_PartNumber.QueryItem(tb_PartNumber.Text, 物料名称, 规格描述, 单位, 单重, 供应商ID) = ERROR_CODE.SUCCESS Then + strInfo = "物料名称: " & 物料名称 & vbNewLine + strInfo &= "规格描述: " & 规格描述 & vbNewLine + strInfo &= "单位: " & 单位 & vbNewLine + strInfo &= "单重: " & 单重 & vbNewLine + strInfo &= "供应商ID: " & 供应商ID & vbNewLine + + PictureBox1.BackgroundImage = Nothing + tb_PartNumberInfo.Text = strInfo + result = True + End If + End If + + If result = True Then + tb_PartNumber.BackColor = Color.White + Else + tb_PartNumber.BackColor = Color.Red + End If + + Return result + End Function + + Private Sub AddLog(ByVal text As String) + Dim index As Integer = lstb_Log.Items.Add(Now.ToString & ":" & text) + lstb_Log.SelectedIndex = index + End Sub + + Private Sub form_Material_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed + My.Settings.Save() + CGirdInfo.SaveRecentList("Recent_PN", m_RecentList_PN) + CGirdInfo.SaveRecentList("Recent_OL", m_RecentList_OrderList) + CGirdInfo.SaveRecentList("Recent_UI", m_RecentList_UseInfo) + End Sub + + Private Sub form_Material_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + CGirdInfo.LoadRecentList("Recent_PN", m_RecentList_PN) + CGirdInfo.LoadRecentList("Recent_OL", m_RecentList_OrderList) + CGirdInfo.LoadRecentList("Recent_UI", m_RecentList_UseInfo) + tb_PartNumber.AutoCompleteCustomSource = m_RecentList_PN + tb_OderNumber.AutoCompleteCustomSource = m_RecentList_OrderList + tb_UseInfo.AutoCompleteCustomSource = m_RecentList_UseInfo + + If CBool(Current_Rights(COL_RIGHTS.原料库存管理) And RIGHTS.WRITE) = False Then + bt_Save.Enabled = False + End If + If CBool(Current_Rights(COL_RIGHTS.原料库存管理) And RIGHTS.READ) = False Then + bt_Query.Enabled = False + End If + + If CBool(Current_Rights(COL_RIGHTS.库位管理) And RIGHTS.WRITE) = False Then + bt_AddStoreLoc.Enabled = False + End If + + My.Settings.Reload() + + GetStoreList() + + Me.Left = My.Settings.FORM_MATERIAL_X + Me.Top = My.Settings.FORM_MATERIAL_Y + + m_InitOver = True + + If Microsoft.VisualBasic.Right(Me.Text, 4) = "物料出库" Then + bt_Save.ForeColor = Color.Red + bt_Save.Text = "出库" + ElseIf Microsoft.VisualBasic.Right(Me.Text, 4) = "物料入库" Then + bt_Save.ForeColor = Color.Blue + bt_Save.Text = "入库" + End If + End Sub + + Private Sub StoreLocUpdated() + '重新载入库位列表 + If GetStoreLocationList() = False Then + MsgBox("载入库位列表失败!") + End If + End Sub + + Private Sub bt_AddStoreLoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_AddStoreLoc.Click + If 库位表名 Is Nothing OrElse 库位表名.Length = 0 Then + MsgBox("未选择仓库") + Return + End If + + Dim pForm As New form_StoreLocManage(库位表名) + pForm.MdiParent = MainForm + AddHandler pForm.StoreLocUpdated, AddressOf StoreLocUpdated + pForm.Show() + End Sub + + Private Function CheckInputValid() As Boolean + Dim valid As Boolean = True + + '料号 + If tb_PartNumber.Text.Length <= 0 Then + valid = False + End If + If tb_PartNumber.Text.Length > SEC_LENGTH.料号PN Then + valid = False + End If + + If valid = True Then + tb_PartNumber.BackColor = Color.White + Else + tb_PartNumber.BackColor = Color.Red + End If + + '订单号 + + '数量 + If num_Count.Value > 0 Then + num_Count.BackColor = Color.White + Else + num_Count.BackColor = Color.Red + valid = False + End If + + '仓库 + If combo_StoreName.Text.Length > 0 Then + combo_StoreName.BackColor = Color.White + Else + combo_StoreName.BackColor = Color.Red + valid = False + End If + + '库位 + If combo_StoreLoc.Text.Length > 0 Then + combo_StoreLoc.BackColor = Color.White + Else + combo_StoreLoc.BackColor = Color.Red + valid = False + End If + + Return valid + End Function + + Private Sub bt_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Save.Click + If tb_PartNumber.Text.Length > 0 Then + m_RecentList_PN.Add(tb_PartNumber.Text) + End If + If tb_OderNumber.Text.Length > 0 Then + m_RecentList_OrderList.Add(tb_OderNumber.Text) + End If + If tb_UseInfo.Text.Length > 0 Then + m_RecentList_UseInfo.Add(tb_UseInfo.Text) + End If + + If m_RecentList_PN.Count > 10 Then + m_RecentList_PN.RemoveAt(0) + End If + If m_RecentList_OrderList.Count > 10 Then + m_RecentList_OrderList.RemoveAt(0) + End If + If m_RecentList_UseInfo.Count > 10 Then + m_RecentList_UseInfo.RemoveAt(0) + End If + + lbl_QueryInfo.Text = "" + + '首先检查料号信息完整性 + If CheckInputValid() = False Then + MsgBox("物料属性存在错误!请见红色背景提示") + Return + End If + + '检测料号唯一性 + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(tb_PartNumber.Text, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + tb_PartNumber.BackColor = Color.Red + MsgBox("当前料号不存在: " & tb_PartNumber.Text) + Return + End If + Else + MsgBox("访问数据库失败: 请检查网络连接或联系管理员!") + Return + End If + '================================================================================================= + '检查物料的当前仓库库位的库存量是否出库后小于0 + + Dim numCount As Integer = num_Count.Value + Dim m_Sum As Integer = m_PartNumber.GetStockSum(combo_StoreName.Text, combo_StoreLoc.Text, isExist) + If m_Material.OutStore Then + If m_Sum - numCount < 0 Then + MsgBox("当前库位库存量不足,出库失败!!") + Return + Else + m_Sum -= numCount + End If + Else + m_Sum += numCount + End If + '================================================================================================= + + '保存物料 + 'Dim m_date As Date = Now + 'Dim result As ERROR_CODE = m_Material.AddItem(m_Material.OutStore, + ' tb_PartNumber.Text, + ' tb_OderNumber.Text, + ' m_date.ToShortDateString, + ' m_date.ToShortTimeString, + ' num_Count.Value, + ' Current_UserName, + ' combo_StoreName.Text, + ' combo_StoreLoc.Text, + ' tb_UseInfo.Text) + + '================================================================================================= + '添加出入库内容至原料库存表 + Dim m_date As Date = Now + Dim result As ERROR_CODE = m_Material.AddItem(m_Material.OutStore, + tb_PartNumber.Text, + tb_OderNumber.Text, + m_date.ToShortDateString, + m_date.ToShortTimeString, + numCount, + Current_UserName, + combo_StoreName.Text, + combo_StoreLoc.Text, + tb_UseInfo.Text, + m_Sum + ) + '================================================================================================= + If result = ERROR_CODE.SUCCESS Then + Dim Count As Integer + Dim minIndex As Integer + Dim maxIndex As Integer + result = m_Material.QueryInformation(Count, minIndex, maxIndex) + + If result = ERROR_CODE.SUCCESS Then + lbl_QueryInfo.Text = "总条数: " & Count & ", 最小序号: " & minIndex & ", 最大序号: " & maxIndex + AddLog("成功添加: " & maxIndex & "," & + IIf(m_Material.OutStore, "出库", "入库") & "," & + tb_PartNumber.Text & "," & + tb_OderNumber.Text & "," & + num_Count.Value & "," & + combo_StoreName.Text & "," & + combo_StoreLoc.Text & "," & + tb_UseInfo.Text) + Else + MsgBox("保存完成,查询数据库信息失败!") + End If + ElseIf result = ERROR_CODE.NORIGHT Then + MsgBox("保存失败: ""无访问权限!""") + Else + MsgBox("保存失败: 请检查网络连接或联系管理员!") + End If + End Sub + + Private Sub combo_StoreName_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles combo_StoreName.SelectedIndexChanged + If combo_StoreName.SelectedIndex >= 0 Then + 库位表名 = 库位表列表.Item(combo_StoreName.SelectedIndex) + Else + 库位表名 = "" + End If + + StoreLocUpdated() + End Sub + + Private Sub bt_Query_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Query.Click + If tb_PartNumber.Text.Length >= 0 Then + GetPartNumberInformation(tb_PartNumber.Text) + End If + End Sub + + Private Sub bt_Clear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Clear.Click + tb_PartNumber.Text = "" + tb_OderNumber.Text = "" + num_Count.Value = 0 + combo_Unit.Text = "" + combo_StoreLoc.Text = "" + tb_UseInfo.Text = "" + tb_PartNumberInfo.Text = "" + PictureBox1.BackgroundImage = Nothing + End Sub + + Private Sub form_Material_LocationChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LocationChanged + If m_InitOver = True Then + My.Settings.FORM_MATERIAL_X = Me.Left + My.Settings.FORM_MATERIAL_Y = Me.Top + My.Settings.Save() + End If + End Sub + +End Class \ No newline at end of file diff --git a/WT-DMS/form_PartNumber.Designer.vb b/WT-DMS/form_PartNumber.Designer.vb new file mode 100644 index 0000000..2c90760 --- /dev/null +++ b/WT-DMS/form_PartNumber.Designer.vb @@ -0,0 +1,585 @@ + _ +Partial Class form_PartNumber + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.bt_New = New System.Windows.Forms.Button() + Me.combo_Supplier = New System.Windows.Forms.ComboBox() + Me.num_Weight = New System.Windows.Forms.NumericUpDown() + Me.Label11 = New System.Windows.Forms.Label() + Me.bt_Query = New System.Windows.Forms.Button() + Me.bt_Save = New System.Windows.Forms.Button() + Me.combo_Unit = New System.Windows.Forms.ComboBox() + Me.bt_Browse = New System.Windows.Forms.Button() + Me.Label6 = New System.Windows.Forms.Label() + Me.Label7 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.tb_Descr = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.tb_Name = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.tb_PartNumber = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.lstb_Log = New System.Windows.Forms.ListBox() + Me.lbl_QueryInfo = New System.Windows.Forms.Label() + Me.chk_EnableCam = New System.Windows.Forms.CheckBox() + Me.bt_CaptureImage = New System.Windows.Forms.Button() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.picBox_Preview = New System.Windows.Forms.PictureBox() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.btnTips = New System.Windows.Forms.Button() + Me.cb_AutoOverWrite = New System.Windows.Forms.CheckBox() + Me.tb_CurrentLocation = New System.Windows.Forms.TextBox() + Me.tb_SelectedRow = New System.Windows.Forms.TextBox() + Me.Button1 = New System.Windows.Forms.Button() + Me.grid_ImportPartNoList = New FlexCell.Grid() + Me.btn_ImportAll = New System.Windows.Forms.Button() + Me.Button2 = New System.Windows.Forms.Button() + Me.GroupBox1.SuspendLayout() + Me.GroupBox2.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.num_Weight, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox3.SuspendLayout() + CType(Me.picBox_Preview, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.TabPage2.SuspendLayout() + Me.SuspendLayout() + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.GroupBox2) + Me.GroupBox1.Controls.Add(Me.bt_New) + Me.GroupBox1.Controls.Add(Me.combo_Supplier) + Me.GroupBox1.Controls.Add(Me.num_Weight) + Me.GroupBox1.Controls.Add(Me.Label11) + Me.GroupBox1.Controls.Add(Me.bt_Query) + Me.GroupBox1.Controls.Add(Me.bt_Save) + Me.GroupBox1.Controls.Add(Me.combo_Unit) + Me.GroupBox1.Controls.Add(Me.bt_Browse) + Me.GroupBox1.Controls.Add(Me.Label6) + Me.GroupBox1.Controls.Add(Me.Label7) + Me.GroupBox1.Controls.Add(Me.Label5) + Me.GroupBox1.Controls.Add(Me.Label4) + Me.GroupBox1.Controls.Add(Me.tb_Descr) + Me.GroupBox1.Controls.Add(Me.Label3) + Me.GroupBox1.Controls.Add(Me.tb_Name) + Me.GroupBox1.Controls.Add(Me.Label2) + Me.GroupBox1.Controls.Add(Me.tb_PartNumber) + Me.GroupBox1.Controls.Add(Me.Label1) + Me.GroupBox1.Location = New System.Drawing.Point(20, 20) + Me.GroupBox1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.GroupBox1.Size = New System.Drawing.Size(712, 844) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "物料属性" + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.PictureBox1) + Me.GroupBox2.Location = New System.Drawing.Point(160, 454) + Me.GroupBox2.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.GroupBox2.Size = New System.Drawing.Size(495, 381) + Me.GroupBox2.TabIndex = 11 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "预览" + ' + 'PictureBox1 + ' + Me.PictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.PictureBox1.Location = New System.Drawing.Point(8, 16) + Me.PictureBox1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(480, 360) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'bt_New + ' + Me.bt_New.Location = New System.Drawing.Point(555, 266) + Me.bt_New.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.bt_New.Name = "bt_New" + Me.bt_New.Size = New System.Drawing.Size(120, 57) + Me.bt_New.TabIndex = 9 + Me.bt_New.Text = "新建" + Me.bt_New.UseVisualStyleBackColor = True + ' + 'combo_Supplier + ' + Me.combo_Supplier.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.combo_Supplier.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.combo_Supplier.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_Supplier.FormattingEnabled = True + Me.combo_Supplier.Location = New System.Drawing.Point(160, 412) + Me.combo_Supplier.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.combo_Supplier.MaxLength = 32 + Me.combo_Supplier.Name = "combo_Supplier" + Me.combo_Supplier.Size = New System.Drawing.Size(361, 26) + Me.combo_Supplier.TabIndex = 5 + ' + 'num_Weight + ' + Me.num_Weight.DecimalPlaces = 3 + Me.num_Weight.Location = New System.Drawing.Point(160, 370) + Me.num_Weight.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.num_Weight.Maximum = New Decimal(New Integer() {10000000, 0, 0, 0}) + Me.num_Weight.Name = "num_Weight" + Me.num_Weight.Size = New System.Drawing.Size(363, 28) + Me.num_Weight.TabIndex = 4 + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.ForeColor = System.Drawing.Color.Red + Me.Label11.Location = New System.Drawing.Point(158, 26) + Me.Label11.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(395, 36) + Me.Label11.TabIndex = 6 + Me.Label11.Text = "提示:带*字段必须填写" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "如果不能输入中文,请单击右键,选择""打开IME""" + ' + 'bt_Query + ' + Me.bt_Query.Location = New System.Drawing.Point(555, 63) + Me.bt_Query.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.bt_Query.Name = "bt_Query" + Me.bt_Query.Size = New System.Drawing.Size(120, 39) + Me.bt_Query.TabIndex = 8 + Me.bt_Query.Text = "查询" + Me.bt_Query.UseVisualStyleBackColor = True + ' + 'bt_Save + ' + Me.bt_Save.Location = New System.Drawing.Point(555, 376) + Me.bt_Save.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.bt_Save.Name = "bt_Save" + Me.bt_Save.Size = New System.Drawing.Size(120, 69) + Me.bt_Save.TabIndex = 10 + Me.bt_Save.Text = "保存" + Me.bt_Save.UseVisualStyleBackColor = True + ' + 'combo_Unit + ' + Me.combo_Unit.FormattingEnabled = True + Me.combo_Unit.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.combo_Unit.Items.AddRange(New Object() {"pcs", "个", "台", "条", "颗", "盒", "包", "箱"}) + Me.combo_Unit.Location = New System.Drawing.Point(160, 332) + Me.combo_Unit.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.combo_Unit.MaxLength = 20 + Me.combo_Unit.Name = "combo_Unit" + Me.combo_Unit.Size = New System.Drawing.Size(361, 26) + Me.combo_Unit.TabIndex = 3 + ' + 'bt_Browse + ' + Me.bt_Browse.Location = New System.Drawing.Point(36, 501) + Me.bt_Browse.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.bt_Browse.Name = "bt_Browse" + Me.bt_Browse.Size = New System.Drawing.Size(116, 39) + Me.bt_Browse.TabIndex = 7 + Me.bt_Browse.Text = "..." + Me.bt_Browse.UseVisualStyleBackColor = True + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(33, 478) + Me.Label6.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(80, 18) + Me.Label6.TabIndex = 0 + Me.Label6.Text = "物料图片" + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(33, 417) + Me.Label7.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(80, 18) + Me.Label7.TabIndex = 0 + Me.Label7.Text = "供应商ID" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(33, 376) + Me.Label5.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(80, 18) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "单重(kg)" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(33, 336) + Me.Label4.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(44, 18) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "单位" + ' + 'tb_Descr + ' + Me.tb_Descr.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.tb_Descr.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.tb_Descr.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_Descr.Location = New System.Drawing.Point(160, 146) + Me.tb_Descr.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.tb_Descr.Multiline = True + Me.tb_Descr.Name = "tb_Descr" + Me.tb_Descr.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.tb_Descr.Size = New System.Drawing.Size(361, 175) + Me.tb_Descr.TabIndex = 2 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(33, 150) + Me.Label3.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(107, 18) + Me.Label3.TabIndex = 0 + Me.Label3.Text = "规格描述(*)" + ' + 'tb_Name + ' + Me.tb_Name.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.tb_Name.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.tb_Name.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_Name.Location = New System.Drawing.Point(160, 105) + Me.tb_Name.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.tb_Name.Name = "tb_Name" + Me.tb_Name.Size = New System.Drawing.Size(361, 28) + Me.tb_Name.TabIndex = 1 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(33, 110) + Me.Label2.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(107, 18) + Me.Label2.TabIndex = 0 + Me.Label2.Text = "物料名称(*)" + ' + 'tb_PartNumber + ' + Me.tb_PartNumber.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.tb_PartNumber.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.tb_PartNumber.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper + Me.tb_PartNumber.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_PartNumber.Location = New System.Drawing.Point(160, 64) + Me.tb_PartNumber.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.tb_PartNumber.MaxLength = 32 + Me.tb_PartNumber.Name = "tb_PartNumber" + Me.tb_PartNumber.Size = New System.Drawing.Size(361, 28) + Me.tb_PartNumber.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(33, 69) + Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(71, 18) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "料号(*)" + ' + 'lstb_Log + ' + Me.lstb_Log.FormattingEnabled = True + Me.lstb_Log.ItemHeight = 18 + Me.lstb_Log.Location = New System.Drawing.Point(20, 902) + Me.lstb_Log.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.lstb_Log.Name = "lstb_Log" + Me.lstb_Log.Size = New System.Drawing.Size(1723, 184) + Me.lstb_Log.TabIndex = 1 + ' + 'lbl_QueryInfo + ' + Me.lbl_QueryInfo.AutoSize = True + Me.lbl_QueryInfo.ForeColor = System.Drawing.Color.Blue + Me.lbl_QueryInfo.Location = New System.Drawing.Point(26, 876) + Me.lbl_QueryInfo.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lbl_QueryInfo.Name = "lbl_QueryInfo" + Me.lbl_QueryInfo.Size = New System.Drawing.Size(0, 18) + Me.lbl_QueryInfo.TabIndex = 6 + ' + 'chk_EnableCam + ' + Me.chk_EnableCam.AutoSize = True + Me.chk_EnableCam.Location = New System.Drawing.Point(26, 42) + Me.chk_EnableCam.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.chk_EnableCam.Name = "chk_EnableCam" + Me.chk_EnableCam.Size = New System.Drawing.Size(124, 22) + Me.chk_EnableCam.TabIndex = 8 + Me.chk_EnableCam.Text = "开启摄像头" + Me.chk_EnableCam.UseVisualStyleBackColor = True + ' + 'bt_CaptureImage + ' + Me.bt_CaptureImage.Location = New System.Drawing.Point(206, 36) + Me.bt_CaptureImage.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.bt_CaptureImage.Name = "bt_CaptureImage" + Me.bt_CaptureImage.Size = New System.Drawing.Size(297, 34) + Me.bt_CaptureImage.TabIndex = 9 + Me.bt_CaptureImage.Text = "抓取图片" + Me.bt_CaptureImage.UseVisualStyleBackColor = True + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.picBox_Preview) + Me.GroupBox3.Controls.Add(Me.chk_EnableCam) + Me.GroupBox3.Controls.Add(Me.bt_CaptureImage) + Me.GroupBox3.Location = New System.Drawing.Point(9, 9) + Me.GroupBox3.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.GroupBox3.Size = New System.Drawing.Size(987, 844) + Me.GroupBox3.TabIndex = 11 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "摄像控制" + ' + 'picBox_Preview + ' + Me.picBox_Preview.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.picBox_Preview.Location = New System.Drawing.Point(26, 180) + Me.picBox_Preview.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.picBox_Preview.Name = "picBox_Preview" + Me.picBox_Preview.Size = New System.Drawing.Size(938, 526) + Me.picBox_Preview.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.picBox_Preview.TabIndex = 12 + Me.picBox_Preview.TabStop = False + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Location = New System.Drawing.Point(741, 20) + Me.TabControl1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(1004, 844) + Me.TabControl1.TabIndex = 12 + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.GroupBox3) + Me.TabPage1.Location = New System.Drawing.Point(4, 28) + Me.TabPage1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.TabPage1.Size = New System.Drawing.Size(996, 812) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "物料图片" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'TabPage2 + ' + Me.TabPage2.Controls.Add(Me.Button2) + Me.TabPage2.Controls.Add(Me.btnTips) + Me.TabPage2.Controls.Add(Me.cb_AutoOverWrite) + Me.TabPage2.Controls.Add(Me.btn_ImportAll) + Me.TabPage2.Controls.Add(Me.tb_CurrentLocation) + Me.TabPage2.Controls.Add(Me.tb_SelectedRow) + Me.TabPage2.Controls.Add(Me.Button1) + Me.TabPage2.Controls.Add(Me.grid_ImportPartNoList) + Me.TabPage2.Location = New System.Drawing.Point(4, 28) + Me.TabPage2.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.TabPage2.Size = New System.Drawing.Size(996, 812) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "批量导入" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'btnTips + ' + Me.btnTips.Location = New System.Drawing.Point(9, 9) + Me.btnTips.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.btnTips.Name = "btnTips" + Me.btnTips.Size = New System.Drawing.Size(60, 54) + Me.btnTips.TabIndex = 9 + Me.btnTips.UseVisualStyleBackColor = True + ' + 'cb_AutoOverWrite + ' + Me.cb_AutoOverWrite.AutoSize = True + Me.cb_AutoOverWrite.Location = New System.Drawing.Point(606, 26) + Me.cb_AutoOverWrite.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.cb_AutoOverWrite.Name = "cb_AutoOverWrite" + Me.cb_AutoOverWrite.Size = New System.Drawing.Size(106, 22) + Me.cb_AutoOverWrite.TabIndex = 8 + Me.cb_AutoOverWrite.Text = "自动覆盖" + Me.cb_AutoOverWrite.UseVisualStyleBackColor = True + ' + 'tb_CurrentLocation + ' + Me.tb_CurrentLocation.Font = New System.Drawing.Font("宋体", 20.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.tb_CurrentLocation.Location = New System.Drawing.Point(315, 8) + Me.tb_CurrentLocation.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.tb_CurrentLocation.Name = "tb_CurrentLocation" + Me.tb_CurrentLocation.Size = New System.Drawing.Size(188, 54) + Me.tb_CurrentLocation.TabIndex = 6 + Me.tb_CurrentLocation.Text = "0" + ' + 'tb_SelectedRow + ' + Me.tb_SelectedRow.Font = New System.Drawing.Font("宋体", 20.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.tb_SelectedRow.Location = New System.Drawing.Point(509, 8) + Me.tb_SelectedRow.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.tb_SelectedRow.Name = "tb_SelectedRow" + Me.tb_SelectedRow.Size = New System.Drawing.Size(86, 54) + Me.tb_SelectedRow.TabIndex = 5 + Me.tb_SelectedRow.Text = "0" + ' + 'Button1 + ' + Me.Button1.Location = New System.Drawing.Point(73, 4) + Me.Button1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(237, 64) + Me.Button1.TabIndex = 3 + Me.Button1.Text = "保存文件(文件:c:\import.xls)" + Me.Button1.UseVisualStyleBackColor = True + ' + 'grid_ImportPartNoList + ' + Me.grid_ImportPartNoList.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.grid_ImportPartNoList.Cols = 10 + Me.grid_ImportPartNoList.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.grid_ImportPartNoList.DefaultRowHeight = CType(28, Short) + Me.grid_ImportPartNoList.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.grid_ImportPartNoList.Location = New System.Drawing.Point(9, 72) + Me.grid_ImportPartNoList.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.grid_ImportPartNoList.MouseWheelSpeed = CType(3, Short) + Me.grid_ImportPartNoList.Name = "grid_ImportPartNoList" + Me.grid_ImportPartNoList.Rows = 100000 + Me.grid_ImportPartNoList.Size = New System.Drawing.Size(974, 724) + Me.grid_ImportPartNoList.TabIndex = 2 + ' + 'btn_ImportAll + ' + Me.btn_ImportAll.Font = New System.Drawing.Font("宋体", 16.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.btn_ImportAll.Location = New System.Drawing.Point(720, 8) + Me.btn_ImportAll.Margin = New System.Windows.Forms.Padding(4) + Me.btn_ImportAll.Name = "btn_ImportAll" + Me.btn_ImportAll.Size = New System.Drawing.Size(158, 62) + Me.btn_ImportAll.TabIndex = 7 + Me.btn_ImportAll.Text = "自动导入" + Me.btn_ImportAll.UseVisualStyleBackColor = True + ' + 'Button2 + ' + Me.Button2.Font = New System.Drawing.Font("宋体", 16.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Button2.Location = New System.Drawing.Point(886, 4) + Me.Button2.Margin = New System.Windows.Forms.Padding(4) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(158, 62) + Me.Button2.TabIndex = 10 + Me.Button2.Text = "自动导入" + Me.Button2.UseVisualStyleBackColor = True + ' + 'form_PartNumber + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 18.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1754, 1103) + Me.Controls.Add(Me.TabControl1) + Me.Controls.Add(Me.lbl_QueryInfo) + Me.Controls.Add(Me.lstb_Log) + Me.Controls.Add(Me.GroupBox1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.MaximizeBox = False + Me.Name = "form_PartNumber" + Me.Text = "料号管理" + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.GroupBox2.ResumeLayout(False) + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.num_Weight, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox3.ResumeLayout(False) + Me.GroupBox3.PerformLayout() + CType(Me.picBox_Preview, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabControl1.ResumeLayout(False) + Me.TabPage1.ResumeLayout(False) + Me.TabPage2.ResumeLayout(False) + Me.TabPage2.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents Label7 As System.Windows.Forms.Label + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents tb_Descr As System.Windows.Forms.TextBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents tb_Name As System.Windows.Forms.TextBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents tb_PartNumber As System.Windows.Forms.TextBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents bt_Browse As System.Windows.Forms.Button + Friend WithEvents combo_Unit As System.Windows.Forms.ComboBox + Friend WithEvents bt_Save As System.Windows.Forms.Button + Friend WithEvents bt_Query As System.Windows.Forms.Button + Friend WithEvents lstb_Log As System.Windows.Forms.ListBox + Friend WithEvents Label11 As System.Windows.Forms.Label + Friend WithEvents num_Weight As System.Windows.Forms.NumericUpDown + Friend WithEvents combo_Supplier As System.Windows.Forms.ComboBox + Friend WithEvents bt_New As System.Windows.Forms.Button + Friend WithEvents lbl_QueryInfo As System.Windows.Forms.Label + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents chk_EnableCam As System.Windows.Forms.CheckBox + Friend WithEvents bt_CaptureImage As System.Windows.Forms.Button + Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents picBox_Preview As System.Windows.Forms.PictureBox + Friend WithEvents TabControl1 As System.Windows.Forms.TabControl + Friend WithEvents TabPage1 As System.Windows.Forms.TabPage + Friend WithEvents TabPage2 As System.Windows.Forms.TabPage + Friend WithEvents grid_ImportPartNoList As FlexCell.Grid + Friend WithEvents Button1 As System.Windows.Forms.Button + Friend WithEvents tb_CurrentLocation As System.Windows.Forms.TextBox + Friend WithEvents tb_SelectedRow As System.Windows.Forms.TextBox + Friend WithEvents cb_AutoOverWrite As CheckBox + Friend WithEvents btnTips As Button + Friend WithEvents Button2 As Button + Friend WithEvents btn_ImportAll As Button +End Class diff --git a/WT-DMS/form_PartNumber.resx b/WT-DMS/form_PartNumber.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/WT-DMS/form_PartNumber.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WT-DMS/form_PartNumber.vb b/WT-DMS/form_PartNumber.vb new file mode 100644 index 0000000..1a58e22 --- /dev/null +++ b/WT-DMS/form_PartNumber.vb @@ -0,0 +1,470 @@ +Imports System.Windows.Forms + +Public Class form_PartNumber + Dim m_PartNumber As New CPartNumber + Dim m_Supplier As New CSupplier + Dim m_InitOver As Boolean = False + + Dim strSupplierID As String = "" + + Dim m_RecentList_PN As New System.Windows.Forms.AutoCompleteStringCollection + Dim m_RecentList_Name As New System.Windows.Forms.AutoCompleteStringCollection + Dim m_RecentList_Desc As New System.Windows.Forms.AutoCompleteStringCollection + + Dim cam As CamSnapShot.Capture = Nothing + + Const VIDEODEVICE = 0 ' zero based index of video capture device to use + Const VIDEOWIDTH = 1920 '// Depends on video device caps + Const VIDEOHEIGHT = 1080 ' // Depends on video device caps + Const VIDEOBITSPERPIXEL = 24 ' // BitsPerPixel values determined by device + + Dim AutoImport_CurrentRow As Integer = 0 + + Dim AutoImport_AutoOverWrite As Boolean = False + Private Function CheckInputValid() As Boolean + Dim valid As Boolean = True + + If tb_PartNumber.Text.Length <= 0 Then + valid = False + End If + If tb_PartNumber.Text.Length > SEC_LENGTH.料号PN Then + valid = False + End If + + If valid = True Then + tb_PartNumber.BackColor = Color.White + Else + tb_PartNumber.BackColor = Color.Red + End If + + If tb_Name.Text.Length <= 0 Then + tb_Name.BackColor = Color.Red + valid = False + Else + tb_Name.BackColor = Color.White + End If + + '检测供应商ID是否合法 + Dim SupplierSplit() As String + Dim SupplierID As String = "" + If combo_Supplier.Text.Length > 0 Then + SupplierSplit = Split(combo_Supplier.Text, ":") + If SupplierSplit.Length >= 1 Then + SupplierID = SupplierSplit(0) + End If + End If + + Dim SupplierIDValid As Boolean = False + If SupplierID.Length > 0 Then + If m_Supplier.CheckSupplierID(SupplierID, SupplierIDValid) = ERROR_CODE.SUCCESS Then + If SupplierIDValid = False Then + combo_Supplier.BackColor = Color.Red + valid = False + Else + strSupplierID = SupplierID + combo_Supplier.BackColor = Color.White + End If + Else + combo_Supplier.BackColor = Color.Red + valid = False + MsgBox("查询""供应商ID""失败") + End If + Else + combo_Supplier.BackColor = Color.White + End If + + If tb_Descr.Text.Length <= 0 Then + tb_Descr.BackColor = Color.Red + valid = False + Else + tb_Descr.BackColor = Color.White + End If + + Return valid + End Function + + '获取供应商列表 + Private Function GetSupplierList() As Boolean + combo_Supplier.Items.Clear() + + Dim m_Supplier As New CSupplier + Dim rTable As New DataTable + Dim strItem As String = "" + If m_Supplier.QueryAll_IDAndName(rTable) = ERROR_CODE.SUCCESS Then + For row As Integer = 0 To rTable.Rows.Count - 1 + strItem = rTable.Rows(row).Item(0) & ":" & rTable.Rows(row).Item(1) + combo_Supplier.Items.Add(strItem) + Next + + Return True + End If + Return False + End Function + + Private Sub form_PartNumber_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed + CGirdInfo.SaveRecentList("Recent_PN_PN", m_RecentList_PN) + CGirdInfo.SaveRecentList("Recent_PN_Name", m_RecentList_Name) + CGirdInfo.SaveRecentList("Recent_PN_Desc", m_RecentList_Desc) + + If Not cam Is Nothing Then + cam.Dispose() + End If + + cam = Nothing + End Sub + + Private Sub form_PartNumber_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + CGirdInfo.LoadRecentList("Recent_PN_PN", m_RecentList_PN) + CGirdInfo.LoadRecentList("Recent_PN_Name", m_RecentList_Name) + CGirdInfo.LoadRecentList("Recent_PN_Desc", m_RecentList_Desc) + AddDataToSlqDic = New Dictionary(Of String, (String, Object())) + tb_PartNumber.AutoCompleteCustomSource = m_RecentList_PN + tb_Name.AutoCompleteCustomSource = m_RecentList_Name + tb_Descr.AutoCompleteCustomSource = m_RecentList_Desc + + If CBool(Current_Rights(COL_RIGHTS.料号管理) And RIGHTS.READ) = False Then + bt_Query.Enabled = False + End If + If CBool(Current_Rights(COL_RIGHTS.料号管理) And RIGHTS.WRITE) = False Then + bt_Save.Enabled = False + End If + + GetSupplierList() + + + + Me.Left = My.Settings.FORM_PARTNUMBER_X + Me.Top = My.Settings.FORM_PARTNUMBER_Y + + m_InitOver = True + End Sub + + Private Sub bt_Browse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Browse.Click + Dim ofd As New OpenFileDialog() + If ofd.ShowDialog() <> DialogResult.OK Then Return + + PictureBox1.BackgroundImage = Image.FromFile(ofd.FileName) + End Sub + + Private Sub AddLog(ByVal text As String) + Dim index As Integer = lstb_Log.Items.Add(Now.ToString & ":" & text) + lstb_Log.SelectedIndex = index + End Sub + + + '记录要录入对数据 + Public AddDataToSlqDic As Dictionary(Of String, (String, Object())) + Private Sub bt_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Save.Click + If tb_PartNumber.Text.Length > 0 Then + m_RecentList_PN.Add(tb_PartNumber.Text) + End If + If tb_Name.Text.Length > 0 Then + m_RecentList_Name.Add(tb_Name.Text) + End If + If tb_Descr.Text.Length > 0 Then + m_RecentList_Desc.Add(tb_Descr.Text) + End If + If m_RecentList_PN.Count > 10 Then + m_RecentList_PN.RemoveAt(0) + End If + If m_RecentList_Name.Count > 10 Then + m_RecentList_Name.RemoveAt(0) + End If + If m_RecentList_Desc.Count > 10 Then + m_RecentList_Desc.RemoveAt(0) + End If + + + lbl_QueryInfo.Text = "" + + '首先检查料号信息完整性 + If CheckInputValid() = False Then + MsgBox("输入属性存在错误!请见红色背景提示") + Return + End If + + '检测料号唯一性 + Dim UpdateMode As Boolean = False + Dim isExist As Boolean = True + If m_PartNumber.CheckPartNumber(tb_PartNumber.Text, isExist) = ERROR_CODE.SUCCESS Then + If isExist = True Then + tb_PartNumber.BackColor = Color.Red + If AutoImport_AutoOverWrite = False Then 'Momo 2021-08-10 如果选择自动覆盖,就不弹框 + '==Momo 20180322 + If MsgBox("当前料号已经存在: " & tb_PartNumber.Text & vbNewLine & "是否继续覆盖原数据?", MsgBoxStyle.OkCancel Or MsgBoxStyle.DefaultButton2) <> MsgBoxResult.Ok Then + Return + End If + End If + '==Momo 20180322 + UpdateMode = True + tb_PartNumber.BackColor = Color.White + End If + Else + MsgBox("访问数据库失败: 请检查网络连接或联系管理员!") + Return + End If + + '保存料号 + + Dim result As ERROR_CODE + 'If System.IO.File.Exists(tb_PicPath.Text) = True Then + If Not (PictureBox1.BackgroundImage Is Nothing) Then + Dim imageSize As Integer = PictureBox1.Width * PictureBox1.Height * Image.GetPixelFormatSize(System.Drawing.Imaging.PixelFormat.Format24bppRgb) / 8 + Dim PicBytes(imageSize * 2) As Byte + + Dim pt As Point = PictureBox1.Location + If mdl_Common.GetBytesFromImage(mdl_Common.ZoomImage(PictureBox1.BackgroundImage, PictureBox1.Bounds), PicBytes) = False Then + MsgBox("获取图像失败!") + Return + End If + + If UpdateMode = True Then + result = m_PartNumber.UpdateItem(tb_PartNumber.Text, tb_Name.Text, tb_Descr.Text, combo_Unit.Text, num_Weight.Value, PicBytes, strSupplierID) + Else + result = m_PartNumber.AddItem(tb_PartNumber.Text, tb_Name.Text, tb_Descr.Text, combo_Unit.Text, num_Weight.Value, PicBytes, strSupplierID) + + End If + Else + If UpdateMode = True Then + result = m_PartNumber.UpdateItem(tb_PartNumber.Text, tb_Name.Text, tb_Descr.Text, combo_Unit.Text, num_Weight.Value, Nothing, strSupplierID) + Else + result = m_PartNumber.AddItem(tb_PartNumber.Text, tb_Name.Text, tb_Descr.Text, combo_Unit.Text, num_Weight.Value, strSupplierID) + End If + End If + + If result = ERROR_CODE.SUCCESS Then + '查询保存序号 + Dim SaveIndex As Integer = 0 + Dim minIndex As Integer = 0 + Dim maxIndex As Integer = 0 + Dim TotalCount As Integer = 0 + result = m_PartNumber.QueryInformation(TotalCount, minIndex, maxIndex) + If result = ERROR_CODE.SUCCESS Then + m_PartNumber.QueryItemIndex(tb_PartNumber.Text, SaveIndex) + If result = ERROR_CODE.SUCCESS Then + lbl_QueryInfo.Text = "保存序号: " & SaveIndex & ", 最小序号: " & minIndex & ", 最大序号: " & maxIndex & ", 总条数: " & TotalCount + AddLog("成功添加: " & SaveIndex & "," & tb_PartNumber.Text & "," & tb_Name.Text & "," & tb_Descr.Text & "," & combo_Unit.Text & "," & num_Weight.Value & "," & strSupplierID) + Else + MsgBox("保存失败: ""读取总条数失败!""") + End If + Else + MsgBox("保存失败: ""读取保存信息失败!""") + End If + ElseIf result = ERROR_CODE.NORIGHT Then + MsgBox("保存失败: ""无访问权限!""") + Else + MsgBox("保存失败: 请检查网络连接或联系管理员!") + End If + End Sub + + Private Sub bt_Query_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Query.Click + tb_Name.Text = "" + tb_Descr.Text = "" + combo_Unit.Text = "" + num_Weight.Value = 0 + combo_Supplier.Text = "" + PictureBox1.BackgroundImage = Nothing + + Dim 物料名称 As String = "" + Dim 规格描述 As String = "" + Dim 单位 As String = "" + Dim 单重 As Double = 0 + Dim 图片(0) As Byte + Dim 供应商ID As String = "" + If m_PartNumber.QueryItem(tb_PartNumber.Text, 物料名称, 规格描述, 单位, 单重, 图片, 供应商ID) = ERROR_CODE.SUCCESS Then + tb_Name.Text = 物料名称 + tb_Descr.Text = 规格描述 + combo_Unit.Text = 单位 + num_Weight.Value = 单重 + combo_Supplier.Text = 供应商ID + + PictureBox1.BackgroundImage = GetImageFromBytes(图片) + End If + End Sub + + Private Sub bt_New_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_New.Click + tb_PartNumber.Text = "" + tb_Name.Text = "" + tb_Descr.Text = "" + combo_Unit.Text = "pcs" + num_Weight.Value = 0 + combo_Supplier.Text = "" + PictureBox1.BackgroundImage = Nothing + End Sub + + Private Sub form_PartNumber_LocationChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LocationChanged + If m_InitOver = True Then + My.Settings.FORM_PARTNUMBER_X = Me.Left + My.Settings.FORM_PARTNUMBER_Y = Me.Top + My.Settings.Save() + End If + End Sub + + Private Sub chk_EnableCam_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_EnableCam.CheckedChanged + If m_InitOver = False Then Return + Try + If chk_EnableCam.Checked = True Then + Dim rc As Rectangle = picBox_Preview.ClientRectangle + + ''保持长宽比 + 'Dim scaleX As Double = VIDEOWIDTH / rc.Width + 'Dim scaleY As Double = VIDEOHEIGHT / rc.Height + 'Dim scale As Double = Math.Min(scaleX, scaleY) + 'Dim rWidth As Double = rc.Width * scale + 'Dim rHeight As Double = rc.Height * scale + ''Dim offsetX As Double = (rc.Width - rWidth) / 2 + ''Dim offsetY As Double = (rc.Height - rHeight) / 2 + 'cam = New CamSnapShot.Capture(VIDEODEVICE, rWidth, rHeight, VIDEOBITSPERPIXEL, picBox_Preview) + + 'cam = New CamSnapShot.Capture(VIDEODEVICE, VIDEOWIDTH, VIDEOHEIGHT, VIDEOBITSPERPIXEL, picBox_Preview) + cam = New CamSnapShot.Capture(VIDEODEVICE, rc.Width, rc.Height, VIDEOBITSPERPIXEL, picBox_Preview) + Else + If Not cam Is Nothing Then + cam.Dispose() + End If + + cam = Nothing + End If + Catch ex As Exception + + End Try + + End Sub + + 'Private Sub ConnectCam() + ' If vcx.Connected Then vcx.Connected = False + ' vcx.AudioDeviceIndex = -1 + ' vcx.CaptureAudio = False + ' vcx.VideoDeviceIndex = 0 'cb1.SelectedIndex + + ' vcx.UseVideoFilter = VIDEOCAPXLib.vcxUseVideoFilterEnum.vcxBoth + ' vcx.Connected = True + ' vcx.Preview = True + + ' vcx.SetVideoFormat(640, 480) + 'End Sub + + 'Private Sub DisConnectCam() + ' vcx.Preview = False + ' vcx.Connected = False + 'End Sub + + Private Sub bt_CaptureImage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_CaptureImage.Click + 'PictureBox1.BackgroundImage = vcx.GrabFrame + Try + PictureBox1.BackgroundImage = cam.SnapShot + Catch ex As Exception + + End Try + + End Sub + + Private Function vcx() As Object + Throw New NotImplementedException + End Function + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + grid_ImportPartNoList.ExportToExcel("d:\import.xls") + End Sub + + Private Sub grid_ImportPartNoList_Click(Sender As Object, e As EventArgs) Handles grid_ImportPartNoList.Click + AutoImport_CurrentRow = grid_ImportPartNoList.MouseRow + tb_SelectedRow.Text = AutoImport_CurrentRow + + GetItemFromGrid(AutoImport_CurrentRow) + + End Sub + Private Sub GetItemFromGrid(TargetRow As Integer) + tb_PartNumber.Text = grid_ImportPartNoList.Cell(AutoImport_CurrentRow, 1).Text + tb_Name.Text = grid_ImportPartNoList.Cell(AutoImport_CurrentRow, 2).Text + tb_Descr.Text = grid_ImportPartNoList.Cell(AutoImport_CurrentRow, 3).Text + combo_Unit.Text = "Pcs" + num_Weight.Text = grid_ImportPartNoList.Cell(AutoImport_CurrentRow, 5).Text + End Sub + + + Private Sub grid_ImportPartNoList_Load(sender As Object, e As EventArgs) Handles grid_ImportPartNoList.Load + + End Sub + + Private Sub grid_ImportPartNoList_MouseMove(Sender As Object, e As MouseEventArgs) Handles grid_ImportPartNoList.MouseMove + tb_CurrentLocation.Text = grid_ImportPartNoList.MouseRow & " , " & grid_ImportPartNoList.MouseCol + End Sub + + Private Sub btn_ImportAll_Click(sender As Object, e As EventArgs) Handles btn_ImportAll.Click + Dim tempCurrentRowPN As String = "" + 'AddDataToSlqDic.Clear() + + If cb_AutoOverWrite.Checked Then + AutoImport_AutoOverWrite = True + Else + AutoImport_AutoOverWrite = False + End If + + For i = 1 To grid_ImportPartNoList.Rows - 1 + If String.IsNullOrEmpty(grid_ImportPartNoList.Cell(i, 0).Text) Then Continue For + bt_New.PerformClick() + AutoImport_CurrentRow = i + tempCurrentRowPN = grid_ImportPartNoList.Cell(i, 1).Text + If tempCurrentRowPN <> "" Then + grid_ImportPartNoList.Cell(i, 1).SetFocus() + 'grid_ImportPartNoList.Focus() + GetItemFromGrid(i) + If Val(grid_ImportPartNoList.Cell(i, 5).Text) < 0.01 Then grid_ImportPartNoList.Cell(i, 5).Text = "0.01" + num_Weight.Text = grid_ImportPartNoList.Cell(AutoImport_CurrentRow, 5).Text + grid_ImportPartNoList.Cell(i, 7).Text = i + grid_ImportPartNoList.Cell(i, 8).Text = "OK" + strSupplierID = "01" + bt_Save.PerformClick() + 'AddLog("成功添加: " & i & "," & tb_PartNumber.Text & "," & tb_Name.Text & "," & tb_Descr.Text & "," & combo_Unit.Text & "," & num_Weight.Value & "," & strSupplierID) + Else + Exit For + AddLog("添加完成") + End If + + Next + ' Console.WriteLine("添加完成") + End Sub + + Private Sub cb_AutoOverWrite_CheckedChanged(sender As Object, e As EventArgs) Handles cb_AutoOverWrite.CheckedChanged + If cb_AutoOverWrite.Checked Then + AutoImport_AutoOverWrite = True + Else + AutoImport_AutoOverWrite = False + End If + End Sub + + Private Sub btnTips_Click(sender As Object, e As EventArgs) Handles btnTips.Click + Dim strTips = "提示:" & vbCrLf & vbCrLf & + "(1),从ERP系统导出料号到Excel表格" & vbCrLf & + "(2),表格顺序为:1-料号 2-品名 3-规格描述 4-单位 5-单价 " & vbCrLf & + "(3),将Excel数据复制黏贴到表格中" & vbCrLf & + "(4),点击 自动导入 按钮开始导入" & vbCrLf + MsgBox(strTips, MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "料号导入操作提示") + End Sub + + Private Sub grid_ImportPartNoList_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles grid_ImportPartNoList.CellChange + If e.Row = 0 AndAlso e.Col = 0 Then Return + + If String.IsNullOrEmpty(grid_ImportPartNoList.Cell(e.Row, 0).Text) Then + grid_ImportPartNoList.Cell(e.Row, 0).Text = e.Row.ToString + End If + + End Sub + + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + + strSupplierID = "01" + AddDataToSlqDic.Clear() + + + ' insert into Table + + + For i = 1 To grid_ImportPartNoList.Rows - 1 + If String.IsNullOrEmpty(grid_ImportPartNoList.Cell(i, 0).Text) Then Continue For + + + Next + End Sub +End Class \ No newline at end of file diff --git a/WT-DMS/form_Product.Designer.vb b/WT-DMS/form_Product.Designer.vb new file mode 100644 index 0000000..da6d657 --- /dev/null +++ b/WT-DMS/form_Product.Designer.vb @@ -0,0 +1,363 @@ + _ +Partial Class form_Product + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.tb_PartNumberInfo = New System.Windows.Forms.TextBox() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.chk_Preview = New System.Windows.Forms.CheckBox() + Me.bt_AddStoreLoc = New System.Windows.Forms.Button() + Me.num_Count = New System.Windows.Forms.NumericUpDown() + Me.Label11 = New System.Windows.Forms.Label() + Me.lstb_Log = New System.Windows.Forms.ListBox() + Me.bt_Query = New System.Windows.Forms.Button() + Me.bt_Save = New System.Windows.Forms.Button() + Me.combo_StoreName = New System.Windows.Forms.ComboBox() + Me.combo_StoreLoc = New System.Windows.Forms.ComboBox() + Me.combo_Unit = New System.Windows.Forms.ComboBox() + Me.tb_UseInfo = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label7 = New System.Windows.Forms.Label() + Me.Label6 = New System.Windows.Forms.Label() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.tb_OderNumber = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.tb_PartNumber = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.Label10 = New System.Windows.Forms.Label() + Me.GroupBox2.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.num_Count, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox1.SuspendLayout() + Me.SuspendLayout() + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.tb_PartNumberInfo) + Me.GroupBox2.Controls.Add(Me.PictureBox1) + Me.GroupBox2.Controls.Add(Me.chk_Preview) + Me.GroupBox2.Location = New System.Drawing.Point(445, 21) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(423, 287) + Me.GroupBox2.TabIndex = 11 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "料号信息" + ' + 'tb_PartNumberInfo + ' + Me.tb_PartNumberInfo.Location = New System.Drawing.Point(7, 25) + Me.tb_PartNumberInfo.Multiline = True + Me.tb_PartNumberInfo.Name = "tb_PartNumberInfo" + Me.tb_PartNumberInfo.ReadOnly = True + Me.tb_PartNumberInfo.Size = New System.Drawing.Size(204, 250) + Me.tb_PartNumberInfo.TabIndex = 7 + ' + 'PictureBox1 + ' + Me.PictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.PictureBox1.Location = New System.Drawing.Point(217, 49) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(200, 200) + Me.PictureBox1.TabIndex = 2 + Me.PictureBox1.TabStop = False + ' + 'chk_Preview + ' + Me.chk_Preview.AutoSize = True + Me.chk_Preview.Checked = Global.WT_DMS.My.MySettings.Default.CHK_PREVIEW + Me.chk_Preview.DataBindings.Add(New System.Windows.Forms.Binding("Checked", Global.WT_DMS.My.MySettings.Default, "CHK_PREVIEW", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)) + Me.chk_Preview.Location = New System.Drawing.Point(217, 25) + Me.chk_Preview.Name = "chk_Preview" + Me.chk_Preview.Size = New System.Drawing.Size(96, 16) + Me.chk_Preview.TabIndex = 6 + Me.chk_Preview.Text = "物料图片预览" + Me.chk_Preview.UseVisualStyleBackColor = True + ' + 'bt_AddStoreLoc + ' + Me.bt_AddStoreLoc.Location = New System.Drawing.Point(276, 182) + Me.bt_AddStoreLoc.Name = "bt_AddStoreLoc" + Me.bt_AddStoreLoc.Size = New System.Drawing.Size(56, 23) + Me.bt_AddStoreLoc.TabIndex = 9 + Me.bt_AddStoreLoc.Text = "新建" + Me.bt_AddStoreLoc.UseVisualStyleBackColor = True + ' + 'num_Count + ' + Me.num_Count.Location = New System.Drawing.Point(90, 94) + Me.num_Count.Maximum = New Decimal(New Integer() {1000000, 0, 0, 0}) + Me.num_Count.Name = "num_Count" + Me.num_Count.Size = New System.Drawing.Size(242, 21) + Me.num_Count.TabIndex = 2 + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.ForeColor = System.Drawing.Color.Red + Me.Label11.Location = New System.Drawing.Point(88, 11) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(263, 24) + Me.Label11.TabIndex = 6 + Me.Label11.Text = "提示:带*字段必须填写" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "如果不能输入中文,请单击右键,选择""打开IME""" + ' + 'lstb_Log + ' + Me.lstb_Log.FormattingEnabled = True + Me.lstb_Log.ItemHeight = 12 + Me.lstb_Log.Location = New System.Drawing.Point(12, 356) + Me.lstb_Log.Name = "lstb_Log" + Me.lstb_Log.Size = New System.Drawing.Size(874, 148) + Me.lstb_Log.TabIndex = 13 + ' + 'bt_Query + ' + Me.bt_Query.Location = New System.Drawing.Point(347, 36) + Me.bt_Query.Name = "bt_Query" + Me.bt_Query.Size = New System.Drawing.Size(80, 26) + Me.bt_Query.TabIndex = 8 + Me.bt_Query.Text = "查询" + Me.bt_Query.UseVisualStyleBackColor = True + ' + 'bt_Save + ' + Me.bt_Save.Location = New System.Drawing.Point(347, 250) + Me.bt_Save.Name = "bt_Save" + Me.bt_Save.Size = New System.Drawing.Size(80, 46) + Me.bt_Save.TabIndex = 7 + Me.bt_Save.Text = "保存" + Me.bt_Save.UseVisualStyleBackColor = True + ' + 'combo_StoreName + ' + Me.combo_StoreName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.combo_StoreName.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.combo_StoreName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_StoreName.FormattingEnabled = True + Me.combo_StoreName.Items.AddRange(New Object() {"pcs", "个", "台", "条", "颗", "盒", "包", "箱"}) + Me.combo_StoreName.Location = New System.Drawing.Point(90, 156) + Me.combo_StoreName.MaxLength = 20 + Me.combo_StoreName.Name = "combo_StoreName" + Me.combo_StoreName.Size = New System.Drawing.Size(180, 20) + Me.combo_StoreName.TabIndex = 4 + ' + 'combo_StoreLoc + ' + Me.combo_StoreLoc.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.combo_StoreLoc.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.combo_StoreLoc.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_StoreLoc.FormattingEnabled = True + Me.combo_StoreLoc.Location = New System.Drawing.Point(90, 183) + Me.combo_StoreLoc.MaxLength = 20 + Me.combo_StoreLoc.Name = "combo_StoreLoc" + Me.combo_StoreLoc.Size = New System.Drawing.Size(180, 20) + Me.combo_StoreLoc.TabIndex = 4 + ' + 'combo_Unit + ' + Me.combo_Unit.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.combo_Unit.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.combo_Unit.FormattingEnabled = True + Me.combo_Unit.ImeMode = System.Windows.Forms.ImeMode.Off + Me.combo_Unit.Items.AddRange(New Object() {"pcs", "个", "台", "条", "颗", "盒", "包", "箱"}) + Me.combo_Unit.Location = New System.Drawing.Point(90, 121) + Me.combo_Unit.MaxLength = 20 + Me.combo_Unit.Name = "combo_Unit" + Me.combo_Unit.Size = New System.Drawing.Size(242, 20) + Me.combo_Unit.TabIndex = 3 + ' + 'tb_UseInfo + ' + Me.tb_UseInfo.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_UseInfo.Location = New System.Drawing.Point(90, 209) + Me.tb_UseInfo.MaxLength = 200 + Me.tb_UseInfo.Multiline = True + Me.tb_UseInfo.Name = "tb_UseInfo" + Me.tb_UseInfo.Size = New System.Drawing.Size(242, 87) + Me.tb_UseInfo.TabIndex = 5 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(37, 186) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(47, 12) + Me.Label3.TabIndex = 0 + Me.Label3.Text = "库位(*)" + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(55, 212) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(29, 12) + Me.Label7.TabIndex = 0 + Me.Label7.Text = "用途" + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(37, 159) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(47, 12) + Me.Label6.TabIndex = 0 + Me.Label6.Text = "仓库(*)" + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.GroupBox2) + Me.GroupBox1.Controls.Add(Me.bt_AddStoreLoc) + Me.GroupBox1.Controls.Add(Me.num_Count) + Me.GroupBox1.Controls.Add(Me.Label11) + Me.GroupBox1.Controls.Add(Me.bt_Query) + Me.GroupBox1.Controls.Add(Me.bt_Save) + Me.GroupBox1.Controls.Add(Me.combo_StoreName) + Me.GroupBox1.Controls.Add(Me.combo_StoreLoc) + Me.GroupBox1.Controls.Add(Me.combo_Unit) + Me.GroupBox1.Controls.Add(Me.tb_UseInfo) + Me.GroupBox1.Controls.Add(Me.Label3) + Me.GroupBox1.Controls.Add(Me.Label7) + Me.GroupBox1.Controls.Add(Me.Label6) + Me.GroupBox1.Controls.Add(Me.Label5) + Me.GroupBox1.Controls.Add(Me.Label4) + Me.GroupBox1.Controls.Add(Me.tb_OderNumber) + Me.GroupBox1.Controls.Add(Me.Label2) + Me.GroupBox1.Controls.Add(Me.tb_PartNumber) + Me.GroupBox1.Controls.Add(Me.Label1) + Me.GroupBox1.Location = New System.Drawing.Point(12, 12) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(874, 314) + Me.GroupBox1.TabIndex = 11 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "物料属性" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(37, 96) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(47, 12) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "数量(*)" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(55, 124) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(29, 12) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "单位" + ' + 'tb_OderNumber + ' + Me.tb_OderNumber.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_OderNumber.Location = New System.Drawing.Point(90, 67) + Me.tb_OderNumber.MaxLength = 20 + Me.tb_OderNumber.Name = "tb_OderNumber" + Me.tb_OderNumber.Size = New System.Drawing.Size(242, 21) + Me.tb_OderNumber.TabIndex = 1 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(43, 70) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(41, 12) + Me.Label2.TabIndex = 0 + Me.Label2.Text = "订单号" + ' + 'tb_PartNumber + ' + Me.tb_PartNumber.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_PartNumber.Location = New System.Drawing.Point(90, 40) + Me.tb_PartNumber.MaxLength = 32 + Me.tb_PartNumber.Name = "tb_PartNumber" + Me.tb_PartNumber.Size = New System.Drawing.Size(242, 21) + Me.tb_PartNumber.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(37, 43) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(47, 12) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "料号(*)" + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Location = New System.Drawing.Point(10, 341) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(29, 12) + Me.Label10.TabIndex = 12 + Me.Label10.Text = "记录" + ' + 'form_Product + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(896, 517) + Me.Controls.Add(Me.lstb_Log) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.Label10) + Me.Name = "form_Product" + Me.Text = "成品库存管理" + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.num_Count, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents tb_PartNumberInfo As System.Windows.Forms.TextBox + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents chk_Preview As System.Windows.Forms.CheckBox + Friend WithEvents bt_AddStoreLoc As System.Windows.Forms.Button + Friend WithEvents num_Count As System.Windows.Forms.NumericUpDown + Friend WithEvents Label11 As System.Windows.Forms.Label + Friend WithEvents lstb_Log As System.Windows.Forms.ListBox + Friend WithEvents bt_Query As System.Windows.Forms.Button + Friend WithEvents bt_Save As System.Windows.Forms.Button + Friend WithEvents combo_StoreName As System.Windows.Forms.ComboBox + Friend WithEvents combo_StoreLoc As System.Windows.Forms.ComboBox + Friend WithEvents combo_Unit As System.Windows.Forms.ComboBox + Friend WithEvents tb_UseInfo As System.Windows.Forms.TextBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents Label7 As System.Windows.Forms.Label + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents tb_OderNumber As System.Windows.Forms.TextBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents tb_PartNumber As System.Windows.Forms.TextBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Label10 As System.Windows.Forms.Label +End Class diff --git a/WT-DMS/form_Product.resx b/WT-DMS/form_Product.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/WT-DMS/form_Product.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WT-DMS/form_Product.vb b/WT-DMS/form_Product.vb new file mode 100644 index 0000000..4bfd922 --- /dev/null +++ b/WT-DMS/form_Product.vb @@ -0,0 +1,252 @@ +Public Class form_Product + Dim m_Table As New System.Data.DataTable + Dim m_Product As New CProductsManage + Dim m_PartNumber As New CPartNumber + Dim 库位表列表 As New ArrayList + Dim 库位表名 As String = "" + + Public Property OutStore() As Boolean + Get + Return m_Product.OutStore + End Get + Set(ByVal value As Boolean) + m_Product.OutStore = value + End Set + End Property + + Private Function GetStoreList() As Boolean + Dim m_Store As New CStore + + combo_StoreName.Items.Clear() + 库位表列表.Clear() + + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If m_Store.QueryAll(m_Table) = ERROR_CODE.SUCCESS Then + For i As Integer = 0 To m_Table.Rows.Count - 1 + combo_StoreName.Items.Add(m_Table.Rows(i).Item(CStore.COLS.仓库名称)) + 库位表列表.Add(m_Table.Rows(i).Item(CStore.COLS.仓库库位表)) + Next + Return True + End If + + Return False + End Function + + Private Function GetStoreLocationList() As Boolean + Dim m_StoreLocation As New CStoreLocation() + combo_StoreLoc.Items.Clear() + + m_StoreLocation.TABLE_NAME = 库位表名 + m_Table.Rows.Clear() + m_Table.Columns.Clear() + If m_StoreLocation.QueryAll(m_Table) = ERROR_CODE.SUCCESS Then + For i As Integer = 0 To m_Table.Rows.Count - 1 + combo_StoreLoc.Items.Add(m_Table.Rows(i).Item(CStoreLocation.COLS.库位)) + Next + + Return True + End If + + Return False + End Function + + '获取料号信息 + Private Function GetPartNumberInformation(ByVal strPartNumber As String) As Boolean + Dim 物料名称 As String = "" + Dim 规格描述 As String = "" + Dim 单位 As String = "" + Dim 单重 As Double = 0 + Dim 图片(0) As Byte + Dim 供应商ID As String = "" + + Dim strInfo As String = "" + tb_PartNumberInfo.Text = "" + Dim result As Boolean = False + If chk_Preview.Checked = True Then + If m_PartNumber.QueryItem(tb_PartNumber.Text, 物料名称, 规格描述, 单位, 单重, 图片, 供应商ID) = ERROR_CODE.SUCCESS Then + strInfo = "物料名称: " & 物料名称 & vbNewLine + strInfo &= "规格描述: " & 规格描述 & vbNewLine + strInfo &= "单位: " & 单位 & vbNewLine + strInfo &= "单重: " & 单重 & vbNewLine + strInfo &= "供应商ID: " & 供应商ID & vbNewLine + + PictureBox1.BackgroundImage = GetImageFromBytes(图片) + tb_PartNumberInfo.Text = strInfo + result = True + End If + Else + If m_PartNumber.QueryItem(tb_PartNumber.Text, 物料名称, 规格描述, 单位, 单重, 供应商ID) = ERROR_CODE.SUCCESS Then + strInfo = "物料名称: " & 物料名称 & vbNewLine + strInfo &= "规格描述: " & 规格描述 & vbNewLine + strInfo &= "单位: " & 单位 & vbNewLine + strInfo &= "单重: " & 单重 & vbNewLine + strInfo &= "供应商ID: " & 供应商ID & vbNewLine + + PictureBox1.BackgroundImage = Nothing + tb_PartNumberInfo.Text = strInfo + result = True + End If + End If + + If result = True Then + tb_PartNumber.BackColor = Color.White + Else + tb_PartNumber.BackColor = Color.Red + End If + + Return result + End Function + + Private Sub AddLog(ByVal text As String) + Dim index As Integer = lstb_Log.Items.Add(Now.ToString & ":" & text) + lstb_Log.SelectedIndex = index + End Sub + + Private Sub form_Material_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed + My.Settings.Save() + End Sub + + Private Sub form_Material_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + My.Settings.Reload() + + GetStoreList() + End Sub + + Private Sub StoreLocUpdated() + '重新载入库位列表 + If GetStoreLocationList() = False Then + MsgBox("载入库位列表失败!") + End If + End Sub + + Private Sub bt_AddStoreLoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_AddStoreLoc.Click + Dim pForm As New form_StoreLocManage(库位表名) + pForm.MdiParent = MainForm + AddHandler pForm.StoreLocUpdated, AddressOf StoreLocUpdated + pForm.Show() + End Sub + + Private Sub tb_PartNumber_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_PartNumber.TextChanged + If tb_PartNumber.Text.Length >= 8 Then + GetPartNumberInformation(tb_PartNumber.Text) + End If + End Sub + + Private Sub tb_PartNumber_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_PartNumber.Leave + If tb_PartNumber.Text.Length > 0 Then + GetPartNumberInformation(tb_PartNumber.Text) + End If + End Sub + + Private Sub chk_Preview_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_Preview.CheckedChanged + If tb_PartNumber.Text.Length > 0 Then + GetPartNumberInformation(tb_PartNumber.Text) + End If + End Sub + + Private Function CheckInputValid() As Boolean + Dim valid As Boolean = True + + '料号 + If tb_PartNumber.Text.Length <= 0 Then + valid = False + End If + If tb_PartNumber.Text.Length > SEC_LENGTH.料号PN Then + valid = False + End If + + If valid = True Then + tb_PartNumber.BackColor = Color.White + Else + tb_PartNumber.BackColor = Color.Red + End If + + '订单号 + + '数量 + If num_Count.Value > 0 Then + num_Count.BackColor = Color.White + Else + num_Count.BackColor = Color.Red + valid = False + End If + + '仓库 + If combo_StoreName.Text.Length > 0 Then + combo_StoreName.BackColor = Color.White + Else + combo_StoreName.BackColor = Color.Red + valid = False + End If + + '库位 + If combo_StoreLoc.Text.Length > 0 Then + combo_StoreLoc.BackColor = Color.White + Else + combo_StoreLoc.BackColor = Color.Red + valid = False + End If + + Return valid + End Function + + Private Sub bt_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Save.Click + '首先检查料号信息完整性 + If CheckInputValid() = False Then + MsgBox("物料属性存在错误!请见红色背景提示") + Return + End If + + '检测料号唯一性 + Dim isExist As Boolean = False + If m_PartNumber.CheckPartNumber(tb_PartNumber.Text, isExist) = ERROR_CODE.SUCCESS Then + If isExist = False Then + tb_PartNumber.BackColor = Color.Red + MsgBox("当前料号不存在: " & tb_PartNumber.Text) + Return + End If + Else + MsgBox("访问数据库失败: 请检查网络连接或联系管理员!") + Return + End If + + + '保存物料 + Dim m_date As Date = Now + Dim result As ERROR_CODE = m_Product.AddItem(m_Product.OutStore, + tb_PartNumber.Text, + tb_OderNumber.Text, + m_date.ToShortDateString, + m_date.ToShortTimeString, + num_Count.Value, + Current_UserName, + combo_StoreName.Text, + combo_StoreLoc.Text, + tb_UseInfo.Text) + If result = ERROR_CODE.SUCCESS Then + AddLog("成功添加: " & + IIf(m_Product.OutStore, "出库", "入库") & "," & + tb_PartNumber.Text & "," & + tb_OderNumber.Text & "," & + num_Count.Value & "," & + combo_StoreName.Text & "," & + combo_StoreLoc.Text & "," & + tb_UseInfo.Text) + ElseIf result = ERROR_CODE.NORIGHT Then + MsgBox("保存失败: ""无访问权限!""") + Else + MsgBox("保存失败: 请检查网络连接或联系管理员!") + End If + End Sub + + Private Sub combo_StoreName_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles combo_StoreName.SelectedIndexChanged + If combo_StoreName.SelectedIndex >= 0 Then + 库位表名 = 库位表列表.Item(combo_StoreName.SelectedIndex) + Else + 库位表名 = "" + End If + + StoreLocUpdated() + End Sub +End Class \ No newline at end of file diff --git a/WT-DMS/form_Query.Designer.vb b/WT-DMS/form_Query.Designer.vb new file mode 100644 index 0000000..0f4011e --- /dev/null +++ b/WT-DMS/form_Query.Designer.vb @@ -0,0 +1,214 @@ + _ +Partial Class form_Query + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_Query)) + Me.grid_Result = New FlexCell.Grid() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.bt_FillIn = New System.Windows.Forms.Button() + Me.bt_Query = New System.Windows.Forms.Button() + Me.txt_SQL = New System.Windows.Forms.TextBox() + Me.Grid_Conditions = New FlexCell.Grid() + Me.Label4 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.clb_Section = New System.Windows.Forms.CheckedListBox() + Me.clb_Table = New System.Windows.Forms.CheckedListBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.lblItemCount = New System.Windows.Forms.Label() + Me.GroupBox1.SuspendLayout() + Me.SuspendLayout() + ' + 'grid_Result + ' + Me.grid_Result.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.grid_Result.CheckedImage = CType(resources.GetObject("grid_Result.CheckedImage"), System.Drawing.Bitmap) + Me.grid_Result.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.grid_Result.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.grid_Result.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.grid_Result.Location = New System.Drawing.Point(12, 284) + Me.grid_Result.MultiSelect = False + Me.grid_Result.Name = "grid_Result" + Me.grid_Result.Size = New System.Drawing.Size(764, 219) + Me.grid_Result.TabIndex = 2 + Me.grid_Result.UncheckedImage = CType(resources.GetObject("grid_Result.UncheckedImage"), System.Drawing.Bitmap) + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.bt_FillIn) + Me.GroupBox1.Controls.Add(Me.bt_Query) + Me.GroupBox1.Controls.Add(Me.txt_SQL) + Me.GroupBox1.Controls.Add(Me.Grid_Conditions) + Me.GroupBox1.Controls.Add(Me.Label4) + Me.GroupBox1.Controls.Add(Me.Label3) + Me.GroupBox1.Controls.Add(Me.Label2) + Me.GroupBox1.Controls.Add(Me.clb_Section) + Me.GroupBox1.Controls.Add(Me.clb_Table) + Me.GroupBox1.Location = New System.Drawing.Point(12, 12) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.RightToLeft = System.Windows.Forms.RightToLeft.No + Me.GroupBox1.Size = New System.Drawing.Size(765, 241) + Me.GroupBox1.TabIndex = 5 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "查询条件" + ' + 'bt_FillIn + ' + Me.bt_FillIn.Enabled = False + Me.bt_FillIn.Location = New System.Drawing.Point(324, 40) + Me.bt_FillIn.Name = "bt_FillIn" + Me.bt_FillIn.Size = New System.Drawing.Size(28, 23) + Me.bt_FillIn.TabIndex = 5 + Me.bt_FillIn.Text = ">>" + Me.bt_FillIn.UseVisualStyleBackColor = True + ' + 'bt_Query + ' + Me.bt_Query.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.bt_Query.Location = New System.Drawing.Point(672, 191) + Me.bt_Query.Name = "bt_Query" + Me.bt_Query.Size = New System.Drawing.Size(80, 41) + Me.bt_Query.TabIndex = 7 + Me.bt_Query.Text = "Query" + Me.bt_Query.UseVisualStyleBackColor = True + ' + 'txt_SQL + ' + Me.txt_SQL.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.txt_SQL.Location = New System.Drawing.Point(12, 191) + Me.txt_SQL.Multiline = True + Me.txt_SQL.Name = "txt_SQL" + Me.txt_SQL.Size = New System.Drawing.Size(654, 41) + Me.txt_SQL.TabIndex = 5 + ' + 'Grid_Conditions + ' + Me.Grid_Conditions.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid_Conditions.CheckedImage = CType(resources.GetObject("Grid_Conditions.CheckedImage"), System.Drawing.Bitmap) + Me.Grid_Conditions.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid_Conditions.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid_Conditions.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid_Conditions.Location = New System.Drawing.Point(353, 36) + Me.Grid_Conditions.MultiSelect = False + Me.Grid_Conditions.Name = "Grid_Conditions" + Me.Grid_Conditions.Size = New System.Drawing.Size(399, 149) + Me.Grid_Conditions.TabIndex = 2 + Me.Grid_Conditions.UncheckedImage = CType(resources.GetObject("Grid_Conditions.UncheckedImage"), System.Drawing.Bitmap) + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(351, 21) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(29, 12) + Me.Label4.TabIndex = 4 + Me.Label4.Text = "条件" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(222, 21) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(53, 12) + Me.Label3.TabIndex = 4 + Me.Label3.Text = "查询字段" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(66, 20) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(41, 12) + Me.Label2.TabIndex = 4 + Me.Label2.Text = "查询表" + ' + 'clb_Section + ' + Me.clb_Section.FormattingEnabled = True + Me.clb_Section.Location = New System.Drawing.Point(172, 36) + Me.clb_Section.Name = "clb_Section" + Me.clb_Section.Size = New System.Drawing.Size(150, 148) + Me.clb_Section.TabIndex = 1 + ' + 'clb_Table + ' + Me.clb_Table.FormattingEnabled = True + Me.clb_Table.Location = New System.Drawing.Point(12, 36) + Me.clb_Table.Name = "clb_Table" + Me.clb_Table.Size = New System.Drawing.Size(154, 148) + Me.clb_Table.TabIndex = 1 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 266) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(53, 12) + Me.Label1.TabIndex = 6 + Me.Label1.Text = "查询结果" + ' + 'lblItemCount + ' + Me.lblItemCount.AutoSize = True + Me.lblItemCount.Location = New System.Drawing.Point(89, 266) + Me.lblItemCount.Name = "lblItemCount" + Me.lblItemCount.Size = New System.Drawing.Size(0, 12) + Me.lblItemCount.TabIndex = 8 + ' + 'form_Query + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(788, 515) + Me.Controls.Add(Me.lblItemCount) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.grid_Result) + Me.Name = "form_Query" + Me.Text = "数据库查询" + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents grid_Result As FlexCell.Grid + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents clb_Table As System.Windows.Forms.CheckedListBox + Friend WithEvents clb_Section As System.Windows.Forms.CheckedListBox + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents bt_Query As System.Windows.Forms.Button + Friend WithEvents lblItemCount As System.Windows.Forms.Label + Friend WithEvents bt_FillIn As System.Windows.Forms.Button + Friend WithEvents txt_SQL As System.Windows.Forms.TextBox + Friend WithEvents Grid_Conditions As FlexCell.Grid +End Class diff --git a/WT-DMS/form_Query.resx b/WT-DMS/form_Query.resx new file mode 100644 index 0000000..2c3bdf1 --- /dev/null +++ b/WT-DMS/form_Query.resx @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + \ No newline at end of file diff --git a/WT-DMS/form_Query.vb b/WT-DMS/form_Query.vb new file mode 100644 index 0000000..8754824 --- /dev/null +++ b/WT-DMS/form_Query.vb @@ -0,0 +1,607 @@ +Public Class form_Query + Dim SectionNameList As New ArrayList + Dim TableNameList As New ArrayList + + Dim m_ComboDataType(COLS.max - 1) As COMBO_DATA_TYPE '存储下拉列表的类型 + Dim m_ConditionCount As Integer = 0 + Dim m_EditCol As Integer + Dim m_EditRow As Integer + + Dim QueryTable As New DataTable + + Public Class SECTION_UNIT + Public name As String + Public check As Boolean + End Class + + Enum COMBO_DATA_TYPE + table + section + End Enum + + Enum COLS + 序号 + 关联 + 字段 + 运算 + 字段_值 + max + End Enum + + Enum SECTION_TYPE + 无效 + 值 + 字段 + End Enum + + '获取W&T Database数据库中所有的表 + Private Function GetTableList() As Boolean + Dim rTable As New Data.DataTable + Dim result As Boolean = True + + TableNameList.Clear() + rTable.Columns.Clear() + rTable.Rows.Clear() + rTable.Clear() + If SQL_Query(CAccountManage.COL_RIGHTS.登录, "show tables", rTable) = True Then + If rTable.Rows.Count > 0 Then + Try + For i As Integer = 0 To rTable.Rows.Count - 1 + Dim pSectionUnit As New SECTION_UNIT + pSectionUnit.name = rTable.Rows.Item(i).Item(0) + pSectionUnit.check = False + TableNameList.Add(pSectionUnit) + Next + Catch ex As Exception + + End Try + End If + Else + result = False + End If + + Return result + End Function + + '获取所有表对应的字段名称列表 + Private Function GetSectionNameList() As Boolean + Dim rTable As New Data.DataTable + Dim result As Boolean = True + + SectionNameList.Clear() + Dim TableName As String + For Each pTableInfo As SECTION_UNIT In TableNameList + TableName = pTableInfo.name + + Dim pItemList As New ArrayList + + rTable.Columns.Clear() + rTable.Rows.Clear() + rTable.Clear() + If SQL_Query("SELECT * FROM `" & TableName & "` WHERE 0", rTable) = True Then + For i As Integer = 0 To rTable.Columns.Count - 1 + Dim pSectionUnit As New SECTION_UNIT + pSectionUnit.name = rTable.Columns.Item(i).ColumnName + pSectionUnit.check = False + pItemList.Add(pSectionUnit) + Next + + SectionNameList.Add(pItemList) + Else + result = False + End If + Next + + Return result + End Function + + Private Sub form_Query_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + If GetTableList() = False Then + MsgBox("载入数据表错误") + Me.Close() + Return + End If + If GetSectionNameList() = False Then + MsgBox("载入数据表字段错误") + Me.Close() + Return + End If + + '填充查询表 + Fill_TableList() + + '初始化Conditions列表 + Init_ConditionTable() + End Sub + + Private Sub Init_ConditionTable() + Grid_Conditions.Cols = COLS.max + Grid_Conditions.Rows = 2 + + '填充列名 + Grid_Conditions.Cell(0, 0).Text = "序号" + Grid_Conditions.Cell(0, 1).Text = "关联" + Grid_Conditions.Cell(0, 2).Text = "字段" + Grid_Conditions.Cell(0, 3).Text = "运算" + Grid_Conditions.Cell(0, 4).Text = "字段/值" + + Grid_Conditions.Cell(1, 0).Text = m_ConditionCount + 1 + Grid_Conditions.Cell(COLS.关联, 1).Locked = True + + '填入“关联”字段列表值 + Grid_Conditions.Column(COLS.关联).CellType = FlexCell.CellTypeEnum.ComboBox + Dim i As Integer + With Grid_Conditions.ComboBox(COLS.关联) + .Locked = True + .AutoComplete = True + For i = 0 To mdl_SQLConst.rel_Conditions.Length / 2 - 1 + .Items.Add(mdl_SQLConst.rel_Conditions(i, 0)) + Next + End With + + '填入“运算”字段列表值 + Grid_Conditions.Column(COLS.运算).CellType = FlexCell.CellTypeEnum.ComboBox + With Grid_Conditions.ComboBox(COLS.运算) + .Locked = True + .AutoComplete = True + For i = 0 To mdl_SQLConst.rel_Operator.Length / 2 - 1 + .Items.Add(mdl_SQLConst.rel_Operator(i, 0)) + Next + End With + + '填入“字段” + Grid_Conditions.Column(COLS.字段).Width = 80 + Grid_Conditions.Column(COLS.字段).CellType = FlexCell.CellTypeEnum.ComboBox + Fill_ComboList(Grid_Conditions.ComboBox(COLS.字段), "", 0, COMBO_DATA_TYPE.table) + + '填入"字段/值" + Grid_Conditions.Column(COLS.字段_值).Width = 80 + Grid_Conditions.Column(COLS.字段_值).CellType = FlexCell.CellTypeEnum.ComboBox + Fill_ComboList(Grid_Conditions.ComboBox(COLS.字段_值), "", 0, COMBO_DATA_TYPE.table) + End Sub + + Private Sub Fill_TableList() + clb_Table.Items.Clear() + + For Each pItem As SECTION_UNIT In TableNameList + clb_Table.Items.Add(pItem.name) + Next + End Sub + + Private Function Fill_SectionList(ByVal index As Integer) As Boolean + If index > SectionNameList.Count Then Return False + + Dim pItem As ArrayList = SectionNameList.Item(index) + clb_Section.Items.Clear() + + Dim sec_idx As Integer + For Each pSec As SECTION_UNIT In pItem + sec_idx = clb_Section.Items.Add(pSec.name) + clb_Section.SetItemChecked(sec_idx, pSec.check) + Next + + Return True + End Function + + Private Sub chklb_Table_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clb_Table.SelectedIndexChanged + If clb_Table.SelectedIndex >= 0 Then + Fill_SectionList(clb_Table.SelectedIndex) + End If + End Sub + + + Private Function GetAnySectionChecked(ByVal currIndex As Integer) As Boolean + Dim checked As Boolean = False + For i As Integer = 0 To clb_Section.Items.Count - 1 + If i <> currIndex Then + If clb_Section.GetItemChecked(i) = True Then + checked = True + Exit For + End If + End If + Next + + Return checked + End Function + + Private Sub clb_Table_ItemCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles clb_Table.ItemCheck + Dim pTable As SECTION_UNIT = TableNameList.Item(e.Index) + pTable.check = e.NewValue + SQLGenerateFromCondition() + End Sub + + Private Sub clb_Section_ItemCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles clb_Section.ItemCheck + If clb_Table.SelectedIndex >= 0 AndAlso e.Index >= 0 Then + Dim pTable As ArrayList = SectionNameList(clb_Table.SelectedIndex) + Dim pSec As SECTION_UNIT = pTable(e.Index) + pSec.check = e.NewValue + + If e.NewValue OrElse GetAnySectionChecked(e.Index) = True Then + clb_Table.SetItemChecked(clb_Table.SelectedIndex, True) + Else + clb_Table.SetItemChecked(clb_Table.SelectedIndex, False) + End If + + SQLGenerateFromCondition() + End If + End Sub + + Private Sub Grid_Conditions_LeaveCell(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.LeaveCellEventArgs) Handles Grid_Conditions.LeaveCell + SQLGenerateFromCondition() + End Sub + + '填充dgview_Condition中的“字段”下拉框列表 + Private Function Fill_ComboList(ByRef pCombo As FlexCell.ComboBox, ByVal PreTableName As String, ByVal index As Integer, ByVal type As COMBO_DATA_TYPE) As Boolean + Dim pSection As SECTION_UNIT + + pCombo.Items.Clear() + pCombo.DropDownWidth = 200 + If type = COMBO_DATA_TYPE.table Then + For i As Integer = 0 To TableNameList.Count - 1 + pSection = TableNameList(i) + If pSection.check = True Then + pCombo.Items.Add(pSection.name) + End If + Next + Else + If index > SectionNameList.Count Then Return False + + Dim pTable As ArrayList = SectionNameList.Item(index) + + For Each pSec As SECTION_UNIT In pTable + pCombo.Items.Add(PreTableName & "." & pSec.name) + Next + End If + + Return True + End Function + + Private Sub UpdateComboBoxList(ByVal row As Integer, ByVal col As Integer) + 'Dim col As Integer = e.Col + 'Dim row As Integer = e.Row + + If col < 1 OrElse row < 1 Then Return + + If col = COLS.字段 OrElse col = COLS.字段_值 Then + Try + Dim pCombo As FlexCell.ComboBox = Grid_Conditions.ComboBox(col) + + Dim strContent As String = Grid_Conditions.Cell(row, col).Text + Dim dotPos As Integer = Strings.InStr(strContent, ".") + + If dotPos > 0 Then + Dim tablename As String = Strings.Left(strContent, dotPos - 1) + Dim index As Integer = GetTableIndex(tablename) + If index >= 0 Then + If pCombo.Items.Count = 0 OrElse m_ComboDataType(col) <> COMBO_DATA_TYPE.section Then + Fill_ComboList(pCombo, tablename, index, COMBO_DATA_TYPE.section) + m_ComboDataType(col) = COMBO_DATA_TYPE.section + End If + End If + Else + If pCombo.Items.Count = 0 OrElse m_ComboDataType(col) <> COMBO_DATA_TYPE.table Then + Fill_ComboList(pCombo, "", 0, COMBO_DATA_TYPE.table) + m_ComboDataType(col) = COMBO_DATA_TYPE.table + End If + End If + + pCombo.DropDown() + Catch ex As Exception + + End Try + End If + End Sub + + + 'Private Sub Grid_Conditions_ComboClick(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.ComboClickEventArgs) Handles Grid_Conditions.ComboClick + ' '更新下拉列表 + ' UpdateComboBoxList(m_EditRow, m_EditCol) + 'End Sub + + Private Sub Grid_Conditions_CellChanging(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.CellChangingEventArgs) Handles Grid_Conditions.CellChanging + '更新下拉列表 + UpdateComboBoxList(e.Row, e.Col) + + '自动添加"序号" + If Grid_Conditions.Cell(e.Row, 0).Text <> e.Row.ToString Then + Grid_Conditions.Cell(e.Row, 0).Text = e.Row + End If + + '自动增加一行 + If Grid_Conditions.Rows = (e.Row + 1) Then + Grid_Conditions.Rows += 1 + End If + End Sub + + Private Function dgview_Condition() As Object + Throw New NotImplementedException + End Function + + 'Private Sub Grid_Conditions_EditRow(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.EditRowEventArgs) Handles Grid_Conditions.EditRow + ' If Grid_Conditions.Cell(e.Row, 0).Text <> e.Row.ToString Then + ' Grid_Conditions.Cell(e.Row, 0).Text = e.Row + ' End If + 'End Sub + + Private Sub Grid_Conditions_RowColChange(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.RowColChangeEventArgs) Handles Grid_Conditions.RowColChange + If e.Col = COLS.字段 OrElse e.Col = COLS.字段_值 Then + bt_FillIn.Enabled = True + Else + bt_FillIn.Enabled = False + End If + + m_EditCol = e.Col + m_EditRow = e.Row + + '更新下拉列表 + UpdateComboBoxList(m_EditRow, m_EditCol) + End Sub + + Private Sub bt_FillIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_FillIn.Click + Dim table_idx As Integer = clb_Table.SelectedIndex + Dim section_idx As Integer = clb_Section.SelectedIndex + + If table_idx >= 0 AndAlso section_idx >= 0 Then + Grid_Conditions.Cell(m_EditRow, m_EditCol).Text = clb_Table.Items(table_idx) & "." & clb_Section.Items(section_idx) + End If + End Sub + + '在TableNameList中查找tblName,并返回序号 + '如果未找到则返回-1 + Private Function GetTableIndex(ByVal tblName As String) As Integer + Dim index As Integer = 0 + For Each pTable As SECTION_UNIT In TableNameList + If pTable.name.ToUpper = tblName.ToUpper Then + Return index + End If + index += 1 + Next + + Return -1 + End Function + + '在SectionNameList中查找secName,并返回序号 + '如果未找到则返回-1 + Private Function GetSectionIndex(ByVal tblIndex As Integer, ByVal secName As String) As Integer + Dim pTable As ArrayList = SectionNameList.Item(tblIndex) + + Dim index As Integer = 0 + For Each pSec As SECTION_UNIT In pTable + If pSec.name.ToUpper = secName.ToUpper Then + Return index + End If + index += 1 + Next + + Return -1 + End Function + + '检查指定的行是否为空 + Private Function CheckConditionTableLineEmpty(ByVal row As Integer) As Boolean + Dim line_not_empty As Boolean = False + Dim cell_text As String + For col = 1 To Grid_Conditions.Cols - 1 + If Not (col = COLS.关联 And row = 1) Then '忽略行1的关联单元 + Try + cell_text = Grid_Conditions.Cell(row, col).Text + If cell_text.Length > 0 Then + line_not_empty = True + Exit For + End If + Catch ex As Exception + + End Try + End If + Next + Return line_not_empty + End Function + + '检查指定字符串是否为有效的字段名 + Private Function CheckTextIsValidSectionName(ByVal text As String) As SECTION_TYPE + If text.Length = 0 Then Return SECTION_TYPE.无效 + + Dim m_section_type As SECTION_TYPE = SECTION_TYPE.无效 + Dim cell_split() As String = Split(text, ".") + If cell_split.Length >= 2 Then '如果包含点,则检查是否为有效的字段名 + '查找当前表名是否存在 + Dim tbl_index As Integer = GetTableIndex(cell_split(0)) + If tbl_index >= 0 Then + If GetSectionIndex(tbl_index, cell_split(1)) >= 0 Then + m_section_type = SECTION_TYPE.字段 + End If + End If + Else + '否则为其它值,非字段名 + m_section_type = SECTION_TYPE.值 + End If + + Return m_section_type + End Function + + '对Grid_Conditions列表进行错误检查 + '并将错误的单元标记为红色 + '返回 True -- 无错误 + ' False -- 错误 + Private Function ConditionCheck() As Boolean + Dim col As Integer + Dim row As Integer + Dim col_count As Integer = Grid_Conditions.Cols + Dim row_count As Integer = Grid_Conditions.Rows + Dim cell_text As String + + Dim valid As Boolean = True + Dim line_not_empty As Boolean + Dim line_valid As Boolean + Dim cell_valid As Boolean + For row = 1 To row_count - 1 + line_valid = True + '检查当前行是否为空行 + line_not_empty = CheckConditionTableLineEmpty(row) + + '如果当前行不为空 + If line_not_empty = True Then + '检测每个行中的值是否有效 + For col = 0 To col_count - 1 + cell_valid = True + If Not (col = COLS.关联 And row = 1) Then '忽略行1的关联单元 + cell_text = Grid_Conditions.Cell(row, col).Text + '当前单元不能为空 + If cell_text.Length > 0 Then + '字段列中的表与字段需要有效 + If col = COLS.字段 OrElse col = COLS.字段_值 Then + If CheckTextIsValidSectionName(cell_text) = SECTION_TYPE.无效 Then + cell_valid = False + End If + End If + Else + cell_valid = False + End If + End If + + If cell_valid = False Then + Grid_Conditions.Cell(row, col).BackColor = Color.Red + line_valid = False + Else + Grid_Conditions.Cell(row, col).BackColor = Color.White + End If + Next + End If + + If line_valid = False Then + Grid_Conditions.Cell(row, 0).BackColor = Color.Red + valid = False + Else + Grid_Conditions.Cell(row, 0).BackColor = Grid_Conditions.Cell(0, 0).BackColor + End If + Next + + Return valid + End Function + + '依据条件设置,生成对应的SQL语句 + Private Sub SQLGenerateFromCondition() + Dim strSQL_all As String = "" + Dim strSQL_Sections As String = "" + Dim strSQL_Tables As String = "" + Dim strSQL_Conditions As String = "" + + Dim pTable As SECTION_UNIT + Dim pSecList As ArrayList + Dim pSec As SECTION_UNIT + Dim tbl_idx As Integer + Dim sec_idx As Integer + + '查询字段与表 + For tbl_idx = 0 To TableNameList.Count - 1 + pTable = TableNameList.Item(tbl_idx) + + '如果表被选中 + If pTable.check = True Then + If strSQL_Tables.Length > 0 Then + strSQL_Tables &= "," + End If + strSQL_Tables &= "`" & pTable.name & "`" + + pSecList = SectionNameList.Item(tbl_idx) + For sec_idx = 0 To pSecList.Count - 1 + pSec = pSecList.Item(sec_idx) + If pSec.check = True Then + If strSQL_Sections.Length > 0 Then + strSQL_Sections &= "," + End If + strSQL_Sections &= "`" & pTable.name & "`.`" & pSec.name & "`" + End If + Next + End If + Next + + '查询条件 + 'Dim col As Integer + Dim row As Integer + Dim col_count As Integer = Grid_Conditions.Cols + Dim row_count As Integer = Grid_Conditions.Rows + Dim cell_text As String + + Dim valid As Boolean = True + Dim line_not_empty As Boolean + Dim line_valid As Boolean + For row = 1 To row_count - 1 + line_valid = True + '检查当前行是否为空行 + line_not_empty = CheckConditionTableLineEmpty(row) + + If line_not_empty = True Then + If strSQL_Conditions.Length > 0 Then + strSQL_Conditions &= " " + End If + + '关联 + cell_text = Grid_Conditions.Cell(row, COLS.关联).Text + If cell_text.Length > 0 Then + strSQL_Conditions &= GetRelConditionSQL(cell_text) & " " + End If + + '字段 + cell_text = Grid_Conditions.Cell(row, COLS.字段).Text + strSQL_Conditions &= cell_text + + '运算符 + cell_text = Grid_Conditions.Cell(row, COLS.运算).Text + strSQL_Conditions &= " " & GetRelOperatorSQL(cell_text) & " " + + '字段/值 + cell_text = Grid_Conditions.Cell(row, COLS.字段_值).Text + If CheckTextIsValidSectionName(cell_text) = SECTION_TYPE.字段 Then + strSQL_Conditions &= " " & cell_text & " " + Else + strSQL_Conditions &= "'" & cell_text & "' " + End If + End If + Next + + '合并各个字段 + strSQL_all = "SELECT " & strSQL_Sections & " FROM " & strSQL_Tables + If strSQL_Conditions.Length > 0 Then + strSQL_all &= " WHERE " & strSQL_Conditions + End If + + txt_SQL.Text = strSQL_all + End Sub + + '通过“关联”名称获取对应的SQL表示符 + Private Function GetRelConditionSQL(ByVal disname As String) As String + For i As Integer = 0 To rel_Conditions.Length / 2 - 1 + If rel_Conditions(i, 0) = disname Then + Return rel_Conditions(i, 1) + End If + Next + Return "" + End Function + + '通过"运算符"民初获取对应的SQL表示符 + Private Function GetRelOperatorSQL(ByVal disname As String) As String + For i As Integer = 0 To rel_Operator.Length / 2 - 1 + If rel_Operator(i, 0) = disname Then + Return rel_Operator(i, 1) + End If + Next + Return "" + End Function + + Private Sub bt_Query_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Query.Click + If ConditionCheck() = False Then + MsgBox("条件列表存在错误!") + Else + QueryTable.Columns.Clear() + QueryTable.Rows.Clear() + QueryTable.Clear() + If SQL_Query(txt_SQL.Text, QueryTable) = True Then + grid_Result.SetDataBinding(QueryTable) + End If + grid_Result.Locked = True + + lblItemCount.Text = "共 " & QueryTable.Rows.Count & " 条" + End If + End Sub + +End Class \ No newline at end of file diff --git a/WT-DMS/form_QuerySim.Designer.vb b/WT-DMS/form_QuerySim.Designer.vb new file mode 100644 index 0000000..bdbb854 --- /dev/null +++ b/WT-DMS/form_QuerySim.Designer.vb @@ -0,0 +1,469 @@ + _ +Partial Class form_QuerySim + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_QuerySim)) + Me.Grid1 = New FlexCell.Grid() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.ckb_Pn_Inhaos = New System.Windows.Forms.CheckBox() + Me.ckb_PnJohao = New System.Windows.Forms.CheckBox() + Me.chkShowImage = New System.Windows.Forms.CheckBox() + Me.bt_QueryQuick = New System.Windows.Forms.Button() + Me.tb_Desc = New System.Windows.Forms.TextBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.tb_Name = New System.Windows.Forms.TextBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.tb_PartNumber = New System.Windows.Forms.TextBox() + Me.Label4 = New System.Windows.Forms.Label() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.bt_Query = New System.Windows.Forms.Button() + Me.tb_Value = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.combo_Section = New System.Windows.Forms.ComboBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.combo_Operate = New System.Windows.Forms.ComboBox() + Me.lbl_Information = New System.Windows.Forms.Label() + Me.lbl_Select = New System.Windows.Forms.Label() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.lbl_NoImage = New System.Windows.Forms.Label() + Me.lbl_ImageReading = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.bt_Del = New System.Windows.Forms.Button() + Me.btn_Avtive = New System.Windows.Forms.Button() + Me.lab_Tips = New System.Windows.Forms.Label() + Me.btn_SaveChange = New System.Windows.Forms.Button() + Me.chk_MsgForSaveItembyItem = New System.Windows.Forms.CheckBox() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.TabPage2.SuspendLayout() + Me.GroupBox2.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'Grid1 + ' + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.Cols = 10 + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.Location = New System.Drawing.Point(-1, 272) + Me.Grid1.Name = "Grid1" + Me.Grid1.Size = New System.Drawing.Size(607, 300) + Me.Grid1.TabIndex = 1 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Location = New System.Drawing.Point(-1, 1) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(352, 205) + Me.TabControl1.TabIndex = 0 + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.ckb_Pn_Inhaos) + Me.TabPage1.Controls.Add(Me.ckb_PnJohao) + Me.TabPage1.Controls.Add(Me.chkShowImage) + Me.TabPage1.Controls.Add(Me.bt_QueryQuick) + Me.TabPage1.Controls.Add(Me.tb_Desc) + Me.TabPage1.Controls.Add(Me.Label6) + Me.TabPage1.Controls.Add(Me.tb_Name) + Me.TabPage1.Controls.Add(Me.Label5) + Me.TabPage1.Controls.Add(Me.tb_PartNumber) + Me.TabPage1.Controls.Add(Me.Label4) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage1.Size = New System.Drawing.Size(344, 179) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "快速查询" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'ckb_Pn_Inhaos + ' + Me.ckb_Pn_Inhaos.AutoSize = True + Me.ckb_Pn_Inhaos.Checked = True + Me.ckb_Pn_Inhaos.CheckState = System.Windows.Forms.CheckState.Checked + Me.ckb_Pn_Inhaos.Location = New System.Drawing.Point(38, 150) + Me.ckb_Pn_Inhaos.Name = "ckb_Pn_Inhaos" + Me.ckb_Pn_Inhaos.Size = New System.Drawing.Size(96, 16) + Me.ckb_Pn_Inhaos.TabIndex = 6 + Me.ckb_Pn_Inhaos.Text = " INHAOS 料号" + Me.ckb_Pn_Inhaos.UseVisualStyleBackColor = True + ' + 'ckb_PnJohao + ' + Me.ckb_PnJohao.AutoSize = True + Me.ckb_PnJohao.Checked = True + Me.ckb_PnJohao.CheckState = System.Windows.Forms.CheckState.Checked + Me.ckb_PnJohao.Location = New System.Drawing.Point(38, 128) + Me.ckb_PnJohao.Name = "ckb_PnJohao" + Me.ckb_PnJohao.Size = New System.Drawing.Size(78, 16) + Me.ckb_PnJohao.TabIndex = 5 + Me.ckb_PnJohao.Text = " 卓豪料号" + Me.ckb_PnJohao.UseVisualStyleBackColor = True + ' + 'chkShowImage + ' + Me.chkShowImage.AutoSize = True + Me.chkShowImage.Checked = Global.WT_DMS.My.MySettings.Default.CHK_SHOWIMAGE + Me.chkShowImage.DataBindings.Add(New System.Windows.Forms.Binding("Checked", Global.WT_DMS.My.MySettings.Default, "CHK_SHOWIMAGE", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)) + Me.chkShowImage.Location = New System.Drawing.Point(216, 128) + Me.chkShowImage.Name = "chkShowImage" + Me.chkShowImage.Size = New System.Drawing.Size(108, 16) + Me.chkShowImage.TabIndex = 4 + Me.chkShowImage.Text = "选中时预览图片" + Me.chkShowImage.UseVisualStyleBackColor = True + ' + 'bt_QueryQuick + ' + Me.bt_QueryQuick.Location = New System.Drawing.Point(300, 19) + Me.bt_QueryQuick.Name = "bt_QueryQuick" + Me.bt_QueryQuick.Size = New System.Drawing.Size(38, 90) + Me.bt_QueryQuick.TabIndex = 3 + Me.bt_QueryQuick.Text = "查询" + Me.bt_QueryQuick.UseVisualStyleBackColor = True + ' + 'tb_Desc + ' + Me.tb_Desc.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_Desc.Location = New System.Drawing.Point(73, 88) + Me.tb_Desc.Name = "tb_Desc" + Me.tb_Desc.Size = New System.Drawing.Size(221, 21) + Me.tb_Desc.TabIndex = 2 + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(12, 91) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(53, 12) + Me.Label6.TabIndex = 0 + Me.Label6.Text = "规格描述" + ' + 'tb_Name + ' + Me.tb_Name.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_Name.Location = New System.Drawing.Point(73, 53) + Me.tb_Name.Name = "tb_Name" + Me.tb_Name.Size = New System.Drawing.Size(221, 21) + Me.tb_Name.TabIndex = 1 + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(12, 56) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(53, 12) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "物料名称" + ' + 'tb_PartNumber + ' + Me.tb_PartNumber.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper + Me.tb_PartNumber.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_PartNumber.Location = New System.Drawing.Point(73, 19) + Me.tb_PartNumber.MaxLength = 32 + Me.tb_PartNumber.Name = "tb_PartNumber" + Me.tb_PartNumber.Size = New System.Drawing.Size(221, 21) + Me.tb_PartNumber.TabIndex = 0 + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(36, 22) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(29, 12) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "料号" + ' + 'TabPage2 + ' + Me.TabPage2.Controls.Add(Me.bt_Query) + Me.TabPage2.Controls.Add(Me.tb_Value) + Me.TabPage2.Controls.Add(Me.Label1) + Me.TabPage2.Controls.Add(Me.combo_Section) + Me.TabPage2.Controls.Add(Me.Label3) + Me.TabPage2.Controls.Add(Me.Label2) + Me.TabPage2.Controls.Add(Me.combo_Operate) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage2.Size = New System.Drawing.Size(344, 179) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "高级查询" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'bt_Query + ' + Me.bt_Query.Location = New System.Drawing.Point(282, 12) + Me.bt_Query.Name = "bt_Query" + Me.bt_Query.Size = New System.Drawing.Size(53, 101) + Me.bt_Query.TabIndex = 3 + Me.bt_Query.Text = "查询" + Me.bt_Query.UseVisualStyleBackColor = True + ' + 'tb_Value + ' + Me.tb_Value.ImeMode = System.Windows.Forms.ImeMode.Off + Me.tb_Value.Location = New System.Drawing.Point(53, 65) + Me.tb_Value.Multiline = True + Me.tb_Value.Name = "tb_Value" + Me.tb_Value.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.tb_Value.Size = New System.Drawing.Size(214, 48) + Me.tb_Value.TabIndex = 2 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(18, 15) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(29, 12) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "字段" + ' + 'combo_Section + ' + Me.combo_Section.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_Section.FormattingEnabled = True + Me.combo_Section.Items.AddRange(New Object() {"料号PN", "物料名称", "规格描述"}) + Me.combo_Section.Location = New System.Drawing.Point(53, 12) + Me.combo_Section.Name = "combo_Section" + Me.combo_Section.Size = New System.Drawing.Size(214, 20) + Me.combo_Section.TabIndex = 0 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(30, 68) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(17, 12) + Me.Label3.TabIndex = 1 + Me.Label3.Text = "值" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(18, 41) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(29, 12) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "运算" + ' + 'combo_Operate + ' + Me.combo_Operate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.combo_Operate.FormattingEnabled = True + Me.combo_Operate.Location = New System.Drawing.Point(53, 38) + Me.combo_Operate.Name = "combo_Operate" + Me.combo_Operate.Size = New System.Drawing.Size(214, 20) + Me.combo_Operate.TabIndex = 1 + ' + 'lbl_Information + ' + Me.lbl_Information.AutoSize = True + Me.lbl_Information.ForeColor = System.Drawing.Color.Blue + Me.lbl_Information.Location = New System.Drawing.Point(3, 236) + Me.lbl_Information.Name = "lbl_Information" + Me.lbl_Information.Size = New System.Drawing.Size(0, 12) + Me.lbl_Information.TabIndex = 2 + ' + 'lbl_Select + ' + Me.lbl_Select.AutoSize = True + Me.lbl_Select.ForeColor = System.Drawing.Color.Blue + Me.lbl_Select.Location = New System.Drawing.Point(3, 254) + Me.lbl_Select.Name = "lbl_Select" + Me.lbl_Select.Size = New System.Drawing.Size(0, 12) + Me.lbl_Select.TabIndex = 2 + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.lbl_NoImage) + Me.GroupBox2.Controls.Add(Me.lbl_ImageReading) + Me.GroupBox2.Controls.Add(Me.PictureBox1) + Me.GroupBox2.Location = New System.Drawing.Point(357, 3) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(330, 263) + Me.GroupBox2.TabIndex = 12 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "预览" + ' + 'lbl_NoImage + ' + Me.lbl_NoImage.AutoSize = True + Me.lbl_NoImage.Font = New System.Drawing.Font("宋体", 12.0!) + Me.lbl_NoImage.Location = New System.Drawing.Point(142, 117) + Me.lbl_NoImage.Name = "lbl_NoImage" + Me.lbl_NoImage.Size = New System.Drawing.Size(56, 16) + Me.lbl_NoImage.TabIndex = 1 + Me.lbl_NoImage.Text = "无图片" + ' + 'lbl_ImageReading + ' + Me.lbl_ImageReading.AutoSize = True + Me.lbl_ImageReading.Font = New System.Drawing.Font("宋体", 12.0!) + Me.lbl_ImageReading.Location = New System.Drawing.Point(106, 117) + Me.lbl_ImageReading.Name = "lbl_ImageReading" + Me.lbl_ImageReading.Size = New System.Drawing.Size(128, 16) + Me.lbl_ImageReading.TabIndex = 1 + Me.lbl_ImageReading.Text = "正在读取图片..." + ' + 'PictureBox1 + ' + Me.PictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.PictureBox1.Location = New System.Drawing.Point(5, 18) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(320, 240) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'bt_Del + ' + Me.bt_Del.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.bt_Del.Location = New System.Drawing.Point(612, 272) + Me.bt_Del.Name = "bt_Del" + Me.bt_Del.Size = New System.Drawing.Size(75, 23) + Me.bt_Del.TabIndex = 13 + Me.bt_Del.Text = "删除" + Me.bt_Del.UseVisualStyleBackColor = True + ' + 'btn_Avtive + ' + Me.btn_Avtive.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btn_Avtive.BackColor = System.Drawing.Color.Red + Me.btn_Avtive.Font = New System.Drawing.Font("楷体", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.btn_Avtive.ForeColor = System.Drawing.Color.White + Me.btn_Avtive.Location = New System.Drawing.Point(612, 320) + Me.btn_Avtive.Name = "btn_Avtive" + Me.btn_Avtive.Size = New System.Drawing.Size(74, 61) + Me.btn_Avtive.TabIndex = 14 + Me.btn_Avtive.Text = "激活编辑" + Me.btn_Avtive.UseVisualStyleBackColor = False + ' + 'lab_Tips + ' + Me.lab_Tips.AutoSize = True + Me.lab_Tips.Location = New System.Drawing.Point(1, 209) + Me.lab_Tips.Name = "lab_Tips" + Me.lab_Tips.Size = New System.Drawing.Size(263, 12) + Me.lab_Tips.TabIndex = 15 + Me.lab_Tips.Text = "Tip:按""激活编辑""可以激活表格进行批量编辑!" + ' + 'btn_SaveChange + ' + Me.btn_SaveChange.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btn_SaveChange.BackColor = System.Drawing.Color.FromArgb(CType(CType(128, Byte), Integer), CType(CType(128, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.btn_SaveChange.Font = New System.Drawing.Font("楷体", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.btn_SaveChange.ForeColor = System.Drawing.Color.Red + Me.btn_SaveChange.Location = New System.Drawing.Point(612, 397) + Me.btn_SaveChange.Name = "btn_SaveChange" + Me.btn_SaveChange.Size = New System.Drawing.Size(74, 61) + Me.btn_SaveChange.TabIndex = 16 + Me.btn_SaveChange.Text = "保存修改" + Me.btn_SaveChange.UseVisualStyleBackColor = False + ' + 'chk_MsgForSaveItembyItem + ' + Me.chk_MsgForSaveItembyItem.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.chk_MsgForSaveItembyItem.AutoSize = True + Me.chk_MsgForSaveItembyItem.Location = New System.Drawing.Point(622, 467) + Me.chk_MsgForSaveItembyItem.Name = "chk_MsgForSaveItembyItem" + Me.chk_MsgForSaveItembyItem.Size = New System.Drawing.Size(72, 16) + Me.chk_MsgForSaveItembyItem.TabIndex = 17 + Me.chk_MsgForSaveItembyItem.Text = "逐项提示" + Me.chk_MsgForSaveItembyItem.UseVisualStyleBackColor = True + ' + 'form_QuerySim + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(692, 572) + Me.Controls.Add(Me.chk_MsgForSaveItembyItem) + Me.Controls.Add(Me.btn_SaveChange) + Me.Controls.Add(Me.lab_Tips) + Me.Controls.Add(Me.btn_Avtive) + Me.Controls.Add(Me.bt_Del) + Me.Controls.Add(Me.GroupBox2) + Me.Controls.Add(Me.lbl_Select) + Me.Controls.Add(Me.lbl_Information) + Me.Controls.Add(Me.TabControl1) + Me.Controls.Add(Me.Grid1) + Me.MinimumSize = New System.Drawing.Size(16, 38) + Me.Name = "form_QuerySim" + Me.Text = "料号查询" + Me.TabControl1.ResumeLayout(False) + Me.TabPage1.ResumeLayout(False) + Me.TabPage1.PerformLayout() + Me.TabPage2.ResumeLayout(False) + Me.TabPage2.PerformLayout() + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents TabControl1 As System.Windows.Forms.TabControl + Friend WithEvents TabPage1 As System.Windows.Forms.TabPage + Friend WithEvents TabPage2 As System.Windows.Forms.TabPage + Friend WithEvents bt_Query As System.Windows.Forms.Button + Friend WithEvents tb_Value As System.Windows.Forms.TextBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents combo_Section As System.Windows.Forms.ComboBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents combo_Operate As System.Windows.Forms.ComboBox + Friend WithEvents bt_QueryQuick As System.Windows.Forms.Button + Friend WithEvents tb_Desc As System.Windows.Forms.TextBox + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents tb_Name As System.Windows.Forms.TextBox + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents tb_PartNumber As System.Windows.Forms.TextBox + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents lbl_Information As System.Windows.Forms.Label + Friend WithEvents lbl_Select As System.Windows.Forms.Label + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents chkShowImage As System.Windows.Forms.CheckBox + Friend WithEvents lbl_ImageReading As System.Windows.Forms.Label + Friend WithEvents lbl_NoImage As System.Windows.Forms.Label + Friend WithEvents bt_Del As System.Windows.Forms.Button + Friend WithEvents btn_Avtive As System.Windows.Forms.Button + Friend WithEvents lab_Tips As System.Windows.Forms.Label + Friend WithEvents btn_SaveChange As System.Windows.Forms.Button + Friend WithEvents chk_MsgForSaveItembyItem As System.Windows.Forms.CheckBox + Friend WithEvents ckb_Pn_Inhaos As System.Windows.Forms.CheckBox + Friend WithEvents ckb_PnJohao As System.Windows.Forms.CheckBox +End Class diff --git a/WT-DMS/form_QuerySim.resx b/WT-DMS/form_QuerySim.resx new file mode 100644 index 0000000..0f89e9c --- /dev/null +++ b/WT-DMS/form_QuerySim.resx @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + \ No newline at end of file diff --git a/WT-DMS/form_QuerySim.vb b/WT-DMS/form_QuerySim.vb new file mode 100644 index 0000000..9b041dc --- /dev/null +++ b/WT-DMS/form_QuerySim.vb @@ -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 \ No newline at end of file diff --git a/WT-DMS/form_StoreLocManage.Designer.vb b/WT-DMS/form_StoreLocManage.Designer.vb new file mode 100644 index 0000000..1357136 --- /dev/null +++ b/WT-DMS/form_StoreLocManage.Designer.vb @@ -0,0 +1,71 @@ + _ +Partial Class form_StoreLocManage + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_StoreLocManage)) + Me.btSave = New System.Windows.Forms.Button() + Me.Grid1 = New FlexCell.Grid() + Me.SuspendLayout() + ' + 'btSave + ' + Me.btSave.Location = New System.Drawing.Point(12, 5) + Me.btSave.Name = "btSave" + Me.btSave.Size = New System.Drawing.Size(83, 22) + Me.btSave.TabIndex = 4 + Me.btSave.Text = "保存" + Me.btSave.UseVisualStyleBackColor = True + ' + 'Grid1 + ' + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.ImeMode = System.Windows.Forms.ImeMode.[On] + Me.Grid1.Location = New System.Drawing.Point(12, 33) + Me.Grid1.MultiSelect = False + Me.Grid1.Name = "Grid1" + Me.Grid1.SelectionMode = FlexCell.SelectionModeEnum.ByRow + Me.Grid1.Size = New System.Drawing.Size(531, 431) + Me.Grid1.TabIndex = 3 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'form_StoreLocManage + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(555, 476) + Me.Controls.Add(Me.btSave) + Me.Controls.Add(Me.Grid1) + Me.Name = "form_StoreLocManage" + Me.Text = "库位管理" + Me.ResumeLayout(False) + + End Sub + Friend WithEvents btSave As System.Windows.Forms.Button + Friend WithEvents Grid1 As FlexCell.Grid +End Class diff --git a/WT-DMS/form_StoreLocManage.resx b/WT-DMS/form_StoreLocManage.resx new file mode 100644 index 0000000..0f89e9c --- /dev/null +++ b/WT-DMS/form_StoreLocManage.resx @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + \ No newline at end of file diff --git a/WT-DMS/form_StoreLocManage.vb b/WT-DMS/form_StoreLocManage.vb new file mode 100644 index 0000000..4a51e01 --- /dev/null +++ b/WT-DMS/form_StoreLocManage.vb @@ -0,0 +1,59 @@ +Public Class form_StoreLocManage + Public Event StoreLocUpdated() + + Dim m_Table As New System.Data.DataTable + Dim m_库位表名 As String = "" + + Public Sub New(ByVal 库位表名 As String) + Me.InitializeComponent() + m_库位表名 = 库位表名 + End Sub + + Private Sub form_StoreLocManage_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + If CBool(Current_Rights(COL_RIGHTS.库位管理) And RIGHTS.WRITE) = False Then + btSave.Enabled = False + End If + + SetDataBinding() + End Sub + + Private Sub GetDataSet() + If Not m_Table Is Nothing Then + m_Table.Dispose() + End If + m_Table = New DataTable + 'SQL_Query("SELECT * FROM `AccountManageTable`", m_Table) + SQL_Query(COL_RIGHTS.库位管理, "SELECT * FROM `" & m_库位表名 & "`", m_Table) + End Sub + + Private Sub SetDataBinding() + GetDataSet() + + Grid1.AllowUserSort = True + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + '绑定到数据源时可以指定固定行数,但绑定后不能改变Grid.FixedRows属性的值 + 'Grid1.SetDataBinding(m_Table, "products", True, 2) + Grid1.SetDataBinding(m_Table, "", True, 1) + Grid1.Column(CStoreLocation.COLS.序号 + 1).Locked = True + End Sub + + Private Sub Grid1_BeforeUserDeleteRow(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.BeforeUserDeleteRowEventArgs) Handles Grid1.BeforeUserDeleteRow + If MsgBox("确定要删除该行数据?", MsgBoxStyle.OkCancel Or MsgBoxStyle.DefaultButton2, "删除确认") <> MsgBoxResult.Ok Then + e.Cancel = True + End If + End Sub + + Private Sub btSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSave.Click + + Grid1.EndCurrentEdit() + SQL_Update(COL_RIGHTS.库位管理, m_Table) + SetDataBinding() + + RaiseEvent StoreLocUpdated() + End Sub +End Class \ No newline at end of file diff --git a/WT-DMS/form_SupplierManage.Designer.vb b/WT-DMS/form_SupplierManage.Designer.vb new file mode 100644 index 0000000..a1a4ba3 --- /dev/null +++ b/WT-DMS/form_SupplierManage.Designer.vb @@ -0,0 +1,98 @@ + _ +Partial Class form_SupplierManage + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_SupplierManage)) + Me.Grid1 = New FlexCell.Grid() + Me.bt_Refresh = New System.Windows.Forms.Button() + Me.bt_Add = New System.Windows.Forms.Button() + Me.bt_Del = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'Grid1 + ' + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.ImeMode = System.Windows.Forms.ImeMode.[On] + Me.Grid1.Location = New System.Drawing.Point(12, 12) + Me.Grid1.MultiSelect = False + Me.Grid1.Name = "Grid1" + Me.Grid1.SelectionMode = FlexCell.SelectionModeEnum.ByRow + Me.Grid1.Size = New System.Drawing.Size(654, 352) + Me.Grid1.TabIndex = 3 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'bt_Refresh + ' + Me.bt_Refresh.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.bt_Refresh.Location = New System.Drawing.Point(673, 12) + Me.bt_Refresh.Name = "bt_Refresh" + Me.bt_Refresh.Size = New System.Drawing.Size(75, 23) + Me.bt_Refresh.TabIndex = 0 + Me.bt_Refresh.Text = "刷新" + Me.bt_Refresh.UseVisualStyleBackColor = True + ' + 'bt_Add + ' + Me.bt_Add.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.bt_Add.Location = New System.Drawing.Point(673, 67) + Me.bt_Add.Name = "bt_Add" + Me.bt_Add.Size = New System.Drawing.Size(75, 23) + Me.bt_Add.TabIndex = 1 + Me.bt_Add.Text = "添加" + Me.bt_Add.UseVisualStyleBackColor = True + ' + 'bt_Del + ' + Me.bt_Del.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.bt_Del.Location = New System.Drawing.Point(672, 96) + Me.bt_Del.Name = "bt_Del" + Me.bt_Del.Size = New System.Drawing.Size(75, 23) + Me.bt_Del.TabIndex = 2 + Me.bt_Del.Text = "删除" + Me.bt_Del.UseVisualStyleBackColor = True + ' + 'form_SupplierManage + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(760, 376) + Me.Controls.Add(Me.bt_Del) + Me.Controls.Add(Me.bt_Add) + Me.Controls.Add(Me.bt_Refresh) + Me.Controls.Add(Me.Grid1) + Me.Name = "form_SupplierManage" + Me.Text = "供应商管理" + Me.ResumeLayout(False) + + End Sub + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents bt_Refresh As System.Windows.Forms.Button + Friend WithEvents bt_Add As System.Windows.Forms.Button + Friend WithEvents bt_Del As System.Windows.Forms.Button +End Class diff --git a/WT-DMS/form_SupplierManage.resx b/WT-DMS/form_SupplierManage.resx new file mode 100644 index 0000000..0f89e9c --- /dev/null +++ b/WT-DMS/form_SupplierManage.resx @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + \ No newline at end of file diff --git a/WT-DMS/form_SupplierManage.vb b/WT-DMS/form_SupplierManage.vb new file mode 100644 index 0000000..ffba27c --- /dev/null +++ b/WT-DMS/form_SupplierManage.vb @@ -0,0 +1,82 @@ +Public Class form_SupplierManage + Dim m_Table As New System.Data.DataTable + Dim m_Supplier As New CSupplier + + Private Sub GetDataSet() + 'SQL_Query("SELECT * FROM `AccountManageTable`", m_Table) + If Not m_Table Is Nothing Then + m_Table.Dispose() + End If + m_Table = New DataTable + SQL_Query(COL_RIGHTS.供应商管理, "SELECT * FROM `" & CSupplier.cst_TABLE_NAME & "`", m_Table) + End Sub + + Private Sub SetDataBinding() + GetDataSet() + + Grid1.AllowUserSort = True + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + '绑定到数据源时可以指定固定行数,但绑定后不能改变Grid.FixedRows属性的值 + 'Grid1.SetDataBinding(m_Table, "products", True, 2) + Grid1.SetDataBinding(m_Table, "", True, 1) + + Grid1.Locked = True + End Sub + + Private Function DeleteItem(ByVal strID As String) As Boolean + Dim result As ERROR_CODE = m_Supplier.DeleteItem(strID) + If result = ERROR_CODE.SUCCESS Then + SetDataBinding() + Return True + ElseIf result = ERROR_CODE.NORIGHT Then + MsgBox("删除失败: ""无访问权限!""") + Else + MsgBox("删除失败: 请检查网络连接或联系管理员!") + End If + + Return False + End Function + + Private Sub Grid1_BeforeUserDeleteRow(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.BeforeUserDeleteRowEventArgs) Handles Grid1.BeforeUserDeleteRow + e.Cancel = True + 'If MsgBox("确定要删除该行数据?", MsgBoxStyle.OkCancel Or MsgBoxStyle.DefaultButton2, "删除确认") <> MsgBoxResult.Ok Then + ' e.Cancel = True + 'Else + ' Dim strSupplierID As String = Grid1.Cell(e.FirstRow, CSupplier.COLS.供应商ID + 1).Text + ' DeleteItem(strSupplierID) + ' SetDataBinding() + 'End If + End Sub + + Private Sub form_SupplierManage_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + If CBool(Current_Rights(COL_RIGHTS.供应商管理) And RIGHTS.WRITE) = False Then + bt_Add.Enabled = False + bt_Del.Enabled = False + End If + + SetDataBinding() + End Sub + + Private Sub bt_Refresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Refresh.Click + SetDataBinding() + End Sub + + Private Sub bt_Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Add.Click + Dim pAddDlg As New dlg_AddSupplier + pAddDlg.ShowDialog() + SetDataBinding() + End Sub + + Private Sub bt_Del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Del.Click + If Grid1.Selection.FirstRow >= 1 Then + Dim strSupplierID As String = Grid1.Cell(Grid1.Selection.FirstRow, CSupplier.COLS.供应商ID + 1).Text + DeleteItem(strSupplierID) + SetDataBinding() + End If + End Sub +End Class \ No newline at end of file diff --git a/WT-DMS/form_UserManage.Designer.vb b/WT-DMS/form_UserManage.Designer.vb new file mode 100644 index 0000000..ffd1cce --- /dev/null +++ b/WT-DMS/form_UserManage.Designer.vb @@ -0,0 +1,70 @@ + _ +Partial Class form_UserManage + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Windows 窗体设计器所必需的 + Private components As System.ComponentModel.IContainer + + '注意: 以下过程是 Windows 窗体设计器所必需的 + '可以使用 Windows 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_UserManage)) + Me.Grid1 = New FlexCell.Grid() + Me.btSave = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'Grid1 + ' + Me.Grid1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Grid1.CheckedImage = CType(resources.GetObject("Grid1.CheckedImage"), System.Drawing.Bitmap) + Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!) + Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte)) + Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Grid1.Location = New System.Drawing.Point(12, 40) + Me.Grid1.MultiSelect = False + Me.Grid1.Name = "Grid1" + Me.Grid1.SelectionMode = FlexCell.SelectionModeEnum.ByRow + Me.Grid1.Size = New System.Drawing.Size(923, 339) + Me.Grid1.TabIndex = 0 + Me.Grid1.UncheckedImage = CType(resources.GetObject("Grid1.UncheckedImage"), System.Drawing.Bitmap) + ' + 'btSave + ' + Me.btSave.Location = New System.Drawing.Point(12, 12) + Me.btSave.Name = "btSave" + Me.btSave.Size = New System.Drawing.Size(87, 22) + Me.btSave.TabIndex = 2 + Me.btSave.Text = "保存" + Me.btSave.UseVisualStyleBackColor = True + ' + 'form_UserManage + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(947, 391) + Me.Controls.Add(Me.btSave) + Me.Controls.Add(Me.Grid1) + Me.Name = "form_UserManage" + Me.Text = "用户管理" + Me.ResumeLayout(False) + + End Sub + Friend WithEvents Grid1 As FlexCell.Grid + Friend WithEvents btSave As System.Windows.Forms.Button +End Class diff --git a/WT-DMS/form_UserManage.resx b/WT-DMS/form_UserManage.resx new file mode 100644 index 0000000..843ab95 --- /dev/null +++ b/WT-DMS/form_UserManage.resx @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/w///4AAAI/wAP//gAAAjwAAD/+AAACPAPAA/4AAAI8P/wAPgAAAj///8A+A + AACP////D4AAAI//////gAAAiIiIiIiAAAA= + + + + + Qk3OAAAAAAAAAHYAAAAoAAAACwAAAAsAAAABAAQAAAAAAAAAAADEDgAAxA4AABAAAAAQAAAAAAAA/wAA + gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////4iI + iIiIgAAAj/////+AAACP/////4AAAI//////gAAAj/////+AAACP/////4AAAI//////gAAAj/////+A + AACP/////4AAAI//////gAAAiIiIiIiAAAA= + + + + 38 + + \ No newline at end of file diff --git a/WT-DMS/form_UserManage.vb b/WT-DMS/form_UserManage.vb new file mode 100644 index 0000000..521a08c --- /dev/null +++ b/WT-DMS/form_UserManage.vb @@ -0,0 +1,110 @@ +Imports MySql.Data.MySqlClient +Public Class form_UserManage + Dim m_Table As New System.Data.DataTable + + Private Sub form_UserManage_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + If CBool(Current_Rights(COL_RIGHTS.用户管理) And RIGHTS.WRITE) = False Then + btSave.Enabled = False + End If + + SetDataBinding() + End Sub + + Private Sub GetDataSet() + If Not m_Table Is Nothing Then + m_Table.Dispose() + End If + m_Table = New DataTable + + 'SQL_Query("SELECT * FROM `AccountManageTable`", m_Table) + SQL_Query(COL_RIGHTS.用户管理, "SELECT * FROM `帐号表`", m_Table) + End Sub + + Private Sub SetDataBinding() + GetDataSet() + + Grid1.AllowUserSort = True + Grid1.DisplayFocusRect = False + Grid1.ExtendLastCol = True + Grid1.DisplayRowArrow = True + Grid1.BoldFixedCell = False + Grid1.SortIndicatorStyle = FlexCell.SortIndicatorStyleEnum.Light3D + + '绑定到数据源时可以指定固定行数,但绑定后不能改变Grid.FixedRows属性的值 + 'Grid1.SetDataBinding(m_Table, "products", True, 2) + Grid1.SetDataBinding(m_Table, "", True, 2) + + Grid1.Cell(0, 0).Text = "" + Grid1.Cell(1, 0).Text = "" + Dim src_col As Integer = 0 + Dim col As Integer = 1 + For src_col = 0 To m_Table.Columns.Count - 1 + Grid1.Cell(1, col).Text = m_Table.Columns.Item(src_col).ColumnName + col += 1 + Next + Grid1.Range(0, 0, 1, 0).Merge() + Grid1.Range(0, 1, 1, 1).Merge() + Grid1.Range(0, 2, 1, 2).Merge() + Grid1.Range(0, 3, 1, 3).Merge() + Grid1.Range(0, 4, 1, 4).Merge() + Grid1.Range(0, 5, 0, 17).Merge() + + Grid1.Cell(0, 5).Text = "权限" + + Dim rights_table() As String + '权限列设定 + + '登录权限 + rights_table = {"禁止", "开启"} + col = CAccountManage.COLS.登录 + 1 + Grid1.Column(col).CellType = FlexCell.CellTypeEnum.ComboBox + Grid1.Column(col).Mask = FlexCell.MaskEnum.DefaultMask + + With Grid1.ComboBox(col) + .DataSource = rights_table + .Locked = True + .AutoComplete = True + End With + + '系统记录 + rights_table = {"禁止", "只读"} + col = CAccountManage.COLS.系统记录 + 1 + Grid1.Column(col).CellType = FlexCell.CellTypeEnum.ComboBox + Grid1.Column(col).Mask = FlexCell.MaskEnum.DefaultMask + + With Grid1.ComboBox(col) + .DataSource = rights_table + .Locked = True + .AutoComplete = True + End With + + '其它权限 + rights_table = {"禁止", "只读", "读写", "管理"} + For col = CAccountManage.COLS.用户管理 + 1 To Grid1.Cols - 1 + Grid1.Column(col).CellType = FlexCell.CellTypeEnum.ComboBox + Grid1.Column(col).Mask = FlexCell.MaskEnum.DefaultMask + + With Grid1.ComboBox(col) + .DataSource = rights_table + .Locked = True + .AutoComplete = True + End With + Next + + 'Grid1.Locked = True + End Sub + + Private Sub Grid1_BeforeUserDeleteRow(ByVal Sender As System.Object, ByVal e As FlexCell.Grid.BeforeUserDeleteRowEventArgs) Handles Grid1.BeforeUserDeleteRow + If MsgBox("确定要删除该行数据?", MsgBoxStyle.OkCancel Or MsgBoxStyle.DefaultButton2, "删除确认") <> MsgBoxResult.Ok Then + e.Cancel = True + End If + End Sub + + Private Sub btSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSave.Click + Grid1.EndCurrentEdit() + SQL_Update(COL_RIGHTS.用户管理, m_Table) + SetDataBinding() + End Sub + + +End Class \ No newline at end of file diff --git a/WT-DMS/mdl_Common.vb b/WT-DMS/mdl_Common.vb new file mode 100644 index 0000000..ccaf088 --- /dev/null +++ b/WT-DMS/mdl_Common.vb @@ -0,0 +1,95 @@ +Public Module mdl_Common + Public MainForm As Form1 = Nothing + + Public Function GetLocalIPAddress() As String + Dim IPAdress As System.Net.IPAddress + Dim HostName As String = System.Net.Dns.GetHostName '获得本机的机器名 + IPAdress = System.Net.Dns.GetHostEntry(HostName).AddressList.GetValue(0) '获得本机的IP + Return IPAdress.ToString '本机的IP + End Function + + Public Function GetIPFromNetUrl(ByVal url As String) As String + Dim objIPHostEntry As System.Net.IPHostEntry + + Try + objIPHostEntry = System.Net.Dns.GetHostEntry(url) '把http://blog.sina.com.cn/u/1459845580的域名对应的ip地址解析出来 + Return objIPHostEntry.AddressList(0).ToString + Catch ex As Exception + MessageBox.Show(ex.Message) + End Try + + Return "" + End Function + + '验证域名是否合法` + Function IsValidDomainUsingUri(domain As String) As Boolean + Try + ' 尝试将域名转换为URI + ' 添加http://前缀使URI解析器能够正确识别 + Dim uriString As String = "http://" & domain + + Dim uri As New Uri(uriString) + + ' 检查主机名是否符合域名规则 + If String.IsNullOrWhiteSpace(uri.Host) Then + Return False + End If + + ' 验证主机名是否与传入的域名匹配 + Return uri.Host.Equals(domain, StringComparison.OrdinalIgnoreCase) + Catch ex As Exception + ' 如果URI解析失败,则不是有效域名 + Return False + End Try + End Function + + '对图片进行缩放 + '将图片Image缩放到aimRect指定的区域 + Public Function ZoomImage(ByRef image As Image, ByVal aimRect As Rectangle) As Image + Dim factor As Double = aimRect.Width / image.Width + Dim factor_y As Double = aimRect.Height / image.Height + + '按照最小的缩放比确定新的矩形框 + If factor > factor_y Then + factor = factor_y + End If + + Dim newRect As New Rectangle + newRect.Width = factor * image.Width + newRect.Height = factor * image.Height + + Dim new_Image As New Bitmap(newRect.Width, newRect.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb) + Dim new_Graphic As Graphics = Graphics.FromImage(new_Image) + new_Graphic.DrawImage(image, newRect, New Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel) + Return new_Image + End Function + + '并获取数据字节 + Public Function GetBytesFromImage(ByVal image As Image, ByRef picBuffer() As Byte) As Boolean + Dim stream As New System.IO.MemoryStream(picBuffer) + image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp) + Return True + End Function + + Public Function GetImageFromBytes(ByRef picBuffer() As Byte) As Image + Dim image As Image = Nothing + Try + Dim stream As New System.IO.MemoryStream(picBuffer) + image = image.FromStream(stream) + Catch ex As Exception + End Try + + Return image + End Function + + Public Function isDoubleValue(ByVal valString As String) As Boolean + Dim m_dbl As Double = 0 + Try + m_dbl = CDbl(valString) + Return True + Catch ex As Exception + End Try + + Return False + End Function +End Module diff --git a/WT-DMS/mdl_Defs.vb b/WT-DMS/mdl_Defs.vb new file mode 100644 index 0000000..2097c69 --- /dev/null +++ b/WT-DMS/mdl_Defs.vb @@ -0,0 +1,38 @@ +Public Module mdl_Defs + '权限定义 + Public Enum RIGHTS + NONE = &H0 + READ = &H1 + WRITE = &H2 + READ_WRITE = &H3 + MANAGE = &H4 + End Enum + + '错误码定义 + Public Enum ERROR_CODE + NONE + SUCCESS + NORIGHT + ACCESS + End Enum + + '退出原因 + Public Enum QUIT_RESON + close + logout + End Enum + + '返回错误码字符串 + Public Function GetErrorCodeString(ByVal errorcode As ERROR_CODE) As String + Select Case errorcode + Case ERROR_CODE.SUCCESS + Return "" + Case ERROR_CODE.NORIGHT + Return "无访问权限!" + Case ERROR_CODE.ACCESS + Return "访问数据库失败,请检查网络连接或联系管理员!" + Case Else + Return "未知错误" + End Select + End Function +End Module diff --git a/WT-DMS/mdl_SQLAccessManage.vb b/WT-DMS/mdl_SQLAccessManage.vb new file mode 100644 index 0000000..33884b7 --- /dev/null +++ b/WT-DMS/mdl_SQLAccessManage.vb @@ -0,0 +1,118 @@ +Public Module mdl_SQLAccessManage + Public m_SQL As New CMSQL_Interface + Dim m_Log As New CLogManage + + Public Enum COL_RIGHTS + 登录 + 系统记录 + 用户管理 + 料号管理 + 原料库存管理 + 成品库存管理 + BOM管理 + 供应商管理 + ECN管理 + 公司管理 + 部门管理 + 仓库管理 + 库位管理 + 财务管理 + max + End Enum + + Public AccessTableName() As String = + { + "", + "系统记录表", + "帐号表", + "料号表", + "原料库存表", + "成品库存表", + "BOM表", + "供应商信息表", + "", + "公司信息表", + "部门信息表", + "仓库表", + "库位表", + "收支明细表" + } + + Public Current_UserName As String + Public Current_Rights(COL_RIGHTS.max - 1) As RIGHTS + + Public Function SQL_ConnectionSetting(ByVal strHostIp As String, ByVal DataBaseName As String, ByVal user As String, ByVal password As String) As Boolean + Return m_SQL.ConnectionSetting(strHostIp, DataBaseName, user, password) + End Function + + Public Function SQL_Query(ByVal RightID As RIGHTS, ByVal strQuery As String, ByRef r_Table As DataTable) As Boolean + If CBool(Current_Rights(RightID) And RIGHTS.READ) Then + Return m_SQL.Query(strQuery, r_Table) + End If + Return False + End Function + + Private Function GetUpdateLogString(ByRef tbl As DataTable) As String + Dim rString As String = "" + For row As Integer = 0 To tbl.Rows.Count - 1 + Dim rowString As String = "" + Dim tStr As String = "" + For col As Integer = 0 To tbl.Columns.Count - 1 + Try + tStr = tbl.Rows.Item(row).Item(col) + Catch ex As Exception + tStr = "" + End Try + + If rowString.Length > 0 Then + rowString &= "," + End If + rowString &= tStr + Next + + If rString.Length > 0 Then + rString &= ";" + End If + rString &= rowString + Next + + Return rString + End Function + + Public Function SQL_Update(ByVal RightID As RIGHTS, ByRef upTable As DataTable) As Boolean + If CBool(Current_Rights(RightID) And RIGHTS.WRITE) Then + If m_SQL.Update(upTable) = True Then + m_Log.AddItem(AccessTableName(RightID), "UPDATE: " & GetUpdateLogString(upTable), Current_UserName) + Return True + End If + End If + Return False + End Function + + Public Function SQL_ExeCommand(ByVal RightID As RIGHTS, ByVal strExe As String) As Boolean + If CBool(Current_Rights(RightID) And RIGHTS.WRITE) Then + If m_SQL.ExeCommand(strExe) = True Then + m_Log.AddItem(AccessTableName(RightID), "EXECUTE:" & strExe, Current_UserName) + Return True + End If + End If + Return False + End Function + + Public Function SQL_ExeCommandWithParamters(ByVal RightID As RIGHTS, ByVal strExe As String, ByRef ParamName() As String, ByRef ParamValue() As Object) As Boolean + If CBool(Current_Rights(RightID) And RIGHTS.WRITE) Then + If m_SQL.ExeCommandWithParamters(strExe, ParamName, ParamValue) = True Then + m_Log.AddItem(AccessTableName(RightID), "EXECUTE:" & strExe, Current_UserName) + Return True + End If + End If + Return False + End Function + + Public Function SQL_DataReader(ByVal RightID As RIGHTS, ByVal strSelect As String, ByRef valueTable() As Object) As Boolean + If CBool(Current_Rights(RightID) And RIGHTS.READ) Then + Return m_SQL.DataReader(strSelect, valueTable) + End If + Return False + End Function +End Module diff --git a/WT-DMS/mdl_SQLConst.vb b/WT-DMS/mdl_SQLConst.vb new file mode 100644 index 0000000..5610aa1 --- /dev/null +++ b/WT-DMS/mdl_SQLConst.vb @@ -0,0 +1,32 @@ +Public Module mdl_SQLConst + + '条件与条件间关系 + Public rel_Conditions(,) As String = + { + {"并且", "AND"}, + {"或者", "OR"}, + {"非", "NOT"} + } + + '运算符 + Public rel_Operator(,) As String = + { + {"包含", "LIKE '%", "%'", "1"}, + {"等于", "= '", "'", "0"}, + {"不等于", "!= '", "'", "0"}, + {"大于等于", ">= '", "'", "0"}, + {"大于", "> '", "'", "0"}, + {"小于等于", "<= '", "'", "0"}, + {"小于", "< '", "'", "0"}, + {"类似", "LIKE '", "'", "0"}, + {"开始于", "LIKE '", "%'", "1"}, + {"结束于", "LIKE '%", "'", "1"} + } + + Public Enum SEC_LENGTH + 料号PN = 32 + 供应商ID = 16 + 单位 = 20 + End Enum + +End Module diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/FlexCell.dll.deploy new file mode 100644 index 0000000..d3dd329 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.application new file mode 100644 index 0000000..f66af58 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + oawS6zI6U89eDljZQU/fvl6w57A= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..4fd9b0c --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.exe.config.deploy @@ -0,0 +1,223 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.exe.deploy new file mode 100644 index 0000000..5ada9cb Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.exe.manifest new file mode 100644 index 0000000..b0ef300 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_13/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + W5/TI/W4ojZ4Ul45OBfxTShhfLc= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + XfuYC/n4ylch2QFLyQFq65GB1dg= + + + + + + + + + + 5HRjLx2CElMa9C7Evzd2Zkx83Nc= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/FlexCell.dll.deploy new file mode 100644 index 0000000..d3dd329 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.application new file mode 100644 index 0000000..c28a023 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + 6EE9nmBPQJXs0Wgae/UgrqQWzrs= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..4fd9b0c --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.exe.config.deploy @@ -0,0 +1,223 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.exe.deploy new file mode 100644 index 0000000..6706e88 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.exe.manifest new file mode 100644 index 0000000..50e20b5 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_14/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + W5/TI/W4ojZ4Ul45OBfxTShhfLc= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + +x8sgxAjuUsWcsdVAb2/35TODRI= + + + + + + + + + + 5HRjLx2CElMa9C7Evzd2Zkx83Nc= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/FlexCell.dll.deploy new file mode 100644 index 0000000..d3dd329 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.application new file mode 100644 index 0000000..53157da --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + wnF4J2GkNAknV/MRB5aQ/sHcVc4= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.exe.deploy new file mode 100644 index 0000000..0bc49c6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.exe.manifest new file mode 100644 index 0000000..aa6e076 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_15/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + W5/TI/W4ojZ4Ul45OBfxTShhfLc= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + Sm4zdFARklsd5WgN14ZmDUJLajM= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/FlexCell.dll.deploy new file mode 100644 index 0000000..d3dd329 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.application new file mode 100644 index 0000000..759fa4e --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + s75rjTyf2tTODkCHg1rwio26/1I= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.exe.deploy new file mode 100644 index 0000000..4bf5f05 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.exe.manifest new file mode 100644 index 0000000..9a38339 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_16/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + W5/TI/W4ojZ4Ul45OBfxTShhfLc= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + rL+LjlXFQ1T7RrMdhVuOKsj4ZI4= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/FlexCell.dll.deploy new file mode 100644 index 0000000..d3dd329 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.application new file mode 100644 index 0000000..6926063 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + RtHKqqH7Vp43airPJ9mr1XWRm/I= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.exe.deploy new file mode 100644 index 0000000..168fce2 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.exe.manifest new file mode 100644 index 0000000..7f0e715 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_1_5_0_17/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + W5/TI/W4ojZ4Ul45OBfxTShhfLc= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + r0Z4bu0NvdHl1Q5nEnv4csbQO9A= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/FlexCell.dll.deploy new file mode 100644 index 0000000..24b4740 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.application new file mode 100644 index 0000000..3a8995a --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + jPA49HNLz7si+5nYC3j8Tq1sWnE= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.exe.deploy new file mode 100644 index 0000000..d822476 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.exe.manifest new file mode 100644 index 0000000..8ee0103 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_18/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + Rh4BD5skIu0G9BG7yz5eUoSZx2U= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + hW3Gv81TScjscRtP7vjrSfJdjOo= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/FlexCell.dll.deploy new file mode 100644 index 0000000..24b4740 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.application new file mode 100644 index 0000000..3416a4c --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + 3Sf8Vc7xsWMB/xfdA7q+0ytzZmc= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.exe.deploy new file mode 100644 index 0000000..099634f Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.exe.manifest new file mode 100644 index 0000000..0fe7b27 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_4_0_19/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + Rh4BD5skIu0G9BG7yz5eUoSZx2U= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + TJ1mawuo+KgwdSYEC6zb/moCw3A= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/FlexCell.dll.deploy new file mode 100644 index 0000000..24b4740 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.application new file mode 100644 index 0000000..35530c6 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + itXO9MllG4InXxX/+GZMrwShbs0= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.exe.deploy new file mode 100644 index 0000000..a42b225 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.exe.manifest new file mode 100644 index 0000000..2865dc7 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_5_0_0/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + Rh4BD5skIu0G9BG7yz5eUoSZx2U= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + eoC1mUYfNy0ZtVn2TQs0kNaFMT8= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/FlexCell.dll.deploy new file mode 100644 index 0000000..24b4740 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.application new file mode 100644 index 0000000..1eba70e --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + p2Mmd/yyGH6IAzmFxrtJxUjV5CQ= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.exe.deploy new file mode 100644 index 0000000..1790e38 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.exe.manifest new file mode 100644 index 0000000..bb3f070 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_6_0_1/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + Rh4BD5skIu0G9BG7yz5eUoSZx2U= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + 4/lJxTd3j+np/bdo9sqh8biknvI= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/FlexCell.dll.deploy new file mode 100644 index 0000000..d3dd329 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.application new file mode 100644 index 0000000..5a2bbd6 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + q2tp9rqiUffZlmzHqxDZSfwF8UI= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.exe.deploy new file mode 100644 index 0000000..f78061f Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.exe.manifest new file mode 100644 index 0000000..e2e671b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_2/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + W5/TI/W4ojZ4Ul45OBfxTShhfLc= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + 8GKLAVT9DoDrQ1e3gSG1ntttZdU= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/FlexCell.dll.deploy new file mode 100644 index 0000000..d3dd329 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.application new file mode 100644 index 0000000..e0be46b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + 1+Bt5TLIfoHRk8yZLApV8tz0YvA= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.exe.deploy new file mode 100644 index 0000000..a1a9584 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.exe.manifest new file mode 100644 index 0000000..18d71b0 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_8_0_3/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + W5/TI/W4ojZ4Ul45OBfxTShhfLc= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + Ap2htqrPFZUqg3Xi7638aXhaACE= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/FlexCell.dll.deploy new file mode 100644 index 0000000..edebac2 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.application new file mode 100644 index 0000000..e639926 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + BMIXooxnyeBHIR6VAnaemM/XZiw= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.exe.deploy new file mode 100644 index 0000000..5b16fe0 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.exe.manifest new file mode 100644 index 0000000..d269e09 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_2_9_0_4/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + qrhJU8h/4RIjZnoUItSqa4CjFG0= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + inPbs+JRJNXFwm5bsrU+UbHAcB4= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/CamSnapShot.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/CamSnapShot.dll.deploy new file mode 100644 index 0000000..82a8636 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/CamSnapShot.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/DirectShowLib-2005.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/DirectShowLib-2005.dll.deploy new file mode 100644 index 0000000..ba11a16 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/DirectShowLib-2005.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/FlexCell.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/FlexCell.dll.deploy new file mode 100644 index 0000000..d3dd329 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/FlexCell.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/MySql.Data.dll.deploy b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/MySql.Data.dll.deploy new file mode 100644 index 0000000..87aabe6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/MySql.Data.dll.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.application b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.application new file mode 100644 index 0000000..1eb94fc --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + OXYtPpiqYMEtITCzXbLfrMeVgLs= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.exe.config.deploy b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.exe.config.deploy new file mode 100644 index 0000000..19c3f4b --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.exe.config.deploy @@ -0,0 +1,244 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 358 + + + 499 + + + 444 + + + 444 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 730 + + + 530 + + + 0 + + + 0 + + + False + + + 30 + + + 100 + + + 200 + + + 400 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 400 + + + 800 + + + 400 + + + False + + + False + + + 400 + + + 400 + + + 0 + + + 0 + + + 100 + + + False + + + + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 150 + + + 100 + + + 100 + + + 150 + + + 200 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 100 + + + 800 + + + 400 + + + 100 + + + 50 + + + 100 + + + 100 + + + 100 + + + 50 + + + 800 + + + 400 + + + + diff --git a/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.exe.deploy b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.exe.deploy new file mode 100644 index 0000000..f84e1e6 Binary files /dev/null and b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.exe.deploy differ diff --git a/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.exe.manifest b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.exe.manifest new file mode 100644 index 0000000..9e91608 --- /dev/null +++ b/WT-DMS/publish/Application Files/WT_DMS_3_1_0_0/WT_DMS.exe.manifest @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xvPBmSHni+ZF7TE8te7ftfNR/s0= + + + + + + + + + + + + 4bKnY91sQkOWVuTlWroPNhD/N4Q= + + + + + + + + + + + + W5/TI/W4ojZ4Ul45OBfxTShhfLc= + + + + + + + + + + + + fQzv7UK7JdyYPYs8iwbmzVS4mZc= + + + + + + + + + + + + gHvd9BX5hFt+risAyYCEXb7iApY= + + + + + + + + + + IL0jO4IDKBYqfAEoRimV/73et5g= + + + + + + + + + + \ No newline at end of file diff --git a/WT-DMS/publish/WT-DMS V2.8.rar b/WT-DMS/publish/WT-DMS V2.8.rar new file mode 100644 index 0000000..05103f0 Binary files /dev/null and b/WT-DMS/publish/WT-DMS V2.8.rar differ diff --git a/WT-DMS/publish/WT_DMS.application b/WT-DMS/publish/WT_DMS.application new file mode 100644 index 0000000..1eb94fc --- /dev/null +++ b/WT-DMS/publish/WT_DMS.application @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + OXYtPpiqYMEtITCzXbLfrMeVgLs= + + + + \ No newline at end of file diff --git a/WT-DMS/publish/setup.exe b/WT-DMS/publish/setup.exe new file mode 100644 index 0000000..89cbe93 Binary files /dev/null and b/WT-DMS/publish/setup.exe differ diff --git a/WT-DMS/版本说明.txt b/WT-DMS/版本说明.txt new file mode 100644 index 0000000..8786f9b --- /dev/null +++ b/WT-DMS/版本说明.txt @@ -0,0 +1,214 @@ +V1.0 + ɻ¼ϺŹϱϵͳ¼ȹ + +V1.1 + Ϻʼ봰ͷȡͼܣʹϺ¼ʱֱӴͷȡӦϵͼ + Camʵ֣ + ȱ㣺ָ֧ͷ + +V1.2 + 1. VideoCapؼʵͷͼȡ + 2. ųȴ16ֽڸΪ32ֽ + +V1.3 + 1. ݿmyPhpAdminתRDS + 2. VideoCapؼ֧WIN7˽ȥ + +V1.4 + 1. CamSnapShotؼȡͷͼ + +V1.5 + 1. ѯУѡһѯʱʾӦͼ + +V1.6 + 1. Form-2 ϺŲѯҳ棬ѯĽбֶ֧ѡ + 2. Form-2 ϺŲѯҳ棬ѯݶѡ Form-5 Ͽѯճ + 3. Form-5 Ͽѯҳ棬ģѯܣForm-2еIJѯ + +V1.7 + 1. Form-5 Ͽѯҳ棬ӿλ + 2. һҳ棬һϺţϵijʷ͵ǰѯ + +V1.8 + 1. ̬ϱ + 2. ϱ/ɾ/޸/ѯ/PNϢѯ/ͼƬʾ + 3. ϱ㼶 + +V1.9 + 1. Form_QueryStorageҳѯбӡơ + 2. BomManageҳϱĿӡ̡ + +V2.0 + 1. Զ¼ + 2. ӡеġ¼롱ҳ湦 + 3. ıеȫǰ + 4. ӡеġѯҳ湦 + +V2.1 + 1. ܣΪֲۡͬ͡ + ֱӦͬı + Ӧ֧ϸ_ + ۡӦ֧ϸ_ + ¼Ϊ¼루¼루ۣ + ѯΪѯѯۣ + +V2.2 + +V2.3 + 1. BOM˵ӣϲѯ + + +V2.4 + 2017-2-13 Momo + 1. Ӳѯҳ޸Ĺ + 2. ֶΪʹ + 3. BOMʱԶBOMܼ + + ///////////////////////////////////////////////////////////////////////////////////////////////////////// + ݿʺš룺 + https://www.aliyun.com/?utm_medium=text&utm_source=bdbrand&utm_campaign=bdbrand&utm_content=se_32492 + ˺:tony@inhaos.com + :aly_zaqwsx_987012 + + RDSݿ + ˺:manage + :flkjgshwe_56479_87978 + + + + 2013-10-10 + admin ih_manage_123324 + MOMO ih_manage_324543 + TONY ih_manage_546732 + Chen_Shan ih_chenshan_456452 + FangPY ih_fangpy_563234 + Yake ih_yake_783424 + ZhangYin ih_zy_5632345 + WYF ih_wyf_653452 + Production ih_pdt_672343 // ڲ + Production_EX ih_pdtex_789452 // Сռ˺ + LiaoYW ih_lyw_213456 + Weistech ih_weistech_123 + LuoJiaZhen ih_ljz_546656 + LiFan ih_lf_234604 + LuoPinChao ih_lpc_546276 + YeHuier ih_yhe_768342 + LaiXinRen ih_lxr_8972523 + DenBinBin ih_dbb_124578 + WangXinYue ih_wxy_345322 + ZhengCM ih_zcm_258741 + uts_inhaos uts_123456 + + 2018-1-30 Add + JiaRenZhen JRZabcd1234 + LiuJiaoLong LJL1234abcd + + ZhangHong ih_zh_56345 +=========================================================== + UTSݿ⣺ + ݿwt_uts + ʺţwt_uts_manage + 룺A98ya9hu(*HU8hu(*HU(hu + + ݿwt_finance + ʺţwt_finance_manag + 룺w*&ffH&7G*igIT&gOI(*H + + + + ///////////////////////////////////////////////////////////////////////////////////////////////////////// + + V2.5 + 2017-2-14 Momo + 1. BOM޷ + + V2.5 + 2017-2-14 Momo + 1. ۺڡ¼롱ҳ桰ѯܻᱨ + + V2.9 + 2018-3-22 Momo + 1.Ϻŵ빦ܣϺҳ浼׿Ϻ + + V3.0 + 2018-6-23 Momo + 1.ȨδõBug + + V3.1 + 2018-6-30 Dk02Ssq + ԭϿһпλУŵǰֿ⵱ǰλĴ + + 1.ʱһηʿԭϱʱڲֿλʾʧܡ + ӳ¼ʱԭϿһпλУŵǰֿ⵱ǰλĴ + + 2.ѯ¼ʱԭ滻Ϊԭݣʾԭ滻ԭϿеĿλݡ + + 3.ѯϿʱλʾǿжϣλΪ0ʾλ + + V3.2 + 2021-2-23 Momo/QiZengBiao + + V3.3 + 2021-08-10 Momo + 1ԶϺʱѡԶǡԶѾеϺ + 2ԶϺŵIJ + 1ERPϵͳϺŵExcel + 2˳Ϊ1-Ϻ 2-Ʒ 3- 4-λ 5- + 3ExcelݸƵ + 4Զ롱 + + V3.4 + 2021-09-30 Momo + 1°ȨϢWTΪINHAOS + 2BOMҳ棬㽫ADBOMתΪʽBOM + 1ADBOM + 2ȫѡAD BOM + 3ͨƥ䣬гѡ + 4ֱѡ񼴿ɼʽBOM + V3.4.1 + 2021-11-22 Qizengbiao + 1.޸ٲѯδѯݵ쳣 + 2.Boomɾղ + 3.BoomͬϺźϲ + 4.BoomУû޸ĸ + + V3.5 + 2022-02-17 Qizengbiao + 1.ϺעͬʱΪձBOMʱԭ˳޸Ϊִвѯ + 2.ʱBOMʱضⱸһXMLļ + + V3.6 2022-05-28 MomoWen / ChenWei + 1.ԭȫʧǨƵ uts-svr2.qicp.net + ---------------------------------------------------- + ݿ⣺ + ַuts-svr2.qicp.net + ˿ڣ3307 + ݿuts_DMS + ʺţuts_DMS_Manager + 룺A98ya9hu(*HU8hu(*HU(hu + ---------------------------------------------------- + 2.ͨ봴ıṹ + 3. .NetFramwork upgrade to .net 4.8 + + V3.7 2022-12-04 MomoWen + 1.ݿǨƵ uts-data.com + ---------------------------------------------------- + ݿ⣺ + ַuts-data.com + ˿ڣ3307 + ݿinhaos_dms + ʺţinhaos_dms + 룺A98ya9hu(*HU8hu(*HU(hu + ---------------------------------------------------- + * δ޸ģѴǨ + + V3.8 2023-08-22 MomoWen + 1 V3.6, ݿ⣺uts-svr2.qicp.net + 2ݿǨƵuts-svr2 BOMֶҪ + + V3.8.1 2025-11-10 MomoWen + 1ʱ½IPַΪ 172.16.4.182 + + V3.8.2 2025-11-10 MomoWen + 1õ¼ + 2¼ʧܻ˻ƣĬIPַ 172.16.4.185 \ No newline at end of file