跳至主要內容

Visual Basic .Net 程式案例學習: 08. 研討會簡報產生器 (2014版)

Visual Basic .Net 程式案例學習: 08. 研討會簡報產生器 (2014版)

Visual Basic .Net 程式案例學習: 08. 研討會簡報產生器 (2014版)

8.1 問題

在許多的研討會中,都會請應邀者準備簡報檔,以利研討會的進行,大會基本上會希望採用同樣的格式,讓研討會的簡報看起來有連貫性。這時候就產生了問題,就算將範本寄給應邀者,請應邀者修改並修改或加入自己的內容,但仍舊免不了有意外的發生。因此就有了這個程式的需求,不如制定一個標準格式,依照基本資料自動產生簡報檔,再將簡報檔寄給應邀者,應邀者不用變更格式,繼續增加新的投影片即可,如此一來所有的簡報格式都會是一致的。

8.2 需求

表格 8‑1 「研討會簡報產生器」系統目的分析表

版本:1.0   要做什麼   不要做什麼(不要做不代表不會做)  
能做什麼 (第一格:必要項目)    (第二格:次要項目)
利用資料庫將基本資料存入。 將資料庫升級至SQL Server,透過網路讓使用者建立基本資料。 
載入基本資料,可透過點選方式將基本資料填入欄位。 
可在產生簡報檔之前,修改欄位內容。
可透過欄位內容產生簡報檔。
不能做什麼(不能做代表不需要做) (第三格:不必要項目) (第四格:不需要項目)
設計批次產生簡報檔的功能。 將程式設計成網頁,利用ASP.NET與VB.NET設計,讓使用者可以在網頁上編輯基本資料,並自行產生簡報檔。 

表格 8‑2 「研討會簡報產生器」系統目標分析表

版本:  重要   不重要  
優先 (重) (急)
可透過欄位內容產生簡報檔。 利用資料庫將基本資料存入。
不急迫 (輕) (緩)
可在產生簡報檔之前,修改欄位內容。  載入基本資料,可透過點選方式將基本資料填入欄位。 

表格 8‑3 「研討會簡報產生器」系統規格表

規格項目   規格內容   備註
主要功能 可透過欄位內容產生簡報檔。 …
利用資料庫將基本資料存入。
使用介面 可在產生簡報檔之前,修改欄位內容。  …
載入基本資料,可透過點選方式將基本資料填入欄位。 

8.3 特色

特點就是可以透過基本資料,自動產生格式相同的簡報檔,而無需人工製作。

8.4 使用工具

語言   軟體  
Visual Basic 2005  MS Visual Studio 2005 .NET、MS PowerPoint、MS Access 

8.5 系統架構

在這裡我們將建立簡報檔的部分,設計成一個類別,這樣有助於往後的重複使用。透過這個類別產生物件,我們就可以很簡單的建立簡報檔。因此本程式的關鍵在於這個類別,而程式介面則是次要的問題。如果要發佈成可單獨執行的程式,則須要配合兩個DLL檔,Microsoft.Office.Interop.PowerPoint.dll與Microsoft.Vbe.Interop.dll,如此一來就可以直接執行。當然還有基本資料庫Member.mdb和簡報範本檔TechRays_Prt.pot,但這些是可以依照您的需求而做替換的,倘若您覺得簡報範本不適合使用,隨時都可以修改或置換。在教學檔案就是直接執行的範例,您可以參考看看。

8.6 程式實作


‘所有變數必須宣告才能使用

Option Explicit On

‘加入基本參考

Imports System

Imports System.Windows.Forms

Imports System.Collections.Specialized

‘Form1的類別

Public Class Form1

    Inherits System.Windows.Forms.Form

    ‘宣告簡報檔產生物件

    Dim ppt As PPTAutomation

    ‘產生簡報按鈕被點選事件

    Private Sub btnCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCreate.Click

        ‘預設所有欄位皆已填滿

        Dim filled As Boolean = True

        ‘檢查姓名欄位

        If (txtName.Text).Trim().Length.Equals(0) Then

            errorProvider.SetError(txtName, “不能空白。”)

            filled = False

        End If

        ‘檢查年齡欄位

        If (txtAge.Text.Trim().Length.Equals(0)) Then

            errorProvider.SetError(txtAge, “不能空白。”)

            filled = False

        End If

        ‘檢查稱呼欄位

        If (txtDesignation.Text.Trim().Length.Equals(0)) Then

            errorProvider.SetError(txtDesignation, “不能空白。”)

            filled = False

        End If

        ‘檢查區域欄位

        If (txtPlace.Text.Trim().Length.Equals(0)) Then

            errorProvider.SetError(txtPlace, “不能空白。”)

            filled = False

        End If

        ‘檢查電子郵件欄位

        If (txtEmail.Text.Trim().Length.Equals(0)) Then

            errorProvider.SetError(txtEmail, “不能空白。”)

            filled = False

        End If

        ‘檢查組織欄位

        If (txtCompany.Text.Trim().Length.Equals(0)) Then

            errorProvider.SetError(txtCompany, “不能空白。”)

            filled = False

        End If

        ‘倘若資料皆已填滿

        If (filled = True) Then

            ‘宣告字串集合

            Dim array As StringCollection

            ‘建立簡報產生物件

            ppt = New PPTAutomation

            ‘建立字串集合物件

            array = New StringCollection

            ‘將文字欄位內容存入字串集合中

            array.Insert(0, txtName.Text)

            array.Insert(1, txtAge.Text)

            array.Insert(2, txtDesignation.Text)

            array.Insert(3, txtCompany.Text)

            array.Insert(4, txtPlace.Text)

            array.Insert(5, txtEmail.Text)

            ‘呼叫簡報產生器

            ppt.CreateFile(array)

        End If

    End Sub

    ‘程式初始化載入事件

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ‘宣告並建立資料庫連結物件

        Dim objCnn As New OleDb.OleDbConnection

        ‘宣告資料庫連結字串變數

        Dim strCnn As String

        ‘宣告並建立資料集物件

        Dim objDS As New DataSet

        ‘設定資料庫連結文字

        strCnn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source =” & Application.StartupPath & “\Member.mdb”

        objCnn.ConnectionString = strCnn

        ‘開啟資料庫

        objCnn.Open()

        ‘建立資料表轉接器

        Dim objAD As New OleDb.OleDbDataAdapter(“Select * From Member”, objCnn)

        ‘將資料表填入資料集

        objAD.Fill(objDS, “Member”)

        ‘設定資料顯示表的資料表名稱

        DataGridView1.DataMember = “Member”

        ‘設定資料顯示表的資料來源

        DataGridView1.DataSource = objDS

    End Sub

    ‘當資料顯示表的列被選擇時

    Private Sub DataGridView1_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.RowEnter

        ‘由資料表列中載入資料到所屬的欄位

        txtName.Text = DataGridView1.Item(1, e.RowIndex).Value

        txtAge.Text = DataGridView1.Item(2, e.RowIndex).Value

        txtDesignation.Text = DataGridView1.Item(3, e.RowIndex).Value

        txtCompany.Text = DataGridView1.Item(4, e.RowIndex).Value

        txtPlace.Text = DataGridView1.Item(5, e.RowIndex).Value

        txtEmail.Text = DataGridView1.Item(6, e.RowIndex).Value

    End Sub

End Class

如圖8-1可見點選上方的基本資料表,就會把該列的資料載入文字欄位中。

image.png
圖 8‑1

如圖8-2可見由程式搭配簡報範本檔所自動產生的簡報檔。

image.png
圖 8‑2

8.7 修改重點

因為產生簡報檔的類別已經完成了,基本上要修改的重點應該是放在架構上,例如:將基本資料升級在SQL Server上,建立網頁,讓使用者可以自行在網頁上建立基本資料,而產生器就可以依照基本資料產生簡報檔。此外,批次產生簡報檔的構想也是很不錯的,如果是大型的研討會,例如:學術年會。就會很需要批次產生簡報檔,而無需人工點選產生按鈕。

8.8 結論

其實這支程式是非常的小巧,但卻能夠帶來極大的便利,這是一個好的應用範例。很多應用能夠結合現有的軟體,例如:MS Excel、MS PowerPoint、…等等。都將會是很省時間又有效率的程式,由其MS Office系列使用者廣布全球,幾乎只要是微軟系統就會搭上一套MS Office,而大多數人們也都具備基本的操作能力,因此設計應用程式時,倘若能夠結合到MS Office,您會發現能夠節省許多工夫,而不必為客製化的問題而煩惱,所以基本上現在的商用軟體,大多都能匯出MS Excel、MS Word的檔案,這就是免去過渡客製化的方法之一。

image.png
Lai Tai-Yu (賴岱佑)

Popular Posts

波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

最佳化處理策略之快速消除扭曲演算法

Visual Basic 6.0 程式案例學習: 10. 條碼列印程式 (2014版)

波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

圖片

最佳化處理策略之快速消除扭曲演算法

圖片

Visual Basic 6.0 程式案例學習: 10. 條碼列印程式 (2014版)

圖片

Python 日期與時間的處理

圖片

用10種程式語言做影像二值化(Image binarization)

圖片

修復損毀的 SQLite DB 資料庫

圖片

Visual Basic .Net 程式案例學習: 06. 題庫測驗系統 (2014版)

圖片

解決 ValueError: If using all scalar values, you must pass an index

圖片

Visual Basic 6.0 程式案例學習: 04. 人事考勤管理系統 (2014版)

圖片

Visual Basic 6.0 程式案例學習: 02. 加班薪資管理系統 (2014版)

圖片

佑佑的 Line 貼圖創作

貼圖作者網址:

https://line.me/S/shop/sticker/author/3883362

靜態貼圖

 
 
 
 
  牡羊座:狗狗角色

作者:佑佑
依照牡羊座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
  金牛座:兔兔角色

作者:佑佑
依照金牛座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
  雙子座:貓貓角色

作者:佑佑
依照雙子座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
  巨蟹座:倉鼠角色

作者:佑佑
依照巨蟹座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
 
 
 
 
  獅子座:幼獅角色

作者:佑佑
依照獅子座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
  處女座:松鼠角色

作者:佑佑
依照處女座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
  天秤座:鴿子角色

作者:佑佑
依照天秤座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
  天蠍座:鳳凰角色

作者:佑佑
依照天蠍座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
 
 
 
 
  射手座:人馬角色

作者:佑佑
依照射手座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
  魔羯座:山羊角色

作者:佑佑
依照魔羯座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
  水瓶座:海豚角色

作者:佑佑
依照水瓶座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
  雙魚座:小丑魚角色

作者:佑佑
依照雙魚座的個性優點、個性缺點、生活習慣、理財習慣、社交習慣、愛情觀、節假日、禮貌問候,所編撰的貼圖。星座只能當參考用,不會完全準確。
購買貼圖
 
 
 
 
  上班族都變成狒狒,心裡想要說的話。

作者:佑佑
最近在台灣走紅的狒狒,用擬人化的方式,變成上班族,畫出心裡的想說的話。
購買貼圖
  接案派遣的日常

作者:佑佑
接案派遣到其他公司的日常對話,有調皮、正經、日常對話。
購買貼圖
  貓女事務員的搞笑時刻

作者:佑佑
把行政人員在職場上遇到千奇百怪的事情畫出來,用可愛的貓女來擔任行政人員的代言人。
購買貼圖
  貓貓說每天都會用到的話

作者:佑佑
日常生活常見的短句,用小貓擬人化的方式呈現,比較親切可愛。
購買貼圖
 
     
  大人的煩惱特輯:小兔角色

作者:佑佑
錢包餓了,生活苦了。變美變健康?先讓我睡飽吧。心好累,我需要充電。
購買貼圖
     

動態貼圖

 
 
 
 
  牡羊座日常交際:狗狗角色

作者:佑佑
依照牡羊座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
  金牛座日常交際:兔兔角色

作者:佑佑
依照金牛座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
  雙子座日常交際:貓貓角色

作者:佑佑
依照雙子座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
  巨蟹座日常交際:倉鼠角色

作者:佑佑
依照巨蟹座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
 
 
 
 
  獅子座日常交際:幼獅角色

作者:佑佑
依照獅子座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
  處女座日常交際:松鼠角色

作者:佑佑
依照處女座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
  天秤座日常交際:鴿子角色

作者:佑佑
依照天秤座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
  天蠍座日常交際:鳳凰角色

作者:佑佑
依照天蠍座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
 
 
 
 
  射手座日常交際:人馬角色

作者:佑佑
依照射手座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
  魔羯座日常交際:山羊角色

作者:佑佑
依照魔羯座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
  水瓶座日常交際:海豚角色

作者:佑佑
依照水瓶座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
  雙魚座日常交際:小丑魚角色

作者:佑佑
依照雙魚座的個性,描繪日常生活的行為,供交際表達心情使用。星座只能當參考用,不會完全準確。
購買貼圖
 
     
  厭世報:鬍渣男

作者:佑佑
厭世總有個理由跟原因,實在是令人不爽,為什麼最倒楣的總是我?真希望明天就是世界末日,讓大家都一樣慘。
購買貼圖
     

表情貼

 
 
 
 
  貓貓說每天都用得到的表情貼

作者:佑佑
日常生活常見的表情用語,用小貓擬人化的方式呈現,比較親切可愛。
購買貼圖
  天秤座的表情貼:鴿子角色

作者:佑佑
日常生活常見的表情用語,天秤座的鴿子擬人化方式呈現,比較親切可愛。
購買貼圖
  天蠍座的表情貼:鳳凰角色

作者:佑佑
日常生活常見的表情用語,天蠍座的鳳凰擬人化方式呈現,比較親切可愛。
購買貼圖
  射手座的表情貼:人馬角色

作者:佑佑
日常生活常見的表情用語,射手座的人馬擬人化方式呈現,比較親切可愛。
購買貼圖
 
 
 
 
  魔羯座的表情貼:山羊角色

作者:佑佑
日常生活常見的表情用語,魔羯座的山羊擬人化方式呈現,比較親切可愛。
購買貼圖
  水瓶座的表情貼:海豚角色

作者:佑佑
日常生活常見的表情用語,水瓶座的海豚擬人化方式呈現,比較親切可愛。
購買貼圖
  雙魚座的表情貼:小丑魚角色

作者:佑佑
日常生活常見的表情用語,雙魚座的小丑魚擬人化方式呈現,比較親切可愛。
購買貼圖