This example assumes that the report you are
working with contains a summary field.
You can change the type of summary operation that
is performed.
Call the
getSummaryFieldController
method to get the
SummaryFieldController object.
DataDefController ddc = rcd.getDataDefController();
SummaryFieldController sfc = ddc.getSummaryFieldController();
Find the summary field.
This example finds the first summary field in
the report.
SummaryFields<ISummaryField> sumFieldSet = ddc.getDataDefinition().getSummaryFields();
if (sumFieldSet.size() > 0)
{
ISummaryField oldSumField = sumFieldSet.get(0);
}
Call the
clone
method to create a copy of the summary field.
ISummaryField newSumField = (ISummaryField)oldSumField.clone(true);
Call the
setOperation method to change
the summary type of the new field.
newSumField.setOperation(SummaryOperation.maximum);
Call the
modifySummaryField method of
the
SummaryFieldController object
to update the summary field.
sfc.modifySummaryField(oldSumField, newSumField);
Example: To modify a summary field
The following example shows how to change a
summary to show the maximum value.
public void modifySummaryType(ReportClientDocument rcd) throws ReportSDKException
{
DataDefController ddc = rcd.getDataDefController();
SummaryFieldController sfc = ddc.getSummaryFieldController();
SummaryFields<ISummaryField> sumFieldSet = ddc.getDataDefinition().getSummaryFields();
if (sumFieldSet.size() > 0)
{
ISummaryField oldSumField = (ISummaryField)sumFieldSet.get(0);
ISummaryField newSumField = (ISummaryField)oldSumField.clone(true);
newSumField.setOperation(SummaryOperation.maximum);
sfc.modifySummaryField(oldSumField, newSumField);
}
}