1

次のコントロールがあります: データ ソース、レポート ビューアー、および 2 つの Telerik RadDateTimePicker。Rad Controls のスクリーン ショット。

ラッド コントロール

私のレポートはクライアント レポート定義 (.rdlc) です。レポートとデータ ソースに使用している SQL 2008 データベースにストアド プロシージャがあります。

コードではなく、GUI IDE を介して、Rad Control のパラメーター ソースを使用してストアド プロシージャを構成しました。そのスクリーンショット:

DS 構成

データ ソースの ASP コードは次のとおりです。

<asp:SqlDataSource ID="DataSourceViewWeeklySummary" runat="server" 
    ConnectionString="<%$ ConnectionStrings:SERVER %>" 
    SelectCommand="ProcedureWeeklySummary" SelectCommandType="StoredProcedure">
    <SelectParameters>
        <asp:ControlParameter ControlID="DTimePickerStartDate" Name="startDate" 
            PropertyName="SelectedDate" Type="DateTime" />
        <asp:ControlParameter ControlID="DTimePickerEndDate" DefaultValue="" 
            Name="endDate" PropertyName="SelectedDate" Type="DateTime" />
    </SelectParameters>
</asp:SqlDataSource>

2 つの日付と時刻のピッカーを使用してデータ ソースのパラメーターを更新できるようにするには、コードを使用したいと考えています。次に、レポート ビューアーを更新してレポートを更新します。できるだけ少ないコードでこれを達成できるように、誰かが私を正しい方向に向けることができますか? 助けてくれてありがとう。さらに情報をリストできる場合は、私にも知らせてください。

4

1 に答える 1

1

DTP コントロールのSelectedDateChanged場合、これを行う必要がありますStartDateVariable = e.NewDate

次に、ReportRefreshレポートのイベントで、次のようにパラメーターを更新する必要がありますDataSource.SelectParameters[0].DefaultValue = StartDateVariable;

イベントDataBind()を終了する前に、必ず を呼び出してください(他の場所で処理している場合を除きます。ReportRefresh

また、おそらくいくつかの型のキャスト/変換が必要になるでしょう。私が間違っていなければ、DefaultValueプロパティは文字列であるため、変数を文字列に変換するか、新しい日付を文字列に変換する必要があります。

以下は「完全な」例です。

        protected void DTimePickerStartDate_SelectedDateChanged(object sender, Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs e)
    {
        StartDate = Convert.ToString(e.NewDate);
    }

    protected void DTimePickerEndDate_SelectedDateChanged(object sender, Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs e)
    {
        EndDate = Convert.ToString(e.NewDate);
    }

    protected void ReportViewer1_ReportRefresh(object sender, System.ComponentModel.CancelEventArgs e)
    {
        DataSourceViewWeeklySummary.SelectParameters[0].DefaultValue = StartDate;
        DataSourceViewWeeklySummary.SelectParameters[1].DefaultValue = EndDate;

        DataSourceViewWeeklySummary.DataBind();
    }
于 2013-08-28T15:02:30.233 に答える