vb.net報(bào)表開(kāi)發(fā)工具 vb數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)

delphi報(bào)表什么控件好用?

Grid++Report v4.5 報(bào)表開(kāi)發(fā)工具

創(chuàng)新互聯(lián)是專業(yè)的仁和網(wǎng)站建設(shè)公司,仁和接單;提供做網(wǎng)站、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行仁和網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

Grid++Report 報(bào)表組件具有如下特點(diǎn):

1、適用范圍廣:VB.NET、C#、VB、VC、Delphi、C++Builder、VFP、易語(yǔ)言等一切支持 COM 的開(kāi)發(fā)工具。

2、功能強(qiáng)大:實(shí)現(xiàn)普通格式報(bào)表、表格報(bào)表、多層表頭、票據(jù)套打、交叉表等各種報(bào)表非常簡(jiǎn)便;報(bào)表完全可編程定義,非常適合開(kāi)發(fā)通用軟件中的動(dòng)態(tài)報(bào)表。

3、獨(dú)有的報(bào)表查詢顯示功能:除了提供報(bào)表的打印、打印預(yù)覽、數(shù)據(jù)導(dǎo)出等功能,還提供獨(dú)有的報(bào)表查詢顯示功能,既提供報(bào)表查詢與輸出的集成一次性實(shí)現(xiàn),又能保證數(shù)據(jù)的一致性與完整性。

4、特有的分組單元格合并功能,輕松實(shí)現(xiàn)常見(jiàn)的中國(guó)式報(bào)表分組在列中展現(xiàn)并垂直居中。

5、提供圖表功能,在報(bào)表中直接實(shí)現(xiàn)圖表功能。包括:餅圖、疊加餅圖、柱狀圖,連線圖、散列點(diǎn)圖等。

6、報(bào)表數(shù)據(jù)導(dǎo)出格式豐富,格式包括:Excel、PDF、圖像、HTML、文本,CSV 等。

7、提供腳本編程功能,直接在報(bào)表模板中自定義報(bào)表行為,采用通用的 VBScript 與 JScript 腳本引擎。

8、支持參數(shù)化報(bào)表查詢SQL語(yǔ)句,輕松實(shí)現(xiàn)動(dòng)態(tài)過(guò)濾條件篩選報(bào)表數(shù)據(jù)。

9、報(bào)表查詢顯示時(shí)提供報(bào)表內(nèi)容文字查找功能。

10、全中文界面,針對(duì)中國(guó)報(bào)表進(jìn)行了很多專門實(shí)現(xiàn),如:報(bào)表表格線、財(cái)務(wù)金額線、大寫金額、發(fā)票打印圓圈中畫叉圖標(biāo)、負(fù)數(shù)紅字顯示、多層表頭等。很多在國(guó)外報(bào)表控件中很難實(shí)現(xiàn)的功能在本報(bào)表控件中可以輕易實(shí)現(xiàn)。

11、組件提供豐富交互事件,輕松實(shí)現(xiàn)報(bào)表穿透(透視)查詢和報(bào)表交互。

12、重新發(fā)布簡(jiǎn)單:只需分發(fā)兩個(gè) DLL 文件。

13、易學(xué)易用:完全可視化設(shè)計(jì),完善的復(fù)制/剪切/粘貼(Copy/Cut/Paste)和恢復(fù)重做(Undo/Redo)功能,專業(yè)的拖放操作與即時(shí)編輯功能。

14、編寫了完整詳盡的幫助文檔。提供了豐富例程,包括VB.NET、C#、VB、VC、Delphi、C++Builder、VFP、中文編程易語(yǔ)言。

15、為 Delphi、C++Builder 編寫專門的包裝類,象使用 VCL 控件一樣使用 Grid++Report。

16、支持所有常規(guī)條形碼,打印條形碼精度高易讀取。

不過(guò)好像是商業(yè)控件。

在Delphi盒子上有下載,

要先登錄才可以下載

fastreport在VB.NET使用

TMemoryStream *s;

try

{

s = new TMemoryStream;

frReport1-SaveToStream(s);

//以下代碼為新增報(bào)表

Query1-SQL-Clear();

Query1-SQL-Add("insert into tb_report (r_id,r_desc,r_data) Values (報(bào)表編號(hào),'報(bào)表說(shuō)明',',:r_data)");

//Query1-ParamByName("r_sql")-AsString = FSQL;

Query1-ParamByName("r_data")-LoadFromStream(s,ftBlob);

Query1-Prepare();

Query1-ExecSQL();

//以下代碼為更新報(bào)表

Query1-SQL-Clear()

Query1-SQL-Add("update tb_report set r_data=:r_data where r_id=報(bào)表編號(hào)");

Query1-ParamByName("r_data")-LoadFromStream(s,ftBlob);

Query1-Prepare();

Query1-ExecSQL();

}

__finally

{

delete s;

s = NULL;

}

----------

確實(shí)是語(yǔ)言不對(duì)啊.因?yàn)樽约涸诳茨愕膯?wèn)題的時(shí)候,也嘗試自己去做了.不過(guò)delphi用這種方法可行,其它的語(yǔ)言應(yīng)該也不會(huì)查到哪去吧~

vb.net 表格 如何做出這樣的表格 可以隨時(shí)修改的

VB是常用的應(yīng)用軟件開(kāi)發(fā)工具之一,由于VB的報(bào)表功能有限,而且一但報(bào)表格式發(fā)生變化,就得相應(yīng)修改程序,給應(yīng)用軟件的維護(hù)工作帶來(lái)極大的不便。因此有很多程序員現(xiàn)在已經(jīng)充分利用EXECL的強(qiáng)大報(bào)表功來(lái)實(shí)現(xiàn)報(bào)表功能。但由于VB與EXCEL由于分別屬于不同的應(yīng)用系統(tǒng),如何把它們有機(jī)地結(jié)合在一起,是一個(gè)值得我們研究的課題。

一、 VB讀寫EXCEL表:

VB本身提自動(dòng)化功能可以讀寫EXCEL表,其方法如下:

1、在工程中引用Microsoft Excel類型庫(kù):

從"工程"菜單中選擇"引用"欄;選擇Microsoft Excel 9.0 Object Library(EXCEL2000),然后選擇"確定"。表示在工程中要引用EXCEL類型庫(kù)。

2、在通用對(duì)象的聲明過(guò)程中定義EXCEL對(duì)象:

Dim xlApp As Excel.Application

Dim xlBook As Excel.WorkBook

Dim xlSheet As Excel.Worksheet

3、在程序中操作EXCEL表常用命令:

Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL對(duì)象

Set xlBook = xlApp.Workbooks.Open("文件名") '打開(kāi)已經(jīng)存在的EXCEL工件簿文件

xlApp.Visible = True '設(shè)置EXCEL對(duì)象可見(jiàn)(或不可見(jiàn))

Set xlSheet = xlBook.Worksheets("表名") '設(shè)置活動(dòng)工作表

xlSheet.Cells(row, col) =值 '給單元格(row,col)賦值

xlSheet.PrintOut '打印工作表

xlBook.Close (True) '關(guān)閉工作簿

xlApp.Quit '結(jié)束EXCEL對(duì)象

Set xlApp = Nothing '釋放xlApp對(duì)象

xlBook.RunAutoMacros (xlAutoOpen) '運(yùn)行EXCEL啟動(dòng)宏

xlBook.RunAutoMacros (xlAutoClose) '運(yùn)行EXCEL關(guān)閉宏

4、在運(yùn)用以上VB命令操作EXCEL表時(shí),除非設(shè)置EXCEL對(duì)象不可見(jiàn),否則VB程序可繼續(xù)執(zhí)行其它操作,也能夠關(guān)閉EXCEL,同時(shí)也可對(duì)EXCEL進(jìn)行操作。但在EXCEL操作過(guò)程中關(guān)閉EXCEL對(duì)象時(shí),VB程序無(wú)法知道,如果此時(shí)使用EXCEL對(duì)象,則VB程序會(huì)產(chǎn)生自動(dòng)化錯(cuò)誤。形成VB程序無(wú)法完全控制EXCEL的狀況,使得VB與EXCEL脫節(jié)。

二、 EXCEL的宏功能:

EXCEL提供一個(gè)Visual Basic編輯器,打開(kāi)Visual Basic編輯器,其中有一工程屬性窗口,點(diǎn)擊右鍵菜單的"插入模塊",則增加一個(gè)"模塊1",在此模塊中可以運(yùn)用Visual Basic語(yǔ)言編寫函數(shù)和過(guò)程并稱之為宏。其中,EXCEL有兩個(gè)自動(dòng)宏:一個(gè)是啟動(dòng)宏(Sub Auto_Open()),另一個(gè)是關(guān)閉宏(Sub Auto_Close())。它們的特性是:當(dāng)用EXCEL打含有啟動(dòng)宏的工簿時(shí),就會(huì)自動(dòng)運(yùn)行啟動(dòng)宏,同理,當(dāng)關(guān)閉含有關(guān)閉宏的工作簿時(shí)就會(huì)自動(dòng)運(yùn)行關(guān)閉宏。但是通過(guò)VB的自動(dòng)化功能來(lái)調(diào)用EXCEL工作表時(shí),啟動(dòng)宏和關(guān)閉宏不會(huì)自動(dòng)運(yùn)行,而需要在VB中通過(guò)命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 來(lái)運(yùn)行啟動(dòng)宏和關(guān)閉宏。

三、 VB與EXCEL的相互勾通:

充分利用EXCEL的啟動(dòng)宏和關(guān)閉宏,可以實(shí)現(xiàn)VB與EXCEL的相互勾通,其方法如下:

在EXCEL的啟動(dòng)宏中加入一段程序,其功能是在磁盤中寫入一個(gè)標(biāo)志文件,同時(shí)在關(guān)閉宏中加入一段刪除此標(biāo)志文件的程序。VB程序在執(zhí)行時(shí)通過(guò)判斷此標(biāo)志文件存在與否來(lái)判斷EXCEL是否打開(kāi),如果此標(biāo)志文件存在,表明EXCEL對(duì)象正在運(yùn)行,應(yīng)該禁止其它程序的運(yùn)行。如果此標(biāo)志文件不存在,表明EXCEL對(duì)象已被用戶關(guān)閉,此時(shí)如果要使用EXCEL對(duì)象運(yùn)行,必須重新創(chuàng)建EXCEL對(duì)象。

四、舉例:

1、在VB中,建立一個(gè)FORM,在其上放置兩個(gè)命令按鈕,將Command1的Caption屬性改為EXCEL,Command2的Caption屬性改為End。然后在其中輸入如下程序:

Dim xlApp As Excel.Application '定義EXCEL類

Dim xlBook As Excel.Workbook '定義工件簿類

Dim xlsheet As Excel.Worksheet '定義工作表類

Private Sub Command1_Click() '打開(kāi)EXCEL過(guò)程

If Dir("D:\temp\excel.bz") = "" Then '判斷EXCEL是否打開(kāi)

Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL應(yīng)用類

xlApp.Visible = True '設(shè)置EXCEL可見(jiàn)

Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls") '打開(kāi)EXCEL工作簿

Set xlsheet = xlBook.Worksheets(1) '打開(kāi)EXCEL工作表

xlsheet.Activate '激活工作表

xlsheet.Cells(1, 1) = "abc" '給單元格1行駛列賦值

xlBook.RunAutoMacros (xlAutoOpen) 運(yùn)行EXCEL中的啟動(dòng)宏

Else

MsgBox ("EXCEL已打開(kāi)")

End If

End Sub

Private Sub Command2_Click()

If Dir("D:\temp\excel.bz") "" Then '由VB關(guān)閉EXCEL

xlBook.RunAutoMacros (xlAutoClose) '執(zhí)行EXCEL關(guān)閉宏

xlBook.Close (True) '關(guān)閉EXCEL工作簿

xlApp.Quit '關(guān)閉EXCEL

End If

Set xlApp = Nothing '釋放EXCEL對(duì)象

End

End Sub

2、在D盤根目錄上建立一個(gè)名為Temp的子目錄,在Temp目錄下建立一個(gè)名為"bb.xls"的EXCEL文件。

3、在"bb.xls"中打開(kāi)Visual Basic編輯器,在工程窗口中點(diǎn)鼠標(biāo)鍵選擇插入模塊,在模塊中輸入入下程序存盤:

Sub auto_open()

Open "d:\temp\excel.bz" For Output As #1 '寫標(biāo)志文件

Close #1

End Sub

Sub auto_close()

Kill "d:\temp\excel.bz" '刪除標(biāo)志文件

End Sub

4、運(yùn)行VB程序,點(diǎn)擊EXCEL按鈕可以打開(kāi)EXCEL系統(tǒng),打開(kāi)EXCEL系統(tǒng)后,VB程序和EXCEL分別屬兩個(gè)不同的應(yīng)用系統(tǒng),均可同時(shí)進(jìn)行操作,由于系統(tǒng)加了判斷,因此在VB程序中重復(fù)點(diǎn)擊EXCEL按鈕時(shí)會(huì)提示EXCEL已打開(kāi)。如果在EXCEL中關(guān)閉EXCEL后再點(diǎn)EXCEL按鈕,則會(huì)重新打開(kāi)EXCEL。而無(wú)論EXCEL打開(kāi)與否,通過(guò)VB程序均可關(guān)閉EXCEL。這樣就實(shí)現(xiàn)了VB與EXCEL的無(wú)縫連接。

如何用VB.NET做水晶報(bào)表?

CrystalReportViewer

dataset 定義數(shù)據(jù)源

.rpt 文件描述具體報(bào)表樣式

再加一個(gè)調(diào)用報(bào)表的FORM,就可以實(shí)現(xiàn)簡(jiǎn)單的報(bào)表功能

Option Explicit

dim Report as New Cystal1

Private Sub Form_Load()

 Screen.MousePointer = vbHourglass

 '調(diào)用水晶報(bào)表時(shí)置鼠標(biāo)為沙漏狀 CRViewer91.ReportSource = Report '該語(yǔ)句的賦值將在后面被修改

 CRViewer91.ViewReport

 Screen.MousePointer = vbDefault '調(diào)用水晶報(bào)表完成后置鼠標(biāo)為默認(rèn)形狀

End Sub

Private Sub Form_Resize()

 CRViewer91.Top = 0

 CRViewer91.Left = 0

 CRViewer91.Height = ScaleHeight

 CRViewer91.Width = ScaleWidth

End Sub

用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作為首選開(kāi)發(fā)工具是正確的 軟件構(gòu)思 先在EXCEL里定制好名為《統(tǒng)計(jì)表》的樣表(模版) 在樣表中設(shè)置好各種格式 填寫好固定項(xiàng) 在窗體上放很三個(gè)控件 兩個(gè)DateTimePicker控件 用來(lái)選擇開(kā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ì)開(kāi)始日期統(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 如果是 或 開(kāi)頭的表名 因生產(chǎn)計(jì)劃表名是 或 開(kāi)頭 MsgBox(生產(chǎn)計(jì)劃表 Name)行號(hào) = 生產(chǎn)計(jì)劃表中生產(chǎn)數(shù)據(jù)從第四行開(kāi)始列號(hào) = 第 列是計(jì)劃下發(fā)日期 從計(jì)劃下發(fā)日期判斷是否是所要數(shù)據(jù)Dim 臨時(shí)行號(hào) As Integer = 求得工作表中最后一行所在的行號(hào) 從第四行開(kāi)始往下計(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)從 開(kāi)始 到工作表中最后一行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 '從第三列開(kāi)始填寫數(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

新聞名稱:vb.net報(bào)表開(kāi)發(fā)工具 vb數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)
標(biāo)題網(wǎng)址:http://muchs.cn/article22/hgegjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)網(wǎng)站設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、搜索引擎優(yōu)化

廣告

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

成都做網(wǎng)站

網(wǎng)站設(shè)計(jì)公司知識(shí)