• 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

MrThinh
Bài viết: 1
Ngày tham gia: T.Bảy 29/09/2012 9:29 am

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

Gửi bàigửi bởi MrThinh » T.Bảy 29/09/2012 9:36 am

Report Data dùng thích thật , vừa dễ thiết kế , lại cài đặt dễ . nhưng mình chưa quen lắm .
hiện mình đang làm cái report theo mẫu , nhưng hình như nó hơi khoai so với mình .
các bạn có thể hướng dẫn mình làm nó đc ko ?
Thanks các bạn !
report mẫu : các thông tin trên report đều đc lấy từ database.

Hình ảnh



HoangTuBe
Thành viên tích cực
Thành viên tích cực
Bài viết: 180
Ngày tham gia: T.Năm 02/04/2009 1:38 pm
Has thanked: 10 time
Been 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 HoangTuBe » T.Sáu 05/10/2012 1:03 pm

Xin chào! Mình thấy Report chuẩn này cũng khá hay. Nhưng không biết làm thế nào để thiết kế cái Group Header như hình dưới. Mong các bạn giúp
Hình ảnh

Mình đang làm bằng cách tự vẽ các textbox nhưng bắt đầu mỗi group thì nó không hiển thị lại. Mong các bạn giú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.Bảy 06/10/2012 11:57 pm

HoangTuBe đã viết:Xin chào! Mình thấy Report chuẩn này cũng khá hay. Nhưng không biết làm thế nào để thiết kế cái Group Header như hình dưới. Mong các bạn giúp
Hình ảnh

Mình đang làm bằng cách tự vẽ các textbox nhưng bắt đầu mỗi group thì nó không hiển thị lại. Mong các bạn giúp


Quy trình làm như sau (áp dụng cho VS2010)

1. Thêm 1 Table vào Report (mặc định có 3 Columns, 2 Rows). Right Click vào 1 cell bất kỳ và chọn Insert Colum > Chọn tiếp Left (hoặc Right đều được) để thêm 1 cột mới. Lặp lại 2 lần nữa để được 1 bảng có 2 hàng, 6 cột
2. Right Click vào 1 Cell bất kỳ trong vùng Header (vùng đang tô màu nền là các nét chấm - nhớ là phải right click vào vùng header chứ không phải vùng Data) và chọn Insert Row > Chọn tiếp Above (hoặc Below đều được) để thêm 1 hàng Header mới. Lúc này ta sẽ có table với 3 hàng, 6 cột.
3. Chọn các Cell 3, 4, 5 của Row trên cùng (số thứ tự các cột mình tính từ 1 đến 6 nhé), Right Click vào vùng có 3 cell vừa chọn và chọn mục Merge Cells.
4. Nhập nội dung Text cho Cell mới (vừa merge từ 3 cell 3, 4, 5) là "TIỀN TĂNG CA". Nhấn F4 để mở cửa sổ Properties. Chọn TextAlign = Center để canh giữa chữ của cell này.
5. Ở Row thứ 2 của Table (Row nằm ở giữa) có 6 cell tương ứng với 6 cột. Bạn nhập Text cho các cell lần lượt là: STT, NHÂN SỰ, TĂNG CA CN, TĂNG CA NT, SỐ TIỀN TĂNG CA, NGÀY CÔNG. Chọn TextAlign cho tất cả các Cell này là Center để đẩy chữ ra giữa
6. Ở Column đầu tiên của Table (Column có STT) có 3 Cell tương ứng với 3 hàng. Ta cần Merge 2 Cell ở phía trên lại với nhau. Rất không may là Report này lại không cho phép Merge Cell theo dòng. Cách khắc phục ở đây là loại bỏ đường kẻ phân cách giữa cell trên với cell ở giữa. Để loại bỏ đường kẻ, chọn Cell trên cùng (của cột 1), nhấn F4 để mở cửa sổ Properties, chọn BorderStyle Bottom = None. Chọn tiếp cell ở giữa (của cột 1), đặt thuộc tính BorderStyle Top = None
7. Lặp lại bước 6 cho các cột "NHÂN SỰ" và "NGÀY CÔNG"
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.

HoangTuBe
Thành viên tích cực
Thành viên tích cực
Bài viết: 180
Ngày tham gia: T.Năm 02/04/2009 1:38 pm
Has thanked: 10 time
Been 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 HoangTuBe » CN 07/10/2012 2:41 am

Cảm ơn thuongbat đã giúp đỡ. Nếu làm theo cách của bạn thì cột STT NHÂN SỰ, NGÀY CÔNG sẽ không được canh giữa theo chiều dọc.
Sau một hồi tìm hiểu mình đã tìm được cách và mình xin chia sẽ cùng các bạn như sau.

1. Đầu tiên vẽ vào 1 table có 6 cột và 3 dòng, trong đó 1 dòng là header, 1 detail, 1 footer.
2. Tiến hành chọn ô thứ 3,4,5 của dòng header và Merge Cells.
3. Chọn công cụ Rectangle và kéo thả vào ô vừa Merge được.
4. Tiến hành kéo thả vào công cụ Rectangle vừa vẽ 4 textbox và sắp xếp như yêu cầu.

Vậy là OK. cách này mình tìm được từ Microsoft

HoangTuBe
Thành viên tích cực
Thành viên tích cực
Bài viết: 180
Ngày tham gia: T.Năm 02/04/2009 1:38 pm
Has thanked: 10 time
Been 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 HoangTuBe » CN 07/10/2012 6:53 pm

Xin chào!

Hehe, hỏi nhiều quá cũng hơi ngại nhưng đành ráng vì con em chúng ta thôi.

Mình có 2 vấn đề cần hỏi
1. Làm sao để đánh số thứ tự cho các dòng trong Report.

2. Mình thấy về vấn đề thiết kế, định dạng và tính tùy biến cũng như cho phép dùng hàm trực tiếp từ textbox thì không còn gì để bàn cãi nữa. Nhưng vấn đề về kết nối dữ liệu thì mình thấy còn nhiều vướng mắc.

- mổi lần tạo một report thì phải tạo cái DataApdapter và phải viết lệnh SQL để đổ dữ liệu vào thì hơi lười biếng.

-hông biết làm thế nào để report co thể kết nối tới nhiều DataApdapter (nhiều table quan hệ) được. Hiện tại mình thiết kế1 DataApdapter rồi sau đó viết cái câu lệnh SQL thật dài để đổ data vào.

- không biết cái report chuẩn này có thể lam giống như cái Crystal report được không? Khi design thì kết nối database, chọn table, tạo kết nối quan hệ giữa các table. Khi chạy lệnh chỉ cần gán server name, database name, user, password là xong.

Mong các bạn giúp đỡ

dunglnvt
Bài viết: 3
Ngày tham gia: CN 30/09/2012 12:43 pm

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

Gửi bàigửi bởi dunglnvt » T.Ba 09/10/2012 9:25 am

Mình làm report chạy thành công nhưng không hiểu sao? chỉ view đc 1 lần còn lần 2 là lại ra màn hình trắng, tắt không tắt được.

HoangTuBe
Thành viên tích cực
Thành viên tích cực
Bài viết: 180
Ngày tham gia: T.Năm 02/04/2009 1:38 pm
Has thanked: 10 time
Been 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 HoangTuBe » T.Tư 10/10/2012 10:30 pm

dunglnvt đã viết:Mình làm report chạy thành công nhưng không hiểu sao? chỉ view đc 1 lần còn lần 2 là lại ra màn hình trắng, tắt không tắt được.


Bạn thử xóa hết đi rồi làm lại. Nếu không được thì up lên cho mọi người xem thử nha!
Chúc thành công

dunglnvt
Bài viết: 3
Ngày tham gia: CN 30/09/2012 12:43 pm

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

Gửi bàigửi bởi dunglnvt » T.Ba 16/10/2012 1:16 pm

Cám ơn mọi người mình làm được rùi. Do cái thuộc tính Reset của ReportView. Mình đành tạo nhiều form View để hiện thị.
Có cách nào để in nhiều trang report không. Ví dụ: mình như in hóa đơn: Mỗi khách hàng sẽ có một trang khác nhau, với nhưng mặt hàng đã mua.

anhsang
Thành viên chính thức
Thành viên chính thức
Bài viết: 12
Ngày tham gia: T.Bảy 18/04/2009 7:18 pm

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

Gửi bàigửi bởi anhsang » CN 04/11/2012 1:46 pm

Mọi người cho mình hỏi:
Mình có bản ghi là Logo kiểu image trong database.Mình đưa lên report nhưng ko đc.
Đã xét MIMEType image/jpeg.Source datbase và value là =Fields!Logo.Value (hoăc Convert.ToBase64String) nhưng ko đc.
Mình làm cả MIMEType image/jpeg.Source Embedded và value là ="..\Image\logo.jpg" cũng ko đc(TH này ko dùng trong datbase)

Ai biết chỉ giúp mình.Thanks

HoangTuBe
Thành viên tích cực
Thành viên tích cực
Bài viết: 180
Ngày tham gia: T.Năm 02/04/2009 1:38 pm
Has thanked: 10 time
Been 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 HoangTuBe » T.Sáu 09/11/2012 12:19 pm

Hu hu không ai giúp hết.. Chán quá.......

HoangTuBe
Thành viên tích cực
Thành viên tích cực
Bài viết: 180
Ngày tham gia: T.Năm 02/04/2009 1:38 pm
Has thanked: 10 time
Been 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 HoangTuBe » T.Sáu 09/11/2012 12:36 pm

HoangTuBe đã viết:Xin chào!

Hehe, hỏi nhiều quá cũng hơi ngại nhưng đành ráng vì con em chúng ta thôi.

Mình có 2 vấn đề cần hỏi
1. Làm sao để đánh số thứ tự cho các dòng trong Report.

2. Mình thấy về vấn đề thiết kế, định dạng và tính tùy biến cũng như cho phép dùng hàm trực tiếp từ textbox thì không còn gì để bàn cãi nữa. Nhưng vấn đề về kết nối dữ liệu thì mình thấy còn nhiều vướng mắc.

- mổi lần tạo một report thì phải tạo cái DataApdapter và phải viết lệnh SQL để đổ dữ liệu vào thì hơi lười biếng.

-hông biết làm thế nào để report co thể kết nối tới nhiều DataApdapter (nhiều table quan hệ) được. Hiện tại mình thiết kế1 DataApdapter rồi sau đó viết cái câu lệnh SQL thật dài để đổ data vào.

- không biết cái report chuẩn này có thể lam giống như cái Crystal report được không? Khi design thì kết nối database, chọn table, tạo kết nối quan hệ giữa các table. Khi chạy lệnh chỉ cần gán server name, database name, user, password là xong.

Mong các bạn giúp đỡ



Hu hu xin giúp với

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 19/11/2012 8:48 am

HoangTuBe đã viết:Xin chào!

Hehe, hỏi nhiều quá cũng hơi ngại nhưng đành ráng vì con em chúng ta thôi.

Mình có 2 vấn đề cần hỏi
1. Làm sao để đánh số thứ tự cho các dòng trong Report.

2. Mình thấy về vấn đề thiết kế, định dạng và tính tùy biến cũng như cho phép dùng hàm trực tiếp từ textbox thì không còn gì để bàn cãi nữa. Nhưng vấn đề về kết nối dữ liệu thì mình thấy còn nhiều vướng mắc.

- mổi lần tạo một report thì phải tạo cái DataApdapter và phải viết lệnh SQL để đổ dữ liệu vào thì hơi lười biếng.

-hông biết làm thế nào để report co thể kết nối tới nhiều DataApdapter (nhiều table quan hệ) được. Hiện tại mình thiết kế1 DataApdapter rồi sau đó viết cái câu lệnh SQL thật dài để đổ data vào.

- không biết cái report chuẩn này có thể lam giống như cái Crystal report được không? Khi design thì kết nối database, chọn table, tạo kết nối quan hệ giữa các table. Khi chạy lệnh chỉ cần gán server name, database name, user, password là xong.

Mong các bạn giúp đỡ


+ Vấn đề đánh số thứ tự cho các dòng thì đã được nhắc khá nhiều trong chủ đề này rồi. Bạn chỉ cần viết Expression cho ô đầu dòng = RowNumber("Tên dataset")

+ Bạn có thể dùng DataAdapter để thiết kế giống như CrystalReport. Cách này còn đơn giản hơn là làm theo hướng dẫn ở đầu chủ đề này (vì ở đây mình đang fill dữ liệu bằng Code). Bạn có thể tự tạo một Project mới (chọn loại Project là Reporting > Reports Application) rồi xem cách nó thiết kế dữ liệu. Nếu còn khó khăn thì có thể post 1 CSDL mẫu của bạn lên đây. Mình sẽ thiết kế ví dụ 1 mẫu báo cáo cho bạ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.

HoangTuBe
Thành viên tích cực
Thành viên tích cực
Bài viết: 180
Ngày tham gia: T.Năm 02/04/2009 1:38 pm
Has thanked: 10 time
Been 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 HoangTuBe » T.Tư 21/11/2012 12:46 pm

Cảm ơn bạn rất nhiều. Mình sẽ thử theo hướng dẫn của bạn

phuocru91
Thành viên chính thức
Thành viên chính thức
Bài viết: 18
Ngày tham gia: T.Ba 11/09/2012 1:15 am
Has thanked: 6 time

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

Gửi bàigửi bởi phuocru91 » T.Ba 27/11/2012 10:09 pm

các bạn cho mình hỏi lun. mình có thể lấy dữ liệu từ 1 cái datagirview đổ vào report (ko phải là crytal repot) dc ko ạ. nếu dc giúp mình code lun. thank mọi người nhiều.

songbien.kgcc
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 78
Ngày tham gia: T.Tư 07/09/2011 9:03 pm
Has thanked: 10 time

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

Gửi bàigửi bởi songbien.kgcc » T.Ba 27/11/2012 10:25 pm

Rầu quá, tại sao khi tạo group trong report, khi tạo cột stt đếm bên nhóm lớn( ví dụ mã lớp) khi hiển thị ra thì nó đếm luôn các mẫu tin thuộc nhóm lớn vậy(ví dụ mã sinh viên). Nhức đầu với cái này.
Đúng ra nó phải hiển thị thế này:
stt malop masv
1 A 1
2
3
2 B 1
.
.
.
Nhưng mà nó cứ hiển thị là:
1 A 1
2
3
4 B 1

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.Năm 29/11/2012 9:19 am

songbien.kgcc đã viết:Rầu quá, tại sao khi tạo group trong report, khi tạo cột stt đếm bên nhóm lớn( ví dụ mã lớp) khi hiển thị ra thì nó đếm luôn các mẫu tin thuộc nhóm lớn vậy(ví dụ mã sinh viên). Nhức đầu với cái này.
Đúng ra nó phải hiển thị thế này:
stt malop masv
1 A 1
2
3
2 B 1
.
.
.
Nhưng mà nó cứ hiển thị là:
1 A 1
2
3
4 B 1


Việc ghi STT của các hàng trong nhóm thì quá dễ rồi. Bạn chỉ cần viết biểu thức =RowNumber("Tên group") là được.
Việc ghi STT của nhóm thì hơi mất công 1 chút nhưng mà cũng có thể làm được, cách làm như sau:
1. Từ thanh Menu chính của VS2010, chọn mục Report > Report Properties
2. Trong cửa sổ Report Properties mở ra, chọn mục Code ở bên tay trái
3. Trong ô Custom Code hiện ra bên phải, Paste vào đó đoạn code dưới đây
  1. Dim GroupCounter as Integer=0
  2. Function GetGroupCounter() as String
  3.     GroupCounter=GroupCounter+1
  4.     Return "Nhóm " + GroupCounter.ToString()
  5. End Function
  6.  

4. Quay trở lại thiết kế Report. Ở Textbox muốn hiện thị số thứ tự của nhóm bạn viết Expression cho nó =Code.GetGroupCounter()
5. Trong Function GetGroupCounter() ở trên, mình có cộng thêm chuỗi "Nhóm" vào giá trị trả về. Nếu không thích bạn có thể bỏ nó đi, chỉ cần Return giá trị số 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.

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.Năm 29/11/2012 9:25 am

phuocru91 đã viết:các bạn cho mình hỏi lun. mình có thể lấy dữ liệu từ 1 cái datagirview đổ vào report (ko phải là crytal repot) dc ko ạ. nếu dc giúp mình code lun. thank mọi người nhiều.


Yêu cầu này mình cũng đã từng trả lời rồi. Report có thể nhận dữ liệu đầu vào (ở DataSource của nó) là một bảng dữ liệu(DataTable) hoặc một danh sách (List) hoặc mảng (Array)....
Để đưa dữ liệu từ DatagridView vào Report, trước hết bạn phải đọc dữ liệu từ DatagridView vào biến DataTable, List hoặc Array, rồi sau đó add biến này vào DataSource 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.

songbien.kgcc
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 78
Ngày tham gia: T.Tư 07/09/2011 9:03 pm
Has thanked: 10 time

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

Gửi bàigửi bởi songbien.kgcc » T.Năm 29/11/2012 10:18 pm

Dim GroupCounter as Integer=0
Function GetGroupCounter() as String
GroupCounter=GroupCounter+1
Return "Nhóm " + GroupCounter.ToString()
End Function

Sau mà trong vb2005 mình để Expression cho nó =Code.GetGroupCounter() nó bị lỗi vậy bạn

dangninh
Bài viết: 5
Ngày tham gia: T.Ba 27/11/2012 9:09 am
Has thanked: 1 time

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

Gửi bàigửi bởi dangninh » T.Hai 03/12/2012 8:30 am

Xin chào.

Mình muốn hỏi cái data report này có cách nào để add field và table vào report bằng code mà không cần kéo field ở trong design của report ko ?

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 03/12/2012 8:35 am

songbien.kgcc đã viết:
Dim GroupCounter as Integer=0
Function GetGroupCounter() as String
GroupCounter=GroupCounter+1
Return "Nhóm " + GroupCounter.ToString()
End Function

Sau mà trong vb2005 mình để Expression cho nó =Code.GetGroupCounter() nó bị lỗi vậy bạn


Cách trên áp dụng cho VS2010. VS2005 chắc nó cũng tương tự vậy thôi. Bạn thử ngâm cứu thêm xem. Giờ mình cài lại bản 2005 thì hơi lười
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.


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.2 khách