Exemplo n.º 1
0
        private SpecOptions getSpecOptions()
        {
            SpecOptions specOptions = null;

            if (File.Exists(specCustom.File))
            {
                try
                {
                    // Загрузка настроек таблицы из файла XML
                    specOptions = SpecOptions.Load(specCustom.File);
                }
                catch (Exception ex)
                {
                    Logger.Log.Error(ex, $"Ошибка при попытке загрузки настроек таблицы из XML файла {specCustom.File}");
                }
            }

            if (specOptions == null)
            {
                // Создать дефолтные
                specOptions = specCustom.GetDefaultOptions();
                // Сохранение дефолтных настроек
                try
                {
                    specOptions.Save(specCustom.File);
                }
                catch (Exception exSave)
                {
                    Logger.Log.Error(exSave, $"Попытка сохранение настроек в файл {specCustom.File}");
                }
            }

            return(specOptions);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Создание спецификации
        /// </summary>
        public void CreateSpec()
        {
            SpecOptions specOpt = getSpecOptions();

            if (specOpt == null)
            {
                throw new Exception("Настройки таблицы не определены.");
            }
            // Клас создания таблицы по заданным настройкам
            SpecTable specTable = new SpecTable(specOpt);

            specTable.CreateTable();
        }
Exemplo n.º 3
0
        public SpecOptions GetDefaultOptions()
        {
            SpecOptions specMonolOpt = new SpecOptions();

            specMonolOpt.Name = "Test";

            // Фильтр для блоков
            specMonolOpt.BlocksFilter = new BlocksFilter();
            // Имя блока начинается с "КР_"
            specMonolOpt.BlocksFilter.BlockNameMatch = "^КР_";
            // Обязательные атрибуты
            specMonolOpt.BlocksFilter.AttrsMustHave = new List <string>()
            {
                "ТИП", "МАРКА", "НАИМЕНОВАНИЕ"
            };
            // Тип блока - атрибут ТИП = Монолит
            specMonolOpt.BlocksFilter.Type = new ItemProp()
            {
                BlockPropName = "ТИП", Name = "Монолит", BlockPropType = EnumBlockProperty.Attribute
            };

            specMonolOpt.GroupPropName = "ГРУППА";
            specMonolOpt.KeyPropName   = "МАРКА";

            // Свойства элемента блока
            specMonolOpt.ItemProps = new List <ItemProp>()
            {
                new ItemProp()
                {
                    Name = "Марка", BlockPropName = "МАРКА", BlockPropType = EnumBlockProperty.Attribute
                },
                new ItemProp()
                {
                    Name = "Обозначение", BlockPropName = "ОБОЗНАЧЕНИЕ", BlockPropType = EnumBlockProperty.Attribute
                },
                new ItemProp()
                {
                    Name = "Наименование", BlockPropName = "НАИМЕНОВАНИЕ", BlockPropType = EnumBlockProperty.Attribute
                },
                new ItemProp()
                {
                    Name = "Масса", BlockPropName = "МАССА", BlockPropType = EnumBlockProperty.Attribute
                },
                new ItemProp()
                {
                    Name = "Примечание", BlockPropName = "ПРИМЕЧАНИЕ", BlockPropType = EnumBlockProperty.Attribute
                },
            };

            // Настройки Таблицы
            specMonolOpt.TableOptions         = new TableOptions();
            specMonolOpt.TableOptions.Title   = "Спецификация к схеме расположения элементов замаркированных на данном листе";
            specMonolOpt.TableOptions.Layer   = "КР_Таблицы";
            specMonolOpt.TableOptions.Columns = new List <TableColumn>()
            {
                new TableColumn()
                {
                    Name = "Марка", Aligment = CellAlignment.MiddleCenter, ItemPropName = "Марка", Width = 15
                },
                new TableColumn()
                {
                    Name = "Обозначение", Aligment = CellAlignment.MiddleLeft, ItemPropName = "Обозначение", Width = 60
                },
                new TableColumn()
                {
                    Name = "Наименование", Aligment = CellAlignment.MiddleLeft, ItemPropName = "Наименование", Width = 65
                },
                new TableColumn()
                {
                    Name = "Кол.", Aligment = CellAlignment.MiddleCenter, ItemPropName = "Count", Width = 10
                },
                new TableColumn()
                {
                    Name = "Масса, ед. кг", Aligment = CellAlignment.MiddleCenter, ItemPropName = "Масса", Width = 15
                },
                new TableColumn()
                {
                    Name = "Примечание", Aligment = CellAlignment.MiddleLeft, ItemPropName = "Примечание", Width = 20
                },
            };

            return(specMonolOpt);
        }
Exemplo n.º 4
0
 public SpecTable(SpecOptions options)
 {
     SpecOptions = options;
 }