мета-данные страницы
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
документация_в_программе [10.01.2020 06:52] Анисютин |
документация_в_программе [17.07.2022 13:17] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Документация в программе ====== | ||
- | |||
- | Рассматривается стандартный механизм подключения контекстно зависимой справки назначенной на кнопку **Помощь** или к пункту **Документация**.\\ | ||
- | |||
- | **Задача**\\ | ||
- | Обеспечить доступ к справочным документам, размещенным на сайтах компании непосредственно из программного модуля. | ||
- | |||
- | **На первом этапе** справочная информация привязывается к приложению в целом единым блоком.\\ | ||
- | В зависимости от прав пользователя открывается одна из двух страниц, которые созданы на на сайте www.agbis.ru/laundry/school/: | ||
- | для администраторов открывается "Административная документация", для всех остальных пользователей - "Пользовательская документация".\\ | ||
- | Для вызова используется пункт **Документация** главного меню на главной форме приложения.\\ | ||
- | {{:pasted:20191223-131145.png}}\\ | ||
- | |||
- | **На втором этапе** планируется сделать контекстно-зависимую помощь.\\ | ||
- | Для вызова используется пункт кнопка **Помощь**.\\ | ||
- | Кнопка **Помощь** появляется автоматически при подключении справочных материалов к форме.\\ | ||
- | Для примера можно посмотреть справочники "Фирмы" и "Склады\отделы".\\ | ||
- | {{:pasted:20191223-131227.png}}\\ | ||
- | |||
- | |||
- | С формой можно связать несколько документов, в этом случае слева появится список справочных документов.\\ | ||
- | {{:pasted:20191223-130731.png}} | ||
- | |||
- | При загрузке данных открывается нижняя панель статуса, не которой отображается сообщение "Идет загрузка данных ...".\\ | ||
- | Эта панель закрывается после завершения загрузки документа.\\ | ||
- | {{:wiki:him_lrxymzlbky.png}}\\ | ||
- | |||
- | Если при загрузке данных возникает ошибка, то открывается окно с сообщением об ошибке. | ||
- | {{:wiki:pasted:20191231-090530.png}}\\ | ||
- | |||
- | Ошибка так же отображается на панели статуса и записывается в лог программы.\\ | ||
- | {{:wiki:pasted:20191231-090836.png}}\\ | ||
- | |||
- | |||
- | |||
- | <ifauth @programmers> | ||
- | Список ссылок на документы хранится в объекте T_Help | ||
- | |||
- | |||
- | ===== Составление списка документов справки непосредственно в описании формы ===== | ||
- | |||
- | Пример функции, которая вызывает справку состоящую из трех документов:\\ | ||
- | первый - это явно заданный HTML-текст, второй и третий являются ссылками на страницы WEB-сайта с документацией. \\ | ||
- | При формировании элемента списка в rlHelp.Add указываются параметры:\\ | ||
- | "Заголовок", который будет отображаться в списке документов;\\ | ||
- | "URL" - ссылка на страницы WEB-сайта; \\ | ||
- | "HTML" - текст HTML-документа; \\ | ||
- | "Показывать по умолчанию" - страница, которая будет открыта по умолчанию. Если не указана, то будет открываться первая по списку;\\ | ||
- | "Уровень доступа" - предусмотрено три уровня: \\ | ||
- | i_LevelDeveloper - разработчик, \\ | ||
- | i_LevelAdmin - Администратор,\\ | ||
- | i_LevelUser - "Пользователь".\\ | ||
- | |||
- | При создании объекта указывается текущий уровень доступа пользователя \\ | ||
- | rlHelp:=T_Help.Create(i_LevelAdmin)\\ | ||
- | а при формировании помощи лишние документы скрываются.\\ | ||
- | В нашем примере, реально будет показан только первый документ с уровнем "Пользователь".\\ | ||
- | |||
- | <sxh Delphi> | ||
- | procedure TFormDB_Fields.ActHelpExecute(Sender: TObject); | ||
- | var | ||
- | rlFormHelp: TFormHelp; | ||
- | rlHelp:T_Help; | ||
- | clTxt: string; | ||
- | begin | ||
- | clTxt:='<p>Список полей, которые необходимы для запуска Агента.<br /></p>'; | ||
- | rlHelp:=T_Help.Create(i_LevelAdmin); | ||
- | try | ||
- | rlHelp.Add('Форма "Обязательные поля для агента"','',clTxt,true,i_LevelUser); | ||
- | rlHelp.Add('Обязательные поля для агента','https://doc.agb.is/internal/обязательные_поля_для_агента','',false,i_LevelDeveloper); | ||
- | rlHelp.Add('DB_Tables_Fields','https://doc.agb.is/internal/db_tables_fields','',false,i_LevelDeveloper); | ||
- | TFormHelp.FormOpen(rlHelp);//Форма "Помощь" | ||
- | finally | ||
- | rlHelp.Free; | ||
- | end; | ||
- | end; | ||
- | </sxh> | ||
- | |||
- | ===== Составление списка документов справки через код метакласса формы ===== | ||
- | |||
- | Сопоставление форм и WEB-страниц выполняется функцией T_Help.InitByAgbisRu\\ | ||
- | <sxh Delphi> | ||
- | class function T_Help.InitByAgbisRu(rfHelp:T_Help; lfIsAgbis, lfIsAdmin:Boolean; | ||
- | ifMetaTag:Integer;cfCaption:String; ffSetStatisticsAction:TSetStatisticsAction):T_Help; | ||
- | var | ||
- | llLevel:Integer; | ||
- | clURL:String; | ||
- | begin | ||
- | result:=nil; | ||
- | if lfIsAgbis then | ||
- | llLevel:=i_LevelDeveloper | ||
- | else | ||
- | if lfIsAdmin then | ||
- | llLevel:=i_LevelAdmin | ||
- | else | ||
- | llLevel:=i_LevelUser; | ||
- | if assigned(rfHelp) then | ||
- | begin | ||
- | result:=rfHelp; | ||
- | result.iUserLevel:=llLevel; | ||
- | end | ||
- | else | ||
- | result:=T_Help.Create(llLevel); | ||
- | result.fSetStatisticsAction:=ffSetStatisticsAction; | ||
- | |||
- | case ifMetaTag of | ||
- | 58: result.Add(cfCaption,'https://www.agbis.ru/learning/course/index.php?COURSE_ID=4&CHAPTER_ID=0452&LESSON_PATH=418.452','',true,i_LevelUser);//Склады/отделы | ||
- | 101: result.Add(cfCaption,'https://www.agbis.ru/learning/course/index.php?COURSE_ID=4&LESSON_ID=97&LESSON_PATH=418.451.97','',true,i_LevelUser); //Фирмы | ||
- | end; | ||
- | end; | ||
- | </sxh> | ||
- | |||
- | </ifauth> | ||
- | |||
- | <ifauth @user> | ||
- | [[internal:Принципы документирования]]\\ | ||
- | </ifauth> | ||
- | |||