示例#1
0
        /// <summary>
        /// Создание строк
        /// </summary>
        /// <param name="schedule"></param>
        /// <param name="elementGroupByRoomName"></param>
        private void RowCreater(Element schedule, Dictionary <string, List <ElementModel> > elementGroupByRoomName)
        {
            TableSectionData tsd = GetHeader(schedule);

            var listGroupElement = new List <ElementGroupByNumber_Categoty>();

            foreach (KeyValuePair <string, List <ElementModel> > keyValue in elementGroupByRoomName)
            {
                ElementGroupByNumber_Categoty specialElementGroup = new ElementGroupByNumber_Categoty()
                {
                    AllElementForRoom = keyValue.Value,
                    RoomNumber        = keyValue.Key,
                    RoomName          = keyValue.Value.First().RoomName
                };
                specialElementGroup.SortAllElementfromGroup();
                listGroupElement.Add(specialElementGroup);
            }

            ///Создаем строки и заполняем их
            int startIndex = 3;

            using (Transaction t = new Transaction(_doc, "Заполнение спецификации"))
            {
                t.Start();
                foreach (var el in listGroupElement)
                {
                    CreateRow(tsd, el, startIndex);
                    startIndex += el.GetRowCount();
                }
                t.Commit();
            }
        }
示例#2
0
 /// <summary>
 /// Создать строку
 /// </summary>
 /// <param name="tsd"></param>
 /// <param name="element"></param>
 /// <param name="index"></param>
 private void CreateRow(TableSectionData tsd, ElementGroupByNumber_Categoty element, int index)
 {
     for (int i = 0; i < element.GetRowCount(); i++)
     {
         tsd.InsertRow(i + index);
         //tsd.SetRowHeight(i + index, 0.262467);
     }
     if (element.GetRowCount() > 1)
     {
         tsd.MergeCells(new TableMergedCell(index, 0, index + element.GetRowCount() - 1, 0));
         tsd.MergeCells(new TableMergedCell(index, 1, index + element.GetRowCount() - 1, 1));
     }
     FillColumns(tsd, element, index);
 }
示例#3
0
        /// <summary>
        /// Заполнить строку
        /// </summary>
        /// <param name="tsd"></param>
        /// <param name="element"></param>
        /// <param name="index"></param>
        private void FillColumns(TableSectionData tsd, ElementGroupByNumber_Categoty element, int index)
        {
            tsd.SetCellText(index, 0, element.RoomNumber); ///Заполняем первую ячейку
            tsd.SetCellText(index, 1, element.RoomName);   // Заполняем вторую ячейку
            int n = index;
            int k = 0;

            foreach (var el in element.FloorMarkinfoDict) // Заполняем третью, четвертую и пятую ячейку
            {
                tsd.SetCellText(n, 2, el.Key);
                tsd.SetCellText(n, 3, el.Value);
                k = el.Value.Length;
                tsd.SetRowHeight(n, Math.Round((double)(k / 9)) * 0.0262467);
                tsd.SetCellText(n, 4, element.FloorMarkSquareDict[el.Key].ToString());
                n++;
            }
            n = index;
            foreach (var el in element.CeilingMarkinfoDict)
            {
                tsd.SetCellText(n, 6, el.Key);
                tsd.SetCellText(n, 7, el.Value);
                if (k < el.Value.Length)
                {
                    k = el.Value.Length;
                    tsd.SetRowHeight(n, Math.Round((double)(k / 9)) * 0.0262467);
                }
                tsd.SetCellText(n, 8, element.CeilingMarkSquareDict[el.Key].ToString());
                n++;
            }
            n = index;
            foreach (var el in element.WallMarkinfoDict)
            {
                tsd.SetCellText(n, 9, el.Key);
                tsd.SetCellText(n, 10, el.Value);
                if (k < el.Value.Length)
                {
                    k = el.Value.Length;
                    tsd.SetRowHeight(n, Math.Round((double)(k / 9)) * 0.0262467);
                }
                tsd.SetCellText(n, 11, element.WallMarkSquareDict[el.Key].ToString());
                n++;
            }
        }