мета-данные страницы
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
документация_в_программе [17.07.2022 11:52] Egor |
документация_в_программе [17.07.2022 13:17] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Справка/помощь в программе ====== | ||
- | |||
- | Документирование в программе разделено на три части: | ||
- | 1. Общая справка по всей системе | ||
- | 2. Справка в журналах | ||
- | 3. Справка в карточках | ||
- | |||
- | |||
- | ====== 1. Общая справка по всей системе ====== | ||
- | |||
- | Доступ к общей справке по всей системе находится в главном меню "//Справка -> Документация//" | ||
- | |||
- | {{:pasted:20220717-115112.png}} | ||
- | |||
- | В зависимости от прав пользователя открывается одна из двух страниц, которые созданы на на сайте //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 | ||
- | |||
- | |||
- | ===== Составление списка документов справки непосредственно в описании формы ===== | ||
- | |||
- | В списке модулей должны быть указаны **rHelp**, **fHelp** | ||
- | uses ... rHelp, fHelp ... | ||
- | |||
- | Для использования T_Help должна быть задана директива компилятора **CHROM**.\\ | ||
- | |||
- | Пример функции, которая вызывает справку состоящую из трех документов:\\ | ||
- | первый - это явно заданный HTML-текст, второй и третий являются ссылками на страницы WEB-сайта с документацией. \\ | ||
- | При формировании элемента списка в **rlHelp.Add("Заголовок","URL","HTML","Показывать по умолчанию","Уровень доступа")** указываются параметры:\\ | ||
- | **"Заголовок"**, который будет отображаться в списке документов;\\ | ||
- | **"URL"** - ссылка на страницы WEB-сайта; \\ | ||
- | **"HTML"** - текст HTML-документа; \\ | ||
- | **"Показывать по умолчанию"** - страница, которая будет открыта по умолчанию. Если не указана, то будет открываться первая по списку;\\ | ||
- | **"Уровень доступа"** - предусмотрено три уровня: \\ | ||
- | i_LevelDeveloper - разработчик, \\ | ||
- | i_LevelAdmin - Администратор,\\ | ||
- | i_LevelUser - "Пользователь".\\ | ||
- | |||
- | Для вычисления текущего уровня пользователя можно использовать | ||
- | <sxh Delphi> | ||
- | var | ||
- | ilLevel:Integer; | ||
- | begin | ||
- | if DMForm.IsAgbis then | ||
- | ilLevel:=i_LevelDeveloper | ||
- | else | ||
- | if DMForm.IsAdmin then | ||
- | ilLevel:=i_LevelAdmin | ||
- | else | ||
- | ilLevel:=i_LevelUser; | ||
- | </sxh> | ||
- | |||
- | На формах наследниках TUniForm, TUniListForm уже есть кнопка **"Помощь"** с которой связан action ActHelp в TActionList.\\ | ||
- | В этом случае достаточно добавить в обработчик ActHelp вызов справки и выставить свойства ActHelp.Visible и ActHelp.Enable в обработчик активации формы.\\ | ||
- | Можно просто добавить новую кнопку с вызовом справки | ||
- | |||
- | При создании объекта указывается текущий уровень доступа пользователя \\ | ||
- | rlHelp:=T_Help.Create(i_LevelAdmin)\\ | ||
- | а при формировании помощи лишние документы скрываются.\\ | ||
- | В нашем примере, реально будет показан только первый документ с уровнем "Пользователь".\\ | ||
- | |||
- | <sxh Delphi> | ||
- | procedure TFormDB_Fields.ActHelpExecute(Sender: TObject); | ||
- | var | ||
- | 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> | ||
- | |||
- | ==== Дополнительная информация ==== | ||
- | |||
- | [[FormHelp|Помощь]] | ||
- | |||
- | |||
- | [[:документация_агбис|Назад]]\\ | ||
- | |||