vb.net作報(bào)表 vb net

請(qǐng)問怎么用 VB.NET 制作 淘汰制球賽 的那種報(bào)表呢?就是類似二叉樹的形狀倒過(guò)來(lái)的那種形狀!!

這個(gè)其實(shí)就是一個(gè)制作報(bào)表格式啊.然后通過(guò)函數(shù).或是程序來(lái)讀取數(shù)值```即可.8.5 10.0都可以做到

延慶網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(liá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根本沒有可比性 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ì)的集合 這些鍵和值按鍵排序并可按照鍵和索引訪問 SortedList 是 Hashtable 和 Array 的混合 當(dāng)使用 Item 索引器屬性按照元素的鍵訪問元素時(shí) 其行為類似于 Hashtable 當(dāng)使用 GetByIndex 或 SetByIndex 按照元素的索引訪問元素時(shí) 其行為類似于 Array SortedList 在內(nèi)部維護(hù)兩個(gè)數(shù)組以將數(shù)組存儲(chǔ)到列表中 即 一個(gè)數(shù)組用于鍵 另一個(gè)數(shù)組用于相關(guān)聯(lián)的值 每個(gè)元素都是一個(gè)可作為 DictionaryEntry 對(duì)象進(jì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 '如果沒有完成未完成數(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 "沒有城市名稱", 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

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ì)器中。

如何用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作報(bào)表 vb net
本文網(wǎng)址:http://muchs.cn/article0/dophpio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、做網(wǎng)站、網(wǎng)站策劃、企業(yè)網(wǎng)站制作定制網(wǎng)站、靜態(tài)網(wǎng)站

廣告

聲明:本網(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)站托管運(yùn)營(yíng)