Ingen beskrivning
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_month.vb 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. Imports System.Data.SqlClient
  2. Imports System.Reflection
  3. Public Class Frm_Chem_month
  4. Dim cmd As New SqlCommand
  5. Dim da As New SqlDataAdapter
  6. Dim dt As New DataTable
  7. Dim sql As String
  8. Dim conn As New SqlConnection
  9. Dim g_period As Date
  10. Dim g_accounted As Boolean
  11. Dim period As Integer
  12. Private Sub FrmChem_month_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  13. DGV1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  14. Dim type As Type = DGV1.GetType()
  15. Dim pi As PropertyInfo = type.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
  16. pi.SetValue(DGV1, True, Nothing)
  17. dtp1.Format = System.Windows.Forms.DateTimePickerFormat.Custom
  18. dtp2.Format = System.Windows.Forms.DateTimePickerFormat.Custom
  19. dtp1.CustomFormat = "yyyy/MM"
  20. dtp2.CustomFormat = "yyyy/MM"
  21. Dim DT1 As New DataTable
  22. Dim DT2 As New DataTable
  23. Dim DT3 As New DataTable
  24. ' connstring = "Data Source=127.0.0.1;Persist Security Info=True;User ID=sa;Password=Lafayette11;Initial Catalog=maindb_hy2014"
  25. conn.ConnectionString = connstring
  26. conn.Open()
  27. cmd.Connection = conn
  28. sql = "select period from rt_chem_accounting where accounted=1 order by date desc"
  29. cmd.CommandText = sql
  30. g_period = cmd.ExecuteScalar
  31. sql = "select accounted from rt_chem_accounting order by date desc"
  32. cmd.CommandText = sql
  33. g_accounted = cmd.ExecuteScalar
  34. If Month(Now) - Month(g_period) = 1 And g_accounted = False Then
  35. period = 1 '----跨月未结
  36. ElseIf Month(Now) - Month(g_period) = 1 And g_accounted = True Then
  37. period = 2 '----跨月已结
  38. End If
  39. DGV1.RowsDefaultCellStyle.BackColor = Color.Ivory
  40. DGV1.AlternatingRowsDefaultCellStyle.BackColor = Color.Azure
  41. sql = "SELECT date as 日期, name as 品名, stock1 as 仓库1, stock2 as 仓库2, stock3 as 仓库3, stock1+stock2+stock3 as 合计 from rt_chem_stock_month1"
  42. sql = "select date as 日期,name as 品名,price as 单价, stock1 as 仓库1, stock2 as 仓库2, stock3 as 仓库3, stock1+stock2+stock3 as 合计 from rt_sys_chem_main "
  43. 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 (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) = 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)
  44. AS p PIVOT ( sum(本月领料) FOR 月份 IN ([5],[6], [7])) AS q "
  45. 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, 合计 FROM
  46. (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
  47. 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) "
  48. sql = "SELECT NAME AS 化料名称, CLASS1 AS 分类, CLASS2 AS 海关, supplier AS 供应商, origin AS 产地, price AS 单价, " &
  49. " price_usd AS 美金, stock1 AS 库存1, stock2 AS 库存2, stock3 AS 库存3, 合计, 本月领料 " &
  50. " FROM (SELECT MONTH(RT_SYS_CHEM_OUT.DATE) AS 月份, RT_SYS_CHEM_OUT.NAME, " &
  51. " CAST(SUM(RT_SYS_CHEM_OUT.WEIGHT) AS numeric(10, 0)) AS 本月领料, " &
  52. " RT_SYS_CHEM_MAIN.CLASS1, RT_SYS_CHEM_MAIN.CLASS2, CASE WHEN new_price IS NULL " &
  53. " THEN CAST(RT_SYS_CHEM_MAIN.price AS numeric(10, 2)) ELSE CAST(new_price AS numeric(10, 2)) " &
  54. " END AS price, RT_SYS_CHEM_MAIN.price_usd, RT_CHEM_STOCK_MONTH1.stock1, " &
  55. " RT_CHEM_STOCK_MONTH1.stock2, RT_CHEM_STOCK_MONTH1.stock3, " &
  56. " RT_CHEM_STOCK_MONTH1.stock1 + RT_CHEM_STOCK_MONTH1.stock2 + RT_CHEM_STOCK_MONTH1.stock3 " &
  57. " AS 合计, CASE WHEN RT_RETAN_RCP_EVA.QTY IS NULL " &
  58. " THEN 0 ELSE RT_RETAN_RCP_EVA.QTY END AS 预估用量, RT_SYS_CHEM_MAIN.supplier, " &
  59. " RT_SYS_CHEM_MAIN.origin " &
  60. " FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN " &
  61. " RT_RETAN_RCP_EVA ON RT_SYS_CHEM_OUT.NAME = RT_RETAN_RCP_EVA.NAME LEFT OUTER JOIN " &
  62. " RT_CHEM_STOCK_MONTH1 ON " &
  63. " RT_SYS_CHEM_OUT.NAME = RT_CHEM_STOCK_MONTH1.name LEFT OUTER JOIN " &
  64. " RT_SYS_CHEM_MAIN ON RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name " &
  65. " WHERE (year(RT_SYS_CHEM_OUT.DATE) = 2020 and MONTH(RT_SYS_CHEM_OUT.DATE) = 2) GROUP BY RT_SYS_CHEM_OUT.NAME, RT_SYS_CHEM_MAIN.CLASS1, RT_SYS_CHEM_MAIN.CLASS2, " &
  66. " RT_SYS_CHEM_MAIN.price_usd, RT_SYS_CHEM_MAIN.price, RT_SYS_CHEM_MAIN.new_price, " &
  67. " RT_CHEM_STOCK_MONTH1.stock1, RT_CHEM_STOCK_MONTH1.stock2, " &
  68. " RT_CHEM_STOCK_MONTH1.stock3, RT_RETAN_RCP_EVA.QTY, MONTH(RT_SYS_CHEM_OUT.DATE), " &
  69. " RT_SYS_CHEM_MAIN.supplier, RT_SYS_CHEM_MAIN.origin) AS derivedtbl_1 "
  70. End Sub
  71. Private Sub dgv_doublebuffer()
  72. ' Dim dgvType As Type
  73. ' Dim ppInfo As PropertyInfo
  74. ' Dim b As Boolean
  75. ' dgvType = DGV1.GetType()
  76. ' ppInfo = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance Or BindingFlags.NonPublic)
  77. ' b = True
  78. ' ppInfo.SetValue(dgvAnalog, b, Nothing)
  79. '---------------------
  80. '作者: dellric
  81. '来源: CSDN
  82. '原文: https : //blog.csdn.net/dellric/article/details/83272529
  83. '版权声明: 本文为博主原创文章, 转载请附上博文链接!
  84. End Sub
  85. Private Sub DGV1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DGV1.CellContentClick
  86. End Sub
  87. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  88. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  89. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  90. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  91. Dim xlrange As Microsoft.Office.Interop.Excel.Range
  92. xlApp = CreateObject("Excel.Application")
  93. xlBook = xlApp.Workbooks.Add
  94. 'xlApp.DisplayAlerts = False
  95. xlApp.Visible = True
  96. xlBook.Activate()
  97. xlBook.Parent.Windows(1).Visible = True
  98. xlSheet = xlBook.Worksheets(1)
  99. xlSheet.Activate()
  100. 'xlrange = "b2:b2"
  101. xlSheet.Cells(3, 3).Select()
  102. DGV1.SelectAll()
  103. DGV1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  104. DGV1.RowHeadersVisible = False
  105. Clipboard.SetDataObject(DGV1.GetClipboardContent())
  106. ' xlSheet.PasteSpecial(Format:="文本", Link:=False, DisplayAsIcon:=False)
  107. ' xlSheet.PasteSpecial(Format:="unicode 文字", Link:=False, DisplayAsIcon:=False)
  108. xlSheet.Paste()
  109. 'xlSheet.PasteSpecial(Paste:=Microsoft.Office.Interop.Excel.XlPasteType.xlPasteValues, SkipBlanks:=False, Transpose:=False)
  110. xlSheet = Nothing
  111. xlBook = Nothing
  112. xlApp = Nothing
  113. 'sql = "delete from rt_chem_stock_month2 where date='2020/2/29'"
  114. 'cmd.CommandText = sql
  115. 'cmd.ExecuteNonQuery()
  116. 'For x As Integer = 0 To DGV1.Rows.Count - 1
  117. ' sql = "insert into rt_chem_stock_month2 (date,stock1,name,stock2,stock3) values ('2020/2/29','" & DGV1.Rows(x).Cells("应存").Value & "',N'" & DGV1.Rows(x).Cells("化料名称").Value & "','0','0')"
  118. ' cmd.CommandText = sql
  119. ' cmd.ExecuteNonQuery()
  120. 'Next
  121. 'MsgBox("")
  122. End Sub
  123. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  124. For x As Integer = 0 To dt.Rows.Count - 1
  125. If dt.Rows(x).Item("应存") <> 0 Then
  126. sql = "insert into rt_chem_stock_month2 (date,name,stock1,stock2,stock3) values('2022/2/28',N'" & dt.Rows(x).Item("化料名称") & "','" & dt.Rows(x).Item("应存") & "','0','0')"
  127. cmd.CommandText = sql
  128. cmd.ExecuteScalar()
  129. End If
  130. Next
  131. MsgBox("")
  132. End Sub
  133. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click '-------核算
  134. dt = New DataTable
  135. sql = "SELECT 供应商, 化料名称, 化工分类, 部门, SUM(期初合计) AS 期初合计 from (SELECT RT_SYS_CHEM_MAIN.supplier AS 供应商, RT_SYS_CHEM_MAIN.name AS 化料名称, RT_SYS_CHEM_MAIN.CLASS1 AS 化工分类, CASE WHEN dep IS NULL THEN N'水场' ELSE dep END AS 部门, CAST(RT_CHEM_STOCK_MONTH2.stock1 + RT_CHEM_STOCK_MONTH2.stock2 + RT_CHEM_STOCK_MONTH2.stock3 AS NUMERIC(10, 0)) AS 期初合计 FROM RT_SYS_CHEM_MAIN INNER JOIN RT_CHEM_STOCK_MONTH2 ON RT_SYS_CHEM_MAIN.name = RT_CHEM_STOCK_MONTH2.name WHERE (YEAR(RT_CHEM_STOCK_MONTH2.date) = '" & Year(dtp1.Value) & "') AND (MONTH(RT_CHEM_STOCK_MONTH2.date) = '" & Month(dtp1.Value) & "')) AS p GROUP BY 供应商, 化料名称, 化工分类, 部门 order by 化料名称"
  136. cmd.CommandText = sql
  137. da.SelectCommand = cmd
  138. da.Fill(dt)
  139. 'dt.Columns.Add("合计")1
  140. dt.Columns.Add("批次号")
  141. dt.Columns.Add("本月领料")
  142. dt.Columns.Add("外购入库")
  143. dt.Columns.Add("保税入库")
  144. 'dt.Columns.Add("调拨入库")
  145. 'dt.Columns.Add("可慕调拨")
  146. 'dt.Columns.Add("调拨出库")
  147. dt.Columns.Add("期末盘点")
  148. dt.Columns.Add("应存")
  149. dt.Columns.Add("损盈亏")
  150. dt.Columns.Add("MSDS")
  151. dt.Columns.Add("成份及CAS")
  152. dt.Columns.Add("有毒物质")
  153. dt.Columns.Add("注意危险")
  154. dt.Columns.Add("腐蚀性物质")
  155. dt.Columns.Add("爆炸物")
  156. dt.Columns.Add("健康危害")
  157. dt.Columns.Add("水生生物毒性")
  158. dt.Columns.Add("压力气体")
  159. dt.Columns.Add("氧化性物质")
  160. dt.Columns.Add("易燃物")
  161. Dim dr As SqlDataReader
  162. For x As Integer = 0 To dt.Rows.Count - 1
  163. 'sql = "select DEP from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  164. 'cmd.CommandText = sql
  165. 'If cmd.ExecuteScalar Is Nothing Then
  166. ' dt.Rows(x).Item("使用部门") = ""
  167. 'Else
  168. ' dt.Rows(x).Item("使用部门") = cmd.ExecuteScalar
  169. 'End If
  170. 'sql = "select CLASS from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  171. 'cmd.CommandText = sql
  172. 'If cmd.ExecuteScalar Is Nothing Then
  173. ' dt.Rows(x).Item("分类") = ""
  174. 'Else
  175. ' dt.Rows(x).Item("分类") = cmd.ExecuteScalar
  176. 'End If
  177. sql = "select MSDS from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  178. cmd.CommandText = sql
  179. If cmd.ExecuteScalar Is Nothing Then
  180. dt.Rows(x).Item("MSDS") = ""
  181. Else
  182. dt.Rows(x).Item("MSDS") = cmd.ExecuteScalar
  183. End If
  184. sql = "select contents from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  185. cmd.CommandText = sql
  186. If cmd.ExecuteScalar Is Nothing Then
  187. dt.Rows(x).Item("成份及CAS") = ""
  188. Else
  189. dt.Rows(x).Item("成份及CAS") = cmd.ExecuteScalar
  190. End If
  191. sql = "select D1 from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  192. cmd.CommandText = sql
  193. If cmd.ExecuteScalar Is Nothing Then
  194. dt.Rows(x).Item("有毒物质") = ""
  195. Else
  196. dt.Rows(x).Item("有毒物质") = cmd.ExecuteScalar
  197. End If
  198. sql = "select D2 from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  199. cmd.CommandText = sql
  200. If cmd.ExecuteScalar Is Nothing Then
  201. dt.Rows(x).Item("注意危险") = ""
  202. Else
  203. dt.Rows(x).Item("注意危险") = cmd.ExecuteScalar
  204. End If
  205. sql = "select D3 from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  206. cmd.CommandText = sql
  207. If cmd.ExecuteScalar Is Nothing Then
  208. dt.Rows(x).Item("腐蚀性物质") = ""
  209. Else
  210. dt.Rows(x).Item("腐蚀性物质") = cmd.ExecuteScalar
  211. End If
  212. sql = "select D4 from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  213. cmd.CommandText = sql
  214. If cmd.ExecuteScalar Is Nothing Then
  215. dt.Rows(x).Item("爆炸物") = ""
  216. Else
  217. dt.Rows(x).Item("爆炸物") = cmd.ExecuteScalar
  218. End If
  219. sql = "select D5 from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  220. cmd.CommandText = sql
  221. If cmd.ExecuteScalar Is Nothing Then
  222. dt.Rows(x).Item("健康危害") = ""
  223. Else
  224. dt.Rows(x).Item("健康危害") = cmd.ExecuteScalar
  225. End If
  226. sql = "select D6 from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  227. cmd.CommandText = sql
  228. If cmd.ExecuteScalar Is Nothing Then
  229. dt.Rows(x).Item("水生生物毒性") = ""
  230. Else
  231. dt.Rows(x).Item("水生生物毒性") = cmd.ExecuteScalar
  232. End If
  233. sql = "select D7 from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  234. cmd.CommandText = sql
  235. If cmd.ExecuteScalar Is Nothing Then
  236. dt.Rows(x).Item("压力气体") = ""
  237. Else
  238. dt.Rows(x).Item("压力气体") = cmd.ExecuteScalar
  239. End If
  240. sql = "select D8 from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  241. cmd.CommandText = sql
  242. If cmd.ExecuteScalar Is Nothing Then
  243. dt.Rows(x).Item("氧化性物质") = ""
  244. Else
  245. dt.Rows(x).Item("氧化性物质") = cmd.ExecuteScalar
  246. End If
  247. sql = "select D9 from RT_CERT_CHEM where SYS_name=N'" & dt.Rows(x).Item("化料名称") & "' "
  248. cmd.CommandText = sql
  249. If cmd.ExecuteScalar Is Nothing Then
  250. dt.Rows(x).Item("易燃物") = ""
  251. Else
  252. dt.Rows(x).Item("易燃物") = cmd.ExecuteScalar
  253. End If
  254. ' sql = "SELECT date as 日期, name as 品名, stock1 as 仓库1, stock2 as 仓库2, stock3 as 仓库3, stock1+stock2+stock3 as 合计 from rt_chem_stock_month2 where MONTH(DATE)=7 AND name=N'" & dt.Rows(x).Item("化料名称") & "'"
  255. 'sql = "SELECT CAST(SUM(Stock1+stock2+stock3) AS NUMERIC(10,0)) as 合计 from rt_chem_stock_month2 where year(date)='" & Year(dtp1.Value) & "' and MONTH(DATE)='" & Month(dtp1.Value) & "' AND name =N'" & dt.Rows(x).Item("化料名称") & "' GROUP BY NAME"
  256. 'cmd.CommandText = sql
  257. 'If cmd.ExecuteScalar Is Nothing Then
  258. ' dt.Rows(x).Item("合计") = 0
  259. 'Else
  260. ' dt.Rows(x).Item("合计") = cmd.ExecuteScalar
  261. 'End If
  262. Dim my_lot As String = ""
  263. Dim my_lot1 As String = ""
  264. sql = "select top(1) CONVERT(varchar(100), date, 12) from RT_CHEM_S_IN_PRICE where matl_name=N'" & dt.Rows(x).Item("化料名称") & "' and DATE<'" & String.Format("{0:yyyy/MM/dd}", dtp2.Value) & "' order by date desc"
  265. cmd.CommandText = sql
  266. my_lot = cmd.ExecuteScalar
  267. sql = "select top(1) CONVERT(varchar(100), date, 12) from RT_CHEM_IN_PRICE where name=N'" & dt.Rows(x).Item("化料名称") & "' and DATE<'" & String.Format("{0:yyyy/MM/dd}", dtp2.Value) & "' order by date desc"
  268. cmd.CommandText = sql
  269. my_lot1 = cmd.ExecuteScalar
  270. If my_lot = "" Then
  271. If my_lot1 = "" Then
  272. Else
  273. dt.Rows(x).Item("批次号") = "RT" & my_lot1
  274. End If
  275. Else
  276. dt.Rows(x).Item("批次号") = "RT" & my_lot
  277. End If
  278. sql = "SELECT CAST(SUM(Stock1+stock2+stock3) AS NUMERIC(10,0)) as 合计 from rt_chem_stock_month2 where year(date)='" & Year(dtp2.Value) & "' and MONTH(DATE)='" & Month(dtp2.Value) & "' AND name = N'" & RTrim(LTrim(dt.Rows(x).Item("化料名称"))) & "' GROUP BY NAME"
  279. cmd.CommandText = sql
  280. If cmd.ExecuteScalar Is Nothing Then
  281. dt.Rows(x).Item("期末盘点") = 0
  282. Else
  283. dt.Rows(x).Item("期末盘点") = cmd.ExecuteScalar
  284. End If
  285. sql = "select cast(sum(weight) as numeric(10,0)) as 本月领料 from rt_sys_chem_out where year(date)='" & Year(dtp2.Value) & "' and MONTH(DATE)='" & Month(dtp2.Value) & "' and name=N'" & dt.Rows(x).Item("化料名称") & "'"
  286. '-----本月领料
  287. cmd.CommandText = sql
  288. dr = cmd.ExecuteReader
  289. If dr.Read Then
  290. dt.Rows(x).Item("本月领料") = dr("本月领料").ToString
  291. Else
  292. dt.Rows(x).Item("本月领料") = 0
  293. End If
  294. dr.Close()
  295. sql = "select cast(sum(qty) as numeric(10,0)) as 入库数量 from rt_chem_in_price where year(date)='" & Year(dtp2.Value) & "' and MONTH(DATE)='" & Month(dtp2.Value) & "' and name=N'" & dt.Rows(x).Item("化料名称") & "' and (dep is null or dep<>N'保税仓-R')" '-----外购入库
  296. cmd.CommandText = sql
  297. dr = cmd.ExecuteReader
  298. If dr.Read Then
  299. dt.Rows(x).Item("外购入库") = dr("入库数量").ToString
  300. Else
  301. dt.Rows(x).Item("外购入库") = 0
  302. End If
  303. dr.Close()
  304. sql = "select cast(sum(qty) as numeric(10,0)) as 入库数量 from RT_CHEM_s_IN_PRICE where year(date)='" & Year(dtp2.Value) & "' and MONTH(DATE)='" & Month(dtp2.Value) & "' and matl_NAME=N'" & dt.Rows(x).Item("化料名称") & "' and dep=N'保税仓-R'" '-----保税入库
  305. cmd.CommandText = sql
  306. dr = cmd.ExecuteReader
  307. If dr.Read Then
  308. dt.Rows(x).Item("保税入库") = dr("入库数量").ToString
  309. Else
  310. dt.Rows(x).Item("保税入库") = 0
  311. End If
  312. dr.Close()
  313. 'sql = "select cast(sum(weight) as numeric(10,0)) as 调拨数量 from rt_sys_chem_IN_L where WH_OUT=N'保税仓/赤湖' AND year(date)='" & Year(dtp2.Value) & "' and MONTH(DATE)='" & Month(dtp2.Value) & "' and name=N'" & dt.Rows(x).Item("化料名称") & "'" '-----保税调拨
  314. 'cmd.CommandText = sql
  315. 'dr = cmd.ExecuteReader
  316. 'If dr.Read Then
  317. ' dt.Rows(x).Item("调拨入库") = dr("调拨数量").ToString
  318. 'Else
  319. ' dt.Rows(x).Item("调拨入库") = 0
  320. 'End If
  321. 'dr.Close()
  322. 'sql = "select cast(sum(weight) as numeric(10,0)) as 调拨数量 from rt_sys_chem_IN_L where WH_OUT=N'外购化料仓/可慕' AND year(date)='" & Year(dtp2.Value) & "' and MONTH(DATE)='" & Month(dtp2.Value) & "' and name=N'" & dt.Rows(x).Item("化料名称") & "'" '-----可慕调拨
  323. 'cmd.CommandText = sql
  324. 'dr = cmd.ExecuteReader
  325. 'If dr.Read Then
  326. ' dt.Rows(x).Item("可慕调拨") = dr("调拨数量").ToString
  327. 'Else
  328. ' dt.Rows(x).Item("可慕调拨") = 0
  329. 'End If
  330. 'dr.Close()
  331. 'sql = "select cast(sum(weight) as numeric(10,0)) as 调拨数量 from rt_sys_chem_OUT_DB where year(date)='" & Year(dtp2.Value) & "' and MONTH(DATE)='" & Month(dtp2.Value) & "' and name=N'" & dt.Rows(x).Item("化料名称") & "'" '-----调拨出库
  332. 'cmd.CommandText = sql
  333. 'If IsDBNull(cmd.ExecuteScalar) Then
  334. ' dt.Rows(x).Item("调拨出库") = 0
  335. 'End If
  336. 'dr.Close()
  337. ' If Not (IsNumeric(Val(dt.Rows(x).Item("合计").ToString))) Then dt.Rows(x).Item("合计") = 0
  338. If Not (IsNumeric(Val(dt.Rows(x).Item("外购入库").ToString))) Then dt.Rows(x).Item("外购入库") = 0
  339. If Not (IsNumeric(Val(dt.Rows(x).Item("保税入库").ToString))) Then dt.Rows(x).Item("保税入库") = 0
  340. If Not (IsNumeric(Val(dt.Rows(x).Item("本月领料").ToString))) Then dt.Rows(x).Item("本月领料") = 0
  341. ' If Not (IsNumeric(Val(dt.Rows(x).Item("调拨出库").ToString))) Then dt.Rows(x).Item("调拨出库") = 0
  342. 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)
  343. dt.Rows(x).Item("损盈亏") = Val(dt.Rows(x).Item("期末盘点").ToString) - Val(dt.Rows(x).Item("应存").ToString)
  344. Next
  345. DGV1.DataSource = dt
  346. DGV1.Columns(0).Width = 180
  347. DGV1.Columns(1).Width = 110
  348. DGV1.Columns(2).Width = 80
  349. DGV1.Columns(3).Width = 75
  350. DGV1.Columns(4).Width = 100
  351. DGV1.Columns(5).Width = 75
  352. DGV1.Columns(6).Width = 75
  353. DGV1.Columns(7).Width = 75
  354. ' DGV1.Columns(8).Width = 75
  355. ' DGV1.Columns(9).Width = 75
  356. ' DGV1.Columns(10).Width = 75
  357. ' DGV1.Columns(11).Width = 75
  358. 'DGV1.Columns(12).Width = 75
  359. 'DGV1.Columns(13).Width = 75
  360. 'DGV1.Columns(14).Width = 75
  361. 'DGV1.Columns(15).Width = 75
  362. End Sub
  363. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  364. sql = "delete from rt_chem_stock_vf"
  365. cmd.CommandText = sql
  366. cmd.ExecuteNonQuery()
  367. Dim my_sqlbulk As New SqlBulkCopy(conn)
  368. my_sqlbulk.DestinationTableName = "RT_CHEM_STOCK_VF"
  369. my_sqlbulk.WriteToServer(dt)
  370. MsgBox("")
  371. End Sub
  372. End Class