当前位置: 首页>>代码示例>>C#>>正文


C# Table.InsertRowsAndInherit方法代码示例

本文整理汇总了C#中Table.InsertRowsAndInherit方法的典型用法代码示例。如果您正苦于以下问题:C# Table.InsertRowsAndInherit方法的具体用法?C# Table.InsertRowsAndInherit怎么用?C# Table.InsertRowsAndInherit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Table的用法示例。


在下文中一共展示了Table.InsertRowsAndInherit方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetTable

        public Table GetTable()
        {
            Database db = HostApplicationServices.WorkingDatabase;
             CellRange mCells;
             Table table = new Table();
             table.TableStyle = ToTable.getTableStyle(db);
             // Размер таблицы
             table.SetSize(3, Enum.GetValues(typeof(ColEnum)).Length);
             // Ширина столбцов
             foreach (var item in table.Columns)
             {
            item.Width = 35;
            item.Alignment = CellAlignment.MiddleCenter;
             }
             table.Columns[0].Width = 10;
             table.Rows[1].Height = 15;

             // Заголовки столбцов и название таблицы
             table.Cells[1, (int)ColEnum.RoomNumber].TextString = "№пом.";
             table.Cells[1, (int)ColEnum.RoomName].TextString = "Наименование";
             table.Cells[1, (int)ColEnum.CeilMaterial].TextString = "Потолок";
             table.Cells[1, (int)ColEnum.CeilArea].TextString = "Площадь, м2";
             table.Cells[1, (int)ColEnum.CarniceMaterial].TextString = "Потолочный карниз";
             table.Cells[1, (int)ColEnum.CarniceLenght].TextString = "Длина, п.м.";
             table.Cells[1, (int)ColEnum.WallMaterial].TextString = "Стены";
             table.Cells[1, (int)ColEnum.WallArea].TextString = "Площадь стен, м2";
             table.Cells[1, (int)ColEnum.DeckMaterial].TextString = "Пол";
             table.Cells[1, (int)ColEnum.DeckArea].TextString = "Площадь, м2";
             table.Cells[1, (int)ColEnum.BaseboardMaterial].TextString = "Плинтус";
             table.Cells[1, (int)ColEnum.BaseboardLenght].TextString = "Длина, п.м.";
             table.Cells[1, (int)ColEnum.Description].TextString = "Примечание";

             // Заполнение помещений
             FillRoomsMaterial(table);
             int row = table.Rows.Count - 1;

             // Заполнение итогов
             // одна строка отступа.
             // Объединение строки между помещениями и итогом по матаериалам.
             mCells = CellRange.Create(table, row, 0, row, Enum.GetValues(typeof(ColEnum)).Length - 1);
             table.MergeCells(mCells);
             row++;
             table.InsertRowsAndInherit(row, row-1, 1);
             table.Cells[row, 0].TextString = "Итого материалов в этой квартире";
             table.Cells[row, 0].Alignment = CellAlignment.MiddleCenter;
             row++;
             table.InsertRowsAndInherit(row, 2, 1);
             // заполнение итогов по материалам
             FillTotalMaterials(table,row);

             table.GenerateLayout();
             return table;
        }
开发者ID:vildar82,项目名称:AR_Materials,代码行数:53,代码来源:RoomTable.cs

示例2: FillRowMaterial

 private void FillRowMaterial(Table table, int row, Room room, EnumConstructionType construction)
 {
     var materials = room.Materials.Where(m => m.Construction == construction && !string.IsNullOrWhiteSpace(m.Name));
      int countMaters = materials.Count();
      int maxRow = (table.Rows.Count-1) - row;
      if (countMaters > 0)
      {
     if (countMaters > maxRow)
     {
        //table.InsertRowsAndInherit(row + maxRow+1,2, countMaters - maxRow);
        table.InsertRowsAndInherit(table.Rows.Count, 2, countMaters - maxRow);
        maxRow = countMaters;
     }
     ColEnum colName;
     ColEnum colValue;
     getColEnumFromConstructionEnum(construction, out colName, out colValue);
     foreach (var item in materials)
     {
        table.Cells[row, (int)colName].TextString = item.Name;
        table.Cells[row, (int)colValue].TextString = item.PresentValue.ToString();
        row++;
     }
      }
 }
开发者ID:vildar82,项目名称:AR_Materials,代码行数:24,代码来源:RoomTable.cs

示例3: FillTotalMaterials

 // заполнение итогов по всем материалам одной конструкции
 private void FillTotalMaterials(Table table, int rowStart)
 {
     CellRange mCells;
      // группировка всех материалов по типу коеструкции
      var maters = _rooms.SelectMany(r => r.Materials).GroupBy(m => m.Construction);
      foreach (var matersSomeConstr in maters)
      {
     // группировка по имени материала
     var materSomeName = matersSomeConstr.GroupBy(m => m.Name, StringComparer.CurrentCultureIgnoreCase);
     int countMaterSome = materSomeName.Count();
     int curRowsToMater = table.Rows.Count - rowStart;
     if (curRowsToMater < countMaterSome)
     {
        table.InsertRowsAndInherit(table.Rows.Count, 2, countMaterSome- curRowsToMater);
     }
     int row = rowStart;
     foreach (var mater in materSomeName)
     {
        if (matersSomeConstr.Key == EnumConstructionType.Undefined) continue;
        mCells = CellRange.Create(table, row, (int)ColEnum.RoomNumber, row, (int)ColEnum.RoomName);
        table.MergeCells(mCells);
        // mater - должен быть всегда один материал.
        var value = mater.Sum(m => m.PresentValue).ToString();
        ColEnum colName;
        ColEnum colValue;
        getColEnumFromConstructionEnum(matersSomeConstr.Key, out colName, out colValue);
        table.Cells[row, (int)colName].TextString = mater.Key;
        table.Cells[row, (int)colValue].TextString = value;
        row++;
     }
      }
 }
开发者ID:vildar82,项目名称:AR_Materials,代码行数:33,代码来源:RoomTable.cs

示例4: FillRoomsMaterial

 // заполнение помещений
 private int FillRoomsMaterial(Table table)
 {
     CellRange mCells;
      int row= table.Rows.Count-1;
      // сортировка помещений по номерам
      var rooms = _rooms.OrderBy(r => r.Owner).ThenBy(n => n.Number);
      foreach (var room in rooms)
      {
     int topRow = row;
     // Секция
     if (row == 2)
     {
        table.Cells[0, 0].TextString = "Расход материалов в квартире " + room.Owner;
     }
     // Наименование помещения
     table.Cells[row, (int)ColEnum.RoomName].TextString = room.Name;
     table.Cells[row, (int)ColEnum.RoomNumber].TextString = room.Number.ToString();
     // Примечание
     table.Cells[row, (int)ColEnum.Description].TextString = room.Description;
     // матариалы в квартире
     foreach (var item in Enum.GetValues(typeof(EnumConstructionType)).Cast<EnumConstructionType>())
     {
        if (item == EnumConstructionType.Undefined) continue;
        FillRowMaterial(table, row, room, item);
     }
     row = table.Rows.Count - 1;
     //Объединение столбцов номера и имени помещения
     if ((row - topRow) > 1)
     {
        mCells = CellRange.Create(table, topRow, (int)ColEnum.RoomNumber, row-1, (int)ColEnum.RoomNumber);
        table.MergeCells(mCells);
        mCells = CellRange.Create(table, topRow, (int)ColEnum.RoomName, row-1, (int)ColEnum.RoomName);
        table.MergeCells(mCells);
     }
      }
      // Итого по помещениям
      mCells = CellRange.Create(table, row, (int)ColEnum.RoomNumber, row, (int)ColEnum.RoomName);
      table.MergeCells(mCells);
      table.Cells[row, (int)ColEnum.RoomNumber].TextString = "Итого";
      // всего материалов по всем помещениям.
      var maters = _rooms.SelectMany(r => r.Materials).Where(m => !string.IsNullOrWhiteSpace(m.Name)).GroupBy(m => m.Construction);
      table.InsertRowsAndInherit(row+1, 2, 1);
      foreach (var item in maters)
      {
     var value = item.Sum(m => m.PresentValue).ToString();
     switch (item.Key)
     {
        case EnumConstructionType.Wall:
           table.Cells[row, (int)ColEnum.WallMaterial].TextString = "Стены, м2";
           table.Cells[row, (int)ColEnum.WallArea].TextString = value;
           break;
        case EnumConstructionType.Deck:
           table.Cells[row, (int)ColEnum.DeckMaterial].TextString = "Пол, м2";
           table.Cells[row, (int)ColEnum.DeckArea].TextString = value;
           break;
        case EnumConstructionType.Ceil:
           table.Cells[row, (int)ColEnum.CeilMaterial].TextString = "Потолок, м2";
           table.Cells[row, (int)ColEnum.CeilArea].TextString = value;
           break;
        case EnumConstructionType.Baseboard:
           table.Cells[row, (int)ColEnum.BaseboardMaterial].TextString = "Плинтус, м.п.";
           table.Cells[row, (int)ColEnum.BaseboardLenght].TextString = value;
           break;
        case EnumConstructionType.Carnice:
           table.Cells[row, (int)ColEnum.CarniceMaterial].TextString = "Карниз, м.п.";
           table.Cells[row, (int)ColEnum.CarniceLenght].TextString = value;
           break;
        case EnumConstructionType.Undefined:
           break;
        default:
           break;
     }
      }
      return row;
 }
开发者ID:vildar82,项目名称:AR_Materials,代码行数:76,代码来源:RoomTable.cs


注:本文中的Table.InsertRowsAndInherit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。