Brak opisu
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.

Frmchem_nouse.vb 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. Imports System.Data.SqlClient
  2. Imports System.Reflection
  3. Imports System.Runtime.InteropServices
  4. Public Class Frmchem_nouse
  5. Dim cmd As New SqlCommand
  6. Dim da As New SqlDataAdapter
  7. Dim sql As String
  8. Dim conn As New SqlConnection
  9. Private Sub Frmchem_nouse_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  10. 'Me.MdiParent = FrmMDI
  11. Dim type As Type = dgv30.GetType()
  12. Dim pi As PropertyInfo = type.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
  13. pi.SetValue(dgv30, True, Nothing)
  14. conn.ConnectionString = connstring
  15. conn.Open()
  16. Dim dt As New DataTable
  17. cmd.Connection = conn
  18. sql = "SELECT 品名, 数量 AS 库存数, 单价, 化工类型, 供应商 " &
  19. " FROM (SELECT RT_SYS_CHEM_MAIN.stock1 + RT_SYS_CHEM_MAIN.stock2 + RT_SYS_CHEM_MAIN.stock3 AS 数量, " &
  20. " RT_SYS_CHEM_MAIN.name AS 品名, RT_SYS_CHEM_MAIN.price AS 单价, " &
  21. " RT_SYS_CHEM_MAIN.CLASS1 AS 化工类型, RT_SYS_CHEM_MAIN.supplier AS 供应商, " &
  22. " SUM(RT_SYS_CHEM_OUT.WEIGHT) AS 用量 " &
  23. " FROM RT_SYS_CHEM_MAIN LEFT OUTER JOIN " &
  24. " RT_SYS_CHEM_OUT ON RT_SYS_CHEM_MAIN.name = RT_SYS_CHEM_OUT.NAME " &
  25. " WHERE (RT_SYS_CHEM_MAIN.stock1 + RT_SYS_CHEM_MAIN.stock2 + RT_SYS_CHEM_MAIN.stock3 <> 0) " &
  26. " GROUP BY RT_SYS_CHEM_MAIN.name, " &
  27. " RT_SYS_CHEM_MAIN.stock1 + RT_SYS_CHEM_MAIN.stock2 + RT_SYS_CHEM_MAIN.stock3, " &
  28. " RT_SYS_CHEM_MAIN.price, RT_SYS_CHEM_MAIN.CLASS1, RT_SYS_CHEM_MAIN.supplier) " &
  29. " AS p " &
  30. " WHERE (用量 Is NULL) order by 品名 "
  31. cmd.CommandText = sql
  32. da.SelectCommand = cmd
  33. da.Fill(dt)
  34. dgv30.DataSource = dt
  35. dgv30.Columns(0).Width = 200
  36. dgv30.Columns(1).Width = 60
  37. dgv30.Columns(2).Width = 60
  38. dgv30.Columns(3).Width = 100
  39. dgv30.Columns(4).Width = 80
  40. Dim dt1 As New DataTable
  41. sql = "SELECT name as 品名, stock1+stock2+stock3 as 库存数, price as 单价, class1 as 化工类型, supplier as 供应商 FROM rt_sys_chem_main where stock1+stock2+stock3<>0 order by name "
  42. cmd.CommandText = sql
  43. da.SelectCommand = cmd
  44. da.Fill(dt1)
  45. dt1.Columns.Add("最后使用")
  46. dt1.Columns.Add("数量")
  47. Dim dr As SqlDataReader
  48. For x As Integer = 0 To dt1.Rows.Count - 1
  49. sql = "select top(1) convert(varchar,date,111) as date1,cast(sum(weight) as numeric(10,1)) as 重量 from rt_sys_chem_out where name =N'" & dt1.Rows(x).Item("品名") & "' group by date order by date desc"
  50. cmd.CommandText = sql
  51. dr = cmd.ExecuteReader
  52. While dr.Read
  53. dt1.Rows(x).Item("最后使用") = dr("date1")
  54. dt1.Rows(x).Item("数量") = dr("重量")
  55. End While
  56. dr.Close()
  57. Next
  58. dgv.DataSource = dt1
  59. dgv.Columns(0).Width = 200
  60. dgv.Columns(1).Width = 60
  61. dgv.Columns(2).Width = 60
  62. dgv.Columns(3).Width = 100
  63. dgv.Columns(4).Width = 80
  64. End Sub
  65. End Class