CH10.

Slides:



Advertisements
Similar presentations
計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
Advertisements

南台科技大學 機械工程系 班級 : 車輛三甲 學號 : 學生 : 黃郁鈞.  BMI 值的計算就是 :  體重 / 身高 x 身高  身高需換算成公尺單位計算.
視窗應用程式表單的基本輸出入 資管系 助理教授 詹曉苓.
題目:徽章之記憶 南台科技大學 機械系 車輛一乙 學號:4A 姓名:黃冠嘉 教師:謝慶存
計算機程式及實習 期末報告 題目:超級猜一猜
計算機程式及實習 期末報告 題目:商店結帳系統
第21章 .NET报表设计 (时间:1.5次课,3学时).
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
Access数据库知识 安丘市职业中专 雷云龙.
Visual Basic 2005學習範本 第5章 選擇結構.
課程名稱:程式設計 授課老師:________
CH09.
五-4 台灣的生活禮俗 組員:603 15號 黃醴萬 6號 吳家熙 5號 楊証傑 11號 李偉新.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
第七章、RFID WinCE系統開發 本章針對RFID系統中的行動裝置架構開發方式進行介紹,這裡所指的行動裝置指的是使用Windows Mobile作業系統的個人數位助理PDA或是手機而言,本章內之範例可以在此平台上運作無虞。主要說明使用VS.NET 2008平台開發與RFID結合的Windows.
CH11.
課程名稱:程式設計 授課老師:________
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式
第2章 建立Visual Basic應用程式.
課程名稱:資料庫系統 授課老師:李春雄 博士
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
第15章 数据报表与数据图表.
程式語言 -Visual Basic 變數、常數與資料型態.
第一章 Visual Studio、SQL Server介紹與開發環境
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
Google Data API Spreadsheet
Visual Basic程序设计 第八章 过程 -子程序和函数
第8章 数据的排序、搜 索和过滤.
初识Visual Basic.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
WEB伺服器控制項.
Timer & Format.
第10章 視窗應用程式的工具列與功能表.
機器人-Robot Nobody 機器人.
視窗程式設計簡介-VB、Visual Studio
程式語言Visual Basic 傳址與傳值
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
暴力、草莽、土野、情色、權慾 —華西街的成人童話
Visual Basic.NET 程序设计语言课程内容
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
菜单、状态栏和工具栏 菜单 状态栏 工具栏 编写代码 创建用户界面 Debug and Deploy 使用 Visual
FileUpload控制項 建國科技大學 資管系 饒瑞佶 2007年.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
第1章 Visual Basic 简介 郭清溥.
VB语言程序设计教程.
刑事訴訟法 不受理.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
計算機概論與實習期末報告 老師:謝慶存 4a415057賴震製作.
題目:這個我一定告飲料店 計算機程式及實習 期末報告ppt製作 南台科技大學 機械工程系 車輛一甲 學號:4A 姓名:林子健
程序基础 2019/4/25.
第 11 章 功能表列與工具列的設計 & 第 10 章 檔案.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作
DEV342 Visual Basic 2005: 应用程序框架 和高级语言特性
Print方法和函数 2019/5/19.
再戰DataSet.
Presentation transcript:

CH10

報表設計

報表設計 使用報表功能 過去微軟提出了相當多的報表建置工具,從VB6.0時代,微軟也持續的與Crystal Report廠商合作,在Visual Studio系列產品當中提供了Crystal Report報表建置的功能。除此之外,SQL Server的Reporting Services,也讓程式設計師有著更簡易的報表製作功能。 有別於這些選擇,Visual Studio 2005提供了新版的報表功能,透過『用戶端報表定義檔案(.rdlc)』,讓開發人員可以輕鬆的在不需要外掛其他功能或是購買使用授權的狀況底下,即可開發出具有報表功能的應用程式。 與Crystal Report相同,這個功能並不包含在Visual Basic Express版本當中,您必須具有Visual Studio 2005正式版本才可享用此功能。

報表設計 報表機制的使用架構

報表設計 在專案中加入報表

報表設計 在專案中加入報表 會在專案當中看到一個副檔名為.rdlc的報表定義檔案:

報表設計 加入資料來源 報表的資料來源多半是資料庫,因此我們得先設定這個報表的資料來源:

報表設計 加入資料來源

報表設計 加入資料來源 Visual Studio 2005會自動找到專案中可用的資料來源,並且提供我們選擇:

報表設計 加入資料來源 接著出現底下畫面,您可以在底下畫面中選擇資料來源cNorthWind.Mdf當中所有可用的資料表(Table)或是檢視表(View) 展開『資料表』之後,選擇『供應商』。

報表設計 加入資料來源 完成之後,Visual Studio 2005為我們在專案中建立了一個.xsd檔案: 『資料來源』處出現了供應商

報表設計 開始設計報表 請在方案總管當中切換到Report1.rdlc檔案,並且開啟『工具箱』視窗: 『工具箱』中的控制項變成報表定義檔可以使用的項目。

報表設計 開始設計報表 請在方案總管當中切換到Report1.rdlc檔案,並且開啟『工具箱』視窗: 您可以拖曳一個TextBox 到頁面上,請注意,這個TextBox與一般我們在表單當中使用的TextBox完全不同,請勿混淆。該TextBox的屬性也與表單TtextBox不同。

報表設計 開始設計報表 透過屬性視窗,修改這個TextBox的文字格式與大小,並且填入文字:

報表設計 開始設計報表 接著,我們要在報表加入『資料欄位』,以呈現出資料庫中的結果。請先從工具箱中拖曳一個Table控制項:

報表設計 開始設計報表 Table當中有三個Row,第一個是呈現出頁首部分,第二個則是細目資料,第三各則是報表頁尾。一般的報表都會有這三個部分,其中細目資料的部分,會一直重複顯示,顯示的次數依照資料庫中紀錄的數量而定。 報表頁首 報表細目資料 報表頁尾

報表設計 開始設計報表 我們將左方的『工具箱』切換成『資料來源』,並且直接拖曳『供應商編號』到第一個欄位: 請注意要拖曳到細目部份。

報表設計 開始設計報表 您可以視需要新增Table中的欄位,方法很簡單,只需要點選Column處,按下滑鼠右鍵即可:

報表設計 開始設計報表 可以透過屬性視窗修改報表中的欄位格式:

報表設計 開始設計報表 請點選Table頁首部分的最左方標示,並將屬性視窗中的RepeatOnNewPage設為True:

報表設計 如何在表單中顯示報表 要在表單中顯示剛才設計好的報表,請先切換回到表單的部份,從工具箱中拖曳ReportViewer控制項到表單上: 從工具箱中拖曳ReportViewer控制項到表單上 透過SmartTag設定該控制項的顯示報表為剛才我們建立好的Report1

報表設計 如何在表單中顯示報表 完成之後,您可以直接建置專案並且執行,您會發現一個有模有樣的報表已然完成:

報表設計 以參數動態填入文字欄位 切換回報表設計畫面,在『報表定義檔案』的設計模式下,點選功能表中的『報表報表參數』,會出現底下的視窗,您可以按下加入鈕,會出現一個新的參數(預設名稱為Report_Parameter_0) : 您可以修改參數的名稱與型別。 請按下加入鈕,會建立出一個新的參數

報表設計 以參數動態填入文字欄位 到『報表定義檔案』設計模式當中,接著請再拖曳TextBox到報表上:

報表設計 以參數動態填入文字欄位 在屬性視窗中設定TextBox的Value屬性:

報表設計 以參數動態填入文字欄位 選擇『運算式』之後,會出現底下這個『編輯運算式』視窗,請選擇『參數』項目,即可把剛才建立的參數填入TextBox中:

報表設計 以參數動態填入文字欄位 接著我們回到表單程式碼部分,請切換至Form1_Load程式碼,您會發現在Form1的Load事件當中,已經有兩行Visual Studio 2005自動為我們加入的程式碼: EX: CH10\ReportDemo\Form1.vb Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: 這行程式碼會將資料載入 'cNorthWindDataSet.供應商' 資料表。您可以視需要進行移動或移除。 Me.供應商TableAdapter.Fill(Me.cNorthWindDataSet.供應商) Me.ReportViewer1.RefreshReport() End Sub

報表設計 以參數動態填入文字欄位 請修改為: EX:CH10\ReportDemo\Form1.vb 0000: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 0001: 'TODO: 這行程式碼會將資料載入 'cNorthWindDataSet.供應商' 資料表。您可以視需要進行移動或移除。 0002: Me.供應商TableAdapter.Fill(Me.cNorthWindDataSet.供應商) 0003: 0004: '定義兩個參數(陣列形式 0-1) 0005: Dim paras(1) As Microsoft.Reporting.WinForms.ReportParameter 0006: '分別設定這兩個參數的值 0007: paras(0) = New Microsoft.Reporting.WinForms.ReportParameter("Report_Parameter_UserName", "製表人:David") 0008: paras(1) = New Microsoft.Reporting.WinForms.ReportParameter("Report_Parameter_CreateDT", "列表時間:" & Now.ToString) 0009: '透過SetParemeters將參數填入報表中 0010: Me.ReportViewer1.LocalReport.SetParameters(paras) 0011: Me.ReportViewer1.RefreshReport() 0012: End Sub 請注意,參數名稱,必須完全等於剛才我們在報表中建立的參數名稱。

報表設計 以參數動態填入文字欄位 報表列印出來之後,果然出現我們想要的結果: 這兩個報表TextBox欄位,其內容是報表參數,而參數值則被程式碼中所填入報表的參數值替換了。 報表列印出來之後,果然出現我們想要的結果:

報表設計 動態篩選資料內容 請在表單上,額外佈置一個TextBox和一個Button: 填入SQL語法來動態篩選資料用。

報表設計 動態篩選資料內容 請在篩選鈕的Click事件當中,建立底下的程式碼,1-7行是我們介紹過的參數處理方式: EX:CH10\ReportDemo\Form1.vb 0000: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 0001: '定義兩個參數(陣列形式 0-1) 0002: Dim paras(1) As Microsoft.Reporting.WinForms.ReportParameter 0003: '分別設定這兩個參數的值 0004: paras(0) = New Microsoft.Reporting.WinForms.ReportParameter("Report_Parameter_UserName", "製表人:David") 0005: paras(1) = New Microsoft.Reporting.WinForms.ReportParameter("Report_Parameter_CreateDT", "列表時間:" & Now.ToString) 0006: '透過SetParemeters將參數填入報表中 0007: Me.ReportViewer1.LocalReport.SetParameters(paras) 0008: 0009: '動態抓取資料 0010: Dim db As New DbAccess("cNorthWind.MDF") 0011: Dim dt As DataTable = db.GetDataTable(Me.txb_SQL.Text) 0012: '將動態抓取的資料填入報表中,作為資料來源 0013: Me.ReportViewer1.LocalReport.DataSources(0).Value = dt 0014: Me.ReportViewer1.RefreshReport() 0015: End Sub

報表設計 動態篩選資料內容 請在篩選鈕的Click事件當中,建立底下的程式碼,1-7行是我們介紹過的參數處理方式: EX:CH10\ReportDemo\Form1.vb 0000: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click (…略…) 0009: '動態抓取資料 0010: Dim db As New DbAccess("cNorthWind.MDF") 0011: Dim dt As DataTable = db.GetDataTable(Me.txb_SQL.Text) 0012: '將動態抓取的資料填入報表中,作為資料來源 0013: Me.ReportViewer1.LocalReport.DataSources(0).Value = dt 0014: Me.ReportViewer1.RefreshReport() 0015: End Sub 我們透過第八章介紹過的DbAccess類別來抓取資料,在第11行將使用者輸入在TextBox當中的SQL指令碼傳入執行,回傳的結果會以DataTable形式呈現,我們將結果保留在dt物件中。 接著將dt(DataTable)填入ReportViewer中作為報表的資料來源(第13行),並在第14行重新顯示報表內容。

報表設計 動態篩選資料內容 呈現出來的資料就會是即時篩選之後的結果: 呈現出來的資料是篩選後的結果(僅出現台北縣市的廠商)