- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 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 !