Tải bản đầy đủ (.pdf) (594 trang)

Lập trình Csharp .Net tập 6

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.82 MB, 594 trang )


LẬP TRÌNH BÁO CÁO dùng
CRYSTAL REPOTTS.NET và C#
Lập trình Visual C# thế nào?



DƯƠNG QUANG THIỆN
Biên soạn

.NET Toàn tập
Tập 6

LẬP TRÌNH BÁO CÁO dùng
CRYSTAL REPORTS.NET và C#

Lập trình Visual C# thế nào?

NHÀ XUẤT BẢN TỔNG HỢP TP. HCM




5 Lập trình Web sử dụng ASP.NET và Visual C#

Dương Quang Thiện

Tập 6: Lập trình báo cáo sử dụng
Crystal Reports .NET
Mục Lục
Mục lục ............................................................................................... 5



Chương 1 Tổng quan về Crystal Reports .NET
1.1 Crystal Reports là gì?.................................................................. 29
1.2 Bạn có thể làm được gì với Crystal Reports? ............................... 30
1.3 Crystal Reports .NET khác biệt so với các phiên bản Crystal
Reports trước thế nào? ................................................................. 35
1.3.1 Integrated Design Environment (IDE) ........................................35
1.3.2 Bất cứ ngôn ngữ nào, bất cứ lúc nào .........................................35
1.3.3 Các phương pháp hội nhập .......................................................36
1.3.4 Dễ sử dụng ............................................................................36
1.3.5 Xây dựng các ứng dụng công ty xí nghiệp ..................................36
1.3.6 Kiến trúc báo cáo ....................................................................38
1.3.6.1 Kiến trúc kiểu đơn tầng (single-tier) ..................................39
1.3.6.2 Kiến trúc kiểu lưỡng tầng (two-tier) ...................................39
1.3.6.3 Kiến trúc kiểu tam tầng (three-tier) ...................................40
1.3.6.4 Các ứng dụng đa tầng (multi-tier application) .....................40
1.3.7 Report Designer ......................................................................41
1.3.8 Những điểm không tương thích .................................................42
1.4 Các lợi điểm của Crystal Reports.NET ......................................... 43
1.5 Học từ các ứng dụng mẫu ........................................................... 44
1.5.1 Cài đặt các ứng dụng mẫu ........................................................44
1.5.2 Các báo cáo mẫu ....................................................................46
1.5.3 Dữ liệu mẫu ...........................................................................47

Chương 2 Hãy thử bắt đầu với Crystal Reports .NET
2.1 Thử tạo báo cáo đầu tiên rất đơn giản ........................................ 48


Mục lục


6

2.2 Báo cáo thứ hai tinh vi hơn một chút .......................................... 56
2.3 Thí dụ thứ 3 phức tạp hơn: Báo cáo International Sales.rpt ........ 65
2.4 Làm việc với Report Design Environment .................................... 85
2.4.1 Trình đơn và Thanh công cụ .....................................................85
2.4.2 Cho đặt để các thuộc tính mặc nhiên .........................................86
2.5 Các điều cơ bản về thiết kế báo cáo ............................................ 87
2.5.1 Các phân đoạn của báo cáo (report section) ...............................87
2.5.2 Định dạng báo cáo ..................................................................89
2.5.3 Các đối tượng vùng mục tin (field object) ...................................90
2.5.3.1 Database Fields ...............................................................90
2.5.3.2 Text Objects ...................................................................91
2.5.3.3 Special Fields ..................................................................91
2.5.3.4 Summary Fields ..............................................................92
2.5.3.5 Formula Fields ................................................................93
2.5.3.6 Parameter Fields .............................................................94
2.5.3.7 SQL Expression Fields ......................................................96
2.5.3.8 Unbound Fields ...............................................................97

Chương 3 Tìm hiểu Crystal Reports Object Model
3.1 Cơ bản về uốn nắn các báo cáo ................................................... 99
3.1.1 ASP.NET Template ................................................................ 102
3.2 Tìm hiểu về đối tượng ReportDocument .................................... 103
3.2.1 Tìm đọc các thông tin tóm lược – Lớp Summary Information....... 106
3.2.2 Cho đặt để các thuộc tính báo cáo - Lớp ReportOptions .............. 107
3.2.3 Kết nối về dữ liệu nguồn – Lớp Database ................................. 107
3.2.4 Thay đổi các mục chọn máy in – Lớp PrintOptions ..................... 108
3.2.5 Xuất khẩu các báo cáo – Lóp ExportOptions ............................. 110
3.2.6 Qui chiếu và định dạng các đối tượng báo cáo –

Lớp ReportDefinition .............................................................. 111
3.2.7 Thay đổi các đối tượng báo cáo – Lớp DataDefinition ................. 111
3.3 Tìm hiểu đối tượng CrystalReportViewer .................................. 111
3.3.1 Phản ứng trước các tình huống................................................ 113
3.3.2 Thụ lý các biệt lệ ................................................................... 117


7 Lập trình Web sử dụng ASP.NET và Visual C#

Dương Quang Thiện

Chương 4 Sắp xếp & Gộp nhóm
4.1 Sắp xếp các mẫu tin .................................................................. 120
4.2 Gộp theo nhóm các mẫu tin ...................................................... 122
4.2.1 Thêm các nhóm và uốn nắn nhóm ........................................... 123
4.2.2 Sắp xếp dữ liệu nhóm ............................................................ 127
4.3 Thay đổi vùng mục tin dùng gộp nhóm ..................................... 127
4.4 Cho hiển thị các bản báo cáo Top N .......................................... 128
4.5 Cho hiển thị báo cáo đẳng cấp .................................................. 129
4.6 Xoáy sâu vào chi tiết dữ liệu ..................................................... 130
4.7 Tổng kết dữ liệu ........................................................................ 132
4.8 Lập trình mô hình đối tượng liên quan đến sắp xếp và
gộp nhóm ................................................................................... 135
4.8.1 Tìm hiểu các lớp Sorting và Grouping ....................................... 135
4.8.2 Ánh xạ các đối tượng sắp xếp và gộp nhóm .............................. 138
4.8.3 Lập trình các đối tượng sắp xếp và gộp nhóm ........................... 142
4.8.4 Tìm hiểu các lớp Summary Field .............................................. 146

Chương 5 Sử dụng các thông số
5.1 Nhập thông số .......................................................................... 149

5.1.1 Thêm các thông số ................................................................ 149
5.1.2 Cho đặt để các trị mặc nhiên .................................................. 152
5.1.3 Nhập vào thông số khi chạy báo cáo ........................................ 154
5.2 Lập trình mô hình đối tượng liên quan đến các thông số ........... 155
5.2.1 Thay thế các thông số bởi những công thức .............................. 156
5.2.2 Tìm hiểu các lớp Parameter .................................................... 157
5.2.2.1 Ánh xạ các lớp Parameter ............................................... 161
5.2.2.2 Lập trình các lớp Parameter ............................................ 163
5.2.2.3 Lập trình với lớp ReportDocument.................................... 164
5.2.2.4 Lập trình với lớp CrystalReportViewer ............................... 167
5.2.3 Thay đổi các thông số của Subreport ....................................... 169
5.2.4 Đơn giản hoá việc lập trình các thông số .................................. 169


Mục lục

8

Chương 6 Uốn nắn các báo cáo
6.1 Chọn ra các mẫu tin .................................................................. 174
6.1.1 Sử dụng Select Expert ........................................................... 174
6.1.2 Chọn các mẫu tin để gộp nhóm ............................................... 178
6.2 Các phân đoạn (section) ........................................................... 178
6.2.1 Định dạng các phân đoạn ....................................................... 179
6.2.1.1 Che dấu và gỡ bỏ phân đoạn .......................................... 181
6.2.1.2 In ra các phân đoạn vào cuối trang .................................. 181
6.2.1.3 Ép sang trang ............................................................... 182
6.2.1.4 Cho số trang trở về 1 ..................................................... 182
6.2.1.5 Giữ các phân đoạn nằm với nhau ..................................... 182
6.2.1.6 Gỡ bỏ những phân đoạn trắng ......................................... 183

6.2.1.7 Cho nằm dưới các phân đoạn sau đây .............................. 183
6.2.1.8 Định dạng với nhiều cột.................................................. 185
6.2.2 Thêm vào nhiều phân đoạn .................................................... 187
6.3 Running Totals ......................................................................... 192
6.4 Lập trình mô hình đối tượng Crystal Reports Engine ................. 195
6.4.1 Thay đổi Record Selection ...................................................... 196
6.4.2 Ánh xạ các lớp ReportDefinition .............................................. 197
6.4.3 Lập trình lớp ReportDefinition thế nào? .................................... 202
6.4.3.1 Qui chiếu các đối tượng báo cáo thế nào? ......................... 204
6.4.3.2 Thay đổi các thuộc tính của Report Object ........................ 205

Chương 7 Tìm hiểu về Công thức và Lôgic chương trình
7.1 Cho hội nhập Công thức và Lôgic vào các bản báo cáo ............. 207
7.1.1 Cấu trúc căn cứ dữ liệu .......................................................... 208
7.1.2 Dữ liệu ứng dụng .................................................................. 209
7.1.3 Các lệnh Crystal SQL ............................................................. 210
7.1.4 Các biểu thức Crystal SQL ...................................................... 211
7.1.5 Các công thức ....................................................................... 212
7.2 Làm
7.2.1
7.2.2
7.2.3
7.2.4
7.2.5

việc với Formula Editor ..................................................... 213
Điều khiển dáng dấp của Formula Editor .................................. 213
Điều khiển loại cú pháp .......................................................... 217
Kiểm tra lỗi cú pháp .............................................................. 218
Sử dụng các công thức để tính toán ......................................... 219

Định dạng động sử dụng công thức ......................................... 220


9 Lập trình Web sử dụng ASP.NET và Visual C#

Dương Quang Thiện

7.2.5.1 Thêm các công thức ....................................................... 220
7.2.5.2 Sử dụng Default Attribute và Current Field Value ............... 223
7.3 Tạo các công thức với Basic Syntax .......................................... 224
7.3.1 Basic Syntax là gì? ................................................................ 224
7.3.2 Qui ước lập trình Basic Syntax ................................................ 225
7.3.3 Các kiểu dữ liệu .................................................................... 229
7.3.3.1 Các kiểu dữ liệu đơn giản ............................................... 229
7.3.3.2 Kiểu dữ liệu bản dãy ...................................................... 230
7.3.3.3 Kiểu dữ liệu Range ........................................................ 232
7.3.4 Các tác tử đơn giản & Hàm ..................................................... 235
7.3.4.1 Tác tử toán số học ......................................................... 236
7.3.4.2 Tác tử Boolean .............................................................. 237
7.3.4.3 Tác tử so sánh .............................................................. 238
7.3.4.4 Tác tử chuyển đổi kiểu dữ liệu ......................................... 238
7.3.4.5 Các hàm tổng kết (summary functions) ............................ 241
7.3.4.6 Các hàm thao tác chuỗi .................................................. 241
7.3.4.7 Các hàm Date & Time .................................................... 246
7.3.4.8 Các thuộc tính Print State và Document ........................... 252
7.3.4.9 Định dạng các trị kết xuất .............................................. 253
7.3.4.10 Các hàm toán học ........................................................ 255
7.3.4.11 Kết sinh số bất kỳ (random number) .............................. 256
7.3.4.12 Định trị Time Default .................................................... 256
7.3.5 Các cấu trúc điều khiển .......................................................... 260

7.3.5.1 Các cấu trúc điều kiện .................................................... 261
7.3.5.2 Các hàm điều kiện ......................................................... 263
7.3.5.3 Các cấu trúc vòng lặp .................................................... 266
7.3.5.4 Các biểu thức điều kiện .................................................. 267
7.4 Tạo các công thức sử dụng Crystal Syntax ................................ 267
7.4.1 Khác biệt so với Basic Syntax ................................................. 268
7.5 Tạo các công thức chọn mẫu tin ................................................ 270
7.6 Làm
7.6.1
7.6.2
7.6.3

việc với định dạng theo điều kiện ...................................... 271
Tìm hiểu định dạng theo điều kiện ........................................... 272
Định dạng theo điều kiện đối với thuộc tính boolean .................. 273
Định dạng theo điều kiện đối với các thuộc tính có nhiều trị ........ 273

Chương 8 Vẽ biểu đồ thế nào?
8.1 Thêm một biểu đồ vào bản báo cáo .......................................... 279
8.1.1 Chọn ra một loại biểu đồ sử dụng Tab Type .............................. 280


Mục lục

10

8.1.1.1 Side-by-side bar chart ................................................... 282
8.1.1.2 Stacked bar chart .......................................................... 282
8.1.1.3 Line chart ..................................................................... 283
8.1.1.4 Area chart .................................................................... 283

8.1.1.5 Pie chart ...................................................................... 284
8.1.1.6 Doughnut chart ............................................................. 285
8.1.1.7 3-D Riser chart ............................................................. 285
8.1.1.8 3-D Surface chart .......................................................... 286
8.1.1.9 XY Scatter chart ............................................................ 287
8.1.1.10 Radar chart ................................................................. 287
8.1.1.11 Bubble chart ............................................................... 288
8.1.1.12 Stock chart ................................................................. 289
8.1.2 Cách bố trí biểu đồ khác nhau đối với những kiểu
dữ liệu khác nhau ..................................................................... 290
8.1.3 Chỗ đặt biểu đồ ảnh hưởng lên dữ liệu nó tượng trưng ............... 291
8.1.4 Cho đặt để các data points sử dụng Tab Data ........................... 291
8.1.4.1 Đặt để mục chọn Evaluate .............................................. 293
8.1.4.2 Đặt để các vùng mục tin trên Show Value(s) ..................... 295
8.1.4.3 Thỏa mãn đòi hỏi vùng mục tin tối thiểu ........................... 295
8.1.5 Thêm vào các group chart ...................................................... 296
8.1.6 Thêm các biểu đồ Cross-Tab ................................................... 298
8.1.7 Cho đặt để các tiêu đề thông qua tab Text .............................. 299
8.2 Sử dụng Tab Options của Chart Expert ..................................... 300
8.3 Sử dụng trình đơn Format Chart ............................................... 302
8.4 Từ một biểu đồ bạn cho xoáy sâu vào chi tiết ........................... 304
8.5 Thay đổi một biểu đồ ................................................................ 304
8.6 Một thí dụ để kết thúc ............................................................... 305

Chương 9 Tạo báo cáo Cross-Tab
9.1 Thử tạo một thí dụ cross-tab tổng kết tất cả dữ liệu
bản báo cáo ................................................................................ 308
9.2 Thí dụ một cross-tab tổng kết nội dung một group ................... 314
9.3 Tìm hiểu về bản báo cáo cross-tab............................................ 316
9.3.1 Tạo một đối tượng cross-tab ................................................... 319

9.3.2 Đặt vào chỗ đối tượng cross-tab.............................................. 321


11 Lập trình Web sử dụng ASP.NET và Visual C#

Dương Quang Thiện

9.3.3 Định dạng khung lưới cross-tab ............................................... 323
9.3.4 Định dạng các thuộc tính Style................................................ 324
9.3.5 Quản lý các cột ..................................................................... 326

Chương 10

Thêm Subreport vào báo cáo chính

10.1 Các mục chọn cho phép kết nối subreport
với báo cáo chính ....................................................................... 330
10.1.1 Kết nối với vùng mục tin căn cứ dữ liệu .................................. 331
10.1.2 Kết nối với một vùng mục tin công thức ................................. 332
10.1.3 Sử dụng các subreport bất kết nối ......................................... 334
10.1.4 Dùng các vùng mục tin công thức không kết nối ...................... 334
10.1.5 Trao qua dữ liệu thông qua các biến shared ............................ 335
10.2 Thêm một subreport vào báo cáo chính .................................. 336
10.2.1 Kết nối với một vùng mục tin căn cứ dữ liệu ........................... 337
10.2.2 Kết nối với một formula field ................................................. 338
10.2.3 Các Subreport bất kết nối ..................................................... 339
10.2.4 Bất kết nối với một công thức ............................................... 339
10.2.5 Bất kết nối với biến shared ................................................... 340
10.3 Hiệu đính Subreport ............................................................... 342
10.4 Sử dụng On-Demand Subreports ............................................ 347

10.5 Lập trình mô hình đối tượng Crystal Reports Engine
đối với Subreport ........................................................................ 350
10.5.1 Thay đổi các Subreport ........................................................ 350

Chương 11

Hội nhập báo cáo vào ứng dụng Windows

11.1 Đặt kế hoạch cho ứng dụng của bạn ...................................... 354
11.1.1 Khảo sát môi trường triển khai .............................................. 356
11.1.2 Bắt đầu một ứng dụng Windows mới sử dụng Visual C# ........... 356
11.2 Xác định đúng mô hình đối tượng .......................................... 357
11.3 Tìm hiểu namespace CrystalDecisions.Windows.Forms ......... 359
11.4 Sử dụng Crystal Report Viewer cho Windows Forms .............. 360
11.4.1 Thêm một báo cáo vào ứng dụng .......................................... 362
11.4.2 Thêm một Report Viewer vào Windows Form .......................... 362
11.4.3 Gắn kết một báo cáo vào Report Viewer ................................. 363


Mục lục

12

11.4.3.1 Gắn kết theo tên báo cáo ............................................. 363
11.4.3.2 Gắn kết theo đối tượng báo cáo ..................................... 363
11.4.3.3 Gắn kết với một Untyped Report .................................... 365
11.4.3.4 Gắn kết với một strongly-typed Report ........................... 366
11.4.4 Chuyển giao thông tin đăng nhập căn cứ dữ liệu ..................... 367
11.4.5 Cho đặt để Report Record Selection ....................................... 369
11.5 Cho uốn nắn dáng dấp và cách bố trí của Report Viewer ....... 371

11.5.1 Các hàm hành sự của ô control CrystalReportViewer ................ 374
11.5.1.1 In ra một bản báo cáo .................................................. 375
11.5.1.2 Refresh dữ liệu trên một bản báo cáo ............................. 378
11.5.1.3 Exporting một bản báo cáo ........................................... 378
11.5.1.4 Page Navigation và Zoom ............................................. 381
11.5.1.5 Truy tìm trong lòng một bản báo cáo ............................. 384
11.5.2 Sử dụng các tình huống viewer ............................................. 385
11.5.2.1 Các tình huống Page Navigation .................................... 386
11.5.2.2 Các tình huống Refresh ................................................ 386
11.5.2.3 Các tình huống Search ................................................. 387
11.5.2.4 Các tình huống Viewer ................................................. 387
11.5.2.5 Các tình huống Zoom ................................................... 388
11.5.3 Xoáy sâu vào chi tiết bản báo cáo ......................................... 388
11.5.4 Xoáy sâu lên các subreport ................................................... 391
11.5.5 Làm với những biệt lệ trên các bản báo cáo ............................ 391

Chương 12

Hội nhập báo cáo vào ứng dụng Web

12.1 Đặt kế hoạch cho ứng dụng của bạn ....................................... 393
12.2 Thử khảo sát môi trường triển khai......................................... 395
12.2.1 Trước khi ta bắt đầu vào cuộc ............................................... 396
12.2.2 Bắt đầu một ứng dụng web mới với Visual C# ....................... 396
12.3 Xác định đúng mô hình đối tượng ........................................... 397
12.4 Tìm hiểu namespace CrystalDecisions.Web.Forms .................. 398
12.5 Sử dụng ô control Crystal Report Viewer đối với Web Forms .. 400
12.5.1 Thêm một báo cáo vào ứng dụng .......................................... 402
12.5.2 Thêm Report Viewer vào một Web Form ................................. 405
12.5.3 Gắn kết một báo cáo vào Report Viewer ................................. 405

12.5.3.1 Gắn kết theo tên báo cáo ............................................. 405
12.5.3.2 Gắn kết theo Report Object........................................... 406
12.5.3.3 Gắn kết với một báo cáo untyped .................................. 407
12.5.3.4 Gắn kết với một Strongly-Typed Report .......................... 409


13 Lập trình Web sử dụng ASP.NET và Visual C#

Dương Quang Thiện

12.5.3.5 Gắn kết với một Strongly-Typed Cached Report ............... 410
12.6 Uốn nắn dáng dấp và cách bố trí của Report Viewer ............... 411
12.6.1 Các hàm hành sự của ô control CrystalReportViewer ................ 415
12.6.1.1 Cho đặt để việc tô vẽ browser ....................................... 417
12.6.1.2 Làm tươi dữ liệu trên một báo cáo ................................. 417
12.6.1.3 Page Navigation và Zoom ............................................. 418
12.6.1.4 Truy tìm bên trong một bản báo cáo .............................. 420
12.6.2 In ra bản báo cáo ................................................................ 421
12.6.2.1 In từ Browser .............................................................. 423
12.6.2.2 In từ Adobe Acrobat Plug-In .......................................... 424
12.6.2.3 In ra từ các Export Formats khác ................................... 426
12.6.3 Sử dụng các tình huống của Viewer ....................................... 428
12.6.3.1 Page Navigation Events ................................................ 428
12.6.3.2 Refresh Events ............................................................ 429
12.6.3.3 Search Events ............................................................. 429
12.6.3.4 Zoom Events ............................................................... 430

Chương 13

Tạo XML Report Web Services


13.1 Tổng quan về XML Report Web Services ................................. 431
13.1.1 XML Report Web Service là gì? .............................................. 433
13.1.2 Làm thế nào sử dụng một XML Report Web Service? ................ 434
13.2 Tạo XML Report Web Services ................................................ 435
13.2.1 Tạo một Report Web Services cơ bản ..................................... 435
13.2.2 Tạo Report Web Services với nhiều bản báo cáo ...................... 438
13.2.3 Sử dụng Report Web Service chung chung (generic) ................ 438
13.3 Tiêu thụ XML Report Web Services ......................................... 440
13.4 External Report Web Service .................................................. 441
13.5 Internal Report Web Service .................................................. 443
13.5.1 Generic Report Web Service.................................................. 444
13.6 Vài suy nghĩ về việc triển khai Report Web Services ............... 445
13.7 Lập trình mô hình đối tượng Crystal Reports Engine ............... 448
13.7.1 Thay đổi báo cáo vào lúc chạy phía Client ............................... 448
13.7.2 Thay đổi báo cáo vào lúc chạy từ phía Server.......................... 449

Chương 14

Làm việc với các dữ liệu nguồn


Mục lục

14

14.1 Truy cập dữ liệu với Crystal Reports.NET ................................ 452
14.1.1 Các tập tin căn cứ dữ liệu ..................................................... 453
14.1.2 Các căn cứ dữ liệu quan hệ ................................................... 454
14.1.3 OLAP Data .......................................................................... 455

14.1.4 Crystal Dictionaries, Queries và Info Views ............................. 455
14.1.5 Các dữ liệu nguồn khác ........................................................ 455
14.2 Làm việc với các dữ liệu nguồn ............................................... 456
14.2.1 Cho đặt để các mục chọn căn cứ dữ liệu ................................. 456
14.2.2 Thêm một căn cứ dữ liệu hoặc một bảng dữ liệu
vào một báo cáo ...................................................................... 459
14.2.3 Sử dụng khung đối thoại Database Expert | Tab Links .............. 462
14.2.4 Kiểm tra cấu trúc căn cứ dữ liệu dùng trong bản báo cáo.......... 466
14.2.5 Thay đổi nơi định cư của một căn cứ dữ liệu............................ 467
14.2.6 Cho đặt để một Database Alias ............................................. 470
14.3 Làm việc với SQL Commands .................................................. 472
14.3.1 Định nghĩa các bảng dữ liệu ảo ............................................. 473
13.3.2 Chọn ra các bảng dữ liệu và vùng mục tin .............................. 477
14.3.3 Cho sàng lọc các mẫu tin ...................................................... 478
14.3.4 Sắp xếp và gộp nhóm các mẫu tin ......................................... 481
14.3.4.1 Những hạn chế đối với Sorting và Grouping .................... 481
14.4 Làm việc với SQL Expression .................................................. 482
14.4.1 Tạo biểu thức SQL ............................................................... 483
14.5 Làm việc với ADO.NET ............................................................. 486
14.5.1 Một ADO.NET Dataset .......................................................... 486
14.5.2 Nhìn xem nội dung của một Dataset ...................................... 490
14.5.3 Tạo một báo cáo từ một ADO.NET Dataset ............................. 494
14.5.4 Nhìn xem các báo cáo có chứa một ADO.NET Dataset .............. 496
14.6 Lập trình mô hình đối tượng Crystal Reports Engine ............... 499
14.6.1 Thi công Push Model ............................................................ 500
14.6.1.1 Định nghĩa tập tin lược đồ Dataset ................................. 501
14.5.1.2 Xây dựng báo cáo dùng đến tập tin DataSet .................... 506
14.5.1.3 Cho điền đầy dữ liệu lên đối tượng DataSet ..................... 508
14.6.1.4 Cho gắn kết DataSet với bản báo cáo ............................. 513
14.6.2 Lớp Database ...................................................................... 514

14.6.3 Đăng nhập vào dữ liệu nguồn an toàn .................................... 516
14.6.3.1 Đăng nhập sử dụng ReportDocument ............................. 517
14.5.3.2 Đăng nhập sử dụng Viewer Control ................................ 518
14.6.4 Các thông số và stored procedure ......................................... 519


15 Lập trình Web sử dụng ASP.NET và Visual C#

Dương Quang Thiện

14.6.4.1 SET NOCOUNT ON ....................................................... 521
14.6.4.2 Thay đổi dữ liệu nguồn bằng lập trình ............................ 522
14.6.5 Làm việc với các Subreport ................................................... 527
14.6.6 In ra các hình ảnh động ....................................................... 528

Chương 15

Xuất khẩu và triển khai hoạt động các báo cáo

15.1 Xuất khẩu các báo cáo ............................................................ 532
15.1.1 Xuất khẩu thông qua Viewer ................................................. 533
15.1.2 Xuất khẩu thông qua lập trình ............................................... 534
15.1.3 Xuất khẩu dễ dàng lên tập tin đĩa .......................................... 535
15.1.4 Xuất khẩu cấp cao hơn ......................................................... 537
15.1.5 Xuất khẩu về ghi lên một đĩa từ ............................................ 539
15.1.6 Xuất khẩu về Email .............................................................. 540
15.1.7 Xuất khẩu về Exchange Folder .............................................. 541
15.1.8 Định dạng đối với các tài liệu PDF, RTF và Word ...................... 542
15.1.9 Định dạng xuất khẩu đối với Excel ......................................... 543
15.1.10 Định dạng xuất khẩu đối với HTML ....................................... 544

15.2 Triển khai và phân phối ứng dụng báo cáo.............................. 546
15.2.1 Tổng quan về phân phối ứng dụng ......................................... 547
15.2.2 Bắt đầu thử nghiệm ............................................................. 548
15.2.2.1 Template Setup Projects ............................................... 548
15.2.2.2 Template Web Setup Projects ........................................ 549
15.2.2.3 Template Merge Module Project ..................................... 549
15.2.2.4 Template Setup Wizard ................................................ 551
15.2.3 Các đòi hỏi triển khai cơ bản ................................................. 551
15.2.3.1 Hệ điều hành .............................................................. 552
15.2.3.2 Phần cứng .................................................................. 553
15.2.4 Triển khai các ứng dụng Windows .......................................... 553
15.2.4.1 Tạo một Setup project mới ........................................... 553
15.2.4.2 Thêm Merge Modules ................................................... 555
15.2.4.3 Thêm mục khoá bản quyền ........................................... 556
15.2.5 Triển khai các ứng dụng Web ................................................ 559
15.2.5.1 Chuẩn bị Web Server ................................................... 559
15.2.5.2 Tạo Setup Project ........................................................ 559
15.2.5.3 Chọn các kết xuất dự án ............................................... 560
15.2.5.4 Thêm các Merge Module ............................................... 560
15.2.5.5 Giải quyết LicenseKey .................................................. 561
15.2.6 Trắc nghiệm và triển khai setup của bạn ................................ 561


Mục lục

16

Lời mở đầu
Vào tháng 7/1998 người viết cho phát hành tập I bộ sách “Lập trình Windows sử
dụng Visual C++ 6.0 và MFC”. Toàn bộ gồm 8 tập, 6 nói về lý thuyết và 2 về thực hành.

Các tập đi sau được phát hành lai rai mãi đến 10/2000 mới xong. Bộ sách được bạn đọc
đón chào nồng nhiệt (mặc dầu chất lượng giấy và kiểu quay ronéo không được mỹ thuật
cho lắm, nhưng giá rẻ vừa túi tiền bạn đọc) và được phát hành đi phát hành lại trên 10
ngàn bộ và không biết bao nhiêu đã bị photocopy và “bị luộc”. Và vào thời điểm hoàn
thành bộ sách lập trình Windows kể trên (tháng 10/2000) người viết cũng đã qua 67 tuổi,
quá mệt mỏi và cũng vào lúc vừa giải thể văn phòng SAMIS không kèn không trống, thế
là người viết quyết định “rửa tay gác kiếm” luôn, mặc dầu trước đó vài ba tháng đã biết
Microsoft manh nha cho ra đời một ngôn ngữ lập trình mới là C# trên một sàn diễn mang
tên .NET ám chỉ ngôn ngữ thời đại mạng Internet. Tuy nhiên, như đã định soạn giả vẫn
ngưng viết, xem như nghĩ hưu luôn, quay về chăm sóc vườn phong lan bị bỏ bê từ lúc bắt
đầu viết bộ sách lập trình Windows kể trên.
Nghỉ hưu thiếu vài tháng thì đúng 3 năm vào tháng 5/2003, anh Nguyễn Hữu Thiện,
người sáng lập ra tờ báo eChip, mời tham gia viết sách thành lập tủ sách tin học cho tờ
báo. Thế là “a lê hấp” người viết đồng ý ngay, cho đặt mua một lô sách về C#, .VB.NET
và .NET Framework để nghiên cứu. Càng đọc tài liệu càng thấy cái ngôn ngữ mới này nó
khác với C++ trước khá nhiều, rõ ràng mạch lạc không rối rắm như trước và rất dễ học
một cách rất ư tự nhiên. Thế là một mạch từ tháng 5/2003 đến nay, người viết đã hoàn
chỉnh xong 8 tập. Mỗi tập dài vào khoảng từ 600 đến 750 trang.
Bạn cứ thử hình dung là trong ngành điện toán, cứ vào khoảng một thập niên thì có
một cuộc cách mạng nho nhỏ trong cách tiếp cận về lập trình. Vào thập niên 1960 là sự
xuất hiện ngôn ngữ Cobol và Fortran (cũng như ngôn ngữ RPG của IBM) thay thế cho
ngôn ngữ hợp ngữ, giữa thập niên 70 là sự xuất hiện máy vi tính với ngôn ngữ Basic vào
đầu thập niên 80 những công nghệ mới là Unix có thể chạy trên máy để bàn với ngôn ngữ
cực mạnh mới là C, phát triển bởi ATT. Qua đầu thập niên 90 là sự xuất hiện của
Windows và C++ (được gọi là C với lớp), đi theo sau là khái niệm về lập trình thiên đối
tượng trong bước khai mào. Mỗi bước tiến triển như thế tượng trưng cho một đợt sóng
thay đổi cách lập trình của bạn: từ lập trình vô tổ chức qua lập trình theo cấu trúc
(structure programming hoặc procedure programming), bây giờ qua lập trình thiên đối
tượng. Lập trình thiên đối tượng trên C++ vẫn còn “khó nuốt” đối với những ai đã quen
cái nếp nghĩ theo kiểu lập trình thiên cấu trúc. Vả lại, lập trình thiên đối tượng vào cuối

thập niên qua vẫn còn nhiều bất cập, không tự nhiên nên viết không thoải mái.
Bây giờ, với sự xuất hiện của .NET với các ngôn ngữ C#, VB.NET, J# xem ra cách
suy nghĩ về việc viết chương trình của bạn sẽ thay đổi theo chiều hướng tích cực. Nói một
cách ngắn gọn, sàn diễn .NET sẽ làm cho bạn triển khai phần mềm dễ dàng hơn trên
Internet cũng như trên Windows mang tính chuyên nghiệp và thật sự thiên đối tượng. Nói


17 Lập trình Web sử dụng ASP.NET và Visual C#

Dương Quang Thiện

một cách ngắn gọn, sàn diễn .NET được thiết kế giúp bạn triển khai dễ dàng những ứng
dụng thiên đối tượng chạy trên Internet trong một môi trường phát tán (distributed). Ngôn
ngữ lập trình thiên Internet được ưa thích nhất sẽ là C#, được xây dựng từ những bài học
kinh nghiệm rút ra từ C (năng suất cao), C++ (cấu trúc thiên đối tượng), Java (an toàn) và
Visual Basic (triển khai nhanh, gọi là RAD - Rapid Application Development). Đây là
một ngôn ngữ lý tưởng cho phép bạn triển khai những ứng dụng web phát tán được kết
cấu theo kiểu ráp nối các cấu kiện (component) theo nhiều tầng nấc (n-tier).

Tập VI được tổ chức thế nào
Tập VI này là tập cuối nói về lý thuyết của bộ sách .NET toàn tập. Theo mô hình lập
trình các ứng dụng ngày nay, người ta chia ứng dụng ra làm 3 lớp (layer): presentation
layer, business layer và data access layer. Presentation layer là phần chương trình liên
quan đến nhập liệu và kết xuất lên màn hình hoặc lên các báo cáo in ra giấy, nghĩa là có
tương tác với người sử dụng. Phần data access layer là những gì liên quan đến căn cứ dữ
liệu, đến các tập tin trữ trên đĩa bất cứ dưới dạng thức nào (Word, Access, Excel chẳng
hạn). Còn phần Business layer là những thủ tục (procedures), những qui tắc xử lý (rules)
mà ta thường thấy trong kinh doanh (do đó có từ business). Qua hai tập I, “C# Căn bản”
và tập II, “C# và .NET Framework” của bộ sách .NET toàn tập này thì business layer đã
được đề cập trọn vẹn. Tập III, “Giao diện người sử dụng” đã đề cập đến Presentation

layer về phần nhập liệu phía người sử dụng, còn tập IV, “Lập trình căn cứ dữ liệu với
ADO.NET” trình bày trọn vẹn phần Data Access layer. Còn tập VI này, “Lập trình các
báo cáo sử dụng Crystal Reports” thì lại trình bày phần Presentaion layer phía kết xuất
các báo cáo, đối nghịch với giao diện người sử dụng phía nhập liệu. Cuối cùng tập V,
“Lập trình Web và ASP.NET” là những gì được trình bày trong 3 lớp nhưng được sử
dụng trong các ứng dụng mạng Web.
Nếu bạn kinh qua 6 tập sách vừa kể trên thì bạn có khả năng lập trình trên Windows
và trên Web và có thể bắt đầu đi vào các ứng dụng quản lý xí nghiệp như ERP (Enterprise
Resources Planning – Hoạch định Nguồn lực Doanh nghiệp) chẳng hạn.
Chương 1

Tổng quan về Crystal Reports .NET

Trong chương này, chúng tôi trình bày cái nhìn đầu tiên về Crystal Reports for Visual
Studio .NET (Crystal Reports .NET), bao gồm việc cho biết sản phẩm phần mềm này
khác biệt so với những phiên bản Crystal Reports khác trước như thế nào, làm thế nào tìm
và chạy những ứng dụng mẩu kèm theo. Chúng tôi cũng lướt qua kiến trức mới của
Crystal Reports .NET và học cách thích nghi với .NET Framework. Cho dù bạn là một
lập trình viên chuyên nghiệp chuyên triển khai những ứng dụng đang muốn chuyển qua
sử dụng Visual Studio .NET hoặc bạn đang triển khai ứng dụng đầu tiên và chưa hề nghe
nói đến Crystal Reports, thì tất cả bắt đầu từ đây với Report Designer.


Mục lục
Chương 2

18
Hãy thử bắt đầu với Crystal Reports .NET

Trong chương này ta sẽ lần lượt sử dụng Crystal Reports Report Designer trong lòng

Visual Studio .NET để thiết kế 3 thí dụ báo cáo từ đơn giản đến phức tạp, học cách tạo và
du nhập các báo cáo dùng trong các ứng dụng Windows và Web. Vào cuối chương bạn sẽ
có khả năng triển khai những báo cáo cơ bản và có thể hội nhập các báo cáo này vào ứng
dụng Windows hoặc Web. Nếu bạn đã có kinh nghiệm sử dụng Crystal Reports trước
đây, thì những điều mô tả trong chương sẽ rất quen thuộc đối với bạn. Những điều được
trình bày trong chương này sẽ đeo đuổi bạn suốt cuộc đời làm báo cáo của bạn.
Chương 3

Tìm hiểu Crystal Reports Object Model

Trong chương này, chúng tôi sẽ tìm hiểu sâu về mô hình đối tượng Crystal Reports
với cách sử dụng lớp ReportDocument để qui chiếu hầu như tất cả các lớp và thuộc tính
của báo cáo, của ô control CrystalReportViewer, thường được gọi là viewer và với mô
hình đối tượng Crystal Reports bằng cách tham gia vào những tình huống (event) được
kích hoạt trong khi bản báo cáo được nhìn xem trước hoặc đang được in ra. Các tình
huống này rất hữu ích khi biết được là phần nào trên báo cáo đang trong vòng quan sát và
người sử dụng đang làm gì.
Chương 4

Sắp xếp & Gộp nhóm

Phần lớn các bản báo cáo không chỉ đơn thuần gồm một vài trang, mà vài trăm trang
là chuyện bình thường. Và khi tham khảo một tập tài liệu dày như thế mà dữ liệu lại được
trình bày lộn xộn không được sắp xếp theo một trật tự nào đó hoặc gộp theo nhóm
(thường được gọi là ngắt cấp bậc) thì sẽ mất thời giờ và công sức đối với người đọc.
Crystal Reports cho bạn khả năng sắp xếp dữ liệu và gộp dữ liệu theo nhóm. Các báo cáo
gộp nhóm (grouping report) cũng sẽ cho phép bạn khả năng tạo những báo cáo xoáy sâu
(drill-down report) và tổng kết dữ liệu. Chương này sẽ đề cập đến sắp xếp và gộp nhóm
cũng như chỉ cho bạn khả năng thay đổi các tính năng này vào lúc chạy.
Ngoài ra vào cuối chương chúng tôi cũng sẽ đề cập đến việc lập trình trên mô hình

đối tượng Crystal Reports Engine liên quan đến sắp xếp và gộp nhóm.
Chương 5

Sử dụng các thông số

Theo thời gian, khi Crystal Reports ngày càng tiến bộ, thì số cách uốn nắn
(customize) báo cáo cũng tăng theo. Tuy nhiên, cách sử dụng các thông số để nhập liệu là
cách cơ bản và độc đáo nhất. Chương này khảo sát cách tạo các thông số, yêu cầu nhập


19 Lập trình Web sử dụng ASP.NET và Visual C#

Dương Quang Thiện

liệu và sử dụng thông số để uốn nắn báo cáo, cũng như cách lập trình mô hình đối tượng
thông số.
Chương 6
Uốn nắn các báo cáo
Trong các chương trước, bạn có cơ hội tạo những dạng thức báo cáo cơ bản, bao gồm
sắp xếp và gộp nhóm và học cách thực hiện vài uốn nắn (customization) cơ bản đối với
báo cáo vào lúc chạy. Trong chương này, chúng tôi sẽ đi xa hơn chỉ cho bạn thấy thêm
việc uốn nắn tinh vi hơn đối với bản báo cáo của bạn. Việc này bao gồm việc sàng lọc
(filtering) các mẫu tin dùng trong báo cáo, dùng các section đối với những kỹ thuật định
dạng cao cấp và tạo những tổng cộng vào lúc chạy. Một khi bạn nắm vững chương này,
bạn có đủ khả năng kết sinh phần lớn những báo cáo dùng trong thường nhật.
Chương 7

Tìm hiểu về Công thức và Lôgic chương trình

Chương này sẽ tập trung vào việc xem phần lớn thời gian phải mất công ở đâu trong

việc triển khai các dự án về Crystal Reports: viết các công thức và đoạn mã lôgic. Chúng
ta sẽ thấy cách tốt nhất để thêm tính toán và lôgic vào các bản báo cáo và học qua đủ cú
pháp và đoạn mã để thụ lý hầu hết mọi tình huống. Chúng ta sẽ biết làm cách nào phân
biệt giữa hai “hương vị” của Crystal Formula Language và cách làm thế nào viết ra những
công thức tuyển chọn các mẫu tin cũng như định dạng có điều kiện.
Chương 8

Vẽ biểu đồ thế nào?

Mục đích thiết yếu của một bản báo cáo là chuyển tải ý nghỉa nào đó cho người đọc.
Các dòng văn bản cũng như những cột số mang một ý nghỉa chuyển tải thông tin không
thể chối cãi, nhưng đôi khi khó hình dung nếu nó không được trình bày dưới dạng đồ thị
(biểu đồ hoặc lược đồ).
Do đó, khả năng vẽ biểu đồ của Crystal Reports .NET làm cho những con số cũng
như thống kê đem lại một chiều kích bổ sung vào việc chuyển tải ý nghĩa đối với thông
tin. Các dữ liệu kiểu số nếu được biểu diễn dưới dạng biểu đồ nhìn thấy được có thể cho
người ta thấy một xu hướng (trend) hoặc cho thấy kích thước tương đối để so sánh.
Các kiểu dữ liệu khác nhau thường được biểu diễn tốt nhất theo nhiều kiểu biểu đồ
khác nhau và Crystal Reports .NET cung cấp cho bạn vô số kiểu biểu đồ thích ứng với bất
cứ tập hợp dữ liệu nào mà bạn có thể có.
Chương 9

Tạo báo cáo Cross-Tab

Đối với vài người, trên các bản báo cáo việc tổng kết dữ liệu (data summary) bằng
cách này hay cách khác không quan trọng bằng dữ liệu chi tiết. Tuy nhiên, đối với một số


Mục lục


20

người khác, nhất là trong giới lãnh đạo, các bản báo cáo với những hàng tổng kết nằm ở
cuối báo cáo (report footer) hoặc ở cuối mỗi nhóm (group footer) là một điều rất tốt cho
sự hiểu biết nhất là đối với người thường phải lấy quyết định quan trọng trong kinh
doanh. Trong vài trường hợp như thế, đối tượng cross-tab có thể trình bày dữ liệu dưới
dạng dễ hiểu và có khả năng truyền đạt ý nghĩa của dữ liệu. Các bản báo cáo cross-tab là
một thể thức cực mạnh tạo những tổng kết dữ liệu dưới dạng một bảng tính (spreadsheet)
quá quen thuộc đối với giới tài chính. Lợi điểm chính của một cross-tab là nó gộp nhiều
tổng kết lại với nhau dưới dạng cô đọng.
Chương 10

Thêm Subreport vào báo cáo chính

Trong các chương trước, người ta biết làm thế nào tạo những bản báo cáo dựa trên dữ
liệu nằm rải rác trên nhiều bảng dữ liệu có liên hệ với nhau cùng thuộc một căn cứ dữ
liệu. Điều này xem ra cũng rất tốt. Tuy nhiên, thỉnh thoảng ta cũng muốn tạo một bản báo
cáo cho hiển thị dữ liệu từ nhiều hai hoặc nhiều nguồn dữ liệu khác nhau không liên hệ
hoặc có liên hệ một cách gián tiếp. Crystal Reports có thể thỏa mãn yêu cầu chính đáng
này bằng cách cho phép bạn đặt lọt thỏm một bản báo cáo này trong một bản báo cáo kia.
Bản báo cáo được đặt lọt thỏm được gọi là Subreport.1
Subreport thường dùng để tạo ra nhiều view dữ liệu khác nhau trên một báo cáo đơn
lẻ. Các báo cáo chuẩn thường có một hạn chế, đó là chỉ có thể hiển thị một view đơn lẻ
mà thôi. Thay vì tạo một hoặc nhiều báo cáo để trình bày những view bổ sung, ta có thể
dùng Subreport để trình bày dữ liệu độc lập đối với báo cáo chính hoặc trình bày nhiều
mối liên hệ cha-con.
Nhìn theo góc độ chức năng và thiết kế, một Subreport hầu như chẳng khác nào một
báo cáo chuẩn, vì nó có cùng cách bố trí như một báo cáo chuẩn và nó có thể dùng cùng
tất cả các đối tượng báo cáo. Như vậy, Subreport được xem như là thành phần của một
báo cáo khác.

Chương 11

Hội nhập báo cáo vào ứng dụng Windows

Trong chương này, chúng ta sẽ học cách hội nhập (hoặc tích hợp - integrate) và nhìn
xem những báo cáo này từ các ứng dụng Windows và học cách uốn nắn các bản báo cáo
vào lúc chạy sử dụng mô hình đối tượng của Crystal Reports .NET. Chúng tôi sẽ đề cập
đến: xác định đúng mô hình đối tượng phải sử dụng, namespace
CrystalDecisions.Windows.Forms, sử dụng Crystal Windows Forms Viewer,
cắt xén uốn nắn Windows Forms Viewer và chuyển thông tin cho Windows Forms
Viewer
Subreport có thể dịch là “báo cáo con” nghe nó vô duyên thế nào ấy, nên chúng tôi đành để yên
không dịch
1


21 Lập trình Web sử dụng ASP.NET và Visual C#
Chương 12

Dương Quang Thiện

Hội nhập báo cáo vào ứng dụng Web

Trong khi các ứng dụng Windows vẫn còn thịnh hành trong một thời gian lâu, xu
hướng triển khai các ứng dụng ngày càng thiên về ứng dụng trên Web.
Trong chương này, chúng tôi sẽ xem làm thế nào hội nhập và view các báo cáo trong
lòng các ứng dụng Web được tạo bởi Visual Studio .NET IDE. Ngoài ra, chúng tôi sẽ xét
đến việc uốn nắn các bản báo cáo vào lúc chạy cũng như các vấn đề do việc triển khai
ứng dụng đặt ra.
Chúng tôi sẽ cho xây dựng những biểu mẫu được dùng trong các ứng dụng Web lo

việc báo cáo, minh họa cho thấy Crystal Reports.NET có thể được dùng trong các ứng
dụng Web của bạn.
Chương 13

Tạo XML Report Web Services

Trong các chương trước, chúng ta đã xem qua việc hội nhập các bản báo cáo vào các
ứng dụng Windows và Web. Bây giờ ta tiến thêm một bước là làm thế nào hoạt động với
XML Report Web Services. Tạo những bản báo cáo được chạy như là Report Web
Services (RWS) cho bạn khả năng phân phối những báo cáo sử dụng SOAP thông qua
nghi thức HTTP. Sẽ không có vấn đề các báo cáo bị tắc nghẽn do an ninh hoặc hạn chế
mạng.
Có hai phần để nhìn xem các báo cáo như là một dịch vụ Web. Phần thứ nhất là xây
dựng ứng dụng Web và phát hành (publish) bản báo cáo. Phần thứ hai là tạo một ứng
dụng tiêu thụ báo cáo.
Vào cuối chương này, bạn sẽ có khả năng nhận diện một XML Report Web Services
là gì và hiểu cách sử dụng nó trong ứng dụng của bạn, bạn cũng có khả năng tạo ra một
XML Report Web Services từ một Crystal Reports và dùng dịch vụ với Crystal Windows
Viewer hoặc Crystal Web Viewer để nhìn xem một bản báo cáo.
Chương 14

Làm việc với các dữ liệu nguồn

Trong chương này ta sẽ xem Crystal Reports .NET làm việc thế nào với các dữ liệu
nguồn khác nhau và xem nó tương tác với ADO.NET thế nào. Tất cả việc kết nối với căn
cứ dữ liệu sẽ được xây dựng xung quanh một trong hai mô hình: Pull Model và Push
Model. Mô hình Pull Model là đơn giản nhất trong việc thi công và dễ học vì nó chẳng
đòi hỏi bất cứ việc lập trình nào từ phía bạn. Các báo cáo nào được thiết kế sử dụng Pull
Model sẽ làm cho mọi việc đều tự động. Crystal Reports sẽ làm mọi việc “bẩn tay”: tạo
mối kết nối với dữ liệu nguồn, đọc dữ liệu, cho điền đầy dữ liệu lên bản báo cáo, rồi đóng

lại kết nối. Còn với Push Model, thì bạn phải tự lo lấy mọi thứ thông qua lập trình. bạn
phải lo mở kết nối với dữ liệu nguồn, đi lấy dữ liệu ghi vào ký ức, chuyển giao dữ liệu


Mục lục

22

cho bản báo cáo và đóng lại kết nối. Với Pull Model bạn chỉ có thể thực hiện những việc
đơn giản, cứng nhắc, còn với Push Model bạn có thể thực hiện nhiều chức năng phức tạp
và uyển chuyển hơn. Trong các chương trước, từ Chương 3 trở đi, chúng tôi thường trình
bày Pull Model ở phần thiết kế đi đầu và Push Model ở phần lập trình mô hình đối tượng
Crystal Reports Engine.
Khi đọc hết chương này, bạn sẽ có cái nhìn về cách Crystal Reports.NET tương tác
thế nào với các dữ liệu nguồn khác nhau, những mục chọn để làm việc với những dữ liệu
nguồn này và việc sử dụng ADO.NET như là một dữ liệu nguồn đối với việc triển khai
các bản báo cáo của bạn.
Chương 15

Xuất khẩu và triển khai hoạt động các báo cáo

Cuối cùng thì việc lập trình và trắc nghiệm ứng dụng của bạn cũng đến hồi kết thúc.
Và bước cuối cùng trong chu kỳ phát triển phần mềm là triển khai ứng dụng và đưa vào
hoạt động thực sự, nghĩa là làm thế nào phân phối ứng dụng đưa đến tay người sử dụng
cuối cùng (end user). Crystal Reports cho phép bạn hai cách để phân phối các bản báo
cáo:


Cách thứ nhất là cho xuất khẩu báo cáo (report exporting) dưới những dạng thức
khác nhau. Đây cũng tương tự như một web service, theo đấy bản báo cáo có thể

được nhìn xem trên nhiều sàn diễn với những ứng dụng khác nhau. Đây có thể là
một tập tin, một e-mail đính kèm, một Exchange folder hoặc một tập tin nhị phân
(binary stream).



Cách thứ hai là cho triển khai các bản báo cáo đi kèm theo ứng dụng. Việc này
đòi hỏi thay đổi các tập tin setup làm thế nào các bản báo cáo kèm theo các thư
viện được gắn liền được cài đặt trên máy đích.

Chương này sẽ đề cập đến hai lĩnh vực vừa kể trên: xuất khẩu và triển khai đưa vào
hoạt động các báo cáo.

Bộ sách .NET toàn tập gồm những tập nào?
Như đã nói, bộ sách .NET toàn tập này gồm 8 tập, 6 nói về lý thuyết và 2 về thí dụ
thực hành.

Tập I:

Lập trình Visual C# thế nào?

Chương 1
Chương 2
Chương 3

Visual C# và .NET Framework
Bắt đầu từ đây ta tiến lên!
Sử dụng Debugger thế nào?



23 Lập trình Web sử dụng ASP.NET và Visual C#
Chương 4
Chương 5
Chương 6

Căn bản Ngôn ngữ C#
Lớp và Đối tượng
Kế thừa và Đa hình

Chương 9
Chương 10
Chương 11
Chương 12
Chương 13
Chương 14

Giao diện
Bản dãy, Indexers và Collections
Chuỗi chữ và biểu thức regular
Thụ lý các biệt lệ
Ủy thác và tình huống
Lập trình trên môi trường .NET

Chương 7
Chương 8

Dương Quang Thiện

Nạp chồng tác tử
Cấu trúc Struct


Tập II: Visual C# và Sàn diễn .NET
Chương 1
Chương 2
Chương 3
Chương 4
Chương 5
Chương 6
Chương 7
Chương 8
Chương 9

Input/Output và Object serialization
Xây dựng một ứng dụng Windows
Tìm hiểu về Assembly và cơ chế Version
Tìm hiểu về Attribute và Reflection
Marshalling và Remoting
Mạch trình và Đồng bộ hoá
Tương tác với unmanaged code
Lập trình ứng dụng Web
Lập trình Web Service

Tập III: Giao diện người sử dụng viết theo Visual C#
Chương 1
Chương 2
Chương 3
Chương 4
Chương 5
Chương 6
Chương 7

Chương 8
Chương 9
Chương 10
Chương 11
Chương 12
Chương 13
Chương 14

Tạo giao diện người sử dụng dùng lại được
Thiết kế giao diện theo Lớp và theo Tầng nấc
Tìm hiểu đồ họa và GDI+
Tìm hiểu về biểu mẫu và lớp Form
Cơ bản về lớp Control
Tìm hiểu về Windows Forms Controls
Các ô control tiên tiến
Các ô custom control
Hỗ trợ Custom Control vào lúc thiết kế
MDI Interfaces và Workspace
Dynamic User Interfaces
Tìm hiểu về Data Controls
GDI+ Controls
Help và Hỗ trợ được đặt lọt thỏm trên ứng dụng


×