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

零用金支付核准.vb 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. Option Strict Off
  2. Imports System.IO
  3. Public Class 零用金支付核准
  4. Private ReadOnly ds, ds2, ds3, ds4 As New DataSet
  5. Private ReadOnly QQW(11) As String
  6. Dim II As Integer
  7. Dim 已超出 As Boolean
  8. Private Sub Set_財務單清單()
  9. 明細_dgv.DataSource = Nothing : ds.Clear()
  10. 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  11. 明細_dgv.ColumnHeadersHeight = 25
  12. 明細_dgv.AllowUserToAddRows = False
  13. 明細_dgv.RowTemplate.Height = 35
  14. PA1 = 零用金單號_tb.Text : SQL_財務帳清單()
  15. da.Fill(ds) : 明細_dgv.DataSource = ds.Tables(0) : conn.Close()
  16. 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).Width = 80 : 明細_dgv.Columns(2).Width = 342 : 明細_dgv.Columns(3).Width = 140
  17. 明細_dgv.Columns(4).Width = 350
  18. 明細_dgv.Columns(3).DefaultCellStyle.Format = "#,##0.00"
  19. 明細_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  20. 明細_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  21. 總金額_tb.Text = "0.00"
  22. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  23. 總金額_tb.Text = Val(總金額_tb.Text) + 明細_dgv.Rows(i).Cells("金額").Value
  24. Next i
  25. 總金額_tb.Text = Format(Val(總金額_tb.Text), "#,##0.00")
  26. End Sub
  27. Private Sub Set_清單3()
  28. 二級未核准_dgv.DataSource = Nothing : ds3.Clear()
  29. 二級未核准_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  30. 二級未核准_dgv.ColumnHeadersHeight = 25
  31. 二級未核准_dgv.AllowUserToAddRows = False
  32. PA19 = "%%" : PA = "二級未核准" : SQL_財務單據()
  33. da.Fill(ds3) : 二級未核准_dgv.DataSource = ds3.Tables(0) : conn.Close()
  34. 二級未核准_dgv.Columns(0).FillWeight = 120 : 二級未核准_dgv.Columns(1).FillWeight = 114 : 二級未核准_dgv.Columns(2).FillWeight = 114 : 二級未核准_dgv.Columns(3).FillWeight = 115
  35. 二級未核准_dgv.Columns(4).FillWeight = 115 : 二級未核准_dgv.Columns(5).FillWeight = 115 : 二級未核准_dgv.Columns(6).FillWeight = 115 : 二級未核准_dgv.Columns(7).FillWeight = 115
  36. 二級未核准_dgv.Columns(8).Visible = False : 二級未核准_dgv.Columns(9).FillWeight = 90
  37. End Sub
  38. Private Sub Set_清單4()
  39. 二級作廢_dgv.DataSource = Nothing : ds4.Clear()
  40. 二級作廢_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  41. 二級作廢_dgv.ColumnHeadersHeight = 25
  42. 二級作廢_dgv.AllowUserToAddRows = False
  43. PA19 = "%%" : PA = "二級作廢" : SQL_財務單據()
  44. da.Fill(ds4) : 二級作廢_dgv.DataSource = ds4.Tables(0) : conn.Close()
  45. 二級作廢_dgv.Columns(0).FillWeight = 120 : 二級作廢_dgv.Columns(1).FillWeight = 114 : 二級作廢_dgv.Columns(2).FillWeight = 114 : 二級作廢_dgv.Columns(3).FillWeight = 115
  46. 二級作廢_dgv.Columns(4).FillWeight = 115 : 二級作廢_dgv.Columns(5).FillWeight = 115 : 二級作廢_dgv.Columns(6).FillWeight = 115 : 二級作廢_dgv.Columns(7).FillWeight = 115
  47. 二級作廢_dgv.Columns(8).Visible = False : 二級作廢_dgv.Columns(9).FillWeight = 90
  48. End Sub
  49. Private Sub Set_清單()
  50. 簽名檔_dgv.DataSource = Nothing : ds2.Clear()
  51. 簽名檔_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  52. 簽名檔_dgv.ColumnHeadersHeight = 25
  53. 簽名檔_dgv.AllowUserToAddRows = False
  54. SQL_簽名檔管理1()
  55. da.Fill(ds2) : 簽名檔_dgv.DataSource = ds2.Tables(0) : conn.Close()
  56. 簽名檔_dgv.Columns(0).Width = 110 : 簽名檔_dgv.Columns(1).Width = 63
  57. End Sub
  58. Private Sub 零用金支付核准_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  59. WINPROFIT_ERP_SYS.WindowState = 2 : Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  60. Set_清單() : Set_清單3() : Set_清單4()
  61. End Sub
  62. Private Sub 轉換()
  63. If QQW(II) = "1" Then : QQW(II) = "A" : ElseIf QQW(II) = "2" Then : QQW(II) = "B" : ElseIf QQW(II) = "3" Then : QQW(II) = "C" : ElseIf QQW(II) = "4" Then : QQW(II) = "D"
  64. ElseIf QQW(II) = "5" Then : QQW(II) = "E" : ElseIf QQW(II) = "6" Then : QQW(II) = "F" : ElseIf QQW(II) = "7" Then : QQW(II) = "G" : ElseIf QQW(II) = "8" Then : QQW(II) = "H"
  65. ElseIf QQW(II) = "9" Then : QQW(II) = "I" : ElseIf QQW(II) = "0" Then : QQW(II) = "J"
  66. End If
  67. End Sub
  68. Public Sub Delay(ByRef Interval As Double) 'Interval单位为毫秒
  69. Dim time As DateTime = DateTime.Now : Dim Span As Double = Interval * 1234 : While ((DateTime.Now.Ticks - time.Ticks) < Span) : Application.DoEvents() : End While
  70. End Sub
  71. Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 簽名檔_dgv.CellClick
  72. If e.RowIndex = -1 Then : Else
  73. 圖片編碼_tb.Text = 簽名檔_dgv(0, e.RowIndex).Value.ToString
  74. SQL_簽名檔管理2()
  75. While dr.Read() = True
  76. Dim bytes As Byte() = New Byte(-1) {}
  77. bytes = DirectCast(dr.Item("簽名檔圖片"), Byte())
  78. Dim oStream As New MemoryStream(bytes)
  79. PictureBox1.Image = Bitmap.FromStream(oStream)
  80. End While
  81. conn.Close()
  82. PictureBox1.SizeMode = 4
  83. For QAZ = 0 To 999
  84. QQW(0) = Strings.Right(簽名檔_dgv(0, e.RowIndex).Value.ToString, 2) : QQW(1) = Strings.Right(Year(Today), 2) : QQW(2) = Strings.Left(Year(Today), 2) : QQW(3) = Month(Today) + 9
  85. QQW(4) = Strings.Right(QQW(0), 1) : QQW(5) = Strings.Left(QQW(0), 1) : QQW(6) = Strings.Right(QQW(1), 1) : QQW(7) = Strings.Left(QQW(1), 1) : QQW(8) = Strings.Right(QQW(2), 1)
  86. QQW(9) = Strings.Left(QQW(2), 1) : QQW(10) = Strings.Right(QQW(3), 1) : QQW(11) = Strings.Left(QQW(3), 1)
  87. For RT = 4 To 11
  88. Delay(3)
  89. Dim NUM1 As Integer : Dim ran = New Random(DateTime.Now.Millisecond) : NUM1 = ran.Next(1, 4096)
  90. For I = 0 To 4096 : If NUM1 > 9 Then : NUM1 -= 9 : ElseIf NUM1 < 9 Then : I = 4096 : End If : Next
  91. If NUM1 = 1 Then : II = RT : 轉換() : ElseIf NUM1 = 2 Then : II = RT : 轉換() : ElseIf NUM1 = 3 Then : ElseIf NUM1 = 4 Then : II = RT : 轉換() : ElseIf NUM1 = 5 Then
  92. ElseIf NUM1 = 6 Then : II = RT : 轉換() : ElseIf NUM1 = 7 Then : ElseIf NUM1 = 8 Then : II = RT : 轉換() : ElseIf NUM1 = 9 Then : II = RT : 轉換() : End If
  93. Next
  94. Dim NUM2 As Integer = 0 : Dim ran1 = New Random(DateTime.Now.Millisecond) : NUM2 = ran1.Next(1, 4096)
  95. For I = 0 To 4096 : If NUM2 > 99 Then : NUM2 -= 49 : ElseIf NUM2 < 99 Then : I = 4096 : End If : Next
  96. 驗證碼_tb.Text = QQW(11) & "2" & QQW(9) & "7" & QQW(7) & "0" & QQW(5) & QQW(4) & "1" & QQW(6) & "3" & QQW(8) & "9" & QQW(10) & NUM2
  97. SQL_零用金支付表()
  98. If dr.Read() = True Then : Else : QAZ = 999 : End If : conn.Close()
  99. Next
  100. End If
  101. End Sub
  102. Private Sub DataGridView4_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 二級未核准_dgv.CellClick
  103. If e.RowIndex = -1 Then : Else
  104. 零用金單號_tb.Text = 二級未核准_dgv(0, e.RowIndex).Value.ToString : 申請部門_tb.Text = 二級未核准_dgv(1, e.RowIndex).Value.ToString : 申請人_tb.Text = 二級未核准_dgv(2, e.RowIndex).Value.ToString
  105. Set_財務單清單()
  106. End If
  107. End Sub
  108. Private Sub DataGridView5_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 二級作廢_dgv.CellClick
  109. If e.RowIndex = -1 Then : Else
  110. 零用金單號_tb.Text = 二級作廢_dgv(0, e.RowIndex).Value.ToString : 申請部門_tb.Text = 二級作廢_dgv(1, e.RowIndex).Value.ToString : 申請人_tb.Text = 二級作廢_dgv(2, e.RowIndex).Value.ToString
  111. Set_財務單清單()
  112. End If
  113. End Sub
  114. Private Sub Set_日期格式轉換()
  115. DTP = Format(Today(), "yyyy/MM/dd") & "-" & Format(TimeOfDay(), "hh:mm:ss") : DTP2 = Format(Today(), "yyyy/MM/dd")
  116. End Sub
  117. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 核准_bt.Click
  118. Set_日期格式轉換()
  119. If 零用金單號_tb.Text = "" Then
  120. MsgBox("沒有選擇零用金支付單")
  121. Else
  122. If 驗證碼_tb.Text = "" Then
  123. MsgBox("沒有選擇簽名檔")
  124. Else
  125. SQL_修改零用金支付表() : conn.Close()
  126. MsgBox("單據 " & 零用金單號_tb.Text & " 核准完成")
  127. Set_清單3() : Set_清單4()
  128. 零用金單號_tb.Text = "" : 申請部門_tb.Text = "" : 申請人_tb.Text = "" : 驗證碼_tb.Text = "" : 圖片編碼_tb.Text = ""
  129. 明細_dgv.DataSource = Nothing : ds.Clear()
  130. End If
  131. End If
  132. End Sub
  133. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 作廢_bt.Click
  134. Set_日期格式轉換()
  135. If 零用金單號_tb.Text = "" Then
  136. MsgBox("沒有選擇零用金支付單")
  137. Else
  138. Dim aa As MsgBoxResult
  139. aa = MsgBox("確定要作廢該筆資料?", MsgBoxStyle.OkCancel)
  140. If aa = MsgBoxResult.Ok Then
  141. SQL_修改零用金支付表2() : conn.Close()
  142. MsgBox("單據 " & 零用金單號_tb.Text & " 已作廢")
  143. Set_清單3() : Set_清單4()
  144. 零用金單號_tb.Text = "" : 申請部門_tb.Text = "" : 申請人_tb.Text = "" : 驗證碼_tb.Text = "" : 圖片編碼_tb.Text = ""
  145. 明細_dgv.DataSource = Nothing : ds.Clear()
  146. End If
  147. End If
  148. End Sub
  149. Private Sub 明細_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 明細_dgv.MouseUp
  150. If 明細_dgv.SelectedCells.Count = 1 Then
  151. 已超出 = False
  152. End If
  153. If 明細_dgv.SelectedCells.Count > 0 Then
  154. '設定滑鼠點擊DGV時候的範圍,超出範圍時有可能不是數字所以不計算
  155. If 明細_dgv.SelectedCells(0).ColumnIndex = 3 Then
  156. If 已超出 = False Then
  157. Dim x As Double = 0
  158. For i As Integer = 0 To 明細_dgv.SelectedCells.Count - 1
  159. '明細_dgv.SelectedCells.Item(i).ColumnIndex + 8 是因為該DGV顯示項與計算像剛好差8格,使用時要注意可直接計算的不需要加數字。
  160. x += Val(明細_dgv.Rows(明細_dgv.SelectedCells.Item(i).RowIndex).Cells(明細_dgv.SelectedCells.Item(i).ColumnIndex).Value)
  161. Next i
  162. '將計算好的資料放置到指定的控件中
  163. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0")
  164. Else
  165. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  166. End If
  167. Else
  168. 已超出 = True
  169. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  170. End If
  171. End If
  172. End Sub
  173. End Class