All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.dynamicreports.report.builder.subtotal.Subtotals Maven / Gradle / Ivy

Go to download

DynamicReports is an open source Java reporting library based on JasperReports. It allows to create dynamic report designs and it doesn't need a visual report designer. You can very quickly create reports and produce documents that can be displayed, printed or exported into many popular formats such as PDF, Excel, Word and others.

There is a newer version: 6.20.1
Show newest version
/**
 * DynamicReports - Free Java reporting library for creating reports dynamically
 *
 * Copyright (C) 2010 - 2016 Ricardo Mariaca
 * http://www.dynamicreports.org
 *
 * This file is part of DynamicReports.
 *
 * DynamicReports is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * DynamicReports is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with DynamicReports. If not, see .
 */

package net.sf.dynamicreports.report.builder.subtotal;

import net.sf.dynamicreports.report.builder.DynamicReports;
import net.sf.dynamicreports.report.builder.FieldBuilder;
import net.sf.dynamicreports.report.builder.column.ColumnBuilder;
import net.sf.dynamicreports.report.builder.column.ValueColumnBuilder;
import net.sf.dynamicreports.report.builder.expression.Expressions;
import net.sf.dynamicreports.report.constant.Calculation;
import net.sf.dynamicreports.report.definition.expression.DRIExpression;

import org.apache.commons.lang3.Validate;

/**
 * A set of methods of creating column subtotals
 *
 * @author Ricardo Mariaca ([email protected])
 */
public class Subtotals {

	//calculation
	public static  AggregationSubtotalBuilder aggregate(ValueColumnBuilder subtotalColumn, Calculation calculation) {
		Validate.notNull(subtotalColumn, "subtotalColumn must not be null");
		return new AggregationSubtotalBuilder(subtotalColumn, calculation);
	}

	public static  AggregationSubtotalBuilder aggregate(String fieldName, Class valueClass, ColumnBuilder showInColumn, Calculation calculation) {
		return aggregate(DynamicReports.field(fieldName, valueClass), showInColumn, calculation);
	}

	public static  AggregationSubtotalBuilder aggregate(FieldBuilder field, ColumnBuilder showInColumn, Calculation calculation) {
		Validate.notNull(showInColumn, "showInColumn must not be null");
		return new AggregationSubtotalBuilder(field, showInColumn, calculation);
	}

	public static  AggregationSubtotalBuilder aggregate(DRIExpression expression, ColumnBuilder showInColumn, Calculation calculation) {
		Validate.notNull(showInColumn, "showInColumn must not be null");
		return new AggregationSubtotalBuilder(expression, showInColumn, calculation);
	}

	//sum
	public static  AggregationSubtotalBuilder sum(ValueColumnBuilder subtotalColumn) {
		return aggregate(subtotalColumn, Calculation.SUM);
	}

	public static  AggregationSubtotalBuilder sum(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return aggregate(fieldName, valueClass, showInColumn, Calculation.SUM);
	}

	public static  AggregationSubtotalBuilder sum(FieldBuilder field, ColumnBuilder showInColumn) {
		return aggregate(field, showInColumn, Calculation.SUM);
	}

	public static  AggregationSubtotalBuilder sum(DRIExpression expression, ColumnBuilder showInColumn) {
		return aggregate(expression, showInColumn, Calculation.SUM);
	}

	//average
	public static  AggregationSubtotalBuilder avg(ValueColumnBuilder subtotalColumn) {
		return aggregate(subtotalColumn, Calculation.AVERAGE);
	}

	public static  AggregationSubtotalBuilder avg(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return aggregate(fieldName, valueClass, showInColumn, Calculation.AVERAGE);
	}

	public static  AggregationSubtotalBuilder avg(FieldBuilder field, ColumnBuilder showInColumn) {
		return aggregate(field, showInColumn, Calculation.AVERAGE);
	}

	public static  AggregationSubtotalBuilder avg(DRIExpression expression, ColumnBuilder showInColumn) {
		return aggregate(expression, showInColumn, Calculation.AVERAGE);
	}

	//count
	public static AggregationSubtotalBuilder count(ValueColumnBuilder subtotalColumn) {
		return aggregate(subtotalColumn, Calculation.COUNT);
	}

	public static AggregationSubtotalBuilder count(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return aggregate(fieldName, valueClass, showInColumn, Calculation.COUNT);
	}

	public static AggregationSubtotalBuilder count(FieldBuilder field, ColumnBuilder showInColumn) {
		return aggregate(field, showInColumn, Calculation.COUNT);
	}

	public static AggregationSubtotalBuilder count(DRIExpression expression, ColumnBuilder showInColumn) {
		return aggregate(expression, showInColumn, Calculation.COUNT);
	}

	//distinct count
	public static AggregationSubtotalBuilder distinctCount(ValueColumnBuilder subtotalColumn) {
		return aggregate(subtotalColumn, Calculation.DISTINCT_COUNT);
	}

	public static AggregationSubtotalBuilder distinctCount(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return aggregate(fieldName, valueClass, showInColumn, Calculation.DISTINCT_COUNT);
	}

	public static AggregationSubtotalBuilder distinctCount(FieldBuilder field, ColumnBuilder showInColumn) {
		return aggregate(field, showInColumn, Calculation.DISTINCT_COUNT);
	}

	public static AggregationSubtotalBuilder distinctCount(DRIExpression expression, ColumnBuilder showInColumn) {
		return aggregate(expression, showInColumn, Calculation.DISTINCT_COUNT);
	}

	//first
	public static  AggregationSubtotalBuilder first(ValueColumnBuilder subtotalColumn) {
		return aggregate(subtotalColumn, Calculation.FIRST);
	}

	public static  AggregationSubtotalBuilder first(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return aggregate(fieldName, valueClass, showInColumn, Calculation.FIRST);
	}

	public static  AggregationSubtotalBuilder first(FieldBuilder field, ColumnBuilder showInColumn) {
		return aggregate(field, showInColumn, Calculation.FIRST);
	}

	public static  AggregationSubtotalBuilder first(DRIExpression expression, ColumnBuilder showInColumn) {
		return aggregate(expression, showInColumn, Calculation.FIRST);
	}

	//highest
	public static  AggregationSubtotalBuilder max(ValueColumnBuilder subtotalColumn) {
		return aggregate(subtotalColumn, Calculation.HIGHEST);
	}

	public static  AggregationSubtotalBuilder max(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return aggregate(fieldName, valueClass, showInColumn, Calculation.HIGHEST);
	}

	public static  AggregationSubtotalBuilder max(FieldBuilder field, ColumnBuilder showInColumn) {
		return aggregate(field, showInColumn, Calculation.HIGHEST);
	}

	public static  AggregationSubtotalBuilder max(DRIExpression expression, ColumnBuilder showInColumn) {
		return aggregate(expression, showInColumn, Calculation.HIGHEST);
	}

	//lowest
	public static  AggregationSubtotalBuilder min(ValueColumnBuilder subtotalColumn) {
		return aggregate(subtotalColumn, Calculation.LOWEST);
	}

	public static  AggregationSubtotalBuilder min(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return aggregate(fieldName, valueClass, showInColumn, Calculation.LOWEST);
	}

	public static  AggregationSubtotalBuilder min(FieldBuilder field, ColumnBuilder showInColumn) {
		return aggregate(field, showInColumn, Calculation.LOWEST);
	}

	public static  AggregationSubtotalBuilder min(DRIExpression expression, ColumnBuilder showInColumn) {
		return aggregate(expression, showInColumn, Calculation.LOWEST);
	}

	//standard deviation
	public static  AggregationSubtotalBuilder stdDev(ValueColumnBuilder subtotalColumn) {
		return aggregate(subtotalColumn, Calculation.STANDARD_DEVIATION);
	}

	public static  AggregationSubtotalBuilder stdDev(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return aggregate(fieldName, valueClass, showInColumn, Calculation.STANDARD_DEVIATION);
	}

	public static  AggregationSubtotalBuilder stdDev(FieldBuilder field, ColumnBuilder showInColumn) {
		return aggregate(field, showInColumn, Calculation.STANDARD_DEVIATION);
	}

	public static  AggregationSubtotalBuilder stdDev(DRIExpression expression, ColumnBuilder showInColumn) {
		return aggregate(expression, showInColumn, Calculation.STANDARD_DEVIATION);
	}

	//variance
	public static  AggregationSubtotalBuilder var(ValueColumnBuilder subtotalColumn) {
		return aggregate(subtotalColumn, Calculation.VARIANCE);
	}

	public static  AggregationSubtotalBuilder var(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return aggregate(fieldName, valueClass, showInColumn, Calculation.VARIANCE);
	}

	public static  AggregationSubtotalBuilder var(FieldBuilder field, ColumnBuilder showInColumn) {
		return aggregate(field, showInColumn, Calculation.VARIANCE);
	}

	public static  AggregationSubtotalBuilder var(DRIExpression expression, ColumnBuilder showInColumn) {
		return aggregate(expression, showInColumn, Calculation.VARIANCE);
	}

	//custom
	public static  CustomSubtotalBuilder customValue(DRIExpression expression, ColumnBuilder showInColumn) {
		Validate.notNull(showInColumn, "showInColumn must not be null");
		return new CustomSubtotalBuilder(expression, showInColumn);
	}

	//percentage
	public static PercentageSubtotalBuilder percentage(ValueColumnBuilder subtotalColumn) {
		Validate.notNull(subtotalColumn, "subtotalColumn must not be null");
		return new PercentageSubtotalBuilder(subtotalColumn);
	}

	public static PercentageSubtotalBuilder percentage(String fieldName, Class valueClass, ColumnBuilder showInColumn) {
		return percentage(DynamicReports.field(fieldName, valueClass), showInColumn);
	}

	public static PercentageSubtotalBuilder percentage(FieldBuilder field, ColumnBuilder showInColumn) {
		Validate.notNull(showInColumn, "showInColumn must not be null");
		return new PercentageSubtotalBuilder(field, showInColumn);
	}

	/*public static PercentageSubtotalBuilder percentage(DRISimpleExpression expression, ColumnBuilder showInColumn) {
		Validate.notNull(showInColumn, "showInColumn must not be null");
		return new PercentageSubtotalBuilder(expression, showInColumn);
	}*/

	//text
	public static AggregationSubtotalBuilder text(String text, ColumnBuilder showInColumn) {
		return aggregate(Expressions.text(text), showInColumn, Calculation.NOTHING);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy