Ei kuvausta
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_process.vb 30KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
  1. Imports System.Data.SqlClient
  2. Imports System.Reflection
  3. Imports System.Runtime.InteropServices
  4. Public Class Frm_process
  5. Dim cmd As New SqlCommand
  6. Dim da As New SqlDataAdapter
  7. Dim dt As New DataTable
  8. Dim sql As String
  9. Private Sub AddData(ByVal name As String, ByVal listX As ListBox, ByVal mph As Integer, ByVal hp As Integer, ByVal price As Decimal)
  10. ' Build a tab-delimited string.
  11. Dim txt As String = name & vbTab & mph.ToString() & " mph" & vbTab & hp.ToString() & " hp" & vbTab & price.ToString("C")
  12. ' Display in the ListBox and first TextBox.
  13. 'lstCars.Items.Add(txt)
  14. 'txtCars.Text &= txt & vbCrLf
  15. ' Display formatted.
  16. 'txtFormattedCars.Text &= String.Format("{0,-30}{1,7} mph{2,7} hp{3,15:C}" & vbCrLf, name, mph, hp, price)
  17. End Sub
  18. ' Set tab stops inside a ListBox.
  19. Private Sub SetListBoxTabs(ByVal lst As ListBox, ByVal tabs As IList(Of Integer))
  20. ' Make sure the control will use them.
  21. lst.UseTabStops = True
  22. lst.UseCustomTabOffsets = True
  23. ' Get the control's tab offset collection.
  24. Dim offsets As ListBox.IntegerCollection = ListBox12.CustomTabOffsets
  25. ' Define the tabs.
  26. For Each tab As Integer In tabs
  27. offsets.Add(tab)
  28. Next tab
  29. End Sub
  30. <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
  31. Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As Integer, ByVal lParam As Integer()) As IntPtr
  32. End Function
  33. Private Const EM_SETTABSTOPS As Integer = &HCB
  34. ' Set tab stops inside a TextBox.
  35. Private Sub SetTextBoxTabs(ByVal txt As TextBox, ByVal tabs As Integer())
  36. SendMessage(txt.Handle, EM_SETTABSTOPS, tabs.Length, tabs)
  37. End Sub
  38. Private Sub Frm_retan_record_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  39. DGV1.ReadOnly = True
  40. SetListBoxTabs(ListBox12, New Integer() {20, 45, 70})
  41. ' Me.MdiParent = FrmMDI
  42. Dim type As Type = DGV1.GetType()
  43. Dim pi As PropertyInfo = type.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
  44. pi.SetValue(DGV1, True, Nothing)
  45. Dim conn As New SqlConnection
  46. Dim DR As SqlDataReader
  47. 'connstring = "Data Source=127.0.0.1;Persist Security Info=True;User ID=sa;Password=Lafayette11;Initial Catalog=maindb_hy2014"
  48. conn.ConnectionString = connstring
  49. conn.Open()
  50. cmd.Connection = conn
  51. sql = "Select Top(300) card As 卡号, Date As 日期, cust As 客户, article As 品名, source As 皮源, selection As 选级, qty As 数量, sammy_qty As 挤水片数, sammy_qty1 AS 挤水尺数, chem, no, no1, date1, no2 From HT_WB where not(cust like N'%N/A%') order by date desc "
  52. cmd.CommandText = sql
  53. da.SelectCommand = cmd
  54. da.Fill(dt)
  55. DGV1.DataSource = dt
  56. ' DGV1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
  57. 'Dim DT1 As New DataTable
  58. 'sql = "SELECT MONTH AS 时间, SUM(Expr1) AS 重量, CLASS AS 类别, TYPE AS 染色, 颜色 FROM (SELECT MONTH, SUM(TOTAL) / 2 AS Expr1, CLASS, TYPE, CASE WHEN COLOR LIKE '%黑%' THEN '黑色' WHEN COLOR LIKE '%白%' THEN '白色' ELSE '彩色' END AS 颜色 FROM RT_RETAN_RECORD_D GROUP BY MONTH, CLASS, TYPE, COLOR) AS derivedtbl_1 GROUP BY MONTH, CLASS, TYPE, 颜色 ORDER BY 时间, 染色, 颜色"
  59. 'cmd.CommandText = sql
  60. 'da.SelectCommand = cmd
  61. 'da.Fill(DT1)
  62. 'DGV2.DataSource = DT1
  63. set_grid()
  64. End Sub
  65. Function RemoveRightNonDigits(input As String) As String
  66. For i As Integer = input.Length To 1 Step -1
  67. ' 检查当前字符是否为数字或非中文字符
  68. If Char.IsDigit(input(i - 1)) Then
  69. ' 保留到最后一个数字为止的部分
  70. Return input.Substring(0, i)
  71. ElseIf IsChinese(input(i - 1)) Then
  72. ' 如果是中文字符,继续查找
  73. Return input.Substring(0, i - 1) ' 只去掉最后一个中文字符
  74. End If
  75. Next
  76. ' 如果没有数字,返回空字符串
  77. Return ""
  78. End Function
  79. Function IsChinese(ch As Char) As Boolean
  80. Return Char.GetUnicodeCategory(ch) = Globalization.UnicodeCategory.OtherLetter AndAlso
  81. ch >= ChrW(&H4E00) AndAlso ch <= ChrW(&H9FFF)
  82. End Function
  83. Private Sub DGV1_SelectionChanged(sender As Object, e As EventArgs) Handles DGV1.SelectionChanged
  84. lb1.Items.Clear()
  85. ListBox1.Items.Clear()
  86. ListBox2.Items.Clear()
  87. ListBox3.Items.Clear()
  88. ListBox4.Items.Clear()
  89. ListBox5.Items.Clear()
  90. ListBox6.Items.Clear()
  91. ListBox7.Items.Clear()
  92. ListBox8.Items.Clear()
  93. ListBox9.Items.Clear()
  94. ListBox10.Items.Clear()
  95. ListBox11.Items.Clear()
  96. ListBox12.Items.Clear()
  97. ListBox13.Items.Clear()
  98. ListBox14.Items.Clear()
  99. ListBox15.Items.Clear()
  100. ListBox16.Items.Clear()
  101. ListBox17.Items.Clear()
  102. ListBox18.Items.Clear()
  103. ListBox19.Items.Clear()
  104. ListBox20.Items.Clear()
  105. ListBox21.Items.Clear()
  106. TextBox1.Text = ""
  107. TextBox2.Text = ""
  108. TextBox3.Text = ""
  109. Label10.Text = ""
  110. Label12.Text = ""
  111. Label9.Text = ""
  112. sql = “select CASE WHEN CHARINDEX(',', comment) > 0 AND CHARINDEX(',',
  113. comment, CHARINDEX(',', comment) + 1) > 0 THEN CASE WHEN PATINDEX('%[a-zA-Z]%',
  114. REVERSE(SUBSTRING(comment, CHARINDEX(',', comment) + 1, CHARINDEX(',', comment,
  115. CHARINDEX(',', comment) + 1) - CHARINDEX(',', comment) - 1)))
  116. > 0 THEN LEFT(SUBSTRING(comment, CHARINDEX(',', comment) + 1, CHARINDEX(',', comment,
  117. CHARINDEX(',', comment) + 1) - CHARINDEX(',', comment) - 1), LEN(SUBSTRING(comment,
  118. CHARINDEX(',', comment) + 1, CHARINDEX(',', comment, CHARINDEX(',', comment) + 1)
  119. - CHARINDEX(',', comment) - 1)) - PATINDEX('%[a-zA-Z]%', REVERSE(SUBSTRING(comment,
  120. CHARINDEX(',', comment) + 1, CHARINDEX(',', comment, CHARINDEX(',', comment) + 1)
  121. - CHARINDEX(',', comment) - 1))) + 1) ELSE SUBSTRING(comment, CHARINDEX(',', comment) + 1,
  122. CHARINDEX(',', comment, CHARINDEX(',', comment) + 1) - CHARINDEX(',', comment) - 1)
  123. END ELSE '' END AS 尺数,CASE WHEN CHARINDEX(',',
  124. comment) > 0 THEN SUBSTRING(comment, 1, CHARINDEX(',', comment) - 1)
  125. ELSE comment END AS 皮源, CASE WHEN CHARINDEX(',', comment) > 0 AND CHARINDEX(',',
  126. comment, CHARINDEX(',', comment) + 1) > 0 THEN SUBSTRING(comment, CHARINDEX(',',
  127. comment, CHARINDEX(',', comment) + 1) + 1, LEN(comment)) ELSE '' END AS 片数, work_name,
  128. work_id, unit, qty, piece
  129. FROM HT_workshop3
  130. WHERE (CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "') and (comment IS NOT NULL) AND (work_name LIKE N'蓝皮%')
  131. ORDER BY date DESC”
  132. cmd.CommandText = sql
  133. If cmd.ExecuteScalar Is Nothing Then
  134. Else
  135. TextBox1.Text = cmd.ExecuteScalar
  136. End If
  137. sql = "SELECT CASE WHEN CHARINDEX(',', comment) > 0 THEN SUBSTRING(comment, CHARINDEX(',', comment) + 1, LEN(comment)) ELSE '' END AS 尺数, CASE WHEN CHARINDEX(',', comment) > 0 THEN SUBSTRING(comment, 1, CHARINDEX(',', comment) - 1) ELSE comment END AS 片数, card, name, product, code1, spec, work_name, work_id, unit, qty, piece FROM HT_workshop3 WHERE (CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "') AND (work_name LIKE N'%打%') AND (dep = N'二车间') ORDER BY date DESC"
  138. cmd.CommandText = sql
  139. If cmd.ExecuteScalar Is Nothing Then
  140. Else
  141. TextBox2.Text = cmd.ExecuteScalar
  142. End If
  143. sql = "SELECT CASE WHEN CHARINDEX(' ', comment) > 0 THEN SUBSTRING(comment, CHARINDEX(' ', comment) + 1, LEN(comment)) ELSE '' END AS 尺数, CASE WHEN CHARINDEX('', comment) > 0 THEN SUBSTRING(comment, 1, CHARINDEX(' ', comment) - 1) ELSE comment END AS 片数, card, name, product, code1, spec, work_name, work_id, unit, qty, piece FROM HT_workshop3 WHERE (CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "') AND (work_name LIKE N'%打尺%') AND (dep = N'三车间') ORDER BY date DESC"
  144. cmd.CommandText = sql
  145. If cmd.ExecuteScalar Is Nothing Then
  146. Else
  147. TextBox3.Text = Microsoft.VisualBasic.Trim(cmd.ExecuteScalar)
  148. End If
  149. Dim wb As Double = 0
  150. Dim crust As Double = 0
  151. Dim finish As Double = 0
  152. If (TextBox1.Text <> "") Then wb = RemoveRightNonDigits(TextBox1.Text)
  153. If (TextBox2.Text <> "") Then
  154. If IsNumeric(RemoveRightNonDigits(TextBox2.Text)) Then
  155. crust = RemoveRightNonDigits(TextBox2.Text)
  156. End If
  157. End If
  158. Label10.Text = (crust / wb * 100).ToString("f2") & "%"
  159. If IsNumeric(TextBox3.Text) Then Label12.Text = (TextBox3.Text / wb * 100).ToString("f2") & "%"
  160. '----染色
  161. sql = "SELECT year(in_date) as year,MONTH(in_DATE) AS MONTH, DAY(in_DATE) AS DAY,in_date,out_date,out_qty,piece FROM ht_retan WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' ORDER BY in_DATE"
  162. cmd.CommandText = sql
  163. Dim DR As SqlDataReader
  164. DR = cmd.ExecuteReader
  165. While DR.Read
  166. 'Label1.Text = Label1.Text & vbCrLf & DR("MONTH") & "/" & DR("DAY")
  167. 'Label46.Text = Label46.Text & DR("TYPE")
  168. ' lb1.Items.Add(DR("year") & "/" & DR("MONTH") & "/" & DR("DAY") & " " & DR("out_qty") & "片")
  169. lb1.Items.Add("进鼓" & DR("in_date") & " " & DR("piece") & "片")
  170. lb1.Items.Add("出鼓" & DR("out_date") & " " & DR("out_qty") & "片")
  171. End While
  172. DR.Close()
  173. '--蓝皮
  174. sql = "SELECT date,source,selection,sammy_qty,sammy_qty1 FROM ht_wb WHERE CARD='" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' ORDER BY DATE"
  175. cmd.CommandText = sql
  176. DR = cmd.ExecuteReader
  177. While DR.Read
  178. ListBox21.Items.Add((DR("date") & "-" & DR("source")) & "/" & DR("selection"))
  179. ListBox21.Items.Add((DR("date") & "-" & DR("sammy_qty")) & "/" & DR("sammy_qty1"))
  180. End While
  181. DR.Close()
  182. '--打软
  183. sql = "SELECT date,p1,sf FROM ht_vibration WHERE CARD='" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' ORDER BY DATE"
  184. cmd.CommandText = sql
  185. DR = cmd.ExecuteReader
  186. While DR.Read
  187. ListBox5.Items.Add((DR("date") & "-" & DR("p1")) & "片" & DR("sf") & "尺")
  188. End While
  189. DR.Close()
  190. '--真空
  191. sql = "SELECT date,machine,piece FROM ht_vacumn WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' ORDER BY DATE"
  192. cmd.CommandText = sql
  193. DR = cmd.ExecuteReader
  194. While DR.Read
  195. ListBox3.Items.Add(DR("machine") & DR("date") & " " & DR("piece"))
  196. End While
  197. DR.Close()
  198. '--磨皮
  199. sql = "SELECT date,work_name,piece FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%磨%' ORDER BY DATE"
  200. cmd.CommandText = sql
  201. DR = cmd.ExecuteReader
  202. While DR.Read
  203. ListBox6.Items.Add((DR("date") & DR("work_name")) & " " & DR("piece"))
  204. End While
  205. DR.Close()
  206. '--3打软
  207. sql = "SELECT date,work_name,piece,comment FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%打软%' ORDER BY DATE"
  208. cmd.CommandText = sql
  209. DR = cmd.ExecuteReader
  210. While DR.Read
  211. ListBox19.Items.Add((DR("date") & DR("work_name")) & " " & DR("piece"))
  212. End While
  213. DR.Close()
  214. '--真空
  215. sql = "SELECT date,work_name,piece FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%真空%' ORDER BY DATE"
  216. cmd.CommandText = sql
  217. DR = cmd.ExecuteReader
  218. While DR.Read
  219. ListBox14.Items.Add((DR("date") & DR("work_name")) & " " & DR("piece"))
  220. End While
  221. DR.Close()
  222. '--拉网
  223. sql = "SELECT date,work_name,piece FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%绷%' ORDER BY DATE"
  224. cmd.CommandText = sql
  225. DR = cmd.ExecuteReader
  226. While DR.Read
  227. ListBox8.Items.Add((DR("date") & DR("work_name")) & " " & DR("piece"))
  228. End While
  229. DR.Close()
  230. '--压板
  231. sql = "SELECT date,work_name,piece FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%压%' ORDER BY DATE"
  232. cmd.CommandText = sql
  233. DR = cmd.ExecuteReader
  234. While DR.Read
  235. ListBox9.Items.Add((DR("date") & DR("work_name")) & " " & DR("piece"))
  236. End While
  237. DR.Close()
  238. '--喷台
  239. sql = "SELECT date,work_name,qty FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%喷%' ORDER BY DATE"
  240. cmd.CommandText = sql
  241. DR = cmd.ExecuteReader
  242. While DR.Read
  243. ListBox10.Items.Add((DR("date") & DR("work_name") & " -- " & DR("qty")))
  244. End While
  245. DR.Close()
  246. '--摔软
  247. sql = "SELECT date,work_name,qty FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%摔%' ORDER BY DATE"
  248. cmd.CommandText = sql
  249. DR = cmd.ExecuteReader
  250. While DR.Read
  251. ListBox16.Items.Add((DR("date") & DR("work_name") & " -- " & DR("qty")))
  252. End While
  253. DR.Close()
  254. '--滚光
  255. sql = "SELECT date,work_name,qty FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%滚%' and work_name not like N'%油%' and work_name not like N'%浆%' ORDER BY DATE"
  256. cmd.CommandText = sql
  257. DR = cmd.ExecuteReader
  258. While DR.Read
  259. ListBox15.Items.Add((DR("date") & DR("work_name") & " -- " & DR("qty")))
  260. End While
  261. DR.Close()
  262. '--刷浆
  263. sql = "SELECT date,work_name,piece FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%刷浆%' ORDER BY DATE"
  264. cmd.CommandText = sql
  265. DR = cmd.ExecuteReader
  266. While DR.Read
  267. ListBox17.Items.Add((DR("date") & DR("work_name")) & " " & DR("piece"))
  268. End While
  269. DR.Close()
  270. '--修边
  271. sql = "SELECT date,work_name,piece FROM ht_workshop3 WHERE CARD=N'" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%修%' ORDER BY DATE"
  272. cmd.CommandText = sql
  273. DR = cmd.ExecuteReader
  274. While DR.Read
  275. ListBox18.Items.Add((DR("date") & DR("work_name")) & " " & DR("piece"))
  276. End While
  277. DR.Close()
  278. '--量尺
  279. sql = "SELECT date,COMMENT FROM ht_workshop3 WHERE card='" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%打尺%' ORDER BY DATE"
  280. sql = " SELECT date, p, dep, card, name, product, code1, spec, work_name, CASE WHEN CHARINDEX(' ',
  281. comment) > 0 THEN SUBSTRING(comment, 1, CHARINDEX(' ', comment) - 1)
  282. ELSE comment END AS 片数, CASE WHEN CHARINDEX(' ', comment)
  283. > 0 THEN trim(SUBSTRING(comment, CHARINDEX(' ', comment) + 1, LEN(comment)
  284. - CHARINDEX(' ', comment))) ELSE '' END AS 尺数, work_id, unit, qty, piece, comment
  285. FROM HT_workshop3
  286. WHERE card='" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%打尺%'
  287. ORDER BY date DESC"
  288. cmd.CommandText = sql
  289. DR = cmd.ExecuteReader
  290. While DR.Read
  291. ListBox12.Items.Add(DR("date") & "-" & DR("片数") & "片-" & DR("尺数") & "尺")
  292. End While
  293. DR.Close()
  294. '--滚油蜡
  295. sql = "SELECT date,COMMENT,work_name FROM ht_workshop3 WHERE card='" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' and work_name like N'%滚油%' ORDER BY DATE"
  296. cmd.CommandText = sql
  297. DR = cmd.ExecuteReader
  298. While DR.Read
  299. ListBox20.Items.Add(DR("date") & vbTab & DR("work_name"))
  300. End While
  301. DR.Close()
  302. '--销售
  303. sql = "SELECT date,cust,coin,price,qty FROM ht_sale_k3 WHERE lot='" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "' ORDER BY DATE"
  304. cmd.CommandText = sql
  305. DR = cmd.ExecuteReader
  306. While DR.Read
  307. ' ListBox13.Items.Add(DR("date") & DR("cust") & DR("qty") & "尺" & DR("coin") & DR("price"))
  308. ListBox13.Items.Add(DR("date") & DR("cust") & DR("qty") & "尺")
  309. End While
  310. DR.Close()
  311. sql = "SELECT HT_ChemOut.date as 日期, HT_ChemOut.name as 品名,cast(SUM(HT_ChemOut.qty) as numeric(10,1)) AS 数量, cast(AVG(HT_Chem_In.price) as numeric(10,1)) AS 单价 FROM HT_ChemOut LEFT OUTER JOIN HT_Chem_In ON HT_ChemOut.name = HT_Chem_In.name WHERE (HT_ChemOut.dep = N'三车间') AND (HT_ChemOut.card2='" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "') GROUP BY HT_ChemOut.date, HT_ChemOut.name, HT_ChemOut.no"
  312. cmd.CommandText = sql
  313. dt = New DataTable
  314. da.Fill(dt)
  315. DGV_finish.DataSource = dt
  316. sql = "SELECT HT_ChemOut.date AS 日期, HT_ChemOut.name AS 品名, HT_Chem_Main.type1, CAST(SUM(HT_ChemOut.qty) AS numeric(10, 1)) AS 数量, CAST(AVG(HT_Chem_In_1.price) AS numeric(10, 1)) AS 单价 FROM HT_ChemOut LEFT OUTER JOIN HT_Chem_Main ON HT_ChemOut.name = HT_Chem_Main.sys_name LEFT OUTER JOIN (SELECT name, AVG(price) AS price
  317. FROM HT_Chem_In GROUP BY name) AS ht_chem_in_1 ON HT_ChemOut.name = ht_chem_in_1.name WHERE (HT_ChemOut.card1='" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "') GROUP BY HT_ChemOut.date, HT_ChemOut.name, HT_ChemOut.no, HT_Chem_Main.type1"
  318. sql = "SELECT HT_ChemOut.date AS 日期, HT_ChemOut.name AS 品名, HT_Chem_Main.type1,
  319. CAST(SUM(HT_ChemOut.qty) AS numeric(10, 1)) AS 数量, CAST(AVG(ht_chem_in_1.price)
  320. AS numeric(10, 1)) AS 单价, ht_retanrcp_1.weight, HT_ChemOut.card1,
  321. CAST(SUM(HT_ChemOut.qty) / ht_retanrcp_1.weight AS numeric(10, 1)) AS 比例
  322. FROM HT_ChemOut LEFT OUTER JOIN
  323. (SELECT CASE WHEN CHARINDEX(' ', no) > 0 THEN SUBSTRING(no, 1, CHARINDEX(' ', no) - 1)
  324. ELSE no END AS result, weight
  325. FROM HT_RetanRcp) AS ht_retanrcp_1 ON
  326. HT_ChemOut.card1 = ht_retanrcp_1.result LEFT OUTER JOIN
  327. HT_Chem_Main ON HT_ChemOut.name = HT_Chem_Main.sys_name LEFT OUTER JOIN
  328. (SELECT name, AVG(price) AS price
  329. FROM HT_Chem_In
  330. GROUP BY name) AS ht_chem_in_1 ON HT_ChemOut.name = ht_chem_in_1.name
  331. WHERE (HT_ChemOut.card1 like '" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "%')
  332. GROUP BY HT_ChemOut.date, HT_ChemOut.name, HT_Chem_Main.type1, ht_retanrcp_1.weight,
  333. HT_ChemOut.card1
  334. ORDER BY HT_Chem_Main.type1"
  335. cmd.CommandText = sql
  336. dt = New DataTable
  337. da.Fill(dt)
  338. DGV_Chem.DataSource = dt
  339. sql = "SELECT rcp_no + '--' + no FROM HT_RetanRcp WHERE (no like '%" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "%')"
  340. cmd.CommandText = sql
  341. If cmd.ExecuteScalar Is Nothing Then
  342. TextBox5.Text = ""
  343. Else
  344. TextBox5.Text = cmd.ExecuteScalar.ToString
  345. End If
  346. sql = "select type1 as 类型,SUM(比例) AS 比例,SUM(数量 * 单价) AS 金额 from ( SELECT HT_ChemOut.date AS 日期, HT_ChemOut.name AS 品名, HT_Chem_Main.type1,
  347. CAST(SUM(HT_ChemOut.qty) AS numeric(10, 1)) AS 数量, CAST(AVG(ht_chem_in_1.price)
  348. AS numeric(10, 1)) AS 单价, ht_retanrcp_1.weight, HT_ChemOut.card1,
  349. CAST(SUM(HT_ChemOut.qty) / ht_retanrcp_1.weight AS numeric(10, 1)) AS 比例
  350. FROM HT_ChemOut LEFT OUTER JOIN
  351. (SELECT CASE WHEN CHARINDEX(' ', no) > 0 THEN SUBSTRING(no, 1, CHARINDEX(' ', no) - 1)
  352. ELSE no END AS result, weight
  353. FROM HT_RetanRcp) AS ht_retanrcp_1 ON
  354. HT_ChemOut.card1 = ht_retanrcp_1.result LEFT OUTER JOIN
  355. HT_Chem_Main ON HT_ChemOut.name = HT_Chem_Main.sys_name LEFT OUTER JOIN
  356. (SELECT name, AVG(price) AS price
  357. FROM HT_Chem_In
  358. GROUP BY name) AS ht_chem_in_1 ON HT_ChemOut.name = ht_chem_in_1.name
  359. WHERE (HT_ChemOut.card1='" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "')
  360. GROUP BY HT_ChemOut.date, HT_ChemOut.name, HT_Chem_Main.type1, ht_retanrcp_1.weight,
  361. HT_ChemOut.card1
  362. ) as z GROUP BY type1
  363. ORDER BY 金额 DESC"
  364. sql = "SELECT type1 AS 类型, SUM(百分比) AS 比例, SUM(数量 * 单价) AS 金额,cast(SUM(数量 * 单价) * 100 / SUM(SUM(数量 * 单价)) OVER () as numeric(10,2)) AS 金额比例
  365. FROM (SELECT HT_ChemOut.date AS 日期, HT_ChemOut.name AS 品名, HT_Chem_Main.type1,
  366. CAST(SUM(HT_ChemOut.qty) AS numeric(10, 1)) AS 数量, CAST(SUM(HT_ChemOut.qty)
  367. / ht_retanrcp_1.weight * 100 AS numeric(10, 2)) AS 百分比,
  368. CAST(AVG(ht_chem_in_1.price) AS numeric(10, 1)) AS 单价, HT_ChemOut.card1,
  369. ht_retanrcp_1.weight
  370. FROM HT_ChemOut LEFT OUTER JOIN
  371. (SELECT result AS no, AVG(weight) AS weight
  372. FROM (SELECT CASE WHEN CHARINDEX(' ', no) > 0 THEN SUBSTRING(no, 1,
  373. CHARINDEX(' ', no) - 1) ELSE no END AS result, weight
  374. FROM HT_RetanRcp) AS z_1
  375. GROUP BY result) AS ht_retanrcp_1 ON
  376. HT_ChemOut.card1 = ht_retanrcp_1.no LEFT OUTER JOIN
  377. HT_Chem_Main ON HT_ChemOut.name = HT_Chem_Main.sys_name LEFT OUTER JOIN
  378. (SELECT name, AVG(price) AS price
  379. FROM HT_Chem_In
  380. GROUP BY name) AS ht_chem_in_1 ON
  381. HT_ChemOut.name = ht_chem_in_1.name
  382. WHERE (HT_ChemOut.card1 like '" & DGV1.Rows(DGV1.CurrentRow.Index).Cells("卡号").Value & "%')
  383. GROUP BY HT_ChemOut.date, HT_ChemOut.name, HT_Chem_Main.type1,
  384. HT_ChemOut.card1, ht_retanrcp_1.weight) AS z
  385. GROUP BY type1 order by SUM(数量 * 单价) * 100 / SUM(SUM(数量 * 单价)) OVER () desc"
  386. cmd.CommandText = sql
  387. dt = New DataTable
  388. da.Fill(dt)
  389. Dim myRow As DataRow
  390. myRow = dt.NewRow
  391. If IsDBNull(dt.Compute("sum(金额)", "")) Then
  392. myRow(2) = 0
  393. Else
  394. myRow(2) = Math.Round(dt.Compute("sum(金额)", ""), 1)
  395. End If
  396. If IsDBNull(dt.Compute("sum(比例)", "")) Then
  397. myRow(1) = 0
  398. Else
  399. myRow(1) = Math.Round(dt.Compute("sum(比例)", ""), 1)
  400. End If
  401. myRow(0) = "合计"
  402. dt.Rows.InsertAt(myRow, 0)
  403. dgv_retan_sum.DataSource = dt
  404. End Sub
  405. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '-----顏色查詢
  406. sql = "Select Case Top(200) card As 卡号, Date As 日期, cust As 客户, article As 品名, source As 皮源, selection As 选级, qty As 数量, sammy_qty As 片数, sammy_qty1 AS 尺数, chem, no, no1, date1, no2 From HT_WB WHERE (card like N'%" & txtColor.Text & "%') and not(cust like N'%N/A%') "
  407. sql = "Select Date As 下单日,duedate As 交期, cust As 客户,article As 品名, thick As 厚度, qty As 订单数量, order_no As 订单号,work_no As 型体号,card As 卡号 FROM HT_orders WHERE article Like N'%" & txtcard.Text & "%' ORDER BY date DESC, card"
  408. sql = "Select Top(300) card As 卡号, Date As 日期, cust As 客户, article As 品名, source As 皮源, selection As 选级, qty As 数量, sammy_qty As 挤水片数, sammy_qty1 AS 挤水尺数, chem, no, no1, date1, no2 From HT_WB where not(cust like N'%N/A%') and (article Like N'%" & txtColor.Text & "%' ) order by date desc "
  409. Dim DT As New DataTable
  410. cmd.CommandText = sql
  411. da.SelectCommand = cmd
  412. da.Fill(DT)
  413. DGV1.DataSource = DT
  414. set_grid()
  415. End Sub
  416. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '-----卡号查询
  417. sql = "select date as 下单日,duedate as 交期, cust as 客户,article AS 品名, thick as 厚度, qty as 订单数量, order_no as 订单号,work_no as 型体号,card as 卡号 FROM ht_k3_orders WHERE card like N'%" & txtcard.Text & "%' ORDER BY date DESC, card"
  418. Dim DT As New DataTable
  419. cmd.CommandText = sql
  420. da.SelectCommand = cmd
  421. da.Fill(DT)
  422. DGV1.DataSource = DT
  423. set_grid()
  424. End Sub
  425. Private Sub set_grid()
  426. DGV1.Columns(0).Width = 120
  427. DGV1.Columns(1).Width = 120
  428. DGV1.Columns(2).Width = 120
  429. DGV1.Columns(3).Width = 250
  430. DGV1.Columns(4).Width = 150
  431. DGV1.Columns(5).Width = 80
  432. DGV1.Columns(6).Width = 80
  433. DGV1.Columns(7).Width = 80
  434. DGV1.Columns(8).Width = 80
  435. 'DGV1.Columns(9).Width = 80
  436. 'DGV1.Columns(10).Width = 80
  437. 'DGV1.Columns(11).Width = 80
  438. 'DGV1.Columns(12).Width = 80
  439. 'DGV1.Columns(13).Width = 80
  440. 'DGV1.Columns(14).Width = 80
  441. 'DGV1.Columns(15).Width = 80
  442. End Sub
  443. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  444. sql = "SELECT derivedtbl_1.DATE AS 日期, derivedtbl_1.CUST AS 客户, derivedtbl_1.CARD AS 卡号, " &
  445. " derivedtbl_1.S_CARD As 简短卡号, derivedtbl_1.THICKNESS As 厚度, derivedtbl_1.COLOR As 颜色, " &
  446. " derivedtbl_1.SOURCE AS 皮源, derivedtbl_1.ORDER_QTY AS 订单数量, derivedtbl_1.WB_WEIGHT AS 蓝皮重, " &
  447. " derivedtbl_1.SPEC As 规格, derivedtbl_1.PRICE As 蓝皮价, derivedtbl_1.PRICE1 As 单价, " &
  448. " derivedtbl_1.TECH AS 技衔员, derivedtbl_1.CLASS AS 类别, derivedtbl_1.TYPE AS 染色, " &
  449. " RT_PACKAGE.SF As 包装尺数, RT_PACKAGE.B As 是否取完 " &
  450. " FROM (SELECT TOP (100) PERCENT RT_RETAN_RECORD.DATE, RT_RETAN_RECORD.CUST, " &
  451. " RT_RETAN_RECORD.CARD, RT_RETAN_RECORD.S_CARD, RT_RETAN_RECORD.THICKNESS, " &
  452. " RT_RETAN_RECORD.COLOR, RT_RETAN_RECORD.SOURCE, RT_RETAN_RECORD.ORDER_QTY, " &
  453. " RT_RETAN_RECORD.WB_WEIGHT, RT_RETAN_RECORD.SPEC, RT_RETAN_RECORD.PRICE, " &
  454. " CASE WHEN WB_WEIGHT = 0 THEN 0 WHEN WB_WEIGHT Is NULL " &
  455. " Then 0 Else CAST(PRICE / (WB_WEIGHT) As NUMERIC(10, 2)) End As PRICE1, " &
  456. " RT_RETAN_RECORD.TECH, RT_RETAN_RECORD_D.DATE AS Expr1, RT_RETAN_RECORD_D.CLASS, " &
  457. " RT_RETAN_RECORD_D.TYPE " &
  458. " FROM RT_RETAN_RECORD LEFT OUTER JOIN " &
  459. " RT_RETAN_RECORD_D On RT_RETAN_RECORD.S_CARD = RT_RETAN_RECORD_D.CARD " &
  460. " ORDER BY RT_RETAN_RECORD.DATE DESC) AS derivedtbl_1 LEFT OUTER JOIN " &
  461. " RT_PACKAGE On derivedtbl_1.CARD = RT_PACKAGE.CARD " &
  462. " WHERE (derivedtbl_1.Expr1 Is Not NULL) And (YEAR(derivedtbl_1.DATE) > 2018) " &
  463. " ORDER BY 日期 DESC "
  464. sql = "SELECT RT_RETAN_RECORD.DATE AS 日期, RT_RETAN_RECORD.CUST AS 客户, " &
  465. " RT_RETAN_RECORD.CARD AS 卡号, RT_RETAN_RECORD.S_CARD AS 短卡号, " &
  466. " RT_RETAN_RECORD.THICKNESS AS 厚度, RT_RETAN_RECORD.COLOR AS 颜色, " &
  467. " RT_RETAN_RECORD.SOURCE AS 皮源, RT_RETAN_RECORD.ORDER_QTY AS 订单数, " &
  468. " RT_RETAN_RECORD.WB_WEIGHT AS 蓝皮重, RT_RETAN_RECORD.SPEC AS 规格, RT_RETAN_RECORD.PRICE AS 总价, " &
  469. " CASE WHEN WB_WEIGHT = 0 THEN 0 WHEN WB_WEIGHT IS NULL THEN 0 ELSE CAST(PRICE / (WB_WEIGHT) " &
  470. " AS NUMERIC(10, 2)) END AS 单价, RT_RETAN_RECORD.TECH AS 技术员, RT_RETAN_RECORD_D.DATE AS 日期1, " &
  471. " RT_RETAN_RECORD_D.CLASS AS 类别, RT_RETAN_RECORD_D.TYPE AS 类别1 " &
  472. " FROM RT_RETAN_RECORD LEFT OUTER JOIN " &
  473. " RT_RETAN_RECORD_D ON RT_RETAN_RECORD.CARD = RT_RETAN_RECORD_D.CARD " &
  474. " WHERE RT_RETAN_RECORD.cust like N'%" & txtCust.Text & "%' ORDER BY 日期 DESC, 卡号"
  475. sql = "Select Top(300) card As 卡号, Date As 日期, cust As 客户, article As 品名, source As 皮源, selection As 选级, qty As 数量, sammy_qty As 挤水片数, sammy_qty1 AS 挤水尺数, chem, no, no1, date1, no2 From HT_WB where not(cust like N'%N/A%') and (article Like N'%" & txtCust.Text & "%' ) order by date desc "
  476. Dim DT As New DataTable
  477. cmd.CommandText = sql
  478. da.SelectCommand = cmd
  479. da.Fill(DT)
  480. DGV1.DataSource = DT
  481. set_grid()
  482. End Sub
  483. Private Sub DGV1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DGV1.CellContentClick
  484. End Sub
  485. End Class