Option Explicit On Imports System.Net Imports System.IO Public Class 車輛保養紀錄表 ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet Dim EDR As Integer = 0 : Dim ESTR As String Private m_Leftx As Integer = 152 Private m_Lefty As Integer = 0 Dim m_MousePosX As Integer Dim m_MousePosY As Integer Dim m_DeltaX As Integer Dim m_DeltaY As Integer ReadOnly m_StrecthX As Double ReadOnly m_StrecthY As Double Private Sub Set_清單() DataGridView1.DataSource = Nothing : ds.Clear() DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing DataGridView1.ColumnHeadersHeight = 25 DataGridView1.AllowUserToAddRows = False SQL_車輛保養紀錄表() da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close() DataGridView1.Columns(0).Visible = False : DataGridView1.Columns(1).Visible = False : DataGridView1.Columns(2).FillWeight = 100 : DataGridView1.Columns(3).FillWeight = 100 DataGridView1.Columns(4).FillWeight = 100 DataGridView1.Columns(4).DefaultCellStyle.Format = "#,##0" DataGridView1.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : DataGridView1.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter End Sub Private Sub ComboBox1下拉表單資料載入() SQL_車牌號碼清單() ComboBox1.Items.Clear() While (dr.Read()) : ComboBox1.Items.Add(dr("車牌號碼")) : End While : conn.Close() End Sub Private Sub 車輛保養紀錄表_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = MAOJI_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True TextBox1.Visible = False : TextBox3.Visible = False : ComboBox1下拉表單資料載入() If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then WebBrowser2.Navigate(FolderBrowserDialog1.SelectedPath) End If Target1 = Target & AA(1) & "/" WebBrowser1.Url = New Uri(Target1) End Sub Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick If e.RowIndex = -1 Then : Else DateTimePicker2.Value = DataGridView1.Rows(e.RowIndex).Cells("保養日期").Value.ToString : DateTimePicker1.Value = DataGridView1.Rows(e.RowIndex).Cells("預保日期").Value.ToString NumericUpDown1.Value = DataGridView1.Rows(e.RowIndex).Cells("里程數").Value.ToString : TextBox1.Text = DataGridView1.Rows(e.RowIndex).Cells("流水號").Value.ToString Set_圖片顯示() End If End Sub Private Sub TextBox4_DragEnter(sender As Object, e As DragEventArgs) Handles TextBox4.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then Dim files As String() Try files = CType(e.Data.GetData(DataFormats.FileDrop), String()) TextBox4.Text = files(files.Length - 1) Catch ex As Exception MessageBox.Show(ex.Message) Return End Try End If Dim STR2 As Integer = 0 TextBox3.Text = TextBox4.Text If TextBox4.Text = "" Then Else For i As Integer = 0 To 9999 Dim STR1 As Integer = Strings.Len(TextBox3.Text) If Strings.Right((TextBox3.Text), 1) <> "\" Then STR1 -= 1 : STR2 += 1 If STR1 = 0 Then TextBox3.Text = "" TextBox4.Text = "" i = 9999 Else TextBox3.Text = Strings.Left((TextBox3.Text), STR1) End If Else TextBox3.Text = Strings.Right((TextBox4.Text), STR2) TextBox4.Text = TextBox3.Text i = 9999 End If Next End If End Sub Private Sub TextBox4_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles TextBox4.DragDrop Dim files As Array = e.Data.GetData(DataFormats.FileDrop) For Each file As String In files TextBox4.AppendText(file + Environment.NewLine) Next End Sub Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then WebBrowser2.Navigate(FolderBrowserDialog1.SelectedPath) End If End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged Set_清單() End Sub Private Sub Set_日期格式轉換() DTP1 = Format(DateTimePicker2.Value, "yyyy/MM/dd") : DTP2 = Format(DateTimePicker1.Value, "yyyy/MM/dd") End Sub Private Sub Set_流水號() SQL_車輛保養紀錄表流水號最後一筆() If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 8)) : Else : EDR = 0 : End If conn.Close() EDR += 1 If EDR < 10 Then : ESTR = "VM" & "0000000" & EDR ElseIf EDR > 9 And EDR < 100 Then : ESTR = "VM" & "000000" & EDR ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "VM" & "00000" & EDR ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "VM" & "0000" & EDR ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "VM" & "000" & EDR ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "VM" & "00" & EDR ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "VM" & "0" & EDR ElseIf EDR > 9999999 Then : ESTR = "VM" & EDR End If TextBox1.Text = ESTR Set_日期格式轉換() End Sub Private Sub Set_圖片顯示() PictureBox1.Image = Nothing SQL_車輛保養紀錄表圖片讀取() While dr.Read() = True Dim unused As Byte() = New Byte(-1) {} Dim bytes As Byte() = DirectCast(dr.Item("圖片"), Byte()) Dim oStream As New MemoryStream(bytes) PictureBox1.Image = Bitmap.FromStream(oStream) End While conn.Close() PictureBox1.SizeMode = 4 End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click If ComboBox1.Text = "" Then MsgBox("請先輸入車牌,或選擇車牌") Else If TextBox4.Text = "" Then Set_流水號() : SQL_車輛保養紀錄表新增_無圖片() : conn.Close() : TextBox4.Text = "" : Set_圖片顯示() : TextBox1.Text = "" Else Set_流水號() : SQL_車輛保養紀錄表新增_有圖片() : conn.Close() '---FTP方式刪除檔案---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Dim frq As FtpWebRequest, frp As FtpWebResponse, fcr As NetworkCredential frq = CType(WebRequest.Create(New Uri(Target1 & TextBox4.Text)), FtpWebRequest) fcr = New NetworkCredential(FTP帳號, FTP密碼) frq.Credentials = fcr frq.Method = WebRequestMethods.Ftp.DeleteFile frq.UseBinary = True frp = CType(frq.GetResponse, FtpWebResponse) frp.Close() WebBrowser1.Refresh() '---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- TextBox4.Text = "" Set_圖片顯示() TextBox1.Text = "" End If Set_清單() End If End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If ComboBox1.Text = "" Then MsgBox("請先輸入車牌,或選擇車牌") Else If TextBox4.Text = "" Then Set_日期格式轉換() SQL_車輛保養紀錄表修改_無圖片() : conn.Close() TextBox4.Text = "" : Set_圖片顯示() : TextBox1.Text = "" Else conn.Close() : Set_日期格式轉換() SQL_車輛保養紀錄表修改_有圖片() : conn.Close() '---FTP方式刪除檔案---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Dim frq As FtpWebRequest, frp As FtpWebResponse, fcr As NetworkCredential frq = CType(WebRequest.Create(New Uri(Target1 & TextBox4.Text)), FtpWebRequest) fcr = New NetworkCredential(FTP帳號, FTP密碼) frq.Credentials = fcr frq.Method = WebRequestMethods.Ftp.DeleteFile frq.UseBinary = True frp = CType(frq.GetResponse, FtpWebResponse) frp.Close() WebBrowser1.Refresh() '---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- TextBox4.Text = "" Set_圖片顯示() TextBox1.Text = "" End If MsgBox("修改完成") : Set_清單() End If End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click PictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipNone) : PictureBox1.Refresh() : PictureBox1.SizeMode = 4 End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click PictureBox1.Image.RotateFlip(RotateFlipType.Rotate270FlipNone) : PictureBox1.Refresh() : PictureBox1.SizeMode = 4 End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click PictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipY) : PictureBox1.Refresh() : PictureBox1.SizeMode = 4 End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click PictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipX) : PictureBox1.Refresh() : PictureBox1.SizeMode = 4 End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click Dim image = PictureBox1.Image Dim g As Graphics = PictureBox1.CreateGraphics g.DrawImage(image, New Rectangle(0, 0, image.Width * 2, image.Height * 2)) End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click PictureBox1.Refresh() End Sub '@#处理鼠标按键抬起的事件,根据鼠标按下时保存的鼠标位置,和当前鼠标的位置, '计算鼠标移动偏移量,借此调用移动图片的函数,移动图片 Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseUp m_DeltaX = m_MousePosX - e.X m_DeltaY = m_MousePosY - e.Y m_Leftx -= m_DeltaX m_Lefty -= m_DeltaY Picturemove(sender, e) Me.Cursor = Cursors.Arrow End Sub '@#当鼠标按下时,将鼠标变成手形,并且记录下当前鼠标的位置 Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseDown Me.Cursor = Cursors.Hand m_MousePosX = e.X m_MousePosY = e.Y End Sub '@#根据偏移量计算出的图片位置,重画图片 Private Sub Picturemove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Dim myBit As New Bitmap(PictureBox1.Image) Dim myPicGrh As Graphics = Me.PictureBox1.CreateGraphics myPicGrh.Clear(Me.PictureBox1.BackColor) myPicGrh.DrawImageUnscaled(myBit, m_Leftx - 152, m_Lefty) myBit.Dispose() myPicGrh.Dispose() End Sub End Class