- [C#] Ẩn ứng dụng winform từ Apps vào Background Process trên Task Manager
- [SQLSERVER] Xử lý ngoại lệ sử dụng TRY...CATCH và RAISEERROR
- [C#] Bắt sự kiện bàn phím chuột bên ngoài ứng dụng winform sử dụng thư viện MouseKeyHook
- [DEVEXPRESS] Đặt mật khẩu và bỏ mật khẩu tập tin file PDF
- [C#] Thêm ứng dụng vào Taskbar sử dụng SharpShell DeskBand
- [C#] Hướng dẫn thêm text vào hình ảnh icon winform
- [C#] Chia sẽ tổng hợp source code đồ án về Csharp
- [C#] Hướng dẫn viết ứng dụng quay màn hình video winform, Screen Recorder
- [C#] Hướng dẫn sử dụng thư viện Input Simulator để làm việc với Keyboard, Mouse Virtual
- [DEVEXPRESS] Hướng dẫn tích Filter Contain khi click chuột phải vào cell selection trên Gridview
- [C#] Tra cứu mã số thuế cá nhân bằng CMND hoặc CCCD
- [C#] Convert hình ảnh image thành Blurhash sử dụng trong loading image winform
- [POWERSHELL] Script sao lưu backup và nén database sqlserver
- [C#] Giới thiệu thư viện Autofac Dependency Injection
- [C#] Hướng dẫn tạo Windows Services đơn giản Winform
- [C#] Một click chuột điều khiển máy tính từ xa sử dụng Ultraviewer
- Hướng dẫn đóng gói phần mềm sử dụng Powershell biên dịch script thành file exe
- [C#] Hướng dẫn sử dụng Task Dialog trên NET 5
- [C#] Hướng dẫn xem lịch sử các trang web đã truy cập trên Chrome Browser
- [C#] Hướng dẫn lấy thông tin Your ID và Password của Ultraviewer 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 !