zoukankan      html  css  js  c++  java
  • 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;

    }

    }

    效果图如下:

    clip_image001

    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;

    }

    }

    盗用网上一张效果图:

    clip_image002

    3.自适应列宽

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

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

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

    grid.BestFit();

    }

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

    clip_image003

  • 相关阅读:
    fiximulator
    Maven POM 模板[z]
    Sentinel 实战-控制台篇[z]
    Sentinel 实战-限流篇[z]
    RPC 框架
    如何手写实现简易的Dubbo[z]
    降级、熔断、限流[z]
    Transfix
    Memcached和Memcache安装(64位win7)[z]
    Oracle分区表例子
  • 原文地址:https://www.cnblogs.com/wanglj2007/p/5503091.html
Copyright © 2011-2022 走看看