2017年3月10日金曜日

ASP.netのレポートに独自クラスでデータをセット [MicrosoftReport]

レポートにデータを流し込むには、DataSetが一般的みたいだけど、
DeataSetだと文字列で指定しなきゃだから使い勝手が悪い・・・。
 
なのでクラスのListをデータに流し込む方法!

まずはオリジナルのクラスを作成。
----------------------------------------------------------
public class SampleDesign
{
    //Selectメソッドで流し込むデータを生成し返り値にする
    //引数は必要なものを必要なだけ定義する
    [DataObjectMethod(DataObjectMethodType.Select, true)]
    public List<SampleDesign> Select(int test)
    {
        List<SampleDesign> datas = new List<SampleDesign>();

        SampleDesign data;

        data = new SampleDesign();
        data.TestCD = 1;
        data.TestName = "表示名称";
        datas.Add(data);
       
        data = new SampleDesign();
        data.TestCD = 2;
        data.TestName = "表示名称2つ目";
        datas.Add(data);
        return datas;
    }

    //帳票の項目
    public int TestCD { get; set; }
    public string TestName { get; set; }
}
------------------------------------------------------

デザイン画面にReportViewerとScriptManagerとObjectDataSourceを配置する。
ビルドを行い、DataSourceのデータソースの定義で作ったクラスを選択する。



データメソッドの定義画面で、
SELECTタブのメソッドの選択で、クラス内に定義したSelectを選択する。



パラメーターの定義画面で、
Selectに必要なパラメーターの設定を行う。


パラメーターはObjectDataSource1.SelectParametersにセットすればSelectで受けられる。
--------------------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
    this.ObjectDataSource1.SelectParameters[0] =
           new Parameter("test", TypeCode.Int32, "4321");
}
--------------------------------------------------------------------

これでビルドして実行!!

0 件のコメント:

コメントを投稿