мета-данные страницы
  •  

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
документация_в_программе [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>​ 
-