private void report_FillEmptySpace(object sender, BandEventArgs e) { if (!(bool)DrawZBelowTheTableParameter.Value) { FillEmptySpace -= report_FillEmptySpace; return; } int bandHeight = GraphicsUnitConverter.Convert(e.Band.Height, ReportUnit.ToDpi(), ReportUnit.HundredthsOfAnInch.ToDpi()); if (bandHeight <= 30) { return; } Size size = new Size(612, bandHeight - 30); Size sizeInPixels = XRConvert.Convert(size, GraphicsDpi.HundredthsOfAnInch, GraphicsDpi.Pixel); Bitmap zBitmap = new Bitmap(sizeInPixels.Width, sizeInPixels.Height); Graphics gr = Graphics.FromImage(zBitmap); using (Pen pen = new Pen(Color.FromArgb(205, 205, 205), 4)) { Point[] points = new Point[] { new Point(0, 4), new Point(sizeInPixels.Width, 4), new Point(0, sizeInPixels.Height - 4), new Point(sizeInPixels.Width, sizeInPixels.Height - 4) }; gr.DrawLines(pen, points); } XRPictureBox pictureBox = new XRPictureBox(); pictureBox.BackColor = Color.Transparent; pictureBox.Size = size; pictureBox.Location = new Point(19, 15); pictureBox.Image = zBitmap; e.Band.Controls.Add(pictureBox); }
private void XtraReport1_FillEmptySpace(object sender, BandEventArgs e) { int labelsCount = Convert.ToInt32(e.Band.Height / this.dummyDetailBandLabel.Height); Size targetSize = new Size((this.PageWidth - this.Margins.Left - this.Margins.Right), e.Band.Height); Size labelSize = new Size(this.dummyDetailBandLabel.Width, this.dummyDetailBandLabel.Height); Size targetSizeInPixels = XRConvert.Convert(targetSize, GraphicsDpi.HundredthsOfAnInch, GraphicsDpi.Pixel); Size labelSizeInPixels = XRConvert.Convert(labelSize, GraphicsDpi.HundredthsOfAnInch, GraphicsDpi.Pixel); Bitmap targetBitmap = new Bitmap(targetSizeInPixels.Width, targetSizeInPixels.Height); Graphics gr = Graphics.FromImage(targetBitmap); Point pt = new Point(0, 0); Size sz = new Size(targetSizeInPixels.Width, labelSizeInPixels.Height); for (int i = 0; i < labelsCount; i++) { if (i % 2 == 0) { gr.FillRectangle(Brushes.LightBlue, new Rectangle(pt, sz)); } else { gr.FillRectangle(Brushes.Khaki, new Rectangle(pt, sz)); } pt.Y += labelSizeInPixels.Height; } XRPictureBox pictureBox = new XRPictureBox(); pictureBox.BackColor = Color.Transparent; pictureBox.Size = targetSize; pictureBox.Location = new Point(0, 0); pictureBox.Image = targetBitmap; e.Band.Controls.Add(pictureBox); }
static List <int> GetColumnsBestFitWidth(DataTable dataTable, Font font) { List <int> optimalColumnWidth = new List <int>(); float maxWidth = 0; float tempWidth = 0; for (int i = 1; i < dataTable.Rows.Count; i++) { tempWidth = MeasureWidth(dataTable.Rows[i][0].ToString(), font); maxWidth = maxWidth > tempWidth ? maxWidth : tempWidth; } optimalColumnWidth.Add(Convert.ToInt32(XRConvert.Convert(maxWidth, GraphicsUnit.Pixel, GraphicsUnit.Inch) * 100 + 1)); for (int i = 1; i < dataTable.Columns.Count; i++) { tempWidth = MeasureWidth(dataTable.Columns[i].ColumnName.ToString(), font); maxWidth = 50 > tempWidth ? 50 : tempWidth; optimalColumnWidth.Add(Convert.ToInt32(XRConvert.Convert(maxWidth, GraphicsUnit.Pixel, GraphicsUnit.Inch) * 100 + 1)); } return(optimalColumnWidth); }
private XtraReport BuildLabelReport(CustomLabelReportModel model) { var report = new XtraReport(); PaperKindList paperKindList = InitPaperKindList(model, report); report.ReportUnit = model.MeasurementUnit == System.Drawing.GraphicsUnit.Millimeter ? ReportUnit.TenthsOfAMillimeter : ReportUnit.HundredthsOfAnInch; report.PaperKind = paperKindList.PaperKind; report.Landscape = paperKindList.Landscape; report.RollPaper = false; float labelDpi = GraphicsDpi.UnitToDpi(model.MeasurementUnit); int top = (int)XRConvert.Convert(model.TopMargin, labelDpi, report.Dpi); int left = (int)XRConvert.Convert(model.LeftMargin, labelDpi, report.Dpi); int right = (int)XRConvert.Convert(model.RightMargin, labelDpi, report.Dpi); int bottom = (int)XRConvert.Convert(model.BottomMargin, labelDpi, report.Dpi); report.Margins = new Margins(left, right, top, bottom); float labelWidth = XRConvert.Convert(model.LabelWidth, labelDpi, report.Dpi); float labelHeight = XRConvert.Convert(model.LabelHeight, labelDpi, report.Dpi); DetailBand detail = new DetailBand(); report.Bands.Add(detail); XRPanel panel = new XRPanel(); panel.CanGrow = false; detail.Controls.Add(panel); panel.WidthF = labelWidth; panel.HeightF = labelHeight; panel.Borders = BorderSide.All; detail.HeightF = XRConvert.Convert(model.VerticalPitch, labelDpi, report.Dpi); var labelInfo = DevExpress.XtraReports.Wizards.Builder.ReportInfoFactory.CreateLabelInfo(GetDefaultLabelReportMode(model)); report.ReportPrintOptions.DetailCountOnEmptyDataSource = labelInfo.CalculateLabelCount(paperKindList.Size, paperKindList.UnitDpi); if (labelInfo.MoreOneColumnOnPage(paperKindList.Size, paperKindList.UnitDpi)) { detail.MultiColumn.ColumnWidth = XRConvert.Convert(labelInfo.LabelWidth, labelDpi, report.Dpi); detail.MultiColumn.ColumnSpacing = XRConvert.Convert(labelInfo.HPitch - labelInfo.LabelWidth, labelDpi, report.Dpi); detail.MultiColumn.Layout = ColumnLayout.AcrossThenDown; } return(report); }