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