public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport()
 {
     RptCDISummaryPerAreaAndCustomer rpt = new RptCDISummaryPerAreaAndCustomer();
     rpt.Site = this.Site;
     return rpt;
 }
        private void InitializeReport()
        {
            int year = int.Parse(Request.QueryString["Year"]);
            int days_count = GetMonthDayCount(year, 2);
            string DRStatus = Request.QueryString["Status"];
            string Area = Request.QueryString["Area"];

            int AreaNumber = GetAreaNumber(Area);
            DateTime DateTo = new DateTime(year, 12, 31);
            DateTime DateFrom = new DateTime(year, 1, 1);

            ReportDocument REPORT_DOC = new ReportDocument();
            string reportCacheKey = string.Concat("DRSummaryPerAreaAndCustomer", year, Request.QueryString["Brand"],Area,DRStatus);
            ParameterField prmDateFrom = new ParameterField();
            ParameterField prmDateTo = new ParameterField();
            ParameterField prmBrand = new ParameterField();
            ParameterField prmFebDaysCount = new ParameterField();
            ParameterField prmAreaNumber = new ParameterField();
            ParameterField prmDRStatus = new ParameterField();
            ParameterFields prmList = new ParameterFields();

            prmDateFrom.ParameterFieldName = "@DATE_FROM_PARAM";
            prmDateTo.ParameterFieldName = "@DATE_TO_PARAM";
            prmBrand.ParameterFieldName = "@BRAND_NAME";
            prmFebDaysCount.ParameterFieldName = "@FEB_DAY_";
            prmAreaNumber.ParameterFieldName = "@AREA_GROUP";
            prmDRStatus.ParameterFieldName="@DR_STATUS";

            ParameterDiscreteValue prmDateFromValue = new ParameterDiscreteValue();
            ParameterDiscreteValue prmDateToValue = new ParameterDiscreteValue();
            ParameterDiscreteValue pramBrandValue = new ParameterDiscreteValue();
            ParameterDiscreteValue prmFebDaysCountValue = new ParameterDiscreteValue();
            ParameterDiscreteValue prmAreaNumbervalue = new ParameterDiscreteValue();
            ParameterDiscreteValue prmDRStatusValue = new ParameterDiscreteValue();

            prmDateFromValue.Value = DateFrom;
            prmDateToValue.Value = DateTo;
            pramBrandValue.Value = Request.QueryString["Brand"];
            prmFebDaysCountValue.Value = days_count;
            prmAreaNumbervalue.Value = AreaNumber;
            prmDRStatusValue.Value = DRStatus;

            prmDateFrom.CurrentValues.Add(prmDateFromValue);
            prmDateTo.CurrentValues.Add(prmDateToValue);
            prmBrand.CurrentValues.Add(pramBrandValue);
            prmFebDaysCount.CurrentValues.Add(prmFebDaysCountValue);
            prmAreaNumber.CurrentValues.Add(prmAreaNumbervalue);
            prmDRStatus.CurrentValues.Add(prmDRStatusValue);

            prmList.Add(prmDateFrom);
            prmList.Add(prmDateTo);
            prmList.Add(prmBrand);
            prmList.Add(prmFebDaysCount);
            prmList.Add(prmAreaNumber);
            prmList.Add(prmDRStatus);

                if (Cache[reportCacheKey] != null)
                {
                    REPORT_DOC = (RptCDISummaryPerAreaAndCustomer)Cache[reportCacheKey];
                }
                else
                {
                    REPORT_DOC = new RptCDISummaryPerAreaAndCustomer();
                    Cache.Insert(reportCacheKey, REPORT_DOC);
                }

            DataBaseLogIn(REPORT_DOC);
            this.DRSummaryPerAreaAndCustomerReport.ParameterFieldInfo = prmList;
            DRSummaryPerAreaAndCustomerReport.ReportSource = REPORT_DOC;
        }