Hi Guys,
I have my report working fine with windows server 2008. But when I run it on windows server 2012, it always give me the message "The report you requested requires further information". I have listed information below:
Server: windows server 2012
SQL server version : MS SQL server 2014
App type: asp.net
The code i have been using is below:
protected void Page_Init(object sender, EventArgs e)
{
if (Request.QueryString["ReportCatogory"] != null)
{
string ReportCatogory = Request.QueryString["ReportCatogory"].ToString();
if (!IsPostBack)
{
ReportIndex ReportIndexModel = new ReportIndex();
ReportIndexModel.SelectedReport.Name = ReportCatogory;
if (ReportIndexModel.SelectedReport.Name == null)
return;
CrystalDecisions.CrystalReports.Engine.ReportDocument _reportDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
try
{
List<RFPlusWebAPI.Models.Report> reports = (List<RFPlusWebAPI.Models.Report>)HttpContext.Current.Cache[Constants.CACHE_KEY_REPORTS_DATA];
foreach (RFPlusWebAPI.Models.Report report in reports)
{
if (report.Name == ReportIndexModel.SelectedReport.Name)
{
ReportIndexModel.SelectedReport.Path = report.Path;
break;
}
}
if (ReportIndexModel.SelectedReport.Path == string.Empty)
{
if (ReportIndexModel.SelectedReport.Name != string.Empty)
Response.Write("Report path is empty!");
return;
}
_reportDoc.Load(ReportIndexModel.SelectedReport.Path);
_reportDoc.SetDatabaseLogon(GetReportsTask.crystalReportConnectonUserID, GetReportsTask.crystalReportConnectonPassword);
if (ReportCatogory == "InventoryByLocation")
{
string whs = Request.QueryString["Warehouse"].ToString();
string loc = Request.QueryString["Location"].ToString();
_reportDoc.SetParameterValue("Warehouse", whs);
_reportDoc.SetParameterValue("Location", loc);
}
else if (ReportCatogory == "InventoryByPart")
{
string whs = Request.QueryString["Warehouse"].ToString();
string part = Request.QueryString["Part"].ToString();
_reportDoc.SetParameterValue("Warehouse", whs);
_reportDoc.SetParameterValue("Part", part);
}
else if (ReportCatogory == "InventoryFIFO")
{
string whs = Request.QueryString["Warehouse"].ToString();
string part = Request.QueryString["Part"].ToString();
_reportDoc.SetParameterValue("Warehouse", whs);
_reportDoc.SetParameterValue("Part", part);
}
else if (ReportCatogory == "InventoryEmptyLoc")
{
string whs = Request.QueryString["Warehouse"].ToString();
_reportDoc.SetParameterValue("Warehouse", whs);
}
else if (ReportCatogory == "InventoryInSockLoc")
{
string whs = Request.QueryString["Warehouse"].ToString();
_reportDoc.SetParameterValue("Warehouse", whs);
}
else if (ReportCatogory == "InventoryLicense")
{
string whs = Request.QueryString["Warehouse"].ToString();
string part = Request.QueryString["Part"].ToString();
string loc = Request.QueryString["Location"].ToString();
_reportDoc.SetParameterValue("Warehouse", whs);
_reportDoc.SetParameterValue("Part", part);
_reportDoc.SetParameterValue("Location", loc);
}
else if (ReportCatogory == "Receiving")
{
string whs = Request.QueryString["PO"].ToString();
string part = Request.QueryString["FromDate"].ToString();
string loc = Request.QueryString["ToDate"].ToString();
_reportDoc.SetParameterValue("PO", whs);
_reportDoc.SetParameterValue("FromDate", part);
_reportDoc.SetParameterValue("ToDate", loc);
}
else if (ReportCatogory == "PickNew")
{
string part = Request.QueryString["FromDate"].ToString();
string loc = Request.QueryString["ToDate"].ToString();
_reportDoc.SetParameterValue("FromDate", part);
_reportDoc.SetParameterValue("ToDate", loc);
}
else if (ReportCatogory == "PickOpen")
{
string part = Request.QueryString["FromDate"].ToString();
string loc = Request.QueryString["ToDate"].ToString();
_reportDoc.SetParameterValue("FromDate", part);
_reportDoc.SetParameterValue("ToDate", loc);
}
else if (ReportCatogory == "PickShip")
{
string part = Request.QueryString["FromDate"].ToString();
string loc = Request.QueryString["ToDate"].ToString();
_reportDoc.SetParameterValue("FromDate", part);
_reportDoc.SetParameterValue("ToDate", loc);
}
else if (ReportCatogory == "Manifest")
{
string LoadPlanNo = Request.QueryString["loadPlan"].ToString();
_reportDoc.SetParameterValue("Load Plan No.", LoadPlanNo);
_reportDoc.SetParameterValue("Hide", "N");
}
else if (ReportCatogory.Equals("count_licdp", StringComparison.OrdinalIgnoreCase) ||
ReportCatogory.Equals("count_pcdp", StringComparison.OrdinalIgnoreCase) ||
ReportCatogory.Equals("count_uncountedlic", StringComparison.OrdinalIgnoreCase))
{
string countID = Request.QueryString["CountID"].ToString();
_reportDoc.SetParameterValue("CountID", countID);
if (ReportCatogory.Equals("count_licdp", StringComparison.OrdinalIgnoreCase))
{
string percent = Request.QueryString["variable"].ToString();
_reportDoc.SetParameterValue("Percent", percent);
}
}
CrystalDecisions.Shared.ConnectionInfo crConnectionInfo = new CrystalDecisions.Shared.ConnectionInfo();
crConnectionInfo.IntegratedSecurity = false;
crConnectionInfo.AllowCustomConnection = true;
crConnectionInfo.Type = CrystalDecisions.Shared.ConnectionInfoType.SQL;
CrystalDecisions.CrystalReports.Engine.Database crDatabase;
CrystalDecisions.CrystalReports.Engine.Tables crTables;
CrystalDecisions.CrystalReports.Engine.Table crTable;
CrystalDecisions.Shared.TableLogOnInfo crTableLogOnInfo = null;
if (!string.IsNullOrEmpty(GetReportsTask.crystalReportConnectonServer))
crConnectionInfo.ServerName = GetReportsTask.crystalReportConnectonServer;
if (!string.IsNullOrEmpty(GetReportsTask.crystalReportConnectonDB))
crConnectionInfo.DatabaseName = GetReportsTask.crystalReportConnectonDB;
crConnectionInfo.UserID = GetReportsTask.crystalReportConnectonUserID;
crConnectionInfo.Password = GetReportsTask.crystalReportConnectonPassword;
CrystalDecisions.Shared.TableLogOnInfos infos = new CrystalDecisions.Shared.TableLogOnInfos();
crDatabase = _reportDoc.Database;
crTables = crDatabase.Tables;
for (int i = 0; i < crTables.Count; i++)
{
crTable = crTables[i];
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
crTableLogOnInfo.TableName = crTable.Name;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
//crTable.Location = crTable.Name;
if (infos.Count == 0)
infos.Add(crTableLogOnInfo);
}
CRViewer.LogOnInfo = infos;
CRViewer.EnableParameterPrompt = true;
CRViewer.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;
CRViewer.ReportSource = _reportDoc;
Session["ReportSource"] = _reportDoc;
}
catch (Exception ex)
{
Response.Write(string.Format("Load Crystal Report failed:{0}\nStack:{1}\n", ex.Message, ex.StackTrace));
return;
}
}
else
{
CrystalDecisions.CrystalReports.Engine.ReportDocument reportDoc = (CrystalDecisions.CrystalReports.Engine.ReportDocument)Session["ReportSource"];
CRViewer.ReportSource = reportDoc;
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CrystalDecisions.CrystalReports.Engine.ReportDocument reportDoc = (CrystalDecisions.CrystalReports.Engine.ReportDocument)Session["ReportSource"];
CRViewer.ReportSource = reportDoc;
}
}