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-странице будет размещена кнопка с наименованием «Блокировать ряд». При нажатии на кнопку выбранный вычисляемый ряд будет заблокирован.
См. также: