XtraReport交叉表自适应行高及最佳列宽(转)

1.自适应行头的行高,绑定CustomRowHeight事件,代码如下:

private Graphics gr = Graphics.FromHwnd(IntPtr.Zero);

private void pivotGrid1_CustomRowHeight(object sender, HuanSi.XtraReports.UI.PivotGrid.PivotCustomRowHeightEventArgs e) {

e.RowHeight = 20;

var grid=sender as HuanSi.XtraReports.UI.XRPivotGrid;

var list=e.Data.GetFieldsByArea(HuanSi.XtraPivotGrid.PivotArea.RowArea, false);

foreach (var item in list)

{

var obj=grid.GetFieldValue(item, e.RowIndex);

if (obj == null)

continue;

var font = (item as HuanSi.XtraReports.UI.PivotGrid.XRPivotGridField).Appearance.Cell.Font;

SizeF size = gr.MeasureString(obj.ToString(), font, item.Width);

int height = Convert.ToInt32(Math.Ceiling(size.Height));

e.RowHeight = e.RowHeight > height ? e.RowHeight : height;

}

}

效果图如下:

2.自适应数据的行高,同样绑定CustomRowHeight事件,代码如下:

private Graphics gr = Graphics.FromHwnd(IntPtr.Zero);

private void xrPivotGrid1_CustomRowHeight_1(object sender, PivotCustomRowHeightEventArgs e) {

e.RowHeight = 0;

for (int i = 0; i <= e.ColumnCount - 1; i++) {

string value = e.GetRowCellValue(i).ToString();

SizeF size = gr.MeasureString(value, e.DataField.Appearance.Cell.Font, e.DataField.Width);

int height = Convert.ToInt32(Math.Ceiling(size.Height));

e.RowHeight = e.RowHeight > height ? e.RowHeight : height;

}

}

盗用网上一张效果图:

3.自适应列宽

自适应列宽则极其简单,绑定BeforePrint事件即可,代码如下:

private void pivotGrid1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {

var grid=sender as HuanSi.XtraReports.UI.XRPivotGrid;

grid.BestFit();

}

再次盗用DX官方的一张效果图:

原文地址:https://www.cnblogs.com/ThreeGrowthPlan/p/9391505.html

时间: 2024-09-30 14:58:46

XtraReport交叉表自适应行高及最佳列宽(转)的相关文章

XtraReport交叉表自适应行高及最佳列宽

1.自适应行头的行高,绑定CustomRowHeight事件,代码如下: private Graphics gr = Graphics.FromHwnd(IntPtr.Zero); private void pivotGrid1_CustomRowHeight(object sender, HuanSi.XtraReports.UI.PivotGrid.PivotCustomRowHeightEventArgs e) { e.RowHeight = 20; var grid=sender as

excel制作田字格,excel行高磅,列宽1/10英寸;

打开一个excel表格,发现列宽是行高的4倍: 开始-格式中查看,发现行高14.25磅,列宽8.38*1/10英寸: 网上百度,了解1英寸=72磅: 那么列宽8.38=60.336磅: 60.336英镑/14.25磅=4.234; 与我们肉眼观察到的结果大致一致: 问题来了,那制作田字格,4个正方形的格子,14.25磅等于多长的列宽? 14.25/72*10=1.979,然后你会发现excel中无法调整这个宽度: excel可以通过鼠标放置行线/列线处,变成双箭头时,点击鼠标左键查看长度/像素:

Excel快速删除空白行与调整行高列宽的方法,学会了很实用

Excel表格作为大家经常使用的办公文档,在使用的过程中我们也会遇到各种问题,比如常见的行高列宽的调整.空白行的删除的等等.今天小编就为大家带来了Excel快速删除空白行与行高列宽的方法,希望可以帮助到大家. 一:调整行高列宽 作为Excel表格最常见的问题之一,我们在办公中常用到的调整行高列宽的方法主要有两种,都非常的简单方便. 方法1: 第一种方法也是最简单的一种方法,把鼠标光标放置在行高或者是列宽线条上时,就会出现一个[黑色双箭头]的标志,点击即可拉动线条调整行高.列宽.(唯一的弊端是行高

line-height 行高

line-height 行高指一行文字的高度,具体来说是指两行文子间基线间的距离      line-height 与 font-size 的计算值之差(行距)分为两半,分别加到一个文本行内容的顶部和底部.可以包含这些内容的最小框就是行框. 行高是指上下文本行的基线间的垂直距离,即图中两条红线间垂直距离. 行距是指一行底线到下一行顶线的垂直距离,即第一行粉线和第二行绿线间的垂直距离. 半行距是行距的一半,即区域3垂直距离/2,区域1,2,3,4的距离之和为行高,而区域1,2,4距离之和为字体si

tableView计算动态行高的总结

研究tableView怎么计算动态行高研究了两天一直还不太会,今天最终做出来了想要的效果. 首先.我在网上搜集了非常多资料,各种大神的总结,然后開始看.研究.试验,基本思路都是一样的. 1.一定要将label的numberOfLine设为0 2.获得文字信息所须要的size 3.将label的height设为titleSize.height 4.在- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIn

【转】css行高line-height的一些深入理解及应用

一.前言 前两天在腾讯ISD团队博客上看到一篇翻译的文章“深入理解css 行高”,是个不错的文章,学到了不少东西,建议您看看. 这里,我也要讲讲我对line-height的一些理解,所讲解的东西绝大多数与上面提到的“深入理解css 行高”是不重复的,可以说是补充或是另外一个角度的思考.另外,将结合实际,展示line-height的一些特性和一些常见应用,帮助您对css行高line-height的理解.所讲述的并不一定都是正确的,欢迎指正欢迎交流. 二.一些字面意思“行高”顾名思意指一行文字的高度

在固定宽度 下计算出实际的行高

//根据字符串内容的多少  在固定宽度 下计算出实际的行高 - (CGFloat)HelperTextHeightFromTextString:(NSString *)text width:(CGFloat)textWidth fontSize:(CGFloat)size { if ([self heperGetCurrentIOS] >= 7.0) { //iOS7之后 /* 第一个参数: 预设空间 宽度固定  高度预设 一个最大值 第二个参数: 行间距 如果超出范围是否截断 第三个参数: 属

[转]对tableView三种计算动态行高方法的分析

tableView是一个神奇的东西,可以这么说,就算是一个初学者如果能把tableView玩的很6,那编一般的iOS的需求都问题不大了.tableView是日常开发中用烂了的控件,但是关于tableView中的自定义cell的动态行高,还是有一些玄机的.笔者本次主要是因为预估行高的方法的问题作为了一个契机顺带写了此文对几种动态行高方法的分析. 旧方法 现在常规的动态行高的计算方法还是用 [str boundingRectWithSize:size options:NSStringDrawingU

DataGridView使用技巧五:自动设定列宽和行高

一.设定行高和列宽自动调整 设定包括Header和所有单元格的列宽自动调整 1 //设置包括Header和所有单元格的列宽自动调整 2 this.dgv_PropDemo.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; 设定包括Header和所有单元格的行高自动调整 1 //设置包括Header和所有单元格的行高自动调整 2 this.dgv_PropDemo.AutoSizeRowsMode = DataGridV