暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Frm_chem_real_stock.vb 8.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. Imports System.Data.SqlClient
  2. Imports System.Reflection
  3. Public Class Frm_chem_real_stock
  4. Dim cmd As New SqlCommand
  5. Dim da As New SqlDataAdapter
  6. Dim dt As New DataTable
  7. Dim sql As String
  8. Private Sub Frm_chem_real_stock_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  9. Dim type As Type = DGV1.GetType()
  10. Dim pi As PropertyInfo = type.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
  11. pi.SetValue(DGV1, True, Nothing)
  12. Dim conn As New SqlConnection
  13. Dim DT1 As New DataTable
  14. Dim DT2 As New DataTable
  15. Dim DT3 As New DataTable
  16. ' connstring = "Data Source=127.0.0.1;Persist Security Info=True;User ID=sa;Password=Lafayette11;Initial Catalog=maindb_hy2014"
  17. conn.ConnectionString = connstring
  18. conn.Open()
  19. cmd.Connection = conn
  20. sql = "SELECT RT_SYS_CHEM_MAIN.name AS 品名, RT_SYS_CHEM_MAIN.price AS 单价, RT_SYS_CHEM_MAIN.CLASS1 AS 分类, " &
  21. " RT_SYS_CHEM_MAIN.supplier AS 供应商, RT_SYS_CHEM_MAIN.origin AS 产地, " &
  22. " CASE WHEN SUM(RT_SYS_CHEM_OUT.WEIGHT) IS NULL THEN 0 ELSE CAST(SUM(RT_SYS_CHEM_OUT.WEIGHT) " &
  23. " AS numeric(10, 0)) END AS 用量 " &
  24. " FROM RT_SYS_CHEM_MAIN LEFT OUTER JOIN " &
  25. " RT_SYS_CHEM_OUT ON RT_SYS_CHEM_MAIN.name = RT_SYS_CHEM_OUT.NAME " &
  26. " WHERE (YEAR(RT_SYS_CHEM_OUT.DATE) = 2019) AND (MONTH(RT_SYS_CHEM_OUT.DATE) = 8) " &
  27. " GROUP BY RT_SYS_CHEM_MAIN.name, RT_SYS_CHEM_MAIN.price, RT_SYS_CHEM_MAIN.CLASS1, " &
  28. " RT_SYS_CHEM_MAIN.supplier, RT_SYS_CHEM_MAIN.origin " &
  29. " ORDER BY 品名 "
  30. sql = "SELECT name AS 品名, price AS 单价, CLASS1 AS 分类, supplier AS 供应商, origin AS 产地 FROM RT_SYS_CHEM_MAIN ORDER BY 品名"
  31. 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, 合计, 预估用量, [5] AS [5月], [6] AS [6月], [7] AS [7月] FROM
  32. (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
  33. 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) = 6) Or (MONTH(RT_SYS_CHEM_OUT.DATE) = 7) Or (MONTH(RT_SYS_CHEM_OUT.DATE) = 5) 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)
  34. AS p PIVOT ( sum(本月领料) FOR 月份 IN ([5],[6], [7])) AS q "
  35. cmd.CommandText = sql
  36. da.SelectCommand = cmd
  37. da.Fill(dt)
  38. dt.Columns.Add("期初库存")
  39. dt.Columns.Add("外购入库")
  40. dt.Columns.Add("保税入库")
  41. 'dt.Columns.Add("保税调拨")
  42. 'dt.Columns.Add("可慕调拨")
  43. dt.Columns.Add("调拨出库")
  44. dt.Columns.Add("领料")
  45. dt.Columns.Add("应存")
  46. dt.Columns.Add("损盈亏")
  47. Dim dr As SqlDataReader
  48. For x As Integer = 0 To dt.Rows.Count - 1
  49. sql = "SELECT stock1+stock2+stock3 as 合计 from rt_chem_stock_month1 where name=N'" & dt.Rows(x).Item("品名") & "'"
  50. cmd.CommandText = sql
  51. dr = cmd.ExecuteReader
  52. If dr.Read Then
  53. dt.Rows(x).Item("期初库存") = dr("合计").ToString
  54. Else
  55. dt.Rows(x).Item("期初库存") = 0
  56. End If
  57. dr.Close()
  58. sql = "select case when sum(weight) is null then 0 else cast(sum(weight) as numeric(10,0)) end as 用量 from rt_sys_chem_out where month(date)=8 and name=N'" & dt.Rows(x).Item("品名") & "'" '-----领料
  59. cmd.CommandText = sql
  60. dr = cmd.ExecuteReader
  61. If dr.Read Then
  62. dt.Rows(x).Item("领料") = dr("用量").ToString
  63. Else
  64. dt.Rows(x).Item("领料") = 0
  65. End If
  66. dr.Close()
  67. sql = "select cast(sum(weight) as numeric(10,0)) as 入库数量 from rt_chem_s_in_price where month(date)=8 and dep<> N'保税仓-R' and name=N'" & dt.Rows(x).Item("品名") & "'" '-----外购入库
  68. cmd.CommandText = sql
  69. dr = cmd.ExecuteReader
  70. If dr.Read Then
  71. dt.Rows(x).Item("外购入库") = dr("入库数量").ToString
  72. Else
  73. dt.Rows(x).Item("外购入库") = 0
  74. End If
  75. dr.Close()
  76. sql = "select cast(sum(weight) as numeric(10,0)) as 入库数量 from rt_chem_s_in_price where month(date)=8 and and dep = N'保税仓-R' and name=N'" & dt.Rows(x).Item("品名") & "'" '-----保税入库
  77. cmd.CommandText = sql
  78. dr = cmd.ExecuteReader
  79. If dr.Read Then
  80. dt.Rows(x).Item("保税入库") = dr("入库数量").ToString
  81. Else
  82. dt.Rows(x).Item("保税入库") = 0
  83. End If
  84. dr.Close()
  85. 'sql = "select cast(sum(weight) as numeric(10,0)) as 调拨数量 from rt_sys_chem_IN_L where wh_out=N'保税仓/赤湖' and month(date)=7 and name=N'" & dt.Rows(x).Item("品名") & "'" '-----保税调拨
  86. 'cmd.CommandText = sql
  87. 'dr = cmd.ExecuteReader
  88. 'If dr.Read Then
  89. ' dt.Rows(x).Item("保税调拨") = dr("调拨数量").ToString
  90. 'Else
  91. ' dt.Rows(x).Item("保税调拨") = 0
  92. 'End If
  93. 'dr.Close()
  94. 'sql = "select cast(sum(weight) as numeric(10,0)) as 调拨数量 from rt_sys_chem_IN_L where wh_out=N'外购化料仓/可慕' and month(date)=7 and name=N'" & dt.Rows(x).Item("品名") & "'" '-----可慕调拨
  95. 'cmd.CommandText = sql
  96. 'dr = cmd.ExecuteReader
  97. 'If dr.Read Then
  98. ' dt.Rows(x).Item("可慕调拨") = dr("调拨数量").ToString
  99. 'Else
  100. ' dt.Rows(x).Item("可慕调拨") = 0
  101. 'End If
  102. 'dr.Close()
  103. sql = "select cast(sum(weight) as numeric(10,0)) as 调拨数量 from rt_sys_chem_OUT_DB where month(date)=8 and name=N'" & dt.Rows(x).Item("品名") & "'" '-----调拨出库
  104. cmd.CommandText = sql
  105. dr = cmd.ExecuteReader
  106. If dr.Read Then
  107. dt.Rows(x).Item("调拨出库") = dr("调拨数量").ToString
  108. Else
  109. dt.Rows(x).Item("调拨出库") = 0
  110. End If
  111. dr.Close()
  112. 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)
  113. ' dt.Rows(x).Item("损盈亏") = Val(dt.Rows(x).Item("期未盘点").ToString) - Val(dt.Rows(x).Item("应存").ToString)
  114. Next
  115. DGV1.DataSource = dt
  116. dgv1.Columns(0).Width = 180
  117. dgv1.Columns(1).Width = 80
  118. dgv1.Columns(2).Width = 100
  119. dgv1.Columns(3).Width = 80
  120. dgv1.Columns(4).Width = 80
  121. dgv1.Columns(5).Width = 80
  122. dgv1.Columns(6).Width = 80
  123. dgv1.Columns(7).Width = 80
  124. dgv1.Columns(8).Width = 80
  125. dgv1.Columns(9).Width = 80
  126. dgv1.Columns(10).Width = 80
  127. dgv1.Columns(11).Width = 80
  128. 'DGV1.Columns(12).Width = 80
  129. 'DGV1.Columns(13).Width = 100
  130. 'DGV1.Columns(14).Width = 100
  131. 'DGV1.Columns(15).Width = 80
  132. End Sub
  133. End Class