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

  • 相关阅读:
    链队列的实现
    LeetCode——Count Complete Tree Nodes
    LeetCode——Lowest Common Ancestor of a Binary Search Tree
    LeetCode——Palindrome Linked List
    中文乱码问题及其解决办法
    LeetCode——Valid Anagram
    TCP/IP网络知识点总结
    深入理解javascript原型和闭包——从【自由变量】到【作用域链】
    AJAX笔试面试题汇总
    前端开发面试知识点大纲
  • 原文地址:https://www.cnblogs.com/wanglj2007/p/5503091.html
Copyright © 2011-2022 走看看