Terrasoft Platform SDK > Примеры > Файлы > IScriptUtilsExample.js
СодержаниеИндекс
IScriptUtilsExample.js
Send Feedback

Пример использования интерфейса 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.