真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net報(bào)表設(shè)計(jì)器 web報(bào)表設(shè)計(jì)器實(shí)現(xiàn)

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

Visual Basic通用報(bào)表設(shè)計(jì)小結(jié)

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)潛山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過(guò)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

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

1. Data Report控件

1.1 Data Report控件使用方法

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

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

1.2 Data Report控件界面元素

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

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

1.3 Data Report控件的打印功能

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

2.MS Excel

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

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

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

Application---------用來(lái)指代整個(gè)應(yīng)用程序。

WorkBook----------表示工作簿對(duì)象

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

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

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

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

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

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(水晶報(bào)表)

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

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

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

3.1 Crystal Reports插件程序的使用

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

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

3.2 Crystal Reports控件的背景知識(shí)

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

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

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

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

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

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

輸出文件的信息。

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

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

排序信息。

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

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

3.3 Crystal Reports控件的使用

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

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

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

4.其他方法

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

5.小結(jié)

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

用VB.NET結(jié)合Excel設(shè)計(jì)統(tǒng)計(jì)生產(chǎn)報(bào)表

用EXCEL做企業(yè)生產(chǎn)報(bào)表的理由 Excel表格生成和公式設(shè)置十分強(qiáng)大便利 是一個(gè)強(qiáng)有力的信息分析與處理工具 特別是EXCEL的公式 函數(shù) VBA語(yǔ)言 功能極其強(qiáng)大 我試用過(guò)其他電子表格軟件 在功能上和EXCEL根本沒(méi)有可比性 Visual Studio NET也同樣是MicroSoft的產(chǎn)品 Visual Studio NET調(diào)用EXCEL做企業(yè)報(bào)表十分方便 證明當(dāng)時(shí)我選Visual Studio NET作為首選開發(fā)工具是正確的 軟件構(gòu)思 先在EXCEL里定制好名為《統(tǒng)計(jì)表》的樣表(模版) 在樣表中設(shè)置好各種格式 填寫好固定項(xiàng) 在窗體上放很三個(gè)控件 兩個(gè)DateTimePicker控件 用來(lái)選擇開始統(tǒng)計(jì)時(shí)間和結(jié)束統(tǒng)計(jì)時(shí)間 一個(gè)Button以啟動(dòng)程序 軟件欲實(shí)現(xiàn)的功能是 點(diǎn)擊Button 自動(dòng)查找符合日期符合日期范圍的生產(chǎn)計(jì)劃工作表 然后利用SortedList統(tǒng)計(jì)各個(gè)辦事處的計(jì)劃數(shù)量和未完成數(shù)量 及各個(gè)產(chǎn)品型號(hào)的計(jì)劃數(shù)量和未完成數(shù)量 再把SortedList的數(shù)據(jù)讀出寫到《統(tǒng)計(jì)表》中 這里要注意的是 各個(gè)生產(chǎn)報(bào)表格式必須規(guī)范統(tǒng)一 因?yàn)槌绦蚴前凑展潭▎卧裎恢米x取數(shù)據(jù)的 SortedList類 除了具備VB NET調(diào)用EXCEL的基礎(chǔ)知識(shí)外 本例主要用到SortedList類 SortedList類表示鍵/值對(duì)的集合 這些鍵和值按鍵排序并可按照鍵和索引訪問(wèn) SortedList 是 Hashtable 和 Array 的混合 當(dāng)使用 Item 索引器屬性按照元素的鍵訪問(wèn)元素時(shí) 其行為類似于 Hashtable 當(dāng)使用 GetByIndex 或 SetByIndex 按照元素的索引訪問(wèn)元素時(shí) 其行為類似于 Array SortedList 在內(nèi)部維護(hù)兩個(gè)數(shù)組以將數(shù)組存儲(chǔ)到列表中 即 一個(gè)數(shù)組用于鍵 另一個(gè)數(shù)組用于相關(guān)聯(lián)的值 每個(gè)元素都是一個(gè)可作為 DictionaryEntry 對(duì)象進(jìn)行訪問(wèn)的鍵/值對(duì) 鍵不能為空引用(Visual Basic 中為 Nothing) 但值可以 SortedList 的容量是列表可擁有的元素?cái)?shù) 隨著向 SortedList 中添加元素 容量通過(guò)重新分配按需自動(dòng)增加 可通過(guò)調(diào)用 TrimToSize 或通過(guò)顯式設(shè)置 Capacity 屬性減少容量 SortedList 的元素將按照特定的 IComparer 實(shí)現(xiàn)(在創(chuàng)建 SortedList 時(shí)指定)或按照鍵本身提供的 IComparable 實(shí)現(xiàn)并依據(jù)鍵來(lái)進(jìn)行排序 不論在哪種情況下 SortedList 都不允許重復(fù)鍵 VB NET結(jié)合EXCEL統(tǒng)計(jì)生產(chǎn)報(bào)表 以下是實(shí)現(xiàn)代碼 供參考 為方便初學(xué)者 部份地方加以注釋 Private Sub Form _Load(ByVal sender As Object ByVal e As System EventArgs) Handles MyBase LoadDateTimePicker MaxDate = Date NowDateTimePicker MinDate = # / / #DateTimePicker MaxDate = Date NowDateTimePicker MinDate = # / / #End SubPrivate Sub 灶具分析統(tǒng)計(jì)()Call killEXCEL()Dim excelApp As New Excel ApplicationDim 佳尼 灶具生產(chǎn)計(jì)劃 As Excel WorkbookDim 行號(hào) As Integer = Dim 列號(hào) As Integer = Dim 辦事處計(jì)劃數(shù)統(tǒng)計(jì) As New SortedListDim 辦事處完成數(shù)統(tǒng)計(jì) As New SortedListDim 型號(hào)計(jì)劃數(shù)統(tǒng)計(jì) As New SortedListDim 型號(hào)完成數(shù)統(tǒng)計(jì) As New SortedListDim 統(tǒng)計(jì)表 As Excel Worksheet Try佳尼 灶具生產(chǎn)計(jì)劃 = excelApp Workbooks Open( E:\my documents\生產(chǎn)計(jì)劃\佳尼 灶具生產(chǎn)計(jì)劃 xls )統(tǒng)計(jì)表 = CType(佳尼 灶具生產(chǎn)計(jì)劃 Worksheets( 統(tǒng)計(jì)表 ) Excel Worksheet)統(tǒng)計(jì)表 Cells( ) value = DateTimePicker Value ToShortDateString 統(tǒng)計(jì)開始日期統(tǒng)計(jì)表 Cells( ) value = DateTimePicker Value ToShortDateString 統(tǒng)計(jì)結(jié)束日期統(tǒng)計(jì)表 Range( c :z ) Value = 先清空統(tǒng)計(jì)表中原來(lái)有關(guān)數(shù)據(jù)統(tǒng)計(jì)表 Range( c :z ) Value = Dim 生產(chǎn)計(jì)劃表 As Excel WorksheetFor Each 生產(chǎn)計(jì)劃表 In 佳尼 灶具生產(chǎn)計(jì)劃 Worksheets 遍歷生產(chǎn)計(jì)劃表If Strings Left(生產(chǎn)計(jì)劃表 Name ) = Or Strings Left(生產(chǎn)計(jì)劃表 Name ) = Then 如果是 或 開頭的表名 因生產(chǎn)計(jì)劃表名是 或 開頭 MsgBox(生產(chǎn)計(jì)劃表 Name)行號(hào) = 生產(chǎn)計(jì)劃表中生產(chǎn)數(shù)據(jù)從第四行開始列號(hào) = 第 列是計(jì)劃下發(fā)日期 從計(jì)劃下發(fā)日期判斷是否是所要數(shù)據(jù)Dim 臨時(shí)行號(hào) As Integer = 求得工作表中最后一行所在的行號(hào) 從第四行開始往下計(jì)算While 生產(chǎn)計(jì)劃表 Cells(臨時(shí)行號(hào) 列號(hào)) value Nothing MsgBox(生產(chǎn)計(jì)劃表 Cells(行號(hào) 列號(hào)) value 行號(hào))臨時(shí)行號(hào) += End While臨時(shí)行號(hào) = 得到生產(chǎn)計(jì)劃表中 最后數(shù)據(jù)行所在的行號(hào) MsgBox(臨時(shí)行號(hào))For 行號(hào) = To 臨時(shí)行號(hào) 生產(chǎn)計(jì)劃標(biāo)準(zhǔn)格式行號(hào)從 開始 到工作表中最后一行If (CDate(DateTimePicker Value ToShortDateString) = CDate(生產(chǎn)計(jì)劃表.Cells(行號(hào), 列號(hào)).value)) And (CDate(DateTimePicker2.Value.ToShortDateString) = CDate(生產(chǎn)計(jì)劃表 Cells(行號(hào) 列號(hào)) value)) Then 如果日期在規(guī)定范圍內(nèi) 灶具各城市分布情況Dim 城市 As String = 生產(chǎn)計(jì)劃表 Cells(行號(hào) ) value 第 列是城市名稱Dim 計(jì)劃數(shù) As Decimal = CType(生產(chǎn)計(jì)劃表 Cells(行號(hào) ) value Decimal) 第 列是計(jì)劃數(shù)Dim 完成數(shù) As Decimal = CType(生產(chǎn)計(jì)劃表 Cells(行號(hào) ) value Decimal) 第 列是實(shí)際完成數(shù)Dim 未完成數(shù) As Decimal = 用Decimal是因?yàn)楹竺嬉有?shù)If 完成數(shù) 計(jì)劃數(shù) Then '如果沒(méi)有完成未完成數(shù) = 計(jì)劃數(shù) - 完成數(shù)End IfIf 城市 "" ThenIf InStr(城市, "沈陽(yáng)") 0 Or InStr(城市, "鞍山") 0 Or InStr(城市, "哈爾濱")   0 Or InStr(城市, "葫蘆島") 0 ThenIf 辦事處計(jì)劃數(shù)統(tǒng)計(jì).Contains("沈陽(yáng)") Then辦事處計(jì)劃數(shù)統(tǒng)計(jì).Item("沈陽(yáng)") += 計(jì)劃數(shù)Else辦事處計(jì)劃數(shù)統(tǒng)計(jì).Add("沈陽(yáng)", 計(jì)劃數(shù))End IfIf 辦事處完成數(shù)統(tǒng)計(jì).Contains("沈陽(yáng)") Then辦事處完成數(shù)統(tǒng)計(jì).Item("沈陽(yáng)") += 未完成數(shù)Else辦事處完成數(shù)統(tǒng)計(jì).Add("沈陽(yáng)", 未完成數(shù))End IfElseIf 辦事處計(jì)劃數(shù)統(tǒng)計(jì).Contains(城市) Then辦事處計(jì)劃數(shù)統(tǒng)計(jì).Item(城市) += 計(jì)劃數(shù)Else辦事處計(jì)劃數(shù)統(tǒng)計(jì).Add(城市, 計(jì)劃數(shù))End IfIf 辦事處完成數(shù)統(tǒng)計(jì).Contains(城市) Then辦事處完成數(shù)統(tǒng)計(jì).Item(城市) += 未完成數(shù)Else辦事處完成數(shù)統(tǒng)計(jì).Add(城市, 未完成數(shù))End IfEnd IfElseMsgBox(生產(chǎn)計(jì)劃表.Name "沒(méi)有城市名稱", MsgBoxStyle.Critical, "生產(chǎn)計(jì)劃中要有城市名稱")excelApp.Visible = True生產(chǎn)計(jì)劃表.Activate()生產(chǎn)計(jì)劃表.Select()End If'以下計(jì)算灶具型號(hào)分布情況Dim 型號(hào) As String = Strings.Left(生產(chǎn)計(jì)劃表.Cells(行號(hào), 2).value, 3) '灶具型號(hào)在第3列If 型號(hào)計(jì)劃數(shù)統(tǒng)計(jì).Contains(型號(hào)) Then型號(hào)計(jì)劃數(shù)統(tǒng)計(jì).Item(型號(hào)) += 計(jì)劃數(shù)Else型號(hào)計(jì)劃數(shù)統(tǒng)計(jì).Add(型號(hào), 計(jì)劃數(shù))End IfIf 型號(hào)完成數(shù)統(tǒng)計(jì).Contains(型號(hào)) Then型號(hào)完成數(shù)統(tǒng)計(jì).Item(型號(hào)) += 未完成數(shù)Else型號(hào)完成數(shù)統(tǒng)計(jì).Add(型號(hào), 未完成數(shù))End IfEnd IfNextEnd IfNextDim 城市數(shù) As Integer = 辦事處計(jì)劃數(shù)統(tǒng)計(jì).CountDim 城市數(shù)clone As Integer = 辦事處計(jì)劃數(shù)統(tǒng)計(jì).Count行號(hào) = 4'依計(jì)劃數(shù)大小排序Dim 辦事處計(jì)劃數(shù)統(tǒng)計(jì)副本 As New SortedListDim asa As Decimal = 0.001 '加上此數(shù)是為了防止鍵值的重復(fù),在工作表中可選不顯示小數(shù)Dim 辦事處計(jì)劃數(shù)Enum As IDictionaryEnumerator = 辦事處計(jì)劃數(shù)統(tǒng)計(jì).GetEnumeratorWhile 辦事處計(jì)劃數(shù)Enum.MoveNext辦事處計(jì)劃數(shù)統(tǒng)計(jì)副本.Add(辦事處計(jì)劃數(shù)Enum.Value + asa, 辦事處計(jì)劃數(shù)Enum.Key)asa += 0.001End While'這里利用SortedList自動(dòng)排序的功能Dim i As Integer = 1For 列號(hào) = 3 To 3 + 城市數(shù) - 1 '從第三列開始填寫數(shù)據(jù),這是預(yù)先定義的格式統(tǒng)計(jì)表.Cells(行號(hào), 列號(hào)).value = 辦事處計(jì)劃數(shù)統(tǒng)計(jì)副本.GetByIndex(城市數(shù)clone - i) '城市統(tǒng)計(jì)表.Cells(行號(hào) + 1, 列號(hào)).value = 辦事處計(jì)劃數(shù)統(tǒng)計(jì)副本.GetKey(城市數(shù)clone - i) '計(jì)劃數(shù)統(tǒng)計(jì)表.Cells(行號(hào) + 2, 列號(hào)).value = 辦事處完成數(shù)統(tǒng)計(jì).Item(辦事處計(jì)劃數(shù)統(tǒng)計(jì)副本 .GetByIndex(城市數(shù)clone - i)) '計(jì)劃數(shù)i += 1Next'以型號(hào)計(jì)劃數(shù)多少排序Dim 型號(hào)計(jì)劃數(shù)統(tǒng)計(jì)副本 As New SortedList辦事處計(jì)劃數(shù)Enum = 型號(hào)計(jì)劃數(shù)統(tǒng)計(jì).GetEnumeratorWhile 辦事處計(jì)劃數(shù)Enum.MoveNext型號(hào)計(jì)劃數(shù)統(tǒng)計(jì)副本.Add(辦事處計(jì)劃數(shù)Enum.Value + asa, 辦事處計(jì)劃數(shù)Enum.Key)asa += 0.001' MsgBox(辦事處計(jì)劃數(shù)Enum.Valu lishixinzhi/Article/program/net/201311/11282

開發(fā)報(bào)表大家會(huì)選擇使用那一款開發(fā)了?在C#中

ActiveReport ActiveReport 是.net下的一個(gè)出色的報(bào)表開發(fā)程序,雖然和水晶報(bào)表相比,名氣不那么大,甚至有很多人不知道它的存在,但是并不妨礙它在.net報(bào)表開發(fā)中的出色表現(xiàn). 一. ActiveReports for .net的主要功能介紹 支持ASP.NET-ActiveReports在WebForms應(yīng)用程序中通過(guò)使用ASP.NET 服務(wù)器控件來(lái)使用。這個(gè)控件支持分布式web報(bào)表,可使用HTML,ActiveX,.NET 和PDF瀏覽器。完全代碼集成-使用Microsoft Visual Studio.NET編輯器用C#或VB.NET編寫報(bào)表的代碼,非常靈活。報(bào)表向?qū)?報(bào)表向?qū)椭_始創(chuàng)建使用集成設(shè)計(jì)器來(lái)定制的簡(jiǎn)單報(bào)表。設(shè)計(jì)器-對(duì)象模版完全顯現(xiàn)的對(duì)象模版。允許您動(dòng)態(tài)的建立和修改報(bào)表Report Creation API提供了完整的運(yùn)行時(shí)訪問(wèn)報(bào)表對(duì)象和成員功能。最終用戶報(bào)表設(shè)計(jì)器終端用戶設(shè)計(jì)器為您提供了向您應(yīng)用程序中加入設(shè)計(jì)器的功能,同時(shí)提供了終端用戶報(bào)表編輯功能??丶姆椒ê蛯傩阅芊奖愕拇鎯?chǔ)和加載報(bào)表布局,監(jiān)測(cè)和控制設(shè)計(jì)環(huán)境,并可根據(jù)終端用戶的需要定制外觀。與ASP.NET集成Web瀏覽器控件為您提供了web上的快速瀏覽ActiveReports 以及打印功能,并具有ActiveX瀏覽器和Acrobat Reader 瀏覽器類型的屬性。RPX 文件HTTP處理器為您提供了在web服務(wù)器上輕松的放置報(bào)表的功能,并可使您的Internet用戶采用HTML 或PDF進(jìn)行瀏覽,而不需要編寫任何代碼。編譯的報(bào)表HTTP處理器提供了直接訪問(wèn)服務(wù)器的程序集中編譯的ActiveReports,而不需要編寫任何ASPX頁(yè)面。發(fā)布-容易部署報(bào)表引擎是一個(gè)簡(jiǎn)單處理強(qiáng)名稱程序集。程序集可以使用XCopy發(fā)布或放置于程序集全局存儲(chǔ)器中(GAC)。專業(yè)版包括HTTP 處理器和服務(wù)器并行web控件,用于ASP.NET 報(bào)表。設(shè)計(jì)器-容易學(xué)習(xí)與.NET 環(huán)境完全集成熟悉的用戶界面支持C#和Visual Basic.NET報(bào)表將作為您應(yīng)用程序中的一部分進(jìn)行編譯,以加快處理速度,增強(qiáng)安全性,并且用戶可以有選擇的分別發(fā)布。初學(xué)者報(bào)表向?qū)Ш蚆icrosoft Access 報(bào)表導(dǎo)入向?qū)гO(shè)計(jì)器擁有第三方控件(圖表控件,圖像控件等)。數(shù)據(jù)訪問(wèn)-容易連接包括OLEDB和SqlClient報(bào)表數(shù)據(jù)源包括靈活的xml數(shù)據(jù)源綁定到Dataset,DataView,DataTable和任何IListSource 控件數(shù)據(jù)源屬性能在運(yùn)行時(shí)修改,生成ad hoc(動(dòng)態(tài))報(bào)表靈活的非綁定數(shù)據(jù)預(yù)覽和輸出-容易顯示支持C#代碼小型部署程序集,適用于Internet 上使用TOC/Bookmarks超鏈接輸出過(guò)濾文件格式為RTF、PDF、EXCEL、HTML、TIFF 和文本文件。官方網(wǎng)站: 二.注冊(cè) 下面代碼放置在***.exe.config或者Web.config里面: appSettings addkey="DataDynamicsARLic" value="DD-APN-10-C001733,DD-APN-10-C001733,DD-APN-10-C001733,XY6Y7KQBTY12323KJCKJ" / /appSettings 每個(gè)方案旋轉(zhuǎn)文件licenses.licx后,重新生成: DataDynamics.ActiveReports.ActiveReport, ActiveReports, Version=1.2.2003.630, Culture=neutral, PublicKeyToken=dbe4120289f9fd8a 右邊紅線出現(xiàn),是因?yàn)閳?bào)表超出長(zhǎng)度限定,如果那樣打印的話,會(huì)多帶出一張空白紙。 1 Left margin + right margin + printwidth must be less than the paper width 2 While right.margin 1.0 then it will appear 三.使用指南此控件目前的文檔很少,參見參考資料,只能自己看SAMPLES或者下載E文文檔 漢化ActiveReports 2.0界面 Public Sub Creport(AReport As ActiveReport) '漢化ActiveReport '以下適用2.0 With AReport .ToolBar.Tools.Item(0).Tooltip = "各頁(yè)目錄" .ToolBar.Tools.Item(2).Caption = "打印..." .ToolBar.Tools.Item(2).Tooltip = "打印報(bào)表" .ToolBar.Tools.Item(4).Tooltip = "拷貝" .ToolBar.Tools.Item(6).Tooltip = "查找" .ToolBar.Tools.Item(8).Tooltip = "單頁(yè)顯示" .ToolBar.Tools.Item(9).Tooltip = "多頁(yè)顯示" .ToolBar.Tools.Item(11).Tooltip = "縮小" .ToolBar.Tools.Item(12).Tooltip = "放大" .ToolBar.Tools.Item(15).Tooltip = "" .ToolBar.Tools.Item(16).Tooltip = "" .ToolBar.Tools.Item(19).Tooltip = "后退" .ToolBar.Tools.Item(19).Caption = "后退" .ToolBar.Tools.Item(20).Tooltip = "前進(jìn)" .ToolBar.Tools.Item(20).Caption = "前進(jìn)" End With End Sub 四.如何發(fā)布 ActiveReports for .NET 程序集 有兩種部署 ActiveReports 程序集的方法。每種方法根據(jù)您的安裝方法而定。 如果您正將工程從開發(fā)計(jì)算機(jī)拷貝到您的服務(wù)器上,您需要將工程引用中的 ActiveReports 引用設(shè)置為 CopyLocal = True。這樣 ActiveReports DLL 將在編譯工程中的 bin 文件夾中。 如果您正為您的軟件制作安裝程序,您需要包含 ActiiveReportsDistrib.MSM 文件,該文件將包含在 ActiveReports for .NET 的安裝中。例如,該文件可能被安裝在C:\Program Files\Data Dynamics\ActiveReports for .NET\Deployment 文件夾中。

VB.net中如何制作水晶報(bào)表?

這個(gè)專業(yè)我也學(xué)得不是很好,用書上得例子吧。

某公司盡力需要了解公司在全國(guó)各地得銷售情況,設(shè)計(jì)一個(gè)水晶報(bào)表。統(tǒng)計(jì)個(gè)地區(qū)得銷售總額和全國(guó)總額

準(zhǔn)備工作

用 SQL server 2000 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)company 在該數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)表Sales.用于儲(chǔ)存區(qū)域銷售數(shù)據(jù)

在表Sales 中添加若干條記錄

設(shè)計(jì)報(bào)表

打開 Visual Studio.NET創(chuàng)建名為 Salesreport得 WINDOWS應(yīng)用程序 將Form1.cs 名更改為 frmSalesReport.cs

frmSalesReport窗體得屬性設(shè)置里。 吧 frmSalesReport.cs得Text屬性更改為"區(qū)域銷售報(bào)表"

把NAME屬性更改為frmSalesReport。

在 VisualStudio.NET 菜單中選擇 項(xiàng)目添加新項(xiàng)。在"添加新項(xiàng)"窗口得“類別”區(qū)域擴(kuò)展 “本地項(xiàng)目項(xiàng)”,選擇數(shù)據(jù),在"模板"區(qū)域選擇"數(shù)據(jù)集" 在"名稱"那將Dataset1.xsd改名 SalesDetaset.xsd

單擊"打開" 將生成一個(gè)新得結(jié)構(gòu)文件 SalesDataset.xsd 該文件將顯示在 ADO.NET數(shù)據(jù)集設(shè)計(jì)器中。


當(dāng)前標(biāo)題:vb.net報(bào)表設(shè)計(jì)器 web報(bào)表設(shè)計(jì)器實(shí)現(xiàn)
URL分享:http://weahome.cn/article/doghjps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部