====== Помощь в программе ====== ===== Содержание ===== * [[#Общая информация|Общая информация]] * [[#1. Общая помощь по всей системе|1. Общая помощь по всей системе]] * [[#2. Помощь в журналах|2. Помощь в журналах]] * [[#3. Помощь в карточках|3. Помощь в карточках]] * [[#Настройка помощи|Настройка помощи]] * [[#1. Задать персональные ссылки для определенной карточки/журнала|1. Задать персональные ссылки для определенной карточки/журнала]] * [[#2. Закрепить ссылки за определенными мета-объектами|2. Закрепить ссылки за определенными мета-объектами]] * [[#Дополнительная информация|Дополнительная информация]] ---- ====== Общая информация ====== Помощь в программе разделена на три части: \\ 1. Общая помощь по всей системе\\ 2. Помощь в журналах\\ 3. Помощь в карточках\\ ===== 1. Общая помощь по всей системе ===== Доступ к общей помощи по всей системе находится в главном меню "//Справка -> Документация//" {{:pasted:20220717-120443.png}} В зависимости от прав пользователя открывается одна из двух страниц, которые созданы на на сайте www.agbis.ru/laundry/school/: для администраторов открывается "//**Административная документация**//", для всех остальных пользователей - "//**Пользовательская документация**//".\\ {{:pasted:20191223-131145.png}} ===== 2. Помощь в журналах ===== Кнопка помощь во всех журналах, наследниках от "TUniDblListForm" или "TUniListFrame" и находится в главном меню журнала, отображается если на нее назначена какая-нибудь ссылка. Например журнал "//**Фирмы**//" {{:pasted:20220717-123002.png}} Журнал "Регистрация сотрудников" {{:pasted:20220717-123036.png}} С журналом может быть связано несколько ссылок на документацию, в этом случае слева появится список ссылок на помощь\\ {{:pasted:20191223-130731.png}} ===== 3. Помощь в карточках ===== Кнопка "//**Помощь**//" находится во всех формах, наследниках от "//**UniForm**//" (если на нее назначена какая-нибудь ссылка) {{:pasted:20220717-124607.png}} ====== Настройка помощи ====== Класс описывающий работу помощи - "//**T_Help**//" **Настроить отображение помощь можно двумя способами:** \\ 1. Задать персональные ссылки для определенной карточки/журнала\\ 2. Закрепить ссылки за определенными мета-объектами\\ ===== 1. Задать персональные ссылки для определенной карточки/журнала ===== В списке модулей должны быть указаны uses ... rHelp, fHelp ... Для использования T_Help должна быть задана директива компилятора **CHROM**.\\ Пример функции, которая вызывает помощь состоящую из трех ссылок:\\ первая - это явно заданный HTML-текст, второй и третий являются ссылками на страницы WEB-сайта с документацией. \\ При формировании элемента списка в **rlHelp.Add("Заголовок","URL","HTML","Показывать по умолчанию","Уровень доступа")** указываются параметры:\\ **"Заголовок"**, который будет отображаться в списке документов;\\ **"URL"** - ссылка на страницы WEB-сайта; \\ **"HTML"** - текст HTML-документа; \\ **"Показывать по умолчанию"** - страница, которая будет открыта по умолчанию. Если не указана, то будет открываться первая по списку;\\ **"Уровень доступа"** - предусмотрено три уровня: \\ i_LevelDeveloper - разработчик, \\ i_LevelAdmin - Администратор,\\ i_LevelUser - "Пользователь".\\ Для вычисления текущего уровня пользователя можно использовать var ilLevel:Integer; begin if DMForm.IsAgbis then ilLevel:=i_LevelDeveloper else if DMForm.IsAdmin then ilLevel:=i_LevelAdmin else ilLevel:=i_LevelUser; На формах наследниках TUniForm, TUniListForm уже есть кнопка **"Помощь"** с которой связан action ActHelp в TActionList.\\ В этом случае достаточно добавить в обработчик ActHelp вызов справки и выставить свойства ActHelp.Visible и ActHelp.Enable в обработчик активации формы.\\ Можно просто добавить новую кнопку с вызовом справки При создании объекта указывается текущий уровень доступа пользователя \\ rlHelp:=T_Help.Create(i_LevelAdmin)\\ а при формировании помощи лишние документы скрываются.\\ В нашем примере, реально будет показан только первый документ с уровнем "Пользователь".\\ procedure TFormDB_Fields.ActHelpExecute(Sender: TObject); var rlHelp:T_Help; clTxt: string; begin clTxt:='

Список полей, которые необходимы для запуска Агента.

'; 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;
==== 2. Закрепить ссылки за определенными мета-объектами ==== Сопоставление форм и WEB-страниц выполняется функцией T_Help.InitByAgbisRu. В "//**case ifMetaTag of**//" нужно добавить "**//tag//**" необходимого мета-объекта и добавить ссылку\\ 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;
====== Дополнительная информация ====== [[FormHelp|Помощь]] [[:документация_агбис|Назад]]\\