免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

vb.net報表控件作用,報表控件的功能和窗體控件的功能

VB.NET ListView1控件添加數(shù)據(jù)

要使用ListView控件,需要加入組件:

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比來賓網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式來賓網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋來賓地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

Microsoft Windows Common Controls 6.0

Windows資源管理器的右半部分,就是一個ListView控件。

作用

列出并列關(guān)系的對象及對象屬性。

ListView控件的對象層次結(jié)構(gòu)

ListView -整個控件

ColumnHeaders -標(biāo)題行

ColumnHeader -標(biāo)題列

ListItems -對象行集合

ListItem -對象行

ListSubItems -對象屬性集合

ListSubItem -對象屬性

注意:SubItems和ListSubItems的區(qū)別:SubItems是一個String數(shù)組;ListSubItems是一個集合。

屬性

View:設(shè)置ListView的外觀

Sorted:設(shè)置ListView中的對象集合是否排序。

SortKey:設(shè)置以第幾項排序。從零開始。

SelectedItem:返回選中的對象的引用。

事件

AfterLabelEdit:編輯ListItem對象的標(biāo)簽時被觸發(fā)。

BeforeLabelEdit:編輯ListItem對象的標(biāo)簽后出發(fā)。

ColumnClick:單擊列標(biāo)題時觸發(fā)。參數(shù)中可以獲得被單擊的列對象。通常用于排序。

ItemClick:單擊某行或某ListItem時觸發(fā)。參數(shù)中可以獲得被單擊的ListItem對象。

方法

FindItem:搜索ListItem對象。

參數(shù):

string:搜索字符串。

value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:開始搜索的位置。

match:匹配方式。

HitTest:檢索位于特定坐標(biāo)處的ListItem對象。

ListView控件比前面幾種控件要復(fù)雜一些,通過此控件,可將項目組成帶有或不帶有列標(biāo)頭的列,并顯示伴隨的圖標(biāo)和文本。ListView控件是由ColumnHeader和ListItem對象所組成的,其中ColumnHeader對象的個數(shù)決定了控件的列數(shù),而ListItem對象的個數(shù)則決定了控件的行數(shù)。(圖7)

ColumnHeader對象是ListView控件中包含標(biāo)頭文字的項目。利用ColumnHeader對象,用戶可以:

▲單擊對象觸發(fā)ColumnClick事件并根據(jù)數(shù)據(jù)項目將項目排序。

▲拖動對象的右邊框來調(diào)整列寬度。

▲在報表視圖中隱藏ColumnHeader對象。

ColumnHeader對象的數(shù)目決定每個ListItem對象可包含的子項目數(shù)目。刪除ColumnHeader對象后所有與列關(guān)聯(lián)的子項目也將被刪除,并且每個ListItem對象的子項目數(shù)組將平移以更新ColumnHeader的索引,而這將導(dǎo)致剩余的列標(biāo)頭SubItemIndex屬性的改變。

ColumnHeader對象的SubItemIndex屬性

該屬性返回與ListView控件中ColumnHeader對象關(guān)聯(lián)的子項目的索引。子項目是字符串?dāng)?shù)組,代表顯示在報表視圖中的ListItem對象的數(shù)據(jù)。第一列的列標(biāo)頭SubItemIndex屬性設(shè)置為0,這是因為小圖標(biāo)和ListItem對象的文字總出現(xiàn)在第一列中,而且它們被當(dāng)作ListItem對象而不是子項目。列標(biāo)頭數(shù)目取決于子項目數(shù)目。列標(biāo)頭數(shù)目總是比子項目數(shù)目多1。

在設(shè)計時可以利用屬性頁的“列首”選項卡將ColumnHeader對象添加到ListView控件中,在運行時則用Add方法添加。

ColumnHeader對象的Add方法

該方法的使用與前面那些控件基本相似,就不再介紹了。

ListView1.ColumnHeader.Add(index,key,text,width,alignment)

ListItem對象是指控件中的一行(不包含標(biāo)頭行)的所有內(nèi)容。它也可包含文本和圖片,但是要使用圖片則必須通過Icons和SmallIcons屬性引用ImageList控件。

ListItem對象的SubItems屬性

返回或設(shè)置一個字符串(子項目)數(shù)組,它代表ListView控件中ListItem對象的數(shù)據(jù)。

ListItem對象可包含任意多個的關(guān)聯(lián)項目數(shù)據(jù)字符串(子項目),但每個ListItem對象子項目數(shù)目必須相同。每個子項目都對應(yīng)于相關(guān)的列標(biāo)頭,無法直接向子項目數(shù)組添加元素,只有通過ColumnHeaders的Add方法添加列標(biāo)頭的方法來添加子項目。

ListItem對象的Add方法

該方法添加ListItem對象到ListView控件的ListItems集合中并返回對新創(chuàng)建對象的引用。

它的語法如下:

ListItem1.Add(index,key,text,icon,smallIcon)

ListView控件的View屬性

ListView控件可使用四種不同視圖顯示項目,這可以用View屬性來確定。該屬性返回或設(shè)置ListView控件中ListItem對象的外觀。

ListView控件的SortOrder,SortKey和Sorted屬性

控件中的ListItem對象可以按要求進(jìn)行排序,與排序有關(guān)的屬性是SortOrder,Sorted和SortKey屬性。

SortOrder屬性返回或設(shè)置一個值,此值決定ListView控件中的ListItem對象以升序或降序排序。

SortKey屬性返回或設(shè)置一個值,此值決定ListView控件中的ListItem對象如何排序。

Sorted屬性返回或設(shè)置確定ListView控件中的ListItem對象是否排序的值。

下面的代碼說明了如何創(chuàng)建ColumnHeaders和ListItem對象,SubItemIndex和SubItem屬性的使用方法以及如何排序。

Private Sub Form_load()

'確保ListView控件的view屬性為報表視圖。

ListView1.View=lvwReport

'添加三列。

ListView1.ColumnHeaders.Add,"Name","姓名"

ListView1.ColumnHeaders.Add,"Sex","性別"

ListView1.ColumnHeaders.Add,"Age","年齡"

'向控件添加ListItem對象。

Dim itmX As ListItem

'添加column1的名稱。

Set itmX=ListView1.ListItems.Add(1,"ZL","張力")

'使用SubItemIndex將SubItem與正確的ColumnHeader關(guān)聯(lián)。使用關(guān)鍵字("Sex")指定正確的ColumnHeader。

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

'使用ColumnHeader關(guān)鍵字將SubItems字符串與

'正確的ColumnHeader關(guān)聯(lián)。

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="19"

Set itmX=ListView1.ListItems.Add(1,"LF","李芳")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="22"

Set itmX=ListView1.ListItems.Add(1,"WW","王偉")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="24"

End Sub

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ComctlLib.ColumnHeader)

Select Case ColumnHeader.Key

Case "Sex":ListView1.SortKey=1

ListView1.SortOrder=lvwAscending

ListView1.Sorted=True

Case "Age":ListView1.SortKey=2

ListView1.SortOrder=lvwAscending

ListView1.Sorted=True

End Select

End Sub

vb.net中的listview控件使用問題

可以按shuift或者ctrl多選,再右鍵選刪除,也可單擊單個item右鍵選擇刪除。

如果附件代碼有問題,試試下面這個,我沒時間改了。

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

? With ListView1

? ? ? Dim i As Integer

? ? ? .Items.Clear()'清空

? ? ? .View = View.Details'用報表模式顯示

? ? ? .FullRowSelect = True'整行選擇

? ? ? .ContextMenuStrip = ContextMenuStrip1'指定右鍵菜單的控件

? ? ? .Columns.Add("ID", 100)'添加列頭

? ? ? .Columns.Add("啦啦啦", 200)

'加入15個數(shù)據(jù)方便測試

? ? ? For i = 0 To 15

? ? ? ? ? .Items.Add("項目" i)

? ? ? ? ? .Items(i).SubItems.Add("我是第" i "個項目")

? ? ? Next

? End With

End Sub

'菜單中刪除的click事件

Private Sub menu_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menu_del.Click

? If ListView1.SelectedItems.Count 1 Then

? ? ? '但選中的item數(shù)量不足一個

? ? ? MessageBox.Show("至少選擇一個")

? Else

? ? ? '刪除選中的那個item

? ? ? ListView1.SelectedItems(0).Remove()

? End If

End Sub

vb.net怎么使用表格控件

DataGridView控件,放一個DataGridView1和Button1到窗體,下面是按鈕下代碼

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Me.DataGridView1.AllowUserToAddRows = False

DataGridView1.RowTemplate.Height = 200

DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None

For i = 1 To 3

Me.DataGridView1.Columns.Add("列" i.ToString, "列" i.ToString)

Me.DataGridView1.Rows.Add()

Next

Me.DataGridView1.Columns(0).Width = 100

Me.DataGridView1.Columns(1).Width = 500

Me.DataGridView1.Columns(0).Width = 300

End Sub

'自己設(shè)置相關(guān)需要的屬性即可

VB.NET有什么控件可以像EXCEL表格那樣直觀地顯示數(shù)組數(shù)據(jù)的?

VB中表格控件有很多,如MSFlexGrid,DataGrid,MSHFlexGrid等等

使用的多的是微軟的FlexGrid控件。

通過菜單"Project" - "Components" - 勾上"Microsoft FlexGrid Control 6.0"進(jìn)行選擇。這個是包含在VS6 SP6安裝包內(nèi)的。

怎么用VB.net visual basic項目編寫天氣預(yù)報程序

Visual Basic通用報表設(shè)計小結(jié)

本文對vb設(shè)計報表的方法作了一個小結(jié),大家都知道,在VB平臺下制作報表大致有兩種選擇:使用VB自帶的Data Report控件和借助第三方軟件。其中第三方軟件比較著名的就是MS Excel和Seagate公司的CrystalReporter,以下就這三個方案進(jìn)行詳細(xì)的討論。

1. Data Report控件

1.1 Data Report控件使用方法

由于是VB自帶的控件,所以使用相對比較方便。使用方法是:首先在"工程"菜單下面選擇"添加Data report"選項,這樣Data Report控件就選入到了應(yīng)用程序。

使用Data report的情況大多數(shù)采用數(shù)據(jù)綁定的模式,也就是將此控件與數(shù)據(jù)庫的數(shù)據(jù)表綁定起來以便可以不用編寫代碼就輕松完成報表的設(shè)計。要使用數(shù)據(jù)綁定就必須要指定數(shù)據(jù)源,這里的數(shù)據(jù)源不是數(shù)據(jù)控件而是數(shù)據(jù)環(huán)境(Data Environment),選擇"工程"菜單下面選擇"添加Data Environment"選項就可以將數(shù)據(jù)環(huán)境添加進(jìn)應(yīng)用程序中。數(shù)據(jù)環(huán)境有兩個重要的屬性:Connection 和Command屬性,前者是連接指定的數(shù)據(jù)庫,后者連接指定的數(shù)據(jù)表,一旦這兩者都設(shè)置成功之后,就可以把數(shù)據(jù)環(huán)境作為數(shù)據(jù)源了。只需要把Data report的DataSource屬性設(shè)置為前面的數(shù)據(jù)環(huán)境對象以及把DataMember設(shè)置為數(shù)據(jù)環(huán)境對象的Command對象即可。

1.2 Data Report控件界面元素

完成了Data report控件的數(shù)據(jù)綁定工作之后就可以直接控制報表的制作與顯示了。這里首先熟悉一下Data report控件的顯示界面:

Data report控件一共有5個區(qū)組成,分別是報表頭、頁面頭、細(xì)節(jié)區(qū)、頁面注腳和報表注腳。報表頭和報表注腳是用分別用于整個報表的最上部和最下部,它們將出現(xiàn)于整個報表的每一頁,可以放置一些報表名稱,時間之類的固定文本;頁面頭和頁面注腳只能出現(xiàn)在當(dāng)前頁的最上部和最下部,也就是說它只能出現(xiàn)在當(dāng)前頁中,不出現(xiàn)在其他頁面中,可以放置隨頁面變化的一些量比如頁碼等;而細(xì)節(jié)區(qū)就是用來進(jìn)行實際顯示的區(qū)域,它是我們最為關(guān)心的區(qū)域,通過在此區(qū)域內(nèi)放置顯示控件可以控制報表的實際顯示輸出。這里介紹一下放置文本框控件的使用方法,其實在綁定情況下只需要設(shè)置其DataMember和Datafield即可,前者用來指定數(shù)據(jù)表,可以設(shè)置為前面數(shù)據(jù)環(huán)境對象的Command對象,后者是指定數(shù)據(jù)段,即綁定的數(shù)據(jù)庫的指定字段。這樣不需要編寫任何代碼就可以實現(xiàn)報表的顯示工作。

1.3 Data Report控件的打印功能

對于報表的打印可以直接使用Data report自帶的打印功能,即可以實現(xiàn)簡易的報表打印。不過為了實現(xiàn)比較復(fù)雜的打印功能,也可以通過程序控制的方法來進(jìn)行。這里只是給出一個實現(xiàn)思路:首先需要制作一個按鈕控件來顯示"打印設(shè)置"的窗口,通過這個窗口用戶可以設(shè)置打印的相關(guān)的參數(shù),然后在實現(xiàn)打印的子模塊中使用VB內(nèi)嵌的printer對象來實現(xiàn)真實的打印,該對象能夠?qū)Υ蛴〉漠?dāng)前位置進(jìn)行定位,而且對打印的字體等參數(shù)進(jìn)行控制,所以結(jié)合"打印設(shè)置"窗口可以實現(xiàn)類似于word里面的打印功能。

2.MS Excel

說起報表設(shè)計應(yīng)用程序,無意微軟的Excel是一支獨秀,MS Excel就是用來進(jìn)行表格和報表設(shè)計用的應(yīng)用程序,它具有優(yōu)秀的方格控制和宏代碼定制功能。所以如果在設(shè)計自己的應(yīng)用程序的時候能夠結(jié)合到Excel的話,那么你的應(yīng)用程序就應(yīng)該是相當(dāng)?shù)耐晟屏耍驗闊o論是編輯還是打印功能,Excel都提供了很完美的解決方案,所以你的應(yīng)用程序所要做的事情就是實現(xiàn)程序和Excel通訊即可。

事實上,可以使用VBscript可以將VB與Excel兩者連接起來。以下就簡要介紹在VB下開發(fā)基于Excel的編程思路。

在VB中處理Excel的對象大致分為五個:Application對象、WorkBook對象、WorkSheet對象、Range對象以及Cell對象。它們的功能分別如下:

Application---------用來指代整個應(yīng)用程序。

WorkBook----------表示工作簿對象

WorkSheet---------表示工作表對象,注意,一個工作簿可以包含多個工作表,它們就類似于多文檔中的框架窗口和里面的單個視圖一樣。

Range-------------表示工作表中的某個區(qū)域范圍對象,特殊情況下也可以只代表一個Cell。

Cell---------------表示特定工作表的一個單元格對象。這個對象的使用頻率是最高的。

清楚了以上的五個對象的應(yīng)用范圍,那么使用它們就很簡單了,不過在使用這些對象之前,首先需要對它們進(jìn)行聲明。方法是在"工程"的"引用"對話框之下選擇"Microsoft Excel9.0 Object Library",這樣就將整個Excel對象庫就引入到程序中來了。

下面舉一個示例,其實現(xiàn)的功能是打開一個工作簿。

Function OpenBook(strFilePath As String) As Boolean

' This procedure checks to see if the workbook

' specified in the strFilePath argument is open.

' If it is open, the workbook is activated. If it is

' not open, the procedure opens it.

Dim wkbCurrent As Excel.Workbook

Dim strBookName As String

On Error GoTo OpenBook_Err

' Determine the name portion of the strFilePath argument.

strBookName = NameFromPath(strFilePath)

If Len(strBookName) = 0 Then Exit Function

If Workbooks.Count 0 Then

For Each wkbCurrent In Workbooks

If UCase$(wkbCurrent.Name) = UCase$(strBookName) Then

wkbCurrent.Activate

Exit Function

End If

Next wkbCurrent

End If

Workbooks.Open strBookName

OpenBook = True

OpenBook_End:

Exit Function

OpenBook_Err:

OpenBook = False

Resume OpenBook_End

End Function

3.Crystal Reporter(水晶報表)

做為一個優(yōu)秀的報表軟件,水晶報表是實際應(yīng)用中最多的方案。在這一節(jié)里主要介紹一下水晶報表的定制和顯示,打印功能的實現(xiàn)。

首先要區(qū)分Crystal Reports插件程序和Crystal Reports控件。前者主要用來創(chuàng)建報表模板,后者主要是用來在程序中顯示和打印報表,這兩者的分工決定了它們程序中的功能的不同。

其中Crystal Reports的插件程序可以從Seagate公司的官方網(wǎng)站上下載最新的測試版本。

3.1 Crystal Reports插件程序的使用

選擇"外接程序"菜單的"報表設(shè)計器"選項,則VB將執(zhí)行Crystal Reports Pro插件應(yīng)用程序。在Crystal Reports Pro里選擇"新建報表"圖標(biāo),可以選擇8標(biāo)準(zhǔn)模板和一個自定義的模板來開始報表工程。

整個水晶報表的使用跟第一節(jié)的Data Report的使用很類似。首先需要給報表選擇數(shù)據(jù)源,(即數(shù)據(jù)庫),然后就可以在報表中添加、刪除、修改字段以及為記錄分組,可以利用水晶報表創(chuàng)建很多具有自定義風(fēng)格的報表。由于本身Crystal Reports插件程序就是一個功能強(qiáng)大的報表設(shè)計軟件,這里就不能一一的講解了,有興趣可以參考程序自帶的幫助文檔。

3.2 Crystal Reports控件的背景知識

Crystal Reports Pro還提供一個報表生成模塊,該模塊可以連接到并訪問VB應(yīng)用程序,VB程序員不需花費大量時間寫自己的代碼就可再應(yīng)用程序中添加復(fù)雜的報表生成及輸出功能。

Crystal Reports引擎是一個動態(tài)鏈接庫,它可以使應(yīng)用程序訪問并具有同Crystal Reports 一樣強(qiáng)大的報表輸出功能。應(yīng)用程序是通過Crystal Reports ActiveX控件來訪問引擎。再編譯時應(yīng)用程序同報表引擎鏈接,以給應(yīng)用程序添加了生成報表的功能。

當(dāng)程序使用Crystal Reports ActiveX控件時,可以通過再設(shè)計時設(shè)置Crystal對象屬性或者再運行時改變對象屬性,來建立應(yīng)用程序和Crystal Reports之間的連接。通過Crystal控件的屬性可以指定:

響應(yīng)應(yīng)用程序某個事件的輸出報表的名字。

報表的目標(biāo)位置(預(yù)覽窗口、磁盤文件或者電子郵件等)。

想要打印的份數(shù)(如果報表提交給打印機(jī)的話)。

輸出文件的信息。

預(yù)覽窗口的大小及位置信息(如果報表在預(yù)覽窗口中顯示時)。

選擇公式信息(如果在報表中限制記錄的話)。

排序信息。

其他相關(guān)的屬性。

這里要注意一點的是,Crystal控件必須在由Crystal Reports Pro創(chuàng)建的報表中使用,而試圖在VB應(yīng)用程序里引用之前,必須首先創(chuàng)建報表。

3.3 Crystal Reports控件的使用

了解了Crystal Reports控件的功能,那么就可以使用它了。首先通過"工程"的"部件"選項里面選擇"Crystal Reports Control",那么VB的工具箱里面就添加了Crystal Reports控件了。

注意,對于Crystal Reports控件的最重要的屬性就是ReportFileName了,把它設(shè)置為前面已經(jīng)在Crystal Reports Pro里定制好的報表模板的文件路徑。那么只需要調(diào)用控件的PrintReport方法就可以將報表顯示出來了。

相對于Data Report控件來說,Crystal Reports控件的功能更加的完善,報表預(yù)覽,打印,編輯修改等功能都很完善,所以在實際的報表應(yīng)用設(shè)計方案中,使用Crystal Reports的相對較多。然而Crystal Reports控件也有它的局限性,即它不能在運行時創(chuàng)建自定義的窗口。可以使用控件的數(shù)據(jù)綁定屬性來創(chuàng)建數(shù)據(jù)綁定報表,但是報表本身的格式都是由Crystal Reports控件內(nèi)部進(jìn)行處理的。一般說來,Crystal Reports控件不提供在程序中對報表字段級的訪問。這一缺陷可以通過設(shè)計出足夠多的報表來彌補(bǔ)。

4.其他方法

除了通過上述的三種方法來實現(xiàn)報表設(shè)計以外,當(dāng)然也可以直接利用Win32 API來進(jìn)行直接進(jìn)行設(shè)計,這種方式是最為靈活也是最為繁瑣的方式,因為所有的編輯、修改、打印等功能都是由程序控制,所以一般情況下不會使用這樣的方式來處理,這里就不介紹了。

5.小結(jié)

報表設(shè)計是程序員經(jīng)常要遇到的問題,本文主要介紹目前主流的報表設(shè)計方案,由于所涉及到的知識點比較多,限于篇幅,在這里只是作了簡要的介紹,希望可以起到拋磚引玉的作用。

分享名稱:vb.net報表控件作用,報表控件的功能和窗體控件的功能
分享路徑:http://m.newbst.com/article28/phhijp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站靜態(tài)網(wǎng)站動態(tài)網(wǎng)站小程序開發(fā)網(wǎng)站導(dǎo)航網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營