With Me.ReportViewer1 '初始化報表
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比古城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式古城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋古城地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
.Dock = DockStyle.Fill
.LocalReport.DataSources.Clear()
.LocalReport.ReportPath = "Report1.rdlc"
.RefreshReport()
End With
報表在設計時,不一定要綁定數(shù)據(jù)源,但在窗體加載時,需要初始化報表控件,以上代碼可以放在窗體加載的Load事件里,供你參考。
Visualbasic代碼編輯器沒有這個功能,但可以用第三方的編輯軟件Emedit來實現(xiàn)這個功能。
1、用Emedit打開*.frm文件。
2、點工具,當前配置屬性,然后勾選顯示行號即可。
CrystalReportViewer
dataset 定義數(shù)據(jù)源
.rpt 文件描述具體報表樣式
再加一個調(diào)用報表的FORM,就可以實現(xiàn)簡單的報表功能
Option Explicit
dim Report as New Cystal1
Private Sub Form_Load()
Screen.MousePointer = vbHourglass
'調(diào)用水晶報表時置鼠標為沙漏狀 CRViewer91.ReportSource = Report '該語句的賦值將在后面被修改
CRViewer91.ViewReport
Screen.MousePointer = vbDefault '調(diào)用水晶報表完成后置鼠標為默認形狀
End Sub
Private Sub Form_Resize()
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth
End Sub
用EXCEL做企業(yè)生產(chǎn)報表的理由 Excel表格生成和公式設置十分強大便利 是一個強有力的信息分析與處理工具 特別是EXCEL的公式 函數(shù) VBA語言 功能極其強大 我試用過其他電子表格軟件 在功能上和EXCEL根本沒有可比性 Visual Studio NET也同樣是MicroSoft的產(chǎn)品 Visual Studio NET調(diào)用EXCEL做企業(yè)報表十分方便 證明當時我選Visual Studio NET作為首選開發(fā)工具是正確的 軟件構(gòu)思 先在EXCEL里定制好名為《統(tǒng)計表》的樣表(模版) 在樣表中設置好各種格式 填寫好固定項 在窗體上放很三個控件 兩個DateTimePicker控件 用來選擇開始統(tǒng)計時間和結(jié)束統(tǒng)計時間 一個Button以啟動程序 軟件欲實現(xiàn)的功能是 點擊Button 自動查找符合日期符合日期范圍的生產(chǎn)計劃工作表 然后利用SortedList統(tǒng)計各個辦事處的計劃數(shù)量和未完成數(shù)量 及各個產(chǎn)品型號的計劃數(shù)量和未完成數(shù)量 再把SortedList的數(shù)據(jù)讀出寫到《統(tǒng)計表》中 這里要注意的是 各個生產(chǎn)報表格式必須規(guī)范統(tǒng)一 因為程序是按照固定單元格位置讀取數(shù)據(jù)的 SortedList類 除了具備VB NET調(diào)用EXCEL的基礎知識外 本例主要用到SortedList類 SortedList類表示鍵/值對的集合 這些鍵和值按鍵排序并可按照鍵和索引訪問 SortedList 是 Hashtable 和 Array 的混合 當使用 Item 索引器屬性按照元素的鍵訪問元素時 其行為類似于 Hashtable 當使用 GetByIndex 或 SetByIndex 按照元素的索引訪問元素時 其行為類似于 Array SortedList 在內(nèi)部維護兩個數(shù)組以將數(shù)組存儲到列表中 即 一個數(shù)組用于鍵 另一個數(shù)組用于相關聯(lián)的值 每個元素都是一個可作為 DictionaryEntry 對象進行訪問的鍵/值對 鍵不能為空引用(Visual Basic 中為 Nothing) 但值可以 SortedList 的容量是列表可擁有的元素數(shù) 隨著向 SortedList 中添加元素 容量通過重新分配按需自動增加 可通過調(diào)用 TrimToSize 或通過顯式設置 Capacity 屬性減少容量 SortedList 的元素將按照特定的 IComparer 實現(xiàn)(在創(chuàng)建 SortedList 時指定)或按照鍵本身提供的 IComparable 實現(xiàn)并依據(jù)鍵來進行排序 不論在哪種情況下 SortedList 都不允許重復鍵 VB NET結(jié)合EXCEL統(tǒng)計生產(chǎn)報表 以下是實現(xiàn)代碼 供參考 為方便初學者 部份地方加以注釋 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)計()Call killEXCEL()Dim excelApp As New Excel ApplicationDim 佳尼 灶具生產(chǎn)計劃 As Excel WorkbookDim 行號 As Integer = Dim 列號 As Integer = Dim 辦事處計劃數(shù)統(tǒng)計 As New SortedListDim 辦事處完成數(shù)統(tǒng)計 As New SortedListDim 型號計劃數(shù)統(tǒng)計 As New SortedListDim 型號完成數(shù)統(tǒng)計 As New SortedListDim 統(tǒng)計表 As Excel Worksheet Try佳尼 灶具生產(chǎn)計劃 = excelApp Workbooks Open( E:\my documents\生產(chǎn)計劃\佳尼 灶具生產(chǎn)計劃 xls )統(tǒng)計表 = CType(佳尼 灶具生產(chǎn)計劃 Worksheets( 統(tǒng)計表 ) Excel Worksheet)統(tǒng)計表 Cells( ) value = DateTimePicker Value ToShortDateString 統(tǒng)計開始日期統(tǒng)計表 Cells( ) value = DateTimePicker Value ToShortDateString 統(tǒng)計結(jié)束日期統(tǒng)計表 Range( c :z ) Value = 先清空統(tǒng)計表中原來有關數(shù)據(jù)統(tǒng)計表 Range( c :z ) Value = Dim 生產(chǎn)計劃表 As Excel WorksheetFor Each 生產(chǎn)計劃表 In 佳尼 灶具生產(chǎn)計劃 Worksheets 遍歷生產(chǎn)計劃表If Strings Left(生產(chǎn)計劃表 Name ) = Or Strings Left(生產(chǎn)計劃表 Name ) = Then 如果是 或 開頭的表名 因生產(chǎn)計劃表名是 或 開頭 MsgBox(生產(chǎn)計劃表 Name)行號 = 生產(chǎn)計劃表中生產(chǎn)數(shù)據(jù)從第四行開始列號 = 第 列是計劃下發(fā)日期 從計劃下發(fā)日期判斷是否是所要數(shù)據(jù)Dim 臨時行號 As Integer = 求得工作表中最后一行所在的行號 從第四行開始往下計算While 生產(chǎn)計劃表 Cells(臨時行號 列號) value Nothing MsgBox(生產(chǎn)計劃表 Cells(行號 列號) value 行號)臨時行號 += End While臨時行號 = 得到生產(chǎn)計劃表中 最后數(shù)據(jù)行所在的行號 MsgBox(臨時行號)For 行號 = To 臨時行號 生產(chǎn)計劃標準格式行號從 開始 到工作表中最后一行If (CDate(DateTimePicker Value ToShortDateString) = CDate(生產(chǎn)計劃表.Cells(行號, 列號).value)) And (CDate(DateTimePicker2.Value.ToShortDateString) = CDate(生產(chǎn)計劃表 Cells(行號 列號) value)) Then 如果日期在規(guī)定范圍內(nèi) 灶具各城市分布情況Dim 城市 As String = 生產(chǎn)計劃表 Cells(行號 ) value 第 列是城市名稱Dim 計劃數(shù) As Decimal = CType(生產(chǎn)計劃表 Cells(行號 ) value Decimal) 第 列是計劃數(shù)Dim 完成數(shù) As Decimal = CType(生產(chǎn)計劃表 Cells(行號 ) value Decimal) 第 列是實際完成數(shù)Dim 未完成數(shù) As Decimal = 用Decimal是因為后面要加小數(shù)If 完成數(shù) 計劃數(shù) Then '如果沒有完成未完成數(shù) = 計劃數(shù) - 完成數(shù)End IfIf 城市 "" ThenIf InStr(城市, "沈陽") 0 Or InStr(城市, "鞍山") 0 Or InStr(城市, "哈爾濱") 0 Or InStr(城市, "葫蘆島") 0 ThenIf 辦事處計劃數(shù)統(tǒng)計.Contains("沈陽") Then辦事處計劃數(shù)統(tǒng)計.Item("沈陽") += 計劃數(shù)Else辦事處計劃數(shù)統(tǒng)計.Add("沈陽", 計劃數(shù))End IfIf 辦事處完成數(shù)統(tǒng)計.Contains("沈陽") Then辦事處完成數(shù)統(tǒng)計.Item("沈陽") += 未完成數(shù)Else辦事處完成數(shù)統(tǒng)計.Add("沈陽", 未完成數(shù))End IfElseIf 辦事處計劃數(shù)統(tǒng)計.Contains(城市) Then辦事處計劃數(shù)統(tǒng)計.Item(城市) += 計劃數(shù)Else辦事處計劃數(shù)統(tǒng)計.Add(城市, 計劃數(shù))End IfIf 辦事處完成數(shù)統(tǒng)計.Contains(城市) Then辦事處完成數(shù)統(tǒng)計.Item(城市) += 未完成數(shù)Else辦事處完成數(shù)統(tǒng)計.Add(城市, 未完成數(shù))End IfEnd IfElseMsgBox(生產(chǎn)計劃表.Name "沒有城市名稱", MsgBoxStyle.Critical, "生產(chǎn)計劃中要有城市名稱")excelApp.Visible = True生產(chǎn)計劃表.Activate()生產(chǎn)計劃表.Select()End If'以下計算灶具型號分布情況Dim 型號 As String = Strings.Left(生產(chǎn)計劃表.Cells(行號, 2).value, 3) '灶具型號在第3列If 型號計劃數(shù)統(tǒng)計.Contains(型號) Then型號計劃數(shù)統(tǒng)計.Item(型號) += 計劃數(shù)Else型號計劃數(shù)統(tǒng)計.Add(型號, 計劃數(shù))End IfIf 型號完成數(shù)統(tǒng)計.Contains(型號) Then型號完成數(shù)統(tǒng)計.Item(型號) += 未完成數(shù)Else型號完成數(shù)統(tǒng)計.Add(型號, 未完成數(shù))End IfEnd IfNextEnd IfNextDim 城市數(shù) As Integer = 辦事處計劃數(shù)統(tǒng)計.CountDim 城市數(shù)clone As Integer = 辦事處計劃數(shù)統(tǒng)計.Count行號 = 4'依計劃數(shù)大小排序Dim 辦事處計劃數(shù)統(tǒng)計副本 As New SortedListDim asa As Decimal = 0.001 '加上此數(shù)是為了防止鍵值的重復,在工作表中可選不顯示小數(shù)Dim 辦事處計劃數(shù)Enum As IDictionaryEnumerator = 辦事處計劃數(shù)統(tǒng)計.GetEnumeratorWhile 辦事處計劃數(shù)Enum.MoveNext辦事處計劃數(shù)統(tǒng)計副本.Add(辦事處計劃數(shù)Enum.Value + asa, 辦事處計劃數(shù)Enum.Key)asa += 0.001End While'這里利用SortedList自動排序的功能Dim i As Integer = 1For 列號 = 3 To 3 + 城市數(shù) - 1 '從第三列開始填寫數(shù)據(jù),這是預先定義的格式統(tǒng)計表.Cells(行號, 列號).value = 辦事處計劃數(shù)統(tǒng)計副本.GetByIndex(城市數(shù)clone - i) '城市統(tǒng)計表.Cells(行號 + 1, 列號).value = 辦事處計劃數(shù)統(tǒng)計副本.GetKey(城市數(shù)clone - i) '計劃數(shù)統(tǒng)計表.Cells(行號 + 2, 列號).value = 辦事處完成數(shù)統(tǒng)計.Item(辦事處計劃數(shù)統(tǒng)計副本 .GetByIndex(城市數(shù)clone - i)) '計劃數(shù)i += 1Next'以型號計劃數(shù)多少排序Dim 型號計劃數(shù)統(tǒng)計副本 As New SortedList辦事處計劃數(shù)Enum = 型號計劃數(shù)統(tǒng)計.GetEnumeratorWhile 辦事處計劃數(shù)Enum.MoveNext型號計劃數(shù)統(tǒng)計副本.Add(辦事處計劃數(shù)Enum.Value + asa, 辦事處計劃數(shù)Enum.Key)asa += 0.001' MsgBox(辦事處計劃數(shù)Enum.Valu lishixinzhi/Article/program/net/201311/11282
新聞名稱:vb.net自帶報表 vb 報表
轉(zhuǎn)載來于:http://jinyejixie.com/article40/dopeoeo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、做網(wǎng)站、標簽優(yōu)化、域名注冊、網(wǎng)站建設、網(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)