Skip to main content

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. 波蘭文字母與發音(注音版)

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

Python 日期與時間的處理

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

Image

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

Image

Python 日期與時間的處理

Image

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

Image

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

Image

修復損毀的 SQLite DB 資料庫

Image

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

Image

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

Image

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

Image

Visual Basic 6.0 程式案例學習: 07. 收據列印程式 (2014版)

Image

佑佑的 Line 貼圖創作

貼圖作者網址:

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

靜態貼圖

 
 
 
 
  牡羊座:狗狗角色

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

動態貼圖

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

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

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

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

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

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

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

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

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

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

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

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

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

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

表情貼

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

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

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

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

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

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

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

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