Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

Frm_Chem_IO.vb 7.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. Imports System.Data.SqlClient
  2. Imports System.Reflection
  3. Public Class Frm_Chem_IO
  4. Dim cmd As New SqlCommand
  5. Dim da As New SqlDataAdapter
  6. Dim sql As String
  7. Dim colorArray(10) As Color
  8. Dim conn As New SqlConnection
  9. Private Sub FrmChem_IO_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  10. Me.MdiParent = FrmMDI
  11. Dim DT1 As New DataTable
  12. Dim DT2 As New DataTable
  13. Dim DT3 As New DataTable
  14. conn.ConnectionString = connstring
  15. conn.Open()
  16. cmd.Connection = conn
  17. sql = "SELECT YEAR(RT_SYS_CHEM_OUT.DATE) AS 年, MONTH(RT_SYS_CHEM_OUT.DATE) AS 月, cast(SUM(RT_SYS_CHEM_OUT.WEIGHT) as numeric(10,0)) AS '用量(KG)', cast(SUM(RT_SYS_CHEM_MAIN.price * RT_SYS_CHEM_OUT.WEIGHT) as numeric(10,0)) AS 金额,cast(SUM(RT_SYS_CHEM_MAIN.price * RT_SYS_CHEM_OUT.WEIGHT)/SUM(RT_SYS_CHEM_OUT.WEIGHT) as numeric(10,1)) as 平均单价 " &
  18. "FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN RT_SYS_CHEM_MAIN ON RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name GROUP BY YEAR(RT_SYS_CHEM_OUT.DATE), MONTH(RT_SYS_CHEM_OUT.DATE) order by YEAR(RT_SYS_CHEM_OUT.DATE) desc, MONTH(RT_SYS_CHEM_OUT.DATE) desc "
  19. cmd.CommandText = sql
  20. da.SelectCommand = cmd
  21. da.Fill(DT1)
  22. DGV_use.DataSource = DT1 '----领料
  23. sql = "SELECT YEAR(RT_CHEM_STOCK_MONTH2.date) AS 年, MONTH(RT_CHEM_STOCK_MONTH2.date) AS 月, " &
  24. " CAST(SUM(RT_CHEM_STOCK_MONTH2.stock1 * RT_SYS_CHEM_MAIN.price) " &
  25. " + SUM(RT_CHEM_STOCK_MONTH2.stock2 * RT_SYS_CHEM_MAIN.price) " &
  26. " + SUM(RT_CHEM_STOCK_MONTH2.stock3 * RT_SYS_CHEM_MAIN.price) AS numeric(10, 0)) AS 库存金额, " &
  27. " CAST(SUM(RT_CHEM_STOCK_MONTH2.stock1) + SUM(RT_CHEM_STOCK_MONTH2.stock2) " &
  28. " + SUM(RT_CHEM_STOCK_MONTH2.stock3) AS numeric(10, 0)) AS 库存重量 " &
  29. " FROM RT_CHEM_STOCK_MONTH2 LEFT OUTER JOIN " &
  30. " RT_SYS_CHEM_MAIN ON RT_CHEM_STOCK_MONTH2.name = RT_SYS_CHEM_MAIN.name " &
  31. " GROUP BY YEAR(RT_CHEM_STOCK_MONTH2.date), MONTH(RT_CHEM_STOCK_MONTH2.date) " &
  32. " ORDER BY 年 DESC, 月 DESC"
  33. cmd.CommandText = sql
  34. da.SelectCommand = cmd
  35. da.Fill(DT2)
  36. dgv_stock.DataSource = DT2 '---盘点库存
  37. End Sub
  38. Private Sub DGV_use_CellMouseUp(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DGV_use.CellMouseUp
  39. Dim dt As New DataTable
  40. sql = "SELECT NAME AS 品名, CAST(Expr1 AS numeric(10, 0)) AS 用量, price AS 单价, CLASS1 AS 分类, DEP AS 部门, " &
  41. " CAST(Expr1 * price AS numeric(10, 0)) AS 金额 " &
  42. " FROM (SELECT RT_SYS_CHEM_OUT.NAME, SUM(RT_SYS_CHEM_OUT.WEIGHT) AS Expr1, " &
  43. " CASE WHEN new_price Is NULL THEN CAST(RT_SYS_CHEM_MAIN.price AS numeric(10, 2)) " &
  44. " ELSE CAST(new_price AS numeric(10, 2)) END AS price, RT_SYS_CHEM_MAIN.CLASS1, " &
  45. " RT_SYS_CHEM_MAIN.DEP " &
  46. " FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN " &
  47. " RT_SYS_CHEM_MAIN ON RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name " &
  48. " WHERE (MONTH(RT_SYS_CHEM_OUT.DATE) = '" & DGV_use.Rows(DGV_use.CurrentRow.Index).Cells("月").Value & "') " &
  49. " GROUP BY RT_SYS_CHEM_OUT.NAME, RT_SYS_CHEM_MAIN.new_price, RT_SYS_CHEM_MAIN.price, " &
  50. " RT_SYS_CHEM_MAIN.CLASS1, RT_SYS_CHEM_MAIN.DEP) AS p "
  51. sql = "SELECT class2 AS 类别, SUM(用量) AS '用量(公斤)', SUM(金额) AS '金额(人民币)' ,cast(sum(用量)/sum(sum(用量)) over() as numeric(10,2)) as 重量比例 " &
  52. " ,cast(sum(金额)/sum(sum(金额)) over() as numeric(10,2)) as 金额比例 FROM (SELECT NAME AS 品名, CAST(Expr1 AS numeric(10, 0)) AS 用量, " &
  53. " CASE WHEN class1 LIKE N'%油脂%' THEN '油脂' WHEN (class1 = N'染料' OR " &
  54. " class1 LIKE N'%钛%') " &
  55. " THEN '染料' WHEN class1 = N'基础化工' THEN N'基础化工' ELSE '其他' END AS class2, DEP AS 部门, " &
  56. " CAST(Expr1 * price AS numeric(10, 0)) AS 金额 " &
  57. " FROM (SELECT RT_SYS_CHEM_OUT.NAME, SUM(RT_SYS_CHEM_OUT.WEIGHT) AS Expr1, " &
  58. " CASE WHEN new_price IS NULL THEN CAST(RT_SYS_CHEM_MAIN.price AS numeric(10, " &
  59. " 2)) ELSE CAST(new_price AS numeric(10, 2)) END AS price, RT_SYS_CHEM_MAIN.CLASS1, " &
  60. " RT_SYS_CHEM_MAIN.DEP " &
  61. " FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN " &
  62. " RT_SYS_CHEM_MAIN ON " &
  63. " RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name " &
  64. " WHERE (MONTH(RT_SYS_CHEM_OUT.DATE) = '" & DGV_use.Rows(DGV_use.CurrentRow.Index).Cells("月").Value & "') " &
  65. " GROUP BY RT_SYS_CHEM_OUT.NAME, RT_SYS_CHEM_MAIN.new_price, " &
  66. " RT_SYS_CHEM_MAIN.price, RT_SYS_CHEM_MAIN.CLASS1, RT_SYS_CHEM_MAIN.DEP) " &
  67. " AS p " &
  68. " WHERE (DEP IS NULL)) AS q " &
  69. " GROUP BY class2"
  70. cmd.CommandText = sql
  71. da.SelectCommand = cmd
  72. da.Fill(dt)
  73. dgv1.DataSource = dt '----领料
  74. dgv1.Columns(0).Width = 80
  75. dgv1.Columns(1).Width = 90
  76. dgv1.Columns(2).Width = 90
  77. dgv1.Columns(3).Width = 100
  78. End Sub
  79. End Class