999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MSFlexGrid控件在MIS系統開發中的使用

2008-12-31 00:00:00李大衛
電腦知識與技術 2008年11期

摘要:本文完整介紹了基于C/S模式開發MIS系統時,利用VB中的MSFlexGrid控件實現數據表格的顯示和維護功能,并給出了一個實例。

關鍵詞:C/S模式;VB;MSFlexGrid控件;MIS

中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)11-20200-02

1 引言

在開發信息管理系統(Management Information System, MIS)時,需要對大量數據用表格來進行顯示和維護。VB6.0提供的MSFlexGrid控件功能十分強大,它可以顯示二維表數據,同時提供了豐富的單元格屬性設置,使得其操作像Excel表格一樣高度靈活。

綜觀各種文獻,多片面強調MSFlexGrid控件各種單元格屬性的使用,以此來突顯其靈活性,但針對具體系統開發時,詳細介紹其使用步驟,使用方法的文獻卻沒有,這給借鑒使用帶來了不變。本文在此背景下,結合筆者為一中外合資企業開發的MIS系統,完整的介紹了MSFlexGrid控件的使用方法及步驟,并給出了其實現的關鍵部分代碼。

2 MSFlexGrid控件的使用

2.1 數據表的建立

MSFlexGrid控件使用時,首先要解決的是表頭顯示和列寬問題。為解決這一問題,在Server端SQL Server 2000數據庫中建立了一個Tab_FieldIndex表,用于存儲窗體上MsFlexGrid控件所要顯示的表頭標題及列寬等信息。Tab_FieldIndex表的結構如表1所示,并將strFrmName和lngFieldName兩字段設置為主鍵。

2.2 公共模塊

為了使用MSFlexGrid控件,首先得添加該控件。其添加方法為:在菜單“工程”中選擇“部件”,在列表中選擇“Microsoft FlexGrid Control…”,單擊“確定”按鈕便可將MSFlexGrid控件加入工具箱中。

在MIS系統的開發中,由于MSFlexGrid控件使用的頻繁性,所以在VB6.0的模塊中,需要定義其公共的聲明和方法部分,以方便控件的使用,其步驟及關鍵代碼如下。

2.2.1 聲明MSGItem類型

MSGItem類型中包含欲在MSFlexGrid控件中顯示的一個字段的關鍵信息,包含數據表

結構中的strFieldName及對應的中文表頭(strFieldCNCaption)和顯示時的列寬(lngColWidth)。

Public Type MSGItem

strFieldName As String

strFieldCNCaption As String

lngColWidth As Long

End Type

2.2.2 初始化MSGItem類型

將MSFlexGrid控件同時顯示多個字段信息存入MSGItem類型的數組refmsgItems()中,

其關鍵部分代碼如下:

Public Sub ginitmsgItems(ByVal strFrmName As String, ByRef refmsgItems() As MSGItem)

………’變量聲明部分

ReDim refmsgItems(0)

strSQL = \"select * from Tab_FieldIndex where strFrmName = ‘\" Trim$( strFrmName) \"’ order by lngFieldName\"

Set rs1 = New ADODB.Recordset

rs1.Open strSQL, gcnMain, adOpenForwardOnly, adLockReadOnly‘gcnMain為數據庫連接字符串

With rs1

Do While .EOF = False

ReDim Preserve refmsgItems(UBound(refmsgItems) + 1)

refmsgItems(UBound(refmsgItems)).strFieldName = Trim$(rs1!strFieldName)

refmsgItems(UBound(refmsgItems)).strFieldCNCaption = Trim$(rs1!strFieldCNCaption)

refmsgItems(UBound(refmsgItems)).lngColWidth = rs1!lngColWidth

.MoveNext

Loop

.Close

End With

Set rs1 = Nothing

End Sub

2.2.3 初始化控件表頭

將存入refmsgItems()中的字段信息作為MSFlexGrid控件的表頭標題顯示出來。

ginitmsgHeader()中以聲明的MSGItem類型對象和MSGFlexGrid控件名為參數,其關鍵部分代碼如下:

Public Sub ginitmsgHeader(ByRef refmsgItems() As MSGItem, ByRef refMsg As MSFlexGrid)

Dim i as Long

With refMsg

…….’指定MSGFlexGrid控件的行信息

.Cols = UBound(refmsgItems) + 1

For i = 0 To UBound(refmsgItems)

.Col = i

Select Case i

Case 0.ColWidth(i) = 300

Case Else.CellAlignment = 4

.ColWidth(i) = refmsgItems(i).lngColWidth

.Text = refmsgItems(i).strFieldCNCaption

End Select

Next i

End With

End Sub

2.3 MSFlexGrid控件的使用步驟

有了以上的準備工作,MSFlexGrid控件的使用就變得十分簡單方便。以下以一例來說明其具體使用步驟。

(1)在窗體frm_test上添加一MSFlexGrid控件,并命名為msg1;

(2)聲明類型:Private mmsgItems() As MSGItem;

(3)在窗體的Form_Load()事件中添加以下代碼顯示MSFlexGrid控件的頭。

ReDim mmsgItems(0)

將欲在frm_test窗體上的msg1控件中顯示的字段信息存入定義好的mmsgItems類型數組中:

ginitmsgItems \"frm_test\", mmsgItems()

將存入mmsgItems類型數組中的字段信息作為MSFlexGrid控件的表頭信息顯示出來。

ginitmsgHeader mmsgItems(), msg1

(4)顯示表格內容。

首先聲明Recordset對象rs1,接著書寫實現程序功能的SQL語句并建立與數據庫的連接,在讀取Recordset的同時,通過比較mmsgItems數組中的字段名便可將從數據庫中讀取的相應字段內容信息顯示在MSFlexGrid控件中。下面給出了常見字符型、數字型及布爾變量顯示方法的關鍵代碼:

With rs1

Do while .EOF = 1

…….’指定MSGFlexGrid控件的行信息

For i = 1 To UBound(mmsgItems)

msg1.Col = i

Select Case UCase$(mmsgItems(i).strFieldName)

Case UCase$(\" strField1\"), UCase$(\" strField 2\") ‘顯示字符字段

msg1.CellAlignment = 1‘可添加或更換其它屬性

msg1.Text = Trim$(.Fields(mmsgItems(i).strFieldName).Value)

Case UCase$(\" decField 1\")‘格式化數字類型字段

msg1.Text = Format$(.Fields(mmsgItems(i).strFieldName).Value, \"0.00\")

Case UCase$(\"blnField1\")‘顯示布爾變量(下轉第208頁)

(上接第201頁)

If rs1!blnField1 = True Then msg1.Text = \"True\"

Elsemsg1.Text = \"\"

End If

End Select

Next i

.MoveNext

Loop

.Close

End With

(5)數據維護

由于MSFlexGrid控件是只讀的,不允許用戶直接編輯被綁定或包含在控件中的數據,所以,在開發MIS系統時將其與TextBox、ListBox、ComboBox等控件相結合,便可以方便的實現將SFlexGrid控件中的數據顯示到其它控件中,也可將其它控件中的編輯好的內容添加或修改到數據庫中,并在MSFlexGrid控件中顯示其內容。

(6)報表打印輸出

在MIS系統開發過程中,離不開報表的打印輸出。由于MSFlexGrid控件對單元格操作的特性與Excel類似,所以可利用Excel的后臺打印功能來實現[4]。為此,在VB工程的公共模塊中,我們編寫了集打印輸出功能于一體的方法:gPrintmsg()。該方法以valSaveFileName(欲保存的文件名)、valMsg(MSFlexGrid控件名)、valExcelSheetName(后臺建立好的Excel工作表名)和valblnExport(控制是打印或輸出的布爾變量)為參數。在使用是,首先,在創建Excel的工作表時設定好打印的固定內容部分并命名,然后只需調用gPrintmsg()方法并賦以正確的參數信息就行,使用十分方便。

3 總結

MSFlexGrid控件由于其使用的靈活性,在開發MIS系統時得以頻繁使用。文中詳細介紹了MSFlexGrid控件使用時的添加控件、建立后臺數據表、編寫公共模塊、數據的顯示與維護以及報表的打印輸出幾個環節,并給出了關鍵部分的代碼。

參考文獻:

[1] 明日科技.Visual Basic數據庫開發關鍵技術與實例應用[M].北京:人民郵電出版社,2004.

[2] 劉少華.利用MSFlexGrid控件編制通用報表打印程序[J].湘潭師范學院學報(自然科學版),2005,27(2):96-98.

[3] 韋建忠.Visual Basic在Excel中的應用綜述[J].科技創新導報,2007(33):120-121

[4] 胡巖,羅志宏.VB中MSFlexGrid控件的擴展應用[J].電腦學習,2006(5):32-33.

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文

主站蜘蛛池模板: 国产在线一区视频| 日本国产在线| av在线人妻熟妇| AV无码国产在线看岛国岛| 国产在线精彩视频二区| 四虎精品国产AV二区| 国产女主播一区| 亚洲成人免费看| 国产丰满大乳无码免费播放| 最新国产在线| 狠狠亚洲五月天| 亚洲第一成年人网站| 亚洲第一视频免费在线| 亚洲an第二区国产精品| 91av成人日本不卡三区| 国产亚洲欧美另类一区二区| 国产成人禁片在线观看| 国产成人综合久久精品尤物| 国产一区二区三区在线观看视频 | 精品超清无码视频在线观看| 国产肉感大码AV无码| 免费在线观看av| 亚洲成a人片77777在线播放 | 十八禁美女裸体网站| 九色91在线视频| 国产视频 第一页| 在线精品自拍| 91精品伊人久久大香线蕉| 国产精品刺激对白在线| 九色视频线上播放| 熟女日韩精品2区| 色婷婷亚洲综合五月| 午夜丁香婷婷| 久久动漫精品| 伊人蕉久影院| 日本一区二区三区精品国产| 欧美一级99在线观看国产| 国产人人射| 午夜日韩久久影院| 在线高清亚洲精品二区| 毛片手机在线看| 亚洲视频影院| 538国产在线| 国产成人综合日韩精品无码不卡| 国产精品浪潮Av| 国产成人亚洲精品蜜芽影院| 欧美激情综合一区二区| 国产亚洲精久久久久久无码AV | 四虎国产成人免费观看| 免费又黄又爽又猛大片午夜| 另类重口100页在线播放| 亚洲天堂视频在线免费观看| 精品久久777| 亚洲福利网址| 91精品国产综合久久香蕉922 | 欧美激情视频一区| 国产精品久久久久鬼色| 天堂成人在线| 亚洲免费毛片| 久久综合伊人77777| 奇米影视狠狠精品7777| 国产国拍精品视频免费看| 国模视频一区二区| 高清色本在线www| 亚洲综合日韩精品| 精品成人一区二区三区电影| 制服无码网站| 在线观看国产一区二区三区99| 91成人在线免费视频| 制服丝袜国产精品| 中文成人在线视频| 91精品小视频| 国产在线日本| 亚洲精品国产日韩无码AV永久免费网| 欧美精品亚洲精品日韩专| 国产69精品久久| 免费jizz在线播放| 美女被操91视频| 国产免费黄| jizz国产视频| www.youjizz.com久久| 最新无码专区超级碰碰碰|