報告題名:
應用程式設計-產品資料管理系統
姓名:張銘津
系級:工業二甲
學號:D9568686
開課老師:陳亭志 老師
課程名稱:應用程式設計
開課系所:工業工程與系統管理學系
開課學年:96 學年度 第 1 學期
目錄
Form1-首頁……… 3
Form2-基本資料維護……… 5
Form3-瀏覽產品資料……… 6
Form4-全部瀏覽……… 8
Form5-瀏覽/修改/刪除資料……… 9
Form6-新增產品資料……… 13
Form7-統計與報表作業……… 16
db1DataSet-產品資料……… 22
心得……… 22
◎ Form1-為主要表單,與其他表單作連結,在最下面增加了時間與
日期,更方便操作者使用。
◎ Form2-基本資料維護,連結資料的瀏覽、修改、刪除。
◎ Form3-瀏覽產品資料,可選擇全部瀏覽或是逐筆瀏覽。
◎ Form4-全部瀏覽,並且可於在上面做修改。
◎ Form5-瀏覽/修改/刪除資料,為逐筆瀏覽亦可在上面做修改。
◎ Form6-新增產品資料,直接在表格內輸入要新增的產品資料,即
可新增。
◎ Form7-統計與報表作業,基本統計裡有成本(長條圖)
、售價(長
條圖)、供應商(圓餅圖)與庫存量(長條圖)的基本統
計,點選即可得知其統計。
◎ DataSet-為產品的資料,與各表單作連結。
Form1-首頁
離開系統:
Form1 的程式:
Public Class Form1
PrivateSub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Timer1.Tick
Label3.Text = Now End Sub
Button3.Click
MsgBox("歡迎下次再來!", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "系統訊息")
'按離開系統後會出現的系統訊息'
End
End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click Form2.Show() Me.Hide()
'按下Button1 Form2會出現'
End Sub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click Form7.Show() Me.Hide()
'按下Button2 Form7會出現'
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
My.Computer.Audio.Play("sundoll.wav", AudioPlayMode.BackgroundLoop)
'執行程式時的背景音樂'
End Sub
PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click
My.Computer.Audio.Stop() '把背景音樂關掉'
End Sub
PrivateSub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button5.Click
My.Computer.Audio.Play("sundoll.wav", AudioPlayMode.BackgroundLoop)
'重新開啟被關掉的音樂'
End Sub End Class
Form2-基本資料維護
Form2 的程式:
Public Class Form2
PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click Form1.Show() Me.Close()
'按Button4關掉自己,Form1會出現'
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
PrivateSub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button5.Click Form3.Show() Me.Hide()
'按Button5則Form3出現'
End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click form6.Show()
Me.Hide()
'按Button1則form6出現'
End Sub
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click Form5.Show() Me.Hide()
'按Button3則Form5出現'
End Sub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click Form5.Show() Me.Hide() '按Button2則Form5出現' End Sub End Class
Form3-瀏覽產品資料
Form3 的程式:
Public Class Form3
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click Form2.Show() Me.Close()
'按Button3出現Form2而關掉Form3'
End Sub
Private Sub Form3_FormClosed(ByVal sender As Object, ByVal e As
System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Form2.Show()
'Form3被關掉而出現Form2'
End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click Form4.Show() Me.Hide()
'按Button1出現Form4'
End Sub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click Form5.Show() Me.Hide() '按Button2出現Form5' End Sub End Class
Form4-全部瀏覽
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()
'關掉Form4出現Form3'
End Sub
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: 這行程式碼會將資料載入 'Db1DataSet.產品的基本資料' 資料表。您可以視需要進行移
動或移除。
Me.產品的基本資料TableAdapter.Fill(Me.Db1DataSet.產品的基本資料) End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click Form3.Show() Me.Close()
'按Button1出現Form3則關掉Form4'
End Sub
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick End Sub
Form5-瀏覽/修改/刪除資料
資料刪除:
Form5 的程式:
Public Class Form5 Dim 目前資料位置 As Integer
Private Sub Form5_FormClosed(ByVal sender As Object, ByVal e As
System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Form2.Show()
'關掉Form5則Form2出現'
End Sub
Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 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) '資料由資料庫Db1而來'
End Sub
PrivateSub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button5.Click Form2.Show() Me.Close()
'按Button5出現Form2'
End Sub
PrivateSub TextBox7_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click '按Button2資料會跳回前一筆' If 目前資料位置 = 0 Then 目前資料位置 = Me.Db1DataSet.產品的基本資料.Rows.Count - 1 Else 目前資料位置 -= 1 End If Call 顯示資料() End Sub Sub 顯示資料() 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
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click
'按Button3資料則跳到下一筆'
目前資料位置 = 0 Else 目前資料位置 += 1 End If Call 顯示資料() End Sub
PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click
'按Button4則資料直接掉到最後一筆'
目前資料位置 = Me.Db1DataSet.產品的基本資料.Rows.Count - 1 Call 顯示資料()
End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
'按Button1則資料直接跳回第一筆'
目前資料位置 = 0 Call 顯示資料() End Sub
PrivateSub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button6.Click '將頁面跳掉要刪除的那一筆後按下Button6' 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
PrivateSub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click '直接在上面修改資料後按Button7' 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-新增產品資料
新增:
新增成功:
Form6 的程式:
Public Class form6
PrivateSub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
End Sub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click '按下Button2則可以刪掉所輸入的資料' 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()
'關掉form6則Form2出現'
End Sub
Private Sub form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.產品的基本資料TableAdapter.Fill(Me.Db1DataSet.產品的基本資料) End Sub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click '在上面直接輸入資料後按Button1則可以新增' 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
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click Form2.Show() Me.Close() '按Button3則關掉form6,Form2出現' End Sub End Class
Form7-統計與報表作業
依售價: 依成本:
列印:
Form7 的程式:
Public Class Form7
Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
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) 數目(售價 \ 10000) += 1 Next Dim g As Graphics g = Me.CreateGraphics g.Clear(Me.BackColor) Dim b As Brush b = Brushes.Blue
'出現的字與長方圖皆顯示藍色'
For i = 0 To 9
g.FillRectangle(b, 80, 55 + 20 * i, 數目(i) * 10, 15)
'調整長方圖的大小與之間的距離'
g.DrawString("~" & (i + 1) * 10000, New Font("標楷體", 12), b, 10, 55 + 20 * i)
'調整字的大小與字體和之間的距離'
Next
g.Dispose() End Sub
Private Sub 依庫存量ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles 依庫存量ToolStripMenuItem.Click '庫存量顯示100,200...,1000' 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)(7) 數目(庫存量 \ 100) += 1 Next Dim g As Graphics g = Me.CreateGraphics g.Clear(Me.BackColor) Dim b As Brush b = Brushes.Tomato '出現的字與長方圖皆顯示藍色' For i = 0 To 9 g.FillRectangle(b, 100, 55 + 20 * i, 數目(i) * 10, 15) '調整長方圖的大小與之間的距離'
g.DrawString("~~" & (i + 1) * 10, New Font("標楷體", 12), b, 10, 55 + 20 * i)
'調整字的大小與字體和之間的距離'
Next
g.Dispose() End Sub
Private Sub 依供應商ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
Dim 供應商() = {"Amazon", "yahoo"} 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.Red}
'圓餅圖的顏色區分為紅色及黃色' Dim 起點, 終點 As Integer For i = 0 To 1 If i = 0 Then 起點 = 0 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("標楷體", 12), Brushes.SeaGreen, 270, 100 + i * 20)
'調整Amazon與yahoo字的大小字體和字之間的距離'
Next
g.Dispose() End Sub
Private Sub 回上一頁ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles 回上一頁ToolStripMenuItem.Click Form1.Show()
Me.Close()
'關掉此頁,回到Form1'
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 '成本顯示10000,2000...,100000' 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) 數目(成本 \ 10000) += 1 Next Dim g As Graphics g = Me.CreateGraphics g.Clear(Me.BackColor) Dim b As Brush b = Brushes.DarkGreen '出現的字與長方圖皆顯示藍色' For i = 0 To 9 '調整長方圖的大小與之間的距離' g.FillRectangle(b, 100, 55 + 20 * i, 數目(i) * 10, 15) '調整字的大小與字體和之間的距離'
g.DrawString("~~" & (i + 1) * 10000, New Font("標楷體", 12), b, 10, 55 + 20 * i) Next
g.Dispose() End Sub