public void Returns_ERROR_because_of_repository_error()
        {
            Response <PDFReport> response = invalidRepositorySystem.GenerateReport(outage.Id);
            PDFReport            result   = response.Data;
            ResponseStatus       status   = response.Status;

            Assert.IsNotNull(result);
            Assert.AreEqual(ResponseStatus.Error, status);
        }
        public void Returns_ERROR_because_of_invalid_id(int id)
        {
            Response <PDFReport> response = system.GenerateReport(id);
            PDFReport            result   = response.Data;
            ResponseStatus       status   = response.Status;

            Assert.IsNotNull(result);
            Assert.AreEqual(ResponseStatus.Error, status);
        }
Пример #3
0
        public IActionResult Relatorio(MovimentacoesRelatorioModel model)
        {
            if (ModelState.IsValid)
            {
                var consulta = new MovimentacoesConsultaModel
                {
                    DataInicio  = model.DataInicio,
                    DataTermino = model.DataTermino
                };

                //consultando as movimentações
                var dados = movimentacaoFinanceiraApplicationService.Consultar(consulta);

                try
                {
                    //verificar o tipo do relatorio
                    switch (model.TipoRelatorio)
                    {
                    case "EXCEL":
                        var relatorioExcel = ExcelReport.GenerateReport
                                                 (DateTime.Parse(model.DataInicio), DateTime.Parse(model.DataTermino), dados);

                        //download do arquivo
                        Response.Clear();
                        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                        Response.Headers.Add("content-disposition", "attachment; filename=relatorio.xlsx");
                        Response.Body.WriteAsync(relatorioExcel, 0, relatorioExcel.Length);
                        Response.Body.Flush();
                        Response.StatusCode = StatusCodes.Status200OK;

                        break;

                    case "PDF":

                        var relatorioPDF = PDFReport.GenerateReport
                                               (DateTime.Parse(model.DataInicio), DateTime.Parse(model.DataTermino), dados);

                        //download do arquivo
                        Response.Clear();
                        Response.ContentType = "application/pdf";
                        Response.Headers.Add("content-disposition", "attachment; filename=relatorio.pdf");
                        Response.Body.WriteAsync(relatorioPDF, 0, relatorioPDF.Length);
                        Response.Body.Flush();
                        Response.StatusCode = StatusCodes.Status200OK;

                        break;
                    }
                }
                catch (Exception e)
                {
                    TempData["MensagemErro"] = e.Message;
                }
            }

            return(View());
        }
Пример #4
0
        public PDFReport GetReport()
        {
            var report = new PDFReport();

            report.SetReportType(_reportType);
            report.SetReportHeader(_header);
            report.SetReportContent(_content);
            report.SetReportFooter(_footer);
            return(report);
        }
Пример #5
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (listView1.Items.Count > 0)
            {
                var empnum = new List <string>();
                var fname  = new List <string>();
                var lname  = new List <string>();
                var list1  = new List <string>();
                var list2  = new List <string>();
                var list3  = new List <string>();
                var list4  = new List <string>();
                var list5  = new List <string>();
                var list6  = new List <string>();
                var list7  = new List <string>();
                var list8  = new List <string>();
                var list9  = new List <string>();
                var list10 = new List <string>();
                var list11 = new List <string>();
                var list12 = new List <string>();
                var list13 = new List <string>();
                var list14 = new List <string>();
                var list15 = new List <string>();

                foreach (ListViewItem lvItems in listView1.Items)
                {
                    empnum.Add(lvItems.SubItems[0].Text);
                    lname.Add(lvItems.SubItems[1].Text);
                    fname.Add(lvItems.SubItems[2].Text);
                    list1.Add(lvItems.SubItems[3].Text);
                    list2.Add(lvItems.SubItems[4].Text);
                    list3.Add(lvItems.SubItems[5].Text);
                    list4.Add(lvItems.SubItems[6].Text);
                    list5.Add(lvItems.SubItems[7].Text);
                    list6.Add(lvItems.SubItems[8].Text);
                    list7.Add(lvItems.SubItems[9].Text);
                    list8.Add(lvItems.SubItems[10].Text);
                    list9.Add(lvItems.SubItems[11].Text);
                    list10.Add(lvItems.SubItems[12].Text);
                    list11.Add(lvItems.SubItems[13].Text);
                    list12.Add(lvItems.SubItems[14].Text);
                    list13.Add(lvItems.SubItems[15].Text);
                    list14.Add(lvItems.SubItems[16].Text);
                    list15.Add(lvItems.SubItems[17].Text);
                }
                PDFReport           report    = new PDFReport();
                Document            doc       = report.Overtime_summary(dtpFrom.Value, dtpTo.Value, empnum, fname, lname, list1, list2, list3, list4, list5, list6, list7, list8, list9, list10, list11, list12, list13, list14, list15);
                PdfDocumentRenderer pdfRender = new PdfDocumentRenderer();
                pdfRender.Document = doc;
                pdfRender.RenderDocument();

                const string filename = "Overtime_SUMMARY.pdf";
                pdfRender.PdfDocument.Save(filename);
                Process.Start(filename);
            }
        }
Пример #6
0
        private void cbxReportType_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (this.cbxReportType.SelectedItem == null)
            {
                return;
            }

            AReport newReport;

            switch ((ReportType)this.cbxReportType.SelectedItem)
            {
            case ReportType.PDF:
                newReport = new PDFReport();
                break;

            case ReportType.EXCEL:
                newReport = new PDFReport();
                break;

            case ReportType.CSV:
                newReport = new PDFReport();
                break;

            case ReportType.XML:
                newReport = new PDFReport();
                break;

            default:
                throw new ApplicationException("Failed to select a report type");
            }

            newReport.Name = report.Name;

            foreach (Field f in report.fields)
            {
                newReport.fields.Add(f);
            }

            foreach (Table t in report.tables)
            {
                newReport.tables.Add(t);
            }

            //newReport.ExportPath = report.ExportPath;

            //newReport.TemplatePath = report.TemplatePath;

            newReport.Script = report.Script;

            newReport.SampleDataSet = report.SampleDataSet;

            newReport.SetTemplate(report.GetTemplate( ));

            report = newReport;
        }
        public void Returns_OK()
        {
            Response <PDFReport> response = system.GenerateReport(outage.Id);
            PDFReport            result   = response.Data;
            ResponseStatus       status   = response.Status;

            Assert.IsNotNull(result);
            Assert.IsNotNullOrEmpty(result.FileName);
            Assert.IsNotNull(result.BinaryData);
            Assert.IsTrue(result.BinaryData.Any());
            Assert.AreEqual(ResponseStatus.OK, status);
        }
        // Modified 2015-05-22 removed TemplatePath from parameter list as Template can now change with each competitor
        public static List <string> SaveAllEventCertificatesByType(List <CertificateData> CDs, string ExportPath, AEvent [] Events = null)
        {
            List <string> pdfCertificates = new List <string>();

            if (Events == null)
            {
                Events = ((App)App.Current).CurrentChampionship.Championship.listAllEvents( ).ToArray();
            }

            // Generate Event Certificates
            //foreach (AEvent Event in MainWindow.CurrentChampionship.listAllEvents())
            foreach (AEvent Event in Events)
            {
                //PDFReport CertsReport = (PDFReport)MainWindow.ReportLibrary["Certificate"]; // (PDFReport)AReport.LoadTemplate(Event.CertificateTemplate);
                //PDFReport CertsReport = (PDFReport) ChampionshipSolutions.Reports.CSReportLibrary.getLibrary() ["Certificate"]; // (PDFReport)AReport.LoadTemplate(Event.CertificateTemplate);

                if (!Event.IsFinal)
                {
                    continue;
                }

                if (Event.CertificateTemplate == null)
                {
                    continue;
                }

                PDFReport CertsReport = (PDFReport)PDFReport.LoadTemplate(Event.CertificateTemplate.Instructions, Event.CertificateTemplate.TemplateFile);

                if (CertsReport == null)
                {
                    continue;
                }

                List <CertificateData> GroupedCertificates = CDs.Where(cd => cd.Competitor.CompetingIn.Name == Event.Name).ToList();

                foreach (string str in GroupedCertificates.Select(c => c.CertificateName).Distinct())
                {
                    List <CertificateData> GroupedCertificatesType = GroupedCertificates.Where(cd => cd.CertificateName == str).OrderBy(cd => cd.CertifiacteType).ThenBy(cd => cd.RankCounter).ToList();

                    byte[] b = CertsReport.Generate(GroupedCertificatesType.ToDataSet().Tables[0]);

                    CertsReport.SaveGeneratedFile(string.Format("{0}\\{1} {2}.pdf", ExportPath, Event.Name, str));
                    pdfCertificates.Add(string.Format("{0}\\{1} {2}.pdf", ExportPath, Event.Name, str));
                }
            }

            return(pdfCertificates);
        }
Пример #9
0
        private void BtnPrint_Click(object sender, RoutedEventArgs e)
        {
            PDFReport report = null;

            if (cmbTotalResult.SelectedValue is CBItem selected)
            {
                CBObjectTotalResults selObj = selected.Value as CBObjectTotalResults;
                if (selObj == null ||             // Fallback
                    selObj.Type == "raceresults") // ResultList
                {
                    if (_thisRace.GetResultViewProvider() is DSVSchoolRaceResultViewProvider)
                    {
                        report = new DSVSchoolRaceResultReport(_thisRace);
                    }
                    else
                    {
                        report = new RaceResultReport(_thisRace);
                    }
                }
                else if (selObj.Type == "raceresults")
                {
                    displayView(_thisRace.GetResultViewProvider());
                }
                else if (selObj.Type == "results_run")
                {
                    report = new RaceRunResultReport(selObj.RaceRun);
                }
                else if (selObj.Type == "startlist_run")
                {
                    if (selObj.RaceRun.GetStartListProvider() is BasedOnResultsFirstRunStartListViewProvider)
                    {
                        report = new StartListReport2ndRun(selObj.RaceRun);
                    }
                    else
                    {
                        report = new StartListReport(selObj.RaceRun);
                    }
                }
            }

            if (report != null)
            {
                report.WithDiagram    = chkPrintOptionWithDiagram.IsChecked == true;
                report.WithRaceHeader = chkPrintOptionWithRaceHeader.IsChecked == true;
                CreateAndOpenReport(report);
            }
        }
Пример #10
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (listView1.Items.Count > 0)
            {
                string dtFrom        = dtpFrom.Value.ToString(  );
                string dtTo          = dtpTo.Value.ToString();
                var    empNum        = new List <string>();
                var    empName       = new List <string>();
                var    workhr        = new List <string>();
                var    totalabs      = new List <string>();
                var    totallate_hr  = new List <string>();
                var    totallate_min = new List <string>();
                var    totalut_hr    = new List <string>();
                var    totalut_min   = new List <string>();
                var    render_date   = new List <string>();



                foreach (ListViewItem items in listView1.Items)
                {
                    empNum.Add(items.SubItems[0].Text);
                    empName.Add(items.SubItems[1].Text);
                    totalabs.Add(items.SubItems[2].Text);
                    totallate_hr.Add(items.SubItems[3].Text);
                    totallate_min.Add(items.SubItems[4].Text);
                    totalut_hr.Add(items.SubItems[5].Text);
                    totalut_min.Add(items.SubItems[6].Text);
                    render_date.Add(items.SubItems[7].Text);
                }

                PDFReport report = new PDFReport();

                Document            document  = report.Late_absence_summary(dtFrom, dtTo, empNum, empName, totalabs, totallate_hr, totallate_min, totalut_hr, totalut_min, render_date);
                PdfDocumentRenderer pdfrender = new PdfDocumentRenderer();
                pdfrender.Document = document;
                pdfrender.RenderDocument();

                const string filename = "Late_and_Absences_SUMMARY.pdf";
                pdfrender.PdfDocument.Save(filename);
                Process.Start(filename);
            }
            else
            {
                MessageBox.Show("You have no report to print", "Unable to Print", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #11
0
        public PDFReport GenerateReport(Outage outage)
        {
            PDFReport report;

            if (outage != null && outage.Id > 0)
            {
                string body       = GenerateBody(outage);
                string fileName   = $"Outage{outage.Id}_Report";
                byte[] binaryData = renderer.RenderHtmlAsPdf(body).BinaryData;
                report = new PDFReport(fileName, binaryData);
            }
            else
            {
                report = new PDFReport();
            }

            return(report);
        }
Пример #12
0
        /// <summary>
        /// JPG转PDF。by liuhy on 20151019
        /// </summary>
        /// <param name="pdfName">输出PDF文件路径</param>
        /// <param name="jpgName">输入JPG文件路径</param>
        public static bool CreatePdfFileByJPG(string pdfName, string jpgName, ReportPara para)
        {
            bool bResult = false;

            try
            {
                var document = new Document(iTextSharp.text.PageSize.A4, 25, 25, 100, 25);
                using (var stream = new FileStream(pdfName, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    PdfWriter writer = PdfWriter.GetInstance(document, stream);
                    if (para != null)
                    {
                        PDFReport report = new PDFReport();
                        report.ReportPar = para;
                        //report.Route = route;
                        writer.PageEvent = report;
                    }
                    document.Open();
                    using (var imageStream = new FileStream(jpgName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                    {
                        var image = Image.GetInstance(imageStream);
                        if (image.Height > iTextSharp.text.PageSize.A4.Height - 25)
                        {
                            image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
                        }
                        else if (image.Width > iTextSharp.text.PageSize.A4.Width - 25)
                        {
                            image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
                        }

                        image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE;
                        document.Add(image);
                    }
                    document.Close();
                }

                bResult = true;
            }
            catch (Exception ex)
            {
            }
            return(bResult);
        }
        //Modified 2015-05-22 removed Template Path from parameters as the template can change with each new competitor.
        public static List <string> SaveIndividualCertificates(List <CertificateData> CDs, string ExportPath)
        {
            List <string> pdfCertificates = new List <string>();


            //Generate the individual Certificates
            foreach (CertificateData CD in CDs)
            {
                //PDFReport CertsReport = (PDFReport)MainWindow.ReportLibrary["Certificate"]; //(PDFReport)AReport.LoadTemplate(CD.Competitor.CompetingIn.CertificateTemplate);
                PDFReport CertsReport = (PDFReport)Reports.CSReportLibrary.getLibrary() ["Certificate"];  //(PDFReport)AReport.LoadTemplate(CD.Competitor.CompetingIn.CertificateTemplate);

                // To do 2016-05-14 this is a bodge. The template is being chosen based on a hard coded string and not on the selection in EditEvent

                ACertificate cert = new CertificateInvididual()
                {
                    Competitor = CD.Competitor,
                    Event      = CD.Competitor.CompetingIn,
                    File       = new FileStorage(ExportPath, "PDF", CertsReport.Generate(new List <CertificateData>()
                    {
                        CD
                    }.ToDataSet().Tables[0]))
                };

                //if (Properties.Settings.Default.SaveCertificateToDB)
                //{
                //    CD.Competitor.Certificates.Add(cert);

                //    if (Properties.Settings.Default.SaveCertificateImage)
                //        Printing.GetPdfThumbnail(
                //            Printing.saveArrayToTemp(cert.File.FileData),
                //            string.Format("{0}{1} {4} {3} {2}.png", ExportPath, CD.EventName, CD.Competitor.getName(), CD.CertifiacteType, CD.Competitor.printVestNumber()),
                //            1, 1, GhostscriptSharp.Settings.GhostscriptPageSizes.a5);
                //}

                //Printing.PrintPDF(cert.File.FileData);

                CertsReport.SaveGeneratedFile(string.Format("{0}\\{1} {4} {3} {2}.pdf", ExportPath, CD.EventName, CD.Competitor.getName(), CD.CertifiacteType, CD.Competitor.printVestNumber()));

                pdfCertificates.Add(string.Format("{0}\\{1} {4} {3} {2}.pdf", ExportPath, CD.EventName, CD.Competitor.getName(), CD.CertifiacteType, CD.Competitor.printVestNumber()));
            }

            return(pdfCertificates);
        }
        public Response <PDFReport> GenerateReport(int id)
        {
            Console.WriteLine($"Request: GenerateReport.");
            Outage outage = outageService.Get(id, out string message);

            if (outage == null || outage.Id <= 0)
            {
                return(new Response <PDFReport>(ResponseStatus.Error, message, new PDFReport()));
            }

            PDFReport report = reportService.GenerateReport(outage, out message);

            if (report != null && !string.IsNullOrWhiteSpace(report.FileName) && report.BinaryData.Any())
            {
                return(new Response <PDFReport>(ResponseStatus.OK, message, report));
            }
            else
            {
                return(new Response <PDFReport>(ResponseStatus.Error, message, report));
            }
        }
Пример #15
0
    public static int Main(string[] args)
    {
        if (args.Length < 2)
        {
            Console.WriteLine("USAGE: PDFConcat srcfile [srcfile...] dstfile");
            return(1);
        }
        string[] infiles = new string[args.Length - 1];
        for (int i = 0; i < args.Length - 1; i++)
        {
            infiles[i] = args[i];
        }
        try {
            PDFReport.Combine(args[args.Length - 1], infiles);
        } catch (Exception e) {
            Console.WriteLine("Error: {0}", e.Message);
            return(1);
        }

        return(0);
    }
        public PDFReport GenerateReport(Outage outage, out string message)
        {
            if (outage == null || outage.Id <= 0)
            {
                message = "Outage is invalid.";
                return(new PDFReport());
            }

            PDFReport report = generator.GenerateReport(outage);

            if (!string.IsNullOrWhiteSpace(report.FileName) && report.BinaryData.Any())
            {
                message = string.Empty;
            }
            else
            {
                message = "An unexpected error occured while trying to generate a report.";
            }

            return(report);
        }
        // Modified 2015-05-22 removed TemplatePath from parameter list as Template can now change with each competitor
        public static List <string> SaveAllEventCertificates(List <CertificateData> CDs, string ExportPath)
        {
            List <string> pdfCertificates = new List <string>();


            //        // Generate Event Certificates
            //foreach (AEvent Event in MainWindow.CurrentChampionship.listAllEvents())
            foreach (AEvent Event in ((App)App.Current).CurrentChampionship.Championship.listAllEvents())
            {
                //PDFReport CertsReport = (PDFReport)MainWindow.ReportLibrary["Certificate"]; //(PDFReport)AReport.LoadTemplate(Event.CertificateTemplate);
                PDFReport CertsReport = (PDFReport)ChampionshipSolutions.Reports.CSReportLibrary.getLibrary()["Certificate"];

                List <CertificateData> GroupedCertificates = CDs.Where(cd => cd.EventName == Event.Name).OrderBy(cd => cd.CertifiacteType).ThenBy(cd => cd.RankCounter).ToList();

                byte[] b = CertsReport.Generate(GroupedCertificates.ToDataSet().Tables[0]);

                CertsReport.SaveGeneratedFile(string.Format("{0}{1} {2}.pdf", ExportPath, Event.Name, "All"));
                pdfCertificates.Add(string.Format("{0}{1} {2}.pdf", ExportPath, Event.Name, "All"));
            }

            return(pdfCertificates);
        }
Пример #18
0
    public static int Main(string[] args)
    {
        string        xmlfile       = null;
        string        fieldfile     = null;
        List <string> listfiles     = new List <string>();
        string        outfile       = null;
        bool          showFieldName = false;
        bool          showPageFrame = false;
        bool          rotate        = false;

        for (int i = 0; i < args.Length; i++)
        {
            switch (args[i])
            {
            case "-o":
                outfile = args[++i];
                break;

            case "-f":
                showFieldName = true;
                showPageFrame = true;
                break;

            case "-r":
                rotate = true;
                break;

            default:
                if (xmlfile == null)
                {
                    xmlfile = args[i];
                }
                else if (fieldfile == null)
                {
                    fieldfile = args[i];
                }
                else
                {
                    listfiles.Add(args[i]);
                }
                break;
            }
        }

        PDFReport.FontDir = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "fonts");

        if (xmlfile == null)
        {
            Console.WriteLine("usage: PDFReport [options] xmlfile [fieldfile listfile1 listfile2...]");
            Console.WriteLine("option:");
            Console.WriteLine("  -o filename: Specify outpur PDF file name.");
            Console.WriteLine("  -f:          Show field names and page frame.");
            return(1);
        }

        PDFReport rep = new PDFReport(xmlfile);

        rep.Rotate        = rotate;
        rep.ShowFieldName = showFieldName;
        rep.ShowPageFrame = showPageFrame;
        DataArray field = null;

        if (fieldfile != null)
        {
            field = DataArray.FromFile(fieldfile);
        }
        List <List <DataArray> > listList = new List <List <DataArray> >();

        foreach (string listfile in listfiles)
        {
            using (CSVFile csv = new CSVFile(listfile)) {
                listList.Add(csv.ReadAllData());
                csv.Close();
            }
        }

        if (outfile == null)
        {
            rep.Output(Console.OpenStandardOutput(), field, listList);
        }
        else
        {
            rep.Output(outfile, field, listList);
        }

        return(0);
    }
Пример #19
0
        public void GenerateReportLexicalErrorsPDF()
        {
            PDFReport pdfReport = new PDFReport();

            pdfReport.GeneratePDF(ListError);
        }
Пример #20
0
        private void FillResult()
        {
            bool   ViewOn    = (RadioResult.SelectedValue == "HTML");
            string delimiter = String.Empty;

            if (!ViewOn)
            {
                HttpContext.Current.Items.Add("render", "no");
            }

            QueryBuilderManager qb     = new QueryBuilderManager();
            Hashtable           Params = new Hashtable();
            string sqlHash             = "SELECT QB_CUSTOMERQUERYPARAMFIELDS.IDFIELD,QB_ALL_FIELDS.FIELD,QB_ALL_FIELDS.FIELDTYPE,QB_CUSTOMERQUERYPARAMFIELDS.IDTABLE " +
                                         "FROM QB_CUSTOMERQUERYPARAMFIELDS " +
                                         "INNER JOIN QB_ALL_FIELDS ON QB_CUSTOMERQUERYPARAMFIELDS.IDFIELD = QB_ALL_FIELDS.ID " +
                                         "WHERE QB_CUSTOMERQUERYPARAMFIELDS.IDQUERY=" + int.Parse(Session["QueryID"].ToString());
            DataSet dsQB = DatabaseConnection.CreateDataset(sqlHash);

            foreach (DataRow s in dsQB.Tables[0].Rows)
            {
                if ((int)s[3] > 0)
                {
                    switch (s[2].ToString())
                    {
                    case "8":
                        Params.Add(s[1].ToString().ToLower(), Request.Form["Param_" + s[0].ToString()] + "|" + Request.Form["Param2_" + s[0].ToString()]);
                        break;

                    case "12":
                        Params.Add(s[1].ToString().ToLower(), Request.Form["Param_" + s[0].ToString()] + "|" + Request.Form["Paramt_" + s[0].ToString()]);
                        break;

                    case "1":
                    case "13":
                    case "2":
                        if (Request.Form["Param_" + s[0].ToString()].Length > 0)
                        {
                            if (Request.Form["Param_" + s[0].ToString()].IndexOf("-1") < 0)
                            {
                                Params.Add(s[1].ToString().ToLower(), Request.Form["Param_" + s[0].ToString()]);
                            }
                        }
                        else
                        {
                            if (Request.Form["SParam_" + s[0].ToString()].IndexOf("-1") < 0)
                            {
                                Params.Add(s[1].ToString().ToLower(), Request.Form["SParam_" + s[0].ToString()]);
                            }
                        }

                        break;

                    case "4":
                        Params.Add(s[1].ToString().ToLower(), (Request.Form["Param_" + s[0].ToString()] != null) ? Request.Form["SParam_-" + s[0].ToString()] : "false");
                        break;

                    case "14":
                        Params.Add(s[1].ToString().ToLower(), Request.Form["Paramt_" + s[0].ToString()]);
                        break;

                    default:
                        Params.Add(s[1].ToString().ToLower(), Request.Form["Param_" + s[0].ToString()]);
                        break;
                    }
                    Trace.Warn("params-" + s[1].ToString().ToLower(), Request.Form["Param_" + s[0].ToString()]);
                }
                else
                {
                    DataRow freeParameter = DatabaseConnection.CreateDataset("SELECT * FROM ADDEDFIELDS WHERE ID=" + s[0].ToString()).Tables[0].Rows[0];
                    switch (freeParameter["Type"].ToString())
                    {
                    case "4":
                        Params.Add("-" + freeParameter["Name"].ToString(), (Request.Form["SParam_-" + s[0].ToString()] != null) ? Request.Form["SParam_-" + s[0].ToString()] : "false");
                        break;

                    case "1":
                    case "2":
                        Params.Add("-" + freeParameter["Name"].ToString(), Request.Form["Param_-" + s[0].ToString()]);
                        break;
                    }
                    Trace.Warn("params-" + "-" + freeParameter["Name"].ToString(), Request.Form["Param_" + s[0].ToString()]);
                }
            }

            DataTable d = qb.QBManager(Convert.ToInt32(Session["QueryID"]), Params);



            if (d.Rows.Count > 0)
            {
                StringBuilder sb = new StringBuilder();

                if (!ViewOn)
                {
                    switch (RadioResult.SelectedValue)
                    {
                    case "CSV1":
                        delimiter = ",";
                        break;

                    case "CSV2":
                        delimiter = ";";
                        break;

                    case "PDF":
                    case "RTF":
                        delimiter = ((char)2) + "";
                        break;

                    default:
                        delimiter = ",";
                        break;
                    }
                }

                if (ViewOn)
                {
                    sb.Append("<table class=\"normal\" id=\"unique_id\" width=\"98%\" border=1 cellspacing=0 bgcolor=#ffffff><tr>");
                }
                int errocount = 0;
                try
                {
                    foreach (DataColumn cc in d.Columns)
                    {
                        if (ViewOn)
                        {
                            sb.AppendFormat("<th>{0}</th>", (cc.ColumnName.StartsWith("{+}") || cc.ColumnName.StartsWith("{t}")) ? cc.ColumnName.Substring(3, cc.ColumnName.Length - 3) : cc.ColumnName);
                        }
                        else
                        {
                            sb.AppendFormat("\"{0}\"{1}", (cc.ColumnName.StartsWith("{+}") || cc.ColumnName.StartsWith("{t}")) ? cc.ColumnName.Substring(3, cc.ColumnName.Length - 3) : cc.ColumnName, delimiter);
                        }
                        errocount++;
                    }
                }catch (Exception ex)
                {
                    string error = "DEBUG CHECK\r\n" + Session["QueryID"].ToString() + "\r\n";
                    foreach (DictionaryEntry de in  Params)
                    {
                        error += de.Key + " - " + de.Value + "\r\n";
                    }
                    foreach (DataColumn cc in d.Columns)
                    {
                        error += ">" + cc.ColumnName + "\r\n";
                    }
                    error += errocount;
                    throw new Exception(ex.Message + "\r\n" + error);
                }

                if (ViewOn)
                {
                    sb.Append("</tr>");
                }
                else
                {
                    if (RadioResult.SelectedValue == "PDF" || RadioResult.SelectedValue == "RTF")
                    {
                        if (sb.Length > 0)
                        {
                            sb.Remove(sb.Length - 1, 1);
                        }
                        sb.Append((char)1);
                    }
                    else
                    {
                        if (sb.Length > 0)
                        {
                            sb.Remove(sb.Length - 1, 1);
                        }
                        sb.Append("\r\n");
                    }
                }

                double[] sum     = new double[d.Columns.Count];
                bool[]   sumType = new bool[d.Columns.Count];
                bool     boolSum = false;
                foreach (DataRow dr in d.Rows)
                {
                    int indexSum = 0;
                    if (ViewOn)
                    {
                        sb.Append("<tr>");
                    }
                    foreach (DataColumn cc in d.Columns)
                    {
                        if (cc.ColumnName.StartsWith("{+}") || cc.ColumnName.StartsWith("{t}"))
                        {
                            double sumtoadd = 0;
                            try
                            {
                                sumtoadd = Convert.ToDouble(dr[cc.ColumnName]);
                            }
                            catch
                            {
                                sumtoadd = 0;
                            }
                            sum[indexSum]    += sumtoadd;
                            sumType[indexSum] = (cc.ColumnName.StartsWith("{t}"));                             // true = tempo , false = numerico
                            boolSum           = true;
                        }
                        string timeToPrint = String.Empty;
                        if (cc.ColumnName.StartsWith("{t}"))
                        {
                            int duration = 0;
                            try
                            {
                                duration = Convert.ToInt32(dr[cc.ColumnName]);
                            }
                            catch
                            {
                                duration = 0;
                            }

                            if (duration > 0)
                            {
                                if (duration < 60)
                                {
                                    timeToPrint = "00:" + ((duration > 9) ? duration.ToString() : "0" + duration.ToString());
                                }
                                else
                                {
                                    timeToPrint = ((Convert.ToInt32(duration / 60) > 9) ? Convert.ToInt32(duration / 60).ToString() : "0" + Convert.ToInt32(duration / 60).ToString()) + ":" +
                                                  ((Convert.ToInt32(duration % 60) > 9) ? Convert.ToInt32(duration % 60).ToString() : "0" + Convert.ToInt32(duration % 60).ToString());
                                }
                            }
                        }
                        if (ViewOn)
                        {
                            if (cc.ColumnName.StartsWith("{t}"))
                            {
                                sb.AppendFormat("<td valign=top>{0}&nbsp;</td>", timeToPrint);
                            }
                            else
                            if (dr[cc.ColumnName].ToString().StartsWith("Mottxt"))
                            {
                                sb.AppendFormat("<td valign=top>{0}&nbsp;</td>", Root.rm.GetString(dr[cc.ColumnName].ToString()));
                            }
                            else
                            {
                                sb.AppendFormat("<td valign=top>{0}&nbsp;</td>", dr[cc.ColumnName]);
                            }
                        }
                        else
                        {
                            if (dr[cc.ColumnName].ToString().Length > 0)
                            {
                                if (cc.ColumnName.StartsWith("{t}"))
                                {
                                    sb.AppendFormat("\"{0}\"{1}", timeToPrint, delimiter);
                                }
                                else
                                {
                                    sb.AppendFormat("\"{0}\"{1}", dr[cc.ColumnName], delimiter);
                                }
                            }
                            else
                            {
                                sb.AppendFormat("{0}", delimiter);
                            }
                        }
                        indexSum++;
                    }
                    if (ViewOn)
                    {
                        sb.Append("</tr>");
                    }
                    else
                    {
                        if (RadioResult.SelectedValue == "PDF" || RadioResult.SelectedValue == "RTF")
                        {
                            sb.Remove(sb.Length - 1, 1);
                            sb.Append((char)1);
                        }
                        else
                        {
                            sb.Remove(sb.Length - 1, 1);
                            sb.Append("\r\n");
                        }
                    }
                }

                if (boolSum)
                {
                    if (ViewOn)
                    {
                        sb.Append("<tr>");

                        for (int i = 0; i < sum.Length; i++)
                        {
                            sb.Append("<td>");
                            if (sum[i] > 0)
                            {
                                if (sumType[i])
                                {
                                    int    duration    = Convert.ToInt32(sum[i]);
                                    string timeToPrint = String.Empty;
                                    if (duration > 0)
                                    {
                                        if (duration < 60)
                                        {
                                            timeToPrint = "00:" + ((duration > 9) ? duration.ToString() : "0" + duration.ToString());
                                        }
                                        else
                                        {
                                            timeToPrint = ((Convert.ToInt32(duration / 60) > 9) ? Convert.ToInt32(duration / 60).ToString() : "0" + Convert.ToInt32(duration / 60).ToString()) + ":" +
                                                          ((Convert.ToInt32(duration % 60) > 9) ? Convert.ToInt32(duration % 60).ToString() : "0" + Convert.ToInt32(duration % 60).ToString());
                                        }
                                    }
                                    sb.Append("<b>" + timeToPrint + "</b>");
                                }
                                else
                                {
                                    sb.Append("<b>" + sum[i].ToString() + "</b>");
                                }
                            }
                            else
                            {
                                sb.Append("&nbsp;");
                            }
                            sb.Append("</td>");
                        }
                        sb.Append("</tr>");
                    }
                    else
                    {
                        for (int i = 0; i < sum.Length; i++)
                        {
                            if (sum[i] > 0)
                            {
                                if (sumType[i])
                                {
                                    int    duration    = Convert.ToInt32(sum[i]);
                                    string timeToPrint = String.Empty;
                                    if (duration > 0)
                                    {
                                        if (duration < 60)
                                        {
                                            timeToPrint = "00:" + ((duration > 9) ? duration.ToString() : "0" + duration.ToString());
                                        }
                                        else
                                        {
                                            timeToPrint = ((Convert.ToInt32(duration / 60) > 9) ? Convert.ToInt32(duration / 60).ToString() : "0" + Convert.ToInt32(duration / 60).ToString()) + ":" +
                                                          ((Convert.ToInt32(duration % 60) > 9) ? Convert.ToInt32(duration % 60).ToString() : "0" + Convert.ToInt32(duration % 60).ToString());
                                        }
                                    }
                                    sb.AppendFormat("\"{0}\"{1}", timeToPrint, delimiter);
                                }
                                else
                                {
                                    sb.AppendFormat("\"{0}\"{1}", sum[i].ToString(), delimiter);
                                }
                            }
                            else
                            {
                                sb.AppendFormat("{0}", delimiter);
                            }
                        }
                        sb.Remove(sb.Length - 1, 1);
                        sb.Append("\r\n");
                    }
                }

                if (ViewOn)
                {
                    sb.Append("</table>");
                    if (RadioResult.SelectedValue == "HTML")
                    {
                        sb.Append("</table><script src=\"/js/reporthtml.js\"></script>");
                        QBResult.Text = sb.ToString();
                    }
                }
                else if (RadioResult.SelectedValue == "Excel")
                {
                    ExportUtils eu = new ExportUtils();
                    DataSet     dt = new DataSet();
                    dt.Tables.Add(d);
                    eu.ExportDataSet(dt, "report", ExportUtils.DataSetExportType.ExcelXML, HttpContext.Current);
                    return;
                }
                else if (RadioResult.SelectedValue == "XML")
                {
                    ExportUtils eu = new ExportUtils();
                    DataSet     dt = new DataSet();
                    dt.Tables.Add(d);
                    eu.ExportDataSet(dt, "report", ExportUtils.DataSetExportType.XML, HttpContext.Current);
                    return;
                }
                else if (RadioResult.SelectedValue == "ADO")
                {
                    ExportUtils eu = new ExportUtils();
                    DataSet     dt = new DataSet();
                    dt.Tables.Add(d);
                    eu.ExportDataSet(dt, "report", ExportUtils.DataSetExportType.ADORecordSet, HttpContext.Current);
                    return;
                }
                else
                {
                    if (RadioResult.SelectedValue != "PDF" && RadioResult.SelectedValue != "RTF")
                    {
                        Response.AddHeader("Content-Disposition", "attachment; filename=Result.csv");
                        Response.AddHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT ");
                        Response.AddHeader("Pragma", "nocache");
                        Response.ContentType = "application/vnd.ms-excel";
                        Response.Write(sb.ToString());
                        return;
                    }
                    else if (RadioResult.SelectedValue == "PDF")
                    {
                        PDFReport    p        = new PDFReport();
                        MemoryStream MyStream = p.PDFRender(d);
                        Response.AddHeader("Content-Disposition", "attachment; filename=report.pdf");
                        Response.CacheControl = "Private";
                        Response.AddHeader("Pragma", "No-Cache");
                        Response.ContentType = "application/pdf";
                        Response.BinaryWrite(MyStream.GetBuffer());
                        Response.End();
                        return;
                    }
                    else
                    {
                        PDFReport    p        = new PDFReport();
                        MemoryStream MyStream = p.RTFRender(d);
                        Response.AddHeader("Content-Disposition", "attachment; filename=report.rtf");
                        Response.CacheControl = "Private";
                        Response.AddHeader("Pragma", "No-Cache");
                        Response.ContentType = "application/rtf";
                        Response.BinaryWrite(MyStream.GetBuffer());
                        Response.End();
                        return;
                    }
                }
            }
            else
            {
                QBResult.ForeColor = Color.Red;
                QBResult.CssClass  = "normal";
                QBResult.Text      = Root.rm.GetString("QBUtxt26");
            }
        }
Пример #21
0
        /// <summary>
        /// 创建pdf文件。by liuhy on 20141103
        /// </summary>
        /// <param name="pdfName">包含文件路径的pdf文件名</param>
        /// <param name="pdfContent">pdf文件的内容</param>
        /// <param name="pdfWordSize">pdf文件字体大小</param>
        public static bool CreatePdfFile(string pdfName, string pdfContent, int pdfWordSize, ReportPara para)
        {
            bool bResult = false;

            try
            {
                #region 创建pdf文件

                //获取字体
                string fontPath = @"C:\WINDOWS\Fonts\simsun.ttc";
                string mm       = Environment.SystemDirectory.Substring(0, 1);
                if (!mm.ToUpper().Equals(fontPath.Substring(0, 1)))
                {
                    fontPath = mm + @":\WINDOWS\Fonts\simsun.ttc";
                }

                BaseFont baseFont = null;
                try
                {
                    baseFont = BaseFont.CreateFont(fontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                }
                catch
                {
                    fontPath = fontPath + ",1";
                    baseFont = BaseFont.CreateFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
                }

                Font pdfFont = new Font(baseFont, pdfWordSize, Font.NORMAL);

                Document pdfDocument = new Document(PageSize.A4, 10, 10, 100, 20);
                //PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ, 0, pdfDocument.PageSize.Height, 1f);
                PdfWriter writer = PdfWriter.GetInstance(pdfDocument, new FileStream(pdfName, FileMode.OpenOrCreate));
                //PdfAction action = PdfAction.GotoLocalPage(1, pdfDest, writer);
                if (para != null)
                {
                    var report = new PDFReport();
                    report.ReportPar = para;
                    writer.PageEvent = report;
                }

                //writer.SetOpenAction(action);
                pdfDocument.Open();

                //HeaderAndFooterEvent.PAGE_NUMBER = true;



                //增加行距参数:10f.modify by liuhy on 20141120
                pdfDocument.Add(new Paragraph(10f, pdfContent, pdfFont));
                writer.Flush();
                writer.CloseStream = true;
                pdfDocument.Close();
                bResult = true;

                #endregion
            }
            catch (Exception ex)
            {
                throw;
            }
            return(bResult);
        }