public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport()
        {
            TotalMonthlyReport rpt = new TotalMonthlyReport();

            rpt.Site = this.Site;
            return(rpt);
        }
        private void generateReport()
        {
            TotalMonthlyData   reportDetails = new TotalMonthlyData();
            TotalMonthlyReport report        = new TotalMonthlyReport();
            DataTable          dataTable     = reportDetails.TotalMonthlyTable;

            readCompanyDetails();
            storeSales();
            storeExpense();
            DataRow drow = dataTable.NewRow();

            drow["CompanyName"]    = companyName;
            drow["CompanyDetails"] = companyDetails;
            string[] sDate = Regex.Split(startDate.ToString(), " ");
            drow["StartDate"] = sDate[0];
            string[] eDate = Regex.Split(endDate.ToString(), " ");
            drow["EndDate"]     = eDate[0];
            drow["TotalSales"]  = totalSalesList.Sum();
            drow["TotalCredit"] = totalCreditList.Sum();
            dataTable.Rows.Add(drow);
            for (int i = 0; i < expenseNameList.Count; i++)
            {
                DataRow  dr     = dataTable.NewRow();
                string[] exDate = Regex.Split(expenseDateList[i], " ");
                dr["ExpenseName"]   = expenseNameList[i] + ", " + exDate[0];
                dr["ExpenseAmount"] = expenseAmountList[i];
                dataTable.Rows.Add(dr);
            }
            cashBalance = totalSalesList.Sum() - totalCreditList.Sum() - expenseAmountList.Sum();
            DataRow dro = dataTable.NewRow();

            dro["TotalExpense"] = expenseAmountList.Sum();
            dro["CashBalance"]  = cashBalance;
            dataTable.Rows.Add(dro);
            report.Database.Tables["TotalMonthlyTable"].SetDataSource((DataTable)dataTable);
            totalMonthlyReportViewer.ViewerCore.ReportSource = report;
            report.Refresh();
        }