Пример #1
0
 public UltraDMD(FlexDMD.FlexDMD flexDMD)
 {
     _flexDMD          = flexDMD;
     _queue.FillParent = true;
     // UltraDMD uses f4by5 / f5by7 / f6by12
     _scoreFontText      = new FontDef("FlexDMD.Resources.udmd-f4by5.fnt", Color.FromArgb(168, 168, 168), Color.White);
     _scoreFontNormal    = new FontDef("FlexDMD.Resources.udmd-f5by7.fnt", Color.FromArgb(168, 168, 168), Color.White);
     _scoreFontHighlight = new FontDef("FlexDMD.Resources.udmd-f6by12.fnt", Color.White, Color.White);
     // UltraDMD uses f14by26 or f12by24 or f7by13 to fit in
     _singleLineFont = new FontDef[] {
         new FontDef("FlexDMD.Resources.udmd-f14by26.fnt", Color.White, Color.White),
         new FontDef("FlexDMD.Resources.udmd-f12by24.fnt", Color.White, Color.White),
         new FontDef("FlexDMD.Resources.udmd-f7by13.fnt", Color.White, Color.White)
     };
     // UltraDMD uses f5by7 / f6by12 for top / bottom line
     _twoLinesFontTop    = new FontDef("FlexDMD.Resources.udmd-f5by7.fnt", Color.White, Color.White);
     _twoLinesFontBottom = new FontDef("FlexDMD.Resources.udmd-f6by12.fnt", Color.White, Color.White);
     // Core rendering tree
     _scoreBoard = new ScoreBoard(
         _flexDMD.NewFont(_scoreFontNormal.Path, _scoreFontNormal.Tint, _scoreFontNormal.BorderTint, _scoreFontNormal.BorderSize),
         _flexDMD.NewFont(_scoreFontHighlight.Path, _scoreFontHighlight.Tint, _scoreFontHighlight.BorderTint, _scoreFontHighlight.BorderSize),
         _flexDMD.NewFont(_scoreFontText.Path, _scoreFontText.Tint, _scoreFontText.BorderTint, _scoreFontText.BorderSize)
         )
     {
         Visible = false
     };
     _flexDMD.Stage.AddActor(_scoreBoard);
     _flexDMD.Stage.AddActor(_queue);
 }
 private void OnFontDefLoaded(string name, GameObject go, object userData)
 {
     if (go == null)
     {
         this.OnInitialDefLoaded();
     }
     else
     {
         FontDef component = go.GetComponent <FontDef>();
         if (component == null)
         {
             object[] args    = new object[] { name };
             string   message = GameStrings.Format("GLOBAL_ERROR_ASSET_INCORRECT_DATA", args);
             Error.AddFatal(message);
             Debug.LogError(string.Format("FontTable.OnFontDefLoaded() - name={0} message={1}", name, message));
             this.OnInitialDefLoaded();
         }
         else
         {
             component.transform.parent = base.transform;
             this.m_defs.Add(name, component);
             this.OnInitialDefLoaded();
         }
     }
 }
    public FontDef GetFontDef(string name)
    {
        FontDef def = null;

        this.m_defs.TryGetValue(name, out def);
        return(def);
    }
Пример #4
0
 public cDataReport(string strCN)
 {
     rpt = new Report();
     rptPage = new Root.Reports.Page(rpt);
     fd = new FontDef(rpt, "Arial");
     sqlCn = new SqlConnection(strCN);
 }
Пример #5
0
 public UltraDMD(FlexDMD.FlexDMD flexDMD)
 {
     _flexDMD          = flexDMD;
     _queue.FillParent = true;
     // UltraDMD uses f4by5 / f5by7 / f6by12
     _scoreFontText      = new FontDef("FlexDMD.Resources.udmd-f4by5.fnt", 0.66f);
     _scoreFontNormal    = new FontDef("FlexDMD.Resources.udmd-f5by7.fnt", 0.66f);
     _scoreFontHighlight = new FontDef("FlexDMD.Resources.udmd-f6by12.fnt");
     // UltraDMD uses f14by26 or f12by24 or f7by13 to fit in
     _singleLineFont = new FontDef[] {
         new FontDef("FlexDMD.Resources.udmd-f14by26.fnt"),
         new FontDef("FlexDMD.Resources.udmd-f12by24.fnt"),
         new FontDef("FlexDMD.Resources.udmd-f7by13.fnt")
     };
     // UltraDMD uses f5by7 / f6by12 for top / bottom line
     _twoLinesFontTop    = new FontDef("FlexDMD.Resources.udmd-f5by7.fnt");
     _twoLinesFontBottom = new FontDef("FlexDMD.Resources.udmd-f6by12.fnt");
     // Core rendering tree
     _scoreBoard = new ScoreBoard(
         _flexDMD.NewFont(_scoreFontNormal.Path, _scoreFontNormal.FillBrightness, _scoreFontNormal.OutlineBrightness),
         _flexDMD.NewFont(_scoreFontHighlight.Path, _scoreFontHighlight.FillBrightness, _scoreFontHighlight.OutlineBrightness),
         _flexDMD.NewFont(_scoreFontText.Path, _scoreFontText.FillBrightness, _scoreFontText.OutlineBrightness)
         )
     {
         Visible = false
     };
     _flexDMD.Stage.AddActor(_scoreBoard);
     _flexDMD.Stage.AddActor(_queue);
 }
Пример #6
0
        public void CreatePDFObjects()
        {
            FontDef fdNew;

            foreach (var itm in pdfCtrls)
            {
                if (itm.GetType().Equals(typeof(PDFLabel)))
                {
                    PDFLabel tempPDFLbl = (PDFLabel)itm;
                    try
                    {
                        fdNew = new FontDef(rpt, tempPDFLbl.FontNameType);
                        fd    = fdNew;
                    }
                    catch
                    {
                    }
                    FontProp fp = new FontPropMM(fd, tempPDFLbl.FontSize / 10);
                    page.Add(tempPDFLbl.X_Coord, tempPDFLbl.Y_Coord, new RepString(fp, tempPDFLbl.Text));
                }
                else if (itm.GetType().Equals(typeof(PDFLine)))
                {
                    PDFLine tempPDFLine = (PDFLine)itm;
                    PenProp pp          = new PenProp(rpt, tempPDFLine.thickness);
                    page.Add(tempPDFLine.X_Coord, tempPDFLine.Y_Coord, new RepLine(pp, tempPDFLine.endX, tempPDFLine.endY));
                }
            }
        }
Пример #7
0
 public cPrint(Report objrpt, string strCN)
 {
     rpt = objrpt;
     rptPage = new Root.Reports.Page(rpt);
     fd = new FontDef(rpt, "Arial");
     _sqlCn = new SqlConnection(strCN);
 }
Пример #8
0
        static protected void RenderToPDF(ControllerContext ctx, string pathToView)
        {
            Report   report = new Report(new PdfFormatter());
            FontDef  fd     = new FontDef(report, "Courier");
            FontProp fp     = new FontPropMM(fd, 11 / 4);
            Page     page   = new Page(report);

            string html = RenderViewToString(ctx, pathToView, null, true);

            string[] lines  = html.Split('\n');
            int      lineNo = 0;

            foreach (var line in lines)
            {
                page.AddLT_MM(0, lineNo, new RepString(fp, line));
                lineNo += (int)(4 * 1.5);
            }

#if DEBUG
            RT.ViewPDF(report);
#else
            RT.ResponsePDF(report, System.Web.HttpContext.Current.Response);
            //RT.ResponsePDF(report, page);
#endif
        }
Пример #9
0
        /// <summary>
        /// Generates the report.
        /// </summary>
        /// <returns>The report that was generated.</returns>
        public Report GenerateReport()
        {
            DateTime now            = DateTime.Now;
            Report   report         = new Report();
            FontDef  fontDefinition = new FontDef(report, "Helvetica");
            Page     pageOne        = CreatePage(report);
            Page     pageTwo        = CreatePage(report);
            double   verticalMillimeters;

            ReadStatistics();

            // Page one
            verticalMillimeters  = PageMarginMillimeters;
            verticalMillimeters += InsertTitle(fontDefinition, pageOne, verticalMillimeters) + SpacingMillimeters;
            verticalMillimeters += InsertReportDate(fontDefinition, pageOne, verticalMillimeters) + 2.0D * SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageOne, verticalMillimeters, "5-day Correctness Summary");
            verticalMillimeters += InsertFiveDaySummary(report, fontDefinition, pageOne, verticalMillimeters) + SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageOne, verticalMillimeters, "30-day Correctness Overview");
            verticalMillimeters += InsertBarChart(pageOne, verticalMillimeters) + SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageOne, verticalMillimeters, "Definitions");
            verticalMillimeters += InsertDefinitions(fontDefinition, pageOne, verticalMillimeters) + SpacingMillimeters;
            InsertFooter(fontDefinition, pageOne, now, 1);

            // Page two
            verticalMillimeters  = PageMarginMillimeters;
            verticalMillimeters += InsertReportDate(fontDefinition, pageTwo, verticalMillimeters) + SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageTwo, verticalMillimeters, "Data Correctness Breakdown");
            InsertDetailsList(report, fontDefinition, pageTwo, verticalMillimeters, now, 2);

            return(report);
        }
Пример #10
0
        //------------------------------------------------------------------------------------------20.03.2004
        /// <summary>Creates this report.</summary>
        /// <remarks>
        /// The method <see cref="Root.Reports.Report.Create"/> of class <see cref="Root.Reports.Report"/> must
        /// be overridden to create the contents of the report.
        /// </remarks>
        protected override void Create()
        {
            FontDef  fontDef  = new FontDef(this, FontDef.StandardFont.Helvetica);
            FontProp fontProp = new FontPropMM(fontDef, 20);

            new Page(this);
            page_Cur.AddCB_MM(120, new RepString(fontProp, "Start Template"));
        }
Пример #11
0
        // Inserts the report date onto the given page.
        private double InsertReportDate(FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            FontProp font = new FontProp(fontDefinition, 0.0D);

            font.rSizePoint = 14.0D;
            page.AddCB_MM(verticalMillimeters + font.rSizeMM, new RepString(font, m_reportDate.ToLongDateString()));
            return(font.rSizeMM);
        }
Пример #12
0
        private Double rPosBottom = 278; // millimeters

        //------------------------------------------------------------------------------------------31.10.2004
        /// <summary>Creates this report.</summary>
        /// <remarks>
        /// This method overrides the method <see cref="Root.Reports.Report.Create"/> of the base class <see cref="Root.Reports.Report"/>.
        /// </remarks>
        protected override void Create()
        {
            fd = new FontDef(this, FontDef.StandardFont.Helvetica);
            FontProp fp_Title = new FontPropMM(fd, 7.8);

            fp_Title.bBold = true;
            FontProp fp = new FontPropMM(fd, 2.1);

            fp.rLineFeedMM *= 0.85; // reduce line height by 15%
            FontProp fp_Bold = new FontPropMM(fd, 2.1);

            fp_Bold.rLineFeedMM *= 0.85;
            fp_Bold.bBold        = true;

            FlowLayoutManager flm = new FlowLayoutManager();

            flm.rContainerWidthMM  = rPosRight - rPosLeft;
            flm.rContainerHeightMM = rPosBottom - rPosTop;
            flm.eNewContainer     += new FlowLayoutManager.NewContainerEventHandler(Flm_NewContainer);

            // generate random text
            StringBuilder sb     = new StringBuilder(20000);
            Random        random = new Random(unchecked ((Int32)DateTime.Now.Ticks));

            for (Int32 iItem = 0; iItem < 2000; iItem++)
            {
                Int32 iLength = (Int32)Math.Sqrt(random.NextDouble() * 200) + 2;
                for (Int32 iWord = 0; iWord < iLength; iWord++)
                {
                    sb.Append((Char)(random.Next((Int32)'z' - (Int32)'a' + 1) + (Int32)'a'));
                }
                sb.Append(" ");
                Int32 iOp = random.Next(40);
                if (iOp == 0)
                {
                    flm.Add(new RepString(fp_Bold, sb.ToString())); // append random text with bold font
                    sb.Length = 0;
                }
                else if (iOp < 5)
                {
                    flm.Add(new RepString(fp, sb.ToString())); // append random text with normal font
                    sb.Length = 0;
                }
                if (iOp == 1)
                {
                    flm.NewLine(fp.rLineFeed * 1.5); // new line
                }
            }

            // print page number and current date/time
            Double rY = rPosBottom + 1.5;

            foreach (Page page in enum_Page)
            {
                page.AddLT_MM(rPosLeft, rY, new RepString(fp, DateTime.Now.ToShortDateString() + "  " + DateTime.Now.ToShortTimeString()));
                page.AddRT_MM(rPosRight, rY, new RepString(fp, page.iPageNo + " / " + iPageCount));
            }
        }
Пример #13
0
 //----------------------------------------------------------------------------------------------------x
 /// <summary>Starts the "Hello World" sample.</summary>
 public static void Main()
 {
     Report report = new Report(new PdfFormatter());
     FontDef fd = new FontDef(report, "Helvetica");
     FontProp fp = new FontPropMM(fd, 25);
     Page page = new Page(report);
     page.AddCenteredMM(80, new RepString(fp, "Hello World!"));
     RT.ViewPDF(report, "HelloWorld.pdf");
 }
Пример #14
0
 private void StampaHello()
 {
     FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
     FontProp fp = new FontPropMM(fd, 10);
     new Root.Reports.Page(this);
     page_Cur.AddCB_MM(80, new RepString(fp, "Hello World by Paolo Misson"));
     fp.rSizeMM = 7;
     page_Cur.AddCB_MM(120, new RepString(fp, DateTime.Now.ToString("g")));
 }
Пример #15
0
 public BaseTemplate()
 {
     report = new Report(new PdfFormatter());
     FontDef fd = new FontDef(report, "Helvetica");
     standardFont = new FontPropMM(fd, 5);
     page = new Root.Reports.Page(report);
     setHeader();
     setFooter();
 }
Пример #16
0
        // Inserts the page footer onto the given page, which includes the time of report generation as well as the page number.
        private double InsertFooter(FontDef fontDefinition, Page page, DateTime now, int pageNumber)
        {
            FontProp font = new FontProp(fontDefinition, 0.0D);

            font.rSizePoint = 12.0D;
            page.AddMM(PageMarginMillimeters, PageHeightMillimeters - PageMarginMillimeters, new RepString(font, now.ToShortDateString() + " " + now.ToShortTimeString()));
            page.AddMM(PageWidthMillimeters - PageMarginMillimeters - font.rGetTextWidthMM(pageNumber.ToString()), PageHeightMillimeters - PageMarginMillimeters, new RepString(font, pageNumber.ToString()));
            return(font.rSizeMM);
        }
Пример #17
0
        // Inserts the given text as a section header (16-pt, bold).
        private double InsertSectionHeader(FontDef fontDefinition, Page page, double verticalMillimeters, string text)
        {
            FontProp font = new FontProp(fontDefinition, 0.0D);

            font.rSizePoint = 16.0D;
            font.bBold      = true;
            page.AddCB_MM(verticalMillimeters + font.rSizeMM, new RepString(font, text));
            return(2.0D * font.rSizeMM);
        }
Пример #18
0
        public Test()
        {
            fontDef              = FontDef.fontDef_FromName(this, FontDef.StandardFont.Helvetica);
            fontProp_Title       = new FontPropMM(fontDef, 6);
            fontProp_Title.bBold = true;
            fontProp_Label       = new FontPropMM(fontDef, 4);

            penProp_Symbol       = new PenProp(this, 1);
            penProp_Symbol.color = Color.Red;
            penProp_Line         = new PenProp(this, 1);
        }
Пример #19
0
    private void InitInput()
    {
        FontDef fontDef = FontTable.Get().GetFontDef(this.m_InputFont);

        if (fontDef == null)
        {
            this.m_localizedInputFont = this.m_InputFont;
        }
        else
        {
            this.m_localizedInputFont = fontDef.m_Font;
        }
    }
Пример #20
0
		public cReport(Report objRpt,Root.Reports.Page objRptPage)
		{
			rpt = objRpt;
			rptPage= objRptPage;
			try
			{
				fd = new FontDef(rpt, FontDef.StandardFont.Helvetica);
			}
			catch
			{
			
			}
		}
Пример #21
0
        public AllBreakersReport(DateTime startTime, DateTime endTime)
        {
            StartTime      = startTime;
            EndTime        = endTime;
            FontDefinition = new FontDef(this, FontDef.StandardFont.Helvetica);

            using (AdoDataConnection connection = new AdoDataConnection("systemSettings")) {
#if DEBUG
                DataTable = connection.RetrieveData(testQuery, startTime, endTime);
#else
                DataTable = connection.RetrieveData(query, startTime, endTime);
#endif
            }
        }
Пример #22
0
        public IndividualBreakerReport(string breakerId, DateTime startTime, DateTime endTime)
        {
            StartTime      = startTime;
            EndTime        = endTime;
            BreakerID      = breakerId;
            FontDefinition = new FontDef(this, "Helvetica");

            using (AdoDataConnection connection = new AdoDataConnection("systemSettings")) {
#if DEBUG
                TimingDataTable = connection.RetrieveData(testTimingQuery, breakerId, startTime, endTime);
#else
                TimingDataTable = connection.RetrieveData(timingQuery, breakerId, startTime, endTime);
#endif

                TimingPoints = TimingDataTable.Select().Select(x => {
                    double r;
                    bool s = double.TryParse(x["BreakerTiming"].ToString(), out r);
                    return(new Point {
                        Time = DateTime.Parse(x["Time"].ToString()), Value = (s ? (double?)r : null)
                    });
                }).OrderBy(x => x.Time).ToList();

                MaxCurrentPoints = TimingDataTable.Select().Select(x => {
                    double r;
                    bool s = double.TryParse(x["MaxCurrent"].ToString(), out r);
                    return(new Point {
                        Time = DateTime.Parse(x["Time"].ToString()), Value = (s ? (double?)r : null)
                    });
                }).OrderBy(x => x.Time).ToList();


#if DEBUG
                InfoDataTable = connection.RetrieveData(testInfoQuery, breakerId, startTime, endTime);
#else
                InfoDataTable = connection.RetrieveData(infoQuery, breakerId, startTime, endTime);
#endif

                double result;
                bool   success = double.TryParse(InfoDataTable.Select().FirstOrDefault()?["Breaker Mfr Speed"].ToString(), out result);
                Speed = (success ? (double?)result : null);

                success        = double.TryParse(InfoDataTable.Select().FirstOrDefault()?["Speed Bandwidth"].ToString(), out result);
                SpeedBandwidth = (success ? (double?)result : null);

                success = double.TryParse(InfoDataTable.Select().FirstOrDefault()?["Interrupt Current Rating (A)"].ToString(), out result);
                InterruptCurrentRating = (success ? (double?)result : null);
            }
        }
Пример #23
0
        public void PDFOutput(string path = PATH)
        {
            var subjects = UploadFile(path);

            Report   report = new Report(new PdfFormatter());
            FontDef  fd     = new FontDef(report, "Helvetica");
            FontProp fp     = new FontPropMM(fd, 5);
            Page     page   = new Page(report);
            int      row    = 40;

            foreach (var subj in subjects)
            {
                page.AddCenteredMM(row += 10, new RepString(fp, subj.ToString()));
            }
            report.Save("Marks.pdf");
        }
Пример #24
0
        public JournalReport(Journal j)
        {
            this.j                 = j;
            fd                     = new FontDef(this, FontDef.StandardFont.Helvetica);
            fp                     = new FontPropMM(fd, 2.1);
            fp_Bold                = new FontPropMM(fd, 2.1, System.Drawing.Color.Blue);
            fp_Bold.bBold          = true;
            fp_Header              = new FontPropMM(fd, 2.6);
            flm                    = new FlowLayoutManager();
            flm.rContainerWidthMM  = rPosRight - rPosLeft;
            flm.rContainerHeightMM = rPosBottom - rPosTop;
            flm.eNewContainer     += new FlowLayoutManager.NewContainerEventHandler(Flm_NewContainer);

            userIcon      = GetType().Assembly.GetManifestResourceStream("EF.ljArchive.PDF.res.userinfo.jpg");
            communityIcon = GetType().Assembly.GetManifestResourceStream("EF.ljArchive.PDF.res.community.jpg");
        }
    private Font GetLocalizedFont(Font font)
    {
        FontTable table = FontTable.Get();

        if (table == null)
        {
            Debug.LogError("UberTextMgr: Error loading FontTable");
            return(null);
        }
        FontDef fontDef = table.GetFontDef(font);

        if (fontDef == null)
        {
            Debug.LogError("UberTextMgr: Error loading fontDef for: " + font.name);
            return(null);
        }
        return(fontDef.m_Font);
    }
Пример #26
0
        public bool GravarPDFContrato(long contrato)
        {
            string vArq = @"C:\temp\" + contrato + ".pdf";


            Report vPdf = new Report(new PdfFormatter());
            //FontDef vDef = new FontDef(vPdf, FontDef.StandardFont.TimesRoman);
            Page     vPage = new Page(vPdf);
            FontDef  vDef  = new FontDef(vPdf, FontDef.StandardFont.TimesRoman);
            FontProp vDrop = new FontProp(vDef, 10);



            vPage.AddCB_MM(5, new RepString(vDrop, "Teste de criação pdf")); // Centraliza
            vPdf.Save(vArq);

            return(true);
        }
Пример #27
0
        //----------------------------------------------------------------------------------------------------x
        /// <summary>Creates this report</summary>
        protected override void Create()
        {
            FontDef  fd       = new FontDef(this, FontDef.StandardFont.Helvetica);
            FontProp fp       = new FontPropMM(fd, 4);
            FontProp fp_Title = new FontPropMM(fd, 11);

            fp_Title.bBold = true;

            Page page = new Page(this);

            page.AddCB_MM(40, new RepString(fp_Title, "PDF Properties Sample"));
            fp_Title.rSizeMM = 8;
            page.AddCB_MM(100, new RepString(fp_Title, "First Page"));
            page.AddCB_MM(120, new RepString(fp, "Choose <Document Properties, Summary> from the"));
            page.AddCB_MM(126, new RepString(fp, "File menu to display the document properties"));

            page = new Page(this);
            page.AddCB_MM(100, new RepString(fp_Title, "Second Page"));
        }
Пример #28
0
        // Inserts the title and company text on the given page.
        private double InsertTitle(FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            FontProp titleFont   = new FontProp(fontDefinition, 0.0D);
            FontProp companyFont = new FontProp(fontDefinition, 0.0D);

            titleFont.rSizePoint   = 20.0D;
            companyFont.rSizePoint = 14.0D;
            titleFont.bBold        = true;
            companyFont.bBold      = true;

            // Title
            page.AddCB_MM(verticalMillimeters + titleFont.rSizeMM, new RepString(titleFont, m_titleText));
            verticalMillimeters += 1.5D * titleFont.rSizeMM;

            // Company
            page.AddCB_MM(verticalMillimeters + companyFont.rSizeMM, new RepString(companyFont, m_companyText));

            return((1.5D * titleFont.rSizeMM) + companyFont.rSizeMM);
        }
Пример #29
0
 public BaseTemplate()
 {
     report = new Report(new PdfFormatter());
     FontDef fd = new FontDef(report, "Helvetica");
     standardFont = new FontPropMM(fd, 5);
     page = new Root.Reports.Page(report);
     FontDef fss = new FontDef(report, "Arial");
     arialFont = new FontPropMM(fss, 6);
     flm = new FlowLayoutManager(null);
     flm2 = new FlowLayoutManager(null);
     flm.rContainerHeightMM = 120;
     flm2.rContainerHeightMM = 120;
     flm.rContainerWidthMM = 95;
     flm2.rContainerWidthMM = 95;
     flm.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(LeftContainer);
     flm2.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(RightContainer);
     setHeader();
     setFooter();
 }
Пример #30
0
        private string[] AllocateOneColumn(ref bool barCodesExist, ref bool hasDateOrCount, Column col)
        {
            // Stack up the requests if 2 or more items
            if (col.Item.Length > 1)
            {
                p.SetAttribute(ccIDX.Start_Stop_Management_Flag, 1);
            }

            // Step thru the items in a column bottom-to-top
            string[] sp = new string[col.Item.Length];
            for (int r = col.Item.GetUpperBound(0); r >= col.Item.GetLowerBound(0); r--)
            {
                Item    item = col.Item[r];
                FontDef font = item.Font;

                // Create a block write for ILS, Font, ICS, Bolding, and Barcode
                // Line spacing must be set to 0 if only one item in column
                // Cannot set barcode until text is written
                Section <ccPF> sect = new Section <ccPF>(p, ccPF.Line_Spacing, ccPF.Barcode_Type, r, false);
                {
                    sect.SetAttribute(ccPF.Line_Spacing, r, col.Item.Length == 1 ? 0 : col.InterLineSpacing);
                    sect.SetAttribute(ccPF.Dot_Matrix, r, font.DotMatrix);
                    sect.SetAttribute(ccPF.InterCharacter_Space, r, font.InterCharacterSpace);
                    sect.SetAttribute(ccPF.Character_Bold, r, font.IncreasedWidth);
                    sect.SetAttribute(ccPF.Barcode_Type, r, 0);
                    sect.WriteSection();
                }

                // Convert string to Hitachi Attributed characters
                sp[r]           = UTF8Hitachi.HandleBraces(item.Text);
                barCodesExist  |= item.BarCode != null;
                hasDateOrCount |= item.Date != null | item.Counter != null;
            }

            // Now set them all at once if 2 or more items
            if (col.Item.Length > 1)
            {
                p.SetAttribute(ccIDX.Start_Stop_Management_Flag, 2);
            }
            return(sp);
        }
Пример #31
0
 public BaseTemplate()
 {
     report = new Report(new PdfFormatter());
     FontDef fd = new FontDef(report, "Helvetica");
     standardFont = new FontPropMM(fd, 5);
     page = new Root.Reports.Page(report);
     FontDef fss = new FontDef(report, "Arial");
     arialFont = new FontPropMM(fss, 6);
     flm = new FlowLayoutManager(null);
     flm2 = new FlowLayoutManager(null);
     flm.rContainerHeightMM = 120;
     flm2.rContainerHeightMM = 120;
     flm.rContainerWidthMM = 95;
     flm2.rContainerWidthMM = 95;
     flm.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(LeftContainer);
     flm2.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(RightContainer);
     //str = "C:\\Documents and Settings\\Administrador\\Escritorio\\asp-workspace\\MAPA_FVSL\\PDFExport\\PDFExport\\Images\\";
     str = "D:\\WORK\\mapsvsl\\asp-workspace\\MAPA_FVSL\\PDFExport\\PDFExport\\Images\\";
     setHeader();
     setFooter();
 }
Пример #32
0
        // Inserts the five-day summary table on the given page.
        private double InsertFiveDaySummary(Report report, FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            const double TableHeightMillimeters = 40.0D;
            const double ColumnPadding = 5.0D;
            const double RowPadding = 2.0D;
            const int RowCount = 7;

            List<DeviceStats>[] levels;
            string[] levelAliases;
            double horizontalMillimeters;
            double tableWidthMillimeters;
            double rowHeightMillimeters;

            string[] labelText;
            FontProp[] labelFonts;
            double labelsWidthMillimeters;

            string[] dayOneText;
            FontProp[] dayOneFonts;
            double dayOneWidthMillimeters;

            string[] dayTwoText;
            FontProp[] dayTwoFonts;
            double dayTwoWidthMillimeters;

            string[] dayThreeText;
            FontProp[] dayThreeFonts;
            double dayThreeWidthMillimeters;

            string[] dayFourText;
            FontProp[] dayFourFonts;
            double dayFourWidthMillimeters;

            string[] dayFiveText;
            FontProp[] dayFiveFonts;
            double dayFiveWidthMillimeters;

            // Get level data and level aliases
            levels = GetLevels(ReportDays - 4);
            levelAliases = GetLevelAliases();

            // Determine the height of each row in the table
            rowHeightMillimeters = (TableHeightMillimeters - ((RowCount - 1) * RowPadding)) / RowCount;

            // Get the text for the labels in the first column of the table
            labelText = new string[] { "" }
                .Concat(Enumerable.Range(0, 5).Select(level => string.Format("L{0}: {1}", level, levelAliases[level])).Reverse())
                .Concat(new string[] { "Total" })
                .ToArray();

            labelFonts = labelText
                .Select(text =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = true;
                    return font;
                })
                .ToArray();

            labelsWidthMillimeters = labelText
                .Zip(labelFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the device counts in the second column of the table
            dayOneText = new string[] { (m_reportDate - TimeSpan.FromDays(4.0D)).ToString("MM/dd") }
                .Concat(levels.Select(level => level.Count.ToString()).Reverse())
                .Concat(new string[] { levels.Sum(level => level.Count).ToString() })
                .ToArray();

            dayOneFonts = dayOneText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayOneWidthMillimeters = dayOneText
                .Zip(dayOneFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the device counts in the third column of the table
            levels = GetLevels(ReportDays - 3);

            dayTwoText = new string[] { (m_reportDate - TimeSpan.FromDays(3.0D)).ToString("MM/dd") }
                .Concat(levels.Select(level => level.Count.ToString()).Reverse())
                .Concat(new string[] { levels.Sum(level => level.Count).ToString() })
                .ToArray();

            dayTwoFonts = dayTwoText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayTwoWidthMillimeters = dayTwoText
                .Zip(dayTwoFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the device counts in the fourth column of the table
            levels = GetLevels(ReportDays - 2);

            dayThreeText = new string[] { (m_reportDate - TimeSpan.FromDays(2.0D)).ToString("MM/dd") }
                .Concat(levels.Select(level => level.Count.ToString()).Reverse())
                .Concat(new string[] { levels.Sum(level => level.Count).ToString() })
                .ToArray();

            dayThreeFonts = dayThreeText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayThreeWidthMillimeters = dayThreeText
                .Zip(dayThreeFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the device counts in the fifth column of the table
            levels = GetLevels(ReportDays - 1);

            dayFourText = new string[] { (m_reportDate - TimeSpan.FromDays(1.0D)).ToString("MM/dd") }
                .Concat(levels.Select(level => level.Count.ToString()).Reverse())
                .Concat(new string[] { levels.Sum(level => level.Count).ToString() })
                .ToArray();

            dayFourFonts = dayFourText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayFourWidthMillimeters = dayFourText
                .Zip(dayFourFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the device counts in the sixth column of the table
            levels = GetLevels(ReportDays);

            dayFiveText = new string[] { (m_reportDate).ToString("MM/dd") }
                .Concat(levels.Select(level => level.Count.ToString()).Reverse())
                .Concat(new string[] { levels.Sum(level => level.Count).ToString() })
                .ToArray();

            dayFiveFonts = dayFiveText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayFiveWidthMillimeters = dayFiveText
                .Zip(dayFiveFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Determine the full width of the table
            tableWidthMillimeters = labelsWidthMillimeters + ColumnPadding
                + dayOneWidthMillimeters + ColumnPadding
                + dayTwoWidthMillimeters + ColumnPadding
                + dayThreeWidthMillimeters + ColumnPadding
                + dayFourWidthMillimeters + ColumnPadding
                + dayFiveWidthMillimeters;

            // Add the table to the page
            for (int i = 0; i < labelText.Length; i++)
            {
                horizontalMillimeters = (PageWidthMillimeters - tableWidthMillimeters) / 2;

                page.AddMM(horizontalMillimeters, verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(labelFonts[i], labelText[i]));
                horizontalMillimeters += labelsWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayOneWidthMillimeters - dayOneFonts[i].rGetTextWidthMM(dayOneText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayOneFonts[i], dayOneText[i]));
                horizontalMillimeters += dayOneWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayTwoWidthMillimeters - dayTwoFonts[i].rGetTextWidthMM(dayTwoText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayTwoFonts[i], dayTwoText[i]));
                horizontalMillimeters += dayTwoWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayThreeWidthMillimeters - dayThreeFonts[i].rGetTextWidthMM(dayThreeText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayThreeFonts[i], dayThreeText[i]));
                horizontalMillimeters += dayThreeWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayFourWidthMillimeters - dayFourFonts[i].rGetTextWidthMM(dayFourText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayFourFonts[i], dayFourText[i]));
                horizontalMillimeters += dayFourWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayFiveWidthMillimeters - dayFiveFonts[i].rGetTextWidthMM(dayFiveText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayFiveFonts[i], dayFiveText[i]));
                verticalMillimeters += rowHeightMillimeters + RowPadding;
            }

            page.AddMM((PageWidthMillimeters - tableWidthMillimeters) / 2, verticalMillimeters - rowHeightMillimeters - (1.5D * RowPadding), new RepRectMM(new BrushProp(report, Color.Black), labelsWidthMillimeters + ColumnPadding + dayOneWidthMillimeters + ColumnPadding + dayTwoWidthMillimeters + ColumnPadding + dayThreeWidthMillimeters + ColumnPadding + dayFourWidthMillimeters + ColumnPadding + dayFiveWidthMillimeters, 0.1D));

            return TableHeightMillimeters;
        }
Пример #33
0
    private string crearPdf(
        string APPID,
        string PIN,
        string IMSI,
        string ZONA,
        string CAMPAÑA,
        string IDPAIS,
        string IDOTRASMARCAS,
        string IDNIVELEDUCATIVO,
        string IDESTADOCIVIL,
        string IDTIPOCONTACTO,
        string IDTIPODOCUMENTO,
        string CODIGOTERRITORIO,
        string CODIGOCONSULTORARECOMIENDA,
        string APELLIDOPATERNO,
        string APELLIDOMATERNO,
        string PRIMERNOMBRE,
        string SEGUNDONOMBRE,
        string FECHANACIMIENTO,
        string NRODOCUMENTO,
        string RECORD_LONG,
        string RECORD_LAT,
        string MARGEN,
        string satelites,
        string VERIFICADO,
        string TIPOACCION,
        string TELEFONOCASA,
        string TELEFONOCELULAR,
        string CORREOELEC,
        string NOTIENECORREO,
        string SOLICITANTE_DIRECCION,
        string SOLICITANTE_REFERENCIA,
        string SOLICITANTE_CPOSTAL,
        string SOLICITANTE_PUEBLO,
        string SOLICITANTE_ESTADO,
        string SOLICITANTE_MUNICIPIO,
        string SOLICITANTE_CIUDAD,
        string SOLICITANTE_PROVINCIA,
        string REFFAM_NOMBRES,
        string REFFAM_APELLIDOPATERNO,
        string REFFAM_APELLIDOMATERNO,
        string REFFAM_DIRECCION,
        string REFFAM_TELEFONO,
        string REFFAM_CELULAR,
        string REFFAM_IDTIPOVINCULO,
        string REFNOFAM_NOMBRES,
        string REFNOFAM_APELLIDOPATERNO,
        string REFNOFAM_APELLIDOMATERNO,
        string REFNOFAM_DIRECCION,
        string REFNOFAM_TELEFONO,
        string REFNOFAM_CELULAR,
        string REFNOFAM_IDTIPOVINCULO,
        string ENTREGA_DIRECCION,
        string ENTREGA_PUEBLO,
        string ENTREGA_CPOSTAL,
        string ENTREGA_REFERENCIA,
        string RECORD_IMSI,
        string RECORD_PIN,
        string RECORD_OBSERVACION,
        string RECORD_FECHAVISITA
        )
    {
        int m = 30;//margen
        Report report = new Report(new PdfFormatter());
        FontDef fd = new FontDef(report, "Helvetica");
        FontProp fp1 = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        FontProp fp2 = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        fp2.bBold = true;
        FontProp fp_Title = new FontPropMM(fd, 4);
        Root.Reports.Page page = new Root.Reports.Page(report);
        fp_Title.bBold = true;
        Double rX = 60;
        Double rY = 20;
        Double rYTemp, rYContinue;
        Double rYcopy = rY;
        //centrado al medio del dpdf
        page.AddCB_MM(10, new RepString(fp_Title, "Solicitud de Credito"));
        rY += fp_Title.rLineFeedMM;

        page.AddMM(rX, rY, new RepString(fp1, "Código territorial:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, CODIGOTERRITORIO));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Año:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, "falta año")); //falta de donde sacar año
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "CAMP."));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, CAMPAÑA));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Código consultora que recomienda:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, CODIGOCONSULTORARECOMIENDA));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Consultora que recomienda :"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, "falta nombre consultora")); //falta obtener nombre consultora recomienda
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Selección Premio:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, "falta sacar premio")); //falta de donde sacar premio
        // rY += fp.rLineFeedMM;

        rX = 20;
        rY += 10;
        rYTemp = rY;
        page.AddMM(rX, rY, new RepString(fp1, "Primer Apellido:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, APELLIDOPATERNO));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Primer Nombre:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, PRIMERNOMBRE));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Fecha nacimiento:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, FECHANACIMIENTO));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Estado civil:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, IDESTADOCIVIL));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Nivel Educativo :"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, IDNIVELEDUCATIVO));
        rY += fp1.rLineFeedMM;
        //page.AddMM(rX, rY, new RepString(fp, "Selección Premio:"));
        //page.AddRightMM(rX + 80, rY, new RepInt32(fp, 0, "$#;($#);Zero"));
        //rYContinue = rY;

        rX += 90;
        rY = rYTemp;
        page.AddMM(rX, rY, new RepString(fp1, "Segundo apellido:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, APELLIDOMATERNO));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Segundo Nombre:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, SEGUNDONOMBRE));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Doc de identidad:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, IDTIPODOCUMENTO));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Número:"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, NRODOCUMENTO));
        rY += fp1.rLineFeedMM;
        page.AddMM(rX, rY, new RepString(fp1, "Vendes otras Marcas :"));
        page.AddRightMM(rX + 80, rY, new RepString(fp2, IDOTRASMARCAS));
        rY += fp1.rLineFeedMM;
        //page.AddMM(rX, rY, new RepString(fp, "Selección Premio:"));
        //page.AddRightMM(rX + 80, rY, new RepInt32(fp, 0, "$#;($#);Zero"));

        string archivo = "sc" + DateTime.Now.Second + DateTime.Now.Millisecond;
        report.Save(@"C:\Bcaribe\" + archivo + ".pdf");

        return archivo;
        // RT.ViewPDF(report, "MiInforme.pdf");
    }
        //------------------------------------------------------------------------------------------30.10.2004
        /// <summary>Creates this report.</summary>
        /// <remarks>
        /// This method overrides the method <see cref="Root.Reports.Report.Create"/> of the base class <see cref="Root.Reports.Report"/>.
        /// </remarks>
        protected override void Create()
        {
            fontDef_Helvetica = new FontDef(this, FontDef.StandardFont.TimesRoman);
            FontProp fontProp_Text = new FontPropMM(fontDef_Helvetica, 1.9);  // standard font
            FontProp fontProp_Header = new FontPropMM(fontDef_Helvetica, 1.9);  // font of the table header
            fontProp_Header.bBold = true;

            // create table
            TableLayoutManager tlm;
            using (tlm = new TableLayoutManager(fontProp_Header))
            {
                tlm.rContainerHeightMM = rPosBottom - rPosTop;  // set height of table
                tlm.tlmCellDef_Header.rAlignV = RepObj.rAlignCenter;  // set vertical alignment of all header cells
                tlm.tlmCellDef_Default.penProp_LineBottom = new PenProp(this, 0.05, Color.LightGray);  // set bottom line for all cells
                tlm.tlmHeightMode = TlmHeightMode.AdjustLast;
                tlm.eNewContainer += new TableLayoutManager.NewContainerEventHandler(Tlm_NewContainer);

                // define columns
                TlmColumn col;
                

                col = new TlmColumnMM(tlm, "Assistido", 50);
                col.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine;

                col = new TlmColumnMM(tlm, "Dt. Nascimento", 24);

                col = new TlmColumnMM(tlm, "Dt. Entrada", 20);

                col = new TlmColumnMM(tlm, "Dt. Saída", 20);

                col = new TlmColumnMM(tlm, "Estado Saúde", 22);

                col = new TlmColumnMM(tlm, "Status", 26);

                col = new TlmColumnMM(tlm, "Ativo", 15);

                System.Collections.Generic.List<Assistido> listaAssistido = (System.Collections.Generic.List<Assistido>)RelatorioDTO.DadosRelatorio;
                foreach (Assistido assistido in listaAssistido)
                {
                    tlm.NewRow();
                    tlm.Add(0, new RepString(fontProp_Text, assistido.Nome));

                    if (assistido.DataNascimento.HasValue) tlm.Add(1, new RepString(fontProp_Text, assistido.DataNascimento.Value.ToString("dd/MM/yyyy")));
                    else tlm.Add(1, new RepString(fontProp_Text, ""));
                    
                    tlm.Add(2, new RepString(fontProp_Text, assistido.DataEntrada.Value.ToString("dd/MM/yyyy")));

                    if (assistido.DataSaida.HasValue) tlm.Add(3, new RepString(fontProp_Text, assistido.DataSaida.Value.ToString("dd/MM/yyyy")));
                    else tlm.Add(3, new RepString(fontProp_Text, ""));
                    
                    tlm.Add(4, new RepString(fontProp_Text, assistido.EstadoSaude));

                    tlm.Add(5, new RepString(fontProp_Text, assistido.StatusAssistido));

                    tlm.Add(6, new RepString(fontProp_Text, assistido.AssistidoAtivo));
                }
            }
            //page_Cur.AddCT_MM(rPosLeft + tlm.rWidthMM / 2, rPosTop + tlm.rCurY_MM + 2, new RepString(fontProp_Text, "- end of table -"));

            // print page number and current date/time
            Double rY = rPosBottom + 1.5;
            foreach (Page page in enum_Page)
            {
                page.AddLT_MM(rPosLeft, rY, new RepString(fontProp_Text, DateTime.Now.ToShortDateString() + "  " + DateTime.Now.ToShortTimeString()));
                page.AddRT_MM(rPosRight, rY, new RepString(fontProp_Text, page.iPageNo + " / " + iPageCount));
            }
        }
Пример #35
0
        // Insert the list of definitions on the given page.
        private double InsertDefinitions(FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            const double FontSize = 8.0D;
            const double FooterWidthMillimeters = 6.5D * 25.4D;

            FontProp font = new FontProp(fontDefinition, 0.0D);
            StringBuilder builder;
            int lengthWithoutWord;
            double lineHeightMillimeters;

            string definitionsText = "Good: Measurements received which are neither latched nor unreasonable." + Environment.NewLine +
                                     "Latched: Measurements received which have maintained the same value for an extended period of time." + Environment.NewLine +
                                     "Unreasonable: Measurements received whose values have fallen outside of the range defined by reasonability constraints." + Environment.NewLine +
                                     "Correctness: Percentage of good measurements over total measurements expected, per device.";

            // Break the definitions text into lines
            string[] lines = definitionsText.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

            // Set font size and line spacing
            font.rSizePoint = FontSize;
            lineHeightMillimeters = 1.5D * font.rSizeMM;

            foreach (string line in lines)
            {
                // String builder will be used to determine if the line is too wide to fit
                // on the page, and to break the line into multiple lines if necessary
                builder = new StringBuilder();

                // Break the line into words
                foreach (string word in line.Split())
                {
                    // Store the length of the line without an additional word so we can restore
                    // the original line if the additional word makes the line too long to fit
                    lengthWithoutWord = builder.Length;

                    // Add white space if this is not the first word in the line
                    if (builder.Length > 0)
                        builder.Append(' ');

                    // Add the word to the line
                    builder.Append(word);

                    // If the line is too long, put the original line onto the page and
                    // trim the string builder down to only the word we just added
                    if (font.rGetTextWidthMM(builder.ToString()) > FooterWidthMillimeters)
                    {
                        page.AddMM(PageMarginMillimeters, verticalMillimeters + font.rSizeMM, new RepString(font, builder.ToString(0, lengthWithoutWord)));
                        builder.Remove(0, lengthWithoutWord);
                        builder.Insert(0, "             ");
                        verticalMillimeters += lineHeightMillimeters;
                    }
                }
                
                // Add the remainder of the line to the page.
                page.AddMM(PageMarginMillimeters, verticalMillimeters + font.rSizeMM, new RepString(font, builder.ToString()));
                verticalMillimeters += 1.5D * lineHeightMillimeters;
            }

            return 0.0D;
        }
Пример #36
0
        // Inserts the title and company text on the given page.
        private double InsertTitle(FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            FontProp titleFont = new FontProp(fontDefinition, 0.0D);
            FontProp companyFont = new FontProp(fontDefinition, 0.0D);

            titleFont.rSizePoint = 20.0D;
            companyFont.rSizePoint = 14.0D;
            titleFont.bBold = true;
            companyFont.bBold = true;

            // Title
            page.AddCB_MM(verticalMillimeters + titleFont.rSizeMM, new RepString(titleFont, m_titleText));
            verticalMillimeters += 1.5D * titleFont.rSizeMM;

            // Company
            page.AddCB_MM(verticalMillimeters + companyFont.rSizeMM, new RepString(companyFont, m_companyText));

            return (1.5D * titleFont.rSizeMM) + companyFont.rSizeMM;
        }
Пример #37
0
 // Inserts the given text as a section header (16-pt, bold).
 private double InsertSectionHeader(FontDef fontDefinition, Page page, double verticalMillimeters, string text)
 {
     FontProp font = new FontProp(fontDefinition, 0.0D);
     font.rSizePoint = 16.0D;
     font.bBold = true;
     page.AddCB_MM(verticalMillimeters + font.rSizeMM, new RepString(font, text));
     return 2.0D * font.rSizeMM;
 }
Пример #38
0
        /// <summary>
        /// Generates the report.
        /// </summary>
        /// <returns>The report that was generated.</returns>
        public Report GenerateReport()
        {
            DateTime now = DateTime.Now;
            Report report = new Report();
            FontDef fontDefinition = new FontDef(report, "Helvetica");
            Page pageOne = CreatePage(report);
            Page pageTwo = CreatePage(report);
            double verticalMillimeters;

            ReadStatistics();

            // Page one
            verticalMillimeters = PageMarginMillimeters;
            verticalMillimeters += InsertTitle(fontDefinition, pageOne, verticalMillimeters) + SpacingMillimeters;
            verticalMillimeters += InsertReportDate(fontDefinition, pageOne, verticalMillimeters) + 2.0D * SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageOne, verticalMillimeters, "5-day Correctness Summary");
            verticalMillimeters += InsertFiveDaySummary(report, fontDefinition, pageOne, verticalMillimeters) + SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageOne, verticalMillimeters, "30-day Correctness Overview");
            verticalMillimeters += InsertBarChart(pageOne, verticalMillimeters) + SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageOne, verticalMillimeters, "Definitions");
            verticalMillimeters += InsertDefinitions(fontDefinition, pageOne, verticalMillimeters) + SpacingMillimeters;
            InsertFooter(fontDefinition, pageOne, now, 1);

            // Page two
            verticalMillimeters = PageMarginMillimeters;
            verticalMillimeters += InsertReportDate(fontDefinition, pageTwo, verticalMillimeters) + SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageTwo, verticalMillimeters, "Data Correctness Breakdown");
            InsertDetailsList(report, fontDefinition, pageTwo, verticalMillimeters, now, 2);

            return report;
        }
Пример #39
0
        private void btnEmitir_Click(object sender, EventArgs e)
        {
            if (((cmbTipPlan.Enabled == true && (cmbTipPlan.FindStringExact(cmbTipPlan.Text) < 0 || cmbPlan.FindStringExact(cmbPlan.Text) < 0 || cmbDias.FindStringExact(cmbDias.Text) < 0))))
            {
                MessageBox.Show("Dados selecionados inválidos , selecione somente os itens da lista");
                return;
            }


            if (checkBoxX1.Checked == false)
            {
                MessageBox.Show("Confirme que seus dados pessoais estão atualizados, caso contrário atualize");
                return;
            }


            else if (cmbTipPlan.Text == "")
            {
                MessageBox.Show("Complete o campo de Tipo de Plano");
                return;
            }
            else if (cmbPlan.Text == "")
            {
                MessageBox.Show("Complete o campo de Planos");
                return;
            }
            else if (cmbDias.Text == "")
            {
                MessageBox.Show("Complete o campo de Dias");
                return;
            }
            else if (integerInput1.Text == "0" || integerInput1.Text.Trim() == "")
            {
                MessageBox.Show("Complete o campo de Quantidade");
                return;
            }
            else if (dateTimeInput1.Text.Trim() == "")
            {
                MessageBox.Show("Complete a data de inicio");
                return;
            }

            //  MessageBox.Show(cmbTipPlan.Text);
            //   MessageBox.Show((completarplan.selecionar_planos_voucher(cmbPlan.Text, cmbTipPlan.Text).Rows[0]["PlanCod"].ToString()));

            ///  voucher.inserir_voucher_cli(int.Parse(cliente.selecionar_cliente(Variaveis.login).Rows[0]["CliCod"].ToString()), int.Parse(completarplan.selecionar_planos(cmbPlan.Text, cmbTipPlan.Text).Rows[0]["PlanCod"].ToString()), cmbDias.Text, integerInput1.Value, dateTimeInput1.Value.ToString("yyyy-MM-dd"), checkBoxX1.Checked, ((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))), (int.Parse(integerInput1.Text) * valor));

            string vArq = "";

            valor = Convert.ToDecimal(cmbDias.SelectedValue);
            //FolderBrowserDialog vSalvar = new FolderBrowserDialog();
            SaveFileDialog savedialog = new SaveFileDialog();

            //if (vSalvar.ShowDialog() == DialogResult.Cancel)
            //    return;
            savedialog.FileName = "";
            savedialog.Filter   = "Pdf Files|*.pdf";
            if (savedialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            vArq = savedialog.FileName;
            //+ "\\" + "Emissão de seguro" +

            if (Variaveis.modacesso == "Cliente")
            {
                try
                {
                    DataRow dados;
                    dados = cliente.selecionar_cliente(Variaveis.login).Rows[0];
                    Report   vPdf  = new Report(new PdfFormatter());
                    FontDef  vDef  = new FontDef(vPdf, FontDef.StandardFont.TimesRoman);
                    FontProp vDrop = new FontProp(vDef, 10);
                    Page     vPage = new Page(vPdf);
                    vPage.AddCB_MM(15, new RepString(vDrop, "COMPROVANTE DE EMIÇÃO DE VOUCHER"));
                    vPage.Add(0, 60, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(5, 70, new RepString(vDrop, "Informações Pessoais"));
                    vPage.Add(0, 80, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(40, 100, new RepString(vDrop, "Nome: " + dados["CliNome"].ToString()));
                    vPage.Add(40, 120, new RepString(vDrop, "CPF: " + dados["CliCpf"].ToString()));
                    vPage.Add(40, 140, new RepString(vDrop, "RG: " + dados["CliRg"].ToString()));
                    vPage.Add(40, 160, new RepString(vDrop, "CEP: " + dados["CliCep"].ToString().PadLeft(8, '0')));
                    vPage.Add(40, 180, new RepString(vDrop, "Endereço: " + dados["CliEnd"].ToString()));
                    vPage.Add(40, 200, new RepString(vDrop, "Número do endereço:" + dados["CliEndNro"].ToString()));
                    vPage.Add(40, 220, new RepString(vDrop, "Bairro:" + dados["CliBairro"].ToString()));
                    vPage.Add(40, 240, new RepString(vDrop, "Cidade: " + dados["CliCid"].ToString()));
                    vPage.Add(40, 260, new RepString(vDrop, "Estado: " + dados["CliEst"].ToString()));
                    vPage.Add(40, 280, new RepString(vDrop, "Telefone: " + dados["CliTel"].ToString()));
                    vPage.Add(40, 300, new RepString(vDrop, "Email: " + dados["CliEmail"].ToString()));
                    vPage.Add(0, 310, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(5, 320, new RepString(vDrop, "Informações Bancárias"));
                    vPage.Add(0, 330, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(40, 340, new RepString(vDrop, "Banco: " + dados["CliBan"].ToString()));
                    vPage.Add(40, 360, new RepString(vDrop, "Favorecido: " + dados["CliFavo"].ToString()));
                    vPage.Add(40, 380, new RepString(vDrop, "Agência: " + dados["CliAgen"].ToString()));
                    vPage.Add(40, 400, new RepString(vDrop, "Conta Corrente: " + dados["CliCorren"].ToString()));
                    vPage.Add(0, 410, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(0, 420, new RepString(vDrop, "Informações do plano"));
                    vPage.Add(0, 430, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(40, 440, new RepString(vDrop, "Tipo Plano: " + cmbTipPlan.Text));
                    vPage.Add(40, 460, new RepString(vDrop, "Plano: " + cmbPlan.Text));
                    vPage.Add(40, 480, new RepString(vDrop, "Periodo: " + cmbDias.Text));
                    vPage.Add(40, 500, new RepString(vDrop, "Data Inicial: " + dateTimeInput1.Text));
                    vPage.Add(40, 520, new RepString(vDrop, "Quantidade de Pessoas: " + integerInput1.Text));
                    if (Planos_Detalhes.valor == 0)
                    {
                        vPage.Add(40, 540, new RepString(vDrop, "Valor: US$" + ((int.Parse(integerInput1.Text) * valor).ToString())));
                        vPage.Add(40, 560, new RepString(vDrop, "Valor: " + (((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))).ToString("C3"))));
                        voucher.inserir_voucher_cli(int.Parse(cliente.selecionar_cliente(Variaveis.login).Rows[0]["CliCod"].ToString()), int.Parse(completarplan.selecionar_planos_voucher(cmbPlan.Text, cmbTipPlan.Text).Rows[0]["PlanCod"].ToString()), cmbDias.Text, integerInput1.Value, dateTimeInput1.Value.ToString("yyyy-MM-dd"), checkBoxX1.Checked, ((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))), (int.Parse(integerInput1.Text) * valor));
                        //  MessageBox.Show(((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))).ToString());
                    }
                    else
                    {
                        vPage.Add(40, 540, new RepString(vDrop, "Valor: US$" + Planos_Detalhes.valor.ToString()));
                        vPage.Add(40, 560, new RepString(vDrop, "Valor: " + ((Planos_Detalhes.valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))).ToString("C3")));
                        voucher.inserir_voucher_cli(int.Parse(cliente.selecionar_cliente(Variaveis.login).Rows[0]["CliCod"].ToString()), int.Parse(completarplan.selecionar_planos_voucher(cmbPlan.Text, cmbTipPlan.Text).Rows[0]["PlanCod"].ToString()), cmbDias.Text, integerInput1.Value, dateTimeInput1.Value.ToString("yyyy-MM-dd"), checkBoxX1.Checked, ((Planos_Detalhes.valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))), Planos_Detalhes.valor);
                        //  MessageBox.Show((completarplan.selecionar_planos_voucher(cmbPlan.Text, cmbTipPlan.Text).Rows[0]["PlanCod"].ToString()));
                        //  MessageBox.Show(((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))).ToString());
                    }
                    vPage.Add(0, 570, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(450, 580, new RepString(vDrop, "Data:" + DateTime.Now.ToShortDateString()));
                    vPdf.Save(vArq);

                    MessageBox.Show("Arquivo Gerado com sucesso !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Process.Start(vArq);
                    this.Close();
                }
                catch (Exception)
                {
                    MessageBox.Show("Erro ao Gerar arquivo !!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }

            else if (Variaveis.modacesso == "Agência")
            {
                try
                {
                    DataRow    dados;
                    AgenciaBLL agencia = new AgenciaBLL();
                    dados = agencia.selecionar_agencia(Variaveis.login, Variaveis.senha).Rows[0];
                    Report   vPdf  = new Report(new PdfFormatter());
                    FontDef  vDef  = new FontDef(vPdf, FontDef.StandardFont.TimesRoman);
                    FontProp vDrop = new FontProp(vDef, 10);
                    Page     vPage = new Page(vPdf);
                    vPage.AddCB_MM(15, new RepString(vDrop, "COMPROVANTE DE EMIÇÃO DE VOUCHER"));
                    vPage.Add(0, 60, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(5, 70, new RepString(vDrop, "Informações da Empresa"));
                    vPage.Add(0, 80, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(40, 100, new RepString(vDrop, "Razão Social: " + dados["AgenRazSoc"].ToString()));
                    vPage.Add(40, 120, new RepString(vDrop, "Nome Fantasia: " + dados["AgenNomFant"].ToString()));
                    vPage.Add(40, 140, new RepString(vDrop, "CNPJ: " + dados["AgenCnpj"].ToString()));
                    vPage.Add(40, 160, new RepString(vDrop, "CEP: " + dados["AgenEnd"].ToString()));
                    vPage.Add(40, 180, new RepString(vDrop, "Endereço: " + dados["AgenEnd"].ToString().PadLeft(8, '0')));
                    vPage.Add(40, 200, new RepString(vDrop, "Número: " + dados["AgenEndNum"].ToString()));
                    vPage.Add(40, 220, new RepString(vDrop, "Bairro: " + dados["AgenBairro"].ToString()));
                    vPage.Add(40, 240, new RepString(vDrop, "Cidade:" + dados["AgenCid"].ToString()));
                    vPage.Add(40, 260, new RepString(vDrop, "Estado: " + dados["AgenEst"].ToString()));
                    vPage.Add(40, 280, new RepString(vDrop, "Telefone:" + dados["AgenTel"].ToString()));
                    vPage.Add(40, 300, new RepString(vDrop, "Email: " + dados["AgenEmail"].ToString()));
                    vPage.Add(40, 320, new RepString(vDrop, "Responsável pelo cadastro: " + dados["AgenRespCad"].ToString()));
                    vPage.Add(40, 340, new RepString(vDrop, "RG do Responsável pelo cadastro: " + dados["AgenRgResp"].ToString()));
                    vPage.Add(40, 360, new RepString(vDrop, "Suplente: " + dados["AgenNomSuple"].ToString()));
                    vPage.Add(40, 380, new RepString(vDrop, "RG do suplente: " + dados["AgenRgSuple"].ToString()));
                    vPage.Add(0, 390, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(5, 400, new RepString(vDrop, "Informações Bancárias"));
                    vPage.Add(0, 410, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(40, 420, new RepString(vDrop, "Banco: " + dados["AgenBan"].ToString()));
                    vPage.Add(40, 440, new RepString(vDrop, "Favorecido: " + dados["AgenFavo"].ToString()));
                    vPage.Add(40, 460, new RepString(vDrop, "Agência: " + dados["AgenNro"].ToString()));
                    vPage.Add(40, 480, new RepString(vDrop, "Conta Corrente: " + dados["AgenContCor"].ToString()));
                    vPage.Add(0, 490, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(0, 500, new RepString(vDrop, "Informações do plano"));
                    vPage.Add(0, 510, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(40, 520, new RepString(vDrop, "Tipo Plano: " + cmbTipPlan.Text));
                    vPage.Add(40, 540, new RepString(vDrop, "Plano: " + cmbPlan.Text));
                    vPage.Add(40, 560, new RepString(vDrop, "Periodo: " + cmbDias.Text));
                    vPage.Add(40, 580, new RepString(vDrop, "Data Inicial: " + dateTimeInput1.Text));
                    vPage.Add(40, 600, new RepString(vDrop, "Quantidade de Pessoas: " + integerInput1.Text));
                    if (Planos_Detalhes.valor == 0)
                    {
                        vPage.Add(40, 620, new RepString(vDrop, "Valor: US$" + ((int.Parse(integerInput1.Text) * valor).ToString())));
                        vPage.Add(40, 640, new RepString(vDrop, "Valor: " + (((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))).ToString("C3"))));
                        //MessageBox.Show(((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))).ToString());
                        voucher.inserir_voucher_agen(int.Parse(agencia.selecionar_agencia(Variaveis.login, Variaveis.senha).Rows[0]["AgenCod"].ToString()), int.Parse(completarplan.selecionar_planos_voucher(cmbPlan.Text, cmbTipPlan.Text).Rows[0]["PlanCod"].ToString()), cmbDias.Text, integerInput1.Value, dateTimeInput1.Value.ToString("yyyy-MM-dd"), checkBoxX1.Checked, (((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ",")))), ((int.Parse(integerInput1.Text) * valor)));
                    }
                    else
                    {
                        vPage.Add(40, 620, new RepString(vDrop, "Valor: US$" + Planos_Detalhes.valor.ToString()));
                        vPage.Add(40, 640, new RepString(vDrop, "Valor: " + ((Planos_Detalhes.valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))).ToString("C3")));
                        voucher.inserir_voucher_agen(int.Parse(agencia.selecionar_agencia(Variaveis.login, Variaveis.senha).Rows[0]["AgenCod"].ToString()), int.Parse(completarplan.selecionar_planos_voucher(cmbPlan.Text, cmbTipPlan.Text).Rows[0]["PlanCod"].ToString()), cmbDias.Text, integerInput1.Value, dateTimeInput1.Value.ToString("yyyy-MM-dd"), checkBoxX1.Checked, ((Planos_Detalhes.valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))), Planos_Detalhes.valor);
                        //voucher.inserir_voucher_agen(int.Parse(agencia.selecionar_agencia(Variaveis.login,Variaveis.senha).Rows[0]["AgenCod"].ToString()), cmbTipPlan.Text, cmbPlan.Text, cmbDias.Text, integerInput1.Value, dateTimeInput1.Value.ToString("yyyy-MM-dd"), checkBoxX1.Checked);
                        //MessageBox.Show(((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ","))).ToString());
                    }
                    vPage.Add(0, 650, new RepString(vDrop, "------------------------------------------------------------------------------------------------------------------------"));
                    vPage.Add(450, 660, new RepString(vDrop, "Data:" + DateTime.Now.ToShortDateString()));
                    vPdf.Save(vArq);
                    //voucher.inserir_voucher_agen(int.Parse(agencia.selecionar_agencia(Variaveis.login, Variaveis.senha).Rows[0]["AgenCod"].ToString()), int.Parse(completarplan.selecionar_planos(cmbPlan.Text, cmbTipPlan.Text).Rows[0]["PlanCod"].ToString()), cmbTipPlan.Text, cmbPlan.Text, cmbDias.Text, integerInput1.Value, dateTimeInput1.Value.ToString("yyyy-MM-dd"), checkBoxX1.Checked, (((int.Parse(integerInput1.Text) * valor) * decimal.Parse(Variaveis.dolar.Replace(".", ",")))), ((int.Parse(integerInput1.Text) * valor)));
                    MessageBox.Show("Arquivo Gerado com sucesso !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Process.Start(vArq);
                    this.Close();
                }
                catch (Exception)
                {
                    MessageBox.Show("Erro ao Gerar arquivo !!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
Пример #40
0
        /// <summary>
        /// Generates the report.
        /// </summary>
        /// <returns>The report that was generated.</returns>
        public Report GenerateReport()
        {
            DateTime now = DateTime.Now;
            Report report = new Report();
            FontDef fontDefinition = new FontDef(report, "Helvetica");
            Page pageOne = CreatePage(report);
            Page pageTwo = CreatePage(report);
            double verticalMillimeters;

            ReadStatistics();

            // Page one
            verticalMillimeters = PageMarginMillimeters;
            verticalMillimeters += InsertTitle(fontDefinition, pageOne, verticalMillimeters) + SpacingMillimeters;
            verticalMillimeters += InsertReportDate(fontDefinition, pageOne, verticalMillimeters) + 2.0D * SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageOne, verticalMillimeters, "5-day Device Data Completeness");
            verticalMillimeters += InsertFiveDaySummary(report, fontDefinition, pageOne, verticalMillimeters) + SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageOne, verticalMillimeters, "Percent of Devices with Acceptable Quality (30 days)");
            verticalMillimeters += InsertBarChart(pageOne, verticalMillimeters) + SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageOne, verticalMillimeters, "Definitions");
            verticalMillimeters += InsertDefinitions(fontDefinition, pageOne, verticalMillimeters) + SpacingMillimeters;
            InsertFooter(fontDefinition, pageOne, now, 1);

            // Page two
            verticalMillimeters = PageMarginMillimeters;
            verticalMillimeters += InsertReportDate(fontDefinition, pageTwo, verticalMillimeters) + SpacingMillimeters;

            verticalMillimeters += InsertSectionHeader(fontDefinition, pageTwo, verticalMillimeters, "Data Completeness Breakdown");
            verticalMillimeters += InsertPieChart(fontDefinition, pageTwo, verticalMillimeters) + SpacingMillimeters;

            InsertDetailsList(report, fontDefinition, pageTwo, verticalMillimeters, now, 2);

            return report;
        }
Пример #41
0
        private Double rWidth      = 175; // millimeters

        //------------------------------------------------------------------------------------------13.11.2004
        /// <summary>Creates this report.</summary>
        /// <remarks>
        /// This method overrides the method <see cref="Root.Reports.Report.Create"/> of the base class <see cref="Root.Reports.Report"/>.
        /// </remarks>
        protected override void Create()
        {
            FontDef  fd = new FontDef(this, FontDef.StandardFont.Helvetica);
            FontProp fp = new FontPropMM(fd, 1.9);
            Double   rY = 40; // vertical position in millimeters

            new Page(this);
            FontProp fp_Title = new FontPropMM(fd, 8);

            page_Cur.AddCB_MM(rY, new RepString(fp_Title, "List Layout Manager Sample"));
            rY += 18;

            // create list
            ListLayoutManager llm = null;

            using (llm = new ListLayoutManager(this)) {
                PenProp pp_BorderLine = new PenPropMM(this, 0.4, Color.Blue);
                PenProp pp_GridLine   = new PenPropMM(this, 0.1, Color.Blue);

                llm.tlmColumnDef_Default.penProp_BorderH = pp_BorderLine;
                llm.tlmCellDef_Default.penProp_Line      = pp_GridLine;

                TlmColumn col_Number = new TlmColumnMM(llm, 10);
                col_Number.tlmCellDef_Default.rAlignH          = RepObj.rAlignCenter;
                col_Number.tlmCellDef_Default.rAlignV          = RepObj.rAlignCenter;
                col_Number.tlmCellDef_Default.penProp_LineLeft = pp_BorderLine;

                TlmColumn col_Text = new TlmColumnMM(llm, 100);
                col_Text.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine;

                TlmColumn col_Author = new TlmColumnMM(llm, rWidth - llm.rWidthMM);
                col_Author.tlmCellDef_Default.penProp_LineRight = pp_BorderLine;
                col_Author.tlmCellDef_Default.brushProp_Back    = new BrushProp(this, Color.FromArgb(255, 210, 210));

                llm.container_CreateMM(page_Cur, rMarginLeft, rY); // immediately creates a container

                // first row
                llm.NewRow();
                col_Number.Add(new RepString(fp, "1."));
                col_Text.Add(new RepString(fp, "Rapunzel "));
                col_Author.Add(new RepString(fp, "Gebrüder Grimm"));

                TlmRow row = llm.tlmRow_New();
                col_Text.Add(new RepString(fp, "There once was a woman and a man that lived next to a witch. They were very happy. The lady saw rapunzel in the witch’s garden and she really wanted to eat it. When she ate it, she liked it. "));

                // second row
                llm.tlmCellDef_Default.penProp_LineTop = pp_BorderLine;
                row = llm.tlmRow_New();
                row.aTlmCell[col_Text].penProp_Line     = new PenPropMM(this, 0.5, Color.Red);
                row.aTlmCell[col_Text].iOrderLineRight  = 1;
                row.aTlmCell[col_Text].iOrderLineBottom = 1;
                col_Number.Add(new RepString(fp, "2."));
                col_Text.Add(new RepString(fp, "The Princess and the Pea"));
                col_Author.Add(new RepString(fp, "Hans Christian Andersen"));

                llm.tlmCellDef_Default.penProp_LineTop = pp_GridLine;
                llm.NewRow();
                col_Text.Add(new RepString(fp, "In a far away land, there lived a prince who wanted a real princess to be his wife. He traveled around the world to find her. He returned alone and unhappy to his kingdom."));
                col_Text.NewLine();
                col_Text.Add(new RepString(fp, "One stormy night, a princess arrived at the door. The lightening was flashing. Torrents of rain were rushing down. The princess's clothes were soaked. Water was running into the heels of her shoes and out the toes. It was a dreadful storm."));

                // third row
                llm.tlmCellDef_Default.penProp_LineTop = pp_BorderLine;
                llm.NewRow();
                col_Number.Add(new RepString(fp, "3."));
                col_Text.Add(new RepString(fp, "Hansel and Gretel"));
                col_Author.Add(new RepString(fp, "Gebrüder Grimm"));

                llm.tlmCellDef_Default.penProp_LineTop = pp_GridLine;
                llm.NewRow();
                col_Text.Add(new RepString(fp, "Once upon a time in a vast forest lived a poor family. Since there was a famine, they had zero food."));
                col_Text.NewLineMM(fp.rLineFeedMM + 1);
                col_Text.Add(new RepString(fp, "There was a woodcutter who had a mean wife and a boy named Hansel and a girl named Gretel. The mean wife decided to get rid of Hansel and Gretel so she could have more food. The children overheard her plan to leave them in the forest. Hansel gathered pebbles from his yard."));
            }
            rY        += llm.rCurY_MM + 1.5;
            fp.rSizeMM = 1.5;
            page_Cur.AddRT_MM(rMarginLeft + rWidth, rY, new RepString(fp, "End of list"));
        }
    private Double rPosBottom = 278;  // millimeters

    //------------------------------------------------------------------------------------------30.10.2004
    /// <summary>Creates this report.</summary>
    /// <remarks>
    /// This method overrides the method <see cref="Root.Reports.Report.Create"/> of the base class <see cref="Root.Reports.Report"/>.
    /// </remarks>
    protected override void Create() {  
      fontDef_Helvetica = new FontDef(this, FontDef.StandardFont.TimesRoman);
      FontProp fontProp_Text = new FontPropMM(fontDef_Helvetica, 1.9);  // standard font
      FontProp fontProp_Header = new FontPropMM(fontDef_Helvetica, 1.9);  // font of the table header
      fontProp_Header.bBold = true;

      Stream stream_Phone = GetType().Assembly.GetManifestResourceStream("SGS.Componentes.Phone.jpg");
      Random random = new Random(6);

      // create table
      TableLayoutManager tlm;
      using (tlm = new TableLayoutManager(fontProp_Header)) { 
        tlm.rContainerHeightMM = rPosBottom - rPosTop;  // set height of table
        tlm.tlmCellDef_Header.rAlignV = RepObj.rAlignCenter;  // set vertical alignment of all header cells
        tlm.tlmCellDef_Default.penProp_LineBottom = new PenProp(this, 0.05, Color.LightGray);  // set bottom line for all cells
        tlm.tlmHeightMode = TlmHeightMode.AdjustLast;
        tlm.eNewContainer += new TableLayoutManager.NewContainerEventHandler(Tlm_NewContainer);

        // define columns
        TlmColumn col;
        col = new TlmColumnMM(tlm, "ID", 13);

        col = new TlmColumnMM(tlm, "Company Name", 40);
        col.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine;

        col = new TlmColumnMM(tlm, "Address", 30);

        col = new TlmColumnMM(tlm, "City", 22);

        col = new TlmColumnMM(tlm, "Postal Code", 16);

        col = new TlmColumnMM(tlm, "Country", 18);

        //col = new TlmColumnMM(tlm, "Pais", 24);

        TlmColumn col_Phone = new TlmColumnMM(tlm, "Phone", rPosRight - rPosLeft - tlm.rWidthMM);
        col_Phone.fontProp_Header = new FontPropMM(fontDef_Helvetica, 1.9, Color.Brown);
        col_Phone.tlmCellDef_Header.rAlignH = RepObj.rAlignRight;
        col_Phone.tlmCellDef_Default.rAlignH = RepObj.rAlignRight;
        BrushProp brushProp_Phone = new BrushProp(this, Color.FromArgb(255, 255, 200));
        col_Phone.tlmCellDef_Default.brushProp_Back = brushProp_Phone;
        BrushProp brushProp_USA = new BrushProp(this, Color.FromArgb(255, 180, 180));

        // open data set
        DataSet dataSet = new DataSet();
        using (Stream stream_Customers = GetType().Assembly.GetManifestResourceStream("SGS.Componentes.Customers.xml"))
        {
          dataSet.ReadXml(stream_Customers);
        }
        DataTable dataTable_Customers = dataSet.Tables[0];

        foreach (DataRow dr in dataTable_Customers.Rows) {
          String sCountry = (String)dr["Country"];
          tlm.tlmCellDef_Default.brushProp_Back = (sCountry == "USA" ? brushProp_USA : null);
          col_Phone.tlmCellDef_Default.brushProp_Back = (sCountry == "USA" ? new BrushProp(this, Color.FromArgb(255, 227, 50)) : brushProp_Phone);
          tlm.NewRow();
          tlm.Add(0, new RepString(fontProp_Text, (String)dr["CustomerID"]));
          tlm.Add(1, new RepString(fontProp_Text, (String)dr["CompanyName"]));
          tlm.Add(2, new RepString(fontProp_Text, (String)dr["Address"]));
          tlm.Add(3, new RepString(fontProp_Text, (String)dr["City"]));
          tlm.Add(4, new RepString(fontProp_Text, (String)dr["PostalCode"]));
          tlm.Add(5, new RepString(fontProp_Text, sCountry));
          tlm.Add(6, new RepString(fontProp_Text, (String)dr["Phone"]));
          if (random.NextDouble() < 0.2) {  // mark randomly selected row with a phone icon
            tlm.tlmRow_Cur.aTlmCell[col_Phone].AddMM(1, 0.25, new RepImageMM(stream_Phone, 2.1, 2.3));
          }
        }
      }
      page_Cur.AddCT_MM(rPosLeft + tlm.rWidthMM / 2, rPosTop + tlm.rCurY_MM + 2, new RepString(fontProp_Text, "- end of table -"));

      // print page number and current date/time
      Double rY = rPosBottom + 1.5;
      foreach (Page page in enum_Page) {
        page.AddLT_MM(rPosLeft, rY, new RepString(fontProp_Text, DateTime.Now.ToShortDateString()  + "  " + DateTime.Now.ToShortTimeString()));
        page.AddRT_MM(rPosRight, rY, new RepString(fontProp_Text, page.iPageNo + " / " + iPageCount));
      }
    }
Пример #43
0
        // Insert the list of definitions on the given page.
        private double InsertDefinitions(FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            const double FontSize = 8.0D;
            const double FooterWidthMillimeters = 6.5D * 25.4D;

            FontProp      font = new FontProp(fontDefinition, 0.0D);
            StringBuilder builder;
            int           lengthWithoutWord;
            double        lineHeightMillimeters;

            string definitionsText = "Good: Measurements received which are neither latched nor unreasonable." + Environment.NewLine +
                                     "Latched: Measurements received which have maintained the same value for an extended period of time." + Environment.NewLine +
                                     "Unreasonable: Measurements received whose values have fallen outside of the range defined by reasonability constraints." + Environment.NewLine +
                                     "Correctness: Percentage of good measurements over total measurements expected, per device.";

            // Break the definitions text into lines
            string[] lines = definitionsText.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

            // Set font size and line spacing
            font.rSizePoint       = FontSize;
            lineHeightMillimeters = 1.5D * font.rSizeMM;

            foreach (string line in lines)
            {
                // String builder will be used to determine if the line is too wide to fit
                // on the page, and to break the line into multiple lines if necessary
                builder = new StringBuilder();

                // Break the line into words
                foreach (string word in line.Split())
                {
                    // Store the length of the line without an additional word so we can restore
                    // the original line if the additional word makes the line too long to fit
                    lengthWithoutWord = builder.Length;

                    // Add white space if this is not the first word in the line
                    if (builder.Length > 0)
                    {
                        builder.Append(' ');
                    }

                    // Add the word to the line
                    builder.Append(word);

                    // If the line is too long, put the original line onto the page and
                    // trim the string builder down to only the word we just added
                    if (font.rGetTextWidthMM(builder.ToString()) > FooterWidthMillimeters)
                    {
                        page.AddMM(PageMarginMillimeters, verticalMillimeters + font.rSizeMM, new RepString(font, builder.ToString(0, lengthWithoutWord)));
                        builder.Remove(0, lengthWithoutWord);
                        builder.Insert(0, "             ");
                        verticalMillimeters += lineHeightMillimeters;
                    }
                }

                // Add the remainder of the line to the page.
                page.AddMM(PageMarginMillimeters, verticalMillimeters + font.rSizeMM, new RepString(font, builder.ToString()));
                verticalMillimeters += 1.5D * lineHeightMillimeters;
            }

            return(0.0D);
        }
Пример #44
0
        // Add detailed information about each individual device, starting on the current page and adding new pages as necessary.
        private void InsertDetailsList(Report report, FontDef fontDefinition, Page page, double verticalMillimeters, DateTime now, int pageNumber)
        {
            const double ColumnPaddingMillimeters = 10.0D;
            const double RowPaddingMillimeters    = 2.0D;
            const double SignalIndentMillimeters  = 25.4D;

            double[] deviceColumnWidthMillimeters;
            double[] signalColumnWidthMillimeters;
            double   listWidthMillimeters;
            double   horizontalMillimeters;

            FontProp deviceHeaderFont = new FontPropMM(fontDefinition, 0.0D);
            FontProp deviceRowFont    = new FontPropMM(fontDefinition, 0.0D);
            FontProp signalHeaderFont = new FontPropMM(fontDefinition, 0.0D);
            FontProp signalRowFont    = new FontPropMM(fontDefinition, 0.0D);

            List <DeviceStats> badDevices;
            List <SignalStats> badSignals;

            int deviceIndex;
            int signalIndex;

            string[]     deviceHeaders;
            string[]     signalHeaders;
            string[][]   deviceDetails;
            string[][][] signalDetails;

            // Set up fonts to be used in the details list
            deviceHeaderFont.rSizePoint = 12.0D;
            deviceRowFont.rSizePoint    = 12.0D;
            signalHeaderFont.rSizePoint = 10.0D;
            signalRowFont.rSizePoint    = 10.0D;
            deviceHeaderFont.bBold      = true;
            signalHeaderFont.bBold      = true;

            // Set up the column header and the initial values for the column widths
            deviceHeaders = new string[] { "Name", "Correctness" };
            signalHeaders = new string[] { "Name", "Latched", "Unreasonable", "Total" };
            deviceColumnWidthMillimeters = deviceHeaders.Select(deviceHeaderFont.rGetTextWidthMM).ToArray();
            signalColumnWidthMillimeters = signalHeaders.Select(deviceHeaderFont.rGetTextWidthMM).ToArray();

            badDevices = m_deviceStatsList
                         .Where(dev => dev.GetMeasurementsLatched(ReportDays - 1) + dev.GetMeasurementsUnreasonable(ReportDays - 1) > 0)
                         .OrderByDescending(dev => (dev.GetMeasurementsLatched(ReportDays - 1) + dev.GetMeasurementsUnreasonable(ReportDays - 1)) / dev.MeasurementsExpected[ReportDays - 1])
                         .ToList();

            deviceIndex   = 0;
            deviceDetails = new string[badDevices.Count][];
            signalDetails = new string[badDevices.Count][][];

            foreach (DeviceStats deviceStats in badDevices)
            {
                deviceDetails[deviceIndex]    = new string[2];
                deviceDetails[deviceIndex][0] = deviceStats.Name;
                deviceDetails[deviceIndex][1] = deviceStats.GetCorrectness(ReportDays - 1).ToString("0.##") + "%";
                deviceColumnWidthMillimeters  = deviceColumnWidthMillimeters.Zip(deviceDetails[deviceIndex], (currentWidth, text) => Math.Max(currentWidth, deviceRowFont.rGetTextWidthMM(text))).ToArray();

                badSignals = deviceStats.SignalStatsLookup.Values
                             .Where(stats => stats.MeasurementsLatched[ReportDays - 1] + stats.MeasurementsUnreasonable[ReportDays - 1] > 0)
                             .OrderByDescending(stats => stats.MeasurementsLatched[ReportDays - 1] + stats.MeasurementsUnreasonable[ReportDays - 1])
                             .ToList();

                signalIndex = 0;
                signalDetails[deviceIndex] = new string[badSignals.Count][];

                foreach (SignalStats signalStats in badSignals)
                {
                    signalDetails[deviceIndex][signalIndex]    = new string[4];
                    signalDetails[deviceIndex][signalIndex][0] = signalStats.Name;
                    signalDetails[deviceIndex][signalIndex][1] = signalStats.MeasurementsLatched[ReportDays - 1].ToString("#,##0");
                    signalDetails[deviceIndex][signalIndex][2] = signalStats.MeasurementsUnreasonable[ReportDays - 1].ToString("#,##0");
                    signalDetails[deviceIndex][signalIndex][3] = (signalStats.MeasurementsLatched[ReportDays - 1] + signalStats.MeasurementsUnreasonable[ReportDays - 1]).ToString("#,##0");
                    signalColumnWidthMillimeters = signalColumnWidthMillimeters.Zip(signalDetails[deviceIndex][signalIndex], (currentWidth, text) => Math.Max(currentWidth, signalRowFont.rGetTextWidthMM(text))).ToArray();

                    signalIndex++;
                }

                deviceIndex++;
            }

            // Determine the total width of the list so that it can be centered
            listWidthMillimeters = Math.Max(deviceColumnWidthMillimeters.Sum(width => width + ColumnPaddingMillimeters) - ColumnPaddingMillimeters, SignalIndentMillimeters + signalColumnWidthMillimeters.Sum(width => width + ColumnPaddingMillimeters) - ColumnPaddingMillimeters);

            for (deviceIndex = 0; deviceIndex < deviceDetails.Length; deviceIndex++)
            {
                // If the height of the device header, plus the device row, plus the signal header, plus one signal row reaches beyond the bottom of the page, start a new page
                if (verticalMillimeters + deviceHeaderFont.rSizeMM + deviceRowFont.rSizeMM + signalHeaderFont.rSizeMM + signalRowFont.rSizeMM + 4.0D * RowPaddingMillimeters > PageHeightMillimeters - PageMarginMillimeters - FooterHeightMillimeters - SpacingMillimeters)
                {
                    // Insert footer on the current page first
                    InsertFooter(fontDefinition, page, now, pageNumber);

                    // Increment the page number and create a new page
                    page = CreatePage(report);
                    pageNumber++;

                    // Add the report date to the top of the page
                    verticalMillimeters  = PageMarginMillimeters;
                    verticalMillimeters += InsertReportDate(fontDefinition, page, PageMarginMillimeters) + SpacingMillimeters;
                }

                // Add the device header to the page
                horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;

                for (int i = 0; i < deviceHeaders.Length; i++)
                {
                    page.AddMM(horizontalMillimeters, verticalMillimeters + deviceHeaderFont.rSizeMM, new RepString(deviceHeaderFont, deviceHeaders[i]));
                    horizontalMillimeters += deviceColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                }

                verticalMillimeters += deviceHeaderFont.rSizeMM + RowPaddingMillimeters;

                // Add the device row to the page
                horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;

                for (int i = 0; i < deviceDetails[deviceIndex].Length; i++)
                {
                    page.AddMM(horizontalMillimeters, verticalMillimeters + deviceRowFont.rSizeMM, new RepString(deviceRowFont, deviceDetails[deviceIndex][i]));
                    horizontalMillimeters += deviceColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                }

                verticalMillimeters += deviceRowFont.rSizeMM + RowPaddingMillimeters * 2.0D;

                // Add the signal header to the page
                horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D + SignalIndentMillimeters;

                for (int i = 0; i < signalHeaders.Length; i++)
                {
                    page.AddMM(horizontalMillimeters, verticalMillimeters + signalHeaderFont.rSizeMM, new RepString(signalHeaderFont, signalHeaders[i]));
                    horizontalMillimeters += signalColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                }

                verticalMillimeters += signalHeaderFont.rSizeMM + RowPaddingMillimeters;

                // Each signal is on its own row in the details list
                foreach (string[] row in signalDetails[deviceIndex])
                {
                    // If the height of the row reaches beyond the bottom of the page, start a new page
                    if (verticalMillimeters + signalRowFont.rSizeMM > PageHeightMillimeters - PageMarginMillimeters - FooterHeightMillimeters - SpacingMillimeters)
                    {
                        // Insert footer on the current page first
                        InsertFooter(fontDefinition, page, now, pageNumber);

                        // Increment the page number and create a new page
                        page = CreatePage(report);
                        pageNumber++;

                        // Add the report date to the top of the page
                        verticalMillimeters  = PageMarginMillimeters;
                        verticalMillimeters += InsertReportDate(fontDefinition, page, PageMarginMillimeters) + SpacingMillimeters;

                        // Add the device header to the new page
                        horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;

                        for (int i = 0; i < deviceHeaders.Length; i++)
                        {
                            page.AddMM(horizontalMillimeters, verticalMillimeters + deviceHeaderFont.rSizeMM, new RepString(deviceHeaderFont, deviceHeaders[i]));
                            horizontalMillimeters += deviceColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                        }

                        verticalMillimeters += deviceHeaderFont.rSizeMM + RowPaddingMillimeters;

                        // Add the device row to the new page
                        horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;

                        for (int i = 0; i < deviceDetails[deviceIndex].Length; i++)
                        {
                            page.AddMM(horizontalMillimeters, verticalMillimeters + deviceRowFont.rSizeMM, new RepString(deviceRowFont, deviceDetails[deviceIndex][i]));
                            horizontalMillimeters += deviceColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                        }

                        verticalMillimeters += deviceRowFont.rSizeMM + RowPaddingMillimeters * 2.0D;

                        // Add the signal header to the new page
                        horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D + SignalIndentMillimeters;

                        for (int i = 0; i < signalHeaders.Length; i++)
                        {
                            page.AddMM(horizontalMillimeters, verticalMillimeters + signalHeaderFont.rSizeMM, new RepString(signalHeaderFont, signalHeaders[i]));
                            horizontalMillimeters += signalColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                        }

                        verticalMillimeters += signalHeaderFont.rSizeMM + RowPaddingMillimeters;
                    }

                    // Add the signal row to the details list
                    horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D + SignalIndentMillimeters;

                    for (int i = 0; i < row.Length; i++)
                    {
                        page.AddMM(horizontalMillimeters, verticalMillimeters + signalRowFont.rSizeMM, new RepString(signalRowFont, row[i]));
                        horizontalMillimeters += signalColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                    }

                    verticalMillimeters += signalRowFont.rSizeMM + RowPaddingMillimeters;
                }

                // Add space between devices
                verticalMillimeters += RowPaddingMillimeters * 3;
            }

            // Insert the footer on the last page of the report
            InsertFooter(fontDefinition, page, now, pageNumber);
        }
        public void GerarPdf()
        {
            // Variavel do Nome e caminho do arquivo
            string vArq = "";
            // Abre janela para usuário escolher a pasta onde o arquivo será gerado

            FolderBrowserDialog vSalvar = new FolderBrowserDialog();

            // Verifica se o usuário clicou em ok ou cancelar na janela de seleção da pasta

            if (vSalvar.ShowDialog() == DialogResult.Cancel)
            {
                return; // Cancela todo processo
            }
            // Insere na variavel o caminho selecionado pelo usuário e concatena com o nome do arquivo
            vArq = vSalvar.SelectedPath + "\\" + txtNome.Text.Trim() + ".pdf";
            try
            {
                // Cria um objeto PDF
                Report vPdf = new Report(new PdfFormatter());

                // Define a fonte que sera usada no relatório PDF
                FontDef vDef = new FontDef(vPdf, FontDef.StandardFont.TimesRoman);



                // Define o tamanho a fonte que sera usada no relatório PDF
                FontProp vDrop = new FontProp(vDef, 10); //tamanho da fonte
                FontProp vProp = new FontProp(vDef, 5);  // tamanho da fonte
                FontProp vTrop = new FontProp(vDef, 8);  // tamanho da fonte
                FontProp vGrop = new FontProp(vDef, 7);  // tamanho da fonte


                // Cria uma Nova Pagina
                Page vPage = new Page(vPdf);

                // Escreve no Arquivo
                vPage.AddCB_MM(10, new RepString(vDrop, "FICHA DE ATENDIMENTO AMBULATORIAL - FAA"));                                        // Centraliza
                vPage.AddCB_MM(20, new RepString(vDrop, "UBS RITA ASSIS"));                                                                 // Centraliza
                vPage.AddCB_MM(25, new RepString(vProp, "RUA: AVENIDA SEM NOME"));                                                          // Centraliza
                vPage.AddCB_MM(30, new RepString(vProp, "CONTATO: (00) 0000-0000"));                                                        // CentralizA
                vPage.AddCB_MM(40, new RepString(vDrop, "IDENTIFICAÇÃO DO PACIENTE"));                                                      // Centraliza
                vPage.AddCB_MM(32, new RepString(vDrop, "_____________________________________________________________________________"));  // define lado + altura

                vPage.AddCB_MM(20, 50, new RepString(vTrop, "ATENDIMENTO: "));                                                              // define lado + altura
                vPage.AddCB_MM(45, 50, new RepString(vGrop, txtDataAtend.Text));                                                            // define lado + altura pega o texto do box

                vPage.AddCB_MM(15, 60, new RepString(vDrop, "NOME: "));                                                                     // define lado + altura
                vPage.AddCB_MM(45, 60, new RepString(vGrop, txtNome.Text));                                                                 // define lado + altura pega o texto do box

                vPage.AddCB_MM(160, 60, new RepString(vTrop, "PRONTUARIO: "));                                                              // define lado + altura
                vPage.AddCB_MM(180, 60, new RepString(vGrop, txtProntuario.Text));                                                          // define lado + altura pega o texto do box

                vPage.AddCB_MM(20, 70, new RepString(vTrop, "DATA NASC.: "));                                                               // define lado + altura
                vPage.AddCB_MM(40, 70, new RepString(vGrop, txtDataNasc.Text));                                                             // define lado + altura pega o texto do box

                vPage.AddCB_MM(85, new RepString(vDrop, "DADOS DO ATENDIMENTO"));                                                           // Centraliza
                vPage.AddCB_MM(88, new RepString(vDrop, "_____________________________________________________________________________"));  // define lado + altura

                vPage.AddCB_MM(20, 95, new RepString(vTrop, "MÉDICO: "));                                                                   // define lado + altura
                vPage.AddCB_MM(40, 95, new RepString(vGrop, txtmedico.Text));                                                               // define lado + altura pega o texto do box

                vPage.AddCB_MM(130, 95, new RepString(vTrop, "ESPECIALIDADE: "));                                                           // define lado + altura
                vPage.AddCB_MM(165, 95, new RepString(vGrop, txtEspecialidade.Text));                                                       // define lado + altura pega o texto do box

                vPage.AddCB_MM(15, 110, new RepString(vTrop, "PESO: "));                                                                    // define lado + altura
                vPage.AddCB_MM(30, 110, new RepString(vGrop, txtPesoKg.Text));                                                              // define lado + altura pega o texto do box

                vPage.AddCB_MM(100, 110, new RepString(vTrop, "PRESSÃO ARTERIAL: "));                                                       // define lado + altura
                vPage.AddCB_MM(130, 110, new RepString(vGrop, txtPressaoArterial.Text));                                                    // define lado + altura pega o texto do box

                vPage.AddCB_MM(160, 110, new RepString(vTrop, "GLISSEMIA: "));                                                              // define lado + altura
                vPage.AddCB_MM(180, 110, new RepString(vGrop, txtGlicose.Text));                                                            // define lado + altura pega o texto do box

                vPage.AddCB_MM(25, 120, new RepString(vTrop, "TEMPERATURA: "));                                                             // define lado + altura
                vPage.AddCB_MM(48, 120, new RepString(vGrop, txtTemperatura.Text));                                                         // define lado + altura pega o texto do box

                vPage.AddCB_MM(100, 120, new RepString(vTrop, "SATURAÇÃO: "));                                                              // define lado + altura
                vPage.AddCB_MM(120, 120, new RepString(vGrop, txtSaturacao.Text));                                                          // define lado + altura pega o texto do box

                vPage.AddCB_MM(124, new RepString(vDrop, "_____________________________________________________________________________")); // define lado + altura
                vPage.AddCB_MM(35, 135, new RepString(vTrop, "RELATO PACIENTE: "));                                                         // define lado + altura
                vPage.AddCB_MM(35, 140, new RepString(vGrop, txtRelatoPaciente.Text));                                                      // define lado + altura pega o texto do box

                vPage.AddCB_MM(173, new RepString(vDrop, "_____________________________________________________________________________")); // define lado + altura
                vPage.AddCB_MM(35, 180, new RepString(vTrop, "RELATORIO MÉDICO: "));                                                        // define lado + altura
                vPage.AddCB_MM(40, 185, new RepString(vGrop, txtRelatoMedico.Text));                                                        // define lado + altura pega o texto do box

                vPage.AddCB_MM(260, new RepString(vDrop, "_____________________________________________________________________________")); // define lado + altura
                vPage.AddCB_MM(35, 275, new RepString(vProp, "________________________________"));                                          // define lado + altura
                vPage.AddCB_MM(35, 280, new RepString(vProp, "ASS. MÉDICO: "));                                                             // define lado + altura
                vPage.AddCB_MM(160, 275, new RepString(vProp, "________________________________"));                                         // define lado + altura
                vPage.AddCB_MM(160, 280, new RepString(vProp, "ASS. RESPONSÁVEL: "));                                                       // define lado + altura


                // vPage.AddCB_MM(15, 350, new RepString(vDrop, txtTextoArquivo2.Text)); // define lado + altura pega o texto do box
                // vPage.AddCB_MM(15, 350, new RepString(vGrop, txtTextoArquivo2.Text)); // define lado + altura pega o texto do box

                // Salvar Arquivo no disco
                vPdf.Save(vArq);
                MessageBox.Show("FAA Gerada com sucesso !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao Gerar arquivo !!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Пример #46
0
        // Insert the list of definitions on the given page.
        private double InsertDefinitions(FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            const double FontSize = 8.0D;
            const double FooterWidthMillimeters = 6.5D * 25.4D;

            FontProp font = new FontProp(fontDefinition, 0.0D);
            StringBuilder builder;
            int lengthWithoutWord;
            double lineHeightMillimeters;

            string definitionsText = string.Format("Level 4: {0} - Devices which are reporting as expected, with a completeness of at least {1:0.##}% on the report date.", m_level4Alias, m_level4Threshold) + Environment.NewLine +
                string.Format("Level 3: {0} - Devices with a completeness of at least {1:0.##}% on the report date.", m_level3Alias, m_level3Threshold) + Environment.NewLine +
                string.Format("Level 2: Poor - Devices which reported on the report date, but had an completeness below {0:0.##}%.", m_level3Threshold) + Environment.NewLine +
                "Level 1: Offline - Devices which did not report on the report date, but have reported at some time during the 30 days prior to the report date." + Environment.NewLine +
                "Level 0: Failed - Devices which have not reported during the 30 days prior to the report date." + Environment.NewLine +
                "Completeness: Percentage of measurements received over total measurements expected, per device." + Environment.NewLine +
                "Acceptable Quality: Devices which are in Level 4 or Level 3.";

            // Break the definitions text into lines
            string[] lines = definitionsText.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

            // Set font size and line spacing
            font.rSizePoint = FontSize;
            lineHeightMillimeters = 1.5D * font.rSizeMM;

            foreach (string line in lines)
            {
                // String builder will be used to determine if the line is too wide to fit
                // on the page, and to break the line into multiple lines if necessary
                builder = new StringBuilder();

                // Break the line into words
                foreach (string word in line.Split())
                {
                    // Store the length of the line without an additional word so we can restore
                    // the original line if the additional word makes the line too long to fit
                    lengthWithoutWord = builder.Length;

                    // Add white space if this is not the first word in the line
                    if (builder.Length > 0)
                        builder.Append(' ');

                    // Add the word to the line
                    builder.Append(word);

                    // If the line is too long, put the original line onto the page and
                    // trim the string builder down to only the word we just added
                    if (font.rGetTextWidthMM(builder.ToString()) > FooterWidthMillimeters)
                    {
                        page.AddMM(PageMarginMillimeters, verticalMillimeters + font.rSizeMM, new RepString(font, builder.ToString(0, lengthWithoutWord)));
                        builder.Remove(0, lengthWithoutWord);
                        builder.Insert(0, "             ");
                        verticalMillimeters += lineHeightMillimeters;
                    }
                }

                // Add the remainder of the line to the page.
                page.AddMM(PageMarginMillimeters, verticalMillimeters + font.rSizeMM, new RepString(font, builder.ToString()));
                verticalMillimeters += 1.5D * lineHeightMillimeters;
            }

            return 0.0D;
        }
Пример #47
0
 public cPrint()
 {
     rpt = new Report();
     rptPage = new Root.Reports.Page(rpt);
     fd = new FontDef(rpt, "Arial");
 }
Пример #48
0
        // Inserts the pie chart to the given page, which includes the level summary for the report date beside it.
        private double InsertPieChart(FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            const double ChartWidthMillimeters = (300.0D / 96.0D) * 25.4D;
            const double ChartHeightMillimeters = (300.0D / 96.0D) * 25.4D;
            const double ColumnPadding = 10.0D;

            List<DeviceStats>[] levels = GetLevels(ReportDays);
            Color[] colors = GetLevelColors();
            double verticalStart = verticalMillimeters;

            double totalWidthMillimeters;
            double horizontalMillimeters;
            double rowHeightMillimeters;

            string[] labelText;
            FontProp[] labelFonts;
            double labelsWidthMillimeters;

            string[] countText;
            FontProp[] countFonts;
            double countsWidthMillimeters;

            using (Chart chart = GetPieChart())
            {
                // Determine the height of each row of the level summary
                rowHeightMillimeters = (ChartHeightMillimeters * 0.8D) / levels.Length;

                // Add vertical indent of 10% of the chart height
                verticalMillimeters += ChartHeightMillimeters * 0.1D;

                // Get the text for the labels in the first column of the table
                labelText = levels
                    .Select((level, index) => "Level " + index)
                    .Reverse()
                    .ToArray();

                labelFonts = labelText
                    .Select(text =>
                    {
                        FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.6D);
                        font.bBold = true;
                        return font;
                    })
                    .Reverse()
                    .ToArray();

                labelsWidthMillimeters = labelText
                    .Zip(labelFonts, (text, font) => font.rGetTextWidthMM(text))
                    .Max();

                // Get the text for the device counts in the second column of the table
                countText = levels
                    .Select(level => level.Count.ToString())
                    .Reverse()
                    .ToArray();

                countFonts = countText
                    .Select((text, level) => (FontProp)new FontPropMM(fontDefinition, rowHeightMillimeters * 0.6D, colors[level]))
                    .Reverse()
                    .ToArray();

                countsWidthMillimeters = countText
                    .Zip(countFonts, (text, font) => font.rGetTextWidthMM(text))
                    .Max();

                // Determine the total width of the pie chart and level summary,
                // then set horizontalMillimeters such that the pie chart and level
                // summary are centered on the page
                totalWidthMillimeters = labelsWidthMillimeters + ColumnPadding + countsWidthMillimeters + ColumnPadding + ChartWidthMillimeters;
                horizontalMillimeters = (PageWidthMillimeters - totalWidthMillimeters) / 2.0D;

                // Add the table to the page
                for (int i = 0; i < levels.Length; i++)
                {
                    page.AddMM(horizontalMillimeters, verticalMillimeters + rowHeightMillimeters * 0.8D, new RepString(labelFonts[i], labelText[i]));
                    page.AddMM(horizontalMillimeters + labelsWidthMillimeters + ColumnPadding + countsWidthMillimeters - countFonts[i].rGetTextWidthMM(countText[i]), verticalMillimeters + rowHeightMillimeters * 0.8D, new RepString(countFonts[i], countText[i]));
                    verticalMillimeters += rowHeightMillimeters;
                }

                // Add the pie chart to the page
                verticalMillimeters = verticalStart;
                page.AddMM(horizontalMillimeters + labelsWidthMillimeters + ColumnPadding + countsWidthMillimeters + ColumnPadding, verticalMillimeters + ChartHeightMillimeters, new RepImageMM(ChartToImage(chart), ChartWidthMillimeters, ChartHeightMillimeters));
            }

            return ChartHeightMillimeters;
        }
Пример #49
0
 // Inserts the report date onto the given page.
 private double InsertReportDate(FontDef fontDefinition, Page page, double verticalMillimeters)
 {
     FontProp font = new FontProp(fontDefinition, 0.0D);
     font.rSizePoint = 14.0D;
     page.AddCB_MM(verticalMillimeters + font.rSizeMM, new RepString(font, m_reportDate.ToLongDateString()));
     return font.rSizeMM;
 }
Пример #50
0
        // Add detailed information about each individual device, starting on the current page and adding new pages as necessary.
        private void InsertDetailsList(Report report, FontDef fontDefinition, Page page, double verticalMillimeters, DateTime now, int pageNumber)
        {
            const double ColumnPaddingMillimeters = 10.0D;
            const double RowPaddingMillimeters = 2.0D;

            double[] columnWidthMillimeters;
            double listWidthMillimeters;
            double horizontalMillimeters;

            FontProp levelFont = new FontPropMM(fontDefinition, 0.0D);
            FontProp columnHeaderFont = new FontPropMM(fontDefinition, 0.0D);
            FontProp rowFont = new FontPropMM(fontDefinition, 0.0D);

            List<DeviceStats>[] levels = GetLevels(ReportDays);
            string[][][] levelDetails = new string[levels.Length][][];
            string[][] deviceDetails;
            string[] columnHeaders;

            // Set up fonts to be used in the details list
            levelFont.rSizePoint = 12.0D;
            columnHeaderFont.rSizePoint = 10.0D;
            rowFont.rSizePoint = 10.0D;
            levelFont.bBold = true;
            columnHeaderFont.bBold = true;

            // Set up the column header and the initial values for the column widths
            columnHeaders = new string[] { "Name", "Completeness", "Data Errors", "Time Errors" };
            columnWidthMillimeters = columnHeaders.Select(columnHeaderFont.rGetTextWidthMM).ToArray();

            for (int level = 0; level < levels.Length; level++)
            {
                // Set up the device details array for the current level
                deviceDetails = new string[levels[level].Count][];
                levelDetails[level] = deviceDetails;

                // Sort the devices in this level by name
                levels[level].Sort((device1, device2) => string.Compare(device1.Name, device2.Name, StringComparison.Ordinal));

                for (int device = 0; device < levels[level].Count; device++)
                {
                    // Populate the device details with data for each device
                    deviceDetails[device] = new string[]
                    {
                        levels[level][device].Name,
                        (levels[level][device].MeasurementsReceived[ReportDays - 1] / levels[level][device].MeasurementsExpected[ReportDays - 1]).ToString("0.##%"),
                        levels[level][device].DataQualityErrors[ReportDays - 1].ToString("#,##0"),
                        levels[level][device].TimeQualityErrors[ReportDays - 1].ToString("#,##0")
                    };

                    // Update the column widths if they need to be widened to accomodate the data
                    columnWidthMillimeters = columnWidthMillimeters.Zip(deviceDetails[device], (currentWidth, text) => Math.Max(currentWidth, rowFont.rGetTextWidthMM(text))).ToArray();
                }
            }

            // Determine the total width of the list so that it can be centered
            listWidthMillimeters = columnWidthMillimeters.Sum(width => width + ColumnPaddingMillimeters) - ColumnPaddingMillimeters;

            for (int level = 0; level < levels.Length; level++)
            {
                // Get the device details for the current level
                deviceDetails = levelDetails[level];

                // If the level has no data, don't bother adding it to the details list
                if (deviceDetails.Length > 0)
                {
                    // If the height of the level header, plus the column header, plus one row of data reaches beyond the bottom of the page, start a new page
                    if (verticalMillimeters + levelFont.rSizeMM + columnHeaderFont.rSizeMM + rowFont.rSizeMM > PageHeightMillimeters - PageMarginMillimeters - FooterHeightMillimeters - SpacingMillimeters)
                    {
                        // Insert footer on the current page first
                        InsertFooter(fontDefinition, page, now, pageNumber);

                        // Increment the page number and create a new page
                        page = CreatePage(report);
                        pageNumber++;

                        // Add the report date to the top of the page
                        verticalMillimeters = PageMarginMillimeters;
                        verticalMillimeters += InsertReportDate(fontDefinition, page, PageMarginMillimeters) + SpacingMillimeters;
                    }

                    // Add the level header to the page
                    horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;
                    page.AddMM(horizontalMillimeters, verticalMillimeters + levelFont.rSizeMM, new RepString(levelFont, "Level " + level));
                    verticalMillimeters += levelFont.rSizeMM + RowPaddingMillimeters;

                    // Add the column header to the page
                    for (int i = 0; i < columnHeaders.Length; i++)
                    {
                        page.AddMM(horizontalMillimeters, verticalMillimeters + columnHeaderFont.rSizeMM, new RepString(columnHeaderFont, columnHeaders[i]));
                        horizontalMillimeters += columnWidthMillimeters[i] + ColumnPaddingMillimeters;
                    }

                    verticalMillimeters += columnHeaderFont.rSizeMM + RowPaddingMillimeters;

                    // Each device is on its own row in the details list
                    foreach (string[] row in deviceDetails)
                    {
                        // If the height of the row reaches beyond the bottom of the page, start a new page
                        if (verticalMillimeters + rowFont.rSizeMM > PageHeightMillimeters - PageMarginMillimeters - FooterHeightMillimeters - SpacingMillimeters)
                        {
                            // Insert footer on the current page first
                            InsertFooter(fontDefinition, page, now, pageNumber);

                            // Increment the page number and create a new page
                            page = CreatePage(report);
                            pageNumber++;

                            // Add the report date to the top of the page
                            verticalMillimeters = PageMarginMillimeters;
                            verticalMillimeters += InsertReportDate(fontDefinition, page, PageMarginMillimeters) + SpacingMillimeters;

                            // Add the level header again, designated with the abbreviation "contd."
                            horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;
                            page.AddMM(horizontalMillimeters, verticalMillimeters + levelFont.rSizeMM, new RepString(levelFont, "Level " + level + " (contd.)"));
                            verticalMillimeters += levelFont.rSizeMM + RowPaddingMillimeters;

                            // Add the column header again to the top of the new page
                            for (int i = 0; i < columnHeaders.Length; i++)
                            {
                                page.AddMM(horizontalMillimeters, verticalMillimeters + columnHeaderFont.rSizeMM, new RepString(columnHeaderFont, columnHeaders[i]));
                                horizontalMillimeters += columnWidthMillimeters[i] + ColumnPaddingMillimeters;
                            }

                            verticalMillimeters += columnHeaderFont.rSizeMM + RowPaddingMillimeters;
                        }

                        // Add the device data, on its own row, to the details list
                        horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;

                        for (int column = 0; column < row.Length; column++)
                        {
                            page.AddMM(horizontalMillimeters, verticalMillimeters + rowFont.rSizeMM, new RepString(rowFont, row[column]));
                            horizontalMillimeters += columnWidthMillimeters[column] + ColumnPaddingMillimeters;
                        }

                        verticalMillimeters += rowFont.rSizeMM + RowPaddingMillimeters;
                    }

                    // Add space between levels
                    verticalMillimeters += levelFont.rSizeMM;
                }
            }

            // Insert the footer on the last page of the report
            InsertFooter(fontDefinition, page, now, pageNumber);
        }
Пример #51
0
 // Inserts the page footer onto the given page, which includes the time of report generation as well as the page number.
 private double InsertFooter(FontDef fontDefinition, Page page, DateTime now, int pageNumber)
 {
     FontProp font = new FontProp(fontDefinition, 0.0D);
     font.rSizePoint = 12.0D;
     page.AddMM(PageMarginMillimeters, PageHeightMillimeters - PageMarginMillimeters, new RepString(font, now.ToShortDateString() + " " + now.ToShortTimeString()));
     page.AddMM(PageWidthMillimeters - PageMarginMillimeters - font.rGetTextWidthMM(pageNumber.ToString()), PageHeightMillimeters - PageMarginMillimeters, new RepString(font, pageNumber.ToString()));
     return font.rSizeMM;
 }
Пример #52
0
        // Inserts the five-day summary table on the given page.
        private double InsertFiveDaySummary(Report report, FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            const double TableHeightMillimeters = 30.0D;
            const double ColumnPadding          = 5.0D;
            const double RowPadding             = 2.0D;
            const int    RowCount = 5;

            double horizontalMillimeters;
            double tableWidthMillimeters;
            double rowHeightMillimeters;

            double measurementsExpected;
            double measurementsReceived;
            double measurementsLatched;
            double measurementsUnreasonable;

            string[]   labelText;
            FontProp[] labelFonts;
            double     labelsWidthMillimeters;

            string[]   dayOneText;
            FontProp[] dayOneFonts;
            double     dayOneWidthMillimeters;

            string[]   dayTwoText;
            FontProp[] dayTwoFonts;
            double     dayTwoWidthMillimeters;

            string[]   dayThreeText;
            FontProp[] dayThreeFonts;
            double     dayThreeWidthMillimeters;

            string[]   dayFourText;
            FontProp[] dayFourFonts;
            double     dayFourWidthMillimeters;

            string[]   dayFiveText;
            FontProp[] dayFiveFonts;
            double     dayFiveWidthMillimeters;

            // Determine the height of each row in the table
            rowHeightMillimeters = (TableHeightMillimeters - ((RowCount - 1) * RowPadding)) / RowCount;

            // Get the text for the labels in the first column of the table
            labelText = new string[]
            {
                "",
                "Good",
                "Latched",
                "Unreasonable",
            };

            labelFonts = labelText
                         .Select(text =>
            {
                FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                font.bBold    = true;
                return(font);
            })
                         .ToArray();

            labelsWidthMillimeters = labelText
                                     .Zip(labelFonts, (text, font) => font.rGetTextWidthMM(text))
                                     .Max();

            // Get the text for the measurement counts in the second column of the table
            measurementsExpected     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 5]);
            measurementsReceived     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 5]);
            measurementsLatched      = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 5));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 5));

            dayOneText = new string[]
            {
                (m_reportDate - TimeSpan.FromDays(4.0D)).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayOneFonts = dayOneText
                          .Select((text, index) =>
            {
                FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                font.bBold    = index == 0;
                return(font);
            })
                          .ToArray();

            dayOneWidthMillimeters = dayOneText
                                     .Zip(dayOneFonts, (text, font) => font.rGetTextWidthMM(text))
                                     .Max();

            // Get the text for the measurement counts in the third column of the table
            measurementsExpected     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 4]);
            measurementsReceived     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 4]);
            measurementsLatched      = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 4));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 4));

            dayTwoText = new string[]
            {
                (m_reportDate - TimeSpan.FromDays(3.0D)).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayTwoFonts = dayTwoText
                          .Select((text, index) =>
            {
                FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                font.bBold    = index == 0;
                return(font);
            })
                          .ToArray();

            dayTwoWidthMillimeters = dayTwoText
                                     .Zip(dayTwoFonts, (text, font) => font.rGetTextWidthMM(text))
                                     .Max();

            // Get the text for the measurement counts in the fourth column of the table
            measurementsExpected     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 3]);
            measurementsReceived     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 3]);
            measurementsLatched      = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 3));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 3));

            dayThreeText = new string[]
            {
                (m_reportDate - TimeSpan.FromDays(2.0D)).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayThreeFonts = dayThreeText
                            .Select((text, index) =>
            {
                FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                font.bBold    = index == 0;
                return(font);
            })
                            .ToArray();

            dayThreeWidthMillimeters = dayThreeText
                                       .Zip(dayThreeFonts, (text, font) => font.rGetTextWidthMM(text))
                                       .Max();

            // Get the text for the measurement counts in the fifth column of the table
            measurementsExpected     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 2]);
            measurementsReceived     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 2]);
            measurementsLatched      = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 2));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 2));

            dayFourText = new string[]
            {
                (m_reportDate - TimeSpan.FromDays(1.0D)).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayFourFonts = dayFourText
                           .Select((text, index) =>
            {
                FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                font.bBold    = index == 0;
                return(font);
            })
                           .ToArray();

            dayFourWidthMillimeters = dayFourText
                                      .Zip(dayFourFonts, (text, font) => font.rGetTextWidthMM(text))
                                      .Max();

            // Get the text for the measurement counts in the sixth column of the table
            measurementsExpected     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 1]);
            measurementsReceived     = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 1]);
            measurementsLatched      = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 1));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 1));

            dayFiveText = new string[]
            {
                (m_reportDate).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayFiveFonts = dayFiveText
                           .Select((text, index) =>
            {
                FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                font.bBold    = index == 0;
                return(font);
            })
                           .ToArray();

            dayFiveWidthMillimeters = dayFiveText
                                      .Zip(dayFiveFonts, (text, font) => font.rGetTextWidthMM(text))
                                      .Max();

            // Determine the full width of the table
            tableWidthMillimeters = labelsWidthMillimeters + ColumnPadding
                                    + dayOneWidthMillimeters + ColumnPadding
                                    + dayTwoWidthMillimeters + ColumnPadding
                                    + dayThreeWidthMillimeters + ColumnPadding
                                    + dayFourWidthMillimeters + ColumnPadding
                                    + dayFiveWidthMillimeters;

            // Add the table to the page
            for (int i = 0; i < labelText.Length; i++)
            {
                horizontalMillimeters = (PageWidthMillimeters - tableWidthMillimeters) / 2;

                page.AddMM(horizontalMillimeters, verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(labelFonts[i], labelText[i]));
                horizontalMillimeters += labelsWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayOneWidthMillimeters - dayOneFonts[i].rGetTextWidthMM(dayOneText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayOneFonts[i], dayOneText[i]));
                horizontalMillimeters += dayOneWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayTwoWidthMillimeters - dayTwoFonts[i].rGetTextWidthMM(dayTwoText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayTwoFonts[i], dayTwoText[i]));
                horizontalMillimeters += dayTwoWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayThreeWidthMillimeters - dayThreeFonts[i].rGetTextWidthMM(dayThreeText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayThreeFonts[i], dayThreeText[i]));
                horizontalMillimeters += dayThreeWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayFourWidthMillimeters - dayFourFonts[i].rGetTextWidthMM(dayFourText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayFourFonts[i], dayFourText[i]));
                horizontalMillimeters += dayFourWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayFiveWidthMillimeters - dayFiveFonts[i].rGetTextWidthMM(dayFiveText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayFiveFonts[i], dayFiveText[i]));
                verticalMillimeters += rowHeightMillimeters + RowPadding;
            }

            return(TableHeightMillimeters);
        }
Пример #53
0
        // Inserts the five-day summary table on the given page.
        private double InsertFiveDaySummary(Report report, FontDef fontDefinition, Page page, double verticalMillimeters)
        {
            const double TableHeightMillimeters = 30.0D;
            const double ColumnPadding = 5.0D;
            const double RowPadding = 2.0D;
            const int RowCount = 5;

            double horizontalMillimeters;
            double tableWidthMillimeters;
            double rowHeightMillimeters;

            double measurementsExpected;
            double measurementsReceived;
            double measurementsLatched;
            double measurementsUnreasonable;

            string[] labelText;
            FontProp[] labelFonts;
            double labelsWidthMillimeters;

            string[] dayOneText;
            FontProp[] dayOneFonts;
            double dayOneWidthMillimeters;

            string[] dayTwoText;
            FontProp[] dayTwoFonts;
            double dayTwoWidthMillimeters;

            string[] dayThreeText;
            FontProp[] dayThreeFonts;
            double dayThreeWidthMillimeters;

            string[] dayFourText;
            FontProp[] dayFourFonts;
            double dayFourWidthMillimeters;

            string[] dayFiveText;
            FontProp[] dayFiveFonts;
            double dayFiveWidthMillimeters;

            // Determine the height of each row in the table
            rowHeightMillimeters = (TableHeightMillimeters - ((RowCount - 1) * RowPadding)) / RowCount;

            // Get the text for the labels in the first column of the table
            labelText = new string[]
            {
                "",
                "Good",
                "Latched",
                "Unreasonable",
            };

            labelFonts = labelText
                .Select(text =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = true;
                    return font;
                })
                .ToArray();

            labelsWidthMillimeters = labelText
                .Zip(labelFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the measurement counts in the second column of the table
            measurementsExpected = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 5]);
            measurementsReceived = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 5]);
            measurementsLatched = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 5));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 5));

            dayOneText = new string[]
            {
                (m_reportDate - TimeSpan.FromDays(4.0D)).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayOneFonts = dayOneText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayOneWidthMillimeters = dayOneText
                .Zip(dayOneFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the measurement counts in the third column of the table
            measurementsExpected = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 4]);
            measurementsReceived = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 4]);
            measurementsLatched = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 4));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 4));

            dayTwoText = new string[]
            {
                (m_reportDate - TimeSpan.FromDays(3.0D)).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayTwoFonts = dayTwoText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayTwoWidthMillimeters = dayTwoText
                .Zip(dayTwoFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the measurement counts in the fourth column of the table
            measurementsExpected = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 3]);
            measurementsReceived = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 3]);
            measurementsLatched = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 3));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 3));

            dayThreeText = new string[]
            {
                (m_reportDate - TimeSpan.FromDays(2.0D)).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayThreeFonts = dayThreeText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayThreeWidthMillimeters = dayThreeText
                .Zip(dayThreeFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the measurement counts in the fifth column of the table
            measurementsExpected = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 2]);
            measurementsReceived = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 2]);
            measurementsLatched = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 2));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 2));

            dayFourText = new string[]
            {
                (m_reportDate - TimeSpan.FromDays(1.0D)).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayFourFonts = dayFourText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayFourWidthMillimeters = dayFourText
                .Zip(dayFourFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Get the text for the measurement counts in the sixth column of the table
            measurementsExpected = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsExpected[ReportDays - 1]);
            measurementsReceived = m_deviceStatsList.Sum(deviceStats => deviceStats.MeasurementsReceived[ReportDays - 1]);
            measurementsLatched = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsLatched(ReportDays - 1));
            measurementsUnreasonable = m_deviceStatsList.Sum(deviceStats => deviceStats.GetMeasurementsUnreasonable(ReportDays - 1));

            dayFiveText = new string[]
            {
                (m_reportDate).ToString("MM/dd"),
                ((measurementsReceived - measurementsLatched - measurementsUnreasonable) / measurementsExpected).ToString("0.00%"),
                (measurementsLatched / measurementsExpected).ToString("0.00%"),
                (measurementsUnreasonable / measurementsExpected).ToString("0.00%")
            };

            dayFiveFonts = dayFiveText
                .Select((text, index) =>
                {
                    FontProp font = new FontPropMM(fontDefinition, rowHeightMillimeters * 0.8D);
                    font.bBold = index == 0;
                    return font;
                })
                .ToArray();

            dayFiveWidthMillimeters = dayFiveText
                .Zip(dayFiveFonts, (text, font) => font.rGetTextWidthMM(text))
                .Max();

            // Determine the full width of the table
            tableWidthMillimeters = labelsWidthMillimeters + ColumnPadding
                + dayOneWidthMillimeters + ColumnPadding
                + dayTwoWidthMillimeters + ColumnPadding
                + dayThreeWidthMillimeters + ColumnPadding
                + dayFourWidthMillimeters + ColumnPadding
                + dayFiveWidthMillimeters;

            // Add the table to the page
            for (int i = 0; i < labelText.Length; i++)
            {
                horizontalMillimeters = (PageWidthMillimeters - tableWidthMillimeters) / 2;

                page.AddMM(horizontalMillimeters, verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(labelFonts[i], labelText[i]));
                horizontalMillimeters += labelsWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayOneWidthMillimeters - dayOneFonts[i].rGetTextWidthMM(dayOneText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayOneFonts[i], dayOneText[i]));
                horizontalMillimeters += dayOneWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayTwoWidthMillimeters - dayTwoFonts[i].rGetTextWidthMM(dayTwoText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayTwoFonts[i], dayTwoText[i]));
                horizontalMillimeters += dayTwoWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayThreeWidthMillimeters - dayThreeFonts[i].rGetTextWidthMM(dayThreeText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayThreeFonts[i], dayThreeText[i]));
                horizontalMillimeters += dayThreeWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayFourWidthMillimeters - dayFourFonts[i].rGetTextWidthMM(dayFourText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayFourFonts[i], dayFourText[i]));
                horizontalMillimeters += dayFourWidthMillimeters + ColumnPadding;

                page.AddMM(horizontalMillimeters + dayFiveWidthMillimeters - dayFiveFonts[i].rGetTextWidthMM(dayFiveText[i]), verticalMillimeters + rowHeightMillimeters * 0.9D, new RepString(dayFiveFonts[i], dayFiveText[i]));
                verticalMillimeters += rowHeightMillimeters + RowPadding;
            }

            return TableHeightMillimeters;
        }
        //------------------------------------------------------------------------------------------30.10.2004
        /// <summary>Creates this report.</summary>
        /// <remarks>
        /// This method overrides the method <see cref="Root.Reports.Report.Create"/> of the base class <see cref="Root.Reports.Report"/>.
        /// </remarks>
        protected override void Create()
        {
            fontDef_Helvetica = new FontDef(this, FontDef.StandardFont.TimesRoman);
            FontProp fontProp_Text = new FontPropMM(fontDef_Helvetica, 1.9);  // standard font
            FontProp fontProp_Header = new FontPropMM(fontDef_Helvetica, 1.9);  // font of the table header
            fontProp_Header.bBold = true;

            // create table
            TableLayoutManager tlm;
            using (tlm = new TableLayoutManager(fontProp_Header))
            {
                tlm.rContainerHeightMM = rPosBottom - rPosTop;  // set height of table
                tlm.tlmCellDef_Header.rAlignV = RepObj.rAlignCenter;  // set vertical alignment of all header cells
                tlm.tlmCellDef_Default.penProp_LineBottom = new PenProp(this, 0.05, Color.LightGray);  // set bottom line for all cells
                tlm.tlmHeightMode = TlmHeightMode.AdjustLast;
                tlm.eNewContainer += new TableLayoutManager.NewContainerEventHandler(Tlm_NewContainer);

                // define columns
                TlmColumn col;

                col = new TlmColumnMM(tlm, "Natureza Lançamento", 80);
                col.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine;

                col = new TlmColumnMM(tlm, "Tipo", 40);

                col = new TlmColumnMM(tlm, "Data", 30);

                col = new TlmColumnMM(tlm, "Valor", 30);


                 List<Financas> listaFinancas = (List<Financas>)RelatorioDTO.DadosRelatorio;
                Decimal valorTotal = 0;
                foreach (Financas financas in listaFinancas)
                {
                    tlm.NewRow();
                    tlm.Add(0, new RepString(fontProp_Text, financas.NaturezaLancamento.NomeNatureza));

                    tlm.Add(1, new RepString(fontProp_Text, financas.TipoLancamento));

                    tlm.Add(2, new RepString(fontProp_Text, financas.DataLancamento.Value.ToString("dd/MM/yyyy")));

                    tlm.Add(3, new RepString(fontProp_Text, String.Format("{0:C2}", financas.Valor.Value)));

                    valorTotal += financas.Valor.Value;
                }

                if (listaFinancas.Count > 0)
                {
                    tlm.NewRow();
                    tlm.Add(0, new RepString(fontProp_Text, ""));
                    tlm.Add(1, new RepString(fontProp_Text, ""));
                    tlm.Add(2, new RepString(fontProp_Text, "Total:"));
                    tlm.Add(3, new RepString(fontProp_Text, String.Format("{0:C2}", valorTotal)));
                }

            }


            //page_Cur.AddCT_MM(rPosLeft + tlm.rWidthMM / 2, rPosTop + tlm.rCurY_MM + 2, new RepString(fontProp_Text, "- end of table -"));

            // print page number and current date/time
            Double rY = rPosBottom + 1.5;
            foreach (Page page in enum_Page)
            {
                page.AddLT_MM(rPosLeft, rY, new RepString(fontProp_Text, DateTime.Now.ToShortDateString() + "  " + DateTime.Now.ToShortTimeString()));
                page.AddRT_MM(rPosRight, rY, new RepString(fontProp_Text, page.iPageNo + " / " + iPageCount));
            }
        }
Пример #55
0
        // Add detailed information about each individual device, starting on the current page and adding new pages as necessary.
        private void InsertDetailsList(Report report, FontDef fontDefinition, Page page, double verticalMillimeters, DateTime now, int pageNumber)
        {
            const double ColumnPaddingMillimeters = 10.0D;
            const double RowPaddingMillimeters = 2.0D;
            const double SignalIndentMillimeters = 25.4D;

            double[] deviceColumnWidthMillimeters;
            double[] signalColumnWidthMillimeters;
            double listWidthMillimeters;
            double horizontalMillimeters;

            FontProp deviceHeaderFont = new FontPropMM(fontDefinition, 0.0D);
            FontProp deviceRowFont = new FontPropMM(fontDefinition, 0.0D);
            FontProp signalHeaderFont = new FontPropMM(fontDefinition, 0.0D);
            FontProp signalRowFont = new FontPropMM(fontDefinition, 0.0D);

            List<DeviceStats> badDevices;
            List<SignalStats> badSignals;

            int deviceIndex;
            int signalIndex;
            string[] deviceHeaders;
            string[] signalHeaders;
            string[][] deviceDetails;
            string[][][] signalDetails;

            // Set up fonts to be used in the details list
            deviceHeaderFont.rSizePoint = 12.0D;
            deviceRowFont.rSizePoint = 12.0D;
            signalHeaderFont.rSizePoint = 10.0D;
            signalRowFont.rSizePoint = 10.0D;
            deviceHeaderFont.bBold = true;
            signalHeaderFont.bBold = true;

            // Set up the column header and the initial values for the column widths
            deviceHeaders = new string[] { "Name", "Correctness" };
            signalHeaders = new string[] { "Name", "Latched", "Unreasonable", "Total" };
            deviceColumnWidthMillimeters = deviceHeaders.Select(deviceHeaderFont.rGetTextWidthMM).ToArray();
            signalColumnWidthMillimeters = signalHeaders.Select(deviceHeaderFont.rGetTextWidthMM).ToArray();

            badDevices = m_deviceStatsList
                .Where(dev => dev.GetMeasurementsLatched(ReportDays - 1) + dev.GetMeasurementsUnreasonable(ReportDays - 1) > 0)
                .OrderByDescending(dev => (dev.GetMeasurementsLatched(ReportDays - 1) + dev.GetMeasurementsUnreasonable(ReportDays - 1)) / dev.MeasurementsExpected[ReportDays - 1])
                .ToList();

            deviceIndex = 0;
            deviceDetails = new string[badDevices.Count][];
            signalDetails = new string[badDevices.Count][][];

            foreach (DeviceStats deviceStats in badDevices)
            {
                deviceDetails[deviceIndex] = new string[2];
                deviceDetails[deviceIndex][0] = deviceStats.Name;
                deviceDetails[deviceIndex][1] = deviceStats.GetCorrectness(ReportDays - 1).ToString("0.##") + "%";
                deviceColumnWidthMillimeters = deviceColumnWidthMillimeters.Zip(deviceDetails[deviceIndex], (currentWidth, text) => Math.Max(currentWidth, deviceRowFont.rGetTextWidthMM(text))).ToArray();

                badSignals = deviceStats.SignalStatsLookup.Values
                    .Where(stats => stats.MeasurementsLatched[ReportDays - 1] + stats.MeasurementsUnreasonable[ReportDays - 1] > 0)
                    .OrderByDescending(stats => stats.MeasurementsLatched[ReportDays - 1] + stats.MeasurementsUnreasonable[ReportDays - 1])
                    .ToList();

                signalIndex = 0;
                signalDetails[deviceIndex] = new string[badSignals.Count][];

                foreach (SignalStats signalStats in badSignals)
                {
                    signalDetails[deviceIndex][signalIndex] = new string[4];
                    signalDetails[deviceIndex][signalIndex][0] = signalStats.Name;
                    signalDetails[deviceIndex][signalIndex][1] = signalStats.MeasurementsLatched[ReportDays - 1].ToString("#,##0");
                    signalDetails[deviceIndex][signalIndex][2] = signalStats.MeasurementsUnreasonable[ReportDays - 1].ToString("#,##0");
                    signalDetails[deviceIndex][signalIndex][3] = (signalStats.MeasurementsLatched[ReportDays - 1] + signalStats.MeasurementsUnreasonable[ReportDays - 1]).ToString("#,##0");
                    signalColumnWidthMillimeters = signalColumnWidthMillimeters.Zip(signalDetails[deviceIndex][signalIndex], (currentWidth, text) => Math.Max(currentWidth, signalRowFont.rGetTextWidthMM(text))).ToArray();

                    signalIndex++;
                }

                deviceIndex++;
            }

            // Determine the total width of the list so that it can be centered
            listWidthMillimeters = Math.Max(deviceColumnWidthMillimeters.Sum(width => width + ColumnPaddingMillimeters) - ColumnPaddingMillimeters, SignalIndentMillimeters + signalColumnWidthMillimeters.Sum(width => width + ColumnPaddingMillimeters) - ColumnPaddingMillimeters);

            for (deviceIndex = 0; deviceIndex < deviceDetails.Length; deviceIndex++)
            {
                // If the height of the device header, plus the device row, plus the signal header, plus one signal row reaches beyond the bottom of the page, start a new page
                if (verticalMillimeters + deviceHeaderFont.rSizeMM + deviceRowFont.rSizeMM + signalHeaderFont.rSizeMM + signalRowFont.rSizeMM + 4.0D * RowPaddingMillimeters > PageHeightMillimeters - PageMarginMillimeters - FooterHeightMillimeters - SpacingMillimeters)
                {
                    // Insert footer on the current page first
                    InsertFooter(fontDefinition, page, now, pageNumber);

                    // Increment the page number and create a new page
                    page = CreatePage(report);
                    pageNumber++;

                    // Add the report date to the top of the page
                    verticalMillimeters = PageMarginMillimeters;
                    verticalMillimeters += InsertReportDate(fontDefinition, page, PageMarginMillimeters) + SpacingMillimeters;
                }

                // Add the device header to the page
                horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;

                for (int i = 0; i < deviceHeaders.Length; i++)
                {
                    page.AddMM(horizontalMillimeters, verticalMillimeters + deviceHeaderFont.rSizeMM, new RepString(deviceHeaderFont, deviceHeaders[i]));
                    horizontalMillimeters += deviceColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                }

                verticalMillimeters += deviceHeaderFont.rSizeMM + RowPaddingMillimeters;

                // Add the device row to the page
                horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;

                for (int i = 0; i < deviceDetails[deviceIndex].Length; i++)
                {
                    page.AddMM(horizontalMillimeters, verticalMillimeters + deviceRowFont.rSizeMM, new RepString(deviceRowFont, deviceDetails[deviceIndex][i]));
                    horizontalMillimeters += deviceColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                }

                verticalMillimeters += deviceRowFont.rSizeMM + RowPaddingMillimeters * 2.0D;

                // Add the signal header to the page
                horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D + SignalIndentMillimeters;

                for (int i = 0; i < signalHeaders.Length; i++)
                {
                    page.AddMM(horizontalMillimeters, verticalMillimeters + signalHeaderFont.rSizeMM, new RepString(signalHeaderFont, signalHeaders[i]));
                    horizontalMillimeters += signalColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                }

                verticalMillimeters += signalHeaderFont.rSizeMM + RowPaddingMillimeters;

                // Each signal is on its own row in the details list
                foreach (string[] row in signalDetails[deviceIndex])
                {
                    // If the height of the row reaches beyond the bottom of the page, start a new page
                    if (verticalMillimeters + signalRowFont.rSizeMM > PageHeightMillimeters - PageMarginMillimeters - FooterHeightMillimeters - SpacingMillimeters)
                    {
                        // Insert footer on the current page first
                        InsertFooter(fontDefinition, page, now, pageNumber);

                        // Increment the page number and create a new page
                        page = CreatePage(report);
                        pageNumber++;

                        // Add the report date to the top of the page
                        verticalMillimeters = PageMarginMillimeters;
                        verticalMillimeters += InsertReportDate(fontDefinition, page, PageMarginMillimeters) + SpacingMillimeters;

                        // Add the device header to the new page
                        horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;

                        for (int i = 0; i < deviceHeaders.Length; i++)
                        {
                            page.AddMM(horizontalMillimeters, verticalMillimeters + deviceHeaderFont.rSizeMM, new RepString(deviceHeaderFont, deviceHeaders[i]));
                            horizontalMillimeters += deviceColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                        }

                        verticalMillimeters += deviceHeaderFont.rSizeMM + RowPaddingMillimeters;

                        // Add the device row to the new page
                        horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D;

                        for (int i = 0; i < deviceDetails[deviceIndex].Length; i++)
                        {
                            page.AddMM(horizontalMillimeters, verticalMillimeters + deviceRowFont.rSizeMM, new RepString(deviceRowFont, deviceDetails[deviceIndex][i]));
                            horizontalMillimeters += deviceColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                        }

                        verticalMillimeters += deviceRowFont.rSizeMM + RowPaddingMillimeters * 2.0D;

                        // Add the signal header to the new page
                        horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D + SignalIndentMillimeters;

                        for (int i = 0; i < signalHeaders.Length; i++)
                        {
                            page.AddMM(horizontalMillimeters, verticalMillimeters + signalHeaderFont.rSizeMM, new RepString(signalHeaderFont, signalHeaders[i]));
                            horizontalMillimeters += signalColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                        }

                        verticalMillimeters += signalHeaderFont.rSizeMM + RowPaddingMillimeters;
                    }

                    // Add the signal row to the details list
                    horizontalMillimeters = (PageWidthMillimeters - listWidthMillimeters) / 2.0D + SignalIndentMillimeters;

                    for (int i = 0; i < row.Length; i++)
                    {
                        page.AddMM(horizontalMillimeters, verticalMillimeters + signalRowFont.rSizeMM, new RepString(signalRowFont, row[i]));
                        horizontalMillimeters += signalColumnWidthMillimeters[i] + ColumnPaddingMillimeters;
                    }

                    verticalMillimeters += signalRowFont.rSizeMM + RowPaddingMillimeters;
                }

                // Add space between devices
                verticalMillimeters += RowPaddingMillimeters * 3;
            }

            // Insert the footer on the last page of the report
            InsertFooter(fontDefinition, page, now, pageNumber);
        }
Пример #56
0
        //----------------------------------------------------------------------------------------------------x
        /// <summary>Creates this report</summary>
        protected override void Create()
        {
            FontDef  fd       = new FontDef(this, FontDef.StandardFont.Helvetica);
            FontProp fp       = new FontPropMM(fd, 2.1);
            FontProp fp_Title = new FontPropMM(fd, 15);

            fp_Title.bBold = true;
            FontProp fp_SubTitle = new FontPropMM(fd, 4);

            fp_SubTitle.bBold = true;
            BrushProp bp       = new BrushProp(this, Color.LightGray);
            PenProp   pp       = new PenProp(this, 0.2, Color.FromArgb(235, 235, 235));
            PenProp   pp_Black = new PenProp(this, 0.2, Color.Black);
            Double    rY       = 40;

            new Page(this);
            page_Cur.AddCB_MM(rY, new RepString(fp_Title, "Image Sample"));

            System.IO.Stream stream = GetType().Assembly.GetManifestResourceStream("ReportSamples.Image.jpg");

            page_Cur.AddMM(20, 90, new RepImageMM(stream, 40, Double.NaN));
            page_Cur.AddMM(20, 95, new RepString(fp, "W = 40mm, H = auto."));
            page_Cur.AddMM(67, 90, new RepImageMM(stream, 40, 20));
            page_Cur.AddMM(67, 95, new RepString(fp, "W = 40mm, H = 20mm"));
            page_Cur.AddMM(114, 90, new RepImageMM(stream, Double.NaN, 30));
            page_Cur.AddMM(114, 95, new RepString(fp, "W = auto., H = 30mm"));
            page_Cur.AddMM(161, 90, new RepImageMM(stream, 30, 30));
            page_Cur.AddMM(161, 95, new RepString(fp, "W = 30mm, H = 30mm"));
            rY += 150;

            // adjust the size of a bounding rectangle
            RepRect dr = new RepRectMM(bp, 80, 60);

            page_Cur.AddMM(20, rY, dr);
            RepImage di = new RepImageMM(stream, 70, Double.NaN);

            page_Cur.AddMM(25, rY - 5, di);
            dr.rHeightMM = di.rHeightMM + 10;

            // rotated image
            di = new RepImageMM(stream, 40, 30);
            di.RotateTransform(-15);
            page_Cur.AddMM(120, rY - 33, di);

            // rotated image with rectangle
            StaticContainer sc = new StaticContainer(RT.rPointFromMM(45), RT.rPointFromMM(35));

            page_Cur.AddMM(145, rY - 35, sc);
            sc.RotateTransform(15);
//      sc.AddMM(0, 35, new RepRectMM(bp, 45, 35));
            sc.AddMM(1.25, 33.75, new RepLineMM(pp, 42.5, 0));
            sc.AddMM(1.25, 1.25, new RepLineMM(pp, 42.5, 0));
            sc.AddAlignedMM(22.5, RepObj.rAlignCenter, 17.5, RepObj.rAlignCenter, new RepImageMM(stream, 40, 30));
            rY += 30;

            // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            // alignment sample
            page_Cur.AddMM(20, rY, new RepString(fp_SubTitle, "Alignment"));
            rY += 18;
            Int32  rX = 40;
            Double rD = 20;

            bp.color = Color.DarkSalmon;
            page_Cur.AddMM(rX, rY + rD, new RepRectMM(bp, rD, rD));
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignBottom, new RepImageMM(stream, 20, Double.NaN));
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY + rD, RepObj.rAlignTop, new RepImageMM(stream, 20, Double.NaN));
            page_Cur.AddMM(rX + rD, rY, new RepImageMM(stream, 20, Double.NaN)); // default
            page_Cur.AddAlignedMM(rX + rD, RepObj.rAlignLeft, rY + rD, RepObj.rAlignTop, new RepImageMM(stream, 20, Double.NaN));
            page_Cur.AddAlignedMM(rX + rD / 2, RepObj.rAlignCenter, rY + rD / 2, RepObj.rAlignCenter, new RepImageMM(stream, 10, Double.NaN));

            // rotated
            rX = 140;
            page_Cur.AddMM(rX, rY + rD, new RepRectMM(bp, rD, rD));
            RepImage repImage = new RepImageMM(stream, 20, Double.NaN);

            repImage.RotateTransform(15);
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignBottom, repImage);
            repImage = new RepImageMM(stream, 20, Double.NaN);
            repImage.RotateTransform(15);
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY + rD, RepObj.rAlignTop, repImage);
            repImage = new RepImageMM(stream, 20, Double.NaN);
            repImage.RotateTransform(15);
            page_Cur.AddMM(rX + rD, rY, repImage); // default
            repImage = new RepImageMM(stream, 20, Double.NaN);
            repImage.RotateTransform(15);
            page_Cur.AddAlignedMM(rX + rD, RepObj.rAlignLeft, rY + rD, RepObj.rAlignTop, repImage);
            repImage = new RepImageMM(stream, 10, Double.NaN);
            repImage.RotateTransform(15);
            page_Cur.AddAlignedMM(rX + rD / 2, RepObj.rAlignCenter, rY + rD / 2, RepObj.rAlignCenter, repImage);

            // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            new Page(this);
            rY = 30;

            page_Cur.AddCB_MM(rY, new RepString(fp_Title, "Ellipse Sample"));
            rY += 15;

            // arc
            page_Cur.AddLT_MM(20, rY, new RepString(fp_SubTitle, "Arc"));
            page_Cur.AddLT_MM(50, rY, new RepRectMM(pp_Black, 40, 30));
            page_Cur.AddLT_MM(50, rY, new RepArcMM(pp_Black, 40, 30, 45, 270));
            page_Cur.AddLT_MM(100, rY, new RepArcMM(pp_Black, 15, 135, 270));
            page_Cur.AddLT_MM(150, rY, new RepArcMM(pp_Black, 40, 30, 150, 130));
            rY += 35;

            // circle
            page_Cur.AddLT_MM(20, rY, new RepString(fp_SubTitle, "Circle"));
            page_Cur.AddLT_MM(50, rY, new RepRectMM(pp_Black, 30, 30));
            page_Cur.AddLT_MM(50, rY, new RepCircleMM(pp_Black, bp, 15));
            page_Cur.AddLT_MM(100, rY, new RepCircleMM(pp_Black, 15));
            page_Cur.AddLT_MM(150, rY, new RepCircleMM(bp, 15));
            rY += 35;

            // ellipse
            page_Cur.AddLT_MM(20, rY, new RepString(fp_SubTitle, "Ellipse"));
            page_Cur.AddLT_MM(50, rY, new RepRectMM(pp_Black, 40, 30));
            page_Cur.AddLT_MM(50, rY, new RepEllipseMM(pp_Black, bp, 40, 30));
            page_Cur.AddLT_MM(100, rY, new RepEllipseMM(pp_Black, 40, 30));
            page_Cur.AddLT_MM(150, rY, new RepEllipseMM(bp, 40, 30));
            rY += 35;

            // pie ellipse
            page_Cur.AddLT_MM(20, rY, new RepString(fp_SubTitle, "Pie Ellipse"));
            page_Cur.AddLT_MM(50, rY, new RepRectMM(pp_Black, 40, 30));
            page_Cur.AddLT_MM(50, rY, new RepPieMM(pp_Black, bp, 40, 30, -135, 225));
            page_Cur.AddLT_MM(100, rY, new RepPieMM(pp_Black, 40, 30, 45, 270));
            page_Cur.AddLT_MM(150, rY, new RepPieMM(bp, 40, 30, 135, 225));
            rY += 35;

            // pie circle
            page_Cur.AddLT_MM(20, rY, new RepString(fp_SubTitle, "Pie Circle"));
            page_Cur.AddLT_MM(50, rY, new RepRectMM(pp_Black, 30, 30));
            page_Cur.AddLT_MM(50, rY, new RepPieMM(pp_Black, bp, 15, -135, 225));
            page_Cur.AddLT_MM(100, rY, new RepPieMM(pp_Black, 15, 45, 270));
            page_Cur.AddLT_MM(150, rY, new RepPieMM(bp, 15, 135, 225));
            rY += 45;

            // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            // Pie alignment sample
            page_Cur.AddMM(20, rY, new RepString(fp_SubTitle, "Pie Alignment"));
            page_Cur.AddMM(105, rY, new RepString(fp_SubTitle, "rotated 30°"));
            rY      += 25;
            rX       = 50;
            rD       = 20;
            bp.color = Color.DarkSalmon;
            page_Cur.AddAlignedMM(rX, RepObj.rAlignCenter, rY, RepObj.rAlignCenter, new RepRectMM(bp, rD, rD));
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignBottom, new RepPieMM(pp_Black, bp, rD, rD, 100, 250));
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignTop, new RepPieMM(pp_Black, bp, rD, rD, 10, 250));
            page_Cur.AddMM(rX, rY, new RepPieMM(pp_Black, bp, rD, rD, 190, 250)); // default
            page_Cur.AddAlignedMM(rX, RepObj.rAlignLeft, rY, RepObj.rAlignTop, new RepPieMM(pp_Black, bp, rD, rD, -80, 250));
            page_Cur.AddAlignedMM(rX, RepObj.rAlignCenter, rY, RepObj.rAlignCenter, new RepCircleMM(pp_Black, bp, rD / 2));

            rX = 150;
            page_Cur.AddAlignedMM(rX, RepObj.rAlignCenter, rY, RepObj.rAlignCenter, new RepRectMM(bp, rD, rD));

            RepPie pie = new RepPieMM(pp_Black, bp, rD, rD, 100, 250);

            pie.RotateTransform(30);
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignBottom, pie);
            RepRect rect = new RepRectMM(pp_Black, rD, rD);

            rect.RotateTransform(30);
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignBottom, rect);

            pie = new RepPieMM(pp_Black, bp, rD, rD, 10, 250);
            pie.RotateTransform(30);
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignTop, pie);
            rect = new RepRectMM(pp_Black, rD, rD);
            rect.RotateTransform(30);
            page_Cur.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignTop, rect);

            pie = new RepPieMM(pp_Black, bp, rD, rD, 190, 250);
            pie.RotateTransform(30);
            page_Cur.AddMM(rX, rY, pie); // default
            rect = new RepRectMM(pp_Black, rD, rD);
            rect.RotateTransform(30);
            page_Cur.AddMM(rX, rY, rect);

            pie = new RepPieMM(pp_Black, bp, rD, rD, -80, 250);
            pie.RotateTransform(30);
            page_Cur.AddAlignedMM(rX, RepObj.rAlignLeft, rY, RepObj.rAlignTop, pie);
            rect = new RepRectMM(pp_Black, rD, rD);
            rect.RotateTransform(30);
            page_Cur.AddAlignedMM(rX, RepObj.rAlignLeft, rY, RepObj.rAlignTop, rect);

            page_Cur.AddAlignedMM(rX, RepObj.rAlignCenter, rY, RepObj.rAlignCenter, new RepCircleMM(pp_Black, bp, rD / 2));
        }
Пример #57
0
    private void generarPDF(
               string CODIGO_TERRITORIO,
               string FECHA_INCRIPCION,
               string CAMPAÑA_INCRIPCION,
               string CODIGO_CONSULTORA_RECOMIENDA,
               string TIPO_CONTACTO,
               string SOLICITANTE_APELLIDO_PATERNO,
               string SOLICITANTE_APELLIDO_MATERNO,
               string SOLICITANTE_NOMBRES,
               string SOLICITANTE_FECHA_NACIMIENTO,
               string SOLICITANTE_TIPO_DOCUMENTO,
               string SOLICITANTE_NUMERO_DOCUMENTO,
               string SOLICITANTE_ESTADO_CIVIL,
               string SOLICITANTE_NIVEL_EDUCATIVO,
               string SOLICITANTE_VENDE_OTRAS_MARCAS,
               string SOLICITANTE_TELEFONO_CASA,
               string SOLICITANTE_TELEFONO_CELULAR,
               string SOLICITANTE_CORREO_ELECTRONICO,
               string SOLICITANTE_DIRECCION,
               string SOLICITANTE_REFERENCIA,
               string SOLICITANTE_CODIGO_POSTAL,
               string SOLICITANTE_PUEBLO,
               string SOLICITANTE_ESTADO,
               string SOLICITANTE_MUNICIPIO,
               string SOLICITANTE_CIUDAD,
               string SOLICITANTE_PROVINCIA,
               string DIRECCION_ENTREGA_DIRECCION,
               string DIRECCION_ENTREGA_PUEBLO,
               string DIRECCION_ENTREGA_CODIGO_POSTAL,
               string DIRECCION_ENTREGA_REFERENCIA,
               string REFERENCIA_FAMILIAR_APELLIDO_PATERNO,
               string REFERENCIA_FAMILIAR_APELLIDO_MATERNO,
               string REFERENCIA_FAMILIAR_APELLIDO_NOMBRES,
               string REFERENCIA_FAMILIAR_DIRECCION,
               string REFERENCIA_FAMILIAR_TELEFONO_RESIDENCIA,
               string REFERENCIA_FAMILIAR_TELEFONO_CELULAR,
               string REFERENCIA_FAMILIAR_TIPO_VINCULO,
               string REFERENCIA_NO_FAMILIAR_APELLIDO_PATERNO,
               string REFERENCIA_NO_FAMILIAR_APELLIDO_MATERNO,
               string REFERENCIA_NO_FAMILIAR_APELLIDO_NOMBRES,
               string REFERENCIA_NO_FAMILIAR_DIRECCION,
               string REFERENCIA_NO_FAMILIAR_TELEFONO_RESIDENCIA,
               string REFERENCIA_NO_FAMILIAR_TELEFONO_CELULAR,
               string REFERENCIA_NO_FAMILIAR_TIPO_VINCULO
       )
    {
        int m = 30;//margen
        Report report = new Report(new PdfFormatter());
        FontDef fd = new FontDef(report, "Helvetica");
        FontProp fp = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        FontProp fp1 = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        FontProp fp2 = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        FontProp fp_Title = new FontPropMM(fd, 4);
        Root.Reports.Page page = new Root.Reports.Page(report);
        fp_Title.bBold = true;
        fp1.bBold = true;
        fp2.bBold = true;
        fp2.bItalic = true;
        Double rX = 10;
        Double rY = 20;

        //Double rYTemp, rYContinue;
        Double rYcopy = rY;
        //centrado al medio del dpdf
        page.AddCB_MM(10, new RepString(fp_Title, "Visitas de Seguimiento"));
        rY += fp_Title.rLineFeedMM;

        page.AddMM(rX, rY - 12, new RepString(fp, "CÓDIGO TERRITORIAL:"));
        page.AddRightMM(rX + 4, rY - 9, new RepString(fp1, CODIGO_TERRITORIO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 50, rY - 17, new RepString(fp, "FECHA DE INSCRIPCIÓN:"));
        page.AddRightMM(rX + 64, rY - 14, new RepString(fp1, FECHA_INCRIPCION));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 120, rY - 21, new RepString(fp, "CAMPAÑA DE INSCRIPCIÒN:"));
        page.AddRightMM(rX + 130, rY - 18, new RepString(fp1, CAMPAÑA_INCRIPCION));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY - 15, new RepString(fp, "CÓDIGO CONSULTORA QUE RECOMIENDA:"));
        page.AddRightMM(rX + 18, rY - 12, new RepString(fp1, CODIGO_CONSULTORA_RECOMIENDA));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 100, rY - 19, new RepString(fp, "TIPO DE CONTACTO:"));
        page.AddRightMM(rX + 116, rY - 16, new RepString(fp1, TIPO_CONTACTO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY - 11, new RepString(fp2, "DATOS SOLICITANTE"));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY - 9, new RepString(fp, "APELLIDO PATERNO:"));
        page.AddRightMM(rX + 8, rY - 5, new RepString(fp1, SOLICITANTE_APELLIDO_PATERNO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 70, rY - 13, new RepString(fp, "APELLIDO MATERNO:"));
        page.AddRightMM(rX + 80, rY - 9, new RepString(fp1, SOLICITANTE_APELLIDO_MATERNO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 130, rY - 17, new RepString(fp, "NOMBRES:"));
        page.AddRightMM(rX + 152, rY - 13, new RepString(fp1, SOLICITANTE_NOMBRES));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY - 11, new RepString(fp, "FECHA DE NACIMIENTO:"));
        page.AddRightMM(rX + 14, rY - 7, new RepString(fp1, SOLICITANTE_FECHA_NACIMIENTO));
        rY += fp.rLineFeedMM;
        page.AddMM(rX + 70, rY - 15, new RepString(fp, "NUMERO DE DOCUMENTO DE IDENTIDAD:"));
        page.AddRightMM(rX + 73, rY - 12, new RepString(fp1, SOLICITANTE_TIPO_DOCUMENTO));
        page.AddRightMM(rX + 92, rY - 12, new RepString(fp1, SOLICITANTE_NUMERO_DOCUMENTO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY - 8, new RepString(fp, "ESTADO CIVIL:"));
        page.AddRightMM(rX + 9, rY - 5, new RepString(fp1, SOLICITANTE_ESTADO_CIVIL));
        rY += fp.rLineFeedMM;
        page.AddMM(rX + 50, rY - 12, new RepString(fp, "NIVEL EDUCATIVO:"));
        page.AddRightMM(rX + 67, rY - 9, new RepString(fp1, SOLICITANTE_NIVEL_EDUCATIVO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 100, rY - 16, new RepString(fp, "¿VENDE OTRAS MARCAS?:"));
        page.AddRightMM(rX + 105, rY - 13, new RepString(fp1, SOLICITANTE_VENDE_OTRAS_MARCAS));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY - 10, new RepString(fp, "TELÉFONO CASA:"));
        page.AddRightMM(rX + 15, rY - 7, new RepString(fp1, SOLICITANTE_TELEFONO_CASA));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 70, rY - 14, new RepString(fp, "TELÉFONO CELULAR:"));
        page.AddRightMM(rX + 85, rY + -11, new RepString(fp1, SOLICITANTE_TELEFONO_CELULAR));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY - 8, new RepString(fp, "CORREO ELECTRÓNICO:"));
        page.AddRightMM(rX + 30, rY - 4, new RepString(fp1, SOLICITANTE_CORREO_ELECTRONICO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY, new RepString(fp, "DIRECCIÓN:"));
        page.AddRightMM(rX + 15, rY + 4, new RepString(fp1, SOLICITANTE_DIRECCION));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 8, new RepString(fp, "REFERENCIA:"));
        page.AddRightMM(rX + 16, rY + 12, new RepString(fp1, SOLICITANTE_REFERENCIA));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 70, rY + 4, new RepString(fp, "CÓDIGO POSTAL:"));
        page.AddRightMM(rX + 86, rY + 8, new RepString(fp1, SOLICITANTE_CODIGO_POSTAL));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 12, new RepString(fp, "PUEBLO:"));
        page.AddRightMM(rX + 11, rY + 16, new RepString(fp1, SOLICITANTE_PUEBLO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 70, rY + 8, new RepString(fp, "ESTADO:"));
        page.AddRightMM(rX + 81, rY + 12, new RepString(fp1, SOLICITANTE_ESTADO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 130, rY + 4, new RepString(fp, "MUNICIPIO:"));
        page.AddRightMM(rX + 144, rY + 8, new RepString(fp1, SOLICITANTE_MUNICIPIO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 12, new RepString(fp, "CIUDAD:"));
        page.AddRightMM(rX + 11, rY + 16, new RepString(fp1, SOLICITANTE_CIUDAD));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 70, rY + 8, new RepString(fp, "PROVINCIA:"));
        page.AddRightMM(rX + 84, rY + 12, new RepString(fp1, SOLICITANTE_PROVINCIA));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 18, new RepString(fp2, "DIRECCIÓN ENTREGA"));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 19, new RepString(fp, "DIRECCIÓN:"));
        page.AddRightMM(rX + 14, rY + 23, new RepString(fp1, DIRECCION_ENTREGA_DIRECCION));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 68, rY + 15, new RepString(fp, "PUEBLO:"));
        page.AddRightMM(rX + 79, rY + 19, new RepString(fp1, DIRECCION_ENTREGA_PUEBLO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 130, rY + 12, new RepString(fp, "CÓDIGO POSTAL:"));
        page.AddRightMM(rX + 146, rY + 15, new RepString(fp1, DIRECCION_ENTREGA_CODIGO_POSTAL));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 16, new RepString(fp, "REFERENCIA:"));
        page.AddRightMM(rX + 16, rY + 20, new RepString(fp1, DIRECCION_ENTREGA_REFERENCIA));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 25, new RepString(fp2, " REFERENCIA FAMILIAR"));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 26, new RepString(fp, "APELLIDO PATERNO:"));
        page.AddRightMM(rX + 12, rY + 29, new RepString(fp1, REFERENCIA_FAMILIAR_APELLIDO_PATERNO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 70, rY + 22, new RepString(fp, "APELLIDO MATERNO:"));
        page.AddRightMM(rX + 82, rY + 25, new RepString(fp1, REFERENCIA_FAMILIAR_APELLIDO_MATERNO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 130, rY + 18, new RepString(fp, "NOMBRES:"));
        page.AddRightMM(rX + 143, rY + 21, new RepString(fp1, REFERENCIA_FAMILIAR_APELLIDO_NOMBRES));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 22, new RepString(fp, "DIRECCIÓN:"));
        page.AddRightMM(rX + 14, rY + 25, new RepString(fp1, REFERENCIA_FAMILIAR_DIRECCION));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 27, new RepString(fp, "TELÉFONO RESIDENCIA:"));
        page.AddRightMM(rX + 15, rY + 31, new RepString(fp1, REFERENCIA_FAMILIAR_TELEFONO_RESIDENCIA));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 70, rY + 24, new RepString(fp, "TELÉFONO CELULAR:"));
        page.AddRightMM(rX + 83, rY + 27, new RepString(fp1, REFERENCIA_FAMILIAR_TELEFONO_CELULAR));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 29, new RepString(fp, "TIPO VÍNCULO:"));
        page.AddRightMM(rX + 15, rY + 32, new RepString(fp1, REFERENCIA_FAMILIAR_TIPO_VINCULO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 36, new RepString(fp2, " REFERENCIA NO FAMILIAR"));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 38, new RepString(fp, "APELLIDO PATERNO:"));
        page.AddRightMM(rX + 13, rY + 41, new RepString(fp1, REFERENCIA_NO_FAMILIAR_APELLIDO_PATERNO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 70, rY + 34, new RepString(fp, "APELLIDO MATERNO:"));
        page.AddRightMM(rX + 83, rY + 37, new RepString(fp1, REFERENCIA_NO_FAMILIAR_APELLIDO_MATERNO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 130, rY + 31, new RepString(fp, "NOMBRES:"));
        page.AddRightMM(rX + 145, rY + 34, new RepString(fp1, REFERENCIA_NO_FAMILIAR_APELLIDO_NOMBRES));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 35, new RepString(fp, "DIRECCIÓN:"));
        page.AddRightMM(rX + 15, rY + 38, new RepString(fp1, REFERENCIA_NO_FAMILIAR_DIRECCION));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 41, new RepString(fp, "TELÉFONO RESIDENCIA:"));
        page.AddRightMM(rX + 14, rY + 45, new RepString(fp1, REFERENCIA_NO_FAMILIAR_TELEFONO_RESIDENCIA));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 70, rY + 36, new RepString(fp, "TELÉFONO CELULAR:"));
        page.AddRightMM(rX + 82, rY + 41, new RepString(fp1, REFERENCIA_NO_FAMILIAR_TELEFONO_CELULAR));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 45, new RepString(fp, "TIPO VÍNCULO:"));
        page.AddRightMM(rX + 14, rY + 49, new RepString(fp1, REFERENCIA_NO_FAMILIAR_TIPO_VINCULO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 51, new RepString(fp2, "ADICIONAL"));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 54, new RepString(fp, "PROFESIÓN:"));
        page.AddRightMM(rX + 14, rY + 58, new RepString(fp1, REFERENCIA_NO_FAMILIAR_TIPO_VINCULO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX+30, rY + 50, new RepString(fp, "LUGAR DE TRABAJO:"));
        page.AddRightMM(rX + 44, rY + 54, new RepString(fp1, REFERENCIA_NO_FAMILIAR_TIPO_VINCULO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 66, rY + 46, new RepString(fp, "TELÉFONO DE TRABAJO:"));
        page.AddRightMM(rX + 80, rY + 50, new RepString(fp1, REFERENCIA_NO_FAMILIAR_TIPO_VINCULO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 106, rY + 42, new RepString(fp, "HORA DE VISITA:"));
        page.AddRightMM(rX + 121, rY + 46, new RepString(fp1, REFERENCIA_NO_FAMILIAR_TIPO_VINCULO));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 48, new RepString(fp, "NÚMERO DE HIJOS:"));
        page.AddRightMM(rX + 30, rY + 48, new RepString(fp1, "5"));
        rY += fp.rLineFeedMM;

        page.AddMM(rX, rY + 48, new RepString(fp, "INFANTES:"));
        page.AddRightMM(rX + 17, rY + 48, new RepString(fp1, "1"));
        rY += fp.rLineFeedMM;

        page.AddMM(rX +25, rY + 44, new RepString(fp, "ESCOLARES:"));
        page.AddRightMM(rX + 45, rY + 44, new RepString(fp1, "2"));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 55, rY + 40, new RepString(fp, "NIVEL SUPERIOR:"));
        page.AddRightMM(rX + 82, rY + 40, new RepString(fp1, "1"));
        rY += fp.rLineFeedMM;

        page.AddMM(rX + 89, rY + 36, new RepString(fp, "ADULTOS INDEPENDIENTES:"));
        page.AddRightMM(rX + 131, rY + 36, new RepString(fp1, "1"));
        rY += fp.rLineFeedMM;

        page = new Root.Reports.Page(report);
        //FontDef fdb = new FontDef(report, "Helvetica");
        FontProp fpb = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        FontProp fpb2 = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        FontProp fpb3 = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        Double _rX = 10;
        Double _rY = 20;
        fpb.bBold = true;
        fpb.bItalic = true;
        fpb2.bBold = true;
        page.AddMM(_rX, _rY, new RepString(fpb, " VISITAS"));
        _rY += fpb.rLineFeedMM;

        page.AddMM(_rX + 20, _rY-4, new RepString(fpb2, "REGIÓN: 00"));
        page.AddRightMM(_rX + 55, _rY-4, new RepString(fpb2, "ZONA: 0000"));
        _rY += fpb.rLineFeedMM;

        page.AddMM(_rX + 5, _rY - 1, new RepString(fpb2, "FECHA"));
        page.AddRightMM(_rX + 43, _rY - 1, new RepString(fpb2, "OBSERVACIÓN"));
        _rY += fpb.rLineFeedMM;

        page.AddMM(_rX + 5, _rY , new RepString(fpb3, "20/10/2010"));
        page.AddRightMM(_rX + 51, _rY , new RepString(fpb3, "Observación de visita 1"));
        _rY += fpb.rLineFeedMM;

        page.AddMM(_rX + 5, _rY+2, new RepString(fpb3, "12/11/2010"));
        page.AddRightMM(_rX + 51, _rY+2, new RepString(fpb3, "Observación de visita 2"));
        _rY += fpb.rLineFeedMM;

        page.AddMM(_rX + 5, _rY+4, new RepString(fpb3, "08/12/2010"));
        page.AddRightMM(_rX + 51, _rY+4, new RepString(fpb3, "Observación de visita 3"));
        _rY += fpb.rLineFeedMM;

         /*   Report report = new Report(new PdfFormatter());
        FontDef fd = new FontDef(report, "Helvetica");
        FontProp fp = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        FontProp fp1 = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        FontProp fp2 = new FontPropMM(fd, 2, System.Drawing.Color.Black);
        FontProp fp_Title = new FontPropMM(fd, 4);
        Root.Reports.Page page = new Root.Reports.Page(report);*/

        //fp1.bBold = true;
        //fp2.bBold = true;
        //fp2.bItalic = true;
        //Double rX = 10;
        //Double rY = 20;

        /*page.AddMM(rX, rY, new RepString(fp, "Año:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "falta año")); //falta de donde sacar año
         rY += fp.rLineFeedMM;

         page.AddMM(rX, rY, new RepString(fp, "CAMP."));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;

         page.AddMM(rX, rY, new RepString(fp, "Código consultora que recomienda:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;

         page.AddMM(rX, rY, new RepString(fp, "Consultora que recomienda :"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "falta nombre consultora")); //falta obtener nombre consultora recomienda
         rY += fp.rLineFeedMM;

         page.AddMM(rX, rY, new RepString(fp, "Selección Premio:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "falta sacar premio")); //falta de donde sacar premio
         // rY += fp.rLineFeedMM;

         rX = 20;
         rY += 10;
         rYTemp = rY;
         page.AddMM(rX, rY, new RepString(fp, "Primer Apellido:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         page.AddMM(rX, rY, new RepString(fp, "Primer Nombre:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         page.AddMM(rX, rY, new RepString(fp, "Fecha nacimiento:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         page.AddMM(rX, rY, new RepString(fp, "Estado civil:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         page.AddMM(rX, rY, new RepString(fp, "Nivel Educativo :"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         //page.AddMM(rX, rY, new RepString(fp, "Selección Premio:"));
         //page.AddRightMM(rX + 80, rY, new RepInt32(fp, 0, "$#;($#);Zero"));
         //rYContinue = rY;

         rX += 90;
         rY = rYTemp;
         page.AddMM(rX, rY, new RepString(fp, "Segundo apellido:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         page.AddMM(rX, rY, new RepString(fp, "Segundo Nombre:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         page.AddMM(rX, rY, new RepString(fp, "Doc de identidad:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         page.AddMM(rX, rY, new RepString(fp, "Número:"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         page.AddMM(rX, rY, new RepString(fp, "Vendes otras Marcas :"));
         page.AddRightMM(rX + 80, rY, new RepString(fp, "aa"));
         rY += fp.rLineFeedMM;
         //page.AddMM(rX, rY, new RepString(fp, "Selección Premio:"));
         //page.AddRightMM(rX + 80, rY, new RepInt32(fp, 0, "$#;($#);Zero"));
         */

        string archivo = "sc" + DateTime.Now.Second + DateTime.Now.Millisecond;
        //report.Save(@"C:\Bcaribe\" + archivo + ".pdf");

        //return archivo;
        RT.ViewPDF(report, "Visitas de Seguimiento.pdf");
    }
Пример #58
0
		public cReport() {
			rpt = new Report();
			rptPage = new Root.Reports.Page(rpt); 
			fd = new FontDef(rpt, FontDef.StandardFont.Helvetica);
		}
        /// <summary>
        /// Crea un reporte
        /// </summary>
        /// <returns></returns>
        public Report Generar()
        {
            // Inicialización de los componentes del documento
            Report rReporte = new Report(new PdfFormatter());
            FontDef fd = new FontDef(rReporte, _sFont);
            FontProp fp = new FontProp(fd, _iSize);
            Page pPagina = new Page(rReporte);
            cUDGDFSOLICITUDNegocios sSolicitudes = new cUDGDFSOLICITUDNegocios(0, "", 0, "");
            DataTable dtSolicitudes;
            String[] sUsuarios;
            int iContadorUsuarios = 1;

            // Obtiene las solicitudes aprobadas dentro del rango de fechas
            dtSolicitudes = sSolicitudes.SeleccionarAprobadas(_sfechainicio, _sfechafin);

            // Imprime el documento
            // Encabezado del documento
            InsertarTitulo("Reporte de reservaciones", fp, pPagina, rReporte);
            InsertarTitulo(_sfechainicio.ToShortDateString() + " - " + _sfechafin.ToShortDateString(), fp, pPagina, rReporte);
            InsertarLinea("", fp, pPagina, rReporte);

            // Resumen del documento
            InsertarSubtitulo("Resumen de reservaciones", fp, pPagina, rReporte);
            foreach (Instalacion insLocal in GenerarResumen(dtSolicitudes))
            {
                InsertarLinea("Reservaciones para " + insLocal.sInstalacion + ": " + insLocal.iContador + ".", fp, pPagina, rReporte);
            }
            InsertarLinea("", fp, pPagina, rReporte);
            InsertarDivisor(fp, pPagina, rReporte);
            InsertarLinea("", fp, pPagina, rReporte);

            // Imprime cada solicitud
            InsertarSubtitulo("Solicitudes aprobadas dentro del rango de fechas", fp, pPagina, rReporte);
            InsertarLinea("", fp, pPagina, rReporte);

            foreach (DataRow drRow in dtSolicitudes.Rows)
            {
                InsertarLinea("Identificacion de solicitud: " + drRow[0].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Fecha inicio: " + DateTime.Parse(drRow[2].ToString()).ToShortDateString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Fecha fin: " + DateTime.Parse(drRow[3].ToString()).ToShortDateString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Fecha de la solicitud: " + DateTime.Parse(drRow[4].ToString()).ToShortDateString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Hora inicio: " + drRow[5].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Hora fin: " + drRow[6].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Nombre de encargado: " + drRow[7].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Nombre de institucion/grupo: " + drRow[8].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Identificacion encargado: " + drRow[9].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Tipo de Solicitante: " + drRow[20].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Observaciones: " + drRow[11].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Razon de uso: " + drRow[12].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Correo solicitante: " + drRow[14].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Usuarios:", fp, pPagina, rReporte);
                sUsuarios = drRow[16].ToString().Split(',');
                foreach (String sLocal in sUsuarios)
                {
                    InsertarLinea(iContadorUsuarios + ". " + sLocal, fp, pPagina, rReporte);
                    iContadorUsuarios++;
                }
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Cantidad de usuarios hombres: " + drRow[17].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarLinea("Cantidad de usuarios mujeres: " + drRow[18].ToString(), fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
                InsertarDivisor(fp, pPagina, rReporte);
                InsertarLinea("", fp, pPagina, rReporte);
            }

            // retorna el documento para poder ser presentado al usuario
            return rReporte;
        }
        //------------------------------------------------------------------------------------------30.10.2004
        /// <summary>Creates this report.</summary>
        /// <remarks>
        /// This method overrides the method <see cref="Root.Reports.Report.Create"/> of the base class <see cref="Root.Reports.Report"/>.
        /// </remarks>
        protected override void Create()
        {
            fontDef_Helvetica = new FontDef(this, FontDef.StandardFont.TimesRoman);
            FontProp fontProp_Text = new FontPropMM(fontDef_Helvetica, 1.9);  // standard font
            FontProp fontProp_Header = new FontPropMM(fontDef_Helvetica, 1.9);  // font of the table header
            fontProp_Header.bBold = true;

            // create table
            TableLayoutManager tlm;
            using (tlm = new TableLayoutManager(fontProp_Header))
            {
                tlm.rContainerHeightMM = rPosBottom - rPosTop;  // set height of table
                tlm.tlmCellDef_Header.rAlignV = RepObj.rAlignCenter;  // set vertical alignment of all header cells
                tlm.tlmCellDef_Default.penProp_LineBottom = new PenProp(this, 0.05, Color.LightGray);  // set bottom line for all cells
                tlm.tlmHeightMode = TlmHeightMode.AdjustLast;
                tlm.eNewContainer += new TableLayoutManager.NewContainerEventHandler(Tlm_NewContainer);

                // define columns
                TlmColumn col;


                col = new TlmColumnMM(tlm, "Nome Plano", 35);
                col.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine;

                col = new TlmColumnMM(tlm, "Data Início", 25);

                col = new TlmColumnMM(tlm, "Data Fim", 25);

                col = new TlmColumnMM(tlm, "Valor Orçamento", 30);

                col = new TlmColumnMM(tlm, "Valor Gasto", 30);

                col = new TlmColumnMM(tlm, "Saldo Orçamento", 30);

                List<Orcamento> listaOrcamento = (List<Orcamento>)RelatorioDTO.DadosRelatorio;
                foreach (Orcamento orcamento in listaOrcamento)
                {
                    tlm.NewRow();
                    tlm.Add(0, new RepString(fontProp_Text, orcamento.NomePlano));

                    tlm.Add(1, new RepString(fontProp_Text, orcamento.InicioVigencia.Value.ToString("dd/MM/yyyy") ));

                    tlm.Add(2, new RepString(fontProp_Text, orcamento.FimVigencia.Value.ToString("dd/MM/yyyy")));

                    tlm.Add(3, new RepString(fontProp_Text, String.Format("{0:C2}", orcamento.ValorOrcamento.Value)));

                    tlm.Add(4, new RepString(fontProp_Text, String.Format("{0:C2}", orcamento.ValorFinanceiroReal)));

                    tlm.Add(5, new RepString(fontProp_Text, String.Format("{0:C2}", orcamento.SaldoDisponivelOrcamento)));
                }
            }

            //page_Cur.AddCT_MM(rPosLeft + tlm.rWidthMM / 2, rPosTop + tlm.rCurY_MM + 2, new RepString(fontProp_Text, "- end of table -"));

            // print page number and current date/time
            Double rY = rPosBottom + 1.5;
            foreach (Page page in enum_Page)
            {
                page.AddLT_MM(rPosLeft, rY, new RepString(fontProp_Text, DateTime.Now.ToShortDateString() + "  " + DateTime.Now.ToShortTimeString()));
                page.AddRT_MM(rPosRight, rY, new RepString(fontProp_Text, page.iPageNo + " / " + iPageCount));
            }
        }