1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Dynamically Creating Crystal Reports doc

3 286 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Dynamically creating Crystal Reports
Tác giả Team LiB
Thể loại Recipe
Định dạng
Số trang 3
Dung lượng 14,85 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Create a new report document and set its data source to the DataTable.. To display the report, set the source of the report view to the report document.. File: CrystalReportsForm.cs //

Trang 1

[ Team LiB ]

Recipe 7.16 Dynamically Creating Crystal Reports

Problem

You need to define a DataTable at runtime and bind it to a Crystal Report

Solution

Create a DataAdapter and use it to fill a DataTable with a subset of records (specified by

a range of OrderID values, from the Orders table joined to Order Details records from the Northwinds sample database demonstrated in the following example) Create a new report document and set its data source to the DataTable To display the report, set the source of the report view to the report document

The C# code is shown in Example 7-32

Example 7-32 File: CrystalReportsForm.cs

// Namespaces, variables, and constants

using System;

using System.Configuration;

using System.Windows.Forms;

using CrystalDecisions.CrystalReports.Engine;

using CrystalDecisions.Shared;

using System.Data;

using System.Data.SqlClient;

private CrystalDecisions.Windows.Forms.CrystalReportViewer crv;

//

// Get the user entered OrderID range

int orderIdFrom, orderIdTo;

try

{

orderIdFrom = Convert.ToInt32(orderIdFromTextBox.Text);

orderIdTo = Convert.ToInt32(orderIdToTextBox.Text);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Dynamic Crystal Reports",

Trang 2

MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

Cursor.Current = Cursors.WaitCursor;

// Create a DataAdapter and fill the table

String sqlText = "SELECT * FROM Orders " +

"JOIN [Order Details] Order_Details ON Orders.OrderID = " +

"Order_Details.OrderID " +

"WHERE Orders.OrderID BETWEEN " + orderIdFrom + " AND " + orderIdTo;

SqlDataAdapter da = new SqlDataAdapter(sqlText,

ConfigurationSettings.AppSettings["Sql_ConnectString"]);

DataTable dt = new DataTable( );

da.Fill(dt);

// Create a new ReportDocument

ReportDocument cr = new ReportDocument( );

// Load the report

cr.Load(ConfigurationSettings.AppSettings["Project_Directory"] +

@"Chapter 07\OrderWithDetailsCrystalReport.rpt");

// Set the data source for the report

cr.SetDataSource(dt);

// Set the report document for the report view

crv.ReportSource = cr;

Cursor.Current = Cursors.Default;

Discussion

Follow these steps to use a DataTable created at runtime as the data source for a Crystal Report:

1 Using the Crystal Report Designer in Visual Studio.NET, design and create the

Crystal Report RPT file Link the report to the database in the designer to get the

fields for the report as would normally be done For more information about using the Crystal Report Designer, see the MSDN Library (you might have to change the filter in MSDN to "(no filter)" from ".NET Framework")

2 In the application, use a DataAdapter to fill a DataTable with the data required by the report

3 Create a new ReportDocument object:

Trang 3

ReportDocument cr = new ReportDocument( );

The ReportDocument class represents a report and contains methods and

properties including those used define, format, and load the report

4 Use the Load( ) method of the ReportDocument to load the report defined in step 1:

5 cr.Load(ConfigurationSettings.AppSettings["Project_Directory"] +

@"Chapter 07\OrderWithDetailsCrystalReport.rpt");

6 Use the SetDataSource( ) method of the ReportDocument to pass the data source

to the report engine:

cr.SetDataSource(dt);

7 Set the ReportSource property of the CrystalReportViewer to the ReportDocument

to display the report in the viewer:

crv.ReportSource = cr;

The CrystalReportViewer class provides methods, properties, and events that allow control of viewer appearance and functionality

[ Team LiB ]

Ngày đăng: 14/12/2013, 18:16

TỪ KHÓA LIÊN QUAN

w