Vừa rồi tôi có nhận được một số phản hồi, hỏi về cách tạo các report có tham số đầu vào truyền từ các form khác, trong bài này tôi sẽ hướng dẫn cách làm đó.
Tôi lấy luôn ví dụ ở bài toán cụ thể phía bên trên, từ một form có chứa textbox và một button, nhập ID của khách hàng vào textbox, nhấn nút bấm, sẽ hiện ra thông tin chi tiết của khách hàng đó tại form có chứa báo cáo.
Các bạn add thêm một Form2 vào trong Project và thay đổi form sẽ xuất hiện đầu tiên khi chạy ứng dụng là Form2 (bằng cách thay đổi hàm Main trong Program.cs).
Tại giao diện của Form2, kéo vào 1 textbox và 1 button. Nhiệm vụ của chúng ta bây giờ là truyền Customer ID được nhập từ textbox của Form2 sang Form1, sau đó ở Form1 sẽ lấy dữ liệu đó và truy vấn vào trong database trả ra kết quả để hiển thị lên báo cáo.
Bước 1: Khai báo biến để lưu trữ thông tin Customer ID tại Form1
public string CustomerID;
Bước 2: Tại sự kiện click button ở Form2 các bạn gọi tới Form1 và gán giá trị của biến CustomerID ở Form1 bằng giá trị nhận được ở textbox.
Form1 frm1 = new Form1();
frm1.CustomerID = textBox1.Text;
frm1.ShowDialog();
Bước 3: Lúc này tại Form1 ta chỉ cần viết lại hàm ShowTop10Customers().Các bạn chú ý lại ở bước 2, giá trị của biến CustomerID đã được truyền từ Form2 tới Form1, bây giờ ở Form1 các bạn có thể thao tác tùy ý với dữ liệu đó.
Viết lại hàm hiển thị chi tiết khách hàng theo mã khách hàng (tôi sử dụng luôn tên của hàm ví dụ ở bài trên).
private DataSet ShowTop10Customers()
{
connect = new SqlConnection(strConnect);
connect.Open();
command = new SqlCommand("SELECT * FROM Customers WHERE CustomerID = @CustomerID", connect);
command.Parameters.AddWithValue("@CustomerID", CustomerID);
adapter = new SqlDataAdapter(command);
ds = new DataSet();
adapter.Fill(ds);
return ds;
}
Đến đây, là các bạn đã hoàn thành việc tạo một report có tham số đầu vào rồi. Hy vọng bài viết này sẽ giải đáp được phần nào thắc mắc của các bạn!
Chúc các bạn thành công!
No comments:
Post a Comment