StatCoeffTabSheetSource: PP.TS.StatTabSheetSource;
Свойство StatCoeffTabSheetSource устанавливает источник данных для листа на вкладке «Уравнение» в панели статистики.
Для выполнения примера предполагается наличие на странице компонента WorkbookBox с наименованием «workbookBox» (см. «Пример создания компонента WorkbookBox»), также необходимо в обработчике события открытия документа добавить следующий код:
//К событию окончания соединения с метабазой добавим обработчик, который //устанавливает доступность кнопки "Удалить выбранные ряды" metabase.EndRequest.add(PP.Delegate(function(){ function isButtonEnabled(series) { for (var i = 0; i < series.length; i++) { if (series[i].kind == PP.TS.Ui.LnSerieKind.Derived) { var parentK = series[i].parent.k; var parentFound = false; for (var j = 0; j < series.length; j++) { if (series[j].k == parentK) { parentFound = true; break; } } if (!parentFound) return false; } } return series.length > 0; }; var series = wbk.getActiveSheet().getSelectedSeries(); if(isButtonEnabled(series)) { removeSerieButt.setEnabled(true); } else { removeSerieButt.setEnabled(false); } })); var removeSerieButt = new PP.Ui.Button({ ParentNode: document.body, //Родительский узел DOM Content: 'Удалить выбранные ряды', //Подпись Click: PP.Delegate(onClickRemoveSerie) }); function onClickRemoveSerie() { //Получаем выбранные ряды рабочей книги var series = wbk.getActiveSheet().getSelectedSeries(); //Создаем тело запроса к серверу на удаление выбранных рядов var body = { SetWbkMd: { tWbk: wbk.getOdId(), tArg: { meta: { series: { its: { it: series } } }, pattern: { series: "Remove" }, metaGet: tsService._getGeneralSeriesPattern() } } }; //Нужно получить структуру табшита чтобы установить правильную ширину и высоту оставшихся рядов body.SetWbkMd.tArg.metaGet.getTabSheet = { pattern: { DHTML: true, structure: true } }; //Получаем данные, которые были изменены var tcd = wbk.getTableChangedData(); if (tcd) { var newtcd = { c: [] }; for (var i = 0; i < series.length; i++) { var index = wbk.getRealIndex(undefined, series[i]); for (var j = 0; j < tcd.c.length; j++) { if (tcd.c[j]["@row"] != index) { if (tcd.c[j]["@row"] > index) { tcd.c[j]["@row"]--; } newtcd.c.push(tcd.c[j]); } } } //устанавливаем измененные данные заголовка экспресс-отчета. wbk.setTableChangedData(newtcd); } //Устанавливаем количество рядов в рабочей книге wbk.setSeriesCount(wbk.getSeriesCount() - series.length); //Обновляем список рядов wbk.updateSeriesList(series, true); //Проверяем что количество рядов в рабочей книге не равно нулю if (wbk.getSeriesCount() == 0) { wbk.setSelectedSeries([]); } //Добавляем информацию о родительских рядах в тело запроса к серверу if (series[0].parent) { var parentSerie = wbk.getSerie(series[0].parent.k); body.SetWbkMd.tArg.metaGet.seriesFilter = { range: { start: wbk.getRealIndex(undefined, parentSerie), count: wbk.getLoadedChildrenCount(parentSerie) + 1 } }; } else { body.SetWbkMd.tArg.metaGet.seriesFilter = { range: { start: -1, count: 0 } }; } //Устанавливаем признак того, что рабочая книга изменена wbk.setIsChanged(true); //Устанавливаем признак необходимости обновления wbk.setNeedUpdateSelection(true); //Устанавливаем источник данных для листа на вкладке "Матрица корреляции" в панели статистики wbk.setStatCorrTabSheetSource(undefined); //Устанавливаем источник данных для листа на вкладке "Уравнение" в панели статистики wbk.setStatCoeffTabSheetSource(undefined); //Устанавливаем источник данных для листа на вкладке "Матрица весов" в панели статистики wbk.setStatWeightsTabSheetSource(undefined); tsService._addViewSettings(wbk, body.SetWbkMd); //Посылаем запрос на сервер tsService._invokeRemoteProc(wbk, body, PP.Delegate(onResponse)); } function onResponse(sender, args) { //Обновляем компонент workbookBox workbookBox.refreshAll(); }
После выполнения примера на html-странице будет размещена кнопка с наименованием «Удалить выбранные ряды». При нажатии на кнопку удаляются выбранные ряды. Чтобы кнопка была доступна, необходимо, чтобы в числе выбранных рядов не было дочерних рядов, родительский ряд которых не был бы выбран.
См. также: