Açıklama Yok
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_CHEM_container.vb 33KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953
  1. Imports System.Data.SqlClient
  2. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  3. Imports Microsoft.Office.Core.XlConstants
  4. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  5. Imports Microsoft.Office.Core.XlBorderWeight
  6. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  7. Imports Microsoft.Office.Interop.Excel.Constants
  8. Imports System.Data.OleDb
  9. 'Imports Microsoft.Office.Interop.Excel
  10. Public Class Frm_CHEM_container
  11. Dim cmd As New SqlCommand
  12. Dim conn As New SqlConnection
  13. Dim dr As SqlDataReader
  14. Dim da As New SqlDataAdapter
  15. Dim dt As New DataTable
  16. Dim sql As String = ""
  17. Dim ds As New DataSet
  18. Dim combo As New DataGridViewComboBoxColumn
  19. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  20. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  21. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  22. Private Sub FrmCHEM_CONTAINER_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  23. conn.ConnectionString = connstring
  24. conn.Open()
  25. Dim dt1 As New DataTable
  26. Me.MdiParent = FrmMDI
  27. cmd.Connection = conn
  28. sql = "update rt_chem_container set etd='' where etd like '%1900-01-01%'"
  29. cmd.CommandText = sql
  30. cmd.ExecuteScalar()
  31. sql = "update rt_chem_container set eta='' where eta like '%1900-01-01%'"
  32. cmd.CommandText = sql
  33. cmd.ExecuteScalar()
  34. 'sql = "select date as 日期,contract_no as 合同,supplier as 供应商 ,serial as 序号 from rt_chem_container where year(date)='2020' group by contract_no,date,supplier,serial order by date desc "
  35. 'cmd.CommandText = sql
  36. 'da.SelectCommand = cmd
  37. 'da.Fill(ds)
  38. 'dgv_main.DataSource = ds.Tables(0)
  39. sql = "select contract_no as 合同号,supplier as 供应商,original as 产地, name as 品名, qty as 数量, coin as 币别, price as 单价,etd as 装船日, eta as 到港日, received as 验收 from rt_chem_container where serial='0'"
  40. cmd.CommandText = sql
  41. da.SelectCommand = cmd
  42. da.Fill(dt)
  43. dgv_detail.DataSource = dt
  44. sql = "SELECT RT_CHEM_CONTAINER.date AS 日期, RT_CHEM_CONTAINER.CONTRACT_NO AS 合同号, RT_CHEM_CONTAINER.name AS 品名, RT_SYS_CHEM_MAIN.CLASS2 as 海关分类, RT_CHEM_CONTAINER.SUPPLIER AS 供应商, RT_CHEM_CONTAINER.ORIGINAL AS 产地, RT_CHEM_CONTAINER.qty AS 数量, RT_CHEM_CONTAINER.coin AS 币别, RT_CHEM_CONTAINER.price AS 单价,RT_CHEM_CONTAINER.deposit AS 订金,case when deposit is null then cast(RT_CHEM_CONTAINER.qty*RT_CHEM_CONTAINER.price as numeric(10,2)) else cast(RT_CHEM_CONTAINER.qty*RT_CHEM_CONTAINER.price-cast(deposit as numeric(10,1)) as numeric(10,2)) end as 尾款, RT_CHEM_CONTAINER.etd AS 装船日, RT_CHEM_CONTAINER.eta AS 到港日, received as 验收, RT_CHEM_CONTAINER.serial, RT_CHEM_CONTAINER.item FROM RT_CHEM_CONTAINER LEFT OUTER JOIN RT_SYS_CHEM_MAIN ON RT_CHEM_CONTAINER.name = RT_SYS_CHEM_MAIN.name WHERE (RT_CHEM_CONTAINER.received IS NULL) ORDER BY RT_CHEM_CONTAINER.DATE DESC,CONTRACT_NO"
  45. cmd.CommandText = sql
  46. da.SelectCommand = cmd
  47. da.Fill(dt1)
  48. dgv_pending.DataSource = dt1
  49. dgv_pending.Columns(1).Width = 100
  50. dgv_pending.Columns(2).Width = 180
  51. dgv_pending.Columns(8).Width = 60
  52. dgv_pending.Columns(7).Width = 60
  53. dgv_pending.Columns(6).Width = 80
  54. dgv_pending.Columns(4).Width = 70
  55. dgv_pending.Columns(5).Width = 70
  56. dgv_pending.Columns(9).Width = 85
  57. dgv_pending.Columns(10).Width = 85
  58. dgv_pending.Columns(11).Width = 100
  59. dgv_pending.Columns(12).Width = 100
  60. dgv_pending.Columns(14).Width = 60
  61. 'dgv_pending.Columns(12).Visible = False
  62. 'dgv_pending.Columns(13).Visible = False
  63. dgv_pending.AllowUserToAddRows = False
  64. Dim my_combo As New DataGridViewColumn
  65. combo.DisplayIndex = 13
  66. combo.Width = 150
  67. combo.HeaderText = "手册号"
  68. combo.DataPropertyName = "手册号" '資料行名稱
  69. combo.Name = "手册号"
  70. sql = "SELECT NO FROM RT_BG_MAIN WHERE checked<>'true' ORDER BY NO"
  71. cmd.CommandText = sql
  72. dr = cmd.ExecuteReader
  73. While dr.Read
  74. combo.Items.Add(dr("NO"))
  75. End While
  76. combo.Items.Add("一般贸易")
  77. dr.Close()
  78. dgv_pending.Columns.Add(combo)
  79. 'dgv_pending.Columns.Insert(13, combo)
  80. 'dgv_pending.Columns(15).Visible = False
  81. 'dgv_pending.Columns(16).Visible = False
  82. ' Button7.PerformClick()
  83. End Sub
  84. Private Sub dgv_main_CellContentClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_main.CellContentClick
  85. dt.Clear()
  86. sql = "select contract_no as 合同号,supplier as 供应商,original as 产地, name as 品名, qty as 数量, coin as 币别, price as 单价,etd as 装船日, eta as 到港日, received as 验收 from rt_chem_container where serial='" & dgv_main.Rows(dgv_main.CurrentRow.Index).Cells("序号").Value & "'"
  87. cmd.CommandText = sql
  88. da.SelectCommand = cmd
  89. da.Fill(dt)
  90. dgv_detail.DataSource = dt
  91. End Sub
  92. Private Sub TextBox1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtChem.KeyUp
  93. ' ListBox1.Items.Clear()
  94. ' sql = "select NAME,SUPPLIER from RT_SYS_CHEM_MAIN WHERE NAME LIKE N'%" & txtChem.Text & "%'"
  95. ' sql = "SELECT RT_SYS_CHEM_MAIN.name, RT_CHEM_IN_PRICE.SUPPLIER " &
  96. '" FROM RT_SYS_CHEM_MAIN LEFT OUTER JOIN RT_CHEM_IN_PRICE ON RT_SYS_CHEM_MAIN.name = RT_CHEM_IN_PRICE.NAME WHERE RT_SYS_CHEM_MAIN.NAME LIKE N'%" & txtChem.Text & "%' GROUP BY RT_SYS_CHEM_MAIN.name, RT_CHEM_IN_PRICE.SUPPLIER"
  97. ' cmd.CommandText = sql
  98. ' dr = cmd.ExecuteReader
  99. ' While dr.Read
  100. ' ListBox1.Items.Add(dr("NAME") & vbTab & dr("SUPPLIER"))
  101. ' End While
  102. ' dr.Close()
  103. If e.KeyCode <> Keys.Enter Then
  104. ListBox1.Items.Clear()
  105. sql = "select name from RT_SYS_CHEM_MAIN "
  106. cmd.CommandText = sql
  107. dr = cmd.ExecuteReader
  108. While dr.Read
  109. ListBox1.Items.Add(dr("NAME"))
  110. End While
  111. dr.Close()
  112. Else
  113. If ListBox1.Items.Count <> 0 Then
  114. ListBox1.Focus()
  115. ListBox1.SelectedIndex = 0
  116. Else
  117. 'txttime.Focus()
  118. End If
  119. End If
  120. End Sub
  121. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  122. Dim no As Integer = 0
  123. Dim matl_no As String = ""
  124. Dim quantity As Integer = 0
  125. Dim coin As String = ""
  126. Dim price As Double = 0
  127. sql = "select serial from rt_chem_container order by serial desc"
  128. cmd.CommandText = sql
  129. no = cmd.ExecuteScalar
  130. no += 1
  131. 'matl_no = InputBox("請輸入化料編號")
  132. 'quantity = InputBox("請輸入數量")
  133. 'sql = "select coin,pur_unit from tblmaterial where matl_no='" & matl_no & "'"
  134. 'cmd.CommandText = sql
  135. 'dr = cmd.ExecuteReader
  136. 'If dr.Read Then
  137. ' coin = dr("coin")
  138. ' price = dr("pur_unit")
  139. 'Else
  140. ' coin = InputBox("請輸入幣別" & vbCrLf & "美金 人民幣 台幣 歐元 港幣")
  141. ' price = InputBox("請輸入單價")
  142. 'End If
  143. 'dr.Close()
  144. 'sql = "insert into tblchem_container (po_no,item,matl_no,quantity,coin,price) values ('" & dgv_main.Rows(dgv_main.CurrentRow.Index).Cells("採購單號").Value & "','" & no + 1 & "','" & matl_no & "','" & quantity & "','" & coin & "','" & price & "')"
  145. 'cmd.CommandText = sql
  146. 'cmd.ExecuteNonQuery()
  147. For x As Integer = 0 To dgv_detail.Rows.Count - 2
  148. sql = "insert into RT_chem_container (item,serial,date,contract_no,name,qty,coin,price,etd,eta,supplier,original) values ('" & x + 1 & "','" & no & "','" & String.Format("{0:d}", DateTimePicker1.Value) & "','" & dgv_detail.Rows(x).Cells("合同号").Value & "',N'" & dgv_detail.Rows(x).Cells("品名").Value & "','" & dgv_detail.Rows(x).Cells("数量").Value & "','" & dgv_detail.Rows(x).Cells("币别").Value & "','" & dgv_detail.Rows(x).Cells("单价").Value & "','" & dgv_detail.Rows(x).Cells("装船日").Value & "','" & dgv_detail.Rows(x).Cells("到港日").Value & "',N'" & dgv_detail.Rows(x).Cells("供应商").Value & "',N'" & dgv_detail.Rows(x).Cells("产地").Value & "')"
  149. cmd.CommandText = sql
  150. cmd.ExecuteNonQuery()
  151. no = no + 1
  152. Next
  153. 'For Each Row As DataGridViewRow In dgv_detail.Rows
  154. ' dgv_detail.Rows.Remove(Row)
  155. 'Next
  156. 'For x As Integer = 0 To dgv_detail.Rows.Count - 1
  157. ' dgv_detail.Rows.RemoveAt(x)
  158. 'Next
  159. MsgBox("新增完成")
  160. dgv_main.Refresh()
  161. dgv_pending.Refresh()
  162. End Sub
  163. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  164. 'dgv_detail.ColumnCount = 6
  165. 'dgv_detail.Columns(0).Name = "日期"
  166. 'dgv_detail.Columns(1).Name = "序号"
  167. 'dgv_detail.Columns(2).Name = "品名"
  168. 'dgv_detail.Columns(3).Name = "供应商"
  169. 'dgv_detail.Columns(4).Name = "数量"
  170. 'dgv_detail.Columns(5).Name = "单价"
  171. 'Dim cmb As New DataGridViewComboBoxColumn
  172. 'cmb.HeaderText = "币别"
  173. 'cmb.Name = "币别"
  174. 'cmb.MaxDropDownItems = 4
  175. 'cmb.Items.Add("美金")
  176. 'cmb.Items.Add("人民币")
  177. '' cmb.Items.Add("100")
  178. 'dgv_detail.
  179. Dim my_qty As Double = InputBox("请输入数量")
  180. Dim my_coin As String = InputBox("请输入币别",, "USD")
  181. sql = "select * from rt_sys_chem_main where name=N'" & txtChem.Text & "'"
  182. cmd.CommandText = sql
  183. dr = cmd.ExecuteReader
  184. Dim myDataRow As DataRow
  185. myDataRow = dt.NewRow
  186. While dr.Read
  187. Dim my_price As Double = InputBox("请输入单价",, dr("price_usd"))
  188. myDataRow(0) = dr("supplier")
  189. myDataRow(1) = dr("origin")
  190. myDataRow(2) = dr("name")
  191. myDataRow(3) = my_qty
  192. myDataRow(4) = my_coin
  193. myDataRow(5) = my_price
  194. 'myDataRow(6) = ""
  195. 'myDataRow(7) = ""
  196. End While
  197. dr.Close()
  198. dt.Rows.InsertAt(myDataRow, dt.Rows.Count)
  199. End Sub
  200. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
  201. dt.Clear()
  202. End Sub
  203. Private Sub ListBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles ListBox1.KeyUp
  204. txtChem.Text = ListBox1.SelectedItem
  205. End Sub
  206. Private Sub dgv_detail_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles dgv_detail.EditingControlShowing
  207. Dim autoText As TextBox = CType(e.Control, TextBox)
  208. If dgv_detail.CurrentCell.OwningColumn.Name = "品名" Then
  209. autoText.AutoCompleteMode = AutoCompleteMode.Suggest
  210. autoText.AutoCompleteSource = AutoCompleteSource.CustomSource
  211. Dim acsc As New AutoCompleteStringCollection
  212. sql = "select name from RT_SYS_CHEM_MAIN where NAME LIKE N'%" & txtChem.Text & "%'"
  213. cmd.CommandText = sql
  214. dr = cmd.ExecuteReader
  215. While dr.Read
  216. acsc.Add(dr("name"))
  217. End While
  218. dr.Close()
  219. autoText.AutoCompleteCustomSource = acsc
  220. ElseIf dgv_detail.CurrentCell.OwningColumn.Name = "供应商" Then
  221. autoText.AutoCompleteMode = AutoCompleteMode.Suggest
  222. autoText.AutoCompleteSource = AutoCompleteSource.CustomSource
  223. Dim acsc As New AutoCompleteStringCollection
  224. sql = "select supplier from RT_supplier"
  225. cmd.CommandText = sql
  226. dr = cmd.ExecuteReader
  227. While dr.Read
  228. acsc.Add(dr("supplier"))
  229. End While
  230. dr.Close()
  231. autoText.AutoCompleteCustomSource = acsc
  232. ElseIf dgv_detail.CurrentCell.OwningColumn.Name = "产地" Then
  233. autoText.AutoCompleteMode = AutoCompleteMode.Suggest
  234. autoText.AutoCompleteSource = AutoCompleteSource.CustomSource
  235. Dim acsc As New AutoCompleteStringCollection
  236. acsc.Add("上海")
  237. acsc.Add("山东")
  238. acsc.Add("台湾")
  239. acsc.Add("德国")
  240. acsc.Add("印度")
  241. acsc.Add("广东")
  242. acsc.Add("西班牙")
  243. acsc.Add("美国")
  244. acsc.Add("荷兰")
  245. acsc.Add("义大利")
  246. acsc.Add("新加坡")
  247. autoText.AutoCompleteCustomSource = acsc
  248. ElseIf dgv_detail.CurrentCell.OwningColumn.Name = "供应商" Then
  249. autoText.AutoCompleteMode = AutoCompleteMode.Suggest
  250. autoText.AutoCompleteSource = AutoCompleteSource.CustomSource
  251. Dim acsc As New AutoCompleteStringCollection
  252. sql = "select supplier from RT_supplier"
  253. cmd.CommandText = sql
  254. dr = cmd.ExecuteReader
  255. While dr.Read
  256. acsc.Add(dr("supplier"))
  257. End While
  258. dr.Close()
  259. autoText.AutoCompleteCustomSource = acsc
  260. Else
  261. autoText.AutoCompleteMode = AutoCompleteMode.None
  262. End If
  263. End Sub
  264. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  265. sql = "select * from "
  266. For x As Integer = 0 To dgv_pending.Rows.Count - 1
  267. sql = "select * from rt_chem_container where serial='"
  268. sql = "update RT_chem_container set qty=" & dgv_pending.Rows(x).Cells("数量").Value & ",xno=N'" & dgv_pending.Rows(x).Cells("手册号").Value & "',contract_no=N'" & dgv_pending.Rows(x).Cells("合同号").Value & "',etd=N'" & dgv_pending.Rows(x).Cells("装船日").Value & "',deposit='" & dgv_pending.Rows(x).Cells("订金").Value & "',eta=N'" & dgv_pending.Rows(x).Cells("到港日").Value & "' where serial='" & dgv_pending.Rows(x).Cells("serial").Value & "' and name=N'" & dgv_pending.Rows(x).Cells("品名").Value & "'"
  269. cmd.CommandText = sql
  270. cmd.ExecuteNonQuery()
  271. Next
  272. dgv_pending.Refresh()
  273. MsgBox("更新完成")
  274. End Sub
  275. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click '--验收
  276. Dim bno As String = InputBox("请输入报关单号")
  277. Dim dd() As String
  278. Dim d As String
  279. Dim my_count As Integer = 0
  280. Dim my_no As String = ""
  281. Dim chem_lot As String = ""
  282. dd = Split(String.Format("{0:d}", DateTimePicker2.Value), "/")
  283. If Len(dd(1)) = 1 Then
  284. dd(1) = "0" & dd(1)
  285. End If
  286. If Len(dd(2)) = 1 Then
  287. dd(2) = "0" & dd(2)
  288. End If
  289. d = Microsoft.VisualBasic.Right(dd(0), 2) & dd(1) & dd(2)
  290. Dim my_id As Integer = 0
  291. sql = "select id from rt_bg_in_detail order by id desc"
  292. cmd.CommandText = sql
  293. my_id = cmd.ExecuteScalar + 1
  294. For x As Integer = 0 To dgv_pending.Rows.Count - 1
  295. If dgv_pending.Rows(x).Cells("验收").Value.ToString <> "" Then
  296. sql = "update RT_chem_container set contract_no='" & dgv_pending.Rows(x).Cells("合同号").Value & "',etd='" & dgv_pending.Rows(x).Cells("装船日").Value & "',eta='" & dgv_pending.Rows(x).Cells("到港日").Value & "',received='" & dgv_pending.Rows(x).Cells("验收").Value & "',bg_date='" & dd(0) & dd(1) & dd(2) & "' where serial='" & dgv_pending.Rows(x).Cells("serial").Value & "'"
  297. cmd.CommandText = sql
  298. cmd.ExecuteNonQuery()
  299. 'sql = "insert into rt_chem_lot (name,lot_no,qty,coin,price,w,r) values ('" & dgv_pending.Rows(x).Cells("品名").Value & "','" & chem_lot & "','" & dgv_pending.Rows(x).Cells("数量").Value & "','" & Trim(dgv_pending.Rows(x).Cells("币别").Value) & "','" & dgv_pending.Rows(x).Cells("单价").Value & "','0','0')"
  300. 'cmd.CommandText = sql
  301. 'cmd.ExecuteNonQuery()
  302. If dgv_pending.Rows(x).Cells(0).Value <> "一般贸易" Then
  303. sql = "insert into rt_bg_in_detail (DATE1,no,origin,xno,name,bg_date,qty,price,matl_name,id) values('" & String.Format("{0:d}", DateTimePicker2.Value) & "','" & bno & "',N'" & dgv_pending.Rows(x).Cells("产地").Value & "','" & dgv_pending.Rows(x).Cells(0).Value & "',N'" &
  304. dgv_pending.Rows(x).Cells("海关分类").Value & "','" & dd(0) & dd(1) & dd(2) & "','" & dgv_pending.Rows(x).Cells("数量").Value & "','" & dgv_pending.Rows(x).Cells("单价").Value & "',N'" & dgv_pending.Rows(x).Cells("品名").Value & "','" & my_id & "')"
  305. cmd.CommandText = sql
  306. cmd.ExecuteNonQuery()
  307. sql = "update rt_bg_in_detail set date1='" & dd(0) & dd(1) & dd(2) & "' where id='" & my_id & "'"
  308. cmd.CommandText = sql
  309. cmd.ExecuteNonQuery()
  310. End If
  311. ' cmd.ExecuteScalar()
  312. my_id = my_id + 1
  313. End If
  314. Next
  315. MsgBox("更新完成")
  316. Dim dt1 As New DataTable
  317. sql = "SELECT RT_CHEM_CONTAINER.date AS 日期, RT_CHEM_CONTAINER.CONTRACT_NO AS 合同号,
  318. RT_CHEM_CONTAINER.name AS 品名, RT_SYS_CHEM_MAIN.CLASS2 as 海关分类, RT_CHEM_CONTAINER.SUPPLIER AS 供应商,
  319. RT_CHEM_CONTAINER.ORIGINAL AS 产地, RT_CHEM_CONTAINER.qty AS 数量, RT_CHEM_CONTAINER.coin AS 币别,
  320. RT_CHEM_CONTAINER.price AS 单价, RT_CHEM_CONTAINER.etd AS 装船日, RT_CHEM_CONTAINER.eta AS 到港日, received as 验收,
  321. RT_CHEM_CONTAINER.serial, RT_CHEM_CONTAINER.item
  322. FROM RT_CHEM_CONTAINER LEFT OUTER JOIN
  323. RT_SYS_CHEM_MAIN ON RT_CHEM_CONTAINER.name = RT_SYS_CHEM_MAIN.name
  324. WHERE (RT_CHEM_CONTAINER.received IS NULL)"
  325. cmd.CommandText = sql
  326. da.SelectCommand = cmd
  327. da.Fill(dt1)
  328. dgv_pending.DataSource = dt1
  329. dgv_pending.Refresh()
  330. End Sub
  331. Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
  332. For x As Integer = 0 To dgv_pending.Rows.Count - 1
  333. sql = "select xno from rt_chem_container where serial='" & dgv_pending.Rows(x).Cells("serial").Value & "'"
  334. cmd.CommandText = sql
  335. dgv_pending.Rows(x).Cells("手册号").Value = cmd.ExecuteScalar
  336. Next
  337. End Sub
  338. Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
  339. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  340. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  341. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  342. Dim xlrange As Microsoft.Office.Interop.Excel.Range
  343. xlApp = CreateObject("Excel.Application")
  344. xlBook = xlApp.Workbooks.Add
  345. xlApp.DisplayAlerts = False
  346. xlApp.Visible = True
  347. xlBook.Activate()
  348. xlBook.Parent.Windows(1).Visible = True
  349. xlSheet = xlBook.Worksheets(1)
  350. xlSheet.Activate()
  351. 'my_vb_project()
  352. Dim Vba As Microsoft.Vbe.Interop.VBComponent = Nothing
  353. For xh As Int32 = 1 To xlApp.VBE.ActiveVBProject.VBComponents.Count
  354. If xlApp.VBE.ActiveVBProject.VBComponents.Item(xh).Name = "my_module1" Then
  355. xlApp.VBE.ActiveVBProject.VBComponents.Remove(xlApp.VBE.ActiveVBProject.VBComponents.Item(xh))
  356. Exit For
  357. End If
  358. Next
  359. xlApp.VBE.ActiveVBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule).Name = "my_module1"
  360. For xh As Int16 = 1 To xlApp.VBE.ActiveVBProject.VBComponents.Count
  361. If xlApp.VBE.ActiveVBProject.VBComponents.Item(xh).Name = "my_module1" Then
  362. Vba = xlApp.VBE.ActiveVBProject.VBComponents.Item(xh)
  363. End If
  364. Next
  365. Vba.CodeModule.AddFromString("Public Sub Macro2_create_button()" & vbCr &
  366. " " & vbCr &
  367. " Rows(""1:1"").Select " & vbCr &
  368. " Selection.RowHeight = 50.25 " & vbCr &
  369. " ActiveSheet.Buttons.Add (50, 1.5, 60, 40).Select " & vbCr &
  370. " Selection.OnAction = ""Macro_1"" " & vbCr &
  371. " Selection.Characters.Text = ""皮革整理剂"" " & vbCr &
  372. " ActiveSheet.Buttons.Add(120, 1.5, 60, 40).Select " & vbCr &
  373. " Selection.OnAction = ""Macro_2"" " & vbCr &
  374. " Selection.Characters.Text = ""有机鞣料"" " & vbCr &
  375. " ActiveSheet.Buttons.Add(190, 1.5, 60, 40).Select " & vbCr &
  376. " Selection.OnAction = ""Macro_3"" " & vbCr &
  377. " Selection.Characters.Text = ""无机鞣料 "" " & vbCr &
  378. " ActiveSheet.Buttons.Add(260, 1.5, 60, 40).Select " & vbCr &
  379. " Selection.OnAction = ""Macro_4"" " & vbCr &
  380. " Selection.Characters.Text = ""复鞣助剂"" " & vbCr &
  381. " ActiveSheet.Buttons.Add(330, 1.5, 60, 40).Select " & vbCr &
  382. " Selection.OnAction = ""Macro_5"" " & vbCr &
  383. " Selection.Characters.Text = ""表面活性剂"" " & vbCr &
  384. " ActiveSheet.Buttons.Add(400, 1.5, 60, 40).Select " & vbCr &
  385. " Selection.OnAction = ""Macro_6"" " & vbCr &
  386. " Selection.Characters.Text = ""合成油脂(矿)"" " & vbCr &
  387. " ActiveSheet.Buttons.Add(470, 1.5, 60, 40).Select " & vbCr &
  388. " Selection.OnAction = ""Macro_7"" " & vbCr &
  389. " Selection.Characters.Text = ""合成油脂"" " & vbCr &
  390. " ActiveSheet.Buttons.Add(540, 1.5, 60, 40).Select " & vbCr &
  391. " Selection.OnAction = ""Macro_8"" " & vbCr &
  392. " Selection.Characters.Text = ""制革染料 "" " & vbCr &
  393. " ActiveSheet.Buttons.Add(610, 1.5, 60, 40).Select " & vbCr &
  394. " Selection.OnAction = ""Macro_9"" " & vbCr &
  395. " Selection.Characters.Text = ""聚氨脂混合液"" " & vbCr &
  396. " ActiveSheet.Buttons.Add(680, 1.5, 60, 40).Select " & vbCr &
  397. " Selection.OnAction = ""Macro_10"" " & vbCr &
  398. " Selection.Characters.Text = ""PU树脂"" " & vbCr &
  399. " ActiveSheet.Buttons.Add(750, 1.5, 60, 40).Select " & vbCr &
  400. " Selection.OnAction = ""Macro_11"" " & vbCr &
  401. " Selection.Characters.Text = ""皮革促进剂"" " & vbCr &
  402. " end sub " & vbCr &
  403. " public sub macro_1() " & vbCr &
  404. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""皮革整理剂"" " & vbCr &
  405. " end sub" & vbCr &
  406. " public sub macro_2() " & vbCr &
  407. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""有机鞣料"" " & vbCr &
  408. " end sub" & vbCr &
  409. " public sub macro_3() " & vbCr &
  410. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""无机鞣料"" " & vbCr &
  411. " end sub" & vbCr &
  412. " public sub macro_4() " & vbCr &
  413. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""复鞣助剂"" " & vbCr &
  414. " end sub" & vbCr &
  415. " public sub macro_5() " & vbCr &
  416. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""表面活性剂"" " & vbCr &
  417. " end sub" & vbCr &
  418. " public sub macro_6() " & vbCr &
  419. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""合成油脂(矿)"" " & vbCr &
  420. " end sub" & vbCr &
  421. " public sub macro_7() " & vbCr &
  422. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""合成油脂"" " & vbCr &
  423. " end sub" & vbCr &
  424. " public sub macro_8() " & vbCr &
  425. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""制革染料"" " & vbCr &
  426. " end sub" & vbCr &
  427. " public sub macro_9() " & vbCr &
  428. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""聚氨脂混合液"" " & vbCr &
  429. " end sub" & vbCr &
  430. " public sub macro_10() " & vbCr &
  431. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""PU树脂"" " & vbCr &
  432. " end sub" & vbCr &
  433. " public sub macro_11() " & vbCr &
  434. " ActiveSheet.Range(""$A$6:$M$100"").AutoFilter Field:=4, Criteria1:=""皮革促进剂"" " & vbCr &
  435. " end sub")
  436. dgv_pending.SelectAll()
  437. dgv_pending.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
  438. dgv_pending.RowHeadersVisible = False
  439. Clipboard.SetDataObject(dgv_pending.GetClipboardContent())
  440. ' xlSheet.PasteSpecial(Format:="文本", Link:=False, DisplayAsIcon:=False)
  441. ' xlSheet.PasteSpecial(Format:="unicode 文字", Link:=False, DisplayAsIcon:=False)
  442. xlSheet.Cells(5, 1).Select()
  443. xlSheet.Paste()
  444. 'xlSheet.PasteSpecial(Paste:=Microsoft.Office.Interop.Excel.XlPasteType.xlPasteValues, SkipBlanks:=False, Transpose:=False)
  445. xlSheet.Rows("5:100").select
  446. With xlApp.Selection
  447. .HorizontalAlignment = Microsoft.Office.Core.XlConstants.xlGeneral
  448. .VerticalAlignment = Microsoft.Office.Core.XlConstants.xlCenter
  449. .WrapText = False
  450. .Orientation = 0
  451. .AddIndent = False
  452. .IndentLevel = 0
  453. .ShrinkToFit = False
  454. .MergeCells = False
  455. End With
  456. sql = "SELECT NO FROM RT_BG_MAIN where checked='False' ORDER BY SERIAL"
  457. cmd.CommandText = sql
  458. da.SelectCommand = cmd
  459. da.Fill(dt)
  460. For x As Integer = 0 To dt.Rows.Count - 1
  461. xlSheet.Cells(3 + x, 1) = dt.Rows(x).Item("no")
  462. Next
  463. Dim dt1 As New DataTable
  464. sql = "SELECT NAME AS 品名 FROM RT_BG_MTL_NAME WHERE SERIAL <17 and serial>1 and serial<>7 and serial<>11 and serial<>12 and serial<>13 ORDER BY SERIAL"
  465. cmd.CommandText = sql
  466. da.SelectCommand = cmd
  467. da.Fill(dt1)
  468. For x As Integer = 0 To dt1.Rows.Count - 1 '---化工
  469. xlSheet.Cells(2, 2 + x) = dt1.Rows(x).Item("品名")
  470. For y = 0 To dt.Rows.Count - 1
  471. sql = "SELECT SUM(RT_CHEM_CONTAINER.qty) AS qty FROM RT_CHEM_CONTAINER INNER JOIN
  472. RT_SYS_CHEM_MAIN ON RT_CHEM_CONTAINER.name = RT_SYS_CHEM_MAIN.name
  473. WHERE (RT_CHEM_CONTAINER.received IS NULL) and class2 =N'" & dt1.Rows(x).Item("品名") & "' and xno='" & dt.Rows(y).Item("no") & "'"
  474. cmd.CommandText = sql
  475. dr = cmd.ExecuteReader
  476. If dr.Read Then
  477. xlSheet.Cells(3 + y, x + 2) = dr("qty")
  478. End If
  479. dr.Close()
  480. Next
  481. Next
  482. xlSheet.Columns("A:M").AutoFit
  483. xlSheet.Columns("A:M").Select
  484. With xlApp.Selection
  485. .HorizontalAlignment = Microsoft.Office.Core.XlConstants.xlLeft
  486. .VerticalAlignment = Microsoft.Office.Core.XlConstants.xlCenter
  487. .WrapText = False
  488. .Orientation = 0
  489. .AddIndent = False
  490. .IndentLevel = 0
  491. .ShrinkToFit = False
  492. .ReadingOrder = Microsoft.Office.Core.XlReadingOrder.xlContext
  493. .MergeCells = False
  494. End With
  495. xlSheet.Range("A5:M5").Select()
  496. xlApp.Selection.AutoFilter
  497. xlSheet.Range("A2:L4").Select()
  498. 'xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
  499. 'xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  500. With xlApp.Selection.Borders(xlEdgeLeft)
  501. .LineStyle = xlContinuous
  502. .ColorIndex = 0
  503. .TintAndShade = 0
  504. .Weight = xlThin
  505. End With
  506. With xlApp.Selection.Borders(xlEdgeTop)
  507. .LineStyle = xlContinuous
  508. .ColorIndex = 0
  509. .TintAndShade = 0
  510. .Weight = xlThin
  511. End With
  512. With xlApp.Selection.Borders(xlEdgeBottom)
  513. .LineStyle = xlContinuous
  514. .ColorIndex = 0
  515. .TintAndShade = 0
  516. .Weight = xlThin
  517. End With
  518. With xlApp.Selection.Borders(xlEdgeRight)
  519. .LineStyle = xlContinuous
  520. .ColorIndex = 0
  521. .TintAndShade = 0
  522. .Weight = xlThin
  523. End With
  524. With xlApp.Selection.Borders(xlInsideVertical)
  525. .LineStyle = xlContinuous
  526. .ColorIndex = 0
  527. .TintAndShade = 0
  528. .Weight = xlThin
  529. End With
  530. With xlApp.Selection.Borders(xlInsideHorizontal)
  531. .LineStyle = xlContinuous
  532. .ColorIndex = 0
  533. .TintAndShade = 0
  534. .Weight = xlThin
  535. End With
  536. xlSheet.Range("A5:M5").Select()
  537. With xlApp.Selection.Interior
  538. ' .Pattern = xlSolid
  539. '.PatternColorIndex = xlAutomatic
  540. .ThemeColor = xlThemeColorDark2
  541. .TintAndShade = -0.249977111117893
  542. .PatternTintAndShade = 0
  543. End With
  544. xlApp.Run("macro2_create_button")
  545. xlApp = Nothing
  546. xlSheet = Nothing
  547. End Sub
  548. Private Sub dgv_pending_DataError(sender As Object, e As DataGridViewDataErrorEventArgs) Handles dgv_pending.DataError
  549. End Sub
  550. Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click '-------查询未到订单
  551. sql = "SELECT RT_CHEM_CONTAINER.date AS 日期, RT_CHEM_CONTAINER.CONTRACT_NO AS 合同号, RT_CHEM_CONTAINER.name AS 品名, RT_SYS_CHEM_MAIN.CLASS2 as 海关分类, RT_CHEM_CONTAINER.SUPPLIER AS 供应商, RT_CHEM_CONTAINER.ORIGINAL AS 产地, RT_CHEM_CONTAINER.qty AS 数量, RT_CHEM_CONTAINER.coin AS 币别, RT_CHEM_CONTAINER.price AS 单价,RT_CHEM_CONTAINER.deposit AS 订金,case when deposit is null then cast(RT_CHEM_CONTAINER.qty*RT_CHEM_CONTAINER.price as numeric(10,1)) else cast(RT_CHEM_CONTAINER.qty*RT_CHEM_CONTAINER.price-cast(deposit as numeric(10,1)) as numeric(10,1)) end as 尾款, RT_CHEM_CONTAINER.etd AS 装船日, RT_CHEM_CONTAINER.eta AS 到港日, received as 验收, RT_CHEM_CONTAINER.serial, RT_CHEM_CONTAINER.item FROM RT_CHEM_CONTAINER LEFT OUTER JOIN RT_SYS_CHEM_MAIN ON RT_CHEM_CONTAINER.name = RT_SYS_CHEM_MAIN.name WHERE (RT_CHEM_CONTAINER.received IS NULL) ORDER BY RT_CHEM_CONTAINER.DATE DESC,CONTRACT_NO,RT_CHEM_CONTAINER.name"
  552. cmd.CommandText = sql
  553. da.SelectCommand = cmd
  554. Dim dt1 As New DataTable
  555. da.Fill(dt1)
  556. dgv_pending.DataSource = dt1
  557. For x As Integer = 0 To dgv_pending.Rows.Count - 1
  558. sql = "select xno from rt_chem_container where serial='" & dgv_pending.Rows(x).Cells("serial").Value & "' AND NAME =N'" & dgv_pending.Rows(x).Cells("品名").Value & "'"
  559. cmd.CommandText = sql
  560. dgv_pending.Rows(x).Cells("手册号").Value = cmd.ExecuteScalar
  561. Next
  562. sql = "SELECT XNO AS 手册号, 海关分类, SUM(数量) AS 数量
  563. FROM (SELECT TOP (100) PERCENT RT_CHEM_CONTAINER.DATE AS 日期,
  564. RT_CHEM_CONTAINER.CONTRACT_NO AS 合同号, RT_CHEM_CONTAINER.NAME AS 品名,
  565. RT_SYS_CHEM_MAIN.CLASS2 AS 海关分类, RT_CHEM_CONTAINER.SUPPLIER AS 供应商,
  566. RT_CHEM_CONTAINER.ORIGINAL AS 产地, RT_CHEM_CONTAINER.QTY AS 数量,
  567. RT_CHEM_CONTAINER.COIN AS 币别, RT_CHEM_CONTAINER.PRICE AS 单价,
  568. RT_CHEM_CONTAINER.DEPOSIT AS 订金, CASE WHEN deposit IS NULL
  569. THEN CAST(RT_CHEM_CONTAINER.qty * RT_CHEM_CONTAINER.price AS numeric(10, 1))
  570. ELSE CAST(RT_CHEM_CONTAINER.qty * RT_CHEM_CONTAINER.price - CAST(deposit AS numeric(10, 1))
  571. AS numeric(10, 1)) END AS 尾款, RT_CHEM_CONTAINER.ETD AS 装船日,
  572. RT_CHEM_CONTAINER.ETA AS 到港日, RT_CHEM_CONTAINER.RECEIVED AS 验收,
  573. RT_CHEM_CONTAINER.SERIAL, RT_CHEM_CONTAINER.ITEM, RT_CHEM_CONTAINER.XNO
  574. FROM RT_CHEM_CONTAINER LEFT OUTER JOIN
  575. RT_SYS_CHEM_MAIN ON RT_CHEM_CONTAINER.NAME = RT_SYS_CHEM_MAIN.NAME
  576. WHERE (RT_CHEM_CONTAINER.RECEIVED IS NULL)
  577. ORDER BY 日期 DESC, 合同号, 品名) AS p
  578. GROUP BY XNO, 海关分类
  579. ORDER BY 手册号, 海关分类"
  580. cmd.CommandText = sql
  581. da.SelectCommand = cmd
  582. dt1 = New DataTable
  583. da.Fill(dt1)
  584. dgv_sum.DataSource = dt1
  585. dgv_sum.Columns(0).Width = 120
  586. End Sub
  587. End Class