Skip to content

urpok23/SpecMaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpecMaker

Программа предназначена для выгрузки спецификации по форме 1 ГОСТ 21.110-2013 "Спецификация оборудования, изделий и материалов", группируя позиции с одинаковыми параметрами в одну группу.

Использование

Заполнение формы

  • Образец формы расположен в папке Resources/ExcelTemplates.

  • Файл формы имеет единственный лист "Спецификация", в который заносятся все данные по оборудованию.

  • Форма имеет 9 обязательных столбцов в соответствие с ГОСТ, которые должны всегда в ней присутствовать (могут быть пустыми):

    1. Позиция

    2. Наименование

    3. Тип, марка, обозначение документа, опросного листа

    4. Код оборудования, изделия, материала

    5. Завод-изготовитель

    6. Единица измерения

    7. Количество

    8. Масса единицы

    9. Примечание

  • Название листа может быть изменено в настройках спецификации (не влияет на результат, служит только для ссылки на лист Excel).

  • Текущей логикой программы является объединение позиций оборудования в группы с одинаковыми свойствами. При этом количество оборудования суммируется по значениям в столбце "Количество", а позиции оборудования через запятую перечисляются в столбце "Позиция":

    Fig 1.1

  • Второй столбец «Наименование и техническая характеристика» спецификации заполняется следующим образом:

    1. Значение столбца «Наименование» для данной группы оборудования;

    2. <Параметр1><Разделитель><Значение1>;

    3. <Параметр2><Разделитель><Значение2>;

    4. …

    где пары «Параметр – Значение» составляются из названий прочих (необязательных) столбцов и значений в них для этой группы:

    Fig 1.2

    Разделитель будет отсутствовать для столбцов, указанных в соответствующем поле настроек спецификации (см. раздел «Конфигурирование»). Например, разумно это делать для столбца «DN», чтобы диаметр арматуры отображался корректно («DN20» вместо «DN-20»). Добавление пользовательских разделителей не предусмотрено.

  • Пары «Параметр-Значение» формируются по порядку необязательных столбцов в Excel-форме.

  • Если «Значение» из пары «Параметр-Значение» во втором столбце удовлетворяет паттерну \s\d+\s+шт.$, то этот найденный шаблон строки удаляется из «Значения» и добавляется в столбец «Количество» в соответствующую строку спецификации:

    Fig 1.3

    Пояснение к паттерну:

    «\s» - один пробел

    «\d+» - одна и более цифра

    «\s+» - один и более пробел

    «шт.$» - строка оканчивается на «шт.»

    Паттерн может быть изменен только в исходном коде программы.

Конфигурирование

  • Файл настроек приложения расположен в папке Settings/AppSettings.json:

    • "SupportedPersons": Перечень сотрудников для выпадающего списка окна «Данные о проекте».

    • "SpecExcelTemplatePath": Относительный путь до «пустого» Excel шаблона спецификации

  • Файл настроек спецификации расположен в папке Settings/SpecSettings.json:

    • "ExcelFilledFormSpecSheetName" : Название листа, где располагаются данные в файле Excel-формы

    • "MandatoryOrderedColumnNames": Упорядоченный список обязательных столбцов в Excel-форме. Соответствует оным по спецификации ГОСТ 21.110-2013 форма 1 «Спецификация оборудования, изделий и материалов»

    • "DelimeterFor2ndColumn": Разделитель для пары «Параметр-Значение» при заполнении второго столбца.

    • "ExcludedColumnNames": Названия столбцов, которые могут иметь неуникальные значения для группировки.

    • "SpecialFormatColumnNames": Названия столбцов, в которых для пары «Параметр-Значение» при заполнении второго столбца разделитель будет отсутствовать.

    • "ColumnLetterAddress": Адреса колонок в «пустом» Excel шаблоне спецификации.

    • "FirstRowIndex": Номер первой строки Excel в «пустом» Excel шаблоне спецификации.

    • "RowStep": Разность (в строках Excel) между соседними строками спецификации. Сейчас высота одной строки спецификации составляет две строки Excel.

    • "MaxRowIndex": Номер последней строки Excel для первого и второго листа в «пустом» Excel шаблоне спецификации

    • "ExampleSheet2Name": Название второго листа в «пустом» Excel шаблоне спецификации.

    • "FirstPageStampMap": Информация для заполнения штампа на первой странице. Содержит поля данных о проекте и соответствующие им ячейки Excel. Названия полей в настройках должны соответствовать оным из исходного кода программы в файле ProjectInfoDataSchema.cs.

Инструкция по использованию

  1. Выбрать файл заполненной Excel-формы:

    Fig 3.1

  2. Проверить данные о проекте:

    Fig 3.2

  3. Запустить программу:

    Fig 3.3

    Спецификация появится в папке “output” в формате “.xlsx” и “.pdf”

Roadmap

  • Контроль изменений
  • Печать в PDF без использования Interop.Excel
  • Логирование
  • Автоматическая вставка подписей по фамилии

About

Спецификация по ГОСТ

Resources

License

Stars

Watchers

Forks

Contributors