|
|
|
สอบถามปัญหา Crystal Report Viewer แจ้งเตือนให้ Logon (C#) |
|
|
|
|
|
|
|
กำหนด Property Crystalreport Viewer ตรง EnableDatabaseLogonPrompt="False" ครับ
|
|
|
|
|
Date :
2015-06-30 13:40:56 |
By :
mee079 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กำหนดแล้วมันขึ้น Database logon failed. ครับ
|
|
|
|
|
Date :
2015-06-30 13:53:16 |
By :
seedam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมโยน DataTalbe เข้าไปเลยครับ
1. สร้าง Dataset
2. ผูก Dataset กับ Report.rpt
ส่วนของ asp.net
Me.RPT = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
Dim Rpt_path As String = Server.MapPath("~/CR/RPT_MatReqWithdrawn.rpt")
Me.RPT.Load(Rpt_path)
RPT.SetDataSource(DT)
RPT.SummaryInfo.ReportTitle = "Material Required"
CRV_MatReq.ReportSource = RPT
|
|
|
|
|
Date :
2015-06-30 14:13:09 |
By :
mee079 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็เข้าใจแบบนั้นแหละครับ ทำวิธีเดียวกัน ก็เลยงงอยู่ว่ามีขั้นตอนไหนผิด
ยังไงก็ขอบคุณนะครับ
|
|
|
|
|
Date :
2015-06-30 15:19:35 |
By :
seedam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมแก้ปัญหานี้ให้หายขาดได้ครับ
Code (C#)
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
Code (C#)
private ReportDocument rpt;
Code (C#)
ReportDocument rpt = new ReportDocument();
rpt.Load(Server.MapPath("../Rpt/myReport.rpt"));
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables;
var db = YourClass.GetDatabaseConnection();
crConnectionInfo.ServerName = db.HOST;
crConnectionInfo.DatabaseName = db.DBNAME;
crConnectionInfo.UserID = db.UID;
crConnectionInfo.Password = db.UPWD;
CrTables = rpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
rpt.SetParameterValue("pCustomerID", strCustomerID);
rpt.RecordSelectionFormula = "Formula";
this.rptCrystal.ReportSource = rpt;
ลองดูครับ
|
|
|
|
|
Date :
2015-06-30 16:13:29 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ
แต่ตอนนี้เจอปัญหาใหม่ ส่ง Parameter ไปไม่ได้
|
|
|
|
|
Date :
2015-06-30 16:49:20 |
By :
seedam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองลำดับ Source ตามที่ผมแนะนำได้ไหม๊ครับ ผมใช้ตัวนี้ก็ได้ปกติครับ
|
|
|
|
|
Date :
2015-06-30 16:51:41 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set ทีหลัง Datasource ครับ
RPT.SetDataSource(DT)
RPT.SetParameterValue("ToStrMatDefault", pm_zcp)
|
|
|
|
|
Date :
2015-06-30 16:59:01 |
By :
mee079 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เป็นเหมือนเดิมเลยครับ ตอนนี้ย้ายไปย้ายมา 555
|
|
|
|
|
Date :
2015-06-30 17:02:39 |
By :
seedam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โอเค ได้แล้วครับ
ขอบคุณทุกท่านมากครับ
พอดีเขียนครั้งแรกครับ วุ่นวายเลย
|
|
|
|
|
Date :
2015-06-30 17:16:42 |
By :
seedam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สรุปแล้วแก้ไขยังไงครับ เอา Code เต็ม ๆ มาแชร์กันด้วยก็ดีครับ
|
|
|
|
|
Date :
2015-06-30 17:35:37 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้วิธีเดียวกันกับ TC Admin นะครับ
Code (C#)
protected void Page_Load(object sender, EventArgs e)
{
string strSql = " SELECT * FROM tbReceive ";
System.Data.DataSet ds = new System.Data.DataSet();
ds = DBConnection.ExecuteDataAdapter(sbSelect.ToString(), System.Data.CommandType.Text); //function execute ข้อมูล return ค่ากลับเป็น Dataset
CrystalDecisions.CrystalReports.Engine.ReportDocument rpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
rpt.Load(Server.MapPath("~/Report/crReportReceive.rpt"));
rpt.SetDataSource(ds.Tables[0]);
CrystalDecisions.Shared.TableLogOnInfo crtableLogoninfo = new CrystalDecisions.Shared.TableLogOnInfo();
CrystalDecisions.Shared.ConnectionInfo crConnectionInfo = new CrystalDecisions.Shared.ConnectionInfo();
CrystalDecisions.CrystalReports.Engine.Tables CrTables;
var builder = DBConnection.sqlBuilder(); //function ดึงข้อมูลการเชื่อมต่อของโปรแกรม
crConnectionInfo.ServerName = builder.DataSource; //Database server or ODBC
crConnectionInfo.DatabaseName = builder.InitialCatalog; // Database name
crConnectionInfo.UserID = builder.UserID; // username
crConnectionInfo.Password = builder.Password; // password
CrTables = rpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
rpt.SetParameterValue("pDatePeriod", "2015-02-01 - 2015-06-30");
rpt.SetParameterValue("pCheckedBy", "Adminstrator");
this.crReceive.ReportSource = rpt;
}
|
|
|
|
|
Date :
2015-07-01 10:08:23 |
By :
seedam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จัดไปครับ
|
|
|
|
|
Date :
2015-07-01 11:26:44 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพิ่มเติมอย่าลืมใส่ Event นี้ด้วยครับ ฉะนั้นจะ Print ได้แค่ 70 ครั้ง
protected override void OnUnload(EventArgs e)
{
base.OnUnload(e);
try
{
if (rpt != null)
{
rpt.Close();
rpt.Dispose();
GC.Collect();
}
}
catch (Exception ex)
{
MessageLogClass.WriteLog(ex);
}
}
protected void rptCrystal_Unload(object sender, EventArgs e)
{
try
{
if (rpt != null)
{
rpt.Close();
rpt.Dispose();
GC.Collect();
}
}
catch (Exception ex)
{
MessageLogClass.WriteLog(ex);
}
}
The maximum report processing jobs limit configured by your system administrator has been reached
|
|
|
|
|
Date :
2015-07-01 12:01:15 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ มีประโยชน์และช่วยได้เยอะมากครับ
|
|
|
|
|
Date :
2015-07-01 12:56:29 |
By :
seedam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|