• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Sử dụng Report chuẩn của .NET, tại sao không?

Các bài viết hướng dẫn về Visual Basic .NET và C#

Điều hành viên: tungcan5diop, QUANITGROBEST

letruongn3
Bài viết: 4
Ngày tham gia: T.Ba 10/07/2012 8:54 pm
Has thanked: 2 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi letruongn3 » T.Hai 23/07/2012 11:18 am

Bác thuongbat có mail không cho mình xin để mình hỏi rõ nội dung này tí, mình cần hướng dẫn làm phần này nhưng với CSDL access, bác nói sẽ cho ví dụ mà đợi mãi không thấy



Hình đại diện của người dùng
thuongbat
Guru
Guru
Bài viết: 346
Ngày tham gia: CN 27/04/2008 10:11 am
Has thanked: 4 time
Been thanked: 79 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi thuongbat » T.Ba 31/07/2012 8:44 am

Xin lỗi mọi người vì thời gian vừa rồi mình bận nhiều việc quá nên không theo dõi được. Bây giờ thì rảnh hơn 1 chút rồi. Bạn nào có vấn đề gì thì cứ hỏi tiếp nhé. Mình sẽ cố gắng trả lời trong khả năng của mình.
Rượu gặp tri kỷ ngàn chén thiếu.
Chuyện người không hợp nửa câu thừa.

letruongn3
Bài viết: 4
Ngày tham gia: T.Ba 10/07/2012 8:54 pm
Has thanked: 2 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi letruongn3 » T.Tư 01/08/2012 8:05 pm

bác thuongbat cho mình ví dụ với CSDL access như đã nói đi!!!thank bác nhiều

Hình đại diện của người dùng
thuongbat
Guru
Guru
Bài viết: 346
Ngày tham gia: CN 27/04/2008 10:11 am
Has thanked: 4 time
Been thanked: 79 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi thuongbat » T.Sáu 10/08/2012 11:31 am

Ví dụ với access cho bạn đây. Sorry vì làm cái hướng dẫn mất thời gian nên hơi lâu 1 chút. Có file DOC hướng dẫn trong file đính kèm nhé.
MSReport.rar
(628.2 KiB) Đã tải 493 lần
Rượu gặp tri kỷ ngàn chén thiếu.
Chuyện người không hợp nửa câu thừa.

letruongn3
Bài viết: 4
Ngày tham gia: T.Ba 10/07/2012 8:54 pm
Has thanked: 2 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi letruongn3 » T.Sáu 10/08/2012 1:29 pm

Cảm ơn a thuongbat nhiều lắm!! a có mail không cho e xin có gì em tiện liên lạc được không ạ

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi bigboy83 » T.Ba 21/08/2012 12:26 am

cho mình hỏi thăm dữ liệu của mình là xml
và mình tạo Dataset và table vvv và thật sự mình đã làm chạy được rồi ở 1 chương trình khác. nhưng tự nhiên giờ mình bị lỗi là dt không load hết các record mà nó chỉ load có 1 cái à xin chỉ giúp mình với

[xml]<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<RP>
<prt STT="01" DiaChi="132/11 LIÊN KHU 10-11 " MSDB="2003 278 4184" Ngay="30/12/2012" ChiSo="34324" />
<prt STT="02" DiaChi="842/43 TỈNH LỘ 10" MSDB="2004 240 0974" Ngay="5/12/2100" ChiSo="234324" />
<prt STT="03" DiaChi="34/15/35 LK 2-5" MSDB="2003 278 3822" Ngay="5/8/2012" ChiSo="55555" />
</RP>[/xml]

[vbnet] Dim dt As New DataSet
dt.ReadXml(_path_tmpPrintFiles_xml)


ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout)
ReportViewer1.ZoomMode = ZoomMode.PageWidth


tb_Go_MoBindingSource.DataSource = dt
tb_Go_MoBindingSource.DataMember = "prt"

Me.ReportViewer1.RefreshReport()[/vbnet]

lúc trước mình cũng làm như vầy. nhưng nó chạy ổn định bây giờ làm cái tự nhiên nó load có 1 dòng dữ liệu tìm hoài ko hiểu tại sao. mong bạn chỉ giúp
cảm ơn bạn

Hình đại diện của người dùng
thuongbat
Guru
Guru
Bài viết: 346
Ngày tham gia: CN 27/04/2008 10:11 am
Has thanked: 4 time
Been thanked: 79 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi thuongbat » T.Ba 21/08/2012 8:42 am

bigboy83 đã viết:cho mình hỏi thăm dữ liệu của mình là xml
và mình tạo Dataset và table vvv và thật sự mình đã làm chạy được rồi ở 1 chương trình khác. nhưng tự nhiên giờ mình bị lỗi là dt không load hết các record mà nó chỉ load có 1 cái à xin chỉ giúp mình với

[xml]<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<RP>
<prt STT="01" DiaChi="132/11 LIÊN KHU 10-11 " MSDB="2003 278 4184" Ngay="30/12/2012" ChiSo="34324" />
<prt STT="02" DiaChi="842/43 TỈNH LỘ 10" MSDB="2004 240 0974" Ngay="5/12/2100" ChiSo="234324" />
<prt STT="03" DiaChi="34/15/35 LK 2-5" MSDB="2003 278 3822" Ngay="5/8/2012" ChiSo="55555" />
</RP>[/xml]

[vbnet] Dim dt As New DataSet
dt.ReadXml(_path_tmpPrintFiles_xml)


ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout)
ReportViewer1.ZoomMode = ZoomMode.PageWidth


tb_Go_MoBindingSource.DataSource = dt
tb_Go_MoBindingSource.DataMember = "prt"

Me.ReportViewer1.RefreshReport()[/vbnet]

lúc trước mình cũng làm như vầy. nhưng nó chạy ổn định bây giờ làm cái tự nhiên nó load có 1 dòng dữ liệu tìm hoài ko hiểu tại sao. mong bạn chỉ giúp
cảm ơn bạn


Thế này thì hơi khó xác định nguyên nhân. Bạn thử đưa project mẫu lên mình xem thế nào.
Rượu gặp tri kỷ ngàn chén thiếu.
Chuyện người không hợp nửa câu thừa.

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi bigboy83 » T.Ba 21/08/2012 9:50 am

cảm ơn bạn . rất vui vì bạn hồi âm mình nhânh vậy hihii
cái của mình đây http://www.mediafire.com/?rdbbvb24cjpajcn

mình xem thử thi dataset vẫn có đủ dòng
  1.  Me.Text = dt.Tables(0).Rows.Count
mà chẵng hiểu sao nó xuất ra có 1 dòng

1) cái dataset khi mình làm lâu lấu nó cứ báo Lỗi , phải xoá Mấy cái Table đi >> Save lại >>> Undo lại table đã xoá >>> save lại thì nó hết lỗi
2) Lúc thiết kế giao diện của report, thì làm sao mình biết bề rộng của nó bao nhiêu trong trình thiết kế. vì mình vẫn thấy nó nhỏ hơn khổ A4 nhưng mà preview thì nó vẫn bị mất chữ phải chạy rồi canh lại chay rồi sửa lại mệt thật


cảm ơn bạn rất nhiều. và chúc công việc tốt đẹp

Hình đại diện của người dùng
thuongbat
Guru
Guru
Bài viết: 346
Ngày tham gia: CN 27/04/2008 10:11 am
Has thanked: 4 time
Been thanked: 79 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi thuongbat » T.Ba 21/08/2012 11:42 am

Vấn đề của bạn nằm ở cái Tablix trên Report. Có lẽ khi thiết kế bạn đã xóa mất dòng Detail của nó và thêm vào 1 dòng khác.
Bạn khắc phục bằng cách xóa cái Tablix trên report đi và kéo 1 cái Table khác từ thanh công cụ vào để thay thế
Rượu gặp tri kỷ ngàn chén thiếu.
Chuyện người không hợp nửa câu thừa.

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi bigboy83 » T.Ba 21/08/2012 12:52 pm

Oh hihi bạn ơi mình đang thử lại cái Table ko xài cái kia. có lẽ được .cảm ơn bạn rất nhiều . bạn thật tốt bụng :D

chúc bạn nhiều điều vui và may mắn nhé

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi bigboy83 » T.Tư 22/08/2012 9:10 am

Chào bạn ngày mới tốt lành
cho mình hỏi thêm vấn đề mình có 1 bảng Datagridview đã lọc dữ liệu rồi , và mình lưu nó vào 1 file xml, sao đó đưa ra report như hình minh họa

Hình ảnh

cho mình hỏi thăm là có cách nào khi xuất ra Report mình merge mấy cái cột của Dòng Ngày tháng thành 1 ko. vì dữ liệu sẽ có Tháng Và Ngày nữa. vì minh ko biết nên làm thế nào. nên phải ghi tạm luôn vào cái xml tất cả như hình
cảm ơn bạn rất nhiều

Hình đại diện của người dùng
khaihuyentg
Thành viên chính thức
Thành viên chính thức
Bài viết: 17
Ngày tham gia: CN 14/06/2009 10:36 pm
Đến từ: Vùng Đất Chín Rồng
Has thanked: 3 time
Liên hệ:

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi khaihuyentg » T.Sáu 07/09/2012 3:54 pm

Chào các anh chị .
Mình đang gặp phải một vấn đề là khi thiết kê report để in phong thư thì khi in mình sẽ đưa phong thư vào máy in (kéo hai đồ kẹp giấy của máy in vào sát nhau để có thể để vừa phong thư, lúc này phong thư nằm giữa máy in ) nhưng khi ra lệnh in thì máy chỉ in từ bìa phía trái của máy in mà không in theo khuôn giấy mà mình đã mặt địn custom theo phong thư . vì thế nội dung cần in sẽ không nằm đúng chổ của phong thư .
Như thế nếu muốn in phong thư đúng thì phải đặt phong thư sát bên trái của máy in thì mới chính xác .
Xin hỏi có cách nào giải quyết trường hợp trên không ?
Cám ơn

Hình đại diện của người dùng
thuongbat
Guru
Guru
Bài viết: 346
Ngày tham gia: CN 27/04/2008 10:11 am
Has thanked: 4 time
Been thanked: 79 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi thuongbat » CN 09/09/2012 8:19 pm

+ Cách thứ nhất: bạn phải vào phần thiết lập cho máy in của window (trong Control Panel) và thiết lập lại khổ giấy của máy in bằng với khổ giấy Custom của bạn.
+ Cách thứ 2: bạn cứ để kích thước của Report là khổ A4, nhưng phần nội dung cần in thì bạn đặt gói gọn trong 1 vùng có kích thước bằng phong thư của bạn và đặt nó vào trung tâm của Report
Rượu gặp tri kỷ ngàn chén thiếu.
Chuyện người không hợp nửa câu thừa.

Hình đại diện của người dùng
khaihuyentg
Thành viên chính thức
Thành viên chính thức
Bài viết: 17
Ngày tham gia: CN 14/06/2009 10:36 pm
Đến từ: Vùng Đất Chín Rồng
Has thanked: 3 time
Liên hệ:

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi khaihuyentg » T.Hai 10/09/2012 7:28 am

Cám ơn anh Thuongbat nhiều lắm .
Em dùng List để đưa các biến vào để khi chạy report có thể in được mỗi mẫu tin là một trang . Như theo bài hướng dẫn anh nói là dùng Rectangle nhưng em không làm được chỉ làm được với List thôi .
Vì thế em dùng List để có khung kích thước bằng phong thư và dùng giấy a4 nhưng em không biết đặt nó vào trung tâm report làm như thế nào mong anh chỉ cụ thể dùm.
Thứ 2 : nhìn ở hình mà anh hướng dẫn thì phần table anh nói mặt định nó có 3 phần header - detail - footer nhưng sao em kéo table của report thì chỉ thấy có 2 phần trên không thấy footer đâu cả .
Mong được các anh chị hướng dẫn dùm . Em cám ơn

Hình đại diện của người dùng
thuongbat
Guru
Guru
Bài viết: 346
Ngày tham gia: CN 27/04/2008 10:11 am
Has thanked: 4 time
Been thanked: 79 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi thuongbat » T.Hai 10/09/2012 11:30 am

Có 2 kiểu View của Report hay được sử dụng nhất là Detail View (mỗi trang của Report chỉ hiển thị nội dung của 1 bản ghi - ví dụ: in phong thư như của bạn, in thẻ học sinh...) và Grid View (hiển thị nhiều bản ghi trên 1 trang bằng các loại control như Table, Matrix, List... - ví dụ như: in chi tiết cước điện thoại như ví dụ của mình, in danh sách hàng hóa, in danh sách học sinh...)

Với trường hợp của bạn nên sử dụng kiểu Detail View thay vì sử dụng kiểu Grid View.

Bạn chỉ cần kéo từng cột của DataTable (trong DataSource) vào Report và sắp xếp lại vị trí cho nó là được
Rượu gặp tri kỷ ngàn chén thiếu.
Chuyện người không hợp nửa câu thừa.

hongthai
Bài viết: 7
Ngày tham gia: CN 30/03/2008 10:27 pm

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi hongthai » T.Sáu 14/09/2012 10:14 am

Tôi muốn tiêu đề của bảng trong report lặp lại ở trang sau thì tôi đã chọn RepeatColumnHeaders là true. Nhưng khi chạy report thì nó lại không hiển thị. Mong các pro giúp đỡ. Thank.

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi bigboy83 » T.Ba 18/09/2012 7:13 am

bạn ơi cho hướng dẫn giúp mình cái này với
Chương trình mình đã xong rồi cái report nhờ bạn giúp đỡ nhiệt tình mình cũng đã hoàn thành. nhưng mà có 1 trục trặc . khi đem qua máy khác. dù đã cài đầy đủ Net framework cho máy nhưng khi mở report nó vẫn ko chạy và bị báo lỗi. ( Máy chạy được máy ko)
Mình vào references đễ xem và copy mấy cái Dll
C:\Program Files (x86)\Microsoft Visual Studio 10.0\ReportViewer\Microsoft.ReportViewer.Common.dll
C:\Program Files (x86)\Microsoft Visual Studio 10.0\ReportViewer\Microsoft.ReportViewer.WinForms.dll
sang máy khác (đặt chung thu mục app) nhưng nó vẫn bị báo lỗi.

mong bạn chỉ giúp cảm ơn bạn nhiều
chúc bạn ngày mới tốt lành

Hình đại diện của người dùng
thuongbat
Guru
Guru
Bài viết: 346
Ngày tham gia: CN 27/04/2008 10:11 am
Has thanked: 4 time
Been thanked: 79 time

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi thuongbat » T.Ba 18/09/2012 11:06 am

Để chạy được reportviewer, ngoài 2 file DLL nói trên, bạn cần phải copy thêm file Microsoft.ReportViewer.ProcessingObjectModel.dll sang máy khách thì nó mới chạy được.

Có 2 cách để xử lý như sau:
1. Cách 1: Cài đặt ReportViewer trên máy khách
Bạn copy file Reportviewer.exe ở thư mục C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\ReportViewer trên máy của bạn (Có thể phải tìm trong Program Files(x86) với máy cài win64bit) sang máy khách. Sau đó chạy file này để cài đặt. Sau đó có thể chạy chương trình bình thường.
- ưu điểm:
+ đơn giản, dễ làm
+ chỉ cần cài 1 lần là tất cả các chương trình khác có sử dụng reportviewer đều chạy được
+ không cần copy 2 file DLL như bạn đã nói ở trên theo nữa
- Nhược điểm: bạn cần có quyền admin của máy khách để cài reportviewer.exe vì nó sẽ cài 1 số DLL vào GAC
2. Cách 2: copy các DLL cần thiết vào thư mục chạy chương trình của bạn (bao gồm 2 file bạn đã nói ở trên) và file Microsoft.ReportViewer.ProcessingObjectModel.dll
Bạn có thể lấy file Microsoft.ReportViewer.ProcessingObjectModel.dll theo cách sau:
+ Lấy file Reportviewer.exe trên máy của bạn (xem cách 1 để biết vị trí của file này ở đâu)
+ Dùng một chương trình giải nén (Winrar, Winzip, 7zip - mình đã kiểm tra thành công với 7zip, còn các chương trình khác chưa kiểm tra :D) giải nén file exe này ra
+ trong các file đã giải nén được có file reportviewer_redist2010core.cab, tiếp tục giải nén file này ra
+ trong các file giải nén được ở lần 2, có file FL_Microsoft_ReportViewer_ProcessingObject_125592_125592_x86_ln.3643236F_FC70_11D3_A536_0090278A1BB8. Bạn đổi tên file này thành Microsoft.ReportViewer.ProcessingObjectModel.dll và copy vào thư mục chạy chương trình của bạn
- Ưu điểm:
+ không phải cài reportviewer thủ công trên máy khách
- nhược điểm:
+ cách làm hơi loằng ngoằng 1 chút
+ nếu nhiều chương trình cùng sử dụng reportviewer theo cách này thì trên máy khách sẽ có nhiều file DLL giống nhau => tốn ổ cứng 1 tí
Rượu gặp tri kỷ ngàn chén thiếu.
Chuyện người không hợp nửa câu thừa.

bigboy83
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 66
Ngày tham gia: T.Năm 26/03/2009 8:26 am

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi bigboy83 » T.Ba 18/09/2012 12:06 pm

Quá tuyệt vời. cảm ơn bạn rất rất nhiều mình làm được rồi. theo cách 1 có vẽ như tốt nhất. chỉ cần đem máy khác setup nó là xong

cảm ơn bạn lần nữa. chúc bạn nhiều thành công :x :x

hongthai
Bài viết: 7
Ngày tham gia: CN 30/03/2008 10:27 pm

Re: Sử dụng Report chuẩn của .NET, tại sao không?

Gửi bàigửi bởi hongthai » T.Năm 20/09/2012 9:58 pm

Các bác cho em hỏi là đánh số thứ tự cho các nhóm của report thì dùng hàm nào? Thank!


Quay về “[.NET] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách