1. XRTableCell常见属性
XRTableCell xrTableCell = new XRTableCell();
A. 字体及字体大小
xrTableCell.Font = new System.Drawing.Font("Arial", FontSize);
B. 内容是否可以换行
xrTableCell.WordWrap = False;
C. 文本对齐方式
xrTableCell.TextAlignment=DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
D. 边框是否显示及边框宽度
xrTableCell.Borders = DevExpress.XtraPrinting.BorderSide.All;
xrTableCell.BorderWidth = 0.5F;
E. 宽度和高度
xrTableCell.WidthF = 30;
xrTableCell.HeightF = 30;
F. XRTableCell文本前景色
xrTableCell.ForeColor=Color.Red;
G. XRTableCell文本内容左右间隔;
DevExpress.XtraPrinting.PaddingInfo padRight= new DevExpress.XtraPrinting.PaddingInfo();
padRight.Right = 4;
XRTableCell xrTableCell = new XRTableCell();
xrTableCell.Padding = padRight;
2. xrTable合并单元格(主要针对旧版本)
在新做的一个页面要用到xrTable合并单元格。我先在Design界面加了一个GroupHeader,随后又在GroupHeader中放了一个XRPanel,最后在XRPanel放入由xrTable嵌套的实现合并XRTableCell的功能,最后导致每一页在切换到下一页时输入很奇怪的一条线,最后查了两三天才发现这个问题。后来经过确认其实不需要加XRPanel的,直接放入嵌套的xrTable就可以了,深刻的教训,值得深思!
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using DevExpress.XtraReports.UI; using System.Drawing.Printing; using System.Linq.Expressions; namespace DevExpressConsole { public partial class TrendAndReport : DevExpress.XtraReports.UI.XtraReport { public TrendAndReport() { InitializeComponent(); PrintDocument(); } private void PrintDocument() { float TotalWidth = this.PageWidth - this.Margins.Left - this.Margins.Right; float CellHeight = 30; float CondtWidth = 30; for (int i = 0; i <= 7; i++) { XRTable TableContainer = new XRTable(); TableContainer.CanGrow = true; TableContainer.BeginInit(); for(int j=0;j<8;j++) { XRTableRow TCRow = new XRTableRow(); TCRow.CanGrow = true; XRTableCell OrderNo = new XRTableCell(); OrderNo.CanGrow = true; OrderNo.WidthF = TotalWidth - CondtWidth - 400; OrderNo.HeightF = CellHeight; OrderNo.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; OrderNo.ProcessDuplicates = DevExpress.XtraReports.UI.ValueSuppressType.Suppress; OrderNo.Text = j + 1 + ""; OrderNo.WordWrap = true; TCRow.Cells.Add(OrderNo); XRTableCell Happy = new XRTableCell(); Happy.CanGrow = true; Happy.WidthF = 400; Happy.HeightF = CellHeight; Happy.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; Happy.Text = "I am very happy with this! "; Happy.WordWrap = true; TCRow.Cells.Add(Happy); XRTableCell HW = new XRTableCell(); HW.CanGrow = true; HW.WidthF = 200; HW.HeightF = CellHeight; HW.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; HW.Text = "Hello World! "; HW.WordWrap = true; TCRow.Cells.Add(HW); TableContainer.Rows.Add(TCRow); } TableContainer.KeepTogether = true; TableContainer.AdjustSize(); TableContainer.EndInit(); XRTable xrTab = new XRTable(); xrTab.CanGrow = true; xrTab.BeginInit(); xrTab.LocationF = new PointF(0, 25 + TableContainer.HeightF * i); XRTableRow row = new XRTableRow(); row.CanGrow = true; XRTableCell cell = new XRTableCell(); cell.CanGrow = true; cell.Borders = DevExpress.XtraPrinting.BorderSide.All; cell.Controls.Add(TableContainer); cell.WidthF = TableContainer.WidthF; row.Cells.Add(cell); XRTableCell CONT = new XRTableCell(); CONT.CanGrow = true; CONT.Text = "Cont'd"; CONT.WidthF = CondtWidth; CONT.HeightF = TableContainer.HeightF; CONT.Angle = 270; CONT.Borders = DevExpress.XtraPrinting.BorderSide.All; CONT.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; row.Cells.Add(CONT); GroupHeader1.Controls.Add(xrTab); xrTab.WidthF = TotalWidth; xrTab.HeightF = TableContainer.HeightF; xrTab.Rows.Add(row); xrTab.AdjustSize(); xrTab.EndInit(); } } } }