mirror of
https://github.com/ONLYOFFICE/sdkjs.git
synced 2026-04-07 14:09:12 +08:00
[SE] [pivot] deleted unused code
This commit is contained in:
@ -1198,74 +1198,6 @@ function (window, undefined) {
|
||||
}
|
||||
}
|
||||
return refError;
|
||||
|
||||
// 2 варианта поиска сводной таблицы:
|
||||
// 1.Пройтись по всему bbox и вызывать getPivotTable пока не вернем true, иначе false
|
||||
// 2.Проходиться по всем сводным таблицам и сравнивать их range с полученным на персечение(если пересекается то true иначе false)
|
||||
|
||||
// 1 вариант:
|
||||
let isFound = false, pivot;
|
||||
for (let row = bbox.r1; row <= bbox.r2; row++) {
|
||||
if (isFound) {
|
||||
break
|
||||
}
|
||||
|
||||
for (let col = bbox.c1; col <= bbox.c2; col++) {
|
||||
// todo проверить pivotTable на другой странице
|
||||
pivot = ws.getPivotTable(col, row);
|
||||
if (pivot) {
|
||||
isFound = true;
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isFound) {
|
||||
return refError;
|
||||
}
|
||||
|
||||
// далее проходимся по заголовкам и сравниваем с первым аргументом
|
||||
let fields = pivot.asc_getDataFields();
|
||||
if (fields && fields.length > 0) {
|
||||
for (let i = 0; i < fields.length; i++) {
|
||||
let field = fields[i],
|
||||
fieldName = field.name,
|
||||
fld = field.fld;
|
||||
|
||||
if (fieldName.toLowerCase() !== looking_field.toLowerCase()) {
|
||||
continue;
|
||||
} else {
|
||||
// Если мы нашли имя поля равное искомому, то вызываем функцию поиска
|
||||
let rowColData = pivot.updateRowColItems();
|
||||
let lookingOperationType = Object.keys(operationTypes).find(key => operationTypes[key] === field.subtotal);
|
||||
// Функция поиска: если аргументов меньше 4 и таблица не имеет общего резульатата(grand total или single Columns или single Rows), то возвращаем ошибку
|
||||
if (!pivot.colGrandTotals && !pivot.rowGrandTotals && arg.length === 2) {
|
||||
return refError;
|
||||
} else if ((pivot.colGrandTotals || pivot.rowGrandTotals) && arg.length === 2) {
|
||||
// Вернуть значение grandTotal для поля по его имени
|
||||
|
||||
result = rowColData.dataRow.total[i][lookingOperationType.toLowerCase()];
|
||||
// todo
|
||||
// result = getGrandTotalByFieldName(fieldName);
|
||||
} else if (arg.length > 2) {
|
||||
let preparedItemsArray = prepareItemsArray(items_array);
|
||||
if (!preparedItemsArray) {
|
||||
return refError
|
||||
}
|
||||
// Необходимо доставать пары элементов из массива items_array и затем вернуть значение из таблицы, в зависимости от этих данных
|
||||
// Пара элементов это имя поля и одно из значений в нем
|
||||
// С помощью них нужно найти персечения в таблице и вернуть значение grandTotal(если такое существует для данного пересечения)
|
||||
|
||||
result = rowColData.dataRow.total[i][lookingOperationType.toLowerCase()];
|
||||
// todo
|
||||
// result = getGrandTotalOnSeveralFields(fieldName, items_array);
|
||||
}
|
||||
|
||||
return new cNumber(result); // Временная заглушка для результата. Нужно обрабатывать все возможные типы
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return refError;
|
||||
};
|
||||
|
||||
const prepareItemsArray = function (array) {
|
||||
|
||||
Reference in New Issue
Block a user