Руководство по настройке altAwin:Скрипты/Сервисы

Материал из AltecDocs
Перейти к:навигация, поиск

Сервис показа форм документов

Для отображения форм документов при взаимодействии с пользователем должен использоваться специализированный сервис 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 реализует следующие возможности:

  • 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