Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

Frm_BG_CHEM.vb 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. Imports System.Data.SqlClient
  2. Imports System.Reflection
  3. Public Class Frm_BG_CHEM
  4. Dim cmd As New SqlCommand
  5. Dim da As New SqlDataAdapter
  6. Dim my_index1(3) As Integer
  7. Dim sql As String
  8. Dim conn As New SqlConnection
  9. Dim dgv() As DataGridView
  10. Dim lbl() As Label
  11. Private Sub Frm_BG_CHEM_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  12. conn.ConnectionString = connstring
  13. conn.Open()
  14. cmd.Connection = conn
  15. End Sub
  16. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  17. Dim dt As New DataTable
  18. sql = "SELECT p.品名, p.单价, p.库存, p.化工分类, p.海关分类, p.供应商, p.产地, CAST(SUM(RT_SYS_CHEM_OUT.WEIGHT*1.5) AS numeric(10, 0)) AS 用量, YEAR(RT_SYS_CHEM_OUT.DATE) AS 年, MONTH(RT_SYS_CHEM_OUT.DATE) AS 月 FROM (SELECT TOP (100) PERCENT RT_SYS_CHEM_MAIN.name AS 品名, RT_SYS_CHEM_MAIN.price_usd AS 单价, RT_SYS_CHEM_MAIN.stock1 + RT_SYS_CHEM_MAIN.stock3 AS 库存,RT_SYS_CHEM_MAIN.CLASS1 AS 化工分类, RT_SYS_CHEM_MAIN.CLASS2 AS 海关分类,RT_SYS_CHEM_MAIN.supplier AS 供应商, RT_SYS_CHEM_MAIN.origin AS 产地, RT_BG_MTL_NAME.SERIAL AS no FROM RT_SYS_CHEM_MAIN LEFT OUTER JOIN RT_BG_MTL_NAME ON RT_SYS_CHEM_MAIN.CLASS2 = RT_BG_MTL_NAME.NAME WHERE (RT_SYS_CHEM_MAIN.CLASS2 IS NOT NULL) AND (RT_BG_MTL_NAME.SERIAL IS NOT NULL) AND (RT_SYS_CHEM_MAIN.origin IS NOT NULL)) AS p LEFT OUTER JOIN RT_SYS_CHEM_OUT ON p.品名 = RT_SYS_CHEM_OUT.NAME WHERE (YEAR(RT_SYS_CHEM_OUT.DATE) = 2019) AND (MONTH(RT_SYS_CHEM_OUT.DATE) = 12) GROUP BY p.品名, p.单价, p.库存, p.化工分类, p.海关分类, p.供应商, p.产地, YEAR(RT_SYS_CHEM_OUT.DATE), MONTH(RT_SYS_CHEM_OUT.DATE), p.no ORDER BY p.no,p.供应商,p.产地"
  19. cmd.CommandText = sql
  20. da.SelectCommand = cmd
  21. da.Fill(dt)
  22. dt.Columns.Add("本期用量")
  23. dt.Columns.Add("结存")
  24. dt.Columns.Add("尚馀")
  25. dt.Columns.Add("订货").SetOrdinal(8)
  26. dt.Columns.Add("本期进口").SetOrdinal(3)
  27. dt.Columns("本期用量").SetOrdinal(4)
  28. dt.Columns("结存").SetOrdinal(5)
  29. dt.Columns("用量").SetOrdinal(6)
  30. dt.Columns("尚馀").SetOrdinal(7)
  31. For x As Integer = 0 To dt.Rows.Count - 1
  32. sql = "select sum(qty) 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("品名") & "'"
  33. cmd.CommandText = sql
  34. If IsDBNull(cmd.ExecuteScalar) Then
  35. dt.Rows(x).Item("本期进口") = 0
  36. Else
  37. dt.Rows(x).Item("本期进口") = cmd.ExecuteScalar
  38. End If
  39. sql = "select sum(qty) from rt_chem_container where received is null and name =N'" & dt.Rows(x).Item("品名") & "'"
  40. cmd.CommandText = sql
  41. If IsDBNull(cmd.ExecuteScalar) Then
  42. dt.Rows(x).Item("订货") = 0
  43. Else
  44. dt.Rows(x).Item("订货") = cmd.ExecuteScalar
  45. End If
  46. sql = "select cast(sum(weight) as numeric(10,0)) as weight from rt_sys_chem_out where year(date)='" & Year(dtp2.Value) & "' and month(date)='" & Month(dtp2.Value) & "' and name =N'" & dt.Rows(x).Item("品名") & "'"
  47. cmd.CommandText = sql
  48. If IsDBNull(cmd.ExecuteScalar) Then
  49. dt.Rows(x).Item("本期用量") = 0
  50. dt.Rows(x).Item("结存") = dt.Rows(x).Item("库存") + dt.Rows(x).Item("本期进口")
  51. Else
  52. dt.Rows(x).Item("本期用量") = cmd.ExecuteScalar
  53. dt.Rows(x).Item("结存") = dt.Rows(x).Item("库存") + dt.Rows(x).Item("本期进口") - dt.Rows(x).Item("本期用量")
  54. End If
  55. dt.Rows(x).Item("尚馀") = Math.Round(dt.Rows(x).Item("结存") / dt.Rows(x).Item("用量"), 1)
  56. Next
  57. dgv1.DataSource = dt
  58. dgv1.Columns(0).Width = 180
  59. dgv1.Columns(1).Width = 60
  60. dgv1.Columns(2).Width = 60
  61. dgv1.Columns(3).Width = 80
  62. dgv1.Columns(4).Width = 80
  63. dgv1.Columns(5).Width = 80
  64. dgv1.Columns(6).Width = 80
  65. dgv1.Columns(7).Width = 80
  66. dgv1.Columns(8).Width = 80
  67. dgv1.Columns(9).Width = 80
  68. End Sub
  69. End Class