Imports System.Data.SqlClient Public Class Frm_01hf_finish Dim cmd As New SqlCommand Dim da As New SqlDataAdapter Dim sql As String Dim colorArray(10) As Color Dim conn As New SqlConnection Private Sub Frm_finish_Load(sender As Object, e As EventArgs) Handles MyBase.Load conn.ConnectionString = connstring conn.Open() cmd.Connection = conn sql = "SELECT HT_ChemOut.date AS 日期, HT_ChemOut.card1 AS 卡号, HT_finish_chem.type, HT_finish_chem.article FROM HT_ChemOut LEFT OUTER JOIN HT_finish_chem ON HT_ChemOut.card1 = HT_finish_chem.no WHERE (HT_ChemOut.wh = N'化料涂饰仓') GROUP BY HT_ChemOut.date, HT_ChemOut.no, HT_ChemOut.card1, HT_finish_chem.type, HT_finish_chem.article ORDER BY 日期 DESC" cmd.CommandText = sql Dim dt As New DataTable da.SelectCommand = cmd da.Fill(dt) DataGridView1.DataSource = dt DataGridView1.ReadOnly = True DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect DataGridView1.Columns(1).Width = 80 DataGridView2.RowTemplate.Height = 24 DataGridView2.RowHeadersWidth = 20 DataGridView1.RowTemplate.Height = 24 End Sub Private Sub DataGridView1_CellMouseUp(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseUp sql = "select name,qty from ht_chemout where no='" & DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells("卡号").Value & "'" cmd.CommandText = sql sql = "SELECT TOP (100) HT_ChemOut.name AS 品名, HT_Chem_Main.type1 AS 化工类别, HT_ChemOut.qty AS 数量, HT_ChemOut.no, HT_ChemOut.date, HT_ChemOut.card1 FROM HT_ChemOut LEFT OUTER JOIN HT_Chem_Main ON HT_ChemOut.name = HT_Chem_Main.sys_name WHERE (HT_ChemOut.wh = N'化料涂饰仓') AND (HT_ChemOut.card1 = '" & DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells("卡号").Value & "')" sql = "SELECT TOP (100) HT_ChemOut.name AS 品名, HT_Chem_Main.type1 AS 化工类别, HT_ChemOut.qty AS 数量, HT_ChemOut.no AS 单据编号, HT_ChemOut.date AS 领料日期, HT_ChemOut.card1 AS 卡号, (SELECT TOP (1) price FROM HT_Chem_In WHERE (name = HT_ChemOut.name) AND (date <= DATEADD(DAY, 7, HT_ChemOut.date)) ORDER BY DATEDIFF(DAY, date, HT_ChemOut.date)) AS 进货单价, (SELECT TOP (1) FORMAT(date, 'yyMMdd') AS Expr1 FROM HT_Chem_In AS HT_Chem_In_2 WHERE (name = HT_ChemOut.name) AND (date <= DATEADD(DAY, 7, HT_ChemOut.date)) ORDER BY DATEDIFF(DAY, date, HT_ChemOut.date)) AS 进货批号, (SELECT TOP (1) supplier FROM HT_Chem_In AS HT_Chem_In_1 WHERE (name = HT_ChemOut.name) AND (date <= DATEADD(DAY, 7, HT_ChemOut.date)) ORDER BY DATEDIFF(DAY, date, HT_ChemOut.date)) AS 供应商 FROM HT_ChemOut LEFT OUTER JOIN HT_Chem_Main ON HT_ChemOut.name = HT_Chem_Main.sys_name WHERE (HT_ChemOut.wh = N'化料涂饰仓') AND (HT_ChemOut.card1 = '" & DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells("卡号").Value & "')" sql = "SELECT TOP (100) HT_ChemOut.name AS 品名, HT_Chem_Main.type1 AS 化工类别, HT_ChemOut.qty AS 数量, HT_ChemOut.date AS 领料日期, HT_ChemOut.card1 AS 卡号, (SELECT TOP 1 HT_Chem_In.price FROM HT_Chem_In WHERE HT_Chem_In.name = HT_ChemOut.name AND HT_Chem_In.date <= DATEADD(DAY, 7, HT_ChemOut.date) ORDER BY DATEDIFF(DAY, HT_Chem_In.date, HT_ChemOut.date)) AS 进货单价, (SELECT TOP 1 FORMAT(HT_Chem_In.date, 'yyMMdd') -- 转换进货日期为批号格式 FROM HT_Chem_In WHERE HT_Chem_In.name = HT_ChemOut.name AND HT_Chem_In.date <= DATEADD(DAY, 7, HT_ChemOut.date) ORDER BY DATEDIFF(DAY, HT_Chem_In.date, HT_ChemOut.date)) AS 进货批号, (SELECT TOP 1 HT_Chem_In.supplier FROM HT_Chem_In WHERE HT_Chem_In.name = HT_ChemOut.name AND HT_Chem_In.date <= DATEADD(DAY, 7, HT_ChemOut.date) ORDER BY DATEDIFF(DAY, HT_Chem_In.date, HT_ChemOut.date)) AS 供应商, (SELECT TOP 1 HT_Chem_In.price FROM HT_Chem_In WHERE HT_Chem_In.name = HT_ChemOut.name AND HT_Chem_In.date <= DATEADD(DAY, 7, HT_ChemOut.date) ORDER BY DATEDIFF(DAY, HT_Chem_In.date, HT_ChemOut.date)) * HT_ChemOut.qty AS 总金额 FROM HT_ChemOut LEFT OUTER JOIN HT_Chem_Main ON HT_ChemOut.name = HT_Chem_Main.sys_name WHERE HT_ChemOut.wh = N'化料涂饰仓' AND HT_ChemOut.card1 = '" & DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells("卡号").Value & "'" cmd.CommandText = sql Dim dt As New DataTable da.SelectCommand = cmd da.Fill(dt) DataGridView2.DataSource = dt DataGridView2.Columns(0).Width = 150 sql = "SELECT date AS 日期, finish_card AS 调料卡号, card AS 流程卡号, cust AS 客户, article AS 品名, piece AS 片数, qty AS 数量 FROM HT_finish_chem_out where (finish_card='" & DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells("卡号").Value & "')" cmd.CommandText = sql Dim dt3 As New DataTable da.SelectCommand = cmd da.Fill(dt3) DataGridView3.DataSource = dt3 DataGridView3.RowTemplate.Height = 24 DataGridView2.RowTemplate.Height = 24 DataGridView1.RowTemplate.Height = 30 DataGridView3.Columns(4).Width = 150 End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click End Sub End Class