TSService.getPinSeriesSettings

Синтаксис

getPinSeriesSettings (wbk, allSeries);

Параметры

wbk. Задает рабочую книгу, экземпляр класса Workbook;

allSeries. Задает ряды рабочей книги.

Описание

Метод getPinSeriesSettings возвращает тело запроса блокировки рядов рабочей книги.

Пример

Для выполнения примера предполагается наличие на странице компонента WorkbookBox с наименованием «workbookBox» (см. «Пример создания компонента WorkbookBox») и наличие в рабочей книге вычисляемого ряда. Также необходимо в обработчике события открытия документа добавить следующий код:

	//Создаем признак, который будет использоваться для того, чтобы определить, есть ли блокированные ряды в рабочей книге
	var someSerieIsPinnedFlag;
	//Переменная для хранения массива выбранных рядов
	var selSeries;
	//Кнопка, по нажатию на который блокируется или разблокируется выбранный ряд
	var pinSerieButton = new PP.Ui.Button({
		ParentNode: document.body, //Родительский узел DOM
		Content: "Блокировать ряд", //Подпись
		Click: PP.Delegate(onClickPinSerie)					
	});
				 
	//Обработчик нажатия кнопки "Блокировать ряд"
	function onClickPinSerie()
	{
		//Создаем объект, содержащий ряд для блокирования/разблокирования
		var series = {};
		series.its = {};
		series.its.it = [];
					
		//Создаем объект, содержащий ряд для блокирования
		var pinnedSerie = {
			id: "",
			k: PP.Mb.UINT32MAXVALUE
		};	
		
		if (selSeries && selSeries.length > 0)
		{	
			var selSerie = undefined;
			//В зависимости от наличия блокированных рядов в рабочей книге, формируем объект, передаваемый методу
			//pinSeries в качестве параметра
			if (!someSerieIsPinnedFlag)
			{							
				selSerie = selSeries[0];
				pinnedSerie.id = selSerie.id;
				pinnedSerie.k = selSerie.k;
			}
			else
			{
				for (var i = 0; i < selSeries.length; i++)
				{
					series.its.it.push({
						k: selSeries[i].k,
						id: selSeries[i].id,
						kind: selSeries[i].kind
					});
				}
			}
		}									
		series.pinned = pinnedSerie;
		//Устанавливаем блокировку в рабочей книге
		wbk.getActiveSheet().setPinned(pinnedSerie.k != PP.Mb.UINT32MAXVALUE ? pinnedSerie : undefined);
					
		//Получаем тело запроса блокировки рядов рабочей книги
		var body = tsService.getPinSeriesSettings(wbk, series);
		//Устанавливаем признак того, что рабочая книга изменена
		wbk.setIsChanged(true);
		//Посылаем на сервер запрос блокировки рядов рабочей книги
		tsService._send(body, PP.Delegate(onResponse));								
		}
				
		//Обработчик окончания выполнения метода pinSeries
		function onResponse()
		{
			//Обновляем весь компонент для отображения рабочей книги
			workbookBox.refreshAll();
		}
				
		//Обработчик окончания взаимодействия с репозиторием. Служит для установки доступности кнопки 
		//"Блокировать ряд" в зависимости от возможности блокировки выбранного ряда и установки признака
		//наличия блокированных рядов в рабочей книге
		metabase.EndRequest.add(PP.Delegate(function(){				
		selSeries = wbk.getActiveSheet().getSelectedSeries();
		if (selSeries.length == 1 && selSeries[0].calc && selSeries[0].calc.formula)
		{
			pinSerieButton.setEnabled(true);
		}
		else
		{
			pinSerieButton.setEnabled(false);
		}					
		someSerieIsPinnedFlag = (wbk.getActiveSheet().getPinned() ? true : false);
	}));

После выполнения примера на html-странице будет размещена кнопка с наименованием «Блокировать ряд». При нажатии на кнопку выбранный вычисляемый ряд будет заблокирован.

См. также:

TSService