//------------------------------------------------------------------------------------------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));
            }
        }
        //------------------------------------------------------------------------------------------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));
            }
        }
Exemple #3
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));
      }
    }
        //------------------------------------------------------------------------------------------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));
            }
        }
Exemple #6
0
        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.Helvetica);
            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("ReportSamples.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", 36);

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

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

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

                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("ReportSamples.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));
            }
        }
        /// <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.Helvetica);
            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, "Level", 30);

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


                TlmColumn col_Phone = new TlmColumnMM(tlm, "Email", 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;

                // open data set
                foreach (var user in users)
                {
                    tlm.NewRow();
                    switch (user.Level)
                    {
                    case 1:
                    {
                        tlm.Add(0, new RepString(fontProp_Text, Levels.Novice.ToString()));
                        break;
                    }

                    case 2:
                    {
                        tlm.Add(0, new RepString(fontProp_Text, Levels.Intermediate.ToString()));
                        break;
                    }

                    case 3:
                    {
                        tlm.Add(0, new RepString(fontProp_Text, Levels.Advanced.ToString()));
                        break;
                    }
                    }

                    tlm.Add(1, new RepString(fontProp_Text, user.Login));
                    tlm.Add(2, new RepString(fontProp_Text, user.Email));
                }
            }

            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() + "                                                             generated by Knowledge Management System"));
                page.AddRT_MM(rPosRight, rY, new RepString(fontProp_Text, page.iPageNo + " / " + iPageCount));
            }
        }