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