2012-03-14 5 views
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"; 
     } 
    } 
+0

"reportParameterCollection"にパラメータがありませんか? ReportViewer ShowParameterPrompts = "True"に設定して手動で入力しようとしましたか? –

+0

いいえ、何もありません。私は何のエラーもなく、レンダリングしても結果はありません。 パラメータプロンプトを使用して完全に動作します。 –

+0

これは私のURLの例です: ます。http:?//myurl/reports/myapp.aspx会社= 2&詳細= D&メンバー=メンバー名&acctmgr =偽&act_status =&DATE_START = 01パーセント2f01%の2f2012&DATE_END = 03パーセント2f14%の2f2012 –

答えて

1

私はそれを修正しました。問題はact_statusでした

レポート閲覧者によると、明らかにURLが&act_status=&...の文字列は、act_status = NULLという意味ではありません。

私はNULLとは対照的に空の文字列を反映するようにSQLを変更しました。

関連する問題