Exemple #1
0
        private RdlcReportModel GetReportModel()
        {
            Assembly        assembly = this.GetType().Assembly;
            RdlcReportModel inst     = new RdlcReportModel();

            inst.Definition.EmbededReportName = "DMT.TOD.Pages.Reports.RevenueSlipSum.rdlc";
            inst.Definition.RdlcInstance      = RdlcReportUtils.GetEmbededReport(assembly,
                                                                                 inst.Definition.EmbededReportName);
            // clear reprot datasource.
            inst.DataSources.Clear();

            List <RevenueEntry> items = new List <RevenueEntry>();

            if (null != _revenues)
            {
                items.AddRange(_revenues);
            }

            // assign new data source
            RdlcReportDataSource mainDS = new RdlcReportDataSource();

            mainDS.Name  = "main"; // the datasource name in the rdlc report.
            mainDS.Items = items;  // setup data source
            // Add to datasources
            inst.DataSources.Add(mainDS);

            // Add parameters (if required).
            //DateTime today = DateTime.Now;
            //string printDate = today.ToThaiDateTimeString("dd/MM/yyyy HH:mm:ss");
            //inst.Parameters.Add(RdlcReportParameter.Create("PrintDate", printDate));

            return(inst);
        }
 /// <summary>
 /// Load Report.
 /// </summary>
 /// <param name="reportSource">The instance of RdlcReportModel.</param>
 public void LoadReport(RdlcReportModel reportSource)
 {
     rptViewer.LoadReport(reportSource);
     if (rptViewer.ZoomMode != ZoomMode.PageWidth)
     {
         rptViewer.ZoomMode = ZoomMode.PageWidth;
     }
 }
 /// <summary>
 /// Load Report.
 /// </summary>
 /// <param name="reportSource">The instance of RdlcReportModel.</param>
 public void LoadReport(RdlcReportModel reportSource)
 {
     rptViewer.LoadReport(reportSource);
     if (rptViewer.ZoomMode != ZoomMode.FullPage)
     {
         rptViewer.ZoomMode = ZoomMode.FullPage;
     }
 }
Exemple #4
0
        /// <summary>
        /// 根据主报表ID获取rdlc报表列表
        /// </summary>
        /// <param name="reportId"></param>
        /// <param name="moduleId"></param>
        /// <param name="checkRole"></param>
        /// /// <returns></returns>
        public IList <RdlcReportModel> GetRdlcReportList(long reportId, long moduleId, bool checkRole)
        {
            var entList = _rdlcReportRepository.GetAllList(p => p.ReportId == reportId);

            if (entList != null & entList.Count > 0)
            {
                var rdlcReportList = new List <RdlcReportModel>();
                //循环rdlc报表,取出其配置信息
                foreach (var ent in entList)
                {
                    RdlcReportModel tb = GetRdlcReport(ent.Id, moduleId, checkRole);
                    rdlcReportList.Add(tb);
                }
                return(rdlcReportList);
            }
            return(null);
        }
        private RdlcReportModel GetReportModel()
        {
            Assembly        assembly = this.GetType().Assembly;
            RdlcReportModel inst     = new RdlcReportModel();

            inst.Definition.EmbededReportName = "DMT.TOD.Pages.Reports.RevenueSlip.rdlc";
            inst.Definition.RdlcInstance      = RdlcReportUtils.GetEmbededReport(assembly,
                                                                                 inst.Definition.EmbededReportName);
            // clear reprot datasource.
            inst.DataSources.Clear();
            List <RevenueEntry> items = new List <RevenueEntry>();

            if (null != _manager && null != _manager.RevenueEntry)
            {
                items.Add(_manager.RevenueEntry);
            }

            // assign new data source
            RdlcReportDataSource mainDS = new RdlcReportDataSource();

            mainDS.Name  = "main"; // the datasource name in the rdlc report.
            mainDS.Items = items;  // setup data source
            // Add to datasources
            inst.DataSources.Add(mainDS);

            // Add parameters (if required).
            DateTime today     = DateTime.Now;
            string   printDate = today.ToThaiDateTimeString("dd/MM/yyyy HH:mm:ss");

            inst.Parameters.Add(RdlcReportParameter.Create("PrintDate", printDate));
            string histText = ((null != _manager && null != _manager.RevenueEntry && _manager.RevenueEntry.IsHistorical)) ?
                              "(นำส่งย้อนหลัง)" : "";

            inst.Parameters.Add(RdlcReportParameter.Create("HistoryText", histText));

            return(inst);
        }
Exemple #6
0
        private RdlcReportModel GetReportModel()
        {
            Assembly        assembly = this.GetType().Assembly;
            RdlcReportModel inst     = new RdlcReportModel();

            inst.Definition.EmbededReportName = "DMT.TA.Pages.Reports.CollectorCouponReceived.rdlc";
            inst.Definition.RdlcInstance      = RdlcReportUtils.GetEmbededReport(assembly,
                                                                                 inst.Definition.EmbededReportName);
            // clear reprot datasource.
            inst.DataSources.Clear();

            List <TSBCouponSummary> items = new List <TSBCouponSummary>();

            if (null != _summary)
            {
                items.Add(_summary);
            }

            // gets coupon list by type.
            manager.User = _user;
            manager.Refresh(); // reload data.

            // load C35 items.
            List <TSBCouponTransaction> c35Items = new List <TSBCouponTransaction>();
            var c35coupons = manager.C35Users;

            if (null != c35coupons)
            {
                c35Items.AddRange(c35coupons);
            }
            // load C80 items.
            List <TSBCouponTransaction> c80Items = new List <TSBCouponTransaction>();
            var c80coupons = manager.C80Users;

            if (null != c80coupons)
            {
                c80Items.AddRange(c80coupons);
            }

            // assign new data source (main for header)
            RdlcReportDataSource mainDS = new RdlcReportDataSource();

            mainDS.Name  = "main"; // the datasource name in the rdlc report.
            mainDS.Items = items;  // setup data source
            // Add to datasources
            inst.DataSources.Add(mainDS);

            // assign new data source (main for coupon35)
            RdlcReportDataSource c35DS = new RdlcReportDataSource();

            c35DS.Name  = "C35";    // the datasource name in the rdlc report.
            c35DS.Items = c35Items; // setup data source
            // Add to datasources
            inst.DataSources.Add(c35DS);

            // assign new data source (main for coupon80)
            RdlcReportDataSource c80DS = new RdlcReportDataSource();

            c80DS.Name  = "C80";    // the datasource name in the rdlc report.
            c80DS.Items = c80Items; // setup data source
            // Add to datasources
            inst.DataSources.Add(c80DS);

            // Add parameters (if required).
            // Coupon Received Date.
            DateTime today = DateTime.Today;
            //string couponDate = today.ToThaiDateTimeString("dd/MM/yyyy HH:mm:ss");
            string couponDate = today.ToThaiDateTimeString("dd/MM/yyyy");

            inst.Parameters.Add(RdlcReportParameter.Create("couponDate", couponDate));
            // Supervisor (Current User)
            string supervisorFullName = DMT.Controls.TAApp.User.Current.FullNameTH;

            inst.Parameters.Add(RdlcReportParameter.Create("supervisorFullName", supervisorFullName));

            return(inst);
        }
Exemple #7
0
        /// <summary>
        /// Load Report.
        /// </summary>
        /// <param name="rptViewer">The instance of Report Viewer Control.</param>
        /// <param name="reportSource">The instance of RdlcReportModel.</param>
        public static void LoadReport(this ReportViewer rptViewer,
                                      RdlcReportModel reportSource)
        {
            RdlcMessageService.Instance.SendMessage("Begin Load Report.");

            rptViewer.ProcessingMode = ProcessingMode.Local;
            LocalReport lr = rptViewer.LocalReport;

            if (null != reportSource && null != reportSource.Definition &&
                null != reportSource.Definition.RdlcInstance &&
                null != reportSource.DataSources)
            {
                RdlcMessageService.Instance.SendMessage("Begin Load Report Definition.");

                // Load Rdlc file
                lr.LoadReportDefinition(reportSource.Definition.RdlcInstance);

                RdlcMessageService.Instance.SendMessage("Clear Report Data source.");
                // Clear all datasource before assign new one.
                lr.DataSources.Clear();

                if (reportSource.DataSources.Count > 0)
                {
                    // Set all data source.
                    foreach (var dataSource in reportSource.DataSources)
                    {
                        if (null == dataSource.Items)
                        {
                            continue;
                        }
                        RdlcMessageService.Instance
                        .SendMessage("Add New Report Data source - " + dataSource.Name);
                        lr.DataSources.Add(new ReportDataSource(
                                               dataSource.Name, dataSource.Items));
                    }
                }
                else
                {
                    RdlcMessageService.Instance
                    .SendMessage("No New Report Data source.");
                }

                if (lr.DataSources.Count > 0 &&
                    null != reportSource.Parameters && reportSource.Parameters.Count > 0)
                {
                    foreach (RdlcReportParameter para in reportSource.Parameters)
                    {
                        if (null == para || string.IsNullOrWhiteSpace(para.Name))
                        {
                            continue;
                        }
                        try
                        {
                            RdlcMessageService.Instance
                            .SendMessage("Set Report parameter - " + para.Name);

                            lr.SetValue(para.Name, para.Value);
                        }
                        catch (Exception) { }
                    }
                }
                else
                {
                    RdlcMessageService.Instance
                    .SendMessage("No Report parameter assigned.");
                }

                if (lr.DataSources.Count > 0)
                {
                    RdlcMessageService.Instance
                    .SendMessage("Set Report Page setting from Printer page setting.");

                    // Read Setting and set to report viewer
                    ReportPageSettings rdlcPageSettings = lr.GetDefaultPageSettings();
                    System.Drawing.Printing.PageSettings pageSettings = new System.Drawing.Printing.PageSettings();

                    pageSettings.PaperSize = rdlcPageSettings.PaperSize;
                    pageSettings.Landscape = rdlcPageSettings.IsLandscape;
                    pageSettings.Margins   = rdlcPageSettings.Margins;

                    rptViewer.SetPageSettings(pageSettings);
                    // refresh
                    rptViewer.LocalReport.Refresh();
                }
                else
                {
                    RdlcMessageService.Instance
                    .SendMessage("No Report data source so cannot set report page setting.");
                }
            }

            rptViewer.RefreshReport();
            // Set display mode to print layout.
            rptViewer.SetDisplayMode(DisplayMode.PrintLayout);

            if (null != reportSource && null != reportSource.Definition &&
                null != reportSource.Definition.RdlcInstance)
            {
                try
                {
                    reportSource.Definition.Dispose();
                }
                catch { }
            }
        }
        private RdlcReportModel GetReportModel()
        {
            Assembly        assembly = this.GetType().Assembly;
            RdlcReportModel inst     = new RdlcReportModel();

            inst.Definition.EmbededReportName = "DMT.TA.Pages.Reports.CouponSalesReceiptRep.rdlc";
            inst.Definition.RdlcInstance      = RdlcReportUtils.GetEmbededReport(assembly,
                                                                                 inst.Definition.EmbededReportName);
            // clear reprot datasource.
            inst.DataSources.Clear();

            var tsb = ops.TSB.GetCurrent().Value();

            // load C35 items.
            List <TSBCouponTransaction> c35Items = new List <TSBCouponTransaction>();
            var c35coupons = (null != _manager)  ? _manager.C35TSBSolds : null;

            if (null != c35coupons)
            {
                c35Items.AddRange(c35coupons);
            }
            // load C80 items.
            List <TSBCouponTransaction> c80Items = new List <TSBCouponTransaction>();
            var c80coupons = (null != _manager) ? _manager.C80TSBSolds : null;

            if (null != c80coupons)
            {
                c80Items.AddRange(c80coupons);
            }

            // create and calculate main summary list.
            List <TSBCouponSummary> items = new List <TSBCouponSummary>();

            _summary            = new TSBCouponSummary();
            _summary.UserId     = _manager.User.UserId;
            _summary.FullNameEN = _manager.User.FullNameEN;
            _summary.FullNameTH = _manager.User.FullNameTH;
            _summary.TSBId      = tsb.TSBId;
            _summary.TSBNameEN  = tsb.TSBNameEN;
            _summary.TSBNameTH  = tsb.TSBNameTH;

            _summary.CountCouponBHT35 = c35Items.Count;
            _summary.CountCouponBHT80 = c80Items.Count;
            decimal a35 = decimal.Zero;

            c35Items.ForEach(c35 =>
            {
                a35 += c35.Price;
            });
            decimal a80 = decimal.Zero;

            c80Items.ForEach(c80 =>
            {
                a80 += c80.Price;
            });
            _summary.AmountCouponBHT35 = a35;
            _summary.AmountCouponBHT80 = a80;
            if (null != _summary)
            {
                items.Add(_summary);
            }

            // assign new data source (main for header)
            RdlcReportDataSource mainDS = new RdlcReportDataSource();

            mainDS.Name  = "main"; // the datasource name in the rdlc report.
            mainDS.Items = items;  // setup data source
            // Add to datasources
            inst.DataSources.Add(mainDS);

            // assign new data source (main for coupon35)
            RdlcReportDataSource c35DS = new RdlcReportDataSource();

            c35DS.Name  = "C35";    // the datasource name in the rdlc report.
            c35DS.Items = c35Items; // setup data source
            // Add to datasources
            inst.DataSources.Add(c35DS);

            // assign new data source (main for coupon80)
            RdlcReportDataSource c80DS = new RdlcReportDataSource();

            c80DS.Name  = "C80";    // the datasource name in the rdlc report.
            c80DS.Items = c80Items; // setup data source
            // Add to datasources
            inst.DataSources.Add(c80DS);

            // Add parameters (if required).

            // Coupon Received Date.
            DateTime today = DateTime.Today;
            //string couponDate = today.ToThaiDateTimeString("dd/MM/yyyy HH:mm:ss");
            string couponDate = today.ToThaiDateTimeString("dd/MM/yyyy");

            inst.Parameters.Add(RdlcReportParameter.Create("couponDate", couponDate));
            // Supervisor (Current User)
            string supervisorFullName = DMT.Controls.TAApp.User.Current.FullNameTH;

            inst.Parameters.Add(RdlcReportParameter.Create("supervisorFullName", supervisorFullName));

            _runningNumber = "630000x"; // TODO: Implements Running Number for Receipt.
            inst.Parameters.Add(RdlcReportParameter.Create("runningNumber", _runningNumber));

            return(inst);
        }
Exemple #9
0
        /// <summary>
        /// 保存筛选条件信息
        /// 将未设置筛选的字段一起保存(未设置的字段IsSearch = false)
        /// </summary>
        /// <param name="rdlcReport"></param>
        /// <param name="rdlcReportId"></param>
        private void SaveRpFilterList(RdlcReportModel rdlcReport, long rdlcReportId)
        {
            //新增或修改筛选
            if (rdlcReport.FilterListJson != null && rdlcReport.FilterListJson.Length > 0)
            {
                //保存说明:无差别式保存.然后在报表解析时去差别处理

                //rdlcReport.FilterListJson返回的所有字段+自定义筛选的内容
                var ftList = JSON.EncodeToEntity <List <ReportFilterModel> >(rdlcReport.FilterListJson);
                //原筛选项
                var oldFtList = _reportFilterRepository.GetAllList(p => p.RdlcReportId == rdlcReportId);
                //获得新的字段
                var fdCodes = ftList.Select(p => p.FieldCode);
                //未在新字段的(应被删的)
                var delFtList = oldFtList.Where(p => p.FieldCode != null && !fdCodes.Contains(p.FieldCode)).ToList();

                //批量修改原筛选全部fasle
                if (oldFtList != null && oldFtList.Count > 0)
                {
                    for (int j = oldFtList.Count - 1; j >= 0; j--)
                    {
                        var ft = oldFtList[j];

                        if (delFtList.Contains(ft))
                        {
                            _reportFilterRepository.Delete(ft);
                        }
                        else
                        {
                            ft.IsSearch = false;
                            _reportFilterRepository.Update(ft);
                        }
                    }
                    //CurrentUnitOfWork.SaveChanges();
                }

                //批量添加或修改筛选信息
                if (ftList != null && ftList.Count > 0)
                {
                    for (int i = 0; i < ftList.Count; i++)
                    {
                        var ft = ftList[i];

                        ReportFilter curFt = new ReportFilter();
                        if (ft.IsCustom)//自定筛选
                        {
                            if (ft.Id != 0)
                            {
                                curFt = oldFtList.FirstOrDefault(p => p.Id == ft.Id);
                            }
                            else
                            {
                                curFt = oldFtList.FirstOrDefault(p => p.FieldParam == ft.FieldParam);//根据参数名判断
                            }
                        }
                        else
                        {
                            curFt = oldFtList.FirstOrDefault(p => p.FieldCode == ft.FieldCode);//根据字段编码判断
                        }
                        curFt = AutoMapper.Mapper.Map(ft, curFt);
                        curFt.RdlcReportId = rdlcReportId;
                        _reportFilterRepository.InsertOrUpdate(curFt);//保存筛选
                    }
                }
            }
        }
Exemple #10
0
        private void SaveRdlcInEventList(RdlcReportModel tbReport, long reportId, long tbReportId, string code)
        {
            //表格解析地址
            var analysis = _analysisRepository.FirstOrDefault(p => p.Url == "Report/RdlcReport");

            #region 内置事件保存
            //内置事件列表
            var inEvList = _inEventRepository.GetAllList(p => p.ReportType == (short)ReportEnum.ReportType.Rdlc).ToList();
            var inEvIds  = inEvList.Select(p => p.Id);

            string inlambda = "p=>p.Code==\"" + code + "\" && p.EventFrom==\"内置\" && p.SourceTable==\"EM_INEVENT\" &&p.AnalysisId==" + analysis.Id;
            Expression <Func <ModuleEvent, bool> > exp1 = StringToLambda.LambdaParser.Parse <Func <ModuleEvent, bool> >(inlambda);
            var mdInEvList = _moduleManager.GetModuleEventList(exp1);
            if (mdInEvList != null && mdInEvList.Count > 0)
            {
                //删除不在内置事件列表中的模版事件
                var delInEvList = mdInEvList.Where(p => !inEvIds.Contains(p.SourceTableId)).ToList();
                if (delInEvList != null && delInEvList.Count > 0)
                {
                    foreach (var inEv in delInEvList)
                    {
                        if (analysis != null)
                        {
                            //删除事件解析表事件及赋权信息
                            _moduleManager.DeleteEvent(analysis.Id, code, inEv.SourceTableId);
                        }
                    }
                }
                //查找没有添加的内置事件List
                var insertInEvList = inEvList.Where(p => !mdInEvList.Select(k => k.SourceTableId).Contains(p.Id));
                if (insertInEvList != null && insertInEvList.Count() > 0)
                {
                    //循环添加内置事件
                    foreach (var inev in insertInEvList)
                    {
                        ModuleEvent mdEv = new ModuleEvent
                        {
                            AnalysisId    = analysis.Id,
                            Code          = code,
                            EventName     = inev.DisplayName + "(rdlc)",
                            EventFrom     = "内置",
                            SourceTable   = "EM_INEVENT",
                            SourceTableId = inev.Id,
                        };
                        _moduleManager.SaveEvent(mdEv);
                    }
                }
            }
            else//未找到时,添加内置事件
            {
                if (inEvList != null && inEvList.Count > 0)
                {
                    foreach (var inEv in inEvList)
                    {
                        //保存事件至EM_MODULE_EVENT
                        ModuleEvent mdEv = new ModuleEvent
                        {
                            AnalysisId    = analysis.Id,
                            Code          = code,
                            EventName     = inEv.DisplayName + "(rdlc)",
                            EventFrom     = "内置",
                            SourceTable   = "EM_INEVENT",
                            SourceTableId = inEv.Id
                        };
                        _moduleManager.SaveEvent(mdEv);
                    }
                }
            }
            #endregion
        }