insertSeries (index, seriesCount, addExpander, callback);
index. Позиция вставки ряда;
seriesCount. Количество вставляемых рядов;
addExpander. Нужно ли добавлять экспандер для ряда;
callback. Обработчик окончания выполнения операции.
Метод insertSeries вставляет строку в таблицу.
Для выполнения примера предполагается наличие на странице компонента WorkbookBox с наименованием «workbookBox» (см. «Пример создания компонента WorkbookBox»), также необходимо в обработчике события открытия документа добавить следующий код:
// Создаем экземпляр класса кнопка var series; var btnInsertSerie = new PP.Ui.Button({ ParentNode: document.body, //родительский узел DOM Content: "Добавить строку", //подпись Click: PP.Delegate(insertSrs) }); var lanerbox = workbookBox.getDataView().getGridView(); function insertSrs() { var source = wbk;//Возвращаем экземпляр класса PP.TS.WbkDocument //Создаем объект, который передается в качестве параметров в метод getAddSeriesSettings series = []; var serie = {}; //Установим ключ ряда serie.k = "0"; //Установим идентификатор ряда serie.id = ""; //Установим наименование ряда на языке, соответствующем текущей локали serie.n = PP.resourceManager.getString("WbkNewSerie") + " " + tsService._NewSeriesCount; //Итерируем счетчик рядов в рабочей книге tsService._NewSeriesCount++; //Установим видимость ряда serie.vis = true; //Установим тип ряда serie.kind = "Source"; //Установим всплывающую подсказку ряда serie.hint = ""; //Установим формулу ряда serie.calc = {}; //Получим и установим индекс ряда serie.index = tsService._getMaxNonChildSerieIndex(wbk) + 1; if (source.getWbkMetadata().rubrs.def) serie.calc.rubKey = source.getWbkMetadata().rubrs.def.k; else serie.calc.rubKey = source.getHier().getMetadata().obInst.obDesc.k; series.push(serie); serie.atts = { its: { it: []} }; serie.level = "Month"; //Получаем тело запроса добавления рядов в рабочую книгу var body = tsService.getAddSeriesSettings(source, series, true); wbk.setIsChanged(true); tsService._invokeRemoteProc(source, body, function(sender, args) { //Вставляем строку в таблицу lanerbox.insertSeries(0); }); removeSeriesButt.setEnabled(true); btnInsertSerie.setEnabled(false); } var removeSeriesButt = new PP.Ui.Button({ ParentNode: document.body, //Родительский узел DOM Content: "Удалить последнюю строку", //Подпись Click: PP.Delegate(onClickRemoveSeries), Enabled: false }); function onClickRemoveSeries() { var wbk = args.Workbook; //Получаем последний ряд var serie = [wbk.getActiveSheet().getSeries()[wbk.getActiveSheet().getSeries().length - 1]]; //Удаляем последний ряд рабочей книги tsService.removeSeries(wbk, serie, PP.Delegate(onResponse)); function onResponse(sender, args) { var seriesTabSheetIndexes = [3]; var meta = JSON.parse(args.ResponseText); //Удаляем ряд из таблицы lanerbox.removeSeries(serie, seriesTabSheetIndexes, meta); } removeSeriesButt.setEnabled(false); btnInsertSerie.setEnabled(true); }
После выполнения примера на html-странице будет добавлена кнопка «Добавить строку» и «Удалить последнюю строку», при нажатии на кнопку «Добавить строку» в таблице добавится новая строка, а при нажатии на кнопку «Удалить последнюю строку» последняя строка удалится.
См. также: