本文整理汇总了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;
}
示例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++;
}
}
}
示例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++;
}
}
}
示例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;
}