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