⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clsprocgridexport.cs.svn-base

📁 以构建的方式来实现对通用的查询统计
💻 SVN-BASE
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using DevExpress.XtraGrid.Views.BandedGrid;
using DevExpress.XtraGrid.Views.BandedGrid;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid;
using DevExpress.Data;

namespace dist.hb.EnvQueryStat.Stat
{
  /// <summary>
  /// 当主分组是属性时,进行非地图的统计
  /// </summary>
  class clsProcGridExport
  {
    #region "类模块初始化"
    public clsStatEnv StatEnv;
    public clsCreateStatTable StatTable;
    public DevExpress.XtraGrid.GridControl gridControl1;
    public DevExpress.XtraGrid.Views.Grid.GridView gridView1;
    public DevExpress.XtraGrid.GridControl gridControl2;
    public DevExpress.XtraGrid.Views.BandedGrid.AdvBandedGridView advBandedGridView2;
    public clsProcGridExport()
    {
      StatEnv = null;
      gridControl1 = null;
      gridView1 = null;
      advBandedGridView2 = null;
      StatTable = null;
    }
    #endregion
    public void ExportGrid()
    {
      if (StatEnv == null || StatTable == null) return;
      if (StatEnv.SecondGroupField == "" || StatEnv.SecondGroupList == null || StatEnv.SecondGroupList.Count == 0)
      {
        ExportGridView();
      }
      else
      {
        ExporBandedGridView();
      }
    }

    private void ExportGridView()
    {
      if (gridControl1 == null || gridView1 == null) return;
      gridView1.Columns.Clear();
      foreach (DataColumn var in StatTable.workTable.Columns)
      {
        DevExpress.XtraGrid.Columns.GridColumn gColumn = CreateGridColumn(var);
        gridView1.Columns.Add(gColumn);
        string ColumnType = var.DataType.Name.ToLower();
        if (ColumnType.Contains("int") || ColumnType.Contains("double"))
        {
          //增加汇总字段
          gColumn.SummaryItem.SetSummary(SummaryItemType.Sum, "");
          gColumn.SummaryItem.FieldName = var.ColumnName; 
        }
      }

      gridControl1.DataSource = StatTable.workTable;
      //gridView1.BestFitColumns();

    }
    private DevExpress.XtraGrid.Columns.GridColumn  CreateGridColumn(DataColumn dc)
    {
      if (dc == null) return null;
      DevExpress.XtraGrid.Columns.GridColumn gColumn = new DevExpress.XtraGrid.Columns.GridColumn();
      gColumn.FieldName = dc.ColumnName;
      gColumn.Caption = dc.Caption;
      gColumn.Name = "gridColumn_" + dc.ColumnName;
      gColumn.Visible = true;
      gColumn.MinWidth = 80;
      gColumn.Width = 90;
      gColumn.VisibleIndex = gridView1.Columns.Count;
      return gColumn;
    }

    private void ExporBandedGridView()
    {
      if (gridControl2 == null || advBandedGridView2 == null || StatTable == null) return;

      advBandedGridView2.Bands.Clear();
      advBandedGridView2.Columns.Clear();

      gridControl2.DataSource = StatTable.workTable;
      System.Type stringType;
      stringType = System.Type.GetType("System.String");
      clsProcMainGroupField procField = new clsProcMainGroupField();
      procField.StatEnv = StatEnv;
      GridBand gBand;
      if (StatEnv.MainGroupType == 0) gBand = CreateGridBand("行政区域", "行政区域", 180);
      else gBand = CreateGridBand("行政区域", "统计分类", 180);
      gBand.AppearanceHeader.Options.UseTextOptions = true;
      gBand.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;

      advBandedGridView2.Bands.Add(gBand);
      BandedGridColumn column1;
     column1 =  CreateBandedGridColumn(procField.GetMainFieldCode(), "代码", 90);
     advBandedGridView2.Columns.Add(column1);
     gBand.Columns.Add(column1);
     column1 = CreateBandedGridColumn(procField.GetMainFieldName(), "名称", 90);
     advBandedGridView2.Columns.Add(column1);
     gBand.Columns.Add(column1);

     foreach (myItemInfo var1 in StatTable.SecondGroupList)
     {
       gBand = CreateGridBand(var1.ItemCode, var1.ItemName, 180);
       gBand.AppearanceHeader.Options.UseTextOptions = true;
       gBand.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;

       advBandedGridView2.Bands.Add(gBand);
       int iWidth = 0;
       foreach (StatItem var in StatTable.StatItemList)
       {
         string fieldName = var.fieldName + "_" + var1.ItemCode;
         column1 = CreateBandedGridColumn(fieldName, var.fieldCapion, 90);
         iWidth += 90;
         advBandedGridView2.Columns.Add(column1);
         gBand.Columns.Add(column1);
         column1.SummaryItem.FieldName = fieldName;
         column1.SummaryItem.SetSummary(SummaryItemType.Sum, "");
       }
       gBand.Width = iWidth;

     }
    }
    private GridBand CreateGridBand(string name, string caption, int width)
    {
      GridBand gridBand1 = new GridBand();
      gridBand1.Caption = caption;
      //gridBand1.Columns.Add(this.bandedGridColumn3);
      gridBand1.Name = name;
      gridBand1.Width = width;
      return gridBand1;
    }
    private BandedGridColumn CreateBandedGridColumn(string name, string caption, int width)
    {
      BandedGridColumn bandedGridColumn = new BandedGridColumn();

      bandedGridColumn.Caption = caption;
      bandedGridColumn.Name = name;
      bandedGridColumn.FieldName = name;
      bandedGridColumn.Visible = true;
      bandedGridColumn.Width = width;
      //this.advBandedGridView2.Columns.AddRange(new DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn[] {
      //      this.bandedGridColumn1,
      //      this.bandedGridColumn2,
      //      this.bandedGridColumn3,
      //      this.bandedGridColumn4});
      return bandedGridColumn;

    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -