PDA

View Full Version : [Q] Crytal Report Problem



hungcuong
18-11-2002, 13:38
Hi các bạn!
Mình có một vấn đền muốn hỏi các bạn . Mình dùng Crystal Report và VB . Mình dùng Cviewer để load report nhưng không hiểu sao cứ mỗi lần mình muốn xem dữ liệu mới thì phải nhấp nút Refesh (trên from View report và sau đó phải đưa vào 1 số thông số như : tên server, ID, Password, ten database ). Xin cho hỏi làm sao để load dữ liệu lên mà không cần phải làm thao tác như vậy ( cho xin đoạn code Code VB). cảm ơn

peaceman
19-11-2002, 14:55
Bạn hãy vào xem ví dụ đi kèm trong Crystal Report.
Theo mình nhớ thì bạn phải tạo một đối tượng của Crytal Report.
Sau đó, trong đọan code hiển thị report bạn xác lập lại các thông số cho đối tượng đó trươc khi hiển thị report.

Điều này rất hay vì nó làm cho report của bạn không phụ thuộc vào server ID, database. Bạn có thể đặt các tham số đó động.

Cheers!

Unbreakable
19-11-2002, 18:27
Bạn Chọn Project/Add CrystalReport rùi sẽ hiện ra Wizard cho bạn tạo ah, trong đó tui nhớ là có tạo Connection & Build Connection String giống như ADODC luôn, nếu được như vậy thì khi khai báo Password tui nghĩ nó sẽ lưu tên Pass & user ( cái nì tui chưa thử he, hihi...)...vậy thì khi xem report sẽ không đòi hỏi pass hay username nữa. À wên, tui sài CrystalReport8 ah.

cracking_lotus
23-11-2002, 11:41
peaceman nói rất đúng nhưng sao không nói rõ là phải dùng phương thức gì để thay đổi các thông số của Report vậy???

hueduongit
02-12-2002, 09:16
Xin chào. Mình thì chưa thử trên VB nơi, nhưng trên C# thì có đoạn code này, mình nghĩ trên VB cũng tương tự thôi.

//============================================
/// <summary>Thiết lập thông tin kết nối cho các thiết kế report</summary>
/// <param name="rpt">a ReportDocument</param>
/// <param name="adoTable">a table in the crystal report</param>
private void SetConnectionInfo (ReportDocument rpt, string adoTable, string server, string database, string user, string password)
{
// Get the ConnectionInfo Object.
TableLogOnInfo logOnInfo = new TableLogOnInfo();
logOnInfo = rpt.Database.Tables[adoTable].LogOnInfo;
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo = logOnInfo.ConnectionInfo;

// Set the Connection parameters.
connectionInfo.DatabaseName = database;
connectionInfo.ServerName = server;
connectionInfo.Password = password;
connectionInfo.UserID = user;
rpt.Database.Tables[adoTable].ApplyLogOnInfo(logOnInfo);
}

Chúc thành công!