- [C#] Di chuyển và thay đổi kích thước Control Winform khi ứng dụng đang chạy
- [VB.NET] Chia sẻ source tạo sắp xếp đội hình bóng đá Line-ups đội bóng
- [C#] Hướng dẫn chỉnh sửa Text của label trực tiếp trên winform
- [C#] Hướng dẫn custom TextBox giống Ultraviewer trên Winform
- [C#] Show Modal Winform like Bootstrap
- [DATABASE] Thứ tự thực hiện mệnh đề truy vấn SELECT trong Sqlserver
- [C#] Hướng dẫn viết addin Excel Lấy hình ảnh từ URL internet vào Excel
- [DATABASE] TSQL view max length all column data trên table Sqlserver
- [DEVEXPRESS] Hướng dẫn sử dụng MailMerge kèm Hình ảnh trên Winform
- [DATABASE] Hướng dẫn truy vấn xem kích thước lưu trữ của từng bảng ghi Table trên sqlserver
- [C#] Hướng dẫn Fake Date Time sử dụng thư viện Harmony
- [DATABASE] Phân biệt câu lệnh DDL và DML trong sqlserver
- [C#] Hướng dẫn convert file mã HTML sang file Pdf trên winform
- [DEVEXPRESS] Tạo các loại mã vạch Barcode trực tiếp trên Devexpress Barcode API
- [DEVEXPRESS] Hướng dẫn custom Simple button thành Progressbar
- [DATABASE] Tách số và chữ từ chuỗi - hàm tối ưu hóa tách số và chữ trong Sqlserver
- [C#] Tìm kiếm gần đúng Full Text Search sử dụng thư viện Lucene.NET
- [C#] Chia sẻ tài liệu, sdk và source code máy chấm công dòng máy ZKTeco
- [C#] Memory Cache là gì, và sử dụng trong ứng dụng Winform
- [DATABASE] Khóa chính Primary Key trong Sqlserver
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 !