public void CarregarPagina()
        {

            if (Request.QueryString["tipo"] == "RelAssistidos")
            {
                PdfReport<AssistidoRelatorio> pdfReport = new PdfReport<AssistidoRelatorio>();
                pdfReport.pageLayout = PageLayout.SinglePage;
                pdfReport.Response(this);
            }
            else if (Request.QueryString["tipo"] == "RelFinancas")
            {
                PdfReport<FinancasRelatorio> pdfReport = new PdfReport<FinancasRelatorio>();
                pdfReport.pageLayout = PageLayout.SinglePage;
                pdfReport.Response(this);
            }
            else if (Request.QueryString["tipo"] == "RelOrcamento")
            {
                PdfReport<OrcamentoRelatorio> pdfReport = new PdfReport<OrcamentoRelatorio>();
                pdfReport.pageLayout = PageLayout.SinglePage;
                pdfReport.Response(this);
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Artikli()
        {
            string naslov  = "Deset najskupljih artikala koji imaju sliku";
            var    artikli = await ctx.Artikl
                             .AsNoTracking()
                             .Where(a => a.SlikaArtikla != null)
                             .OrderByDescending(a => a.CijArtikla)
                             .Select(a => new
            {
                a.SifArtikla,
                a.NazArtikla,
                a.CijArtikla,
                a.SlikaArtikla
            })
                             .Take(10)
                             .ToListAsync();

            PdfReport report = CreateReport(naslov);

            #region Podnožje i zaglavlje
            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            #endregion
            #region Postavljanje izvora podataka i stupaca
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(artikli));

            report.MainTableSummarySettings(summarySettings =>
            {
                summarySettings.OverallSummarySettings("Ukupno");
            });

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName(nameof(Artikl.SlikaArtikla));
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(1);
                    column.HeaderCell(" ");
                    column.ColumnItemsTemplate(t => t.ByteArrayImage(string.Empty, fitImages: true));
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName(nameof(Artikl.SifArtikla));
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(1);
                    column.HeaderCell("Šifra");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Artikl>(x => x.NazArtikla);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Naziv artikla", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Artikl>(x => x.CijArtikla);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(1);
                    column.HeaderCell("Cijena", horizontalAlignment: HorizontalAlignment.Center);
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                ? string.Empty : string.Format("{0:C2}", obj));
                    });
                    column.AggregateFunction(aggregateFunction =>
                    {
                        aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum);
                        aggregateFunction.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                ? string.Empty : string.Format("{0:C2}", obj));
                    });
                });
            });

            #endregion
            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=artikli.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Zahtjevi()
        {
            string naslov   = "Popis zahtjeva";
            var    zahtjevi = await ctx.Zahtjev
                              .AsNoTracking()
                              .OrderBy(d => d.IdZahtjeva)
                              .Select(d => new ZahtjevViewModel
            {
                IdZahtjeva  = d.IdZahtjeva,
                ImePrezime  = d.IdKlijentaNavigation.FirstName + " " + d.IdKlijentaNavigation.LastName,
                NazivUsluge = d.IdUslugeNavigation.NazivUsluge,
                DatumOd     = d.DatumOd,
                DatumDo     = d.DatumDo,
                BrojVozila  = d.BrojVozila
            })
                              .ToListAsync();

            PdfReport report = CreateReport(naslov);

            #region Podnožje i zaglavlje
            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            #endregion
            #region Postavljanje izvora podataka i stupaca
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(zahtjevi));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName(nameof(Zahtjev.IdZahtjeva));
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(2);
                    column.HeaderCell("Id zahtjeva");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <ZahtjevViewModel>(x => x.ImePrezime);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(3);
                    column.HeaderCell("Klijent", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <ZahtjevViewModel>(x => x.NazivUsluge);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(1);
                    column.HeaderCell("Naziv usluge", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <ZahtjevViewModel>(x => x.DatumOd);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(1);
                    column.HeaderCell("Datum od", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <ZahtjevViewModel>(x => x.DatumDo);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(1);
                    column.HeaderCell("Datum do", horizontalAlignment: HorizontalAlignment.Center);
                });
            });

            #endregion
            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=zahtjevi.pdf");
                return(File(pdf, "application/pdf"));
                //return File(pdf, "application/pdf", "drzave.pdf"); //Otvara save as dialog
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Metoda koja generira Pdf tablice zaraženih osoba
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> PDFReport()
        {
            string naslov        = "Popis zaraženih osoba";
            var    zarazeneOsobe = await ctx.ZarazenaOsoba
                                   .Include(o => o.IdentifikacijskiBrojNavigation)
                                   .Include(o => o.SifraStanjaNavigation)
                                   .AsNoTracking()
                                   .ToListAsync();

            PdfReport report = Constants.CreateBasicReport(naslov);

            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(zarazeneOsobe));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName <ZarazenaOsoba>(o => o.IdentifikacijskiBroj);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(4);
                    column.HeaderCell("Identifikacijski broj", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <ZarazenaOsoba>(o => o.IdentifikacijskiBrojNavigation.Ime);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(4);
                    column.HeaderCell("Ime", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <ZarazenaOsoba>(o => o.IdentifikacijskiBrojNavigation.Prezime);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("Prezime", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <ZarazenaOsoba>(o => o.SifraStanjaNavigation.NazivStanja);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Stanje osobe", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <ZarazenaOsoba>(o => o.DatZaraze);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(2);
                    column.HeaderCell("Datum zaraze", horizontalAlignment: HorizontalAlignment.Center);
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj =>
                        {
                            if (obj == null || string.IsNullOrEmpty(obj.ToString()))
                            {
                                return(string.Empty);
                            }
                            else
                            {
                                DateTime date = (DateTime)obj;
                                return(date.ToString("dd.MM.yyyy"));
                            }
                        });
                    });
                });
            });


            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=zarazeneosobe.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Izrada izvjestaja u PDF formatu
        /// </summary>
        /// <returns>PDF dokument</returns>
        public async Task <IActionResult> PDFReport()
        {
            string naslov = "Popis mjera";
            var    mjere  = await ctx.Mjera
                            .ToListAsync();

            PdfReport report = Constants.CreateBasicReport(naslov);

            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(mjere));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName <Mjera>(o => o.SifraMjere);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(4);
                    column.HeaderCell("Sifra mjere", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Mjera>(o => o.SifraPrethodneMjere);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(4);
                    column.HeaderCell("Sifra prethodne mjere", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Mjera>(o => o.SifraSastanka);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("Sifra sastanka", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Mjera>(o => o.Opis);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Opis", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Mjera>(o => o.Datum);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Datum", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Mjera>(o => o.VrijediDo);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Vrijedi do", horizontalAlignment: HorizontalAlignment.Left);
                });
            });


            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=mjere.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> Ponuditelji()
        {
            string naslov      = "Popis ponuditelja";
            var    ponuditelji = await ctx.Ponuditeljs
                                 .AsNoTracking()
                                 .OrderBy(p => p.NazivPonuditelj)
                                 .ToListAsync();

            PdfReport report = CreateReport(naslov);

            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true);
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });

            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(ponuditelji));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName(nameof(Ponuditelj.OibPonuditelj));
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(2);
                    column.HeaderCell("Oib ponuditelja");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Ponuditelj>(x => x.NazivPonuditelj);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(3);
                    column.HeaderCell("Naziv ponuditelja", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Ponuditelj>(x => x.AdresaPonuditelj);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(3);
                    column.HeaderCell("Adresa ponuditelja", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Ponuditelj>(x => x.SjedištePonuditelj);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(3);
                    column.HeaderCell("Sjedište ponuditelja", horizontalAlignment: HorizontalAlignment.Center);
                });
            });

            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=ponuditelji.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> Dokumenti()
        {
            string naslov    = "Popis dokumenata";
            var    dokumenti = await ctx.Dokuments
                               .AsNoTracking()
                               .OrderBy(p => p.Naslov)
                               .ToListAsync();

            PdfReport report = CreateReport(naslov);

            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true);
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });

            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(dokumenti));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName(nameof(Dokument.DokumentId));
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(2);
                    column.HeaderCell("Dokument id");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Dokument>(x => x.Naslov);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(3);
                    column.HeaderCell("Naziv Dokumenta", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Dokument>(x => x.Vrsta);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(3);
                    column.HeaderCell("Vrsta dokumenta", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Dokument>(x => x.Blob);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(3);
                    column.HeaderCell("Link dokumenta", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Dokument>(x => x.DatumPredaje);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(5);
                    column.Width(3);
                    column.HeaderCell("Datum predaje dokumenta", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Dokument>(x => x.PonudaId);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(6);
                    column.Width(3);
                    column.HeaderCell("Id ponude", horizontalAlignment: HorizontalAlignment.Center);
                });
            });

            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=dokumenti.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Poslovi()
        {
            string naslov  = "Popis nadolazećih poslova";
            var    poslovi = await ctx.Poslovi
                             .AsNoTracking()
                             .Where(a => a.VrijemeTrajanja >= DateTime.Now)
                             .OrderBy(a => a.VrijemeTrajanja)
                             .Select(a => new
            {
                a.IdPoslovi,
                a.Naziv,
                a.Mjesto,
                a.VrijemeTrajanja
            })
                             .Take(10)
                             .ToListAsync();

            PdfReport report = CreateReport(naslov);

            #region Podnožje i zaglavlje
            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            #endregion
            #region Postavljanje izvora podataka i stupaca
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(poslovi));


            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Poslovi>(x => x.IdPoslovi);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(1);
                    column.HeaderCell("Šifra", horizontalAlignment: HorizontalAlignment.Center);
                });


                columns.AddColumn(column =>
                {
                    column.PropertyName <Poslovi>(x => x.Naziv);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Naziv posla", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Poslovi>(x => x.Mjesto);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Mjesto održavanja", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Poslovi>(x => x.VrijemeTrajanja);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Vrijeme održavanja", horizontalAlignment: HorizontalAlignment.Center);
                });
            });

            #endregion

            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=poslovi.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 9
0
    private void BindGrid(int btnval)
    {
        //DateTime date = System.DateTime.Now;
        //string sess = date.ToString("tt");
        sess = string.Empty;
        string name1 = string.Empty;

        periobj = 0;

        DataTable dt = new DataTable();
        DataSet   ds = new DataSet();

        plant_Code = Session["User_ID"].ToString();

        if (rd_Am.Checked == true)
        {
            sess = "AM";
            dt   = GetProcurementData(txt_FromDate.Text, sess, route_id, plant_Code, Company_code);
            //GridView1.DataSource = dt;
            //GridView1.DataBind();
        }
        else if (rd_Pm.Checked == true)
        {
            sess = "PM";
            dt   = GetProcurementData(txt_FromDate.Text, sess, route_id, plant_Code, Company_code);
        }
        else if (rd_Period.Checked == true)
        {
            periobj = 1;
            sess    = "Period";
            dt      = GetProcurementDataPeriod(txt_FromDate.Text, txt_ToDtate.Text, route_id, plant_Code, Company_code);
        }
        else
        {
            sess = "Bill";
            dt   = GetProcurementData(txt_ToDtate.Text, sess, route_id, plant_Code, Company_code);
        }
        ds.Tables.Add(dt);
        if (dt.Rows.Count > 0)
        {
            ViewFilename = string.Empty;
            if (periobj == 0)
            {
                name1        = Server.MapPath(".") + "/kk/" + plant_Code.Trim() + '_' + txt_FromDate.Text.Trim() + '_' + sess.Trim();
                ViewFilename = plant_Code.Trim() + '_' + txt_FromDate.Text.Trim() + '_' + sess.Trim();
            }
            else
            {
                name1        = Server.MapPath(".") + "/kk/" + plant_Code.Trim() + '_' + txt_FromDate.Text.Trim() + '_' + txt_ToDtate.Text.Trim() + '_' + sess.Trim();
                ViewFilename = plant_Code.Trim() + '_' + txt_FromDate.Text.Trim() + '_' + txt_ToDtate.Text.Trim() + '_' + sess.Trim();
            }

            name2 = Server.MapPath(".") + "/kk/" + "Nasa-logo1.gif";
            SETBO();
            PdfReport pd = new PdfReport(ds, name1, Cpdf);
            if (butview > 1)
            {
                pd.Execute1();
                string fileName          = ViewFilename + ".pdf";
                string surverUrl         = Request.Url.AbsoluteUri.Split('/')[0] + "//" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/') + "/";
                string fileStoreLocation = "kk/";
                string downloadFilePath  = surverUrl + fileStoreLocation + fileName;
                iframShowFiles.Attributes.Add("src", downloadFilePath);
            }
            else
            {
                pd.Execute();
            }

            name1 = string.Empty;
        }
        else
        {
            iframShowFiles.Visible = false;
            uscMsgBox1.AddMessage("Report Not Found", MessageBoxUsc_Message.enmMessageType.Info);
        }
    }
Ejemplo n.º 10
0
        public async Task <IActionResult> Korisnici()
        {
            string naslov = "Popis korisnika";

            var korisnici = ctx.Korisnik.ToList().OrderBy(k => k.Prezime);


            List <KorisnikDenorm> korisniciDenorm = new List <KorisnikDenorm>();
            var broj = 1;

            foreach (var k in korisnici)
            {
                var fer      = ctx.FerWebAcc.Where(f => f.Id == k.FerId).FirstOrDefault();
                var dhmz     = ctx.DhmzAcc.Where(d => d.Id == k.DhmzId).FirstOrDefault();
                var autori   = ctx.Sadrzaj.Where(s => s.IdAutora == k.Id).ToList().OrderBy(s => s.Ime);
                var autor    = autori.Select(s => s.Ime).ToList();
                var odobrioo = ctx.Sadrzaj.Where(s => s.IdOdobrenOd == k.Id).ToList().OrderBy(s => s.Ime);
                var odobrio  = odobrioo.Select(s => s.Ime).ToList();


                korisniciDenorm.Add(Denormalize(k, fer, dhmz, autor, odobrio, broj));
                broj++;
            }

            PdfReport report = CreateReport(naslov);

            #region Podnožje i zaglavlje
            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            #endregion
            #region Postavljanje izvora podataka i stupaca
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(korisniciDenorm));
            report.MainTableSummarySettings(summarySettings =>
            {
                summarySettings.OverallSummarySettings("Sum");
            });
            var admin = ctx.Administrator.Select(a => a.IdKorisnika).ToList();
            report.MainTableColumns(columns =>

            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width((float)0.5);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName(nameof(KorisnikDenorm.Id));
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width((float)0.5);
                    column.HeaderCell("ID", horizontalAlignment: HorizontalAlignment.Center);
                    column.AggregateFunction(aggregateFunction =>
                    {
                        aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum);
                    });
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <KorisnikDenorm>(k => k.PrezimeIme);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width((float)1.75);
                    column.HeaderCell("Ime i prezime ", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <KorisnikDenorm>(k => k.Email);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell("Email", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <KorisnikDenorm>(k => k.KorisnickoIme);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width((float)1.5);
                    column.HeaderCell("Korisničko ime", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <KorisnikDenorm>(k => k.Fer);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(5);
                    column.Width(1);
                    column.HeaderCell("FerWeb račun", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <KorisnikDenorm>(k => k.DHMZ);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(6);
                    column.Width(1);
                    column.HeaderCell("DHMZ račun", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName(nameof(KorisnikDenorm.Autor));
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(7);
                    column.Width((float)1.5);
                    column.HeaderCell("Autor sadržaja", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName(nameof(KorisnikDenorm.Odobrio));
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(8);
                    column.Width((float)1.5);
                    column.HeaderCell("Odobrio sadržaje", horizontalAlignment: HorizontalAlignment.Center);
                });
            });

            #endregion
            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=korisnici.pdf");
                return(File(pdf, "application/pdf"));
                //return File(pdf, "application/pdf", "drzave.pdf"); //Otvara save as dialog
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 11
0
        public async Task <IActionResult> Oprema()
        {
            string naslov = $"Popis dostupne opreme";
            var    oprema = await ctx.Oprema
                            .AsNoTracking()
                            .Where(a => a.Dostupnost == true)
                            .OrderBy(s => s.IdOprema)
                            .ThenBy(s => s.Naziv)
                            .ToListAsync();

            PdfReport report = CreateReport(naslov);

            #region Podnožje i zaglavlje
            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance. !!!!!!!!!!!!
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            #endregion
            #region Postavljanje izvora podataka i stupaca
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(oprema));

            report.MainTableSummarySettings(summarySettings =>
            {
                summarySettings.OverallSummarySettings("Ukupno");
            });

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                    column.AggregateFunction(aggregateFunction =>
                    {
                        aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum);
                        aggregateFunction.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                ? string.Empty : string.Format("{0:C2}", obj));
                    });
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(x => x.IdOprema);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Width(4);
                    column.HeaderCell("Šifra", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(x => x.Naziv);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Width(1);
                    column.HeaderCell("Naziv", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(x => x.Status);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Width(1);
                    column.HeaderCell("Opis", horizontalAlignment: HorizontalAlignment.Center);
                });
            });

            #endregion
            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=artikli.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 12
0
        public async Task <IActionResult> Uredaji()
        {
            string naslov  = "Popis uredaja";
            var    list    = new List <UredajDenorm>();
            var    uredaji = _context.Uredaj
                             .Include(u => u.IdNadredeneKomponenteNavigation)
                             .Include(u => u.IdStatusaNavigation)
                             .Include(u => u.IdZidaNavigation)
                             .ToList();

            if (uredaji.Count <= 0)
            {
                return(NotFound());
            }

            foreach (var u in uredaji)
            {
                var ur = LoadDetails(u);
                list.Add(ur.GetInfo());
            }

            PdfReport report = CreateReport(naslov);

            #region Podnožje i zaglavlje
            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            #endregion
            #region Postavljanje izvora podataka i stupaca
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(list));


            report.MainTableSummarySettings(summarySettings =>
            {
                summarySettings.OverallSummarySettings("Ukupno");
            });

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <UredajDenorm>(x => x.Naziv);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(2);
                    column.HeaderCell("Naziv ureðaja");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <UredajDenorm>(x => x.DatumNabavke);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("Datum Nabavke", horizontalAlignment: HorizontalAlignment.Center);
                });

                /*columns.AddColumn(column =>
                 * {
                 *  column.PropertyName<UredajDenorm>(x => x.NabavnaCijena);
                 *  column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                 *  column.IsVisible(true);
                 *  column.Order(3);
                 *  column.Width(1);
                 *  column.HeaderCell("Nabavna Cijena", horizontalAlignment: HorizontalAlignment.Center);
                 * });
                 */
                /*columns.AddColumn(column =>
                 * {
                 *  column.PropertyName<UredajDenorm>(x => x.AktualnaCijena);
                 *  column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                 *  column.IsVisible(true);
                 *  column.Order(4);
                 *  column.Width(1);
                 *  column.HeaderCell("Aktualna Cijena", horizontalAlignment: HorizontalAlignment.Center);
                 * });
                 *
                 * columns.AddColumn(column =>
                 * {
                 *  column.PropertyName<UredajDenorm>(x => x.Zida);
                 *  column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                 *  column.IsVisible(true);
                 *  column.Order(5);
                 *  column.Width(1);
                 *  column.HeaderCell("Videozid", horizontalAlignment: HorizontalAlignment.Center);
                 * });
                 *
                 * columns.AddColumn(column =>
                 * {
                 *  column.PropertyName<UredajDenorm>(x => x.Status);
                 *  column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                 *  column.IsVisible(true);
                 *  column.Order(6);
                 *  column.Width(1);
                 *  column.HeaderCell("Status", horizontalAlignment: HorizontalAlignment.Center);
                 * });
                 */
                columns.AddColumn(column =>
                {
                    column.PropertyName <UredajDenorm>(x => x.Zamjena);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(3);
                    column.HeaderCell("Zamjenski ureðaji", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <UredajDenorm>(x => x.ZamjenaZa);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(3);
                    column.HeaderCell("Zamjena Za", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <UredajDenorm>(x => x.Servisi);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(5);
                    column.Width(3);
                    column.HeaderCell("Servisi", horizontalAlignment: HorizontalAlignment.Center);
                });


                columns.AddColumn(column =>
                {
                    column.PropertyName("Nabavna Cijena");
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(6);
                    column.Width(2);
                    column.HeaderCell("Nabavna Cijena", horizontalAlignment: HorizontalAlignment.Center);
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                            ? string.Empty : string.Format("{0:C2}", obj));
                    });
                    column.AggregateFunction(aggregateFunction =>
                    {
                        aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum);
                        aggregateFunction.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                            ? string.Empty : string.Format("{0:C2}", obj));
                    });
                    column.CalculatedField(
                        l =>
                    {
                        if (l == null)
                        {
                            return(string.Empty);
                        }
                        var iznos = l.GetValueOf(nameof(UredajDenorm.NabavnaCijena));
                        return(iznos);
                    });
                });
            });

            #endregion
            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=drzave.pdf");
                return(File(pdf, "application/pdf"));
                //return File(pdf, "application/pdf", "drzave.pdf"); //Otvara save as dialog
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 13
0
        public async Task <IActionResult> Videozidovi()
        {
            string naslov = "Popis videozidova";
            var    list   = new List <VideozidDenorm>();
            var    zidovi = _context.Videozid
                            .ToList();

            if (zidovi.Count <= 0)
            {
                return(NotFound());
            }

            foreach (var v in zidovi)
            {
                var ekrani = _context.EkranZida.Where(u => u.IdZida == v.Id).Include(u => u.IdUredajaNavigation).ToList();
                var vi     = new VideozidDetailsViewModel(v, ekrani).GetInfo();
                list.Add(vi);
            }

            PdfReport report = CreateReport(naslov);

            #region Podnožje i zaglavlje
            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            #endregion

            #region Postavljanje izvora podataka i stupaca
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(list));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <VideozidDenorm>(x => x.Naziv);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(2);
                    column.HeaderCell("Naziv Videozida");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <VideozidDenorm>(x => x.Lokacija);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("Lokacija", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <VideozidDenorm>(x => x.Sirina);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(1);
                    column.HeaderCell("Sirina", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <VideozidDenorm>(x => x.Visina);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(1);
                    column.HeaderCell("Visina", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <VideozidDenorm>(x => x.Ekrani);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(5);
                    column.Width(5);
                    column.HeaderCell("Ekrani zida", horizontalAlignment: HorizontalAlignment.Center);
                });
            });

            #endregion
            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=drzave.pdf");
                return(File(pdf, "application/pdf"));
                //return File(pdf, "application/pdf", "drzave.pdf"); //Otvara save as dialog
            }
            else
            {
                return(NotFound());
            }
        }
        public byte[] CreatePdfReport(OrderViewModel order, string fileName)
        {
            var pdfReportData = new PdfReport().DocumentPreferences(doc =>
            {
                doc.RunDirection(PdfRunDirection.LeftToRight);
                doc.Orientation(PageOrientation.Portrait);
                doc.PageSize(PdfPageSize.A4);
                doc.DocumentMetadata(new DocumentMetadata {
                    Author = "Contoso Sports League", Application = "Contoso.Apps.SportsLeague", Subject = "Contoso Sports League Store Receipt", Title = "Receipt"
                });
                doc.Compression(new CompressionSettings
                {
                    EnableCompression     = true,
                    EnableFullCompression = true
                });
            })
                                .DefaultFonts(fonts =>
            {
                fonts.Path(System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\arial.ttf"),
                           System.IO.Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), "fonts\\verdana.ttf"));
                fonts.Size(9);
                fonts.Color(System.Drawing.Color.Black);
            })
                                .PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("MM/dd/yyyy"));
            })
                                .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.ImagePath(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Images\\logo.png"));
                    defaultHeader.Message("Contoso Sports League - Purchase Receipt");
                });
            })
                                .MainTableTemplate(template =>
            {
                template.BasicTemplate(BasicTemplate.ClassicTemplate);
            })
                                .MainTablePreferences(table =>
            {
                table.ColumnsWidthsType(TableColumnWidthType.Relative);
            })
                                .MainTableDataSource(dataSource =>
            {
                dataSource.StronglyTypedList(order.OrderDetails);
            })
                                .MainTableSummarySettings(summarySettings =>
            {
                summarySettings.OverallSummarySettings("Summary");
                summarySettings.PreviousPageSummarySettings("Previous Page Summary");
                summarySettings.PageSummarySettings("Page Summary");
            })
                                .MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName <OrderDetailViewModel>(o => o.ProductName);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(4);
                    column.HeaderCell("Product");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <OrderDetailViewModel>(o => o.Quantity);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(1);
                    column.HeaderCell("Quantity");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <OrderDetailViewModel>(o => o.UnitPrice);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("Unit Price");
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                            ? string.Empty : string.Format("{0:c}", obj));
                    });
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <OrderDetailViewModel>(o => o.Cost);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell("Total");
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                            ? string.Empty : string.Format("{0:c}", obj));
                    });
                });
            })
                                .MainTableEvents(events =>
            {
                events.DataSourceIsEmpty(message: "There are no purchased items to display.");

                events.MainTableAdded(args =>
                {
                    var total = order.Total;

                    var summaryTable             = new PdfGrid(args.Table.RelativeWidths); // Create a clone of the MainTable's structure
                    summaryTable.WidthPercentage = args.Table.WidthPercentage;
                    summaryTable.SpacingBefore   = args.Table.SpacingBefore;

                    summaryTable.AddSimpleRow(
                        null, null,
                        (data, cellProperties) =>
                    {
                        data.Value                         = "Total";
                        cellProperties.PdfFont             = args.PdfFont;
                        cellProperties.HorizontalAlignment = HorizontalAlignment.Right;
                    },
                        (data, cellProperties) =>
                    {
                        data.Value                 = string.Format("{0:c}", total);
                        cellProperties.PdfFont     = args.PdfFont;
                        cellProperties.BorderColor = BaseColor.LIGHT_GRAY;
                        cellProperties.ShowBorder  = true;
                    });

                    args.PdfDoc.Add(summaryTable);
                });
            })
                                .Export(export =>
            {
                export.ToExcel();
            })
                                .Generate(data => data.AsPdfStream(new MemoryStream()));

            return(((MemoryStream)pdfReportData.PdfStreamOutput).ToArray());
        }
Ejemplo n.º 15
0
        public async Task <IActionResult> Dokumenti()
        {
            int    n      = 10;
            var    param  = new SqlParameter("N", n);
            string naslov = $"{n} najvećih kupnji";
            var    stavke = await ctx.StavkaDenorm
                            .AsNoTracking()
                            .FromSql("SELECT * FROM fn_NajveceKupnje(@N)", param)
                            .OrderBy(s => s.IdDokumenta)
                            .ThenBy(s => s.NazArtikla)
                            .ToListAsync();

            stavke.ForEach(s => s.UrlDokumenta = Url.Action("Edit", "Dokument", new { id = s.IdDokumenta }));
            PdfReport report = CreateReport(naslov);

            #region Podnožje i zaglavlje
            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance.
                header.CustomHeader(new MasterDetailsHeaders(naslov)
                {
                    PdfRptFont = header.PdfFont
                });
            });
            #endregion
            #region Postavljanje izvora podataka i stupaca
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(stavke));

            report.MainTableSummarySettings(summarySettings =>
            {
                summarySettings.OverallSummarySettings("Ukupno");
            });

            report.MainTableColumns(columns =>
            {
                #region Stupci po kojima se grupira
                columns.AddColumn(column =>
                {
                    column.PropertyName <StavkaDenorm>(s => s.IdDokumenta);
                    column.Group(
                        (val1, val2) =>
                    {
                        return((int)val1 == (int)val2);
                    });
                });
                #endregion
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <StavkaDenorm>(x => x.NazArtikla);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Width(4);
                    column.HeaderCell("Naziv artikla", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <StavkaDenorm>(x => x.KolArtikla);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Width(1);
                    column.HeaderCell("Količina", horizontalAlignment: HorizontalAlignment.Center);
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                ? string.Empty : string.Format("{0:.00}", obj));
                    });
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <StavkaDenorm>(x => x.JedCijArtikla);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Width(1);
                    column.HeaderCell("Jedinična cijena", horizontalAlignment: HorizontalAlignment.Center);
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                ? string.Empty : string.Format("{0:C2}", obj));
                    });
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <StavkaDenorm>(x => x.PostoRabat);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Width(1);
                    column.HeaderCell("Rabat", horizontalAlignment: HorizontalAlignment.Center);
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                ? string.Empty : string.Format("{0:P2}", obj));
                    });
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName("Ukupno");
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Width(1);
                    column.HeaderCell("Ukupno", horizontalAlignment: HorizontalAlignment.Center);
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                ? string.Empty : string.Format("{0:C2}", obj));
                    });
                    column.AggregateFunction(aggregateFunction =>
                    {
                        aggregateFunction.NumericAggregateFunction(AggregateFunction.Sum);
                        aggregateFunction.DisplayFormatFormula(obj => obj == null || string.IsNullOrEmpty(obj.ToString())
                                                ? string.Empty : string.Format("{0:C2}", obj));
                    });
                    column.CalculatedField(
                        list =>
                    {
                        if (list == null)
                        {
                            return(string.Empty);
                        }
                        decimal kolArtikla    = (decimal)list.GetValueOf(nameof(StavkaDenorm.KolArtikla));
                        decimal postoRabat    = (decimal)list.GetValueOf(nameof(StavkaDenorm.PostoRabat));
                        decimal jedCijArtikla = (decimal)list.GetValueOf(nameof(StavkaDenorm.JedCijArtikla));
                        var iznos             = jedCijArtikla * kolArtikla * (1 - postoRabat);
                        return(iznos);
                    });
                });
            });

            #endregion
            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=artikli.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Metoda koja služi za generiranje pdf izvješća. Stvara se tablica sa svim kontaktima koji su u bazi podataka
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> PDFReport()
        {
            string naslov  = "Popis osoba u kontaktu";
            var    kontkat = await ctx.Kontakt
                             .Include(o => o.IdKontaktNavigation)
                             .Include(o => o.IdOsobaNavigation)
                             .AsNoTracking()
                             .ToListAsync();

            PdfReport report = Constants.CreateBasicReport(naslov);

            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(kontkat));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName <Kontakt>(o => o.IdOsoba);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(4);
                    column.HeaderCell("Identifikacijski broj osobe", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Kontakt>(o => o.IdOsobaNavigation.Ime);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(2);
                    column.HeaderCell("Ime", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Kontakt>(o => o.IdOsobaNavigation.Prezime);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("Prezime", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Kontakt>(o => o.IdKontakt);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Identifikacijski broj kontakta", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Kontakt>(o => o.IdKontaktNavigation.Ime);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(2);
                    column.HeaderCell("Ime", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Kontakt>(o => o.IdKontaktNavigation.Prezime);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(5);
                    column.Width(2);
                    column.HeaderCell("Prezime", horizontalAlignment: HorizontalAlignment.Left);
                });
            });


            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=kontakti.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 17
0
        public async Task <IActionResult> Drzave()
        {
            string naslov = "Popis država";
            var    drzave = await ctx.Drzava
                            .AsNoTracking()
                            .OrderBy(d => d.NazDrzave)
                            .ToListAsync();

            PdfReport report = CreateReport(naslov);

            #region Podnožje i zaglavlje
            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true); // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            #endregion
            #region Postavljanje izvora podataka i stupaca
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(drzave));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName(nameof(Drzava.OznDrzave));
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(2);
                    column.HeaderCell("Oznaka države");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Drzava>(x => x.NazDrzave);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(3);
                    column.HeaderCell("Naziv države", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Drzava>(x => x.Iso3drzave);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(1);
                    column.HeaderCell("ISO3", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Drzava>(x => x.SifDrzave);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(1);
                    column.HeaderCell("Šifra države", horizontalAlignment: HorizontalAlignment.Center);
                });
            });

            #endregion
            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=drzave.pdf");
                return(File(pdf, "application/pdf"));
                //return File(pdf, "application/pdf", "drzave.pdf"); //Otvara save as dialog
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Metoda za generiranje izvješća u pdf formatu. Stvara se tablica sa svim pregledima
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> PDFReport()
        {
            string naslov   = "Popis pregleda";
            var    pregledi = await ctx.Pregled
                              .AsNoTracking()
                              .ToListAsync();

            PdfReport report = Constants.CreateBasicReport(naslov);

            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(pregledi));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName <Pregled>(o => o.SifraPregleda);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(4);
                    column.HeaderCell("Sifra pregleda", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Pregled>(o => o.Datum);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(4);
                    column.HeaderCell("Datum", horizontalAlignment: HorizontalAlignment.Left);
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj =>
                        {
                            if (obj == null || string.IsNullOrEmpty(obj.ToString()))
                            {
                                return(string.Empty);
                            }
                            else
                            {
                                DateTime date = (DateTime)obj;
                                return(date.ToString("dd.MM.yyyy"));
                            }
                        });
                    });
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Pregled>(o => o.Anamneza);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("Anamneza", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Pregled>(o => o.Dijagnoza);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Dijagnoza", horizontalAlignment: HorizontalAlignment.Left);
                });
            });


            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=pregledi.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Metoda koja generira pdf izvješće za detalje neke osobe.
        /// </summary>
        /// <param name="id">Identifikacijski broj osobe</param>
        /// <returns></returns>
        public async Task <IActionResult> PDFReportOsoba(string id)
        {
            string naslov = "Detalji osobe";
            var    osobe  = await ctx.Osoba
                            .Include(o => o.KontaktIdKontaktNavigation)
                            .Include(o => o.ZarazenaOsoba)
                            .Where(o => o.IdentifikacijskiBroj == id)
                            .Select(o => new OsobaDetailsViewModel
            {
                IdentifikacijskiBroj = o.IdentifikacijskiBroj,
                Ime            = o.Ime,
                Prezime        = o.Prezime,
                Adresa         = o.Adresa,
                DatRod         = o.DatRod,
                Zanimanje      = o.Zanimanje,
                Zarazena       = o.ZarazenaOsoba.IdentifikacijskiBroj.Equals(id) ? true : false,
                Zarazenastring = o.ZarazenaOsoba.IdentifikacijskiBroj.Equals(id) ? "Da" : "Ne",
                DatZaraze      = o.ZarazenaOsoba.DatZaraze,
                NazivStanja    = o.ZarazenaOsoba.SifraStanjaNavigation.NazivStanja
            })
                            .ToListAsync();

            PdfReport report = Constants.CreateBasicReport(naslov);

            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(osobe));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName <OsobaDetailsViewModel>(o => o.IdentifikacijskiBroj);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(4);
                    column.HeaderCell("Identifikacijski broj", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <OsobaDetailsViewModel>(o => o.Ime);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(2);
                    column.HeaderCell("Ime", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <OsobaDetailsViewModel>(o => o.Prezime);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("Prezime", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <OsobaDetailsViewModel>(o => o.Adresa);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Adresa", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <OsobaDetailsViewModel>(o => o.DatRod);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(4);
                    column.Width(2);
                    column.HeaderCell("Datum rođenja", horizontalAlignment: HorizontalAlignment.Center);
                    column.ColumnItemsTemplate(template =>
                    {
                        template.TextBlock();
                        template.DisplayFormatFormula(obj =>
                        {
                            if (obj == null || string.IsNullOrEmpty(obj.ToString()))
                            {
                                return(string.Empty);
                            }
                            else
                            {
                                DateTime date = (DateTime)obj;
                                return(date.ToString("dd.MM.yyyy"));
                            }
                        });
                    });
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <OsobaDetailsViewModel>(o => o.Zanimanje);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(5);
                    column.Width(2);
                    column.HeaderCell("Zanimanje", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <OsobaDetailsViewModel>(o => o.Zarazenastring);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(5);
                    column.Width(2);
                    column.HeaderCell("Zaražena?", horizontalAlignment: HorizontalAlignment.Left);
                });
            });


            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=osobadetalji.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 20
0
        public async Task <IActionResult> Oprema()
        {
            string naslov = "Popis opreme";
            var    biljke = await ctx.Oprema
                            .AsNoTracking()
                            .Include(c => c.Status)
                            .Include(d => d.ReferentniTipOpreme)
                            .Include(e => e.LokacijaOpreme)

                            .ToListAsync();

            PdfReport report = CreateReport(naslov);

            // byte[] content;

            #region Podnožje i zaglavlje

            report.PagesFooter(footer => { footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy.")); })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true);     // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });

            #endregion

            #region Postavljanje izvora podataka i stupaca

            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(biljke));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName("OpremaId");
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(2);
                    column.HeaderCell("ID-Opreme");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(x => x.NabavnaCijena);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(3);
                    column.HeaderCell("Nabavna cijena", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(x => x.Naziv);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(3);
                    column.HeaderCell("Naziv", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(x => x.LokacijaOpreme.NazivLokacije);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(1);
                    column.HeaderCell("Lokacija", horizontalAlignment: HorizontalAlignment.Center);
                });
            });

            #endregion

            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=posao.pdf");
                return(File(pdf, "application/pdf"));
                //return File(pdf, "application/pdf", "biljke.pdf"); //Otvara save as dialog
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 21
0
        private void bwBuildReport_DoWork(object sender, DoWorkEventArgs e)
        {
            _log.Print("正在导出报告...");
            var chartBitmap = new Bitmap(mcChart.Width, mcChart.Height);

            Invoke(new Action(() =>
            {
                mcChart.DrawToBitmap(chartBitmap, new Rectangle(0, 0, mcChart.Width, mcChart.Height));
            }));
            //lvChart.DrawToBitmap(ChartBitmap, new Rectangle(0, 0, lvChart.Width, lvChart.Height));
            //chartBitmap.Save(Application.StartupPath + "/report/img.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            var content = _config.Report["Content"];
            var build   = _config.Report["Build"];
            var report  = new PdfReport
            {
                //FilePath =
                //    $"{Application.StartupPath}/report/{DateTime.Now:yyyyMMddHHmmss}.pdf"
                FilePath = $"{build["Path"]}\\{DateTime.Now:yyyyMMddHHmmss}.pdf"
            };

            if ((int)content["ShowTitle"] != 0)
            {
                report.Title = content["Title"].ToString();
                report.AddTitle(content["Title"].ToString());
            }

            if ((int)content["ShowSubject"] != 0)
            {
                report.Subject = content["Subject"].ToString();
                report.AddText($"{content["Subject"]}");
            }

            if ((int)content["ShowAuthor"] != 0)
            {
                report.Creator = content["Author"].ToString();
                report.AddText($"作者: {content["Author"]}");
            }

            report.AddEmptyLine();
            if ((int)content["ShowDate"] != 0)
            {
                report.CreateDate();
                report.AddText($"测量日期: {DateTime.Now}");
            }

            report.AddText($"测量时间: {_slaver.AutoMeasuringTime} 毫秒");
            if ((int)content["ShowTrigger"] != 0)
            {
                switch (_slaver.TriggerMode)
                {
                case TriggerMode.Auto:
                    var triggerChannel = _slaver.PressureTriggerChannel;
                    report.AddText("触发方式: 自动触发");
                    report.AddText($"触发通道: {triggerChannel?.Name}");
                    report.AddText($"触发值: {triggerChannel?.TriggerIncrement} MPa");
                    break;

                case TriggerMode.Manual:
                    report.AddText("触发方式: 手动触发");
                    break;

                case TriggerMode.External:
                    report.AddText("触发方式: 外触发");
                    break;

                default:
                    report.AddText("触发方式: 异常");
                    break;
                }
                report.AddEmptyLine();
            }

            if ((int)content["ShowChart"] != 0)
            {
                report.AddText("测量结果:");
                report.AddImage(chartBitmap);
            }

            if (report.Print())
            {
                _log.Print("导出报告完成,正在打开...");
                report.Open();
            }
            else
            {
                _log.Show("导出报告失败.");
            }
            //var waterMarkPdfPath = $"report/Report{DateTime.Now:yyyyMMddHHmmss}.pdf";
        }
Ejemplo n.º 22
0
        public async Task <IActionResult> Posao()
        {
            string naslov = "Popis Poslova";
            var    servis = await ctx.Vw_Posao

                            .AsNoTracking()


                            .ToListAsync();

            PdfReport report = CreateReport(naslov);

            // byte[] content;

            #region Podnožje i zaglavlje

            report.PagesFooter(footer => { footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy.")); })
            .PagesHeader(header =>
            {
                header.CacheHeader(cache: true);     // It's a default setting to improve the performance.
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });

            #endregion

            #region Postavljanje izvora podataka i stupaca

            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(servis));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.IsRowNumber(true);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Right);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(1);
                    column.HeaderCell("#", horizontalAlignment: HorizontalAlignment.Right);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName("PosaoId");
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(1);
                    column.HeaderCell("ID");
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <PosaoViewModel>(x => x.Opis);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(1);
                    column.HeaderCell("Opis", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <PosaoViewModel>(x => x.Cijena);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(1);
                    column.HeaderCell("Cijena", horizontalAlignment: HorizontalAlignment.Center);
                });


                columns.AddColumn(column =>
                {
                    column.PropertyName <PosaoViewModel>(x => x.DodatniTrosak);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell(" Dodatni trosak", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <PosaoViewModel>(x => x.VrijemeOd);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell("Vrijeme od", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <PosaoViewModel>(x => x.VrijemeDo);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell("Vrijeme do", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <PosaoViewModel>(x => x.NazivZanimanja);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell("Naziv zanimanja", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <PosaoViewModel>(x => x.NazivOpreme);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell("Naziv opreme", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <PosaoViewModel>(x => x.KategorijaId);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell("Kategorija ID", horizontalAlignment: HorizontalAlignment.Center);
                });

                columns.AddColumn(column =>
                {
                    column.PropertyName <PosaoViewModel>(x => x.NazivUsluge);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(2);
                    column.HeaderCell("Naziv usluge", horizontalAlignment: HorizontalAlignment.Center);
                });
            });



            #endregion

            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=posao.pdf");
                return(File(pdf, "application/pdf"));
                //return File(pdf, "application/pdf", "biljke.pdf"); //Otvara save as dialog
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Export u pdf datoteku
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> PDFReport()
        {
            string naslov = "Popis opreme";
            var    opreme = await ctx.Oprema
                            .Include(o => o.SifraInstitucijeNavigation)
                            .AsNoTracking()
                            .ToListAsync();

            PdfReport report = Constants.CreateBasicReport(naslov);

            report.PagesFooter(footer =>
            {
                footer.DefaultFooter(DateTime.Now.ToString("dd.MM.yyyy."));
            })
            .PagesHeader(header =>
            {
                header.DefaultHeader(defaultHeader =>
                {
                    defaultHeader.RunDirection(PdfRunDirection.LeftToRight);
                    defaultHeader.Message(naslov);
                });
            });
            report.MainTableDataSource(dataSource => dataSource.StronglyTypedList(opreme));

            report.MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(o => o.SifraOpreme);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(0);
                    column.Width(4);
                    column.HeaderCell("Sifra opreme", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(o => o.SifraInstitucijeNavigation.NazivInstitucije);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(1);
                    column.Width(4);
                    column.HeaderCell("Naziv institucije", horizontalAlignment: HorizontalAlignment.Left);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(o => o.NazivOpreme);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.Order(2);
                    column.Width(2);
                    column.HeaderCell("Naziv opreme", horizontalAlignment: HorizontalAlignment.Center);
                });
                columns.AddColumn(column =>
                {
                    column.PropertyName <Oprema>(o => o.KolicinaOpreme);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Left);
                    column.IsVisible(true);
                    column.Order(3);
                    column.Width(4);
                    column.HeaderCell("Kolicina opreme", horizontalAlignment: HorizontalAlignment.Left);
                });
            });


            byte[] pdf = report.GenerateAsByteArray();

            if (pdf != null)
            {
                Response.Headers.Add("content-disposition", "inline; filename=Oprema.pdf");
                return(File(pdf, "application/pdf"));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 24
0
        public byte[] CreateTeamLabelsPDFReport(TeamStickerDescriptor descr)
        {
            if (long.TryParse(descr.CoachPhone.Trim(), out long phoneLong))
            {
                descr.CoachPhone = string.Format("{0:(###) ###-####}", phoneLong);
            }

            PdfReport pdf = new PdfReport().DocumentPreferences(doc =>
            {
                doc.RunDirection(PdfRunDirection.LeftToRight);
                doc.Orientation(PageOrientation.Landscape);
                doc.PageSize(PdfPageSize.Letter);
                doc.DocumentMetadata(new DocumentMetadata {
                    Author = "TwinRinks", Application = "PdfRpt", Keywords = "Labels", Subject = "Labels Avery 8163", Title = $"{descr.TeamName} Stickers"
                });
                doc.DocumentMargins(new DocumentMargins()
                {
                    Left = 24, Top = 1
                });

                doc.Compression(new CompressionSettings
                {
                    EnableCompression     = true,
                    EnableFullCompression = true
                });
            })
                            .DefaultFonts(fonts =>
            {
                fonts.Size(8);
                fonts.Color(System.Drawing.Color.Black);
            })
                            .MainTablePreferences(table =>
            {
                table.ColumnsWidthsType(TableColumnWidthType.EquallySized);
                table.ShowHeaderRow(false);
                table.MultipleColumnsPerPage(new MultipleColumnsPerPage
                {
                    ColumnsGap     = 0,
                    ColumnsPerPage = 5,
                    ColumnsWidth   = 145,
                    IsRightToLeft  = false,
                    TopMargin      = 0,
                });
            })
                            .MainTableDataSource(dataSource =>
            {
                dataSource.StronglyTypedList <TeamTemplateDTO>(TeamTemplateDTO.BuildTeams(descr));
            })
                            .MainTableColumns(columns =>
            {
                columns.AddColumn(column =>
                {
                    column.PropertyName <TeamTemplateDTO>(x => x.CoachName);
                    column.CellsHorizontalAlignment(HorizontalAlignment.Center);
                    column.IsVisible(true);
                    column.FixedHeight(280);
                    column.ColumnItemsTemplate(t => t.CustomTemplate(
                                                   new MailingLabelCellTemplate()));
                });
            })
                            .MainTableEvents(events =>
            {
                events.DataSourceIsEmpty(message: "There is no data available to display.");
            });

            return(pdf.GenerateAsByteArray());
        }
Ejemplo n.º 25
0
        static void Main(string[] args)
        {
            ReportProperties rp = new ReportProperties();

            rp.table.AddColumns(new ColumnAttribute("Title", 20), new ColumnAttribute("Item", 90));
            rp.table.AddData(new string[2] {
                "1", "2"
            }, new string[2] {
                "Test Data For Long Cell That Its OverFlown Letters Should Be Hidden 593958 341", "2123"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            },
                             new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            }, new string[2] {
                "1", "2"
            });

            ReportProperties.Orientation = MigraDoc.DocumentObjectModel.Orientation.Landscape;

            PdfReport pdf = new PdfReport(rp);
        }
Ejemplo n.º 26
0
        public async Task <IActionResult> ExportIssues([FromForm(Name = "issues")] List <string> issuesList, [FromForm(Name = "includeqr")] bool includeQRCode
                                                       , [FromHeader(Name = "Referer")] string referer, [FromHeader(Name = "x-real-ip")] string realIp, [FromHeader(Name = "User-Agent")] string userAgent
                                                       , [FromHeader(Name = "x-forwarded-for")] string forwardedFor)
        {
            IActionResult result          = null;
            DateTime      requestDateTime = DateTime.Now;
            TaskMeasurer  taskMeasurer    = new TaskMeasurer();
            string        extension       = "pdf";

            Model.ClientRegistration registrationData = _client.RegistrationData;
            string fileId         = Guid.NewGuid().ToString();
            string reportFileName = $"{_configuration.GetValue<string>("Settings:StorageRoot", "clients_jiracloud")}/{registrationData.ClientKey}/{fileId}.{extension}";

            JArray  fields = null;
            JObject issues = null;
            Dictionary <string, JArray> epicStories = new Dictionary <string, JArray>();

            Report.Model.Document      document             = null;
            Model.ReportFile           reportFile           = null;
            ReportJiraCloudModel       reportJiraCloudModel = null;
            List <StatisticalDocument> statItems            = new List <StatisticalDocument>();

            try
            {
                _logger.LogInformation($"{requestDateTime} New job ClientKey {registrationData.ClientKey}, issues {String.Join(", ", issuesList)}");
                HttpClient httpCli = _clientFactory.CreateClient("jira_client");
                httpCli.BaseAddress = new Uri(registrationData.BaseUrl);
                RestApiClient cli = new RestApiClient(registrationData.Key, registrationData.SharedSecret, registrationData.ClientKey, httpCli);

                fields = (JArray)JsonConvert.DeserializeObject(await taskMeasurer.Run(() => cli.Get($"/rest/api/3/field"), "000_FetchFields"));
                var EpicNameField = getField(fields, "com.pyxis.greenhopper.jira:gh-epic-label");


                string[] responses = await taskMeasurer.Run(() => Task.WhenAll(issuesList.Select(i => cli.Get($"/rest/api/3/issue/{i}"))), "111_FetchIssuesData");

                PdfReport pdfReport = new PdfReport(filePath: reportFileName, storageName: _configuration.GetValue <string>("Settings:StorageName"), debug: _hostEnvironment.IsDevelopment());
                await pdfReport.Configure(_client.PdfApi, _client.BarcodeApi);

                issues = JToken.FromObject(new
                {
                    issues = responses.Select(JsonConvert.DeserializeObject).ToList()
                }) as JObject;

                // get stories for epics
                epicStories = new Dictionary <string, JArray>();
                if (!string.IsNullOrEmpty(EpicNameField))
                {
                    var issuesArr = await Task.WhenAll(issues["issues"]
                                                       .Where(i => !string.IsNullOrEmpty(i.SelectToken($"$.fields.{EpicNameField}")?.ToString()))
                                                       .Select(async i => KeyValuePair.Create(i.SelectToken($"$.key")?.ToString(), await getSubtasksForEpic(cli, i.SelectToken($"$.key")?.ToString()))
                                                               ));

                    epicStories = issuesArr.ToDictionary(t => t.Key, t => t.Value);
                }

                document = taskMeasurer.RunSync(() =>
                {
                    reportJiraCloudModel = new ReportJiraCloudModel(System.IO.File.ReadAllText(
                                                                        _configuration.GetValue("Templates:ReportIssuesModel",
                                                                                                "template/Report-Issues.Mustache")))
                    {
                        EpicLinkField  = getField(fields, "com.pyxis.greenhopper.jira:gh-epic-link"),
                        EpicNameField  = EpicNameField,
                        GenerateQRCode = includeQRCode
                    };
                    return(reportJiraCloudModel.CreateReportModel(reportJiraCloudModel.issuesModel(issues, epicStories)));
                }, "112_PrepareReportModel");

                if (null == document.Options)
                {
                    document.Options = new Report.Model.DocumentOptions();
                }
                await pdfReport.Report(document);


                DateTime current = DateTime.Now;
                reportFile = new Model.ReportFile
                {
                    UniqueId        = $"{Guid.NewGuid()}",
                    ReportType      = extension,
                    ContentType     = "application/pdf",
                    FileName        = issuesList.Count == 1 ? $"{issuesList.First()}.{extension}" : $"Issues.{extension}",
                    StorageFileName = reportFileName,
                    ClientId        = registrationData.Id,
                    Created         = current,
                    Expired         = current.AddHours(_configuration.GetValue("Settings:FileExpirationHours", 24)),
                };
                _dbContext.ReportFile.Add(reportFile);
                statItems = taskMeasurer.Stat.Concat(pdfReport.Stat).ToList();

                await _dbContext.SaveChangesAsync();

                _logger.LogInformation($"{current} Finished {registrationData.ClientKey} in {DateTime.Now - requestDateTime}");
                return(result = new OkObjectResult(new {
                    fileid = reportFile.UniqueId
                    , downloadlink = _basePathReplacement.ReplaceBaseUrl(Url.Link("GetDownload", new { id = reportFile.UniqueId }))
                    , expText = TimeSpan.FromHours(_configuration.GetValue("Settings:FileExpirationHours", 24)).ToReadableString()
                    , exp = reportFile.Expired
                }));
            }
            catch (Exception ex)
            {
                ZipFileArchive archive = new ZipFileArchive().AddFile("010_request_params.json", new
                {
                    RequestId = _client.RequestId,
                    FileId    = fileId,
                    FileName  = reportFileName,
                    includeQRCode, referer, realIp, userAgent, forwardedFor,
                    issues = issuesList
                });
                foreach (var f in new Dictionary <string, object> {
                    { "020_registration.json", registrationData },
                    { "030_fields.json", fields },
                    { "040_issues.json", issues },
                    { "050_epic_stories.json", epicStories },
                    { "051_RenderedDocument.yaml", reportJiraCloudModel?.RenderedYamlDocument },
                    { "052_RenderedJsonDocument.yaml", reportJiraCloudModel?.RenderedJsonDocument },
                    { "060_document.json", document },
                    { "070_report_file.json", reportFile },
                    { "080_result.json", result },
                }.ToArray())
                {
                    archive.AddFile(f.Key, f.Value);
                }
                throw new ControllerException($"Error generating {reportFileName}", innerException: ex, customData: await archive.Archive());
            }
            finally
            {
                _client.Stat = statItems;
            }
        }