123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- Imports System.Data.SqlClient
- Imports System.Reflection
- Public Class Frm1
- Dim cmd As New SqlCommand
- Dim da As New SqlDataAdapter
- Dim dt As New DataTable
- Dim conn As New SqlConnection
- Dim sql As String
- Private Sub Frm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
-
-
- Dim type As Type = dgv1.GetType()
- Dim pi As PropertyInfo = type.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
- pi.SetValue(dgv1, True, Nothing)
-
-
- conn.ConnectionString = connstring
- conn.Open()
-
-
-
- cmd.Connection = conn
-
-
-
- sql = "SELECT NAME as 化料名称, CLASS1 as 分类,class2 as 海关,
-
-
- supplier as 供应商,origin as 产地,price as 单价,price_usd as 美金, stock1 as 库存1, stock2 as 库存2, stock3 as 库存3, 合计, 预估用量, [10] AS [10月], [11] AS [11月], [12] AS [12月] FROM " &
- " (SELECT MONTH(RT_SYS_CHEM_OUT.DATE) AS 月份, RT_SYS_CHEM_OUT.NAME, CAST(SUM(RT_SYS_CHEM_OUT.WEIGHT) AS numeric(10, 0)) AS 本月领料, RT_SYS_CHEM_MAIN.CLASS1,RT_SYS_CHEM_MAIN.class2,CASE WHEN new_price Is NULL THEN CAST(RT_SYS_CHEM_MAIN.price AS numeric(10, 2)) ELSE CAST(new_price AS numeric(10, 2)) END AS price,price_usd, rt_chem_stock_month1.stock1, rt_chem_stock_month1.stock2, rt_chem_stock_month1.stock3, " &
- " rt_chem_stock_month1.stock1 + rt_chem_stock_month1.stock2 + rt_chem_stock_month1.stock3 AS 合计, CASE WHEN RT_RETAN_RCP_EVA.QTY Is NULL THEN 0 ELSE RT_RETAN_RCP_EVA.QTY END AS 预估用量, RT_SYS_CHEM_MAIN.supplier, RT_SYS_CHEM_MAIN.origin FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN RT_RETAN_RCP_EVA ON RT_SYS_CHEM_OUT.NAME = RT_RETAN_RCP_EVA.NAME LEFT OUTER JOIN " &
- " rt_chem_stock_month1 ON RT_SYS_CHEM_OUT.NAME = rt_chem_stock_month1.name LEFT OUTER JOIN RT_SYS_CHEM_MAIN ON RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name WHERE (MONTH(RT_SYS_CHEM_OUT.DATE) = 10) Or (MONTH(RT_SYS_CHEM_OUT.DATE) = 11) Or (MONTH(RT_SYS_CHEM_OUT.DATE) = 12 ) " &
- " GROUP BY RT_SYS_CHEM_OUT.NAME, RT_SYS_CHEM_MAIN.CLASS1,class2,price_usd, RT_SYS_CHEM_MAIN.price, RT_SYS_CHEM_MAIN.new_price, rt_chem_stock_month1.stock1, rt_chem_stock_month1.stock2, rt_chem_stock_month1.stock3, RT_RETAN_RCP_EVA.QTY, MONTH(RT_SYS_CHEM_OUT.DATE), RT_SYS_CHEM_MAIN.supplier, RT_SYS_CHEM_MAIN.origin) " &
- " AS p PIVOT ( sum(本月领料) FOR 月份 IN ([10],[11], [12])) AS q "
- cmd.CommandText = Sql
-
- da.SelectCommand = cmd
- da.Fill(dt)
- dgv1.DataSource = dt
-
-
-
-
- dt.Columns.Add("本月用量")
- dt.Columns.Add("外购入库")
- dt.Columns.Add("保税入库")
- dt.Columns.Add("调拨出库")
- dt.Columns.Add("已订货")
- dt.Columns.Add("即时库存")
- 'dt.Columns.Add("存貨(月)")
- dt.Columns.Add("前置时间")
- dt.Columns.Add("余量(月)")
-
- dt.Columns.Add("订货")
-
-
- Dim dr As SqlDataReader
-
- For x As Integer = 0 To dt.Rows.Count - 1
- Dim xx As Integer = 0
- Dim YY As Integer = 0
-
-
- sql = "SELECT sum(qty) as 合计 from rt_chem_s_in_price where dep=N'保税仓-R' and year(date)=2020 and month(date)=2 and matl_name=N'" & dt.Rows(x).Item("化料名称") & "'"
-
- cmd.CommandText = sql
- dr = cmd.ExecuteReader
- If dr.Read Then
- dt.Rows(x).Item("保税入库") = dr("合计").ToString
- Else
- dt.Rows(x).Item("保税入库") = 0
- End If
- dr.Close()
-
- sql = "SELECT sum(qty) as 合计 from rt_chem_in_price where (dep is null or dep<>N'保税仓-R') and year(date)=2020 and month(date)=2 and name=N'" & dt.Rows(x).Item("化料名称") & "'"
-
- cmd.CommandText = sql
- dr = cmd.ExecuteReader
- If dr.Read Then
- dt.Rows(x).Item("外购入库") = dr("合计").ToString
- Else
- dt.Rows(x).Item("外购入库") = 0
- End If
- dr.Close()
-
-
- sql = "SELECT sum(qty) as 合计 from rt_chem_container where name=N'" & dt.Rows(x).Item("化料名称") & "' and received is null"
-
- cmd.CommandText = sql
- dr = cmd.ExecuteReader
- If dr.Read Then
- dt.Rows(x).Item("已订货") = dr("合计").ToString
- Else
- dt.Rows(x).Item("已订货") = 0
- End If
- dr.Close()
-
-
-
- sql = "SELECT cast(sum(weight) as numeric(10,0)) as 合计 from rt_sys_chem_out where name=N'" & dt.Rows(x).Item("化料名称") & "' and year(date)=2020 and month(date)=2"
-
- cmd.CommandText = sql
- dr = cmd.ExecuteReader
- If dr.Read Then
- dt.Rows(x).Item("本月用量") = dr("合计").ToString
- Else
- dt.Rows(x).Item("本月用量") = 0
- End If
- dr.Close()
-
-
-
-
-
-
- dt.Rows(x).Item("即时库存") = Val(dt.Rows(x).Item("合计").ToString) + Val(dt.Rows(x).Item("外购入库").ToString) + Val(dt.Rows(x).Item("保税入库").ToString) - Val(dt.Rows(x).Item("本月用量").ToString) - Val(dt.Rows(x).Item("调拨出库").ToString)
-
-
-
-
- 'Select Case dt.Rows(x).Item("产地").ToString
-
- ' Case "台湾", "泰国", "新加坡"
- ' dt.Rows(x).Item("前置时间") = 1
-
- ' If dt.Rows(x).Item("预估用量").ToString = "" Then
- ' xx = 0
- ' Else
- ' xx = dt.Rows(x).Item("预估用量")
- ' End If
-
- ' If dt.Rows(x).Item("即时库存").ToString = "" Then
- ' YY = 0
- ' Else
- ' YY = dt.Rows(x).Item("即时库存")
- ' End If
-
- ' dt.Rows(x).Item("订货") = YY - xx * dt.Rows(x).Item("前置时间")
- ' If xx <> 0 Then dt.Rows(x).Item("余量(月)") = Math.Round(YY / xx, 1)
-
- ' Case "美国", "荷兰", "西班牙", "德国", "义大利"
- ' dt.Rows(x).Item("前置时间") = 3
- ' dt.Rows(x).Item("订货") = 1
-
- ' If dt.Rows(x).Item("预估用量").ToString = "" Then
- ' xx = 0
- ' Else
- ' xx = dt.Rows(x).Item("预估用量")
- ' End If
-
- ' If dt.Rows(x).Item("即时库存").ToString = "" Then
- ' YY = 0
- ' Else
- ' YY = dt.Rows(x).Item("即时库存")
- ' End If
-
- ' dt.Rows(x).Item("订货") = YY - xx * dt.Rows(x).Item("前置时间")
- ' If xx <> 0 Then dt.Rows(x).Item("余量(月)") = Math.Round(YY / xx, 1)
-
-
- ' Case "山东", "上海", "厦门"
- ' dt.Rows(x).Item("前置时间") = 0.5
- ' dt.Rows(x).Item("订货") = 1
-
- ' If dt.Rows(x).Item("预估用量").ToString = "" Then
- ' xx = 0
- ' Else
- ' xx = dt.Rows(x).Item("预估用量")
- ' End If
-
- ' If dt.Rows(x).Item("即时库存").ToString = "" Then
- ' YY = 0
- ' Else
- ' YY = dt.Rows(x).Item("即时库存")
- ' End If
-
- ' dt.Rows(x).Item("订货") = YY - xx * dt.Rows(x).Item("前置时间")
- ' If xx <> 0 Then dt.Rows(x).Item("余量(月)") = Math.Round(YY / xx, 1)
- 'End Select
-
-
-
-
-
- Next x
-
-
-
-
- dgv1.Columns(0).Width = 220
- dgv1.Columns(1).Width = 120
- dgv1.Columns(2).Width = 90
- dgv1.Columns(3).Width = 80
- dgv1.Columns(4).Width = 70
- dgv1.Columns(5).Width = 80
- dgv1.Columns(6).Width = 80
- dgv1.Columns(7).Width = 80
-
- dgv1.Columns(8).Width = 80
- dgv1.Columns(9).Width = 80
- dgv1.Columns(10).Width = 70
- dgv1.Columns(11).Width = 100
- dgv1.Columns(12).Width = 60
- dgv1.Columns(13).Width = 60
- dgv1.Columns(14).Width = 60
- dgv1.Columns(15).Width = 100
- dgv1.Columns(16).Width = 100
- dgv1.Columns(17).Width = 100
- dgv1.Columns(18).Width = 100
-
-
- End Sub
- End Class
|