Sin descripción
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.

Frm_RT_VF_ORDER.vb 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  1. Imports System.Data.SqlClient
  2. Imports System.Reflection
  3. Public Class Frm_RT_VF_ORDER
  4. Dim cmd As New SqlCommand
  5. Dim da As New SqlDataAdapter
  6. Dim dt As New DataTable
  7. Dim conn As New SqlConnection
  8. Dim sql As String
  9. Private Sub Frm_RT_VF_ORDER_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  10. Dim type As Type = dgv_main.GetType()
  11. Dim pi As PropertyInfo = type.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
  12. pi.SetValue(dgv_main, True, Nothing)
  13. conn.ConnectionString = connstring
  14. conn.Open()
  15. cmd.Connection = conn
  16. sql = "select * from rt_vf_order_detail"
  17. cmd.CommandText = sql
  18. da.SelectCommand = cmd
  19. da.Fill(dt)
  20. 'For x As Integer = 0 To dt.Rows.Count - 1
  21. ' Dim p() As String
  22. ' Dim p1() As String
  23. ' Dim my_qty As Double = 0
  24. ' Dim my_qty1 As Double = 0
  25. ' p = Split(dt.Rows(x).Item("ship_qty").ToString, "=") '-----发货
  26. ' If UBound(p) > 0 Then
  27. ' Dim q() As String
  28. ' q = Split(p(1), "+")
  29. ' For y As Integer = 0 To UBound(q)
  30. ' my_qty = my_qty + Val(q(y))
  31. ' Next
  32. ' Else
  33. ' If IsDBNull(dt.Rows(x).Item("ship_qty")) Then
  34. ' my_qty = 0
  35. ' Else
  36. ' my_qty = Val(dt.Rows(x).Item("ship_qty"))
  37. ' End If
  38. ' End If
  39. ' p1 = Split(dt.Rows(x).Item("order_qty"), "=") '-----订单
  40. ' If UBound(p1) > 0 Then
  41. ' Dim q1() As String
  42. ' q1 = Split(p1(1), "-")
  43. ' For y As Integer = 0 To UBound(q1)
  44. ' my_qty1 = my_qty1 + Val(q1(y))
  45. ' Next
  46. ' Else
  47. ' my_qty1 = Val(dt.Rows(x).Item("order_qty"))
  48. ' End If
  49. ' sql = "update rt_vf_order_detail set ship_qty1= '" & my_qty & "',order_qty1='" & my_qty1 & "' where po_no='" & dt.Rows(x).Item("po_no") & "' and ship_qty='" & dt.Rows(x).Item("ship_qty") & "' and color=N'" & dt.Rows(x).Item("color") & "' and cust=N'" & dt.Rows(x).Item("cust") & "'"
  50. ' cmd.CommandText = sql
  51. ' cmd.ExecuteScalar()
  52. 'Next
  53. dt = New DataTable
  54. ' sql = "SELECT po_no AS 订单号, date_style AS [下单日/型体号], cust AS 客户, color AS 颜色, thick AS 厚度, card AS 开卡,
  55. ' card_qty AS 开卡数量, order_qty AS 订单数量, item AS 项次, tag AS 标千打印, material_no AS 料号, month AS 月份,
  56. ' due_date AS 交期, ship_date AS 发货日期, ship_qty AS 发货数量, order_month AS 订单月份, comment AS 备注,
  57. ' ship_qty1, order_qty1
  58. 'FROM RT_VF_Order_Detail
  59. 'WHERE id IS NULL"
  60. ' cmd.CommandText = sql
  61. ' da.SelectCommand = cmd
  62. ' da.Fill(dt)
  63. ' For x As Integer = 0 To dt.Rows.Count - 1
  64. ' Dim p() As String
  65. ' p = Split(dt.Rows(x).Item("发货日期"), "/")
  66. ' Dim my_date As String = ""
  67. ' For y As Integer = 0 To UBound(p)
  68. ' Dim q() As String
  69. ' q = Split(p(y), ".")
  70. ' If q(0) <> "2019" Then
  71. ' If q(0) = "12" Then
  72. ' p(y) = "2019." + p(y)
  73. ' ElseIf q(0) = "2020" Then
  74. ' Else
  75. ' p(y) = "2020." + p(y)
  76. ' End If
  77. ' End If
  78. ' 'If q(0) <> "2019" Then
  79. ' ' p(y) = "2019." + p(y)
  80. ' 'Else
  81. ' ' If q(0) = "2020" Then
  82. ' ' q(0) = p(y)
  83. ' ' Else
  84. ' ' p(y) = "2019." + p(y)
  85. ' ' End If
  86. ' 'End If
  87. ' If y = 0 Then
  88. ' my_date = p(y)
  89. ' Else
  90. ' my_date = my_date + "/" + p(y)
  91. ' End If
  92. ' Next
  93. ' sql = "update RT_VF_Order_Detail set ship_Date1='" & my_date & "',CHECKED1='1' where po_no=N'" & dt.Rows(x).Item("订单号") & "' and date_style=N'" & dt.Rows(x).Item("下单日/型体号") & "' and cust=N'" & dt.Rows(x).Item("客户") & "' and color=N'" & dt.Rows(x).Item("颜色") & "' and order_qty='" & dt.Rows(x).Item("订单数量") & "'"
  94. ' cmd.CommandText = sql
  95. ' cmd.ExecuteNonQuery()
  96. ' Next
  97. dt = New DataTable
  98. sql = "SELECT po_no AS 订单号, date_style AS [下单日/型体号], cust AS 客户, color AS 颜色, thick AS 厚度, card AS 开卡,
  99. card_qty AS 开卡数量, order_qty AS 订单数量, item AS 项次, tag AS 标千打印, material_no AS 料号, month AS 月份,
  100. due_date AS 交期, ship_date1 AS 发货日期, ship_qty AS 发货记录,ship_qty1 as 发货数量,case when order_qty1-ship_qty1<0 then 0 else cast(order_qty1-ship_qty1 as numeric(10,1))end as 尾数, order_month AS 备注, comment AS 订单月份
  101. FROM RT_VF_Order_Detail"
  102. cmd.CommandText = sql
  103. da.SelectCommand = cmd
  104. da.Fill(dt)
  105. dgv_main.DataSource = dt
  106. dt = New DataTable
  107. sql = "select * from rt_user_dgv_set where user_name='" & gUserName & "' and user_form_name='frm_rt_vf_order'" '--------设定DGV栏宽
  108. cmd.CommandText = sql
  109. da.Fill(dt)
  110. For x As Integer = 0 To dt.Rows.Count - 1
  111. dgv_main.Columns(dt.Rows(x).Item("dgv_column")).Width = dt.Rows(x).Item("dgv_width")
  112. Next
  113. dt = New DataTable
  114. sql = "select po_no as 订单号,cust as 客户,count(*) as 笔数 from rt_vf_order_detail group by po_no,cust"
  115. cmd.CommandText = sql
  116. da.SelectCommand = cmd
  117. da.Fill(dt)
  118. dgv_group.DataSource = dt
  119. dgv_group.Columns(0).Width = 150
  120. dt = New DataTable
  121. sql = "select cust as 客户 from rt_vf_order_detail group by cust"
  122. cmd.CommandText = sql
  123. da.SelectCommand = cmd
  124. da.Fill(dt)
  125. dgv_cust.DataSource = dt
  126. End Sub
  127. Private Sub dgv_cust_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_cust.CellClick
  128. dt = New DataTable
  129. sql = "SELECT po_no AS 订单号, date_style AS [下单日/型体号], cust AS 客户, color AS 颜色, thick AS 厚度, card AS 开卡,
  130. card_qty AS 开卡数量, order_qty AS 订单数量, item AS 项次, tag AS 标千打印, material_no AS 料号, month AS 月份,
  131. due_date AS 交期, ship_date AS 发货日期, ship_qty AS 发货记录,ship_qty1 as 发货数量,case when order_qty1-ship_qty1<0 then 0 else cast(order_qty1-ship_qty1 as numeric(10,1))end as 尾数, order_month AS 备注, comment AS 订单月份
  132. FROM RT_VF_Order_Detail where cust=N'" & dgv_cust.Rows(dgv_cust.CurrentCell.RowIndex).Cells("客户").Value & "'"
  133. cmd.CommandText = sql
  134. da.SelectCommand = cmd
  135. da.Fill(dt)
  136. dgv_main.DataSource = dt
  137. dt = New DataTable
  138. sql = "select po_no as 订单号,count(*) as 笔数 from rt_vf_order_detail where cust=N'" & dgv_cust.Rows(dgv_cust.CurrentCell.RowIndex).Cells("客户").Value & "' group by po_no"
  139. cmd.CommandText = sql
  140. da.SelectCommand = cmd
  141. da.Fill(dt)
  142. dgv_group.DataSource = dt
  143. End Sub
  144. Private Sub dgv_main_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_main.CellContentClick
  145. End Sub
  146. Private Sub dgv_group_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_group.CellClick
  147. dt = New DataTable
  148. sql = "SELECT po_no AS 订单号, date_style AS [下单日/型体号], cust AS 客户, color AS 颜色, thick AS 厚度, card AS 开卡,
  149. card_qty AS 开卡数量, order_qty AS 订单数量, item AS 项次, tag AS 标千打印, material_no AS 料号, month AS 月份,
  150. due_date AS 交期, ship_date AS 发货日期, ship_qty AS 发货记录,ship_qty1 as 发货数量,case when order_qty1-ship_qty1<0 then 0 else cast(order_qty1-ship_qty1 as numeric(10,1))end as 尾数, order_month AS 备注, comment AS 订单月份
  151. FROM RT_VF_Order_Detail where po_no='" & dgv_group.Rows(dgv_group.CurrentCell.RowIndex).Cells("订单号").Value & "'"
  152. cmd.CommandText = sql
  153. da.SelectCommand = cmd
  154. da.Fill(dt)
  155. dgv_main.DataSource = dt
  156. End Sub
  157. Private Sub Frm_RT_VF_ORDER_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  158. If MessageBox.Show("是否将表格格式存档?", "提醒", MessageBoxButtons.YesNo) = MsgBoxResult.No Then
  159. 'e.Cancel = True
  160. Else
  161. sql = "delete from rt_user_dgv_set where user_name='" & gUserName & "' and user_form_name='" & Me.Name & "'"
  162. cmd.CommandText = sql
  163. cmd.ExecuteScalar()
  164. For x As Integer = 0 To dgv_main.ColumnCount - 1
  165. sql = "insert into rt_user_dgv_set (user_name,user_form_name,dgv_name,dgv_column,dgv_width) values ('" & gUserName & "','" & Me.Name & "','dgv_main','" & x & "','" & dgv_main.Columns(x).Width & "')"
  166. cmd.CommandText = sql
  167. cmd.ExecuteScalar()
  168. Next
  169. MsgBox("格式储存完成")
  170. End If
  171. End Sub
  172. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  173. Dim year1 As Integer = Year(DateTimePicker1.Value)
  174. Dim year2 As Integer = Year(DateTimePicker2.Value)
  175. Dim month1 As Integer = Month(DateTimePicker1.Value)
  176. Dim month2 As Integer = Month(DateTimePicker2.Value)
  177. dt = New DataTable
  178. da.SelectCommand = cmd
  179. Dim dr As SqlDataReader
  180. 'DateTimePicker1.CustomFormat = "yyyy.MM.dd"
  181. 'DateTimePicker1.Format = DateTimePickerFormat.Custom
  182. 'DateTimePicker2.CustomFormat = "yyyy.MM.dd"
  183. 'DateTimePicker2.Format = DateTimePickerFormat.Custom
  184. sql = " Select po_no As 订单号, cust As 客户, COUNT(*) As 交货笔数,id From RT_VF_Order_Detail Where (ship_date1 Like '%." & month1 & ".%') and (ship_date1 Like '%." & month2 & ".%') GROUP BY po_no, cust,id Order By 订单号"
  185. sql = "SELECT RT_VF_Order_Detail.po_no AS 订单号, RT_VF_Order_Detail.cust AS 客户, COUNT(*) AS 交货笔数, RT_SHIP_RECORD.id FROM RT_SHIP_RECORD LEFT OUTER JOIN RT_VF_Order_Detail ON RT_SHIP_RECORD.id = RT_VF_Order_Detail.id WHERE (RT_SHIP_RECORD.ship_date BETWEEN '" & String.Format("{0:yyyy.MM.dd}", DateTimePicker1.Value) & "' and '" & String.Format("{0:yyyy.MM.dd}", DateTimePicker2.Value) & "') GROUP BY RT_VF_Order_Detail.po_no, RT_VF_Order_Detail.cust, RT_SHIP_RECORD.id"
  186. sql = "SELECT 日期, 订单号, 客户, CAST(SUM(数量) AS numeric(10, 1)) AS 数量, COUNT(*) AS 笔数 FROM (SELECT RT_SHIP_RECORD.id, REPLACE(RT_SHIP_RECORD.ship_date, '.', '/') AS 日期, RT_SHIP_RECORD.ship_qty AS 数量, RT_VF_Order_Detail.po_no AS 订单号, RT_VF_Order_Detail.cust AS 客户 FROM RT_SHIP_RECORD INNER JOIN RT_VF_Order_Detail ON RT_SHIP_RECORD.id = RT_VF_Order_Detail.id WHERE (REPLACE(RT_SHIP_RECORD.ship_date, '.', '/') BETWEEN '" & DateTimePicker1.Value & "' and '" & DateTimePicker2.Value & "')) AS p GROUP BY 日期, 客户, 订单号"
  187. sql = "SELECT cust AS 客户, po_no AS 订单号, CAST(SUM(ship_qty) AS numeric(10, 1)) AS 数量, COUNT(*) AS 笔数 FROM (SELECT RT_SHIP_RECORD.id, RT_SHIP_RECORD.ship_date, RT_SHIP_RECORD.ship_qty, RT_VF_Order_Detail.po_no, RT_VF_Order_Detail.cust FROM RT_SHIP_RECORD INNER JOIN RT_VF_Order_Detail ON RT_SHIP_RECORD.id = RT_VF_Order_Detail.id WHERE (REPLACE(RT_SHIP_RECORD.ship_date, '.', '/') BETWEEN '" & DateTimePicker1.Value & "' and '" & DateTimePicker2.Value & "')) AS p GROUP BY cust, po_no ORDER BY 客户, 订单号"
  188. cmd.CommandText = sql
  189. da.Fill(dt)
  190. dt.Columns.Add("订单笔数")
  191. dt.Columns.Add("是否满单")
  192. For x As Integer = 0 To dt.Rows.Count - 1
  193. sql = "select count(*) as 笔数 from RT_VF_Order_Detail where po_no='" & dt.Rows(x).Item("订单号") & "'"
  194. cmd.CommandText = sql
  195. dr = cmd.ExecuteReader
  196. dr.Read()
  197. If dr("笔数").ToString = "" Then
  198. dt.Rows(x).Item("订单笔数") = 0
  199. Else
  200. dt.Rows(x).Item("订单笔数") = dr("笔数").ToString
  201. End If
  202. dr.Close()
  203. sql = "SELECT SUM(尾数) AS 尾数
  204. FROM (SELECT po_no AS 订单号, date_style AS [下单日/型体号], cust AS 客户, color AS 颜色, thick AS 厚度, card AS 开卡,
  205. card_qty AS 开卡数量, order_qty AS 订单数量, item AS 项次, tag AS 标千打印, material_no AS 料号,
  206. month AS 月份, due_date AS 交期, ship_date AS 发货日期, ship_qty AS 发货记录, ship_qty1 AS 发货数量,
  207. CASE WHEN order_qty1 - ship_qty1 < 0 THEN 0 ELSE CAST(order_qty1 - ship_qty1 AS numeric(10, 1))
  208. END AS 尾数
  209. FROM RT_VF_Order_Detail
  210. WHERE po_no='" & dt.Rows(x).Item("订单号") & "') AS p"
  211. cmd.CommandText = sql
  212. dr = cmd.ExecuteReader
  213. dr.Read()
  214. If Val(dr("尾数")) = 0 Then
  215. dt.Rows(x).Item("是否满单") = "是"
  216. Else
  217. dt.Rows(x).Item("是否满单") = "否"
  218. End If
  219. dr.Close()
  220. Next
  221. dgv_query.DataSource = dt
  222. For x As Integer = 0 To dgv_query.Rows.Count - 1
  223. If dgv_query.Rows(x).Cells("是否满单").Value = "否" Then
  224. dgv_query.Rows(x).DefaultCellStyle.BackColor = Color.LightPink
  225. End If
  226. Next
  227. dt = New DataTable
  228. 'sql = "select * from rt_vf_order_detail "
  229. 'cmd.CommandText = sql
  230. 'da.SelectCommand = cmd
  231. 'da.Fill(dt)
  232. 'For x As Integer = 0 To dt.Rows.Count - 1 '-------寫入ID
  233. ' sql = "update RT_VF_Order_Detail set id='" & x + 1 & "' where po_no=N'" & dt.Rows(x).Item("po_no") & "' and date_style=N'" & dt.Rows(x).Item("date_style") & "' and cust=N'" & dt.Rows(x).Item("cust") & "' and color=N'" & dt.Rows(x).Item("color") & "' and order_qty='" & dt.Rows(x).Item("order_qty") & "'"
  234. ' cmd.CommandText = sql
  235. ' cmd.ExecuteNonQuery()
  236. 'Next
  237. 'dt = New DataTable
  238. 'sql = "select * from rt_vf_order_detail "
  239. 'cmd.CommandText = sql
  240. 'da.SelectCommand = cmd
  241. 'da.Fill(dt)
  242. 'For x As Integer = 0 To dt.Rows.Count - 1
  243. ' Dim p() As String
  244. ' Dim pp() As Double
  245. ' Dim q() As String
  246. ' Dim qq() As String
  247. ' Dim qqq() As Double
  248. ' p = Split(dt.Rows(x).Item("ship_date1"), "/") '---日期
  249. ' q = Split(dt.Rows(x).Item("ship_qty"), "=") '---数量
  250. ' If UBound(q) > 0 Then
  251. ' qq = Split(q(1), "+")
  252. ' Else
  253. ' ReDim qq(0)
  254. ' qq(0) = q(0)
  255. ' End If
  256. ' For y As Integer = 0 To UBound(p)
  257. ' sql = "insert into rt_ship_record (id,ship_date,ship_qty) values('" & dt.Rows(x).Item("id") & "','" & p(y) & "','" & qq(y) & "')" '---寫入出貨記錄
  258. ' cmd.CommandText = sql
  259. ' cmd.ExecuteScalar()
  260. ' Next
  261. 'Next
  262. ' MsgBox("")
  263. dgv_query.Columns(0).Width = 80
  264. dgv_query.Columns(1).Width = 180
  265. dgv_query.Columns(2).Width = 80
  266. dgv_query.Columns(3).Width = 80
  267. dgv_query.Columns(4).Width = 80
  268. End Sub
  269. Private Sub dgv_query_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_query.CellClick
  270. dt = New DataTable
  271. sql = "SELECT po_no AS 订单号, date_style AS [下单日/型体号], cust AS 客户, color AS 颜色, thick AS 厚度, card AS 开卡,
  272. card_qty AS 开卡数量, order_qty AS 订单数量, item AS 项次, tag AS 标千打印, material_no AS 料号, month AS 月份,
  273. due_date AS 交期, ship_date AS 发货日期, ship_qty AS 发货记录,ship_qty1 as 发货数量,case when order_qty1-ship_qty1<0 then 0 else cast(order_qty1-ship_qty1 as numeric(10,1))end as 尾数, order_month AS 备注, comment AS 订单月份
  274. FROM RT_VF_Order_Detail where po_no='" & dgv_query.Rows(dgv_query.CurrentCell.RowIndex).Cells("订单号").Value & "'"
  275. cmd.CommandText = sql
  276. da.SelectCommand = cmd
  277. da.Fill(dt)
  278. dgv_main.DataSource = dt
  279. End Sub
  280. End Class