• 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

Hướng dẫn về truyền tham số Data Report trong VB6

Các bài viết hướng dẫn, giúp các bạn hiểu và tiếp cận với Visual Basic nhanh hơn
User avatar
hoangthu1974
Guru
Guru
Posts: 813
Joined: Thu 09/03/2006 9:30 am
Location: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 times
Contact:

Hướng dẫn về truyền tham số Data Report trong VB6

Postby hoangthu1974 » Fri 24/04/2009 9:50 am

Tên bài viết: Truyền tham số cho Data Report trong VB6
Tác giả: hoangthu1974
Cấp độ bài viết: Chưa xác định
Tóm tắt: Truyền tham số cho DECommand để tạo Data Report trong VB6


Sau khi nhận được một vài cái project của người quen nhờ góp ý, giúp đỡ. Tôi nhận thấy đa số mọi người đều gặp phải vấn đề mà các thầy cô hình như chưa làm được hay sao ý và bắt học trò phải làm (dù chưa được học).

Sau đây, tôi xin trình bày việc truyền một tham số cho DECommand để tạo Report động:

Đầu tiên, bạn tạo một cái Data Environment
Add lên đó một cái Connection (Of course)
Sau đó, tạo một cái Command thứ nhất đặt tên là CmdGroup1 với GROUP BY hoặc HAVING --> việc của Command này là để tạo group, nếu không tạo group thì không cần GROUP BY hoặc HAVING.

Trong này, giả sử như tôi muốn giới hạn thời gian lấy báo cáo trong khoảng ngày TUNGAY và DENNGAY tôi sẽ có câu SQL cho nó là:
Lưu ý, Field1 là Date
Nhấn chuột phải vào CmdGroup1 và chọn Properties, trong thẻ đầu tiên, chọn SQL Statement, nhập vào:
SELECT Field1, SUM(Field2) AS SF2, SUM(Field3) AS SF3, SUM(Field4) AS SF4 FROM Table1 WHERE Field1 >= @TUNGAY AND Field1 <= @DENNGAY GROUP BY Field1

Chuyển qua thẻ thứ hai: Parameters
Ở đây, trong danh mục Parameters tự động xuất hiện TUNGAY và DENNGAY
Đặt thông số Data Type và Host Data Type là Date (phù hợp với trường Date - of course)
Required đặt là True

Trong báo cáo, sẽ lấy Field1 của CmdGroup1 trong Group Header (Section 6)
Các SF2, SF3, SF4 đặt ở Group Header hay Footer đều được cả.
Phần thân chính của báo cáo.
Nhấn chuột phải vào CmdGroup1, chọn Add Child Command. Command này bạn làm như bình thường, chỉ khác là vào thẻ Relation, nối cái Field1 vào cái trường mà sẽ làm khóa chính để group (tương xứng kiểu dữ liệu). Các dữ liệu trong Command này sẽ ở phần Section1 (Report Detail).

Xong cái DE Command và bây giờ, trước khi gọi báo cáo hiển thị, bạn thêm đoạn code sau:

Code: Select all

  1. If DE.rsCmdGroup1.State = adStateOpen Then DE.rsCmdGroup1.Close 'Đóng cái Recordset lại
  2. DE.Commands("CmdGroup1").Parameters("TUNGAY").Value = Format(Now - 15, "MM/dd/yyyy") 'lùi 15 ngày so với ngày hiện tại - ví dụ thế
  3. DE.Commands("CmdGroup1").Parameters("DENNGAY").Value = Format(Now, "MM/dd/yyyy") 'ngày hiện tại - ví dụ thế
  4. DE.Commands("CmdGroup1").Execute
  5. 'Hoặc bạn có thể viết như thế này:
  6. 'DE.CmdGroup1 Format(Now - 15, "MM/dd/yyyy"), Format(Now, "MM/dd/yyyy")
  7. DR.Show 'Hiện báo cáo



hoangtucodon205
Posts: 5
Joined: Mon 01/04/2013 11:50 am

Re: Hướng dẫn về truyền tham số Data Report trong VB6

Postby hoangtucodon205 » Mon 01/04/2013 1:14 pm

mình đã làm được với csdl là access nhưng với sql 2005 thi không được bạn ah, bạn có thể chỉ cách cho mình được không

tmmtzzlove
Thành viên năng nổ
Thành viên năng nổ
Posts: 57
Joined: Sun 04/12/2011 3:40 pm
Location: Quảng Ngãi
Has thanked: 1 time
Been thanked: 6 times
Contact:

Re: Hướng dẫn về truyền tham số Data Report trong VB6

Postby tmmtzzlove » Wed 08/05/2013 8:25 pm

ví dụ chọn mã gì đó trong datareport thì làm thế nào vậy bạn :)


Return to “[VB] Bài viết hướng dẫn”

Who is online

Users browsing this forum: No registered users and 0 guests