public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport() { SPnl3Month rpt = new SPnl3Month(); rpt.Site = this.Site; return rpt; }
private void btnMath3MonthReport_Click(object sender, EventArgs e) { DateTime minDate = DateTime.Now; DateTime maxDate = DateTime.Today.AddMonths(3); TimeSpan spanDay = maxDate - minDate; int Day = spanDay.Days; List<string> Date = new List<string>(); List<double> SPnl = new List<double>(); Main.PGB pgb = new Main.PGB(); pgb.progressBar1.Minimum = 0; pgb.progressBar1.Maximum = Day + 1; pgb.progressBar1.Step = 1; pgb.Show(); for (int i = 0; i <= Day; i++) { DataTable result = GetSQL.Get3MonthSPOdOrderSub(minDate.ToString("yyyy-MM-dd 00:00:00"), minDate.ToString("yyyy-MM-dd 23:59:59")); if (result.Rows.Count != 0) { Date.Add(minDate.ToString("yyyy-MM-dd")); SPnl.Add(ewMath.SPnlSumByReport(result)); } minDate = minDate.AddDays(1); pgb.progressBar1.Value++; Application.DoEvents(); if (pgb.progressBar1.Value == Day + 1) { pgb.label1.Text = "報表啟動中,請稍候....."; } } DataTable mergeResult = new DataTable(); mergeResult.Columns.Add("Date"); mergeResult.Columns.Add("SPnl"); for (int i = 0; i < Date.Count; i++) { DataRow row = mergeResult.NewRow(); row["Date"] = Date[i]; row["SPnl"] = SPnl[i]; mergeResult.Rows.Add(row); } DataSet insert = new DataSet(); insert.Tables.Add(mergeResult); insert.WriteXmlSchema("TEMP.xml"); try { SPnl3Month report = new SPnl3Month(); report.SetDataSource(insert); rptSPnl3Month rptsp3m = new rptSPnl3Month(); rptsp3m.crystalReportViewer1.ReportSource = report; rptsp3m.Show(); pgb.Dispose(); } catch (Exception ex) { sysMessage.SystemEx(ex.Message); } }