Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
developers:tutorial:sheets [2022/08/30 13:29] proxor |
developers:tutorial:sheets [2023/07/31 08:41] (текущий) yulia |
||
---|---|---|---|
Строка 17: | Строка 17: | ||
Если пользовательские настройки требуется сохранить, то так же следует перекрыть методы [[developers:references:topomatic.tables.sheets.templatesheet.loadfromstg|LoadFromStg()]] и [[developers:references:topomatic.tables.sheets.templatesheet.savetostg|SaveToStg()]]. Подробнее о процессах сохранение и загрузки можно узнать в разделе руководства Создание и сохранение модели. | Если пользовательские настройки требуется сохранить, то так же следует перекрыть методы [[developers:references:topomatic.tables.sheets.templatesheet.loadfromstg|LoadFromStg()]] и [[developers:references:topomatic.tables.sheets.templatesheet.savetostg|SaveToStg()]]. Подробнее о процессах сохранение и загрузки можно узнать в разделе руководства Создание и сохранение модели. | ||
- | Шаблон ведомости представляет из себя [[https://ru.wikipedia.org/wiki/XML|XML-файл]] определяющий внешний вид ведомости и расположение ячеек заголовков и данных. Корневой каталог шаблонов ведомостей расположен по пути "**c:\ProgramData\Topomatic\Robur <Тип_продукта>\16.0\Sht\**" (в зависимости от вашего типа [[https://new.topomatic.ru/products/|продукта]] программного комплекса [[https://new.topomatic.ru/|Топоматик Робур]], имя каталога будет разным). Далее шаблон располагается в подпапках, соответствующих типу ведомости. Например, ведомости подобъектов будут располагаться в каталоге Alg и т.д. Структура шаблона ведомости описана в разделе руководства [[road:commons_tasks:creating_and-editing_templates:start|Создание и редактирование шаблонов выходных ведомостей]]. | + | Шаблон ведомости представляет из себя [[https://ru.wikipedia.org/wiki/XML|XML-файл]] определяющий внешний вид ведомости и расположение ячеек заголовков и данных. Корневой каталог шаблонов ведомостей расположен по пути "**c:\ProgramData\Topomatic\Robur <Тип_продукта>\16.0\Sht\**" (в зависимости от вашего типа [[https://new.topomatic.ru/products/|продукта]] программного комплекса [[https://new.topomatic.ru/|Топоматик Робур]], имя каталога будет разным). Далее шаблон располагается в подпапках, соответствующих типу ведомости. Например, ведомости подобъектов будут располагаться в каталоге Alg и т.д. Структура шаблона ведомости описана в разделе руководства [[road:commons_tasks:archive_sections:creating_and-editing_templates:start|Создание и редактирование шаблонов выходных ведомостей]]. |
----- | ----- | ||
==== Подготовка модуля ==== | ==== Подготовка модуля ==== | ||
Строка 70: | Строка 70: | ||
Для возможности использования пользовательского фрейма настроек в мастере создания ведомостей, класс ведомости должен содержать уникальный объект-ключ (Moniker). Объект-ключ это пустой объект класса [[https://docs.microsoft.com/en-us/dotnet/api/system.object?view=net-6.0|Object]]. Этот объект должен создаваться при инициализации экземпляра класса ведомости и возвращаться вместе с объектами-ключами базового класса при вызове метода [[developers:references:topomatic.tables.sheets.templatesheet.getmonikers|GetMonikers()]]. Объект-ключ служит в качестве идентификатора нашего экземпляра класса ведомости и служит для определения типа пользовательского фрейма, соответствующего типу нашей ведомости. Пользовательский фрейм получается с помощью метода [[developers:references:topomatic.tables.sheets.templatesheet.getframe|GetFrame()]] принимающий объект-ключ в качестве аргумента. | Для возможности использования пользовательского фрейма настроек в мастере создания ведомостей, класс ведомости должен содержать уникальный объект-ключ (Moniker). Объект-ключ это пустой объект класса [[https://docs.microsoft.com/en-us/dotnet/api/system.object?view=net-6.0|Object]]. Этот объект должен создаваться при инициализации экземпляра класса ведомости и возвращаться вместе с объектами-ключами базового класса при вызове метода [[developers:references:topomatic.tables.sheets.templatesheet.getmonikers|GetMonikers()]]. Объект-ключ служит в качестве идентификатора нашего экземпляра класса ведомости и служит для определения типа пользовательского фрейма, соответствующего типу нашей ведомости. Пользовательский фрейм получается с помощью метода [[developers:references:topomatic.tables.sheets.templatesheet.getframe|GetFrame()]] принимающий объект-ключ в качестве аргумента. | ||
- | Методы [[developers:references:topomatic.tables.sheets.templatesheet.loadfromstg|LoadFromStg()]] и [[developers:references:topomatic.tables.sheets.templatesheet.savetostg|SaveToStg()]] содержат инструкции записи и чтения данных ведомости, а так же состояния пользовательских настроек. В текущем примере наша ведомость содержит только одно пользовательское свойство **UserSetting**. Оно не будет использоваться в расчётах и описано в справочных целях. Свойство **UserSetting** является типом [[https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/bool|bool]], поэтому для чтения и записи значения воспользуемся методом [[developers:references:topomatic.stg.stgcollection.getboolean_system.string_system.boolean|GetBoolean()]] класса [[developers:references:topomatic.stg.stgnode|StgNode]]. | + | Методы [[developers:references:topomatic.tables.sheets.templatesheet.loadfromstg|LoadFromStg()]] и [[developers:references:topomatic.tables.sheets.templatesheet.savetostg|SaveToStg()]] содержат инструкции записи и чтения данных ведомости, а так же состояния пользовательских настроек. В текущем примере наша ведомость содержит только одно пользовательское свойство **UserSetting**. Оно не будет использоваться в расчётах и описано в справочных целях. Свойство **UserSetting** является типом [[https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/bool|bool]], поэтому для чтения и записи значения воспользуемся методами [[developers:references:topomatic.stg.stgcollection.getboolean_system.string_system.boolean|GetBoolean()]] и [[developers:references:topomatic.stg.stgcollection.addboolean_system.string_system.boolean|AddBoolean()]] класса [[developers:references:topomatic.stg.stgnode|StgNode]]. |
Добавьте в программу новые классы со следующим содержанием: | Добавьте в программу новые классы со следующим содержанием: | ||
Строка 213: | Строка 213: | ||
{ | { | ||
base.SaveToStg(node); | base.SaveToStg(node); | ||
- | node.GetBoolean("UserSetting", UserSetting); | + | node.AddBoolean("UserSetting", UserSetting); |
} | } | ||