hướng dẫn tạo report với linq
DESCRIPTION
Hướng dẫn tạo report với LINQ cho những bạn học lập trình CSharp. Hướng dẫn rất cụ thể, chi tiết, có kèm các hình ảnh minh họa trong mỗi bước. Các bạn xem hướng dẫn và làm theo nhé. Đây là source kèm file hướng dẫn, các bạn có thể download về tham khảo: http://goo.gl/qpXdP9TRANSCRIPT
Nguyễn Duy Đại – DHTH4 - HUI Trang 1
Hướng dẫn tạo Report với LinQ
I. Yêu cầu đặt ra:
- Tạo một CSDL gồm 2 bảng: Khoa, SinhVien.
- In danh sách tất cả các sinh viên (ko phụ thuộc vào khoa).
- In danh sách sinh viên theo từng khoa, thống kê số lượng sinh viên tương ứng của khoa đó.
II. Chuẩn bị CSDL
- Mình tạo một CSDL DuyDai để demo gồm 2 bảng:
Bảng Khoa gồm có 3 khoa là: Cơ khí, CNTT và Tài chính ngân hàng
Bảng SinhVien gồm 6 sinh viên phân đều ra 3 khoa (mỗi khoa 2 SV).
- Tiếp đó mình tạo thêm 1 view để làm nguồn khi xuất báo cáo SV theo từng khoa:
create view view_Khoa_SinhVien
as
select k.tenkhoa, s.masv, s.tensv, s.diachi, s.sodienthoai
from SinhVien s inner join Khoa k
on k.makhoa = s.makhoa
III. Chuẩn bị giao diện
Cuối cùng mới đến công việc chính là thiết kế Report. Các bạn theo dõi tiếp phía dưới.
Nguyễn Duy Đại – DHTH4 - HUI Trang 3
2. Sau khi OK thì sẽ hiện ra trình hướng dẫn tạo Report theo từng bước, bạn cứ thực hiện
thứ tự theo từng yêu cầu.
Chọn Using the Report Wizard OK. ( Chọn Using the Report Wizard làm cho nó nhanh.hi.)
Các bạn cũng có thể chọn As a Blank Report nhưng cái đó phải thiết kế từng tí một, mình ko đủ
thời gian để hướng dẫn.
Nguyễn Duy Đại – DHTH4 - HUI Trang 5
4. Tiếp đến chọn những Field muốn sử dụng trong Report
- Lấy tất luôn nhé, vì cần xuất hết thông tin mà.
Nguyễn Duy Đại – DHTH4 - HUI Trang 6
5. Tiếp đến chọn Field mà mình muốn dùng để Group khi xuất Report. Nếu ko cần thì bỏ
qua và Next để sang bước tiếp theo.
- Nếu bạn cần gom nhóm thì chọn cột muốn gom , ko thì để nguyên rồi Next
Nguyễn Duy Đại – DHTH4 - HUI Trang 7
6. Tiếp theo là chọn Field muốn dùng để lọc dữ liệu (Cái này dùng cho Report có tham số
truyền vào) . Nếu ko cần thì bỏ qua và Next để sang bước tiếp theo.
Nguyễn Duy Đại – DHTH4 - HUI Trang 8
7. Cuối cùng là chọn Style cho Report OK
Vậy là xong bước đầu. Công việc tiếp theo là thiết kế Report theo yêu cầu của bạn.
Nguyễn Duy Đại – DHTH4 - HUI Trang 9
8. Sau khi bạn thực hiện xong các bước ở trên thì 1 report sẽ hiện ra cho mình tùy chỉnh.
Công việc của bạn là sửa lại tiêu đề cột, thêm cái Title tên bảng, thêm cái biến đếm tổng
số sinh viên.
- Để sửa tên cột thì bạn click phải chuột vào tên cột trong phần Page Header rồi chọn Edit
Text Object. Bạn có thể bỏ kiểu gạch chân, canh trái phải cho tiêu đề tùy theo sở thích.
Nguyễn Duy Đại – DHTH4 - HUI Trang 10
- Tiếp đến là tạo thêm cái Title tên bảng. Bạn click phải chuột vào một vùng trống bất kỳ rồi
chọn: Insert Text Object. Gõ tên bảng mình muốn, ở đây mình đặt tên bảng là “DANH
SÁCH SINH VIÊN”
- Tiếp theo bạn cần tạo 1 biến dùng để đếm tổng số sinh viên. Bạn làm như sau:
o Nhấp phải chuột vào Formula Fields New
Nguyễn Duy Đại – DHTH4 - HUI Trang 11
o Cửa sổ hiện ra bạn đặt tên Enter
o Cửa sổ tạo Formula Fields hiện ra, bạn hãy viết code để thực hiện đếm SV. Lưu ý: bạn
có thể kéo thả để phát sinh cột. Đầu tiên bạn kéo công thức Count ra, tiếp đó là kéo thuộc
tín masv vào thì ta cũng có công thức này. Thông thường thì thực hiện kéo thả sẽ nhanh
và chính xác hơn. Xong thì bạn click vào “Save and close”.
Khi bạn tạo xong nó sẽ xuất hiện một biến “demSV” trong Formula Fields. Khi nào cần sử
dụng thì bạn kéo thả vào Report thôi
Nguyễn Duy Đại – DHTH4 - HUI Trang 12
9. Tiếp đến mình sẽ hướng dẫn định dạng lại ngày theo kiểu của VN. (dd/mm/yyyy)
- Khi bạn vừa tạo xong Report thì mặc định hệ thống sẽ tạo cho bạn một biến kiểu ngày
mặc định là “m/d/yyyy”. Để sửa lại theo ý mình thì bạn click phải chuột vào biến đó, chọn
Format Object.
Nguyễn Duy Đại – DHTH4 - HUI Trang 14
- Tiếp đến bạn check vào kiểu ngày là: DMY, sau đó sửa lại một vài cái theo hình dưới.
Vậy là xong phần định dạng ngày.
10. Tiếp theo mình sẽ hướng dẫn định dạng số đếm (cái này xem hình thôi là làm dc, mình
khỏi phải viết dài dòng nhé)
Nguyễn Duy Đại – DHTH4 - HUI Trang 16
11. Cuối cùng là đến phần kẻ bảng.
- Click chuột phải vào vùng trống chọn Insert Line
Nguyễn Duy Đại – DHTH4 - HUI Trang 17
- Click chọn điểm đầu, giữ chuột và di chuyển đến điểm kết thúc là ta sẽ vẽ dc 1 đường.
- Các bạn là tương tự để vẽ các đường khác để tạo thành 1 bảng như thế này:
- Lưu ý: để các đường bằng nhau thì bạn nên Copy-Paste chứ ko nên vẽ lại nhiều lần một
đường có cùng kích thước.
- Và một cái tùy chọn rất quan trọng là khi các đường chưa nằm đúng vị trí mà bạn
muốn, bạn dùng các phím mũi tên để di chuyển, nhưng khổ nỗi là mỗi lần di chuyển nó
sẽ nhích một khoảng khá lớn lên nhiều lúc bất tiện cho chúng ta. Để khắc phục điều này
thì bạn vào menu: Crystal Reports Design Default Settings…
Nguyễn Duy Đại – DHTH4 - HUI Trang 18
Trong cửa sổ hiện ra bạn thiết lập thông số cho Grid Size là giá trị tối thiểu (0,01 in). Bây
giờ bạn hãy dùng phím mũi tên di chuyển thử lại xem, mỗi lần di chuyển sẽ chỉ là 1 khoảng
rất nhỏ thôi.
Nguyễn Duy Đại – DHTH4 - HUI Trang 19
Vậy là đã tùy chỉnh xong hết cái report 1, công việc của bạn là Code để đưa nguồn cho report.
Mình sẽ hướng dẫn ở cuối.
Nguyễn Duy Đại – DHTH4 - HUI Trang 20
V. Tạo Report từ nhiều bảng (ở đây là 2 bảng) sử dụng View
- Ngay từ đầu mình đã chuẩn bị 1 View: view_Khoa_SinhVien
- Bây giờ mình sẽ hướng dẫn tạo report dựa vào view đó. Các bước tạo bạn xem hình nha,
giống như trên thôi.
1. Add new report.
2. Chọn Using the Report Wizard
Nguyễn Duy Đại – DHTH4 - HUI Trang 22
4. Chọn Fields xuất hiện trong Report (ở đây mình chọn hết vì mình đã lọc ngay từ khi tạo
view rồi.)
Nguyễn Duy Đại – DHTH4 - HUI Trang 23
5. Chọn biến muốn Group lại, ở đây mình chọn là group theo tên khoa lên mình chọn tên
khoa
Nguyễn Duy Đại – DHTH4 - HUI Trang 26
7. Khi tạo xong các bạn sẽ thấy thế này.
8. Các bạn sửa lại tên cột, và xóa cái Group #1 Name đi (xóa cả 2 luôn), rồi bạn kéo cái
tenkhoa từ phần Details lên phần GroupHeaderSection1.
- Tiếp tục các bạn vẽ bảng và tạo 2 biến đếm là demKhoa và demSV (sinh viên theo từng
khoa).
- Khi làm xong các công việc ở trên bạn sẽ thấy dc 1 report như thế này:
Nguyễn Duy Đại – DHTH4 - HUI Trang 27
- Mình chỉ lưu ý với các bạn là cách tạo biến demSV theo khoa
Code: (đối số 1 là biến cần đếm, đối số 2 là điều kiện đếm)
Count ({Report_VS_LinQ_view_Khoa_SinhVien.masv},{Report_VS_LinQ_view_Khoa_SinhVien.tenkhoa})
OK, công đoạn chuẩn bị giao diện vào report đã xong, tiếp đến là Code thôi.
Nguyễn Duy Đại – DHTH4 - HUI Trang 28
VI. Code
Các bạn chỉ cần chú ý duy nhất cho mình một điều là using thêm 2 thư viện này:
using CrystalDecisions.CrystalReports.Engine;
using System.Diagnostics; //using thư viện này để mở file
Chi tiết code các bạn xem trong demo nhé. Rất dễ hiểu.
CHÚC THÀNH CÔNG!