From c0d4aadf08c16f2d79508367c631366f7a856346 Mon Sep 17 00:00:00 2001 From: Tamás Zolnai Date: Wed, 23 Nov 2016 03:27:11 +0000 Subject: [API Change]: Create new GeneralFunction2 for adding median MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New functionality added to pivot table became fully broken with Eike's revertion: 50244309501d738e7314fa79785db139c826f8d7 This commit fixes this problem. Change-Id: I67cfc63305bb9b2edeed2abd26d729fbf650579f Reviewed-on: https://gerrit.libreoffice.org/31096 Reviewed-by: Tamás Zolnai Tested-by: Tamás Zolnai --- offapi/UnoApi_offapi.mk | 1 + offapi/com/sun/star/sheet/DataPilotField.idl | 32 +++++- .../sun/star/sheet/DataPilotSourceDimension.idl | 6 ++ offapi/com/sun/star/sheet/DataPilotSourceLevel.idl | 7 ++ offapi/com/sun/star/sheet/GeneralFunction2.idl | 111 +++++++++++++++++++++ 5 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 offapi/com/sun/star/sheet/GeneralFunction2.idl (limited to 'offapi') diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index b5657f7f4ae1..c53b2d938392 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -3409,6 +3409,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/sheet,\ FunctionArgument \ FunctionCategory \ GeneralFunction \ + GeneralFunction2 \ GoalResult \ IconSetFormatEntry \ IconSetType \ diff --git a/offapi/com/sun/star/sheet/DataPilotField.idl b/offapi/com/sun/star/sheet/DataPilotField.idl index edc84ae67ddf..b9f6b2b5c8d2 100644 --- a/offapi/com/sun/star/sheet/DataPilotField.idl +++ b/offapi/com/sun/star/sheet/DataPilotField.idl @@ -98,7 +98,6 @@ published service DataPilotField */ [property, optional] sequence Subtotals; - /** specifies the selected page which is used to filter the data pilot. */ [property, optional] string SelectedPage; @@ -175,6 +174,37 @@ published service DataPilotField /** specifies whether to show this field also if it is empty or not. */ [property, optional] boolean ShowEmpty; + + /** specifies the function used to calculate results for this field. + +

For column and row fields, this is the function for subtotals + (GeneralFunction2::NONE means no subtotals). + For data fields, this is the function shown in the data pilot + table.

+ + @since LibreOffice 5.3 + */ + + [property, optional] short Function2; + + /** specifies the functions used to calculate subtotals for this field. + +

This property is supported by column and row fields only.

+ +

An empty sequence means no subtotals. The same effect can be + achieved by setting the property #Function2 to the + value GeneralFunction::NONE. If the length of the + sequence is greater then 1, then the sequence MUST NOT contain one of + the values GeneralFunction2::NONE or + GeneralFunction2::AUTO.

+ +

The order of the functions in this sequence is reflected in the + DataPilot table. Multiple entries of the same function are ignored + when setting the property.

+ + @since LibreOffice 5.3 + */ + [property, optional] sequence Subtotals2; }; diff --git a/offapi/com/sun/star/sheet/DataPilotSourceDimension.idl b/offapi/com/sun/star/sheet/DataPilotSourceDimension.idl index 2309d172e9ef..5ef61f5083eb 100644 --- a/offapi/com/sun/star/sheet/DataPilotSourceDimension.idl +++ b/offapi/com/sun/star/sheet/DataPilotSourceDimension.idl @@ -122,6 +122,12 @@ service DataPilotSourceDimension */ [readonly, property, optional] long Flags; + + /** specifies how data are aggregated. + @since LibreOffice 5.3 + */ + [property, optional] short Function2; + }; diff --git a/offapi/com/sun/star/sheet/DataPilotSourceLevel.idl b/offapi/com/sun/star/sheet/DataPilotSourceLevel.idl index d7fb274fd80f..2485de51778a 100644 --- a/offapi/com/sun/star/sheet/DataPilotSourceLevel.idl +++ b/offapi/com/sun/star/sheet/DataPilotSourceLevel.idl @@ -70,6 +70,13 @@ service DataPilotSourceLevel */ [property] boolean ShowEmpty; + + /** specifies the subtotals that are inserted for the level. + +

The subtotals are calculated with the members of this level.

+ @since LibreOffice 5.3 + */ + [property, optional] sequence< short > SubTotals2; }; diff --git a/offapi/com/sun/star/sheet/GeneralFunction2.idl b/offapi/com/sun/star/sheet/GeneralFunction2.idl new file mode 100644 index 000000000000..926f7b174d73 --- /dev/null +++ b/offapi/com/sun/star/sheet/GeneralFunction2.idl @@ -0,0 +1,111 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_sheet_GeneralFunction2_idl__ +#define __com_sun_star_sheet_GeneralFunction2_idl__ + + +module com { module sun { module star { module sheet { + + +/** used to specify a function to be calculated from values. + @since LibreOffice 5.3 + */ +published constants GeneralFunction2 +{ + + /** nothing is calculated. + */ + const short NONE = 0; + + + /** function is determined automatically. + +

If the values are all numerical, SUM is used, otherwise COUNT.

+ */ + const short AUTO = 1; + + + /** sum of all numerical values is calculated. + */ + const short SUM = 2; + + + /** all values, including non-numerical values, are counted. + */ + const short COUNT = 3; + + + /** average of all numerical values is calculated. + */ + const short AVERAGE = 4; + + + /** maximum value of all numerical values is calculated. + */ + const short MAX = 5; + + + /** minimum value of all numerical values is calculated. + */ + const short MIN = 6; + + + /** product of all numerical values is calculated. + */ + const short PRODUCT = 7; + + + /** numerical values are counted. + */ + const short COUNTNUMS = 8; + + + /** standard deviation is calculated based on a sample. + */ + const short STDEV = 9; + + + /** standard deviation is calculated based on the entire population. + */ + const short STDEVP = 10; + + + /** variance is calculated based on a sample. + */ + const short VAR = 11; + + + /** variance is calculated based on the entire population. + */ + const short VARP = 12; + + /** + * median of all numerical values is calculated. + * @since LibreOffice 5.3 + */ + const short MEDIAN = 13; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit