- [VB.NET] Chia sẻ source code lịch âm dương và hẹn lịch nhắc việc
- [C#] Hướng dẫn đọc thông số thiết bị Thiết bị kiểm tra Pin (HIOKI BATTERY HiTESTER BT3562)
- [VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
- [C#] Hướng dẫn chứng thực đăng nhập ứng dụng bằng vân tay (Finger Print) trên máy tính
- [C#] Color Thief cách xuất màu sắc thiết kế từ hình ảnh
- [C#] Cách tạo bản quyền và cho phép dùng thử ứng dụng Winform
- [C#] Hướng dẫn sử dụng trình duyệt web Chrome convert HTML sang tập tin file PDF
- [C#] Kết nôi điện thoại Android, IOS với App Winform via Bluetooth
- [DATABASE] Cách query cộng trừ dồn dần trong Sqlserver
- [C#] Thiết kế ứng dụng Console đẹp với thư viện Spectre.Console
- [C#] Thiết kế ứng dụng Single Instance và đưa ứng dụng lên trước nếu kiểm tra ứng dụng đang chạy
- [C#] Giới thiệu JSON Web Token và cách đọc chuỗi token
- [C#] Cách tăng giảm font chữ tất cả các control trên winform
- [DEVEXPRESS] Tích hợp chức năng Tìm kiếm Search vào CheckedComboboxEdit
- [C#] Gởi email Metting Calendar Reminder kèm nhắc thời gian lịch họp
- [C#] Tìm kiếm xem danh sách từ khóa có tồn tại trong đoạn văn bản hay không
- [C#] Thiết kế giao diện ứng dụng trên Console sử dụng thư viện Terminal.Gui
- [C#] Hướng dẫn tạo mã VietQR Payment API Winform
- [C#] Sử dụng thư viện BenchmarkDotNet đo hiệu năng của hảm Method
- [DEVEXPRESS] Tìm kiếm không dấu tô màu highlight có dấu trên C# Winform
Xuất report từ GridView
Bài viết này mình xin hướng dẫn cách đổ dữ liệu vào datagrid view, hiển thị trên lưới, sau đó là xuất ra report. Mình sẽ ví dụ về báo cáo một danh sách nhân viên.
Đầu tiên, chuẩn bị data để test.
create database DemoReportDGV
go
use DemoReportDGV
go
create table tblNhanVien
(
id int identity primary key ,
manv char(5),
hoten nvarchar(50),
ngaysinh date,
chucvu nvarchar(50),
gioitinh bit,
quequan nvarchar(200),
ngayvaolam date
)
go
Chèn dữ liệu mẫu vào:
insert into tblNhanVien(manv,hoten,ngaysinh,chucvu,gioitinh,quequan,ngayvaolam) values ('NV001','Chu Văn Quầy','02/01/1972','Trưởng Phòng',1,'Hà Nam','03/04/2010')
Go
insert into tblNhanVien(manv,hoten,ngaysinh,chucvu,gioitinh,quequan,ngayvaolam) values ('NV002','Trần Như','06/05/1982','Phó phòng',1,'Quảng Bọ','01/06/2011')
Go
insert into tblNhanVien(manv,hoten,ngaysinh,chucvu,gioitinh,quequan,ngayvaolam) values ('NV003','Con Nhộng','06/05/1982','Nhân Viên',1,'Hà Tĩnh','09/04/2011')
Go
insert into tblNhanVien(manv,hoten,ngaysinh,chucvu,gioitinh,quequan,ngayvaolam) values ('NV004','Lê Phán Quyết','06/09/1989','Nhân Viên',0,'Huế','15/04/2015')
Go
insert into tblNhanVien(manv,hoten,ngaysinh,chucvu,gioitinh,quequan,ngayvaolam) values ('NV005','Phong Lưu','07/10/1991','Nhân viên',1,'Đà Nẵng','30/04/2012')
Go
insert into tblNhanVien(manv,hoten,ngaysinh,chucvu,gioitinh,quequan,ngayvaolam) values ('NV006','Nguyễn Ngỗ Ngáo','23/12/1986','Nhân viên',0,'Đồng Nai','01/05/2014')
Go
insert into tblNhanVien(manv,hoten,ngaysinh,chucvu,gioitinh,quequan,ngayvaolam) values ('NV007','Võ Ngông Cuồng','22/04/1990','Nhân viên',0,'Đồng Nai','19/04/2016')
Go
insert into tblNhanVien(manv,hoten,ngaysinh,chucvu,gioitinh,quequan,ngayvaolam) values ('NV008','Chu Văn Quầy','02/01/1972','Trưởng Phòng IT',1,'Hà Nam','03/04/2010')
Go
Như vậy là hoàn tất phần dữ liệu. Tiếp theo, ta cần 3 form để hoàn tất bài này:
1. Form chứa GridView:
Tiến hánh viết hàm để lấy dữ liệu cho grid trong form.Load:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim ds As New DataSet
ds = _load_data("select manv,hoten,ngaysinh,chucvu, case gioitinh when 1 then 'Nam' else N'Nữ' end as gioitinh,quequan,ngayvaolam from tblNhanVien")
'đưa source vao grid
GridControl1.DataSource = ds.Tables(0)
End Sub
Hàm cho nút In:
Private Sub btnXuatReport_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnXuatReport.ItemClick
dsreport = _load_data("select manv,hoten,ngaysinh,chucvu, case gioitinh when 1 then 'Nam' else 'Nữ' end as gioitinh,quequan,ngayvaolam from tblNhanVien")
Dim f As New report
f.Show()
End Sub
2. Form chứa Report: Nó là một DocumentView
Hàm để gọi report:
Private Sub report_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim rpt As New reportView
'đỗ dataser vào report
rpt.DataSource = dsreport
rpt.BindData()
'Hiện thì report lên ocumentViewer
DocumentViewer1.PrintingSystem = rpt.PrintingSystem
rpt.CreateDocument()
End Sub
3. Cuối cùng là cái Báo cáo:
Hàm BindData vào report:
Public Sub BindData()
lblchucvu.DataBindings.Add("Text", DataSource, "chucvu")
lblgioitinh.DataBindings.Add("Text", DataSource, "gioitinh")
lblhoten.DataBindings.Add("Text", DataSource, "hoten")
lblmanv.DataBindings.Add("Text", DataSource, "manv")
lblngaysinh.DataBindings.Add("Text", DataSource, "ngaysinh")
lblngayvaolam.DataBindings.Add("Text", DataSource, "ngayvaolam")
lblquequan.DataBindings.Add("Text", DataSource, "quequan")
End Sub
Xong, Nhấn F5 và xem kết quả nào.
Video hướng dẫn cụ thể:
Link source:
https://drive.google.com/file/d/0ByzaKzy1in4weElpWGxGRmY5bXc/view?usp=sharing
Mọi ý kiến đóng góp vui lòng để lại phần comment.
Thân ái !