報告題名:
應用程式設計—產品資料管理系統
作者:林霈琦
系級:工業二甲
學號:D9529325
開課老師:陳亭志
課程名稱:應用程式設計
開課系所:工業工程與系統管理學系
開課學年:九十六學年度 第一學期
目 錄
方案總管………3
Form1 主選單………4
Form2 基本資料維護………6
Form3 瀏覽產品資料………7
Form4 全部瀏覽………8
Form5 瀏覽/修改/刪除資料………9
Form6 新增產品資料………14
Form7 統計及報表作業………16
習課心得 ………22
方案總管:
Form1:主選單,連結所有其他表單。
Form2:基本資料維護,可作資料之新增、修改、刪除等動作。
Form3:瀏覽產品資料,可選擇資料全部或逐筆瀏覽。
Form4:全部瀏覽,資料庫顯現共有 7 項商品。
Form5:逐筆瀏覽,可以前後檢視產品資料。
Form6:新增產品資料,隨時可以更新。
Form7:統計及報表作業,利用圖表來使數據更清楚。
Form1 執行畫面:
程式碼:
Public Class Form1
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label3.Text = Now
'設置計時器'
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click MsgBox("記得要再來唷!", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "嘿!")
'離開系統,關閉所有視窗'
End
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.Show() '離開主選單,移到Form2基本資料維護'
Me.Hide() '隱藏form1'
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form7.Show() '離開主選單,移到Form7統計及報表作業'
Me.Hide() '隱藏form1'
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load My.Computer.Audio.Play("Something Right.WAV", AudioPlayMode.BackgroundLoop)
'背景音樂自動播放'
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click My.Computer.Audio.Stop()
'背景音樂關閉'
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click My.Computer.Audio.Play("Something Right.WAV", AudioPlayMode.BackgroundLoop)
'背景音樂再次開啟'
End Sub End Class
Form2 執行畫面:
程式碼:
Public Class Form2
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Form1.Show() '顯示Form1主選單'
Me.Close() '關閉Form2'
End Sub
Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
'form2被關掉則回form1'
Form1.Show() End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Form3.Show() '顯示Form3瀏覽產品資料'
Me.Hide() '隱藏Form2'
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click form6.Show() '顯示Form6新增產品資料'
Me.Hide() '隱藏Form2'
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Form5.Show() '顯示Form5瀏覽/修改/刪除資料'
Me.Hide() '隱藏Form2'
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form5.Show() '顯示Form5' Me.Hide() '隱藏Form2' End Sub End Class
Form3 執行畫面:
程式碼:
Public Class Form3
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Form2.Show() '顯示Form2'
Me.Close() '關閉Form3'
End Sub
Me.FormClosed
Form2.Show() '顯示Form2'
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form4.Show() '顯示Form4全部瀏覽'
Me.Hide() '隱藏Form3'
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form5.Show() '顯示Form5' Me.Hide() '隱藏Form3' End Sub End Class
Form4 執行畫面:
程式碼:
Public Class Form4
Private Sub Form4_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
Me.產品的基本資料TableAdapter.Update(Me.Db1DataSet.產品的基本資料) Form3.Show() '顯示Form3'
End Sub
'TODO: 這行程式碼會將資料載入 'Db1DataSet.產品的基本資料' 資料表。您可以視需要進行移動或移除'
Me.產品的基本資料TableAdapter.Fill(Me.Db1DataSet.產品的基本資料) '表單開啟即填入所有產品資料'
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form3.Show() '顯示Form3'
Me.Close() '關閉Form4'
End Sub End Class
刪除:
程式碼:
Public Class Form5
Dim 目前資料位置 As Integer
Private Sub Form5_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
Form3.Show() '顯示Form3'
End Sub
Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '逐筆瀏覽可顯示產品圖片' 'TODO: 這行程式碼會將資料載入 'Db1DataSet.產品的基本資料' 資料表。您可以視需要進行移動或移除' Me.產品的基本資料TableAdapter.Fill(Me.Db1DataSet.產品的基本資料) 目前資料位置 = 0 TextBox1.Text = Me.Db1DataSet.產品的基本資料.Rows(0)(0) TextBox2.Text = Me.Db1DataSet.產品的基本資料.Rows(0)(1) TextBox3.Text = Me.Db1DataSet.產品的基本資料.Rows(0)(2) TextBox4.Text = Me.Db1DataSet.產品的基本資料.Rows(0)(3) TextBox5.Text = Me.Db1DataSet.產品的基本資料.Rows(0)(4) TextBox6.Text = Me.Db1DataSet.產品的基本資料.Rows(0)(5)
TextBox7.Text = Me.Db1DataSet.產品的基本資料.Rows(0)(7) On Error Resume Next
PictureBox1.Image = New Bitmap(Me.Db1DataSet.產品的基本資料.Rows(0)(6).ToString) End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Form3.Show() '顯示Form3'
Me.Close() '關閉Form5'
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '顯示上一筆產品的資料' If 目前資料位置 = 0 Then 目前資料位置 = Me.Db1DataSet.產品的基本資料.Rows.Count - 1 Else 目前資料位置 -= 1 End If Call 顯示資料() End Sub Sub 顯示資料() 'TODO: 這行程式碼會將資料載入 'Db1DataSet.產品的基本資料' 資料表。您可以視需要進行移動或移除' TextBox1.Text = Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(0) TextBox2.Text = Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(1) TextBox3.Text = Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(2) TextBox4.Text = Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(3) TextBox5.Text = Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(4) TextBox6.Text = Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(5) TextBox7.Text = Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(7) '若無產品圖片會顯示此商品無圖片'
On Error Resume Next
PictureBox1.Image = New Bitmap(Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(6).ToString) End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click '顯示下一筆產品的資料' If 目前資料位置 = Me.Db1DataSet.產品的基本資料.Rows.Count - 1 Then 目前資料位置 = 0 Else 目前資料位置 += 1 End If
Call 顯示資料() End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click '顯示最後一筆的產品資料'
目前資料位置 = Me.Db1DataSet.產品的基本資料.Rows.Count - 1 Call 顯示資料()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '顯示第一筆的產品資料'
目前資料位置 = 0 Call 顯示資料() End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click '讀取使用者選取的產品資料並刪除' Dim 產品名稱, 供應商, 單位, 圖片 As String Dim 進貨成本, 售價 As Single Dim 產品編號, 庫存量 As Integer 產品編號 = Val(TextBox1.Text) 產品名稱 = TextBox2.Text 供應商 = TextBox3.Text 單位 = TextBox4.Text 進貨成本 = Val(TextBox5.Text) 售價 = Val(TextBox6.Text) 庫存量 = Val(TextBox7.Text) 圖片 = Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(6).ToString Me.產品的基本資料TableAdapter.Delete(產品編號, 產品名稱, 供應商, 單位, 進貨成本, 售價, 圖片, 庫存量) Me.產品的基本資料TableAdapter.Update(Me.Db1DataSet.產品的基本資料) MsgBox("資料刪除囉!", , "嘿!") End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click 'TODO: 這行程式碼會將資料載入 'Db1DataSet.產品的基本資料' 資料表。您可以視需要進行移動或移除' '讀取使用者更改的產品資料並更新' Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(1) = TextBox2.Text Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(2) = TextBox3.Text Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(3) = TextBox4.Text Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(4) = Val(TextBox5.Text)
Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(5) = Val(TextBox6.Text) Me.Db1DataSet.產品的基本資料.Rows(目前資料位置)(7) = Val(TextBox7.Text) Me.產品的基本資料TableAdapter.Update(Me.Db1DataSet.產品的基本資料) MsgBox("資料更新囉!", , "嘿!") End Sub End Class
Form6 執行畫面:
程式碼:
Public Class form6
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '點選清空後,會清除所有欄位資料' TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" TextBox7.Text = "" End Sub
Private Sub form6_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
Form2.Show() '顯示Form2'
End Sub
Private Sub form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: 這行程式碼會將資料載入 'Db1DataSet.產品的基本資料' 資料表。您可以視需要進行移動或移除'
Me.產品的基本資料TableAdapter.Fill(Me.Db1DataSet.產品的基本資料) End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '讀取使用者新增資料並新增' Dim 產品名稱, 供應商, 單位, 圖片 As String Dim 進貨成本, 售價 As Single Dim 庫存量 As Integer 產品名稱 = TextBox2.Text 供應商 = TextBox3.Text 單位 = TextBox4.Text 進貨成本 = Val(TextBox5.Text) 售價 = Val(TextBox6.Text) 圖片 = TextBox7.Text 庫存量 = TextBox1.Text Me.Db1DataSet.產品的基本資料.Add產品的基本資料Row(產品名稱, 供應商, 單位, 進貨成本, 售價, 圖片, 庫存量) Me.產品的基本資料TableAdapter.Update(Me.Db1DataSet.產品的基本資料) MsgBox("產品資料新增囉!", , "嘿!") End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Form2.Show() '顯示Form2' Me.Close() '關閉Form6' End Sub End Class
Form7 執行畫面:
依售價—
依成本—
依供應商—
程式碼:
Public Class Form7
Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: 這行程式碼會將資料載入 'Db1DataSet.產品的基本資料' 資料表。您可以視需要進行移動或移除'
Me.產品的基本資料TableAdapter.Fill(Me.Db1DataSet.產品的基本資料) End Sub
Private Sub 依售價ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依售價 ToolStripMenuItem.Click '依售價顯示圖表' Dim 數目(10) As Integer Dim i As Integer For i = 0 To 9 數目(i) = 0 Next Dim 售價 As Single For i = 0 To Me.Db1DataSet.產品的基本資料.Count - 1 售價 = Me.Db1DataSet.產品的基本資料.Rows(i)(5) 數目(售價 \ 1000) += 1 Next Dim g As Graphics g = Me.CreateGraphics g.Clear(Me.BackColor) Dim b As Brush b = Brushes.SteelBlue For i = 0 To 9 g.FillRectangle(b, 150, 30 + 20 * i, 數目(i) * 10, 15)
g.DrawString("………" & (i + 1) * 1000, New Font("SimHei", 16), b, 10, 30 + 20 * i) Next
g.Dispose() End Sub
Private Sub 依庫存量ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依庫 存量ToolStripMenuItem.Click
'依庫存量顯示圖表'
Dim 數目(10) As Integer
Dim i As Integer
數目(i) = 0 Next Dim 庫存量 As Single For i = 0 To Me.Db1DataSet.產品的基本資料.Count - 1 庫存量 = Me.Db1DataSet.產品的基本資料.Rows(i)(7) 數目(庫存量 \ 10) += 1 Next Dim g As Graphics g = Me.CreateGraphics g.Clear(Me.BackColor) Dim b As Brush b = Brushes.SteelBlue For i = 0 To 9 g.FillRectangle(b, 130, 30 + 20 * i, 數目(i) * 10, 15)
g.DrawString("………" & (i + 1) * 10, New Font("SimHei", 16), b, 10, 30 + 20 * i) Next
g.Dispose() End Sub
Private Sub 依供應商ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依供 應商ToolStripMenuItem.Click
'依供應商畫圓餅圖'
Dim 供應商() = {"Yahoo", "Pchome"} Dim 項目數() = {0, 0} Dim i, j As Integer For i = 0 To Me.Db1DataSet.產品的基本資料.Count - 1 For j = 0 To 1 If Me.Db1DataSet.產品的基本資料.Rows(i)(2) = 供應商(j) Then 項目數(j) += 1 End If Next Next Dim g As Graphics g = Me.CreateGraphics g.Clear(Me.BackColor)
Dim 刷子() = {Brushes.Yellow, Brushes.MediumPurple} Dim 起點, 終點 As Integer
For i = 0 To 1 If i = 0 Then
Else 起點 = 終點 End If 終點 = 起點 + 360 * 項目數(i) / Me.Db1DataSet.產品的基本資料.Count g.FillPie(刷子(i), 50, 100, 120, 120, 起點, 終點 - 起點) g.FillRectangle(刷子(i), 200, 100 + i * 20, 50, 15)
g.DrawString(供應商(i), New Font("SimHei", 16), Brushes.SteelBlue, 270, 100 + i * 20) Next
g.Dispose() End Sub
Private Sub 回上一頁ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 回上 一頁ToolStripMenuItem.Click
Form1.Show() '顯示Form1'
Me.Close() '關閉Form7'
End Sub
Private Sub 列印ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 列印 ToolStripMenuItem.Click
'設定列印'
PrintDocument1.Print() End Sub
Private Sub 依成本ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依成本 ToolStripMenuItem.Click '依成本顯示圖表' Dim 數目(10) As Integer Dim i As Integer For i = 0 To 9 數目(i) = 0 Next Dim 成本 As Single For i = 0 To Me.Db1DataSet.產品的基本資料.Count - 1 成本 = Me.Db1DataSet.產品的基本資料.Rows(i)(4) 數目(成本 \ 1000) += 1 Next Dim g As Graphics g = Me.CreateGraphics g.Clear(Me.BackColor) Dim b As Brush
b = Brushes.SteelBlue For i = 0 To 9
g.FillRectangle(b, 150, 30 + 20 * i, 數目(i) * 10, 15)
g.DrawString("………" & (i + 1) * 1000, New Font("SimHei", 16), b, 10, 30 + 20 * i) Next g.Dispose() End Sub End Class