//----------------------------------------------------------------------------------------------------x /// <summary>Creates this document</summary> private void FontTest() { FontProp fp_Title = new FontPropMM(fontDef, 12); fp_Title.bBold = true; fp = new FontPropMM(fontDef, 6); fp_Small = new FontPropMM(fontDef, 1.4); fp_XSmall = new FontPropMM(fontDef, 0.8); bp = new BrushProp(this, Color.FromArgb(200, 200, 200)); page_Cur = new Page(this); page_Cur.AddCB_MM(30, new RepString(fp_Title, "Font Test")); rX = 300; rY = 40; for (Int32 i = 32; i < 127; i++) { PrintCharacter(i); } for (Int32 i = 161; i < 256; i++) { PrintCharacter(i); } PrintCharacter('€'); }
private void AddCardToPage(MemoryStream s, double X, double Y, int rot = 90) { StaticContainer sc = new StaticContainer(64, 89); BrushProp bp = new BrushProp(this, Color.FromArgb(21, 20, 22)); BrushProp bW = new BrushProp(this, Color.FromArgb(255, 255, 255)); // Full Cover //page_Cur.AddAlignedMM(X, RepObj.rAlignCenter, Y, RepObj.rAlignCenter, new RepRectMM(bp, 89, 64)); // Image page_Cur.AddMM(X, Y, sc); sc.RotateTransform(rot); Bitmap m = new Bitmap(Image.FromStream(s)); Color v = m.GetPixel(20, 20); sc.AddAlignedMM(0, RepObj.rAlignCenter, 0, RepObj.rAlignCenter, new RepImageMM(s, 63, 88)); if (v.R < 40 && v.G < 40 && v.B < 40) { // Cover Corners // Left page_Cur.AddAlignedMM(X - 44.5, RepObj.rAlignLeft, Y, RepObj.rAlignCenter, new RepRectMM(bp, 1.5, 64)); // Right page_Cur.AddAlignedMM(X + 44.5, RepObj.rAlignRight, Y, RepObj.rAlignCenter, new RepRectMM(bp, 1.5, 64)); // Top page_Cur.AddAlignedMM(X, RepObj.rAlignCenter, Y - 32, RepObj.rAlignTop, new RepRectMM(bp, 89, 1.5)); // Bottom page_Cur.AddAlignedMM(X, RepObj.rAlignCenter, Y + 32, RepObj.rAlignBottom, new RepRectMM(bp, 89, 1.5)); } }
//----------------------------------------------------------------------------------------------------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)); }
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)); } }
protected override void Create() { fd = new FontDef(this, "Arial"); FontProp fp = new FontPropMM(fd, 1.9); FontProp fp_Encabezado = new FontPropMM(fd, 1.9); fp_Encabezado.bBold = true; TableLayoutManager tlm = new TableLayoutManager(fp_Encabezado); tlm.rContainerHeightMM = rPosInferior - rPosSuperior; tlm.headerCellDef.rAlignV = RepObj.rAlignCenter; tlm.cellDef.pp_LineBottom = new PenProp(this, 0.05, Color.LightGray); tlm.eNewContainer += new TableLayoutManager.NewContainerEventHandler(Tlm_NewContainer); TableLayoutManager.Column col; col = new TableLayoutManager.ColumnMM(tlm, "Nro.", 15); col = new TableLayoutManager.ColumnMM(tlm, "Fecha", 18); col.cellDef.rAlignH = RepObj.rAlignRight; col = new TableLayoutManager.ColumnMM(tlm, "Proveedor", 54); col.cellDef.textMode = TableLayoutManager.TextMode.MultiLine; col = new TableLayoutManager.ColumnMM(tlm, "Partida", 22); col.cellDef.textMode = TableLayoutManager.TextMode.MultiLine; col = new TableLayoutManager.ColumnMM(tlm, "Unidad Solicitante", 69); col.cellDef.textMode = TableLayoutManager.TextMode.MultiLine; col = new TableLayoutManager.ColumnMM(tlm, "Observaciones", 69); col.cellDef.textMode = TableLayoutManager.TextMode.MultiLine; col = new TableLayoutManager.ColumnMM(tlm, "Monto", 23); col.cellDef.rAlignH = RepObj.rAlignRight; BrushProp bp_Anulada = new BrushProp(this, Color.FromArgb(255, 255, 200)); rDatos = ComprasSuministrosBD.ObtenerOrdenesCompras(rSector, rDesde, rHasta); while (rDatos.Read()) { tlm.cellDef.bp_Back = ((rDatos["Indi_Anulacion"].ToString() == "1") ? bp_Anulada : null); tlm.NewRow(); tlm.Add(0, new RepString(fp, rDatos["Nro_Comp"].ToString())); tlm.Add(1, new RepString(fp, rDatos["Fecha_Orden"].ToString().Substring(0, 10))); tlm.Add(2, new RepString(fp, rDatos["Nombre"].ToString())); tlm.Add(3, new RepString(fp, rDatos["Codigo"].ToString())); tlm.Add(4, new RepString(fp, rDatos["Direccion"].ToString())); tlm.Add(5, new RepString(fp, rDatos["Observacion"].ToString())); tlm.Add(6, new RepString(fp, rDatos["Monto"].ToString())); } rDatos.Close(); //tlm. foreach (Page page in enum_Page) { Double rY = rPosInferior + 1.5; page.SetLandscape(); page.AddLT_MM(rPosIzquierda, rY, new RepString(fp, DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString())); page.AddRT_MM(rPosDerecha, rY, new RepString(fp, page.iPageNo + " / " + iPageCount)); } }
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)); } }
protected override void Create() { FontDef fd = new FontDef(this, "Arial"); FontProp fp = new FontPropMM(fd, 2.1); FontProp fp_Title = new FontPropMM(fd, 18); fp_Title.bBold = true; BrushProp bp = new BrushProp(this, System.Drawing.Color.LightGray); PenProp pp = new PenProp(this, 0.2, Color.FromArgb(235, 235, 235)); new Page(this); Double rY = 40; //exception page_Cur.AddCenteredMM(rY, new RepString(fp_Title, "Image Sample")); fp_Title.rSizeMM = 4; 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.rMM(45), RT.rMM(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_Title, "Alignment")); rY += 18; Int32 rX = 100; 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)); }
//----------------------------------------------------------------------------------------------------x /// <summary>Creates this report</summary> protected override void Create() { FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica); FontProp fp = new FontPropMM(fd, 3); FontProp fp_Title = new FontPropMM(fd, 20); fp_Title.bBold = true; FontProp fp_Small = new FontPropMM(fd, 1.3); PenProp pp = new PenPropMM(this, 0.2, Color.Blue); BrushProp bp = new BrushProp(this, Color.FromArgb(240, 240, 240)); #region Page 1 Page page = new Page(this); page.AddCB_MM(40, new RepString(fp_Title, "Text Sample")); fp_Title.rSizeMM = 4; fp_Title.rLineFeedMM = 8; // font sample Double rX = 20; Double rY = 60; page.AddMM(rX, rY, new RepString(fp_Title, "Fonts")); rY += fp_Title.rLineFeedMM; FontDef[] aFontDef = { new FontDef(this, FontDef.StandardFont.Courier), fd, new FontDef(this, FontDef.StandardFont.TimesRoman) }; foreach (FontDef fontDef in aFontDef) { FontProp fp_Test = new FontPropMM(fontDef, 2.8); page.AddMM(rX, rY, new RepString(fp_Test, fontDef.sFontName)); fp_Test.bBold = true; page.AddMM(rX + 30, rY, new RepString(fp_Test, fontDef.sFontName + " Bold")); fp_Test.bBold = false; fp_Test.bItalic = true; page.AddMM(rX + 72, rY, new RepString(fp_Test, fontDef.sFontName + " Italic")); fp_Test.bItalic = false; fp_Test.bUnderline = true; page.AddMM(rX + 120, rY, new RepString(fp_Test, fontDef.sFontName + " Underline")); rY += fp.rLineFeedMM; } rY += 3; aFontDef = new FontDef[] { new FontDef(this, "Symbol"), new FontDef(this, "ZapfDingbats") }; foreach (FontDef fontDef in aFontDef) { FontProp fp_Test = new FontPropMM(fontDef, 3); page.AddMM(rX, rY, new RepString(fp, fontDef.sFontName)); page.AddMM(rX + 30, rY, new RepString(fp_Test, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")); rY += fp.rLineFeedMM; } rY += 10; // Int32 sample rX = 20; Double rYcopy = rY; page.AddMM(rX, rY, new RepString(fp_Title, "Int32 Values")); rY += fp_Title.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "no format string")); page.AddRightMM(rX + 80, rY, new RepInt32(fp, 12345)); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"0000000\"")); page.AddRightMM(rX + 80, rY, new RepInt32(fp, 12345, "0000000")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"$#,#\"")); page.AddRightMM(rX + 80, rY, new RepInt32(fp, 12345, "$#,#")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"$#;($#);Zero\"")); page.AddRightMM(rX + 80, rY, new RepInt32(fp, 12345, "$#;($#);Zero")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"$#;($#);Zero\"")); page.AddRightMM(rX + 80, rY, new RepInt32(fp, -12345, "$#;($#);Zero")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"$#;($#);Zero\"")); page.AddRightMM(rX + 80, rY, new RepInt32(fp, 0, "$#;($#);Zero")); // Single / Double sample rX = 115; rY = rYcopy; page.AddMM(rX, rY, new RepString(fp_Title, "Single / Double Values")); rY += fp_Title.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "no format string")); page.AddRightMM(rX + 80, rY, new RepReal64(fp, 123.456)); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"0.0000\"")); page.AddRightMM(rX + 80, rY, new RepReal64(fp, 123.456, "0.0000")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"$#,#0.00\"")); page.AddRightMM(rX + 80, rY, new RepReal64(fp, 123.456, "$#,#0.00")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"$#.0;($#.0);Zero\"")); page.AddRightMM(rX + 80, rY, new RepReal64(fp, 123.456, "$#.0;($#.0);Zero")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"$#.0;($#.0);Zero\"")); page.AddRightMM(rX + 80, rY, new RepReal64(fp, -123.456, "$#.0;($#.0);Zero")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"$#.0;($#.0);Zero\"")); page.AddRightMM(rX + 80, rY, new RepReal64(fp, 0, "$#.0;($#.0);Zero")); rY += fp.rLineFeedMM + 10; // DateTime sample rX = 20; rYcopy = rY; page.AddMM(rX, rY, new RepString(fp_Title, "DateTime Values")); rY += fp_Title.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "no format string")); page.AddRightMM(rX + 80, rY, new RepDateTime(fp, DateTime.Now)); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"D\"")); page.AddRightMM(rX + 80, rY, new RepDateTime(fp, DateTime.Now, "D")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"t\"")); page.AddRightMM(rX + 80, rY, new RepDateTime(fp, DateTime.Now, "t")); rY += fp.rLineFeedMM; page.AddMM(rX, rY, new RepString(fp, "format \"dd.MM.yyyy\"")); page.AddRightMM(rX + 80, rY, new RepDateTime(fp, DateTime.Now, "dd.MM.yyyy")); // color sample StaticContainer sc = new StaticContainer(RT.rPointFromMM(100), RT.rPointFromMM(100)); page.AddMM(115, rYcopy + 5, sc); sc.RotateTransform(-8); sc.AddAlignedMM(-2, RepObj.rAlignLeft, -6, RepObj.rAlignTop, new RepRectMM(bp, 85, 33)); rY = 0; sc.AddMM(0, rY, new RepString(fp_Title, "Colors")); rY += fp_Title.rLineFeedMM; sc.AddMM(0, rY, new RepString(fp, "Red")); fp.color = Color.Red; fp.bUnderline = true; sc.AddRightMM(80, rY, new RepString(fp, "ABCDEFGHIJKLM")); fp.color = Color.Black; fp.bUnderline = false; rY += fp.rLineFeedMM; sc.AddMM(0, rY, new RepString(fp, "Green")); fp.color = Color.Green; fp.bUnderline = true; sc.AddRightMM(80, rY, new RepString(fp, "ABCDEFGHIJKLM")); fp.color = Color.Black; fp.bUnderline = false; rY += fp.rLineFeedMM; sc.AddMM(0, rY, new RepString(fp, "Blue")); fp.color = Color.Blue; fp.bUnderline = true; sc.AddRightMM(80, rY, new RepString(fp, "ABCDEFGHIJKLM")); fp.color = Color.Black; fp.bUnderline = false; rY += fp.rLineFeedMM; sc.AddMM(0, rY, new RepString(fp, "RGB(255,180,255)")); fp.color = Color.FromArgb(200, 200, 255); fp.bUnderline = true; sc.AddRightMM(80, rY, new RepString(fp, "ABCDEFGHIJKLM")); fp.color = Color.Black; fp.bUnderline = false; rY += rYcopy + fp.rLineFeedMM + 10; // alignment sample rX = 20; String s = "Alignment"; page.AddMM(rX, rY, new RepString(fp_Title, s)); Double rLengthMM = fp_Title.rGetTextWidthMM(s); page.AddMM(rX, rY + 3, new RepLineMM(pp, rLengthMM, 0)); page.AddMM(rX, rY + 2, new RepLineMM(pp, 0, 2)); page.AddMM(rX + rLengthMM, rY + 2, new RepLineMM(pp, 0, 2)); page.AddAlignedMM(rX + rLengthMM / 2, RepObj.rAlignCenter, rY + 4, RepObj.rAlignTop, new RepReal64(fp_Small, rLengthMM, "0.0 mm")); rX = 100; rY += fp_Title.rLineFeedMM; Double rD = 15; bp.color = Color.LightSkyBlue; page.AddMM(rX, rY + rD, new RepRectMM(bp, rD, rD)); page.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignBottom, new RepString(fp, "right - bottom")); page.AddAlignedMM(rX, RepObj.rAlignRight, rY + rD, RepObj.rAlignTop, new RepString(fp, "right - top")); page.AddMM(rX + rD, rY, new RepString(fp, "left - bottom")); // default page.AddAlignedMM(rX + rD, RepObj.rAlignLeft, rY + rD, RepObj.rAlignTop, new RepString(fp, "left - top")); page.AddAlignedMM(rX + rD / 2, RepObj.rAlignCenter, rY + rD / 2, RepObj.rAlignCenter, new RepString(fp, "center")); rY += 30; // rotated string rX = 60; page.AddMM(20, rY, new RepString(fp_Title, "Rotated Strings")); rY += fp_Title.rLineFeedMM + 10; rYcopy = rY; rD = 10; page.AddMM(rX, rY + rD, new RepRectMM(bp, rD, rD)); fp.rAngle = 45; page.AddAlignedMM(rX + rD, RepObj.rAlignLeft, rY + rD, RepObj.rAlignTop, new RepString(fp, "[45°]")); fp.rAngle = 135; page.AddMM(rX, rY + rD, new RepString(fp, "[135°]")); fp.rAngle = 225; page.AddAlignedMM(rX, RepObj.rAlignLeft, rY, RepObj.rAlignTop, new RepString(fp, "[225°]")); fp.rAngle = 315; page.AddMM(rX + rD, rY, new RepString(fp, "[315°]")); fp.rAngle = 0; rX = 155; rY = rYcopy; fp.bUnderline = true; page.AddMM(rX, rY + rD, new RepRectMM(bp, rD, rD)); fp.rAngle = 45; page.AddAlignedMM(rX, RepObj.rAlignRight, rY, RepObj.rAlignBottom, new RepString(fp, "1/4 * PI")); fp.rAngle = 135; page.AddAlignedMM(rX + rD, RepObj.rAlignRight, rY, RepObj.rAlignTop, new RepString(fp, "3/4 * PI")); fp.rAngle = 225; page.AddAlignedMM(rX + rD, RepObj.rAlignRight, rY + rD, RepObj.rAlignBottom, new RepString(fp, "5/4 * PI")); fp.rAngle = 315; page.AddAlignedMM(rX, RepObj.rAlignRight, rY + rD, RepObj.rAlignTop, new RepString(fp, "7/4 * PI")); fp.rAngle = 0.0; fp.bUnderline = false; rY += 35; #endregion #region Page 2 rX = 20; rY = 60; String sText = "Once upon a time there was a miller who was poor, but he had a beautiful daughter." + Environment.NewLine + "Now it happened that he was talking with the king one time, and in order to make himself seem important, " + "he said to the king, \"I have a daughter who can spin straw into gold.\""; page = new Page(this); page.AddMM(rX, rY, new RepString(fp_Title, "Best Fitting Font")); rY += fp_Title.rLineFeedMM; page.AddLT_MM(rX, rY, new RepRectMM(bp, 80, 40)); FontProp fp_BestFit = fp_Title.fontProp_GetBestFitMM(sText, 80, 40, 1); rY += fp_BestFit.rLineFeedMM; Int32 iStart = 0; while (iStart <= sText.Length) { String sLine = fp_BestFit.sGetTextLine(sText, RT.rPointFromMM(80), ref iStart, TextSplitMode.Line); page.AddMM(rX, rY, new RepString(fp_BestFit, sLine)); rY += fp_BestFit.rLineFeedMM; } rY += 10; page.AddLT_MM(rX, rY, new RepRectMM(bp, 40, 40)); fp_BestFit = fp.fontProp_GetBestFitMM(sText, 40, 40, 1); rY += fp_BestFit.rLineFeedMM; iStart = 0; while (iStart <= sText.Length) { String sLine = fp_BestFit.sGetTextLine(sText, RT.rPointFromMM(40), ref iStart, TextSplitMode.Line); page.AddMM(rX, rY, new RepString(fp_BestFit, sLine)); rY += fp_BestFit.rLineFeedMM; } rY += 10; page.AddLT_MM(rX, rY, new RepRectMM(bp, 30, 30)); fp_BestFit = fp.fontProp_GetBestFitMM(sText, 30, 30, 1); rY += fp_BestFit.rLineFeedMM; iStart = 0; while (iStart <= sText.Length) { String sLine = fp_BestFit.sGetTextLine(sText, RT.rPointFromMM(30), ref iStart, TextSplitMode.Line); page.AddMM(rX, rY, new RepString(fp_BestFit, sLine)); rY += fp_BestFit.rLineFeedMM; } #endregion }
public void Run() { MemoryStream stream; MemoryStream refbg = loadImageFile("\\art\\reference.png"); FontDef fd = new FontDef(this, FontDef.StandardFont.Courier); FontProp fp = new FontPropMM(fd, 2.1); 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); bool deckdbl = decklist.doublesided; List <Card> cards = decklist.Values.ToList(); List <string> cardArts = new List <string>(); List <string> cardArtsBack = new List <string>(); foreach (Card c in cards) { for (int i = 0; i < c.cardQty; i++) { cardArts.Add(c.filePathFront); // if the card has a flip but we're not doing double sided if (c.twin && !deckdbl) { cardArts.Add(c.filePathBack); } // if the card has a flip and we're doing double sided else if (c.twin && deckdbl) { cardArtsBack.Add(c.filePathBack); } // if the card doesn't have a flip and we're doing double sided else if (!c.twin && deckdbl) { cardArtsBack.Add("\\art\\pback.png"); } } } int cardid = 0; int cardidback = 0; for (int pageNum = 0; pageNum < decklist.getPageCount(); pageNum++) { // Make a page new Page(this); page_Cur.rWidthMM = 215.9; page_Cur.rHeightMM = 279.4; page_Cur.AddMM(0, 279.4, new RepImageMM(refbg, 215.9, 279.4)); page_Cur.AddAlignedMM(215.9 / 2, RepObj.rAlignCenter, 27.5, RepObj.rAlignTop, new RepString(fp, "Print on 12pt Matte -- No Scaling -- Full Color -- One Copy")); page_Cur.AddAlignedMM(215.9 / 2, RepObj.rAlignCenter, 22.5, RepObj.rAlignTop, new RepString(fp, "Print Coated 3 -- Maximum Printer Density -- 100% Color")); // Layout the Cards for (int cardPos = 0; cardPos < decklist.getCardsOnPage(pageNum); cardPos++) { if (cardArts[cardid] == null) { cardid++; } stream = loadImageFile(cardArts[cardid]); if (stream != null) { AddCardToPage(stream, Center(cardPos)); } cardid++; } if (deckdbl) { page_Cur.AddAlignedMM(215.9 / 2, RepObj.rAlignCenter, 279.4 - 27.5, RepObj.rAlignTop, new RepString(fp, "Double sided -- Flipped on Short Edge")); // Make a page new Page(this); page_Cur.rWidthMM = 215.9; page_Cur.rHeightMM = 279.4; page_Cur.AddMM(0, 279.4, new RepImageMM(refbg, 215.9, 279.4)); page_Cur.AddAlignedMM(215.9 / 2, RepObj.rAlignCenter, 27.5, RepObj.rAlignTop, new RepString(fp, "Print on 12pt Matte -- No Scaling -- Full Color -- One Copy")); // Layout the Cards for (int cardPos = 0; cardPos < decklist.getCardsOnPage(pageNum); cardPos++) { stream = loadImageFile(cardArtsBack[cardidback]); AddCardToPage(stream, CenterBackA(cardPos), 3.75); cardidback++; } page_Cur.AddAlignedMM(215.9 / 2, RepObj.rAlignCenter, 279.4 - 27.5, RepObj.rAlignTop, new RepString(fp, "Double sided -- Flipped on Short Edge")); } } }