1
我有一個我在VB2005中構建的報告。它可以在報表生成器中完美工作,並且可以在服務器上的報表管理器中工作。SSRS2005報告在構建器和管理器中工作,但不在查看器中
但是,我有一個aspx頁面,並帶有一個報告查看器,它返回0個結果。
報表呈現,但不返回任何數據。
這是我的SQL代碼:
SELECT v_rpt_Company.Company_Name, SO_Activity.Subject, SO_Activity.Notes, SO_Activity.Date_Closed, SO_Activity.Last_Update, v_rpt_Member.Member_ID,
v_rpt_ActivityType.SO_Activity_Type_Desc, v_rpt_ActivityStatus.SO_Act_Status_Desc
FROM v_rpt_Company LEFT OUTER JOIN
SO_Activity ON v_rpt_Company.Company_RecID = SO_Activity.Company_RecID LEFT OUTER JOIN
v_rpt_Member ON SO_Activity.Assign_To = v_rpt_Member.Member_ID LEFT OUTER JOIN
Company_Team ON v_rpt_Member.Member_RecID = Company_Team.Member_RecID AND
v_rpt_Company.Company_RecID = Company_Team.Company_RecID LEFT OUTER JOIN
v_rpt_ActivityType ON SO_Activity.SO_Activity_Type_RecID = v_rpt_ActivityType.SO_Activity_Type_RecID LEFT OUTER JOIN
v_rpt_ActivityStatus ON SO_Activity.so_act_status_recid = v_rpt_ActivityStatus.SO_Act_Status_RecID
WHERE (@acctmgr <> 'true' OR Company_Team.AcctMgr_Flag = 1) AND
(SO_Activity.Assign_To = @member) AND (v_rpt_ActivityStatus.SO_Act_Status_Desc = CASE WHEN @act_status IS NULL
THEN v_rpt_ActivityStatus.so_act_status_desc ELSE @act_status END) AND ((@company = '') OR (v_rpt_Company.Company_RecID = @company)) AND (SO_Activity.Last_Update >= CONVERT(datetime, @date_start, 101)) AND (SO_Activity.Last_Update <= CONVERT(datetime, @date_end, 101))
GROUP BY v_rpt_Company.Company_Name, SO_Activity.Subject, SO_Activity.Notes, SO_Activity.Date_Closed, SO_Activity.Last_Update, v_rpt_Member.Member_ID,
v_rpt_ActivityType.SO_Activity_Type_Desc, v_rpt_ActivityStatus.SO_Act_Status_Desc
ORDER BY v_rpt_Company.Company_Name, SO_Activity.Last_Update DESC
這裏是我的asp.net代碼:
<div style="text-align:center;border-style:solid;border-width:3px; width:auto;height:auto;">
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
Height="700px" ProcessingMode="Remote" Width="100%" ShowParameterPrompts="False">
<ServerReport ReportPath="/path/report" ReportServerUrl="http:myserver/reportserver" />
</rsweb:ReportViewer>
</div>
這裏是我的C#:
/*
* Retrieve parameters from URL and send them to the report
*/
private void getParametersFromURL()
{
//Load Parameters from URL
//Requests that are commented, are commented because of lack of ConnectWise Support
String[] parameters = new String[7];
parameters[0] = Request.QueryString["acctmgr"];
parameters[1] = Request.QueryString["member"];
parameters[2] = Request.QueryString["details"];
parameters[3] = Request.QueryString["act_status"];
parameters[4] = Request.QueryString["company"];
parameters[5] = Request.QueryString["date_start"];
parameters[6] = Request.QueryString["date_end"];
//Create Parameter Collection Array
Microsoft.Reporting.WebForms.ReportParameter[] reportParameterCollection = new Microsoft.Reporting.WebForms.ReportParameter[parameters.Length];
//Loop through each parameter and load the name and value into the parameter collection
int i = 0;
foreach (String parameter in parameters)
{
reportParameterCollection[i] = new Microsoft.Reporting.WebForms.ReportParameter();
reportParameterCollection[i].Name = getParameterName(i);
reportParameterCollection[i].Values.Add(Convert.ToString(parameters[i]));
i++;
}
//Load Parameters into the ReportViewer
ReportViewer1.ServerReport.SetParameters(reportParameterCollection);
ReportViewer1.ServerReport.Refresh();
}
/*
* Takes the index of the element in the parameter array
* then returns the correct parameter name to return to the report viewer
*/
public String getParameterName(int number)
{
switch (number)
{
case 0:
return "AcctMgr";
case 1:
return "member";
case 2:
return "details";
case 3:
return "act_status";
case 4:
return "company";
case 5:
return "date_start";
case 6:
return "date_end";
default:
Response.Write("<script language='javascript'>alert('Error: getParameterName(number) failed. Parameter #: " + number + ");</script>");
return "error";
}
}
「reportParameterCollection」中是否有任何缺失的參數?您是否嘗試通過設置ReportViewer ShowParameterPrompts =「True」來手動輸入它們? – 2012-03-14 17:00:51
不,沒有遺漏。我沒有得到任何錯誤,它呈現沒有結果。 它可以完美的使用參數提示。 – 2012-03-14 17:07:07
這是我的URL的一個例子: HTTP://myurl/reports/myapp.aspx公司= 2&細節= d&成員=成員名稱與acctmgr =假act_status = DATE_START = 01%2f01%2f2012&DATE_END = 03%2f14%2f2012 – 2012-03-14 17:08:38