Руководство по настройке altAwin:Скрипты/Сервисы
Сервис показа форм документов
Для отображения форм документов при взаимодействии с пользователем должен использоваться специализированный сервис IpubObjectsUIService, присутствующий в клиентской части приложения altAwin. В серверной части данный сервис отсутствует. В примере ниже показан вариант использования сервиса отображения документов на примере документа пользовательского поля.
var
Session: IomSession;
Document: IawUserFieldDoc;
ObjectsUIService: IpubObjectsUIService;
begin
// создание сессии (экземпляры документов могут порождаться только в ней!)
Session := CreateObjectSession;
// создание нового экземпляра документа типа IawUserFieldDoc
Document := Session.NewDocument(IawUserFieldDoc);
// заполнение полей документа
Document.Name := 'TestString';
Document.Caption := 'Тестовая строка';
Document.OwnerDocumentType := 'IdocEmployee';
// получение сервиса визуализации от ядра
ObjectsUIService := Framework.GetService(IpubObjectsUIService);
if (ObjectsUIService <> Empty) then // при наличии сервиса
// показ формы документа в немодальном режиме
ObjectsUIService.ShowDocument(Document);
end;
var
UI: IpubObjectsUIService;
I: Integer;
DocumentForm: IomDocumentForm;
begin
UI := ServiceProvider.GetService(IpubObjectsUIService);
for I := UI.DocumentForms.Count - 1 downto 0 do
begin
DocumentForm := UI.DocumentForms[I];
//ShowMessage(DocumentForm.Document.ObjectType);
DocumentForm.Close;
end
end;
Сервис показа сообщений бегущей строки
Сервис используется для отображения заданных текстов в бегущей строке главной формы приложения с возможностью обработки кликов по ним. При отсутствии текста для показа в области отображения бегущей строки выводятся текущие дата и время.
Взаимодействие с сервисом реализуется через следующие интерфейсы:
- IpubInformationBoardService — сервис бегущих сообщений;
- IpubColoredText — цветной текст;
- IpubColoredTextItem — элемент цветного текста;
Интерфейс IpubInformationBoardService реализует следующие возможности:
- procedure ShowText(const Text: string; const URL: string = : AddSpinCount: Cardinal = 0; RepeatCount: Cardinal = 0; RepeatInterval: Cardinal = 300)
- Показ простого текста Text, URL — если задан будет использован при клике на бегущую строку, AddSpinCount — число дополнительных показов текста за один раз, RepeatCount — число повторных показов через RepeatInterval, заданного в секундах.
- procedure ShowColoredText(const ColoredText: IpubColoredText; const URL: string = : AddSpinCount: Cardinal = 0; RepeatCount: Cardinal = 0; RepeatInterval: Cardinal = 300)
- Показ цветного текста ColoredText, URL — если задан будет использован при клике на бегущую строку, AddSpinCount — число дополнительных показов текста за один раз, RepeatCount — число повторных показов через RepeatInterval, заданного в секундах
- function NewColoredText: IpubColoredText
- Создание экземпляра цветного текста
Пример использования сервиса (скрипт должен называться marquee):
var
IBS: IpubInformationBoardService;
CT: IpubColoredText;
begin
IBS := Framework.GetService(IpubInformationBoardService);
IBS.ShowText('Привет лунатикам!', 'https://www.youtube.com/watch?v=ji43FJ2adlY', 1);
CT := IBS.NewColoredText;
CT.Add('Я ');
CT.Add('красно', clRed);
CT.Add('-');
CT.Add('желто', clYellow);
CT.Add('-');
CT.Add('синий', clSkyBlue);
CT.Add(' текст, кликни меня для повтора');
IBS.ShowColoredText(CT, 'altawin://scripts/marquee');
end;
При наличии ссылки URL и клику на бегущей строке, движение элемента будет прервано и он будет удалён из очереди повторов
Сервис взаимодействия с Oktell
Сервис используется для взаимодействия модулем Oktell, которое реализуется посредством интерфейса IpubOktellService.
Интерфейс предоставляет доступ к следующим функциям и свойствам:
- ExtractPhoneNumber(PhoneNumber: string): string - возвращает номер для набора согласно настройкам, PhoneNumber - телефонный номер в международном формате (только цифры)
- StartAutoCall(PhoneNumber: string; AbonentName: string) - запуск автодозвона на телефонный номер
- SetUserAccessible(Value: Boolean) - установка доступности для входящих соединений текущего пользователя
- IsUserLogged: Boolean - признак наличия авторизации в Oktell