SQL Server 2000 Reporting Services: Creating a report from scratch

本文介绍了使用Visual Studio 2003和SQL 2000 Reporting Services从头创建报表的方法。数据从MSDE服务器的Biblio数据库获取,详细说明了创建报表项目、配置数据源、数据集、布局等步骤,还提及报表预览、打印成PDF及文件结构等内容。

http://www.codeproject.com/dotnet/HowToReport.asp

 

Introduction

In an earlier posting, the creation of a report using the RAD capability of the Visual Studio 2003 interface and the SQL 2000 Reporting Services was described. In this 'How to' posting, a report generation from scratch using these tools will be described. The data for the report created in this posting will be retrieved from a Biblio database on a MSDE server [XPHTEK/TEST]. MSDE also called the Desktop SQL Server is a smaller version of the SQL 2000 Server with not all the functionalities of the full [Professional, Enterprise] versions. The Report Services creates a DataSet object using the configuration details provided by the designer. The DataSet is the data source for the report. The layout of the report follows the, by now popular, banded style. If one is familiar with Access, or Crystal Reports, the layout follows a similar pattern. In what follows, a step-by-step, screen-by-screen description is given for creating a report from scratch.

Contents

Generating a report

Create a report project called SQLRepSvc along the lines described in the previous posting. This comes with a Shared Data Resources and a Reports folder as shown. Right click on the Reports folder, and from the pop-up menu and submenu, choose to Add New Item.

Data Access

This kicks up the Add New Item - SqlRepSvc window. Here, choose to add the Data Source by highlighting and clicking open.

This pops-up the, Data Link Properties window. In the present example, the server chosen is an MSDE SQL Server instance called XPHTEK/Test, the database chosen is Biblio with Windows authentication. The connection may be tested.

When you click OK to the above window, a data source object called Biblio.rds will be added to the Shared Data Sources folder as seen here:

If you right click this folder, you can choose to review its properties as shown here. You may edit this if you need to make changes.

Adding a report

Right click on the Reports folder in the Solution Explorer and pick up Add New Report. This adds the report with default name Report1.rdl to the Reports folder as shown. The report addition adds the three tabs, Data, Layout, and Preview to the report designer plane. The default name was renamed as scratch.rdl as shown in the next succeeding screen shot:

Configuring the Dataset

In the drop-down box right next to Dataset: in the Data tab, click on the ellipsis and choose <New Dataset..> as shown below:

This brings up the Dataset window as shown with focus on the Query tab. You have choice of three command types, Text, Stored Procedures, and TableDirect. In this example, the Text option has been chosen.

In the Data tab of the designer, you can choose to edit a DataSet, or create a query to use in the report, by appropriately clicking at the indicated points in this next screen shot. You may be wondering how come Dataset1, became Dataset3 all of a sudden. This screen with DataSet3 was taken on a separate occasion to highlight the points that needs to be clicked.

The next screen shows the Query Builder for creating the DataSet. When the query builder shows up for the first time, all the different regions of the designer are empty. You can add a table from the database to the query plane and fashion the query the way you want as shown. The previous posting discusses this in some detail. In the present example, the Publishers table has been added and the query shown in the middle of the designer has been created. The SQL syntax can be checked as well as the query can be run to verify the results.

Next, moving on to the next tab, Fields will bring up a tabbed pane which is empty. Here, you may indicate the fields in the DataSet as shown. You may have to type-in the Field Name column; the Value can be picked up by clicking the available options in the Value column. You may also go and explore the other tabs, but for this example, it suffices to just pick the fields.

When you click away OK to the above screen, you will see the following. You have an additional Fields window, showing all the fields you have chosen. The query is also shown below the DataSet as shown here:

Right clicking on any of the field items in the Fields collection brings up a pop-up menu which can be used to Add, Edit, or Delete a field as shown here:

Configuring the layout

The next item to configure is the report layout. Click on the tab Layout, to open the design plane as shown in this screen. Click on the point shown in this screen shot to open the tabbed, Report Properties page as shown on the next screen:

The information filled in the General tab will be useful in describing the authorship and report description and, the layout provides the basis for the size of the printed report. It should be possible to make the choice of the language as well.

Graphic images can be brought into the report using the Add Existing Item pop-up. This is shown in the next screen shot. The graphic can be dragged and dropped into the design plane. An example of dragging the image to the PageHeader band of the report is shown here. A text box from the Report Items tabbed menu of the Toolbox has been added below the graphic by dragging and dropping.

This screen shows the Body of the report in addition to the PageHeader. A Table element from the Report Items tabbed menu from Toolbox is dragged and dropped into the body of the report. The table has its own Header, Details, and Footer rows. Into the header row, report column headings are inserted by first placing text boxes from the Report Items and typing in the textboxes, the column headings. Into the details sections (row), corresponding elements from the Fields List are dragged and dropped (notice the bang operator). Into the footer section, a Globals!ExecutionTime property of the global node shown in the previous screen shot is inserted. The Table Design has excellent support for table design in terms of merging cells, etc. What is perhaps lacking is configuring the row color of alternating rows inside the Details section that would have improved the visual effect.

Finished Report

By clicking the Preview tab, the report can be viewed as it would appear in print. The preview will be available only after processing the report has completed, which requires a definite amount of time. Errors at this stage may vary from data feed errors to GUI errors.

Report in PDF

The report can be printed to file in a number of formats including PDF, as shown in this screen:

A zoomed-in copy of the report in PDF printed from ©Acrobat Reader 6 is shown in this screen:

Report File Structure

The reports generated by the Report Services are XML based, and this next screen shot shows the XML rendering of the scratch.rdl file in IE browser. Certain sections have not been fully expanded to keep the graphic small.

Conclusions

Report generation using this tool can be highly productive, if the report developer is conversant with Microsoft's other products and SQL syntax. The report layout design is excellent with several enhancements and support for languages, Unicode bidirectional language support, and rich in other formatting [I am not a Microsoft Vendor!] enhancements. It will be nice to see how it works out given that Crystal Reports was always bundled with VB offsprings.

About mysorian


Computer learner/mentor/trainer all in one. Mostly interested in developments in Computer Technology as to where it is going. Reading books and photography are my hobbies. I read Physics Today, Yale Magazine, and quite a large number of Technical Journals.

Click here to view mysorian's online profile.


Other popular .NET articles:

标题基于Python的汽车之家网站舆情分析系统研究AI更换标题第1章引言阐述汽车之家网站舆情分析的研究背景、意义、国内外研究现状、论文方法及创新点。1.1研究背景与意义说明汽车之家网站舆情分析对汽车行业及消费者的重要性。1.2国内外研究现状概述国内外在汽车舆情分析领域的研究进展与成果。1.3论文方法及创新点介绍本文采用的研究方法及相较于前人的创新之处。第2章相关理论总结和评述舆情分析、Python编程及网络爬虫相关理论。2.1舆情分析理论阐述舆情分析的基本概念、流程及关键技术。2.2Python编程基础介绍Python语言特点及其在数据分析中的应用。2.3网络爬虫技术说明网络爬虫的原理及在舆情数据收集中的应用。第3章系统设计详细描述基于Python的汽车之家网站舆情分析系统的设计方案。3.1系统架构设计给出系统的整体架构,包括数据收集、处理、分析及展示模块。3.2数据收集模块设计介绍如何利用网络爬虫技术收集汽车之家网站的舆情数据。3.3数据处理与分析模块设计阐述数据处理流程及舆情分析算法的选择与实现。第4章系统实现与测试介绍系统的实现过程及测试方法,确保系统稳定可靠。4.1系统实现环境列出系统实现所需的软件、硬件环境及开发工具。4.2系统实现过程详细描述系统各模块的实现步骤及代码实现细节。4.3系统测试方法介绍系统测试的方法、测试用例及测试结果分析。第5章研究结果与分析呈现系统运行结果,分析舆情数据,提出见解。5.1舆情数据可视化展示通过图表等形式展示舆情数据的分布、趋势等特征。5.2舆情分析结果解读对舆情分析结果进行解读,提出对汽车行业的见解。5.3对比方法分析将本系统与其他舆情分析系统进行对比,分析优劣。第6章结论与展望总结研究成果,提出未来研究方向。6.1研究结论概括本文的主要研究成果及对汽车之家网站舆情分析的贡献。6.2展望指出系统存在的不足及未来改进方向,展望舆情
【磁场】扩展卡尔曼滤波器用于利用高斯过程回归进行磁场SLAM研究(Matlab代码实现)内容概要:本文介绍了利用扩展卡尔曼滤波器(EKF)结合高斯过程回归(GPR)进行磁场辅助的SLAM(同步定位与地图构建)研究,并提供了完整的Matlab代码实现。该方法通过高斯过程回归对磁场空间进行建模,有效捕捉磁场分布的非线性特征,同时利用扩展卡尔曼滤波器融合传感器数据,实现移动机器人在复杂环境中的精确定位与地图构建。研究重点在于提升室内等无GPS环境下定位系统的精度与鲁棒性,尤其适用于磁场特征明显的场景。文中详细阐述了算法原理、数学模型构建、状态估计流程及仿真实验设计。; 适合人群:具备一定Matlab编程基础,熟悉机器人感知、导航或状态估计相关理论的研究生、科研人员及从事SLAM算法开发的工程师。; 使用场景及目标:①应用于室内机器人、AGV等在缺乏GPS信号环境下的高精度定位与地图构建;②为磁场SLAM系统的设计与优化提供算法参考和技术验证平台;③帮助研究人员深入理解EKF与GPR在非线性系统中的融合机制及实际应用方法。; 阅读建议:建议读者结合Matlab代码逐模块分析算法实现细节,重点关注高斯过程回归的训练与预测过程以及EKF的状态更新逻辑,可通过替换实际磁场数据进行实验验证,进一步拓展至多源传感器融合场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值