pinSeries (wbk, series, callback);
wbk. Задает значение рабочей книги;
series. Задает ряд;
callback. Задает обработчик окончания выполнения операции.
Метод pinSeries блокирует ряды.
Для выполнения примера предполагается наличие на странице компонента 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); //Блокируем выбранный ряд tsService.pinSeries(wbk.getActiveSheet(), series, 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-странице будет размещена кнопка с наименованием «Блокировать ряд». Необходимо выбрать вычисляемый ряд и нажать кнопку «Блокировать ряд». После этого выбранный ряд будет заблокирован.
См. также: