報告題名:應用程式設計
-產品資料管理系統
作者:陳怡潔
系級:工業二甲
學號:D9568701
開課老師:陳亭志
課程名稱:應用程式設計
開課系所:工業工程與系統管理學系
開課學年: 96 學年度 第 1 學期
目錄
表單介紹………P.1
form1 首頁………P.2
form2 基本資料維護………P.4
form3 瀏覽產品資料………P.6
form4 全部瀏覽………P.7
form5 瀏覽/修改/刪除資料………P.8
form6 新增產品資料………P.12
form7 統計及報表作業………P.14
心得………P.19
Form1-是主要表單,跟其他表單做連結。
Form2-為資料維護,可以瀏覽、新增、修改、刪除之功能。
Form3-瀏覽資料,可以選擇全部或是逐筆瀏覽。
Form4-瀏覽全部產品資料(5 筆)。
Form5-逐筆瀏覽資料,也可以刪除或是修改資料。
Form6-此表單為新增產品資料之功用。
Form7-統計產品資料上得成本、售價、庫存量(以統計圖顯
示)、供應商(以圓餅圖顯示)
,另外還有列印功能。
Db1 DataSet.xsd-為產品資料,做為各表單連結。
Form 1 執行檔:
程式碼:
PublicClass Form1
PrivateSub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'Now顯示現在時間'
Label3.Text = Now EndSub
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
MsgBox("歡迎您再度光臨!", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "系統訊息")
End EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'form2出現form1隱藏'
Form2.Show() Me.Hide() EndSub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form7.Show() Me.Hide() EndSub
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
'打開網頁即有音樂'
My.Computer.Audio.Play("我們.wav", AudioPlayMode.BackgroundLoop) EndSub
PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'按下此button音樂停止'
My.Computer.Audio.Stop() EndSub
PrivateSub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
'按下此button音樂開始'
My.Computer.Audio.Play("我們.wav", AudioPlayMode.BackgroundLoop) EndSub
Form 2 執行檔:
程式碼:
PublicClass Form2
PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'畫面回到form1'
Form1.Show() Me.Close() EndSub
PrivateSub Form2_FormClosed(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed 'Form2被關掉時回Form1'
Form1.Show() EndSub
System.EventArgs) Handles Button5.Click 'form3出現form2隱藏'
Form3.Show() Me.Hide() EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form6.Show() Me.Hide() EndSub
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Form5.Show() Me.Hide() EndSub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form5.Show() Me.Hide() EndSub EndClass
Form 3 執行檔:
程式碼:
PublicClass Form3
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'畫面form3回到form2'
Form2.Show() Me.Close() EndSub
PrivateSub Form3_FormClosed(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed 'Form3被關掉時回Form2'
Form2.Show() EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'form4出現form3隱藏'
Form4.Show() Me.Hide() EndSub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form5.Show() Me.Hide() EndSub EndClass
Form 4 執行檔:
PublicClass Form4
程式碼:
PrivateSub Form4_FormClosed(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed
Me.產品基本資料TableAdapter.Update(Me.Db1DataSet.產品基本資料) 'Form4被關掉時回Form3'
Form3.Show() EndSub
PrivateSub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
'TODO: 這行程式碼會將資料載入 'Db1DataSet.產品基本資料' 資料 表。您可以視需要進行移動或移除。
Me.產品基本資料TableAdapter.Fill(Me.Db1DataSet.產品基本資料) EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form3.Show() Me.Close() EndSub
程式碼:
PublicClass Form5
Dim 目前資料位置 AsInteger
PrivateSub Form5_FormClosed(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed 'Form5被關掉時回Form2'
Form2.Show() EndSub
PrivateSub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
'顯示Db1DataSet.產品基本資料資料表'
Me.產品基本資料TableAdapter.Fill(Me.Db1DataSet.產品基本資料) 目前資料位置 = 0
Call 顯示資料() EndSub
PrivateSub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
'畫面form5回到form2'
Form2.Show() Me.Close() EndSub
PrivateSub 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 EndIf Call 顯示資料() EndSub Sub 顯示資料() '將會顯示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) OnErrorResumeNext
PictureBox1.Image = New Bitmap(Me.Db1DataSet.產品基本資料.Rows(目前 資料位置)(6).ToString)
EndSub
PrivateSub 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 EndIf Call 顯示資料() EndSub
PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'會顯示Db1DataSet.產品基本資料的最後一筆資料'
目前資料位置 = Me.Db1DataSet.產品基本資料.Rows.Count - 1 Call 顯示資料()
EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'會顯示Db1DataSet.產品基本資料的第一筆資料'
目前資料位置 = 0 Call 顯示資料() EndSub
PrivateSub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
'此程式可以將不要的資料刪除' Dim 產品名稱, 供應商, 單位, 圖片 AsString Dim 進貨成本, 售價 AsSingle Dim 產品編號, 庫存量 AsInteger 產品編號 = 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("資料刪除嘍!", , "系統訊息") EndSub
PrivateSub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
'可以更改資料表中的資料' 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("資料更新嘍!", , "系統訊息") EndSub EndClass
Form 6 執行檔:
程式碼:
PublicClass Form6
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'把打在textbox上的資料刪掉' TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" TextBox7.Text = "" EndSub
PrivateSub Form6_FormClosed(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed Form2.Show()
EndSub
PrivateSub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
Me.產品基本資料TableAdapter.Fill(Me.Db1DataSet.產品基本資料) EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'可以把打在textbox的資料新增' Dim 產品名稱, 供應商, 單位, 圖片 AsString Dim 進貨成本, 售價 AsSingle Dim 庫存量 AsInteger 產品名稱 = 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("產品資料新增嘍!", , "系統訊息") EndSub
PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Form2.Show() Me.Close() EndSub
程式碼:
PublicClass Form7
PrivateSub Form7_FormClosed(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed 'Form7被關掉時回Form1'
Form1.Show() EndSub
PrivateSub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
'把Db1DataSet.產品基本資料戴入form7'
Me.產品基本資料TableAdapter.Fill(Me.Db1DataSet.產品基本資料) EndSub
PrivateSub 依售價ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依售價ToolStripMenuItem.Click
'售價顯示10000,2000...,100000' Dim 數目(10) AsInteger Dim i AsInteger For i = 0 To 9 數目(i) = 0 Next Dim 售價 AsSingle For i = 0 ToMe.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, 155, 35 + 20 * i, 數目(i) * 10, 15) '調整字的大小與字體和之間的距離'
g.DrawString("~~" & (i + 1) * 10000, New Font("Swis721 BlkEx BT", 14), b, 10, 30 + 20 * i)
Next g.Dispose() EndSub
PrivateSub 回上一頁ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 回上一頁ToolStripMenuItem.Click
'Form7被關掉時回Form1'
Form1.Show() Me.Close() EndSub
PrivateSub 依供應商ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依供應商ToolStripMenuItem.Click
'打上產品的供應商'
Dim 供應商() = {"Eabay", "Yahoo"} Dim 項目數() = {0, 0} Dim i, j AsInteger For i = 0 ToMe.Db1DataSet.產品基本資料.Count - 1 For j = 0 To 1 IfMe.Db1DataSet.產品基本資料.Rows(i)(2) = 供應商(j) Then 項目數(j) += 1 EndIf Next Next Dim g As Graphics g = Me.CreateGraphics g.Clear(Me.BackColor) '顏色分別為黃色和紅色'
Dim 刷子() = {Brushes.Yellow, Brushes.Red} Dim 起點, 終點 AsInteger
'圓形圖'
For i = 0 To 1 If i = 0 Then
起點 = 0 Else 起點 = 終點 EndIf 終點 = 起點 + 360 * 項目數(i) / Me.Db1DataSet.產品基本資 料.Count '圓形圖上分配的位置' g.FillPie(刷子(i), 50, 100, 120, 120, 起點, 終點 - 起點) g.FillRectangle(刷子(i), 200, 100 + i * 25, 50, 15) '所顯示的字型與大小與距離'
g.DrawString(供應商(i), New Font("Swis721 BlkEx BT", 14), Brushes.Black, 270, 100 + i * 25)
Next g.Dispose() EndSub
PrivateSub 依成本ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依成本ToolStripMenuItem.Click
'成本顯示10000,2000...,100000' Dim 數目(10) AsInteger Dim i AsInteger For i = 0 To 9 數目(i) = 0 Next Dim 成本 AsSingle For i = 0 ToMe.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.Blue For i = 0 To 9 '調整長方圖的大小與之間的距離' g.FillRectangle(b, 155, 35 + 20 * i, 數目(i) * 10, 15) '調整字的大小與字體和之間的距離'
g.DrawString("~~" & (i + 1) * 10000, New Font("Swis721 BlkEx BT", 14), b, 10, 30 + 20 * i)
Next g.Dispose()
EndSub
PrivateSub 依庫存量ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 依庫存量ToolStripMenuItem.Click
'庫存量顯示10,20...,100' Dim 數目(10) AsInteger Dim i AsInteger For i = 0 To 9 數目(i) = 0 Next Dim 庫存量 AsSingle For i = 0 ToMe.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.Blue For i = 0 To 9 '調整長方圖的大小與之間的距離' g.FillRectangle(b, 100, 35 + 20 * i, 數目(i) * 10, 15) '調整字的大小與字體和之間的距離'
g.DrawString("~~" & (i + 1) * 10, New Font("Swis721 BlkEx BT", 14), b, 10, 30 + 20 * i)
Next g.Dispose() EndSub
'按下此鍵可以列印'
PrivateSub 列印ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 列印ToolStripMenuItem.Click
PrintDocument1.Print() EndSub