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

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

vb點(diǎn)虐 做報表 vb 報表

VB點(diǎn)虐 中如何制作水晶報表?

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

創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為昔陽企業(yè)提供專業(yè)的網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),昔陽網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

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

準(zhǔn)備工作

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

在表Sales 中添加若干條記錄

設(shè)計報表

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

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

把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

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

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

用EXCEL做企業(yè)生產(chǎn)報表的理由 Excel表格生成和公式設(shè)置十分強(qiáng)大便利 是一個強(qiáng)有力的信息分析與處理工具 特別是EXCEL的公式 函數(shù) VBA語言 功能極其強(qiáng)大 我試用過其他電子表格軟件 在功能上和EXCEL根本沒有可比性 Visual Studio NET也同樣是MicroSoft的產(chǎn)品 Visual Studio NET調(diào)用EXCEL做企業(yè)報表十分方便 證明當(dāng)時我選Visual Studio NET作為首選開發(fā)工具是正確的 軟件構(gòu)思 先在EXCEL里定制好名為《統(tǒng)計表》的樣表(模版) 在樣表中設(shè)置好各種格式 填寫好固定項(xiàng) 在窗體上放很三個控件 兩個DateTimePicker控件 用來選擇開始統(tǒng)計時間和結(jié)束統(tǒng)計時間 一個Button以啟動程序 軟件欲實(shí)現(xiàn)的功能是 點(diǎn)擊Button 自動查找符合日期符合日期范圍的生產(chǎn)計劃工作表 然后利用SortedList統(tǒng)計各個辦事處的計劃數(shù)量和未完成數(shù)量 及各個產(chǎn)品型號的計劃數(shù)量和未完成數(shù)量 再把SortedList的數(shù)據(jù)讀出寫到《統(tǒng)計表》中 這里要注意的是 各個生產(chǎn)報表格式必須規(guī)范統(tǒng)一 因?yàn)槌绦蚴前凑展潭▎卧裎恢米x取數(shù)據(jù)的 SortedList類 除了具備VB NET調(diào)用EXCEL的基礎(chǔ)知識外 本例主要用到SortedList類 SortedList類表示鍵/值對的集合 這些鍵和值按鍵排序并可按照鍵和索引訪問 SortedList 是 Hashtable 和 Array 的混合 當(dāng)使用 Item 索引器屬性按照元素的鍵訪問元素時 其行為類似于 Hashtable 當(dāng)使用 GetByIndex 或 SetByIndex 按照元素的索引訪問元素時 其行為類似于 Array SortedList 在內(nèi)部維護(hù)兩個數(shù)組以將數(shù)組存儲到列表中 即 一個數(shù)組用于鍵 另一個數(shù)組用于相關(guān)聯(lián)的值 每個元素都是一個可作為 DictionaryEntry 對象進(jìn)行訪問的鍵/值對 鍵不能為空引用(Visual Basic 中為 Nothing) 但值可以 SortedList 的容量是列表可擁有的元素數(shù) 隨著向 SortedList 中添加元素 容量通過重新分配按需自動增加 可通過調(diào)用 TrimToSize 或通過顯式設(shè)置 Capacity 屬性減少容量 SortedList 的元素將按照特定的 IComparer 實(shí)現(xiàn)(在創(chuàng)建 SortedList 時指定)或按照鍵本身提供的 IComparable 實(shí)現(xiàn)并依據(jù)鍵來進(jìn)行排序 不論在哪種情況下 SortedList 都不允許重復(fù)鍵 VB NET結(jié)合EXCEL統(tǒng)計生產(chǎn)報表 以下是實(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)計()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)計表中原來有關(guān)數(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)計劃標(biāo)準(zhǔ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í)際完成數(shù)Dim 未完成數(shù) As Decimal = 用Decimal是因?yàn)楹竺嬉有?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ù)是為了防止鍵值的重復(fù),在工作表中可選不顯示小數(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ù),這是預(yù)先定義的格式統(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做水晶報表?

CrystalReportViewer

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

.rpt 文件描述具體報表樣式

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

Option Explicit

dim Report as New Cystal1

Private Sub Form_Load()

 Screen.MousePointer = vbHourglass

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

 CRViewer91.ViewReport

 Screen.MousePointer = vbDefault '調(dià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


分享標(biāo)題:vb點(diǎn)虐 做報表 vb 報表
文章分享:http://weahome.cn/article/ddsodgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部