Global 5.4

Реализованная заявка

1. Добавить в Script-Frame возможность работы с выделенным текстом

Документ поддержки № 47470 (Задача № 52585). В рамках данной задачи было реализовано:

  1. В Script Editor-е реализована поддержка методов для работы с выделением текста.

  2. Реализован новый способ доступа к объекту TbtkScriptTextViewObject - Selection.Controller.Text. Используемый ранее способ доступа Selection.TextView объявлен устаревшим.

  3. Добавлен ряд скрипт-методов:

    Для работы с многострочными редакторами:

    • TopLine - метод позволяет получить или установить номер линии, которая находится в самом верху поля редактора. Для позиционирования курсора:

    • CursorPos - метод позволяет получить или установить текущую позицию курсора относительно начала текста. Пример:

      Пример:
      if Assigned(Selection.Controller.Text) then
        Selection.Controller.Text.CursorPos := Selection.Controller.Text.CursorPos + 20;
      
    • CursorLine - метод позволяет получить или установить номер линии, на которой располагается курсор. Пример:

      Пример:
      if Assigned(Selection.Controller.Text) then
        ShowMesage('Cursor is on line number ' + IntToStr(Selection.Controller.Text.CursorLine));
      
    • GetLineByPos - метод позволяет получить номер линии исходя из позиции относительно начала текста. Пример:

      Пример:
      if Assigned(Selection.Controller.Text) then
        ShowMessage('Position 100 is on line number' + Selection.Controller.Text.GetLineByPos(100));
      
    • GetPosByLine - метод позволяет получить позицию начала или конца линии относительно начала текста. Пример:

      Пример:
      if Assigned(Selection.Controller.Text) then
        ShowMessage('Line 15 starts at ' + IntToStr(Selection.Controller.Text.GetPosByLine(15, lcaStart)));
      
    • MoveCursorTo - метод позволяет установить курсор в произвольное место поля ввода. Пример:

      Пример:
      if Assigned(Selection.Controller.Text) then
        Selection.Controller.Text.MoveCursorTo(15, 0);
      
    • ShowCursor - метод позволяет выровнять линию с курсором по-вертикали относительно границ поля редактора.

      Пример:
      if Assigned(Selection.Controller.Text) then
        Selection.Controller.Text.ShowCursor(scaMiddle);
      
  4. Поддержка новых методов добавлена в следущие фреймы:

    - Script editor: полная - HTML editor: частичная - Text view: частичная

2. Доработать механизм открытия .gsc без открытия нового клинтского приложения

Документ поддержки № 52553 (Задача № 53231). Реализованы новые параметры GSC-файла:

Секция “EXECPARAMS” - параметр “ConnectString” - стандарптная строка подключения, её члены используются для поиска приложения среди запущенных на данный момент. Для поиска приложения в котором можно выполнить данный клмандный файл. Из строки берутся TNS сервера и логин пользователя - будут отбираться приложения загруженные с соответствующей базы и запущенные под соответствующим пользователем. Если какой-то из параметров не важен - его можно не указывать, например:

"ConnectString=AGAT2" - поиск приложения среди запущенных будет проводиться по имени приложения и TNS сервера.

"ConnectString=admin@AGAT2" - поиск приложения среди запущенных будет проводиться по имени приложения, TNS сервера и пользователю под которым выполнен вход.

"ConnectString=admin@" - поиск приложения среди запущенных будет проводиться по имени приложения и пользователю под которым выполнен вход.

Добавлена секция “Applications” - в ней перечисляются совместимые приложения, совместимые с описанной в файле командой - в которых её также можно выполнять. Приложения описываются в порядке понижения приоритета их использования. Эти приложения использубтся при поиске подходящего среди работающих в данный момент у пользователя клиентов Gobal. При этом наиболее приоритетным всё равно остаётся приложение указанное в параметра “EXECPARAMS.Application”, именно оно будет запущено в случае если не найдено ни одного из перечисленных приложений.

Note

Так как указанное приложение в секции “Applications” является параметром - по правилам описания ini-файла должно заканчиваться знаком “=”, даже если к приложению нет необходимости задавать дополнительные параметры (возможность не используется - зарезервирована).

3. Потоковая работа с файлами без загруки всего файла в память приложения.

Документ поддержки № 51595 (Задача № 52911). Реализована возможность работать с блоб-курсорами без кеширования, что снимает ограничения на размер скачаиваемых/заливаемых файлов на стороне клиентского приложения, т.к. работа ведётся потоково - маленькими порциями. Работа осуществляется по средствам использования нового класса в скрипторе - TbtkScriptLobLocator.

Пример скачивания блоба в файл:
<SQL>
  <readFromServer>
    begin
      select bBlob
      into :lob from TSG_LobLocator_t52911
      where id = :id;
    end;
  </readFromServer>
</SQL>

<Pascal>
  fileName := AskFileNameForSave(GetVar('Name'));
  if fileName <> '' then
  begin
    lob := Selection.CreateLobLocator;
    ExecSQLEx('readFromServer', 'lob', [ftOraLobLocator], [lob]);
    lob.SaveToFile(fileName);
  end;
</Pascal>
Пример загрузки блоба из файла на сервер:
<SQL>
  <writeToServer>
    begin
      update TSG_LobLocator_t52911
      set bBlob = :lob
      where id = :id;
    end;
  </writeToServer>
</SQL>

<PASCAL>
  fileName := AskFileNameForOpen('');
  if fileName <> '' then
  begin
    lob := Selection.CreateLobLocator;
    lob.CreateTemporary;
    lob.LoadFromFile(fileName);
    ExecSQLEx('writeToServer', 'lob', [ftOraLobLocator], [lob]);
  end;
</PASCAL>

4. Реализовать поддержку OLE-объектов в скриптовом методе “Assigned”

Документ поддержки № 55528 (Задача № 56205). В методе Assigned реализована возможность проверять значения возвращаемые OLE-объектами (CreateOleObject) на пустоту (отсутствие объекта). Изначально, при попытке использовать его для проверки OLE - метод возбуждал ошибку приведения типов.

5. Диаграмма ганта: доработка выделения текущей строки

Документ поддержки № 54056 (Задача № 55591). Реализована отрисовка активной(сфокусированной) строки дерева объектов на всю ширину Диаграммы Ганта.

6. Перемещение объектов с помощью drag and drop на области диаграммы(AdvDiagram).

Документ поддержки № 55436 (Задача № 55683). В расширенных диаграммах (AdvDiagram) реализован функционал перетаскивания записей мышью (Drag&Drop) - аналогично тому как это работает в древовидном и списочном фреймах.

7. Гант: изменение масштаба диаграммы

Документ поддержки № 54275 (Задача № 55824). Реализована возможность изменения масштаба диаграммы Гантта через Ctrl + колесико мыши.

8. Гант: отображение процента выполнения

Документ поддержки № 54274 (Задача № 55818). Изменен индикатор прогресса задачи на диаграмме Гантта. Теперь прогресс отображается в виде полоски на элементе Ганнта, с возможностью настройки её ширины и цвета.

9. Установка большего временного интервала в Диаграмме Ганта

Документ поддержки № 53739 (Задача № 55038). Реализована возможность установки отображаемого интервала диаграммы Гантта больше, чем самая ранняя и самая поздняя даты в наборе данных. Также добавлены скрипт-свойства Gantt.MinStartDate и Gantt.MaxStopDate для установки фактического временного интервала диаграммы.

10. Восстановить возможность контрола с гиперссылкой выводить произвольный текст

Документ поддержки № 49618 (Задача № 55848). Реализована возможность вывода произвольного текста вместо гиперссылки в редакторах типа “Редактор www, e-mail адреса”.

Для использования необходимо указать атрибут с альтернативным текстом в свойстве “Атрибут, содержащий текст отображаемый вместо гиперссылки. Системное имя: UrlCaptionValueAttribute”

New in version BTK: 1.4.118.0

Исправленная ошибка

1. Строка Автофильтра в АИ в контекстном меню отображается активном состоянии, но сама не включёна.

Обращение № 21006 Документ поддержки № 53635 (Задача № 53959).

Исправлено.

2. Окно подключение вводит вводит в заблуждение пользователей

Документ поддержки № 53101 (Задача № 54753). После нажатия на кнопку “Соединить” окно визуально не меняло состояние контролов ввода. Теперь текст полей ввода отображается серым. Также больше не перемещается каретка в полях ввода вне режима ввода.

3. Свернутое окно выбора приложения не разворачивается обратно на Windows 7

Документ поддержки № 53666 (Задача № 54096). Если кликнуть мышью по кнопке приложения Global на панели задач до открытия главной формы приложения - Global свернётся и больше не будет возможности развернуть его обратно.

Исправлено. Теперь приложение бедет не только сворачиваться, но и разворачиваться.

4. Ошибки открытия файла *.gsc в Global 5X

Документ поддержки № 53231 (Задача № 54221). Исправлены ошибки работы механизма передачи URI/GSC данных работающему клиенту Global. В результате ошибки в большинстве случаев открывался новый клиент для обработки переданных данных, невзирая на то, что уже имеется запущенный клиент, удовлетворяющий параметрам отбора (на указанной базе/TNS, или в указанном приложении).

В случае же если данные передавались работающему клиенту, то возникала ошибка разбора строки - в случае URI, и просто не запускался GSC-файл - в случае GSC.

5. Operation not supported on selected printer при распечатке печатных форм

Обращение № 14909 Документ поддержки № 53759 (Задача № 55036).

Устранено появление ошибки “Operation not supported on selected printer” при печати отчета FastReport2.

6. Если после скрытия фрейма переключиться на другую форму и вернуться обратно, то сплиттер уже не развернуть

Документ поддержки № 52397 (Задача № 53233). При попытке развернуть сплиттер отображалось сообщение об ошибке “Сплиттер не имеет элемента управления…”.

Исправлено.

7. Некорректное размещение разделителя при вызове PanelEX

Документ поддержки № 44015 (Задача № 53230) При использовании скриптового метода PanelEx разделитель создавался без учёта выравнивания панели. Из-за этого его использование становилось невозможным и приводило к ошибкам.

Исправлено.