• 沒有找到結果。

應用程式設計-產品資料管理系統

N/A
N/A
Protected

Academic year: 2021

Share "應用程式設計-產品資料管理系統"

Copied!
24
0
0

加載中.... (立即查看全文)

全文

(1)

報告題名:

應用程式設計-產品資料管理系統

姓名:張銘津

系級:工業二甲

學號:D9568686

開課老師:陳亭志 老師

課程名稱:應用程式設計

開課系所:工業工程與系統管理學系

開課學年:96 學年度 第 1 學期

(2)

目錄

Form1-首頁……… 3

Form2-基本資料維護……… 5

Form3-瀏覽產品資料……… 6

Form4-全部瀏覽……… 8

Form5-瀏覽/修改/刪除資料……… 9

Form6-新增產品資料……… 13

Form7-統計與報表作業……… 16

db1DataSet-產品資料……… 22

心得……… 22

(3)

◎ Form1-為主要表單,與其他表單作連結,在最下面增加了時間與

日期,更方便操作者使用。

◎ Form2-基本資料維護,連結資料的瀏覽、修改、刪除。

◎ Form3-瀏覽產品資料,可選擇全部瀏覽或是逐筆瀏覽。

◎ Form4-全部瀏覽,並且可於在上面做修改。

◎ Form5-瀏覽/修改/刪除資料,為逐筆瀏覽亦可在上面做修改。

◎ Form6-新增產品資料,直接在表格內輸入要新增的產品資料,即

可新增。

◎ Form7-統計與報表作業,基本統計裡有成本(長條圖)

、售價(長

條圖)、供應商(圓餅圖)與庫存量(長條圖)的基本統

計,點選即可得知其統計。

◎ DataSet-為產品的資料,與各表單作連結。

(4)

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

(5)

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

(6)

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()

(7)

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-瀏覽產品資料

(8)

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

(9)

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

(10)

Form5-瀏覽/修改/刪除資料

(11)

資料刪除:

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)

(12)

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資料則跳到下一筆'

(13)

目前資料位置 = 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

(14)

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-新增產品資料

(15)

新增:

新增成功:

Form6 的程式:

Public Class form6

PrivateSub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

(16)

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("產品資料已新增!", , "系統訊息") '出現系統訊息產品資料已新增'

(17)

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-統計與報表作業

(18)

依售價: 依成本:

(19)

列印:

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

(20)

'出現的字與長方圖皆顯示藍色'

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

(21)

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'

(22)

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

(23)

db1DataSet-產品資料

心得

從上學期地 C 語言到這學期的應用程式設計,都與程式碼寫程

式有關,不過在 C 語言的學習總覺得很困難,所以在還沒接觸到這個

課程時, 很擔心是否會和 C 語言一樣的困擾。不過在開始接觸這門

課後,很開心這個程式不是我想像中的困難,程式非常的自動化不需

要空格也不需要改變大小寫,當你輸入完畢後,程式會自動修改,還

有在輸入時,它有時會有自動的選項讓你可以直接選取。在執行偵錯

時,偵錯上面會寫的較為仔細也較容易理解。而且許許多多的程式碼

也讓我比較容易理解與使用。

(24)

期中考完筆試後其實對一切還有點懵懵懂懂,但是考完期中,開始製

作期末報告,也對整個程式開始比較熟悉,操作方面也比較容易上

手。看著期末報告從無到有,從一開始最基本的道開始自己學著裝飾

學著修改,其實是很有成就感的,尤其是當老師交我們如何製作安裝

檔,當安裝完成程式跑出來後,心裡有許多說不出來的歡喜,成就感

之大讓我重拾在 C 語言上的信心。

要寫出程式的方法無它,就是多多練習並且要理解,而不是把它死背

起來,如果理解了後寫起程式起來就會得心應手,而這堂課讓我學習

到的就是自己摸索以及理解,有很多的益處。

參考文獻

相關文件

結構化程式設計 是設計一個程式的一個技巧,此技巧就

聽、說、讀、寫,以 及分析、評價等能力 例:設計課業,讓學生 應用所學,並運用各

微算機原理與應用 第6

z請利用 struct 記錄 Bob 和 Alice 的相關資訊 z列印出 Bob 及 Alice 分別花多少錢. z再列印出

private void closeBTN_Click(object sender, System.EventArgs

zCount 屬性–取得項目個數 zAdd 方法–新增項目. zRemove 方法–移除指定項目

z屬性 (property) z方法 (method) z事件

private void answerLB Click(object sender private void answerLB_Click(object sender,. System.EventArgs