Новое в TDMS 5.0

Интерфейсные улучшения

Всплывающие подсказки на элементах управления

Что сделано

Добавлено свойство Всплывающая подсказка для элементов управления форм ввода.

На что направлено

Повышение понимания пользователем назначения свойств, расположенных на форме ввода.

Пример использования

Чтобы ввести Всплывающую подсказку, необходимо в форме Свойства элемента управления формы ввести в колонку Значение какой-нибудь текст. Если вы хотите ввести несколько строк для подсказки, необходимо щелкнуть на кнопку, расположенную в конце поля ввода Значения. В открывшемся диалоге введите многострочный текст.

В результате введенных значений, на форме ввода, при наведении курсора мыши на элемент управления, появится всплывающая подсказка:

Всплывающая подсказка может быть изменена программно, через свойство Tooltip элемента управления TDMSControl:

ThisForm.Controls("ATTR_SUBCONTRACTOR").Tooltip = "Ни чо се".

Текст в незаполненном поле элемента управления

Что сделано

Добавлено свойство Пустой текст для элементов управления форм ввода. Пустой текст — это текст подсказки, который отображается серым в элементе управления, пока не задано значение.

На что направлено

Повышение внимания пользователя для заполнения свойств, расположенных на форме ввода, а также для лучшего понимания пользователя типов значений вводимых свойств.

Пример использования

Чтобы ввести Пустой текст, необходимо в форме Свойства элемента управления формы ввести в колонку Значение какой-нибудь текст.

В результате введенных значений, на форме ввода, при наведении курсора мыши на незаполненный элемент управления, в его поле появится серый текст:

Автоподстановка для классификаторов и пользователей

Что сделано

Изменен подход для формирования значения (выбора из списка) классификатора и пользователя. Используется последовательная подстановка с фильтрацией.

На что направлено

Ускорение ввода пользователем значений, визуальный контроль ввода.

Пример использования

Чтобы ввести значение классификатора или выбрать пользователя из списка, пользователь последовательно вводит значения, уменьшая список возможных значений:

Автоподстановка через программный интерфейс

Что сделано

Добавлены методы и свойства, обеспечивающие автоподстановку произвольных значений в элемент управления. Может использоваться последовательная подстановка с фильтрацией.

На что направлено

Ускорение ввода пользователем значений, визуальный контроль ввода.

Пример использования

Используйте программный код, например, такой:

Sub ATTR_DOCUMENT_NAME_KeyDown(pnChar,nShiftState)' Если управляющие символы, то пропустим (return, tab, стрелки и т.д.)
if(pnChar<48) then exit sub
' Пример как узнать код клавиши (посмотреть можно будет в окне Developer Debug log)
ThisApplication.DebugPrint "KeyDown " & pnChar
set edit = ThisForm.Controls("ATTR_DOCUMENT_NAME").ActiveX
if ThisForm.Dictionary.Exists("ComboItems") then
arr = ThisForm.Dictionary.Item("ComboItems")
else
' Только в первый раз инициализируем после того как ввели что-нибудь в этот контрол
set query = ThisApplication.Queries("QUERY_VALUES_MODIFIED_BY_ME")
set sheet = query.Sheet
arrSize = sheet.RowsCount
ReDim arr(arrSize)
for i = 0 to arrSize-1
arr(i) = sheet.CellValue(i, 0)
next
ThisForm.Dictionary.Add "ComboItems", arr
edit.ComboItems = arr>
end if
End Sub

Новый системный диалог поиска

Что сделано

Переделан диалог системного поиска, теперь он представляет собой единое целое с диалогом быстрого поиска. В диалоге быстрого поиска добавлено сохранение последних поисков и возможность их редактировать.

На что направлено

Повышение функциональности и удобства использования поиска.

Пример использования

Используйте повторное редактирование поиска, например, так. Введите начальные условия:

Введите уточняющее условие в ту же строку поиска

Выберите ранее введенное условие поиска

И отредактируйте это, нажав на кнопку Поиск, расположенную справа от строки поиска

После нажатия кнопки Найти, запрос сохранится в измененном виде.

История запросов сохраняется на все время работы приложения TDMS, при выходе сбрасывается.

Выбор списка серверов и баз данных

Что сделано

Диалог логина в систему TDMS позволяет выбрать все видимые с рабочего места пользователя серверы и выбрать одну из последних используемых баз данных.

На что направлено

Повышение удобства разработчиков и администраторов системы TDMS при частом переключении на разные серверы и базы.

Пример использования

Вместо ввода имени сервера и имени базы данных, теперь можете выбрать их из списка:

Кнопка Применить на выборках

Что сделано

На диалог редактирования выборки добавлена кнопка Применить, позволяющая без закрытия диалога сохранять выборку в базу данных, позволяя выполнить ее параллельно из другого приложения TDMS.

На что направлено

Повышение удобства разработчиков и администраторов системы TDMS при редактировании и отладке выборок, создаваемых для других пользователей.

Пример использования

Откройте выборку и внесите изменения. Чтобы сохранить выборку, вместо кнопки ОК, нажмите кнопку Применить:

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

Восстановление начальных настроек интерфейса

Что сделано

В диалог персональных настроек интерфейса добавлена функция восстановления первоначальных настроек панелей TDMS.

На что направлено

Из-за подвижности панелей TDMS, пользователи иногда их «теряют», утаскивая за пределы экрана. Команда Восстановить позволяет вернуть расположение панелей.

Пример использования

Откройте диалог Настройки на вкладке Интерфейс и выполните команду Восстановить.

Подсистема поиска

Улучшение быстрого поиска

Что сделано

Переделан механизм быстрого поиска, в настоящее время в нем используется полнотекстовый поиск по описанию объекта, его типу и статусу.

На что направлено

Повышение производительности и удобства использования быстрого поиска.

Пример использования

Введите критерии поиска в поисковую строку. Чтобы расширить набор свойств, попадающих в контекстный поиск, необходимо использовать TDMS Server 5.0. На сервере должен быть стартован сервис создания полнотекстового индекса, и произведена настройка индексируемых полей.

Ограничение на количество строк, возвращаемых выборкой

Что сделано

Введено ограничение на максимальное количество строк, возвращаемых выборкой.

На что направлено

Ограничение количества строк может быть использовано для запросов, которые возвращают или могут вернуть очень большое число строк. Получение большого количество строк от сервера может потребовать много времени, много памяти и даже привести к «зависанию» компьютера. Чтобы избежать этого, рекомендуется использовать как общесистемные, так и частные ограничения для выборок, которыми пользуются неподготовленные пользователи.

Пример использования

В диалоге Системные параметры на вкладке Поиск и выборки задайте ограничение для всех выборок.

В диалоге свойств выборки задайте ограничение для конкретной выборки.

Ограничения персональной выборки перебивают системные ограничения (как в большую, так и меньшую стороны). Пользователь не имеет возможности изменять данный параметр.

Количество строк, возвращаемых в СОМ-интерфейс всегда равно полному набору строк.

Предварительно выполненные, обновляемые выборки

Что сделано

Введено понятие «кэшировнная» выборка, чей результат вычисляется сервером заранее и хранится в базе данных в отдельной таблице. Обновление данных в таблице производится либо через определенный отрезок времени, либо по требованию пользователя.

На что направлено

Данный тип выборок может активно применяться в тех случаях, когда результат значения выборки не обязательно должен содержать данные, обновленные на момент запроса. Если данные не теряют актуальности в течение определенного времени (например, 10 минут, 1 час, 1 сутки), такая выборка будет значительно эффективнее, работая практически мгновенно и минимально нагружая ресурсы сервера.

Пример использования

Чтобы применить кэширование выборки, вы можете использовать любую из имеющихся выборок, либо создать новую выборку. Чтобы выборка, стала «кэшированной», взведите флаг использовать результат из кэша (статическая выборка).

Особенно эффективны такие выборки для долго работающих, статистических запросов. Кэшированные выборки могут обрабатывать программный код (события) на стороне приложения-клиента, кэшированные выборки могут использовать проверку прав для отдельных клиентов.

Программный код, определенный вне процедур системных элементов

Что сделано

Программный код, определенный вне процедур и функций скриптов системных элементов TDMS, может быть выполнен в том случае, если установлен флаг Выполнять код скриптов за пределами функций на вкладке Совместимость диалога Системные параметры.

На что направлено

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

Пример использования

Const statusValue = "STATUS_DOC_IS_ADDED"
Sub Object_BeforeCreate(o_, p_, Cancel)
' Назначение администратора
o_.Permissions = SysAdminPermissions
If p_.ObjectDefName = "OBJECT_SECTION" Or p_.ObjectDefName = "ROOT_DEF" Then
Call ThisApplication.ExecuteScript("CMD_ROUTER", _
"Run",p_,p_.Status,o_,o_.ObjectDef.InitialStatus)
Else
Call ThisApplication.ExecuteScript("CMD_ROUTER", "Run",p_,p_.Status,o_, statusValue)
End If
End Sub

Общесистемные изменения

Импорт данных

Что сделано

Добавлен импорт данных в формате XML: импорт объектов, импорт пользователей, импорт классификаторов

На что направлено

Импорт в формате XML позволяет сервису синхронизации данных принимать данные в открытом, редактируемом (текстовом) формате. Основное назначение открытого формата — возможность выполнения проверок данных и внесения изменений до выполнения операции импорта.

Пример использования

Доступны две команды импорта объектов в формате XML через COM API:

  • Импортировать объекты из xml файла
    • Mode — режим замещения, 0 — импортировать новые, 1 — создавать версию, 2 — создать новый GUID, 3 — пропускать те что в файле, 4 всегда переписывать из файла.

      
      HRESULT ImportObjectsXML([in]BSTR filename, [in]ITDMSObject *RootForImport, [in]VARIANT Mode, [out, retval]ITDMSObjects* *pVal);
  • Импортировать объекты из xml файла 2
    • 
      params - словарь(Dictionary) параметров ('RootForImport', 'Mode', 'ImportWithBodies')
      HRESULT ImportObjectsXML2([in]BSTR filename, [in, optional]VARIANT params, [out, retval]ITDMSObjects* *pVal);

Экспорт данных

Что сделано

Добавлен экспорт данных в формате XML: экспорт объектов, экспорт пользователей, экспорт классификаторов. Экспорт объектов может производиться без файлов, с записями о файлах, но без тел файлов, полностью с файлами.

На что направлено

Экспорт в формате XML позволяет администратору TDMS или сервису синхронизации данных принимать данные в открытом, редактируемом (текстовом) формате. Основное назначение открытого формата — возможность выполнения проверок данных и внесения изменений до выполнения операции импорта или синхронизации.

Пример использования

Доступны две команды экспорта объектов в формате XML через COM API:

  • Экспортировать объекты в xml
    • HRESULT ExportObjectsXML([in]BSTR filename, [in]VARIANT* Objects, [in]VARIANT_BOOL ExportWithContent, [in]VARIANT_BOOL ExportWithRoles, [out, retval]VARIANT_BOOL *pVal);
  • Экспортировать объекты в xml 2

    • params - словарь(Dictionary) параметров ( 'Objects', 'ExportWithContent', 'ExportWithRoles', 'ExportWithFiles', 'ExportFilesWithBodies', 'Cab')
      HRESULT ExportObjectsXML2([in]BSTR filename, [in, optional]VARIANT params);

Изменен путь выгрузки файлов

Что сделано

Изменена структура (путь) выгрузки файлов на рабочее место пользователя. В TDMS ранних версий структура формировалась как полный путь к выгруженному файлу (или файлам) объекта, последовательно образованный из следующих элементов:

  • папки для выгрузки файлов объектов (например, C:\Temp\TDMS);
  • папки, имя которой образовано конкатенацией идентификатора базы данных и имени пользователя (например, {8D9269D3−5E6C-437A-8B64−25610A919BC3} - SYSADMIN);
  • папки, имя которой содержит GUID объекта. Именно в эту папку выгружаются файлы объекта.

В TDMS 5.0 были внесены изменения в п. 2. Теперь TDMS хранит идентификаторы баз и имена пользователей во внутреннем реестре, и подставляет на их место цифру из натурального ряда: 1, 2, 3…

На что направлено

Нововведение позволяет уменьшить длину пути выгрузки файлов.

Пример использования

Введите в поле Рабочая папка (или выберите путь в системном диалоге выбора папки) полный путь к временной папке. В поле Подпапка пользователя TDMS отобразит полный путь к папке пользователя.