Agusto Xaverius P.Sipahutar

Jobs : Creating many bug with bug fixing too of cource Programming : C# .Net, WSS/MOSS, K2 BlackPearl, SQL Server
See also: Other Geeks@INDC

News

My Certification



MCP ID# 3552391

My Curiculum Vitae


Yahoo Messager

Agusto

Tolong kasih Makan Ikannya Ya :)


Other Articles

Bikers Community

Moss/Wss Articles

March 2007 - Posts

Sub Report di Crystal Report dengan Method Push

Ada user yang bertanya bagaimana cara membuat sub report dimana data telah terbentuk tersebut menggunakan datatable / dataset.

Yup,  Crystal report bisa melakukan hal tersebut dengan menggunakan Method Push dan untuk lebih jelasnya dapat di lihat pada contoh code sbb :

 private DataTable dtMaster;
 private DataTable dtDetail;
 private ReportDocument rptDoc = null;
 private ReportDocument rtDetail = null;  

private void LoadData()
  {
        dtMaster = new DataTable("MASTER");
        DataRow dr;
        dtMaster.Columns.Add("INV", typeof(string));
        dtMaster.Columns.Add("DESC", typeof(string));

        dr = dtMaster.NewRow();
        dr["INV"] = "0001";
        dr["DESC"] = dr["INV"] + " DESCRIPTION ";
        dtMaster.Rows.Add(dr);

        dr = dtMaster.NewRow();
        dr["INV"] = "0002";
        dr["DESC"] = dr["INV"] + " DESCRIPTION ";
        dtMaster.Rows.Add(dr);

        dr = dtMaster.NewRow();
        dr["INV"] = "0003";
        dr["DESC"] = dr["INV"] + " DESCRIPTION ";
        dtMaster.Rows.Add(dr);

        dr = dtMaster.NewRow();
        dr["INV"] = "0004";
        dr["DESC"] = dr["INV"] + " DESCRIPTION ";
        dtMaster.Rows.Add(dr);

        dr = dtMaster.NewRow();
        dr["INV"] = "0004";
        dr["DESC"] = dr["INV"] + " DESCRIPTION ";
        dtMaster.Rows.Add(dr);

        //dtMaster.WriteXmlSchema (@"c:\Master.xsd");  

        dtDetail = new DataTable("DETAIL");
        dtDetail.Columns.Add("INV", typeof(string));
        dtDetail.Columns.Add("STOCK", typeof(string));

        dr = dtDetail.NewRow();
        dr["INV"] = "0001";
        dr["STOCK"] = "SUSU BENDERA";
        dtDetail.Rows.Add(dr);

        dr = dtDetail.NewRow();
        dr["INV"] = "0001";
        dr["STOCK"] = "TEH BOTOL";
        dtDetail.Rows.Add(dr);

        dr = dtDetail.NewRow();
        dr["INV"] = "0002";
        dr["STOCK"] = "INDOMIE";
        dtDetail.Rows.Add(dr);

        //dtDetail.WriteXmlSchema(@"c:\Detail.xsd");
                     
    }

private void BindReport()
    {
       
        if (dtMaster == null) return; 
        if (dtMaster.Rows.Count > 0)
        {
            rptDoc = new ReportDocument();
            string rptpath = this.Context.Request.PhysicalApplicationPath + @"Rpt1.rpt";
            rptDoc.Load(rptpath);
            rptDoc.Database.Tables["MASTER"].SetDataSource(dtMaster);

           

            rtDetail = rptDoc.OpenSubreport("Rpt2.rpt");
            rtDetail.Database.Tables["DETAIL"].SetDataSource(dtDetail);

            CR1.ReportSource = rptDoc;
            CR1.DataBind();
        }
        rptDoc = null;
        rtDetail = null; 
   }

Bila ada yang mau sample code nya bisa kirim email ke saya di agustox21@gmail.com

Share this post: | | | |