Пример использования интерфейса IScriptUtils.
Пример рассматривает использование различных свойств и методов интерфейса IScriptUtils.
Для того чтобы просмотреть результаты работы кода примера, необходимо сохранить исходный код в файл IScriptUtilsExample.js и запустить его на исполнение.
//----------------------------------------------------------------------------- // Файл IScriptUtilsExample.js //----------------------------------------------------------------------------- // В данном примере рассмотрено использование интерфейса IScriptUtils. //----------------------------------------------------------------------------- //@ Start Example // Создание соединения с базой данных и объекта ScriptUtils var Connector = new ActiveXObject('TSDskObjectLibrary.DskConnector'); var ScriptUtils = new ActiveXObject('TSObjectLibrary.ScriptUtils'); var FileSystemObject = new ActiveXObject('Scripting.FileSystemObject'); // Константы параметров отображения диалоговых окон var mrYes = 6; var HelpContext = 1; var mdtWarning = 0; var mdbYes = 1; var mdbIgnore = 64; // Уровень доступа на чтение/запись var fatReadWrite = 2; // Период текущего месяца var dotCurrentMonth = 19; // Функция вывода сообщения function ShowMessage(Str) { for (var i = 1; i < arguments.length; i++ ) { Str = Str.replace(new RegExp('%' + i), arguments[i]); } WScript.Echo(Str); } // Функция считывания и вывода содержимого файла системного журнала function ShowLog(Log) { var File = FileSystemObject.GetFile(Log.FileName); var Stream = File.OpenAsTextStream(1, -2); while (!Stream.AtEndOfStream) { StringsList.Add(Stream.ReadLine()); } ShowMessage("Запись в лог-файле:\n" + StringsList.Text); } if (Connector.Login("Пример использования интерфейса IScriptUtils")) { // Установка значения объекта соединения для ScriptUtils ScriptUtils.Connector = Connector; // Использование функции создания объекта StringsList = ScriptUtils.CreateObject('TSObjectLibrary.StringsList'); // Определение наличия лицензии у текущего пользователя на модуль "Accounts" if (ScriptUtils.GetHasLicense('Accounts')) { ShowMessage("Текущий пользователь имеет лицензию на модуль 'Accounts'"); }else { ShowMessage("У текущего пользователя нет лицензии на модуль 'Accounts'"); } // Удаление всех файлов временной директории операционной системы, // имя которых начинается на 'TS' независимо от расширения ScriptUtils.ClearTemporaryDirectory('TS*.*'); // Формирование USI сервиса на основе данных модуля, // пути в группах и кода сервиса ShowMessage("Сформированный USI сервиса:\n" + ScriptUtils.CombineUSIParts('Common', 'Reports\\Account', 'sq_AccountInProjects')); // Использование методов начала и завершения длительного действия ShowMessage ("Задержка 4000 мс"); ScriptUtils.BeginProcessing(); ScriptUtils.Sleep(4000); ScriptUtils.EndProcessing(); // Получение USI родительской группы сервиса var USI = 'Common\\Workspaces\\Contacts\\General\\Main Grid\\wnd_ContactEdit' ShowMessage("Для сервиса %1 USI родительской группы - %2", USI, ScriptUtils.ExtractParentUSI(USI)); // Получение кода сервиса на основе USI ShowMessage("Код сервиса %1 - %2", USI, ScriptUtils.ExtractUSICode(USI)); // Получение пути в группах сервиса на основе USI ShowMessage("Группы, в которые входит сервис %1 - %2", USI, ScriptUtils.ExtractUSIGroupPath(USI)); // Получение модуля сервиса на основе USI ShowMessage("Модуль сервиса %1 - %2", USI, ScriptUtils.ExtractUSIModule(USI)); // Определение наличия лицензии у текущего пользователя на модуль "Module" if (ScriptUtils.CheckLicense('Module')) { ShowMessage("Текущий пользователь имеет лицензию на модуль 'Module'"); } else { ShowMessage("У текущего пользователя нет лицензии на модуль 'Module'"); } // Вывод содержимого файла журнала ShowLog(Connector.Log); // Вывод версии файла TSCRM.exe ShowMessage("Версия файла TSCRM.exe: " + ScriptUtils.GetFileVersion(Connector.WorkingDirectory + 'TSCRM.exe')); var GroupUSI = 'Common\\Workspaces\\Contacts\\General\\Main Grid\\'; if (ScriptUtils.GetIsUSIInGroup(USI, GroupUSI)) { ShowMessage("Сервис %1 принадлежит группе %2", USI, GroupUSI); } // Вывод дат начала и окончания периода по его типу var DateFrom = new ActiveXObject('TSObjectLibrary.Value'); var DateTo = new ActiveXObject('TSObjectLibrary.Value'); var Today = new Date().getVarDate(); ScriptUtils.GetPeriodIntervalFromPeriodType(dotCurrentMonth, Today, DateFrom, DateTo); ShowMessage("Для типа даты 'Текущий месяц' дата начала периода - %1, а завершения - %2", DateFrom.Value, DateTo.Value); //Преобразование строки в дату ShowMessage("Строка, преобразованная в дату: " + ScriptUtils.StrToDate("10.04.2008")); // Генерация имени временного файла с указанным префиксом и расширением ShowMessage("Сгенерированное имя системного файла с префиксом 'TSObject' и расширением 'tmp':\n" + ScriptUtils.GetTempFileName('TSObject', 'tmp')); // Проверка корректности глобального уникального идентификатора var GUIDString = Connector.GenGUID(); if (ScriptUtils.IsValidGUIDString(GUIDString)) { ShowMessage( "%1 является корректным глобальным уникальным идентификатором", GUIDString); } // Проверка корректности имени идентификатора переменной var Ident = '4Ident'; if (ScriptUtils.IsValidIdent(Ident)) { ShowMessage("%1 является корректным именем идентификатора переменной", Ident); } else { ShowMessage("%1 является некорректным именем идентификатора переменной", Ident); } // Выполнение шифрования строки ShowMessage("Строка 'TestString' после выполнения шифрования: %1", ScriptUtils.OneWayCrypt('TestString')); // Вывод диалогового окна предупреждения с кнопками "Yes" и "Ignore" if (ScriptUtils.MessageDialog("Предупреждение", mdtWarning, mdbYes + mdbIgnore, HelpContext) == mrYes) { ShowMessage("Была нажата кнопка 'Yes'"); } else { ShowMessage("Была нажата кнопка 'Ignore'"); } //Начальная директория var StartDir = 'C:\\'; // Запуск выбраного ехе файла var Title = "Выберите программу для запуска"; var FileName = new ActiveXObject('TSObjectLibrary.Value'); if (ScriptUtils.OpenDialog(FileName, '*.exe', '*.exe', Title, StartDir )) { ScriptUtils.OpenFile(FileName.Value, fatReadWrite); } var ResultDir = new ActiveXObject('TSObjectLibrary.Value'); // Вызов диалового окна выбора директории if (ScriptUtils.SelectDirectory("Выбор директории", StartDir, ResultDir)) { ShowMessage("Была выбрана директория %1", ResultDir.Value); } // Вызов диалового окна выбора файлов var Title = "Открытие файлов"; var FileNames = new ActiveXObject('TSObjectLibrary.StringsList'); if (ScriptUtils.PromptForFileNames(FileNames, '*.txt', '*.txt', Title, StartDir)) { ShowMessage("Были выбраны файлы: %1", FileNames.Text); } } //@ End Example
|
Copyright (с) Terrasoft 2002-2012.
|