|
|
|
ขอคำแนะนำการออกรายงาน crystal report แบบง่ายที่สุด พอดีลองทำแล้ว ดึงข้อมูลมาโชว์ไม่ขึ้นเลยครับ |
|
|
|
|
|
|
|
ขอดู Syntax ที่ Error หน่อยครับ
แต่ผมคิดว่าน่าจะดูว่า Database Fields ว่าชื่อ Table มันตรงกับ ชื่อ Table ใน ds หรือเปล่า
|
|
|
|
|
Date :
2011-09-09 17:18:59 |
By :
่ำVC#.Net |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
private void Form1_Load(object sender, EventArgs e){
SqlConnection db = new SqlConnection(conn);
try {
db.Open();
string sql;
sql = "select * from T_Customer";
SqlCommand cmd = new SqlCommand(sql, db);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "Cust");
CrystalDecisions.CrystalReports.Engine.ReportDocument r = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
r.Load("~/CrystalReport1.rpt"); // ดีบัค รันถึงบรรทัดนี้แล้วไปเข้า exception
r.VerifyDatabase();
r.SetDataSource(ds);
crystalReportViewer1.ReportSource = r;
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
finally {
db.Close();
}
ลองดีบัคดู พอถึง บรรทัดที่ 7 มันก็ไปเข้า exception เลยครับ
แล้วก็ขึ้นว่า โหลดรายงานไม่สำเร็จ ไม่มี error อย่างอื่นบอกเลยครับ
อันนี้เป็น dataset ที่ใช้ต่อกับ CrystalReport1.rpt
|
|
|
|
|
Date :
2011-09-09 17:46:51 |
By :
spirit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Path ที่โหลด Report ผิดครับ
ลองใส่ Path ตรงๆ ดูก่อนครับ
|
|
|
|
|
Date :
2011-09-09 17:54:48 |
By :
่ำVC#.Net |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
r.Load("D:/Project/Window/Window/CrystalReport1.rpt");
อ่าครับ ใส่ fullpath เลย รันผ่านครับ ไม่มี error แต่ว่าข้อมูลที๋โชว์ก็ไม่มีอะไรขึ้นเลยเหมือนกันครับ ว่างเปล่า
ในหน้าของ dataset ลอง preview data ดูมันก็ขึ้นนะครับ ข้อมูล
|
|
|
|
|
Date :
2011-09-09 18:28:15 |
By :
spirit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้หน้า crystalreport database Fields ก็ตรงกับในส่วนของ dataset นะครับ
อันนี้กด main report preview ข้อมูลในหน้านี้้ ไม่ตรงกับในข้อมูลของ dataset นะครับ มันผิดปกติหรือเปล่าครับ
|
|
|
|
|
Date :
2011-09-09 18:35:04 |
By :
spirit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันไม่ครงซิครับ มันแค่ preview ให้รู้ว่ารูปแบบมันเป็นประมาณนี้
ลองใส่ Code นี้ครับ ล่างบรรทัดที่ 13 ครับ
ds.Tables[0].TableName = "T_Customer";
ลองดูครับ
|
|
|
|
|
Date :
2011-09-09 22:09:18 |
By :
่ำVC#.Net |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำได้ยังครับๆๆ ถ้าได้ โพส บอกด้วยน่ะ ว่าจะขอดู Code ครับ กำลังหัดทำพอดี
|
|
|
|
|
Date :
2011-09-09 23:02:08 |
By :
noi014 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ละครับ เอาโค็ด vb จากเพื่อนมาดู
Code (C#)
private void crystalReportViewer1_Load(object sender, EventArgs e) {
SqlConnection db = new SqlConnection(conn);
CrystalReport1 rpt = new CrystalReport1(); // ชื่อ crystalrepot1.rpt
try {
db.Open();
string sql;
sql = "select * from T_Customer";
SqlCommand cmd = new SqlCommand(sql, db);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "Cust");
rpt.Database.Tables[0].SetDataSource(ds.Tables["Cust"]);
crystalReportViewer1.ReportSource = rpt;
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
finally {
db.Close();
}
}
|
|
|
|
|
Date :
2011-09-09 23:23:40 |
By :
spirit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|