2

テキスト ボックスと Tablix を含むレポート ビューアーがあります。Tablix は、データ ソース (クエリ文字列から 2 つのパラメーターを持つストアド プロシージャを使用してデータを取得する) を使用して設定されます。クエリ文字列の値をレポート ビューアーのテキスト ボックスの値として指定する方法を教えてください。次のようなもの: この ReportfFrom クエリ文字列 val1 からクエリ文字列 val 2.

マークアップ:

<rsweb:ReportViewer ID="ReportViewer1" runat="server" 
    CssClass="ReportAlignment" Font-Names="Verdana" Font-Size="8pt" 
    InteractiveDeviceInfos="(Collection)" WaitMessageFont-Names="Verdana" 
    WaitMessageFont-Size="14pt" Width="550px">
    <LocalReport ReportPath="TempEmpWageSummaryReport.rdlc">
        <DataSources>
            <rsweb:ReportDataSource DataSourceId="LoadWageSummary" Name="DataSet1" />
        </DataSources>
    </LocalReport>
</rsweb:ReportViewer>
<asp:SqlDataSource ID="LoadWageSummary" runat="server" 
    ConnectionString="<%$ ConnectionStrings:stockerConnectionString %>" 
    SelectCommand="procTempEmployeeWageSummaryReport" 
    SelectCommandType="StoredProcedure">
    <SelectParameters>
        <asp:QueryStringParameter Name="startDate" QueryStringField="start" 
            Type="String" />
        <asp:QueryStringParameter Name="endDate" QueryStringField="end" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

コードビハインド

protected void Page_Load(object sender, EventArgs e)
    {
        string start = Server.UrlDecode(Request.QueryString["start"]);
        string end = Server.UrlDecode(Request.QueryString["end"]);
        //this.ReportViewer1.LocalReport.ReportEmbeddedResource = "TempEmpWageSummaryReport.rdlc";
        string param0 = "GROUPED TEMPORARY EMPLOYEE WAGE SUMMARY REPORT FROM " + start + "to " + end;
        ReportParameter rp = new ReportParameter("ReportParameter1", param0);
        this.ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });

        this.ReportViewer1.LocalReport.Refresh();

        //BindReport();
    }

ありがとう。

4

1 に答える 1

1

テキストボックスに値の欲望を指定してレポートを保存すると、レポートの定義で xml を処理して値を取得できますが、これはお勧めしません。このためにレポートの外にテキストボックスを用意し、それをクエリに渡してデータをフェッチする方がよいでしょう。

上記以外では、レポートを保存してからレポートの定義を処理して値を取得しない限り、ユーザーが指定したレポートのテキスト ボックスから値を取得することはほぼ不可能です。何をしているのかわからないと痛い。

于 2012-11-07T20:43:50.277 に答える