Пример #1
0
        public async Task <IActionResult> GetReport()
        {
            XDocument       doc        = XDocument.Load("Reports/ReportV3.mrt");
            List <XElement> components = doc.Element("StiSerializer").Elements("Pages").Elements("Page1").Elements("Components")
                                         .ToList();

            foreach (XElement elem in components)
            {
                elem.Element("Text1").Element("Text").Value = "31.12.2020";
                elem.Element("Text2").Element("Text").Value = "31.03.2021";
                elem.Element("Text3").Element("Text").Value = "01.09.2020*";
                elem.Element("Text4").Element("Text").Value = "31.12.2020";
                elem.Element("Text5").Element("Text").Value = "31.03.2021**";
                elem.Element("Text6").Element("Text").Value = "31.03.2021***";
            }

            doc.Save("Reports/ReportV3.mrt");

            StiReport report = new StiReport();

            // Загрузит шаблон отчета из папки.
            report.Load(StiNetCoreHelper.MapPath(this, "Reports/ReportV3.mrt"));

            // Рендерит отчет.
            await report.RenderAsync();

            // Экспорт в PDF в указанную папку.
            await report.ExportDocumentAsync(StiExportFormat.Pdf, @"C:\StimulsoftReports\ReportResult.pdf");

            return(Ok("Save success"));
        }
Пример #2
0
        private static async Task Main(string[] args)
        {
            using var report = new StiReport();
            report.Load(await File.ReadAllBytesAsync(@"ReceiptPD4.mrt"));
            report.CacheAllData = false;

            var businessObject = new PD4ReceiptModel
            {
                Payment = new Payment
                {
                    Name       = "XXXXXXXXXXXXXXXXXXXXXXXXX123",
                    rub        = "123",
                    penny      = "123",
                    rubCom     = "123",
                    pennyCom   = "123",
                    rubTotal   = "123",
                    pennyTotal = "123",
                    day        = "1",
                    month      = "1",
                    year       = "2020"
                },
                Payer = new Payer
                {
                    firstName  = "XXXXXXXXXXXXXXXXXXXXXXXXXPayerName1",
                    lastName   = "PayerName2",
                    middleName = "qwe",
                    address    = "qwe"
                },
                Name            = "XXXXXXXXXXXXXXXXXXXXXXXXXqwe",
                inn             = "123123",
                bankAccount     = "123123",
                bankName        = "qwe",
                bic             = "123123",
                bankCorrAccount = "123123"
            };
            var businessObjects     = new[] { businessObject, };
            var businessObjectsJson = JsonConvert.SerializeObject(businessObjects, new JsonSerializerSettings
            {
                ContractResolver      = new DefaultContractResolver(),
                NullValueHandling     = NullValueHandling.Ignore,
                Formatting            = Formatting.Indented,
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
            });

            var businessObjectsJObject = Stimulsoft.Base.Json.Linq.JToken.Parse(businessObjectsJson);

            report.RegBusinessObject(category: "Receipt", name: "Reciver", alias: "Reciver", value: businessObjectsJObject);

            await report.Dictionary.SynchronizeAsync();

            //report.Dictionary.SynchronizeBusinessObjects();
            await report.RenderAsync(new StiRenderState(false));

            await report.ExportDocumentAsync(StiExportFormat.Pdf, $@"c:\temp\{Guid.NewGuid().ToString()}.pdf");
        }