亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OLE的報(bào)表打印方案設(shè)計(jì)與實(shí)現(xiàn)

        2011-10-19 06:33:34
        大眾科技 2011年8期
        關(guān)鍵詞:設(shè)置方法

        馬 健

        (開(kāi)灤一中,河北 開(kāi)灤 063000)

        基于OLE的報(bào)表打印方案設(shè)計(jì)與實(shí)現(xiàn)

        馬 健

        (開(kāi)灤一中,河北 開(kāi)灤 063000)

        文章針對(duì)VB6.0開(kāi)發(fā)中遇到的復(fù)雜報(bào)表打印問(wèn)題,提出了一種基于OLE中Excel自動(dòng)化技術(shù)的解決方案。并首先描述了這種解決方案的理論基礎(chǔ),接著又以科研管理信息系統(tǒng)課題錄制作功能的實(shí)現(xiàn)為例介紹了這種解決方案的具體實(shí)現(xiàn)。通過(guò)實(shí)際運(yùn)行科研管理信息系統(tǒng),驗(yàn)證了這種解決方案的可行性。

        報(bào)表打??;OLE自動(dòng)化;Excel

        1 引言

        用Visual Basic開(kāi)發(fā)應(yīng)用程序時(shí),難免會(huì)遇到打印復(fù)雜型報(bào)表的問(wèn)題,這類(lèi)報(bào)表一般具有復(fù)雜的表頭,表格樣式怪異,每行可能多條記錄,有較復(fù)雜的計(jì)算公式,有大量的文本信息等特點(diǎn)。特別是在大中型管理信息系統(tǒng)的開(kāi)發(fā)過(guò)程中這類(lèi)報(bào)表的設(shè)計(jì)開(kāi)發(fā)往往占據(jù)了開(kāi)發(fā)總量的很大部分工作量。因此,找到一種高效、方便、通用的報(bào)表設(shè)計(jì)方法已迫在眉睫。為了解決上述問(wèn)題,筆者對(duì)于這類(lèi)報(bào)表打印功能的實(shí)現(xiàn)采用了OLE自動(dòng)化技術(shù),通過(guò)對(duì)Excel使用OLE自動(dòng)化,可以在管理信息系統(tǒng)中創(chuàng)建任意外觀的Excel報(bào)表。

        2 OLE自動(dòng)化

        OLE代表“對(duì)象連接與嵌入自動(dòng)識(shí)別”,是一項(xiàng)用于實(shí)現(xiàn)和擴(kuò)展動(dòng)態(tài)數(shù)據(jù)交換的技術(shù)。利用OLE技術(shù),在一個(gè)Windows應(yīng)用程序中可以啟動(dòng)其它Windows應(yīng)用程序,也可以顯示和控制其它Windows應(yīng)用程序的數(shù)據(jù),并在創(chuàng)建數(shù)據(jù)的程序中對(duì)它進(jìn)行編輯。OLE自動(dòng)化是應(yīng)用程序向支持OLE自動(dòng)化功能的開(kāi)發(fā)工具、宏語(yǔ)言等展示其OLE對(duì)象的一種工業(yè)標(biāo)準(zhǔn),當(dāng)一個(gè)應(yīng)用程序支持OLE自動(dòng)化時(shí),它所具有的對(duì)象就可以用VB進(jìn)行存取控制,通過(guò)激活對(duì)象上的方法或設(shè)置其屬性來(lái)操縱對(duì)象。目前,除VB以外,支持OLE自動(dòng)化的應(yīng)用程序主要有Microsoft Word、Microsoft Excel等。

        下面主要介紹VB所提供的可訪問(wèn)、處理Excel中的工作簿和工作表 VBA(Visual Basic for Application)對(duì)象,共包含四個(gè)對(duì)象:Application對(duì)象,Workbook對(duì)象,Worksheet對(duì)象,Range對(duì)象。下面對(duì)這四個(gè)對(duì)象及其所提供的屬性和方法作簡(jiǎn)要說(shuō)明。

        2.1 Application對(duì)象

        所有程序都可以使用Application對(duì)象,從總體上講,它是指應(yīng)用程序,因此可以作為所有程序?qū)ο蟮娜萜?。Application對(duì)象提供了很多屬性和方法,所有程序都可以訪問(wèn)它們。

        2.2 Workbook對(duì)象

        VBA允許創(chuàng)建、打開(kāi)、保存、關(guān)閉和刪除工作簿。使用Workbook對(duì)象,可以完成所有這些活動(dòng)。在VBA對(duì)象層中,Workbook對(duì)象位于Application對(duì)象之下。

        在VB中要?jiǎng)?chuàng)建新的工作簿,需使用Workbooks集合的Add方法。Add方法的語(yǔ)法如下:

        Workbooks.Add([])

        這里是可選參數(shù),它可以制定工作簿的模板。的置確定了要?jiǎng)?chuàng)建工作簿的格式。

        2.3 Worksheet對(duì)象

        Worksheet對(duì)象提供了幾個(gè)屬性、方法和事件??梢允褂盟麄兺瓿梢恍┗顒?dòng)。例如添加、刪除和復(fù)制工作表。

        使用Worksheet對(duì)象的Add方法,可以在工作部中插入新表。該方法的語(yǔ)法如下:

        Worksheets.Add(,,,)

        如果指定了就會(huì)在表之前插入新的工作表。如果指定了就會(huì)在表之后插入新表。不可同時(shí)指定。參數(shù)是要插入的工作表數(shù)。參數(shù)表示工作表的類(lèi)型, 它的值可以為xlWorksheet、xlExcel4MarcoSheet或xlExcel4IntMacrosheet。

        2.4 Range對(duì)象

        在VBA中,使用Range對(duì)象可以訪問(wèn)和引用工作表中的單元格。Range對(duì)象可以是一個(gè)單元格、行、列,也可以是單元格的選項(xiàng)。下面對(duì)Range對(duì)象的幾個(gè)主要方法和屬性作簡(jiǎn)要介紹。

        (1)Range方法

        Range方法可以識(shí)別單元格或范圍。Range方法的語(yǔ)法如下:

        Worksheet.Range()

        Worksheet.Range(,)

        在第一個(gè)語(yǔ)法中,參數(shù)是范圍引用或是以文本方式輸入的名字。在第二個(gè)語(yǔ)法中,參數(shù)分別是單元各種范圍的左上角單元格和右下角單元格。的值可以是單元格地址。Range對(duì)象,也可以是整行或整列。

        (2)Merge方法Merge方法可以合并指定范圍。Merge方法的語(yǔ)法如下:Worksheet.Range(,).Merge

        參數(shù)分別是單元各種范圍的左上角單元格和右下角單元格。

        (3)Font屬性

        可以利用Range對(duì)象的Font屬性的屬性來(lái)定義字體的大小和顏色。Font的屬性包括 Bold、Color、Index、FontStytle等。

        3 應(yīng)用

        3.1 應(yīng)用步驟

        下面將以科研管理信息系統(tǒng)打印課題錄功能的實(shí)現(xiàn)為例詳細(xì)說(shuō)明如何利用OLE自動(dòng)化技術(shù)在VB中生成報(bào)表。方法是用VB的OLE自動(dòng)化技術(shù)獲取Excel的控制句柄,從而直接控制Excel的一系列操作,利用微軟強(qiáng)大的電子表格工具Excel來(lái)實(shí)現(xiàn)復(fù)雜的報(bào)表。其步驟為:

        (1)創(chuàng)建三個(gè)對(duì)象變量,類(lèi)型分別為Excel.Application、Excel.Workbook和 Excel.Worksheet,分別對(duì)應(yīng)將打開(kāi)的Excel系統(tǒng)、工作簿和工作表;

        (2)調(diào)用Excel使其顯示在當(dāng)前窗口中;

        (3)對(duì)新的工作表命名;

        (4)設(shè)計(jì)表格的外觀;

        (5)設(shè)置單元格內(nèi)文字的字體、大小、顯示位置等;

        (6)用FOR-NEXT循環(huán)把MSFlexGrid中的記錄逐一寫(xiě)入Excel單元格中;

        (7) 畫(huà)出表格輪廓線。

        3.2 程序示例

        Private Sub Command6_Click()

        Dim appexcel As New Excel.Application‘聲明一個(gè)Application對(duì)象

        Dim wbmybook As New Excel.Workbook ‘聲明一個(gè)Workbook對(duì)象

        Dim wsmysheet As New Excel.Worksheet‘聲明一個(gè)Worksheet對(duì)象

        appexcel.Visible = True‘調(diào)用Excel使其顯示在當(dāng)前窗口中

        Set wbmybook = appexcel.Workbooks.Add‘創(chuàng)建新的工作簿

        Set wsmysheet = appexcel.Worksheets.Add‘創(chuàng)建新的工作表

        wsmysheet.Name = "查詢(xún)結(jié)果"‘對(duì)新的工作表命名

        wsmysheet.Cells(1, 2).ColumnWidth = 16‘設(shè)置單元格的列寬

        wsmysheet.Cells(1, 1).RowHeight = 30‘設(shè)置單元格的行高

        wsmysheet.Range("A1:F1").Merge‘合并單元格

        wsmysheet.Range("A1:F10").WrapText = True‘設(shè)置單元格內(nèi)文字可自動(dòng)換行

        ‘設(shè)置單元格內(nèi)文字頂行顯示

        wsmysheet.Range("A1:F10").VerticalAlignment =xlTop

        ‘設(shè)置單元格內(nèi)文字居中顯示

        wsmysheet.Range("A1:F1").HorizontalAlignment =xlCenter

        ‘設(shè)置單元格內(nèi)文字居左顯示

        wsmysheet.Range("A2:F10").Select

        Selection.HorizontalAlignment = xlLeft

        ‘設(shè)置字體外觀

        wsmysheet.Range("A1:F1").Select

        Selection.Font.FontStyle = "Bold"

        Selection.Font.Size = 17

        ‘ 把MSFlexGrid3中的信息寫(xiě)到Excel中

        For i = 0 To Form5.MSFlexGrid3.Rows - 1

        For j = 0 To Form5.MSFlexGrid3.Cols - 1

        wsmysheet.Cells(i + 1, j + 1) =Form5.MSFlexGrid3.TextMatrix(i, j)

        Next j

        Next I

        ‘畫(huà)表格

        wsmysheet.Range("A1", "F10").Borders.LineStyle =xlContinuous

        End Sub

        3.3 運(yùn)行結(jié)果

        基于以上程序,可得到如圖1的運(yùn)行結(jié)果。

        圖1 運(yùn)行結(jié)果

        4 結(jié)束語(yǔ)

        通過(guò)實(shí)際運(yùn)行, OLE自動(dòng)化技術(shù)對(duì)于科研管理信息系統(tǒng)打印課題錄的功能的良好實(shí)現(xiàn)得到了充分驗(yàn)證。由于在科研管理信息系統(tǒng)復(fù)雜報(bào)表的開(kāi)發(fā)過(guò)程中采用了 OLE自動(dòng)化技術(shù),不僅大大提高了整個(gè)系統(tǒng)的開(kāi)發(fā)效率,而且顯著增強(qiáng)了該部分程序的復(fù)用性和可讀性。同時(shí),用戶(hù)可以隨著需求的改變,利用Excel自身的強(qiáng)大功能對(duì)報(bào)表進(jìn)行任意修改,從而提高了整個(gè)系統(tǒng)的靈活性。這種實(shí)現(xiàn)復(fù)雜報(bào)表打印的方法也可以推廣到其它管理信息系統(tǒng)的開(kāi)發(fā)中。但是OLE自動(dòng)化技術(shù)實(shí)現(xiàn)的報(bào)表打印在運(yùn)行速度上仍存在欠缺。

        [1] 傅靖,李冬,羅剛君.Excel 2007 VBA開(kāi)發(fā)技術(shù)大全[M].北京:電子工業(yè)出版社,2008.

        [2] 巴威爾.F. VB.NET高級(jí)編程[M].北京:清華大學(xué)出版社,2002.

        [3] 洛邁克斯.P. VB與VBA技術(shù)手冊(cè)[M].北京:清華大學(xué)出版社,2002.

        Method Design and of realization Report Print Based on OLE

        s: This paper gives a method which base on Excel Automation to deal with some questions about complex report print. At first we give theory base of the resolving method. And then this paper give an example on the resolving method through the realization of the making tasks function in Scientific Research Management Information System.

        Report print;OLE Automation ;Excel

        TP319

        A

        1008-1151(2011)08-0033-02

        2011-04-18

        馬健,男,開(kāi)灤一中教師。

        猜你喜歡
        設(shè)置方法
        中隊(duì)崗位該如何設(shè)置
        學(xué)習(xí)方法
        7招教你手動(dòng)設(shè)置參數(shù)
        可能是方法不對(duì)
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        本刊欄目設(shè)置說(shuō)明
        中俄臨床醫(yī)學(xué)專(zhuān)業(yè)課程設(shè)置的比較與思考
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢(qián)方法
        捕魚(yú)
        粉嫩av最新在线高清观看| 中文字幕一区二区va| 欧美国产日本高清不卡| 日韩精品无码一区二区三区视频| 国产剧情国产精品一区| 成人爽a毛片一区二区免费| 少妇无码av无码去区钱| 亚洲无线码1区| 久久精品国产亚洲av热明星| 偷拍熟女露出喷水在线91| 伊人久久大香线蕉av不变影院| 91精品啪在线观九色| 久久久99精品免费视频| 人成午夜免费视频无码| 国产av麻豆mag剧集| 特级婬片国产高清视频| 亚洲av无码成人yellow| 91免费播放日韩一区二天天综合福利电影| 亚洲地区一区二区三区| 大白屁股流白浆一区二区三区| 亚洲精品成人久久av| 日本一区二区三区丰满熟女| 东北女人一级内射黄片| 日本精品少妇一区二区三区| 丰满爆乳在线播放| 亚洲美女影院| 日韩亚洲午夜精品一区二区三区| 无色码中文字幕一本久道久| 国产在线无码精品无码| 国产精品成人3p一区二区三区| 丁香美女社区| 久久AV老司机精品网站导航 | 无码人妻久久一区二区三区app| 三上悠亚久久精品| 无码的精品免费不卡在线| 高清国产亚洲va精品| 国产熟妇一区二区三区网站| 亚洲熟女少妇一区二区三区青久久| www夜插内射视频网站| 精品国产av一区二区三区| 欧美国产成人精品一区二区三区|