Keine Beschreibung
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

frm_Chem_cert.vb 44KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685
  1. Imports System.Data.SqlClient
  2. Imports System.Net
  3. Public Class frm_Chem_cert
  4. Dim dt1 As New DataTable
  5. Dim sql As String
  6. Dim conn As New SqlConnection
  7. Dim cmd As New SqlCommand
  8. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  9. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  10. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  11. Dim xlRange As Microsoft.Office.Interop.Excel.Range
  12. Dim PTCache As Microsoft.Office.Interop.Excel.PivotCache
  13. Dim PT As Microsoft.Office.Interop.Excel.PivotTable
  14. Dim da As New SqlDataAdapter
  15. Dim dt As New DataTable
  16. Dim io_type As String
  17. Dim my_excel_name As String = ""
  18. Dim a As Integer = 0
  19. Dim sql1 As String
  20. Dim sql2 As String
  21. Dim sql3 As String
  22. Dim sql4 As String
  23. Dim my_LL As String
  24. Private Sub frm_Chem_cert_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  25. conn.ConnectionString = connstring
  26. conn.Open()
  27. cmd.Connection = conn
  28. sql = "select date from RT_CHEM_STOCK_MONTH2 group by date order by date desc"
  29. cmd.CommandText = sql
  30. da.SelectCommand = cmd
  31. da.Fill(dt)
  32. dgv1.DataSource = dt
  33. dgv1.RowHeadersWidth = 5
  34. dgv1.RowHeadersVisible = False
  35. sql = "SELECT CAST(YEAR(DATE) AS varchar) + '年' + CAST(MONTH(DATE) AS varchar) + '月' AS Expr1
  36. FROM RT_CHEM_IN_PRICE
  37. GROUP BY YEAR(DATE), MONTH(DATE)
  38. ORDER BY expr1 DESC"
  39. cmd.CommandText = sql
  40. dt = New DataTable
  41. da.Fill(dt)
  42. For x As Integer = 0 To dt.Rows.Count - 1
  43. chkb1.Items.Add(dt(x).Item(0))
  44. Next
  45. sql = "SELECT CAST(YEAR(DATE) AS varchar) + '年' + CAST(MONTH(DATE) AS varchar) + '月' AS Expr1
  46. FROM RT_CHEM_s_IN_PRICE
  47. GROUP BY YEAR(DATE), MONTH(DATE)
  48. ORDER BY expr1 DESC"
  49. cmd.CommandText = sql
  50. dt = New DataTable
  51. da.Fill(dt)
  52. For x As Integer = 0 To dt.Rows.Count - 1
  53. chkb2.Items.Add(dt(x).Item(0))
  54. Next
  55. For x As Integer = 0 To 11
  56. ListBox1.Items.Add(x + 1)
  57. Next
  58. End Sub
  59. Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv1.CellContentClick
  60. End Sub
  61. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  62. sql = "SELECT CASE WHEN S.ZDHC_NAME IS NULL THEN s.化工品名 ELSE S.NAME1 END AS 化工品名, s.库存数量, CAST(SUM(RT_SYS_CHEM_OUT.WEIGHT) AS numeric(10, 0)) AS 用量, s.国购, s.进口, s.supplier as 供应商, s.mfg as 生产商, s.type as 类别, s.dep as 使用部门, s.有毒物质, s.注意危险, s.腐蚀性物质, s.爆炸物, s.健康危害, s.水生生物毒性, s.压力下气体, s.氧化性物质, s.易燃物, s.cas as 成份及CAS号,S.ZDHC_NAME AS ZDHC_NAME,S.NAME1 FROM (SELECT r.化工品名, r.库存数量, r.国购, r.进口, RT_CHEM_MSDS.supplier, RT_CHEM_MSDS.mfg, RT_CHEM_MSDS.type, RT_CHEM_MSDS.dep, RT_CHEM_MSDS.d1 AS 有毒物质, RT_CHEM_MSDS.d2 AS 注意危险, RT_CHEM_MSDS.d3 AS 腐蚀性物质, RT_CHEM_MSDS.d4 AS 爆炸物, RT_CHEM_MSDS.d5 AS 健康危害, RT_CHEM_MSDS.d6 AS 水生生物毒性, RT_CHEM_MSDS.d7 AS 压力下气体, RT_CHEM_MSDS.d8 AS 氧化性物质, RT_CHEM_MSDS.d9 AS 易燃物, RT_CHEM_MSDS.cas ,RT_CHEM_MSDS.ZDHC_NAME,RT_CHEM_MSDS.NAME1 FROM (SELECT p.化工品名, p.库存数量, p.国购, CASE WHEN SUM(q.QTY) IS NULL THEN 0 ELSE SUM(q.QTY) END AS 进口 FROM (SELECT TOP (100) PERCENT RT_CHEM_STOCK_MONTH2.NAME AS 化工品名, SUM(RT_CHEM_STOCK_MONTH2.STOCK1 + RT_CHEM_STOCK_MONTH2.STOCK2 + RT_CHEM_STOCK_MONTH2.STOCK3) AS 库存数量, CASE WHEN x.qty IS NULL THEN 0 ELSE x.qty END AS 国购 FROM RT_CHEM_STOCK_MONTH2 LEFT OUTER JOIN (SELECT NAME, SUM(QTY) AS qty FROM RT_CHEM_IN_PRICE WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", '')) GROUP BY NAME) AS x ON RT_CHEM_STOCK_MONTH2.NAME = x.NAME WHERE (YEAR(RT_CHEM_STOCK_MONTH2.date) = '" & Year(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') AND (MONTH(RT_CHEM_STOCK_MONTH2.date) = '" & Month(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') GROUP BY RT_CHEM_STOCK_MONTH2.NAME, x.NAME, x.qty ORDER BY 化工品名) AS p LEFT OUTER JOIN (SELECT MATL_NAME, QTY, DATE FROM RT_CHEM_S_IN_PRICE WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))) AS q ON p.化工品名 = q.MATL_NAME GROUP BY p.化工品名, p.库存数量, p.国购, q.MATL_NAME) AS r left outer JOIN RT_CHEM_MSDS ON r.化工品名 = RT_CHEM_MSDS.sys_name ) AS s LEFT OUTER JOIN RT_SYS_CHEM_OUT ON s.化工品名 = RT_SYS_CHEM_OUT.NAME WHERE (RT_SYS_CHEM_OUT.DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (RT_SYS_CHEM_OUT.DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", '')) GROUP BY s.化工品名, s.库存数量, s.国购, s.进口, s.supplier, s.mfg, s.type, s.dep, s.有毒物质, s.注意危险, s.腐蚀性物质, s.爆炸物, s.健康危害, s.水生生物毒性, s.压力下气体, s.氧化性物质, s.易燃物, s.cas, s.ZDHC_NAME,S.NAME1"
  63. sql = "SELECT CASE WHEN len(S.ZDHC_NAME)<1 THEN s.化工品名 ELSE S.ZDHC_NAME END AS 化工品名, CASE WHEN SUM(z.qty) IS NULL
  64. THEN 0 ELSE CAST(SUM(z.qty) AS numeric(10, 0)) END AS 用量, s.库存数量, s.国购, s.进口, s.supplier AS 供应商,
  65. s.mfg AS 生产商, s.type AS 类别, s.dep AS 使用部门
  66. FROM (SELECT r.化工品名, r.库存数量, r.国购, r.进口, RT_CHEM_MSDS.supplier, RT_CHEM_MSDS.mfg, RT_CHEM_MSDS.type,
  67. RT_CHEM_MSDS.dep, RT_CHEM_MSDS.d1 AS 有毒物质, RT_CHEM_MSDS.d2 AS 注意危险,
  68. RT_CHEM_MSDS.d3 AS 腐蚀性物质, RT_CHEM_MSDS.d4 AS 爆炸物, RT_CHEM_MSDS.d5 AS 健康危害,
  69. RT_CHEM_MSDS.d6 AS 水生生物毒性, RT_CHEM_MSDS.d7 AS 压力下气体,
  70. RT_CHEM_MSDS.d8 AS 氧化性物质, RT_CHEM_MSDS.d9 AS 易燃物, RT_CHEM_MSDS.cas,
  71. RT_CHEM_MSDS.ZDHC_NAME, RT_CHEM_MSDS.name1
  72. FROM (SELECT p.化工品名, p.库存数量, p.国购, CASE WHEN SUM(q.QTY) IS NULL THEN 0 ELSE SUM(q.QTY)
  73. END AS 进口
  74. FROM (SELECT TOP (100) PERCENT RT_CHEM_STOCK_MONTH2.NAME AS 化工品名,
  75. SUM(RT_CHEM_STOCK_MONTH2.STOCK1 + RT_CHEM_STOCK_MONTH2.STOCK2 + RT_CHEM_STOCK_MONTH2.STOCK3)
  76. AS 库存数量, CASE WHEN x.qty IS NULL THEN 0 ELSE x.qty END AS 国购
  77. FROM RT_CHEM_STOCK_MONTH2 LEFT OUTER JOIN
  78. (SELECT NAME, SUM(QTY) AS qty
  79. FROM RT_CHEM_IN_PRICE
  80. WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))
  81. GROUP BY NAME) AS x ON RT_CHEM_STOCK_MONTH2.NAME = x.NAME
  82. WHERE (YEAR(RT_CHEM_STOCK_MONTH2.date) = '" & Year(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') AND (MONTH(RT_CHEM_STOCK_MONTH2.date) = '" & Month(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "')
  83. GROUP BY RT_CHEM_STOCK_MONTH2.NAME, x.NAME, x.qty
  84. ORDER BY 化工品名) AS p LEFT OUTER JOIN
  85. (SELECT MATL_NAME, QTY, DATE
  86. FROM RT_CHEM_S_IN_PRICE
  87. WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))) AS q ON p.化工品名 = q.MATL_NAME
  88. GROUP BY p.化工品名, p.库存数量, p.国购, q.MATL_NAME) AS r LEFT OUTER JOIN
  89. RT_CHEM_MSDS ON r.化工品名 = RT_CHEM_MSDS.sys_name) AS s LEFT OUTER JOIN
  90. (SELECT NAME, SUM(WEIGHT) AS qty
  91. FROM RT_SYS_CHEM_OUT
  92. WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))
  93. GROUP BY NAME) AS z ON s.化工品名 = z.NAME
  94. GROUP BY s.化工品名, s.库存数量, s.国购, s.进口, s.supplier, s.mfg, s.type, s.dep, s.ZDHC_NAME, s.name1
  95. ORDER BY 化工品名"
  96. cmd.CommandText = sql
  97. dt = New DataTable
  98. da.SelectCommand = cmd
  99. da.Fill(dt)
  100. dgv2.DataSource = dt
  101. xlApp = CreateObject("Excel.Application")
  102. xlBook = xlApp.Workbooks.Add
  103. xlApp.Visible = True
  104. 'xlApp.DisplayAlerts = False
  105. xlBook.Activate()
  106. xlBook.Parent.Windows(1).Visible = True
  107. xlSheet = xlBook.Worksheets.Add
  108. xlSheet.Activate()
  109. dgv2.SelectAll()
  110. Me.dgv2.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  111. Clipboard.SetDataObject(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString))
  112. System.Threading.Thread.Sleep(200)
  113. xlApp.Cells(2, 2).Select()
  114. If IsDBNull(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString)) Then
  115. Else
  116. xlSheet.PasteSpecial()
  117. Clipboard.SetDataObject(DBNull.Value)
  118. End If
  119. End Sub
  120. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  121. 'sql = "SELECT s.化工品名, s.库存数量, CAST(SUM(RT_SYS_CHEM_OUT.WEIGHT) AS numeric(10, 0)) AS 用量, s.国购, s.进口, s.supplier as 供应商, s.mfg as 生产商, s.type as 类别, s.dep as 使用部门, s.有毒物质, s.注意危险, s.腐蚀性物质, s.爆炸物, s.健康危害, s.水生生物毒性, s.压力下气体, s.氧化性物质, s.易燃物, s.cas as 成份及CAS号 FROM (SELECT r.化工品名, r.库存数量, r.国购, r.进口, RT_CHEM_MSDS.supplier, RT_CHEM_MSDS.mfg, RT_CHEM_MSDS.type, RT_CHEM_MSDS.dep, RT_CHEM_MSDS.d1 AS 有毒物质, RT_CHEM_MSDS.d2 AS 注意危险, RT_CHEM_MSDS.d3 AS 腐蚀性物质, RT_CHEM_MSDS.d4 AS 爆炸物, RT_CHEM_MSDS.d5 AS 健康危害, RT_CHEM_MSDS.d6 AS 水生生物毒性, RT_CHEM_MSDS.d7 AS 压力下气体, RT_CHEM_MSDS.d8 AS 氧化性物质, RT_CHEM_MSDS.d9 AS 易燃物, RT_CHEM_MSDS.cas FROM (SELECT p.化工品名, p.库存数量, p.国购, CASE WHEN SUM(q.QTY) IS NULL THEN 0 ELSE SUM(q.QTY) END AS 进口 FROM (SELECT TOP (100) PERCENT RT_CHEM_STOCK_MONTH2.NAME AS 化工品名, SUM(RT_CHEM_STOCK_MONTH2.STOCK1 + RT_CHEM_STOCK_MONTH2.STOCK2 + RT_CHEM_STOCK_MONTH2.STOCK3) AS 库存数量, CASE WHEN x.qty IS NULL THEN 0 ELSE x.qty END AS 国购 FROM RT_CHEM_STOCK_MONTH2 LEFT OUTER JOIN (SELECT NAME, SUM(QTY) AS qty FROM RT_CHEM_IN_PRICE WHERE (DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') + 1 - " & ListBox1.Text & ", '')) GROUP BY NAME) AS x ON RT_CHEM_STOCK_MONTH2.NAME = x.NAME WHERE (YEAR(RT_CHEM_STOCK_MONTH2.date) = '" & Year(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') AND (MONTH(RT_CHEM_STOCK_MONTH2.date) = '" & Month(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') GROUP BY RT_CHEM_STOCK_MONTH2.NAME, x.NAME, x.qty ORDER BY 化工品名) AS p LEFT OUTER JOIN (SELECT MATL_NAME, QTY, DATE FROM RT_CHEM_S_IN_PRICE WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))) AS q ON p.化工品名 = q.MATL_NAME GROUP BY p.化工品名, p.库存数量, p.国购, q.MATL_NAME) AS r left outer JOIN RT_CHEM_MSDS ON r.化工品名 = RT_CHEM_MSDS.sys_name where serial=1) AS s LEFT OUTER JOIN RT_SYS_CHEM_OUT ON s.化工品名 = RT_SYS_CHEM_OUT.NAME WHERE (RT_SYS_CHEM_OUT.DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (RT_SYS_CHEM_OUT.DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') +1- " & ListBox1.Text & ", '')) GROUP BY s.化工品名, s.库存数量, s.国购, s.进口, s.supplier, s.mfg, s.type, s.dep, s.有毒物质, s.注意危险, s.腐蚀性物质, s.爆炸物, s.健康危害, s.水生生物毒性, s.压力下气体, s.氧化性物质, s.易燃物, s.cas"
  122. sql = "SELECT s.化工品名, s.库存数量, case when SUM(zz.WEIGHT) is null then 0 else CAST(SUM(zz.WEIGHT) AS numeric(10, 0)) end AS 用量, s.国购, s.进口, s.supplier as 供应商, s.mfg as 生产商, s.type as 类别, s.dep as 使用部门, s.有毒物质, s.注意危险, s.腐蚀性物质, s.爆炸物, s.健康危害, s.水生生物毒性, s.压力下气体, s.氧化性物质, s.易燃物, s.cas as 成份及CAS号 FROM (SELECT r.化工品名, r.库存数量, r.国购, r.进口, RT_CHEM_MSDS.supplier, RT_CHEM_MSDS.mfg, RT_CHEM_MSDS.type, RT_CHEM_MSDS.dep, RT_CHEM_MSDS.d1 AS 有毒物质, RT_CHEM_MSDS.d2 AS 注意危险, RT_CHEM_MSDS.d3 AS 腐蚀性物质, RT_CHEM_MSDS.d4 AS 爆炸物, RT_CHEM_MSDS.d5 AS 健康危害, RT_CHEM_MSDS.d6 AS 水生生物毒性, RT_CHEM_MSDS.d7 AS 压力下气体, RT_CHEM_MSDS.d8 AS 氧化性物质, RT_CHEM_MSDS.d9 AS 易燃物, RT_CHEM_MSDS.cas FROM (SELECT p.化工品名, p.库存数量, p.国购, CASE WHEN SUM(q.QTY) IS NULL THEN 0 ELSE SUM(q.QTY) END AS 进口 FROM (SELECT TOP (100) PERCENT RT_CHEM_STOCK_MONTH2.NAME AS 化工品名, SUM(RT_CHEM_STOCK_MONTH2.STOCK1 + RT_CHEM_STOCK_MONTH2.STOCK2 + RT_CHEM_STOCK_MONTH2.STOCK3) AS 库存数量, CASE WHEN x.qty IS NULL THEN 0 ELSE x.qty END AS 国购 FROM RT_CHEM_STOCK_MONTH2 LEFT OUTER JOIN (SELECT NAME, SUM(QTY) AS qty FROM RT_CHEM_IN_PRICE WHERE (DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') + 1 - " & ListBox1.Text & ", '')) GROUP BY NAME) AS x ON RT_CHEM_STOCK_MONTH2.NAME = x.NAME WHERE (YEAR(RT_CHEM_STOCK_MONTH2.date) = '" & Year(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') AND (MONTH(RT_CHEM_STOCK_MONTH2.date) = '" & Month(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') GROUP BY RT_CHEM_STOCK_MONTH2.NAME, x.NAME, x.qty ORDER BY 化工品名) AS p LEFT OUTER JOIN (SELECT MATL_NAME, QTY, DATE FROM RT_CHEM_S_IN_PRICE WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))) AS q ON p.化工品名 = q.MATL_NAME GROUP BY p.化工品名, p.库存数量, p.国购, q.MATL_NAME) AS r left outer JOIN RT_CHEM_MSDS ON r.化工品名 = RT_CHEM_MSDS.sys_name where serial=1) AS s LEFT OUTER JOIN (select name,weight from RT_SYS_CHEM_OUT WHERE (RT_SYS_CHEM_OUT.DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (RT_SYS_CHEM_OUT.DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') +1- " & ListBox1.Text & ", ''))) as zz on s.化工品名=zz.NAME GROUP BY s.化工品名, s.库存数量, s.国购, s.进口, s.supplier, s.mfg, s.type, s.dep, s.有毒物质, s.注意危险, s.腐蚀性物质, s.爆炸物, s.健康危害, s.水生生物毒性, s.压力下气体, s.氧化性物质, s.易燃物, s.cas"
  123. cmd.CommandText = sql
  124. dt = New DataTable
  125. da.SelectCommand = cmd
  126. da.Fill(dt)
  127. dgv2.DataSource = dt
  128. xlApp = CreateObject("Excel.Application")
  129. xlBook = xlApp.Workbooks.Add
  130. xlApp.Visible = True
  131. 'xlApp.DisplayAlerts = False
  132. xlBook.Activate()
  133. xlBook.Parent.Windows(1).Visible = True
  134. xlSheet = xlBook.Worksheets.Add
  135. xlSheet.Activate()
  136. dgv2.SelectAll()
  137. Me.dgv2.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  138. Clipboard.SetDataObject(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString))
  139. System.Threading.Thread.Sleep(200)
  140. xlApp.Cells(2, 2).Select()
  141. If IsDBNull(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString)) Then
  142. Else
  143. xlSheet.PasteSpecial()
  144. Clipboard.SetDataObject(DBNull.Value)
  145. End If
  146. End Sub
  147. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  148. sql = "SELECT CASE WHEN len(S.ZDHC_NAME)<1 THEN s.name1 ELSE S.ZDHC_NAME END AS 化工品名,
  149. s.mfg AS 生产商, s.supplier AS 供应商, CASE WHEN SUM(z.qty) IS NULL THEN 0 ELSE CAST(SUM(z.qty) AS numeric(10, 0)) END AS 用量, s.库存数量, s.国购, s.进口,
  150. s.mfg AS 生产商, s.type AS 类别, s.dep AS 使用部门
  151. FROM (SELECT r.化工品名, r.库存数量, r.国购, r.进口, RT_CHEM_MSDS.supplier, RT_CHEM_MSDS.mfg, RT_CHEM_MSDS.type,
  152. RT_CHEM_MSDS.dep, RT_CHEM_MSDS.d1 AS 有毒物质, RT_CHEM_MSDS.d2 AS 注意危险,
  153. RT_CHEM_MSDS.d3 AS 腐蚀性物质, RT_CHEM_MSDS.d4 AS 爆炸物, RT_CHEM_MSDS.d5 AS 健康危害,
  154. RT_CHEM_MSDS.d6 AS 水生生物毒性, RT_CHEM_MSDS.d7 AS 压力下气体,
  155. RT_CHEM_MSDS.d8 AS 氧化性物质, RT_CHEM_MSDS.d9 AS 易燃物, RT_CHEM_MSDS.cas,
  156. RT_CHEM_MSDS.ZDHC_NAME, RT_CHEM_MSDS.name1
  157. FROM (SELECT p.化工品名, p.库存数量, p.国购, CASE WHEN SUM(q.QTY) IS NULL THEN 0 ELSE SUM(q.QTY)
  158. END AS 进口
  159. FROM (SELECT TOP (100) PERCENT RT_CHEM_STOCK_MONTH2.NAME AS 化工品名,
  160. SUM(RT_CHEM_STOCK_MONTH2.STOCK1 + RT_CHEM_STOCK_MONTH2.STOCK2 + RT_CHEM_STOCK_MONTH2.STOCK3)
  161. AS 库存数量, CASE WHEN x.qty IS NULL THEN 0 ELSE x.qty END AS 国购
  162. FROM RT_CHEM_STOCK_MONTH2 LEFT OUTER JOIN
  163. (SELECT NAME, SUM(QTY) AS qty
  164. FROM RT_CHEM_IN_PRICE
  165. WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))
  166. GROUP BY NAME) AS x ON RT_CHEM_STOCK_MONTH2.NAME = x.NAME
  167. WHERE (YEAR(RT_CHEM_STOCK_MONTH2.date) = '" & Year(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') AND (MONTH(RT_CHEM_STOCK_MONTH2.date) = '" & Month(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "')
  168. GROUP BY RT_CHEM_STOCK_MONTH2.NAME, x.NAME, x.qty
  169. ORDER BY 化工品名) AS p LEFT OUTER JOIN
  170. (SELECT MATL_NAME, QTY, DATE
  171. FROM RT_CHEM_S_IN_PRICE
  172. WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))) AS q ON p.化工品名 = q.MATL_NAME
  173. GROUP BY p.化工品名, p.库存数量, p.国购, q.MATL_NAME) AS r LEFT OUTER JOIN
  174. RT_CHEM_MSDS ON r.化工品名 = RT_CHEM_MSDS.sys_name) AS s LEFT OUTER JOIN
  175. (SELECT NAME, SUM(WEIGHT) AS qty
  176. FROM RT_SYS_CHEM_OUT
  177. WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))
  178. GROUP BY NAME) AS z ON s.化工品名 = z.NAME
  179. where s.type<>N'基础化工' GROUP BY s.化工品名, s.库存数量, s.国购, s.进口, s.supplier, s.mfg, s.type, s.dep, s.ZDHC_NAME, s.name1 ORDER BY 化工品名"
  180. sql = "SELECT CASE WHEN len(S.ZDHC_NAME)<1 THEN s.name1 ELSE S.ZDHC_NAME END AS 化工品名,s.mfg AS 生产商, s.supplier AS 供应商, CASE WHEN SUM(z.qty) IS NULL THEN 0 ELSE CAST(SUM(z.qty) AS numeric(10, 2)) END AS 用量, s.库存数量, s.国购, s.进口, s.mfg AS 生产商, s.type AS 类别, s.dep AS 使用部门,s.zdhc_code FROM (SELECT r.化工品名, r.库存数量, r.国购, r.进口, RT_CHEM_MSDS.supplier, RT_CHEM_MSDS.mfg, RT_CHEM_MSDS.type, RT_CHEM_MSDS.dep, RT_CHEM_MSDS.d1 AS 有毒物质, RT_CHEM_MSDS.d2 AS 注意危险, RT_CHEM_MSDS.d3 AS 腐蚀性物质, RT_CHEM_MSDS.d4 AS 爆炸物, RT_CHEM_MSDS.d5 AS 健康危害, RT_CHEM_MSDS.d6 AS 水生生物毒性, RT_CHEM_MSDS.d7 AS 压力下气体, RT_CHEM_MSDS.d8 AS 氧化性物质, RT_CHEM_MSDS.d9 AS 易燃物, RT_CHEM_MSDS.cas, RT_CHEM_MSDS.ZDHC_NAME, RT_CHEM_MSDS.name1,RT_CHEM_MSDS.zdhc_code FROM (SELECT p.化工品名, p.库存数量, p.国购, CASE WHEN SUM(q.QTY) IS NULL THEN 0 ELSE SUM(q.QTY) END AS 进口 FROM
  181. (SELECT TOP (100) PERCENT RT_CHEM_STOCK_MONTH2.NAME AS 化工品名, SUM(RT_CHEM_STOCK_MONTH2.STOCK1 + RT_CHEM_STOCK_MONTH2.STOCK2 + RT_CHEM_STOCK_MONTH2.STOCK3) AS 库存数量, CASE WHEN x.qty IS NULL THEN 0 ELSE x.qty END AS 国购 FROM RT_CHEM_STOCK_MONTH2 LEFT OUTER JOIN (SELECT NAME, SUM(QTY) AS qty FROM RT_CHEM_IN_PRICE WHERE (DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text - 1 & ", '')) GROUP BY NAME) AS x
  182. ON RT_CHEM_STOCK_MONTH2.NAME = x.NAME WHERE (YEAR(RT_CHEM_STOCK_MONTH2.date) = '" & Year(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') AND (MONTH(RT_CHEM_STOCK_MONTH2.date) = '" & Month(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') GROUP BY RT_CHEM_STOCK_MONTH2.NAME, x.NAME, x.qty ORDER BY 化工品名) AS p
  183. LEFT OUTER JOIN (SELECT MATL_NAME, QTY, DATE FROM RT_CHEM_S_IN_PRICE WHERE (DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text - 1 & ", ''))) AS q ON p.化工品名 = q.MATL_NAME GROUP BY p.化工品名, p.库存数量, p.国购, q.MATL_NAME) AS r LEFT OUTER JOIN RT_CHEM_MSDS ON r.化工品名 = RT_CHEM_MSDS.sys_name) AS s LEFT OUTER JOIN (SELECT NAME, SUM(WEIGHT) AS qty FROM RT_SYS_CHEM_OUT WHERE (DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text - 1 & ", '')) GROUP BY NAME) AS z
  184. ON s.化工品名 = z.NAME GROUP BY s.化工品名, s.库存数量, s.国购, s.进口, s.supplier, s.mfg, s.type, s.dep, s.ZDHC_NAME,s.zdhc_code, s.name1 ORDER BY 化工品名"
  185. cmd.CommandText = sql
  186. dt = New DataTable
  187. da.SelectCommand = cmd
  188. da.Fill(dt)
  189. Dim col As DataColumn
  190. col = dt.Columns.Add("1")
  191. col.SetOrdinal(3)
  192. col = dt.Columns.Add("2")
  193. col.SetOrdinal(5)
  194. col = dt.Columns.Add("3")
  195. col.SetOrdinal(5)
  196. col = dt.Columns.Add("4")
  197. col.SetOrdinal(5)
  198. col = dt.Columns.Add("5")
  199. col.SetOrdinal(5)
  200. col = dt.Columns.Add("6")
  201. col.SetOrdinal(5)
  202. col = dt.Columns.Add("7")
  203. col.SetOrdinal(5)
  204. dgv2.DataSource = dt
  205. xlApp = CreateObject("Excel.Application")
  206. xlBook = xlApp.Workbooks.Add
  207. xlApp.Visible = True
  208. 'xlApp.DisplayAlerts = False
  209. xlBook.Activate()
  210. xlBook.Parent.Windows(1).Visible = True
  211. xlSheet = xlBook.Worksheets.Add
  212. xlSheet.Activate()
  213. dgv2.SelectAll()
  214. Me.dgv2.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  215. Clipboard.SetDataObject(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString))
  216. System.Threading.Thread.Sleep(200)
  217. xlApp.Cells(2, 2).Select()
  218. If IsDBNull(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString)) Then
  219. Else
  220. xlSheet.PasteSpecial()
  221. Clipboard.SetDataObject(DBNull.Value)
  222. End If
  223. End Sub
  224. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 'higg
  225. sql = "SELECT s.化工品名, s.库存数量, case when SUM(zz.WEIGHT) is null then 0 else CAST(SUM(zz.WEIGHT) AS numeric(10, 0)) end AS 用量, s.国购, s.进口, s.supplier as 供应商, s.zdhc as zdhc, s.mfg as 生产商, s.type as 类别1,s.type1 as 类别2, s.dep as 使用部门, s.有毒物质, s.注意危险, s.腐蚀性物质, s.爆炸物, s.健康危害, s.水生生物毒性, s.压力下气体,s.氧化性物质, s.易燃物, s.cas as 成份及CAS号,s.chemiq as 功能 FROM (SELECT r.化工品名, r.库存数量, r.国购, r.进口, RT_CHEM_MSDS.supplier,RT_CHEM_MSDS.mfg, RT_CHEM_MSDS.type, RT_CHEM_MSDS.dep,RT_CHEM_MSDS.zdhc, RT_CHEM_MSDS.d6 AS 有毒物质, RT_CHEM_MSDS.d7 AS 注意危险, RT_CHEM_MSDS.d5 AS 腐蚀性物质, RT_CHEM_MSDS.d1 AS 爆炸物, RT_CHEM_MSDS.d8 AS 健康危害, RT_CHEM_MSDS.d9 AS 水生生物毒性, RT_CHEM_MSDS.d4 AS 压力下气体,RT_CHEM_MSDS.d3 AS 氧化性物质, RT_CHEM_MSDS.d2 AS 易燃物, RT_CHEM_MSDS.cas,RT_CHEM_MSDS.type1,RT_CHEM_MSDS.chemiq FROM (SELECT p.化工品名, p.库存数量, p.国购, CASE WHEN SUM(q.QTY) IS NULL THEN 0 ELSE SUM(q.QTY) END AS 进口 FROM (SELECT TOP (100) PERCENT RT_CHEM_STOCK_MONTH2.NAME AS 化工品名, SUM(RT_CHEM_STOCK_MONTH2.STOCK1 + RT_CHEM_STOCK_MONTH2.STOCK2 + RT_CHEM_STOCK_MONTH2.STOCK3) AS 库存数量, CASE WHEN x.qty IS NULL THEN 0 ELSE x.qty END AS 国购 FROM RT_CHEM_STOCK_MONTH2 LEFT OUTER JOIN (SELECT NAME, SUM(QTY) AS qty FROM RT_CHEM_IN_PRICE WHERE qty>0 and ( DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') + 1 - " & ListBox1.Text & ", '')) GROUP BY NAME) AS x ON RT_CHEM_STOCK_MONTH2.NAME = x.NAME WHERE (YEAR(RT_CHEM_STOCK_MONTH2.date) = '" & Year(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') AND (MONTH(RT_CHEM_STOCK_MONTH2.date) = '" & Month(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') GROUP BY RT_CHEM_STOCK_MONTH2.NAME, x.NAME, x.qty ORDER BY 化工品名) AS p LEFT OUTER JOIN (SELECT MATL_NAME, QTY, DATE FROM RT_CHEM_S_IN_PRICE WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))) AS q ON p.化工品名 = q.MATL_NAME GROUP BY p.化工品名, p.库存数量, p.国购, q.MATL_NAME) AS r left outer JOIN RT_CHEM_MSDS ON r.化工品名 = RT_CHEM_MSDS.sys_name ) AS s LEFT OUTER JOIN (select name,weight from RT_SYS_CHEM_OUT WHERE (RT_SYS_CHEM_OUT.DATE <= DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (RT_SYS_CHEM_OUT.DATE >= DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') +1- " & ListBox1.Text & ", ''))) as zz on s.化工品名=zz.NAME GROUP BY s.化工品名,s.zdhc, s.库存数量, s.国购, s.进口, s.supplier, s.mfg, s.type,s.type1, s.dep, s.有毒物质, s.注意危险, s.腐蚀性物质, s.爆炸物, s.健康危害, s.水生生物毒性, s.压力下气体, s.氧化性物质, s.易燃物, s.cas,s.chemiq"
  226. cmd.CommandText = sql
  227. dt = New DataTable
  228. da.SelectCommand = cmd
  229. da.Fill(dt)
  230. dt.Columns.Add("最后入库", Type.GetType("System.DateTime"))
  231. dt.Columns.Add("有效日期", Type.GetType("System.DateTime"))
  232. dt.Columns.Add("批号")
  233. For x As Integer = 0 To dt.Rows.Count - 1
  234. If dt.Rows(x).Item("化工品名") = "LB-4602" Then
  235. Dim aa As Integer = 0
  236. End If
  237. sql = "select date from rt_chem_in_price where name=N'" & dt.Rows(x).Item("化工品名") & "' and qty>0 order by date desc"
  238. cmd.CommandText = sql
  239. If (cmd.ExecuteScalar) Is Nothing Then
  240. Else
  241. dt.Rows(x).Item("最后入库") = cmd.ExecuteScalar
  242. dt.Rows(x).Item("有效日期") = DateAdd("yyyy", 2, cmd.ExecuteScalar)
  243. sql = "select comment from rt_chem_in_price where name=N'" & dt.Rows(x).Item("化工品名") & "' and qty>0 order by date desc"
  244. cmd.CommandText = sql
  245. If IsDBNull(cmd.ExecuteScalar) Then
  246. Dim dd() As String
  247. dd = Split(dt.Rows(x).Item("最后入库"), "/")
  248. Dim my_lot As String = ""
  249. For y As Integer = 0 To UBound(dd) - 1
  250. my_lot = my_lot & dd(y)
  251. Next
  252. dt.Rows(x).Item("批号") = my_lot
  253. Else
  254. dt.Rows(x).Item("批号") = cmd.ExecuteScalar.ToString
  255. End If
  256. End If
  257. Next
  258. For x As Integer = 0 To dt.Rows.Count - 1
  259. sql = "select date from rt_chem_s_in_price where matl_name=N'" & dt.Rows(x).Item("化工品名") & "' and qty>0 order by date desc"
  260. cmd.CommandText = sql
  261. If (cmd.ExecuteScalar) Is Nothing Then
  262. Else
  263. If IsDBNull(dt.Rows(x).Item("最后入库")) Then
  264. dt.Rows(x).Item("最后入库") = cmd.ExecuteScalar
  265. dt.Rows(x).Item("有效日期") = DateAdd("yyyy", 2, cmd.ExecuteScalar)
  266. Else
  267. If dt.Rows(x).Item("最后入库") > cmd.ExecuteScalar Then
  268. Else
  269. dt.Rows(x).Item("最后入库") = cmd.ExecuteScalar
  270. dt.Rows(x).Item("有效日期") = DateAdd("yyyy", 2, cmd.ExecuteScalar)
  271. End If
  272. End If
  273. End If
  274. Next
  275. dgv2.DataSource = dt
  276. xlApp = CreateObject("Excel.Application")
  277. xlBook = xlApp.Workbooks.Add
  278. xlApp.Visible = True
  279. 'xlApp.DisplayAlerts = False
  280. xlBook.Activate()
  281. xlBook.Parent.Windows(1).Visible = True
  282. xlSheet = xlBook.Worksheets.Add
  283. xlSheet.Activate()
  284. dgv2.SelectAll()
  285. Me.dgv2.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  286. Clipboard.SetDataObject(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString))
  287. System.Threading.Thread.Sleep(200)
  288. xlApp.Cells(2, 2).Select()
  289. If IsDBNull(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString)) Then
  290. Else
  291. xlSheet.PasteSpecial()
  292. Clipboard.SetDataObject(DBNull.Value)
  293. End If
  294. End Sub
  295. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
  296. sql = "SELECT CASE WHEN len(S.ZDHC_NAME)<1 THEN s.name1 ELSE S.ZDHC_NAME END AS 化工品名,
  297. s.mfg AS 生产商, s.supplier AS 供应商, CASE WHEN SUM(z.qty) IS NULL THEN 0 ELSE CAST(SUM(z.qty) AS numeric(10, 0)) END AS 用量, s.库存数量, s.国购, s.进口,
  298. s.mfg AS 生产商, s.type AS 类别, s.dep AS 使用部门
  299. FROM (SELECT r.化工品名, r.库存数量, r.国购, r.进口, RT_CHEM_MSDS.supplier, RT_CHEM_MSDS.mfg, RT_CHEM_MSDS.type,
  300. RT_CHEM_MSDS.dep, RT_CHEM_MSDS.d1 AS 有毒物质, RT_CHEM_MSDS.d2 AS 注意危险,
  301. RT_CHEM_MSDS.d3 AS 腐蚀性物质, RT_CHEM_MSDS.d4 AS 爆炸物, RT_CHEM_MSDS.d5 AS 健康危害,
  302. RT_CHEM_MSDS.d6 AS 水生生物毒性, RT_CHEM_MSDS.d7 AS 压力下气体,
  303. RT_CHEM_MSDS.d8 AS 氧化性物质, RT_CHEM_MSDS.d9 AS 易燃物, RT_CHEM_MSDS.cas,
  304. RT_CHEM_MSDS.ZDHC_NAME, RT_CHEM_MSDS.name1
  305. FROM (SELECT p.化工品名, p.库存数量, p.国购, CASE WHEN SUM(q.QTY) IS NULL THEN 0 ELSE SUM(q.QTY)
  306. END AS 进口
  307. FROM (SELECT TOP (100) PERCENT RT_CHEM_STOCK_MONTH2.NAME AS 化工品名,
  308. SUM(RT_CHEM_STOCK_MONTH2.STOCK1 + RT_CHEM_STOCK_MONTH2.STOCK2 + RT_CHEM_STOCK_MONTH2.STOCK3)
  309. AS 库存数量, CASE WHEN x.qty IS NULL THEN 0 ELSE x.qty END AS 国购
  310. FROM RT_CHEM_STOCK_MONTH2 LEFT OUTER JOIN
  311. (SELECT NAME, SUM(QTY) AS qty
  312. FROM RT_CHEM_IN_PRICE
  313. WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))
  314. GROUP BY NAME) AS x ON RT_CHEM_STOCK_MONTH2.NAME = x.NAME
  315. WHERE (YEAR(RT_CHEM_STOCK_MONTH2.date) = '" & Year(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "') AND (MONTH(RT_CHEM_STOCK_MONTH2.date) = '" & Month(dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value) & "')
  316. GROUP BY RT_CHEM_STOCK_MONTH2.NAME, x.NAME, x.qty
  317. ORDER BY 化工品名) AS p LEFT OUTER JOIN
  318. (SELECT MATL_NAME, QTY, DATE
  319. FROM RT_CHEM_S_IN_PRICE
  320. WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))) AS q ON p.化工品名 = q.MATL_NAME
  321. GROUP BY p.化工品名, p.库存数量, p.国购, q.MATL_NAME) AS r LEFT OUTER JOIN
  322. RT_CHEM_MSDS ON r.化工品名 = RT_CHEM_MSDS.sys_name) AS s LEFT OUTER JOIN
  323. (SELECT NAME, SUM(WEIGHT) AS qty
  324. FROM RT_SYS_CHEM_OUT
  325. WHERE (DATE < DATEADD(day, DATEDIFF(day, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "'), '')) AND (DATE > DATEADD(month, DATEDIFF(month, '', '" & dgv1.Rows(dgv1.CurrentCell.RowIndex).Cells("date").Value & "') - " & ListBox1.Text & ", ''))
  326. GROUP BY NAME) AS z ON s.化工品名 = z.NAME
  327. where s.type<>N'基础化工'
  328. GROUP BY s.化工品名, s.库存数量, s.国购, s.进口, s.supplier, s.mfg, s.type, s.dep, s.ZDHC_NAME, s.name1
  329. ORDER BY 化工品名"
  330. sql = "SELECT RT_CHEM_MSDS.type, RT_CHEM_MSDS.type1, CAST(SUM(RT_SYS_CHEM_OUT.WEIGHT) AS numeric(10, 1)) AS 数量
  331. FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN
  332. RT_CHEM_MSDS ON RT_SYS_CHEM_OUT.NAME = RT_CHEM_MSDS.sys_name
  333. WHERE (RT_SYS_CHEM_OUT.DATE BETWEEN '" & DateTimePicker1.Value & "' AND '" & DateTimePicker2.Value & "') GROUP BY RT_CHEM_MSDS.type, RT_CHEM_MSDS.type1"
  334. cmd.CommandText = sql
  335. dt = New DataTable
  336. da.SelectCommand = cmd
  337. da.Fill(dt)
  338. dgv2.DataSource = dt
  339. xlApp = CreateObject("Excel.Application")
  340. xlBook = xlApp.Workbooks.Add
  341. xlApp.Visible = True
  342. 'xlApp.DisplayAlerts = False
  343. xlBook.Activate()
  344. xlBook.Parent.Windows(1).Visible = True
  345. xlSheet = xlBook.Worksheets.Add
  346. xlSheet.Activate()
  347. dgv2.SelectAll()
  348. Me.dgv2.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  349. Clipboard.SetDataObject(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString))
  350. System.Threading.Thread.Sleep(200)
  351. xlApp.Cells(2, 2).Select()
  352. If IsDBNull(dgv2.GetClipboardContent().GetData(DataFormats.Text.ToString)) Then
  353. Else
  354. xlSheet.PasteSpecial()
  355. Clipboard.SetDataObject(DBNull.Value)
  356. End If
  357. End Sub
  358. End Class