説明なし
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

FrmTienMei.vb 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. Imports System.Data.SqlClient
  2. Imports System.Net
  3. Public Class FrmTienMei
  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. Private dateTimePicker1 As DateTimePicker
  10. Dim p() As String
  11. Dim my_cust As String = ""
  12. Dim colorArray(10) As Color
  13. Private Sub FrmTienMei_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  14. conn.ConnectionString = connstring
  15. conn.Open()
  16. cmd.Connection = conn
  17. colorArray(0) = Color.FromName("beige")
  18. colorArray(1) = Color.FromName("azure")
  19. colorArray(2) = Color.FromName("Aquamarine")
  20. colorArray(3) = Color.FromName("gainsboro")
  21. colorArray(4) = Color.FromName("LightBlue")
  22. colorArray(5) = Color.FromName("LightSalmon")
  23. dt = New DataTable
  24. sql = "SELECT dep as 交货单位, wh as 收货仓库, cast(SUM(qty) as numeric(10,1)) AS 数量 FROM rt_TienMei_In GROUP BY dep, wh"
  25. cmd.CommandText = sql
  26. da.SelectCommand = cmd
  27. da.Fill(dt)
  28. dgv1.DataSource = dt
  29. dgv1.Columns(0).Width = 100
  30. dgv1.Columns(1).Width = 100
  31. dgv1.Columns(2).Width = 100
  32. sql = "SELECT date as 日期,dep as 交货单位, wh as 收货仓库, cast(SUM(qty) as numeric(10,1)) AS 数量 FROM rt_TienMei_In GROUP BY date,dep, wh order by date desc"
  33. cmd.CommandText = sql
  34. dt = New DataTable
  35. da.SelectCommand = cmd
  36. da.Fill(dt)
  37. dgv2.DataSource = dt
  38. dgv2.Columns(0).Width = 100
  39. dgv2.Columns(1).Width = 100
  40. dgv2.Columns(2).Width = 100
  41. With dgv2.Columns("数量").DefaultCellStyle
  42. .Format = "n1"
  43. .Alignment = DataGridViewContentAlignment.MiddleRight
  44. End With
  45. sql = "SELECT p.日期, p.交货单位, p.收货仓库, p.数量, CAST(SUM(Rt_measure_daily.sf) AS numeric(10, 1)) AS 打尺,
  46. CAST(p.数量 - SUM(Rt_measure_daily.sf) AS numeric(10, 1)) AS 差异
  47. FROM (SELECT TOP (100) PERCENT date AS 日期, dep AS 交货单位, wh AS 收货仓库, CAST(SUM(qty) AS numeric(10, 1))
  48. AS 数量
  49. FROM rt_TienMei_In
  50. WHERE (date BETWEEN '2024/6/1' AND '2024/6/30') AND (dep = N'修剪、成检、量尺、包装-R') AND
  51. (name NOT LIKE N'%贴膜%') AND (name NOT LIKE '%加工%')
  52. GROUP BY date, dep, wh
  53. ORDER BY 日期 DESC) AS p LEFT OUTER JOIN
  54. Rt_measure_daily ON p.日期 = Rt_measure_daily.date
  55. WHERE (Rt_measure_daily.cust <> N'白总加工') AND (Rt_measure_daily.cust <> N'老白') AND (Rt_measure_daily.cust <> N'白彦其')
  56. AND (Rt_measure_daily.cust <> N'本厂皮')
  57. GROUP BY p.日期, p.交货单位, p.收货仓库, p.数量
  58. ORDER BY p.日期 DESC"
  59. cmd.CommandText = sql
  60. dt = New DataTable
  61. da.SelectCommand = cmd
  62. da.Fill(dt)
  63. dgv3.DataSource = dt
  64. dgv3.Columns(0).Width = 100
  65. dgv3.Columns(1).Width = 100
  66. dgv3.Columns(2).Width = 100
  67. With dgv3.Columns("数量").DefaultCellStyle
  68. .Format = "n1"
  69. .Alignment = DataGridViewContentAlignment.MiddleRight
  70. End With
  71. sql = "select case when area=N'漳浦' then N'大鼓' else N'中小鼓' end as 转鼓, sum(weight) from rt_retan_record_d where date between '2024/6/1' and '2024/6/30' group by area"
  72. cmd.CommandText = sql
  73. dt = New DataTable
  74. da.SelectCommand = cmd
  75. da.Fill(dt)
  76. dgv_retan.DataSource = dt
  77. sql = "SELECT p.CARD, p.CUST, p.COLOR, RT_RETAN_RECORD_D_1.DATE, RT_RETAN_RECORD_D_1.class,
  78. RT_RETAN_RECORD_D_1.type, RT_RETAN_RECORD_D_1.dd
  79. FROM (SELECT CARD, CUST, COLOR
  80. FROM RT_RETAN_RECORD_D
  81. WHERE (DATE BETWEEN '2024/6/1' AND '2024/6/30')
  82. GROUP BY CARD, CUST, COLOR
  83. HAVING (COUNT(*) > 1)) AS p INNER JOIN
  84. RT_RETAN_RECORD_D AS RT_RETAN_RECORD_D_1 ON p.CARD = RT_RETAN_RECORD_D_1.CARD
  85. ORDER BY p.CARD, RT_RETAN_RECORD_D_1.DATE"
  86. cmd.CommandText = sql
  87. dt = New DataTable
  88. da.SelectCommand = cmd
  89. da.Fill(dt)
  90. dgv_retan1.DataSource = dt
  91. sql = "SELECT TOP (100) PERCENT rt_TienMei_In.date AS 日期, rt_TienMei_In.dep AS 交货单位, rt_TienMei_In.wh AS 收货仓库,
  92. CAST(SUM(rt_TienMei_In.qty) AS numeric(10, 1)) AS 数量, rt_TienMei_In.code, rt_TienMei_In.name, rt_TienMei_In.lot,
  93. Rt_measure_daily.card, Rt_measure_daily.source, Rt_measure_daily.sf,
  94. CAST(SUM(rt_TienMei_In.qty - Rt_measure_daily.sf) AS numeric(10, 1)) AS Expr1, Rt_measure_daily.sys_source
  95. FROM rt_TienMei_In FULL OUTER JOIN
  96. Rt_measure_daily ON rt_TienMei_In.qty = Rt_measure_daily.sf AND rt_TienMei_In.date = Rt_measure_daily.date
  97. WHERE (rt_TienMei_In.date BETWEEN '2024/6/1' AND '2024/6/30') AND (rt_TienMei_In.dep = N'修剪、成检、量尺、包装-R') AND
  98. (rt_TienMei_In.name NOT LIKE N'%贴膜%')
  99. GROUP BY rt_TienMei_In.date, rt_TienMei_In.dep, rt_TienMei_In.wh, rt_TienMei_In.code, rt_TienMei_In.name, rt_TienMei_In.lot,
  100. Rt_measure_daily.card, Rt_measure_daily.source, Rt_measure_daily.sf, Rt_measure_daily.sys_source
  101. ORDER BY expr1"
  102. 'cmd.CommandText = sql
  103. 'dt = New DataTable
  104. 'da.SelectCommand = cmd
  105. 'da.Fill(dt)
  106. 'dgv3.DataSource = dt
  107. 'dgv3.Columns(0).Width = 100
  108. 'dgv3.Columns(1).Width = 100
  109. 'dgv3.Columns(2).Width = 100
  110. 'With dgv3.Columns("数量").DefaultCellStyle
  111. ' .Format = "n1"
  112. ' .Alignment = DataGridViewContentAlignment.MiddleRight
  113. 'End With
  114. Set_grid_color()
  115. End Sub
  116. Private Sub Set_grid_color()
  117. Dim c As Integer = 1
  118. Dim p(1000) As Integer
  119. Dim x As Integer
  120. p(1) = 0
  121. For x = 1 To dgv2.Rows.Count - 2
  122. If dgv2.Rows(x).Cells(1).Value.ToString <> dgv2.Rows(x - 1).Cells(1).Value.ToString Then
  123. p(c + 1) = x
  124. c = c + 1
  125. End If
  126. Next
  127. p(c + 1) = x
  128. ReDim Preserve p(x)
  129. If c = 1 Then
  130. For z As Integer = 0 To x - 1
  131. dgv2.Rows(z).DefaultCellStyle.BackColor = colorArray(1)
  132. Next
  133. Else
  134. For cc As Integer = 1 To c
  135. For z As Integer = p(cc) To p(cc + 1) - 1
  136. dgv2.Rows(z).DefaultCellStyle.BackColor = colorArray(cc Mod 5)
  137. Next
  138. Next
  139. End If
  140. End Sub
  141. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  142. Dim dt As New DataTable
  143. Dim file_name As String = ""
  144. Dim a As Integer = 0
  145. Dim my_count As Integer = 0
  146. If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
  147. file_name = OpenFileDialog1.FileName
  148. End If
  149. Dim filepath As String = "k3/在制品"
  150. Dim sourceFileName As String = file_name
  151. Dim address2 As String = "ftp://" & my_ip & ":7788/" & filepath & "/" & OpenFileDialog1.SafeFileName
  152. Dim address3() As String
  153. address3 = Split(address2, "ftp://" & my_ip & ":7788/")
  154. Dim add4 As String
  155. add4 = "d:\k3\在制品\" & OpenFileDialog1.SafeFileName
  156. Dim userName As String = "matchy3c"
  157. Dim password As String = "Lafayette11"
  158. Dim showUI As Boolean = True
  159. Dim connectionTimeout As Integer = 500
  160. Dim client As WebClient = New WebClient
  161. client.Credentials = New NetworkCredential(userName, password)
  162. client.Proxy = GlobalProxySelection.GetEmptyWebProxy()
  163. client.UploadFile(address2, sourceFileName)
  164. sql = "delete from rt_TienMei_In" '-------
  165. cmd.CommandText = sql
  166. cmd.ExecuteNonQuery()
  167. sql = "Select * FROM OPENDATASOURCE ('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=Yes;IMEX=1;Database=" & add4 & "')...[产品入库序时簿$]"
  168. cmd.CommandText = sql
  169. da.SelectCommand = cmd
  170. da.Fill(dt)
  171. ' dgv1.DataSource = dt
  172. 'dt.Columns.Add("filename")
  173. 'For x As Integer = 0 To dt.Rows.Count - 1
  174. ' dt.Rows(x).Item("filename") = file_name
  175. 'Next
  176. Dim my_sqlbulk As New SqlBulkCopy(conn)
  177. my_sqlbulk.DestinationTableName = "dbo.rt_TienMei_In"
  178. my_sqlbulk.WriteToServer(dt)
  179. MsgBox("导入完成!")
  180. dt = New DataTable
  181. sql = "SELECT dep as 交货单位, wh as 收货仓库, cast(SUM(qty) as numeric(10,1)) AS 数量 FROM rt_TienMei_In GROUP BY dep, wh"
  182. cmd.CommandText = sql
  183. da.SelectCommand = cmd
  184. da.Fill(dt)
  185. dgv1.DataSource = dt
  186. dgv1.Columns(0).Width = 100
  187. dgv1.Columns(1).Width = 100
  188. dgv1.Columns(2).Width = 100
  189. sql = "SELECT date as 日期,dep as 交货单位, wh as 收货仓库, cast(SUM(qty) as numeric(10,1)) AS 数量 FROM rt_TienMei_In GROUP BY date,dep, wh order by date desc"
  190. cmd.CommandText = sql
  191. dt = New DataTable
  192. da.SelectCommand = cmd
  193. da.Fill(dt)
  194. dgv2.DataSource = dt
  195. dgv2.Columns(0).Width = 100
  196. dgv2.Columns(1).Width = 100
  197. dgv2.Columns(2).Width = 100
  198. With dgv2.Columns("数量").DefaultCellStyle
  199. .Format = "n1"
  200. .Alignment = DataGridViewContentAlignment.MiddleRight
  201. End With
  202. sql = "SELECT p.日期, p.交货单位, p.收货仓库, p.数量, CAST(SUM(Rt_measure_daily.sf) AS numeric(10, 1)) AS 打尺,
  203. CAST(p.数量 - SUM(Rt_measure_daily.sf) AS numeric(10, 1)) AS 差异
  204. FROM (SELECT TOP (100) PERCENT date AS 日期, dep AS 交货单位, wh AS 收货仓库, CAST(SUM(qty) AS numeric(10, 1))
  205. AS 数量
  206. FROM rt_TienMei_In
  207. WHERE (date BETWEEN '2024/6/1' AND '2024/6/30') AND (dep = N'修剪、成检、量尺、包装-R') AND
  208. (name NOT LIKE N'%贴膜%') AND (name NOT LIKE '%加工%')
  209. GROUP BY date, dep, wh
  210. ORDER BY 日期 DESC) AS p LEFT OUTER JOIN
  211. Rt_measure_daily ON p.日期 = Rt_measure_daily.date
  212. WHERE (Rt_measure_daily.cust <> N'白总加工') AND (Rt_measure_daily.cust <> N'老白') AND (Rt_measure_daily.cust <> N'白彦其')
  213. AND (Rt_measure_daily.cust <> N'本厂皮')
  214. GROUP BY p.日期, p.交货单位, p.收货仓库, p.数量
  215. ORDER BY p.日期 DESC"
  216. cmd.CommandText = sql
  217. dt = New DataTable
  218. da.SelectCommand = cmd
  219. da.Fill(dt)
  220. dgv3.DataSource = dt
  221. dgv3.Columns(0).Width = 100
  222. dgv3.Columns(1).Width = 100
  223. dgv3.Columns(2).Width = 100
  224. With dgv3.Columns("数量").DefaultCellStyle
  225. .Format = "n1"
  226. .Alignment = DataGridViewContentAlignment.MiddleRight
  227. End With
  228. Set_grid_color()
  229. End Sub
  230. Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_retan.CellContentClick, dgv_retan1.CellContentClick
  231. End Sub
  232. End Class