麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

用VB創建復雜表格

2019-11-18 17:37:37
字體:
來源:轉載
供稿:網友
----數據庫管理系統的開發人員經常感嘆的一個問題就是:我們中國人的報表太復雜了!無規則、嵌套、斜線、交叉線等歷來都是困撓開發人員的最大問題。設計一個數據庫固然有一定的技巧,設計數據操作也固然需要一定的邏輯分析能力,但這些問題對一般的開發人員來說應該是不成為問題的。用戶可是不管你采用了多么靈活的算法多么方便的操作,他們最感興趣的是最后他們出來的報表如何漂亮,出報表的操作如何簡單(最好是一個按鈕解決所有的問題)。筆者在開發數據庫管理系統方面也稍有些經驗,從FoxPRo、Delphi、PowerBuilder一直到現在用的VB,都遇到過設計打印報表的問題,這些軟件在設計報表的過程中可謂各有千秋,我這里不一一細說。我在這里只向大家介紹一種我迄今為止最為滿意的一種設計打印報表的方法:利用VB操作Excel來生成復雜的報表。

----一.用VB創建外部EXCEL對象

----大多數大型ActiveX-enabled應用程序和其它ActiveX部件,在它們的對象層次中都提供了一個頂層外部可創建對象。該對象提供了對該層次中其它對象的訪問,并且還提供對整個應用程序起作用的方法和屬性。

----例如,每個MicrosoftOffice應用程序提供一個頂層application對象。下面語句顯示了對MicrosoftExcel的Application對象的引用:

DimxlAppAsExcel.Application
SetxlApp=NewExcel.Application

----然后,可以用這些變量來訪問在EXCEL應用程序中的從屬對象、以及這些對象的屬性和方法。例如:

SetxlApp=CreateObject("Excel.Application")
‘激活EXCEL應用程序
xlApp.Visible=False‘隱藏EXCEL應用程序窗口
SetxlBook=xlApp.Workbooks.Open(strDestination)
‘打開工作簿,strDestination為一個EXCEL報表文件
SetxlSheet=xlBook.Worksheets(1)
‘設定工作表

----二.用EXCEL97設計報表的模版文件

----EXCEL97是一個非常優秀的創建報表的工具。它提供的單元格任意合并、拆分和繪圖功能基本上能夠滿足設計所有復雜報表的需求。它對任意一個單元格的格式隨意控制,更為隨心所欲地設計報表提供了強大的支持。

----根據用戶提供的報表,我們可以很快在EXCEL里生成模版文件。所謂生成模版文件只是為了滿足用戶多方面的需求而設計的。也是為了適合報表以后的更改而做的一點預備工作。例如用戶需要打印幾百張職工履歷表,但其格式都是一致的,并且隨著時間和實際情況的變化,表格格式有可能需要改變,我們設計一個模版文件顯然可以“以不變應萬變”了。

----生成工作表時我們應當記錄下要填充內容的單元格編號和該單元格內要填充的數據字段。這樣形成一個表格,在寫程序時一目了然。如:

Cell(4,2)職工姓名Cell(6,6)畢業學校
Cell(4,4)職工性別Cell(6,7)所學專業
Cell(4,6)職工民族Cell(6,9)工作時間
(表一)

----在程序里我們當然不要對模版文件進行操作了,我們只需要對模版文件的一個拷貝進行操作就行(這也是我們設計模版文件的一個目的和好處)。如下面的例子:

DimstrSource,strDestinationAsString
strSource=App.Path&"/Excels/RegisterFee.xls" 
‘RegisterFee.xls就是一個模版文件
strDestination=App.Path&"/Excels/Temp.xls" 
FileCopystrSource,strDestination
‘將模版文件拷貝到一個臨時文件

----三.生成工作表內容

----有了上述兩步工作的鋪墊,我們下面接著就只要根據(表一)的格式給各單元格賦值了。如:

 datPrimaryRS.Recordset.MoveFirst
‘datPrimaryRS為Data控件
  IfIsNull(datPrimaryRS.Recordset!姓名)=FalseThen
  xlSheet.Cells(4,2)=datPrimaryRS.Recordset!姓名
  EndIf
  IfIsNull(datPrimaryRS.Recordset!性別)=FalseThen
  xlSheet.Cells(4,4)=datPrimaryRS.Recordset!性別
  EndIf
  IfIsNull(datPrimaryRS.Recordset!民族)=FalseThen
  xlSheet.Cells(4,6)=datPrimaryRS.Recordset!民族
  EndIf
………………

----四.打印報表

----生成了工作表后,就可以對EXCEL發出打印指令了。

----注意在執行打印操作之前應該對EXCEL臨時文件執行一次保存操作,以免在退出應用程序后EXCEL還提示用戶是否保存已修改的文件,讓用戶覺得莫名其妙。如下語句:

xlBook.Save ‘保存文件
  xlSheet.PrintOut ‘執行打印
  xlApp.Quit ‘退出EXCEL

----至此讀者應該看到,我們設計的報表打印是通過EXCEL程序來后臺實現的。用戶根本看不到具體過程,他們只看到一張張漂亮的報表輕易地被打印出來了。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产永久免费观看 | 天天色宗合 | aa久久| 久久精品2019中文字幕 | 成人福利在线免费观看 | 日本在线国产 | 国产成人精品区 | 免费一级特黄欧美大片勹久久网 | 免费看搡女人无遮挡的视频 | 日本中文字幕网址 | 国产中出在线观看 | 日本中文高清 | 日韩大片在线永久观看视频网站免费 | 久久国产精品久久久久久电车 | 成人毛片在线 | 久久艹精品视频 | 欧美国产日韩在线 | 1区2区3区在线观看 欧美特黄a | 少妇的肉体的满足毛片 | 99精品无人区乱码在线观看 | 久久久涩 | 亚洲射情| 亚洲国产精久久久久久久 | 日韩美香港a一级毛片 | 国产欧美日韩视频在线观看 | 毛片成人网| 久久久国产精品免费观看 | 午夜精品在线视频 | 成人国产精品免费 | 午夜精品福利视频 | 久草在线观看首页 | 久久久久女人精品毛片九一 | 精选久久 | 激情宗合网 | 国产午夜精品一区二区三区视频 | 91久久国产综合久久91猫猫 | 亚洲精品成人18久久久久 | 午夜在线视频一区二区三区 | 欧美久久久一区二区三区 | 久久伊人国产精品 | 欧美韩国一区 |