Exemplo n.º 1
0
        public void SetReportSettingInfo()
        {
            for (var i = 0; i < ReportSettingList.Count; i++)
            {
                var reportSetting = new ReportSetting();
                reportSetting = ReportSettingList[i];

                if (reportSetting.IsText != 1)
                {
                    var comboCell = (ComboBoxCell)grid.Rows[i].Cells[1];
                    reportSetting.ItemKey   = comboCell.Value.ToString();
                    reportSetting.ItemValue = comboCell.DisplayText.ToString();
                }
                else
                {
                    var textCell = (GcTextBoxCell)grid.Rows[i].Cells[2];

                    if (textCell.Value == null || textCell.Value == DBNull.Value ||
                        string.IsNullOrEmpty(textCell.Value.ToString()))
                    {
                        reportSetting.ItemKey = string.Empty;
                    }
                    else
                    {
                        reportSetting.ItemKey = textCell.Value.ToString();
                    }
                }
                ReportSettingList[i] = reportSetting;
            }
        }
Exemplo n.º 2
0
        public void Print(ReportSetting ReportSetting, PrintingArgument PrintingArgument, IEnumerable Data, Func <object, object> ExtensionFunction)
        {
            ReportDocument reportDocument = new ReportDocument();

            string templateFilePath = $"{AppDomain.CurrentDomain.BaseDirectory}{Path.DirectorySeparatorChar}Report{Path.DirectorySeparatorChar}{ReportSetting.TemplateName}";

            reportDocument.Load(templateFilePath);
            reportDocument.SetDataSource(Data);

            PageMargins margins = reportDocument.PrintOptions.PageMargins;

            margins.bottomMargin = PrintingArgument.BottomMargin;
            margins.leftMargin   = PrintingArgument.LeftMargin;
            margins.rightMargin  = PrintingArgument.RightMargin;
            margins.topMargin    = PrintingArgument.TopMargin;
            reportDocument.PrintOptions.ApplyPageMargins(margins);

            reportDocument.PrintOptions.PrinterName = ReportSetting.Printer;

            if (ExtensionFunction != null)
            {
                ExtensionFunction(reportDocument);
            }

            reportDocument.PrintToPrinter(PrintingArgument.NumberOfCopies, PrintingArgument.IsCollated, PrintingArgument.StartPageNumber, PrintingArgument.EndPageNumber);
        }
Exemplo n.º 3
0
        public void Execute()
        {
            var reportSetting = DatabaseInstance.Query <ReportSetting>("select * from reportsettings where reportType=@ReportType",
                                                                       new { ReportType = this.GetType().FullName }).FirstOrDefault();

            if (reportSetting == null)
            {
                reportSetting = new ReportSetting {
                    ReportType = this.GetType().FullName, Value = "2011-6-1", IsEnabled = true
                };
                reportSetting.ReportSettingId = DatabaseInstance.Insert(reportSetting, "reportsettings");
            }
            if (!reportSetting.IsEnabled)
            {
                return;
            }

            DateTime lastTime = DateTime.Parse(reportSetting.Value).Date;

            while (lastTime.Date < DateTime.Now.Date)
            {
                using (var tran = DatabaseInstance.BeginTransaction())
                {
                    OnExecute(lastTime);
                    reportSetting.Value = lastTime.ToString("yyyy-MM-dd");
                    DatabaseInstance.Update(reportSetting, "reportsettings");
                    tran.Commit();
                }
                lastTime = lastTime.AddDays(1);
            }
        }
Exemplo n.º 4
0
        public ReportSetting GetReportSetting(string ID)
        {
            ReportSetting reportSetting = null;

            string sqlCommandText = ModuleConfiguration.SQL_CMD_GetReportSettingById;

            var dbResult = this.dmlOperable.ExeReader(sqlCommandText, new Dictionary <string, object>()
            {
                { "@ID", long.Parse(ID) }
            });

            if (dbResult != null && dbResult.Count == 1)
            {
                reportSetting = new ReportSetting()
                {
                    ID       = dbResult[0]["ID"].ToString(),
                    Title    = (string)dbResult[0]["Title"],
                    Template = new Attachment()
                    {
                        ID = (string)dbResult[0]["@TemplateID"]
                    },
                    AutoPrintOnAlarm       = (int?)dbResult[0]["AutoPrintOnAlarm"],
                    AutoPrintOnMeasurement = (int?)dbResult[0]["AutoPrintOnMeasurement"],
                    Printer      = (string)dbResult[0]["Printer"],
                    TemplateName = (string)dbResult[0]["TemplateName"]
                };
            }

            return(reportSetting);
        }
Exemplo n.º 5
0
 public ReportViewerFrm(ReportSetting reportSetting)
 {
     this.reportSetting = reportSetting;
     InitializeComponent();
     //this.rptViewer.LocalReport.ReportEmbeddedResource = "WareBrowserReports.reports." + reportSetting.ReportFilePath;
     this.rptViewer.LocalReport.ReportPath = reportSetting.ReportFilePath;
 }
Exemplo n.º 6
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (this.lstvReportName.SelectedItems.Count > 0)
            {
                ReportSetting itemToDelete = null;
                foreach (ReportSetting item in reportSettingList)
                {
                    if (item.ReportName == lstvReportName.SelectedItems[0].Text)
                    {
                        itemToDelete = item;
                    }
                }

                if (itemToDelete == null)
                {
                    return;
                }

                if (CommonHelper.ShowConfirmBox(string.Format("是否删除报表'{0}'的设定文件?", itemToDelete.ReportName), "确认删除"))
                {
                    try
                    {
                        reportSettingList.Remove(itemToDelete);
                        File.Delete(itemToDelete.SettingFilePath);
                        this.lastSelectedIndex = -1;
                        lstvReportName.Items.Remove(lstvReportName.SelectedItems[0]);
                        loadReportNameCombo();
                    }
                    catch (Exception ex)
                    {
                        CommonHelper.ShowErrorBox("删除报表设定文件时发生错误。" + ex.Message);
                    }
                }
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Метод по созданию файла конфигурации отчёта.
        /// </summary>
        public static void CreateReportSetting()
        {
            List <ReportSetting> ReportSettings = new List <ReportSetting>();

            for (int confID = 1; confID < 4; confID++)
            {
                ReportSetting reportSetting = new ReportSetting();

                reportSetting.ConfigurationID = confID;

                reportSetting.DirectoryIdOnRows    = 1; // Берём "Объекты строительства"
                reportSetting.DirectoryIdOnColumns = 2; // Берём "Версии данных"

                // По заданию - справочник по строкам – «Объекты строительства» с атрибутами «Код объекта» и «Наименование»
                reportSetting.AttributesOfDirectoryOnRows.Add("Code");
                reportSetting.AttributesOfDirectoryOnRows.Add("Name");

                // По заданию - справочник по столбцам – «Версии данных» (возьмём только атрибут "Наименование", чтобы вывести столбцы Версия 1 Версия 2 Версия 3)
                reportSetting.AttributesOfDirectoryOnColumns.Add("Name");

                // Добавляем в коллекцию настроек
                ReportSettings.Add(reportSetting);
            }

            // Сериализуем и в файлик "ReportSettings-1.json", где 1 - пусть будет номер конфигурации
            string queryListForWriting = JsonConvert.SerializeObject(ReportSettings);

            using (StreamWriter sw = new StreamWriter("ReportSettings_new.json", false, Encoding.UTF8))
            {
                sw.WriteLine(queryListForWriting);
            }
        }
Exemplo n.º 8
0
 public EasyReportService(ReportSetting reportSettings, MailSetting mailSettings)
 {
     this.reportSetting     = reportSettings;
     this.mailSetting       = mailSettings;
     this.logger            = NLog.LogManager.GetCurrentClassLogger();
     this.connectionStrings = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ToString();
     reportSetting.logger   = this.logger;
 }
Exemplo n.º 9
0
 public DeviceSetting()
 {
     Scanner         = new ScannerSetting();
     CashDrawer      = new CashDrawerSetting();
     CustomerDisplay = new CustomerDisplaySetting();
     Report          = new ReportSetting();
     Receipt         = new ReceiptSetting();
     Msr             = new MsrSetting();
 }
        /// <summary>
        /// update pagesize
        /// </summary>
        /// <param name="address">Address</param>
        public virtual void UpdateReportSetting(ReportSetting report)
        {
            if (report == null)
            {
                throw new ArgumentNullException(nameof(report));
            }

            _reportSettingRepository.Update(report);
        }
Exemplo n.º 11
0
        private void lstvReportName_AfterLabelEdit(object sender, LabelEditEventArgs e)
        {
            if (e.Label == null)
            {
                return;
            }
            ReportSetting item = reportSettingList[e.Item];

            item.ReportName = e.Label;
        }
Exemplo n.º 12
0
        public void SetGridTemplate()
        {
            if (UseForeignCurrency)
            {
                ReportSettingList = ReportSettingList.Where(x => x.ItemId != "ReportUnitPrice").ToList();
            }

            if (FromCustomerLedger && !UseSection)
            {
                ReportSettingList = ReportSettingList.Where(x => x.DisplayOrder != DisplaySectionCode).ToList();
            }

            grid.RowCount = ReportSettingList.Count;

            for (var i = 0; i < ReportSettingList.Count; i++)
            {
                var reportSetting = new ReportSetting();
                reportSetting = ReportSettingList[i];

                var settingList = new List <Setting>();
                settingList = reportSetting.SettingList;

                var textCellName = (GcTextBoxCell)grid.Rows[i].Cells[0];
                textCellName.Value = reportSetting.Caption;

                if (reportSetting.IsText != 1)
                {
                    var comboCellValue = (ComboBoxCell)grid.Rows[i].Cells[1];
                    comboCellValue.Items.Clear();

                    comboCellValue.DataSource     = settingList;
                    comboCellValue.ValueMember    = "ItemKey";
                    comboCellValue.DisplayMember  = "ItemValue";
                    comboCellValue.Value          = reportSetting.ItemKey;
                    grid.Rows[i].Cells[2].Visible = false;
                }
                else
                {
                    var textCellValue = (GcTextBoxCell)grid.Rows[i].Cells[2];

                    if (reportSetting.Caption == ReportDueCommentName)
                    {
                        textCellValue.Value = !string.IsNullOrEmpty(reportSetting.ItemKey)
                            ? reportSetting.ItemKey : ReportDueCommentValue;
                    }
                    else
                    {
                        textCellValue.Value = reportSetting.ItemKey;
                    }

                    grid.Rows[i].Cells[1].Visible = false;
                }
            }
        }
Exemplo n.º 13
0
        private IList <ReportSetting> getReportSettingList(string[] fileList)
        {
            List <ReportSetting> tempList = new List <ReportSetting>();
            XmlDocument          doc      = new XmlDocument();

            for (int i = 0; i < fileList.Length; ++i)
            {
                string reportName = string.Empty;
                Stream stream     = null;
                try
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(ReportSetting));
                    stream = File.Open(fileList[i], FileMode.Open, FileAccess.Read);
                    ReportSetting reportSetting = serializer.Deserialize(stream) as ReportSetting;
                    reportSetting.SettingFilePath = fileList[i];
                    tempList.Add(reportSetting);
                }
                catch
                {
                    //ignore exception
                }
            }

            ReportMappingCollection collection        = getReportMappingCollection();
            IList <ReportSetting>   reportSettingList = new List <ReportSetting>();

            foreach (report_mapping mapping in collection)
            {
                foreach (ReportSetting reportSetting in tempList)
                {
                    if (reportSetting.ReportName == mapping.ExternalName)
                    {
                        reportSettingList.Add(reportSetting);
                    }
                }
            }

            //foreach (ReportSetting reportSetting in reportSettingList)
            //{
            //    tempList.Remove(reportSetting);
            //}

            //foreach (ReportSetting reportSetting in tempList)
            //{
            //    File.Delete(reportSetting.SettingFilePath);
            //}

            return(reportSettingList);
        }
        public DataTable BuildReport(ReportSetting reportSetting, IEnumerable<ConstructionObject> constructionObjects, IEnumerable<DataVersion> dataVersions)
        {
            DataTable mockDataTable = new DataTable();

            mockDataTable.Columns.Add("One", typeof(int));
            mockDataTable.Columns.Add("Two", typeof(int));
            mockDataTable.Columns.Add("Three", typeof(int));
            mockDataTable.Columns.Add("Four", typeof(int));

            mockDataTable.Rows.Add(new object[] { 1, 2, 3, 4 });
            mockDataTable.Rows.Add(new object[] { 2, 3, 4, 5 });
            mockDataTable.Rows.Add(new object[] { 3, 4, 5, 6 });
            mockDataTable.Rows.Add(new object[] { 4, 5, 6, 7 });
            mockDataTable.Rows.Add(new object[] { 5, 6, 7, 8 });

            return mockDataTable;
        }
Exemplo n.º 15
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            string reportName = this.cmbReportName.Text;

            if (reportName == string.Empty)
            {
                return;
            }

            bool doesExist = false;

            foreach (ReportSetting item in reportSettingList)
            {
                if (item.ReportName == reportName)
                {
                    doesExist = true;
                    break;
                }
            }

            if (doesExist)
            {
                CommonHelper.ShowWarningBox(string.Format("已经存在名为'{0}'的报表设定文件", reportName));
                return;
            }

            try
            {
                ReportSetting reportSetting = new ReportSetting(reportName, string.Empty, new PrintSetting());
                saveToXml(reportSetting);
                this.reportSettingList.Add(reportSetting);
                this.lstvReportName.Items.Add(reportName);
                foreach (ListViewItem listViewItem in this.lstvReportName.SelectedItems)
                {
                    listViewItem.Selected = false;
                }
                this.lstvReportName.Items[this.lstvReportName.Items.Count - 1].Selected = true;
                this.cmbReportName.Text = string.Empty;
                loadReportNameCombo();
            }
            catch (Exception ex)
            {
                CommonHelper.ShowErrorBox("创建新的报表设定文件时发生错误。" + ex.Message);
            }
        }
Exemplo n.º 16
0
        public void ReloadAll()
        {
            for (var i = 0; i < ReportSettingList.Count; i++)
            {
                var reportSetting = new ReportSetting();
                reportSetting = ReportSettingList[i];

                if (reportSetting.IsText != 1)
                {
                    var comboCell = (ComboBoxCell)grid.Rows[i].Cells[1];
                    comboCell.Value = reportSetting.ItemKey;
                }
                else
                {
                    var textCell = (GcTextBoxCell)grid.Rows[i].Cells[2];
                    textCell.Value = reportSetting.ItemKey;
                }
            }
        }
Exemplo n.º 17
0
        public async Task <IActionResult> Post([FromBody] ReportSettingApi item)
        {
            if (!ModelState.IsValidUpdated())
            {
                return(new BadRequestObjectResult(ModelState));
            }

            var dbReferenceType = 0;

            if (SettingApi.ReferenceTypes.Group.Equals(item.ReferenceType, StringComparison.InvariantCultureIgnoreCase))
            {
                dbReferenceType = 10;
            }
            else if (SettingApi.ReferenceTypes.Task.Equals(item.ReferenceType, StringComparison.InvariantCultureIgnoreCase))
            {
                dbReferenceType = 20;
            }
            else
            {
                ModelState.AddModelError("item.ReferenceType", "Invalid Report Settings Reference Type.");
                return(new BadRequestObjectResult(ModelState));
            }


            var reportSetting = await DbContext.ReportSettings.Where(s => s.PartitionId == CurrentPartitionId && s.ReferenceType == dbReferenceType && s.ReferenceKey == item.ReferenceKey).FirstOrDefaultAsync();

            if (reportSetting == null)
            {
                reportSetting = new ReportSetting
                {
                    PartitionId   = CurrentPartitionId,
                    ReferenceType = dbReferenceType,
                    ReferenceKey  = item.ReferenceKey,
                };
                DbContext.ReportSettings.Add(reportSetting);
            }

            await MapDeltaValuesAndCleanWhiteSpace(item, reportSetting, new string[] { "ReferenceType", "ReferenceKey" }, updateNulls : true);

            await DbContext.SaveChangesAsync();

            return(Ok());
        }
Exemplo n.º 18
0
        public Task <ReportSetting> SaveAsync(ReportSetting setting, CancellationToken token = default(CancellationToken))
        {
            var query = @"
INSERT INTO ReportSetting
( CompanyId
, ReportId
, DisplayOrder
, ItemId
, ItemKey )
OUTPUT inserted.*
VALUES
(@CompanyId
,@ReportId
,@DisplayOrder
,@ItemId
,@ItemKey )";

            return(dbHelper.ExecuteAsync <ReportSetting>(query, setting, token));
        }
Exemplo n.º 19
0
        private XmlDocument createXmlDocument(ReportSetting item)
        {
            XmlDocument doc = new XmlDocument();

            doc.AppendChild(doc.CreateXmlDeclaration("1.0", "utf-8", null));
            XmlNode root = doc.AppendChild(doc.CreateElement("report_setting"));

            root.AppendChild(doc.CreateElement("report_name")).InnerText      = item.ReportName;
            root.AppendChild(doc.CreateElement("report_file_path")).InnerText = item.PrintSetting.ReportFilePath;
            root.AppendChild(doc.CreateElement("printer_name")).InnerText     = item.PrintSetting.PrinterName;
            root.AppendChild(doc.CreateElement("paper_name")).InnerText       = item.PrintSetting.PaperName;
            root.AppendChild(doc.CreateElement("paper_width")).InnerText      = item.PrintSetting.PaperWidth;
            root.AppendChild(doc.CreateElement("paper_height")).InnerText     = item.PrintSetting.PaperHeight;
            root.AppendChild(doc.CreateElement("margin_top")).InnerText       = item.PrintSetting.MarginTop;
            root.AppendChild(doc.CreateElement("margin_bottom")).InnerText    = item.PrintSetting.MarginBottom;
            root.AppendChild(doc.CreateElement("margin_left")).InnerText      = item.PrintSetting.MarginLeft;
            root.AppendChild(doc.CreateElement("margin_right")).InnerText     = item.PrintSetting.MarginRight;
            root.AppendChild(doc.CreateElement("orientation")).InnerText      = item.PrintSetting.Orientation;
            return(doc);
        }
Exemplo n.º 20
0
        private void saveToXml(ReportSetting reportSetting)
        {
            Stream stream = null;

            try
            {
                if (reportSetting.SettingFilePath == string.Empty)
                {
                    reportSetting.SettingFilePath = generateReportSettingFileName();
                }
                XmlSerializer serializer = new XmlSerializer(typeof(ReportSetting));
                stream = File.Open(reportSetting.SettingFilePath, FileMode.Create, FileAccess.Write);
                serializer.Serialize(stream, reportSetting);
            }
            finally
            {
                if (stream != null)
                {
                    stream.Close();
                }
            }
        }
Exemplo n.º 21
0
        public string AddReportSetting(ReportSetting Setting)
        {
            //if (Setting == null || string.IsNullOrEmpty(Setting.ID))
            //{
            //    throw new IDNullException("报告设置ID不可为空!");
            //}

            string sqlCommandText = ModuleConfiguration.SQL_CMD_InsertReportSetting;

            this.dmlOperable.ExeSql(sqlCommandText, new Dictionary <string, object>()
            {
                //{ "@ID", long.Parse(Setting.ID)},
                { "@Title", Setting.Title },
                { "@TemplateID", Setting.Template.ID },
                { "@Printer", Setting.Printer },
                { "@AutoPrintOnAlarm", Setting.AutoPrintOnAlarm },
                { "@AutoPrintOnMeasurement", Setting.AutoPrintOnMeasurement },
                { "@TemplateName", Setting.TemplateName }
            });

            return(GenerateReportSettingID(0)); //Setting.ID;
        }
Exemplo n.º 22
0
        public ReportSetting UpdateReportSetting(string ID, ReportSetting Setting)
        {
            if (Setting == null || string.IsNullOrEmpty(ID))
            {
                throw new IDNullException("报告设置ID不可为空!");
            }

            string sqlCommandText = ModuleConfiguration.SQL_CMD_UpdateReportSetting;

            this.dmlOperable.ExeSql(sqlCommandText, new Dictionary <string, object>()
            {
                { "@ID", long.Parse(ID) },
                { "@Title", Setting.Title },
                { "@TemplateID", Setting.Template.ID },
                { "@Printer", Setting.Printer },
                { "@AutoPrintOnAlarm", Setting.AutoPrintOnAlarm },
                { "@AutoPrintOnMeasurement", Setting.AutoPrintOnMeasurement },
                { "@TemplateName", Setting.TemplateName }
            });

            return(Setting);
        }
Exemplo n.º 23
0
        public static WebbDataSource GetDefaultDataSource()
        {
            string dir = Webb.Utility.ApplicationDirectory + @"Template\Styles\StyleReports";

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            string DataSourceFile = string.Format(@"{0}\data.wrdf", dir);

            WebbDataSource dataSource = WrdfFileManager.ReadDataConfig(DataSourceFile, "");

            if (dataSource != null)
            {
                WebbDataProvider provider = new WebbDataProvider();

                ReportSetting.SetDataSource(provider, dataSource);
            }

            return(dataSource);
        }
Exemplo n.º 24
0
 public async Task <ActionResult <IEnumerable <ReportSetting> > > GetItems(ReportSetting setting, CancellationToken token = default(CancellationToken))
 => (await reportSettingProcessor.GetAsync(setting.CompanyId, setting.ReportId, token)).ToArray();
        private void AddIDsToReport(IEnumerable <object> directory, string directoryNameByColumns, ReportSetting reportSetting, ref DataTable report)
        {
            foreach (object record in directory)
            {
                // Получим ИД данной записи в справочнике
                int id = (int)GetObjectPropertyValueByAttrName(record, "ID");

                foreach (string attr in reportSetting.AttributesOfDirectoryOnColumns)
                {
                    string columnName = Convert.ToString(GetObjectPropertyValueByAttrName(record, attr));

                    foreach (DataRow recordReport in report.Rows)
                    {
                        // Проапдейтим формат:
                        // "<первая буква справочника по строкам><ид записи справочника по строкам> - <первая буква справочника по столбцам><ид записи справочника по столбцам>"
                        recordReport[columnName] += $" - {directoryNameByColumns.First()}{id}";
                    }
                }
            }
        }
        /// <summary>
        /// Основной метод по построению отчёта.
        /// </summary>
        /// <param name="reportSetting">Настройки для построения отчёта.</param>
        /// <param name="constructionObjects">Справочник "Объекты строительства".</param>
        /// <param name="dataVersions">Справочник "Версия данных".</param>
        /// <returns>DataTable с данными отчёта.</returns>
        public DataTable BuildReport(ReportSetting reportSetting, IEnumerable <ConstructionObject> constructionObjects, IEnumerable <DataVersion> dataVersions)
        {
            // Строим отчёт. Считаем, что в настройках разработчики указали верный набор параметров атрибутов для справочников.
            DataTable report = new DataTable();

            string directoryNameByColumns = GetDirectoryNameByID(reportSetting.DirectoryIdOnColumns);
            string directoryNameByRows    = GetDirectoryNameByID(reportSetting.DirectoryIdOnRows);

            // Добавим столбцы к таблице отчёта.
            // Учтём, что у двух справочников могут быть одни и те же имена атрибутов, и добавим префикс в виде имени справочника.
            reportSetting.AttributesOfDirectoryOnRows.ForEach(attr =>
            {
                report.Columns.Add($"{directoryNameByRows}-{attr}");
            });

            // Если по столбцам, надо вставить все поля указанного атрибута в таблицу как столбец:
            reportSetting.AttributesOfDirectoryOnColumns.ForEach(attr =>
            {
                // Смотрим, из какого справочника надо взять данные
                if (reportSetting.DirectoryIdOnColumns == 1)
                {
                    // Если 1, берём объекты строительства
                    AddDirectoryColumnToReport(constructionObjects, attr, ref report);
                }
                else if (reportSetting.DirectoryIdOnColumns == 2)
                {
                    // Если 2, берём версииДанных
                    AddDirectoryColumnToReport(dataVersions, attr, ref report);
                }
            });

            // Добавим данные в таблицу отчёта. Принцип тот же - проверим какой справочник как надо загрузить
            if (reportSetting.DirectoryIdOnRows == 1)
            {
                // Если 1, берём объекты строительства в строки отчёта
                AddRowsToReport(constructionObjects, directoryNameByRows, reportSetting, ref report);
            }
            else if (reportSetting.DirectoryIdOnRows == 2)
            {
                // Если 2, берём версииДанных
                AddRowsToReport(dataVersions, directoryNameByRows, reportSetting, ref report);
            }

            // Теперь пройдёмся по таблице отчёта, и внесём в отчёт иды другого транспонированного справочника:
            if (reportSetting.DirectoryIdOnColumns == 1)
            {
                // Если 1, берём Иды строительства в строки отчёта
                AddIDsToReport(constructionObjects, directoryNameByColumns, reportSetting, ref report);
            }
            else if (reportSetting.DirectoryIdOnColumns == 2)
            {
                // Если 2, берём берём Иды версииДанных
                AddIDsToReport(dataVersions, directoryNameByColumns, reportSetting, ref report);
            }

            // Уберём лишнее из названий заголовков таблицы
            foreach (DataColumn column in report.Columns)
            {
                if (column.ColumnName.Contains("-"))
                {
                    column.ColumnName = column.ColumnName.Split("-")[1];
                }
            }

            return(report);
        }
        private void AddRowsToReport(IEnumerable <object> directory, string directoryName, ReportSetting reportSetting, ref DataTable report)
        {
            foreach (object record in directory)
            {
                DataRow rowForAdd = report.NewRow();

                foreach (string attr in reportSetting.AttributesOfDirectoryOnRows)
                {
                    // Берём указанный в настройках атрибут
                    rowForAdd[$"{directoryName}-{attr}"] = GetObjectPropertyValueByAttrName(record, attr);
                }

                // Получим ИД данной записи в справочнике
                int id = (int)GetObjectPropertyValueByAttrName(record, "ID");

                // Добавим в столбцы транспонированной матрицы идентификаторы строки, с указанием того, что это Иды этого справочника
                int startCol = reportSetting.AttributesOfDirectoryOnRows.Count;
                int endCol   = report.Columns.Count;

                for (int index = startCol; index < endCol; index++)
                {
                    // Формат строк транспонированной матрицы "<первая буква справочника><ид записи справочника>"
                    rowForAdd[index] = $"{directoryName.First()}{id}";
                }

                report.Rows.Add(rowForAdd);
            }
        }
Exemplo n.º 28
0
 //初始化报表列设置
 private void InitLstReportSetting()
 {
     this.LstReportSetting = ReportSetting.GetList("AMO.Reports.CtrlRoundRollReport", "zh-CN");
     //重新构造表结构
     this.BuildTableStructure();
 }
 public string Build(ReportSetting setting)
 {
     // you can use setting.CarMake and setting.CarModel
 }
Exemplo n.º 30
0
        public async Task <ActionResult> GetAsync(int reportSettingID = 1)
        {
            try
            {
                IEnumerable <ConstructionObject> constructionObjects;
                IEnumerable <DataVersion>        dataVersions;

                using (var client = new HttpClient())
                {
                    HttpResponseMessage response;
                    string requestResult = string.Empty;

                    bool IsNeedtest = false;

                    if (IsNeedtest)
                    {
                        // Этот метод делает все воможные запросы к сервису DirectoryService (чисто в рамках демонстрации)
                        await Utils.TestDirectoryServiceApiAsync(urlSettings);
                    }

                    // Запрашиваем весь справочник "Объекты Строительства"
                    response = await client.GetAsync($"{urlSettings.ConstructionObjectUrl}GetAllDirectory");

                    constructionObjects = await response.Content.ReadAsAsync <IEnumerable <ConstructionObject> >();

                    // Запрашиваем весь справочник "Версии данных"
                    response = await client.GetAsync($"{urlSettings.DataVersionUrl}GetAllDirectory");

                    dataVersions = await response.Content.ReadAsAsync <IEnumerable <DataVersion> >();
                }

                // Берём из настроек конфигурацию отчёта
                ReportSetting reportSetting = new ReportSetting();

                try
                {
                    var reportSettingCol = reportSettings.Where(set => set.ConfigurationID == reportSettingID);

                    if (reportSettingCol.Any())
                    {
                        reportSetting = reportSettingCol.First();
                    }
                    else
                    {
                        // Если настойка не найдена, говорим 404.
                        return(this.StatusCode(404));
                    }
                }
                catch (Exception ex) { }

                // Билдим отчёт.
                DataTable report = reportBuilder.BuildReport(reportSetting, constructionObjects, dataVersions);

                return(View("~/Views/ReportView.cshtml", report));
            }
            catch (Exception ex)
            {
                // Что-то пошло не так,
                return(this.StatusCode(500));

                // TODO: пишем в логи ошибку
            }
        }
Exemplo n.º 31
0
        public static void Run()
        {
            // 郵便番号フォーマッタが設定されたSettingオブジェクトを用意します
            ReportSetting setting = new ReportSetting();
            setting.TextFormatterMap.Add("yubin", new YubinTextFormatter());

            Report report = new Report(Json.Read("report\\example_extention.rrpt"), setting);
            report.Fill(new ReportDataSource(getDataTable()));
            ReportPages pages = report.GetPages();

            // PDF出力
            using (FileStream fs = new FileStream("output\\example_extention.pdf", FileMode.Create))
            {
                // チェックボックスレンダラが設定されたSettingオブジェクトを用意します
                PdfRendererSetting pdfSetting = new PdfRendererSetting();
                pdfSetting.ElementRendererMap.Add("checkbox", new PdfCheckBoxRenderer());

                PdfRenderer renderer = new PdfRenderer(fs, pdfSetting);
                renderer.Setting.ReplaceBackslashToYen = true;
                pages.Render(renderer);
            }

            // XLS出力
            using (FileStream fs = new FileStream("output\\example_extention.xls", FileMode.Create))
            {
                // チェックボックスレンダラが設定されたSettingオブジェクトを用意します
                XlsRendererSetting xlsSetting = new XlsRendererSetting();
                xlsSetting.ElementRendererMap.Add("checkbox", new XlsCheckBoxRenderer());

                HSSFWorkbook workbook = new HSSFWorkbook();
                XlsRenderer renderer = new XlsRenderer(workbook, xlsSetting);
                renderer.NewSheet("example_extention");
                pages.Render(renderer);
                workbook.Write(fs);
            }

            // XLSX出力
            using (FileStream fs = new FileStream("output\\example_extention.xlsx", FileMode.Create))
            {
                // チェックボックスレンダラが設定されたSettingオブジェクトを用意します
                XlsxRendererSetting xlsxSetting = new XlsxRendererSetting();
                xlsxSetting.ElementRendererMap.Add("checkbox", new XlsxCheckBoxRenderer());

                XSSFWorkbook workbook = new XSSFWorkbook();
                XlsxRenderer renderer = new XlsxRenderer(workbook, xlsxSetting);
                renderer.NewSheet("example_extention");
                pages.Render(renderer);
                workbook.Write(fs);
            }

            // プレビュー
            {
                // チェックボックスレンダラが設定されたSettingオブジェクトを用意します
                GdiRendererSetting gdiSetting = new GdiRendererSetting();
                gdiSetting.ElementRendererMap.Add("checkbox", new GdiCheckBoxRenderer());

                FmPrintPreview preview = new FmPrintPreview(new Printer(pages, gdiSetting));
                preview.StartUpZoomFit = true;
                preview.ShowDialog();
            }
        }