To modify a parameter field

Using the SDK ›› Parameters ››
Parent Previous Next

 

Report Application Server .NET SDK Developer Guide

To modify a parameter field


 







  1. Access the parameters in a report with theDataDefinition.ParameterFields property.

Visual Basic

Dim parameterFields As Fields = rcd.DataDefController.DataDefinition.ParameterFields
Dim parameterField As ParameterField = DirectCast(parameterFields(0), ParameterField)

C#

Fields parameterFields = rcd.DataDefController.DataDefinition.ParameterFields;
ParameterField parameterField = (ParameterField)parameterFields[0];

  1. Make a copy of the parameter.

Visual Basic

Dim newParameterField As New ParameterField()
parameterField.CopyTo(newParameterField, True)
newParameterField.CurrentValues.RemoveAll()

C#

ParameterField newParameterField = new ParameterField();
parameterField.CopyTo(newParameterField, true);
newParameterField.CurrentValues.RemoveAll();

  1. Determine the type of parameter value then modify the parameter.

The following code modifies the parameter if it is discrete.

Visual Basic

Dim kind As CrParameterValueRangeKindEnum = newParameterField.ValueRangeKind
If kind = CrParameterValueRangeKindEnum.crParameterValueRangeKindDiscrete Then
 Dim discreteValueText As String = "Modified Parameter Value"
 Dim discreteValue As New ParameterFieldDiscreteValue()
 discreteValue.Value = discreteValueText
 newParameterField.CurrentValues.Add(discreteValue)
End If

C#

CrParameterValueRangeKindEnum kind = newParameterField.ValueRangeKind;
if (kind == CrParameterValueRangeKindEnum.crParameterValueRangeKindDiscrete)
{
 String discreteValueText = "Modified Parameter Value";
 ParameterFieldDiscreteValue discreteValue = new ParameterFieldDiscreteValue();
 discreteValue.Value = discreteValueText;
 newParameterField.CurrentValues.Add(discreteValue);
}

  1. Use the ParameterFieldController.modify method to modify the original parameter field based on the changes you have made in the copy.

Visual Basic

Dim parameterFieldController As ParameterFieldController
parameterFieldController = rcd.DataDefController.ParameterFieldController
parameterFieldController.Modify(parameterField, newParameterField)

C#

ParameterFieldController parameterFieldController;
parameterFieldController = rcd.DataDefController.ParameterFieldController;
parameterFieldController.Modify(parameterField, newParameterField);

The following code gets the first parameter in the report and changes the default value of a discrete parameter:

Visual Basic

Private Sub ModifyParameterValue(ByVal rcd As ISCDReportClientDocument)
 Dim parameterFields As Fields = rcd.DataDefController.DataDefinition.ParameterFields
 Dim parameterField As ParameterField = DirectCast(parameterFields(0), ParameterField)
 
 Dim newParameterField As New ParameterField()
 parameterField.CopyTo(newParameterField, True)
 newParameterField.CurrentValues.RemoveAll()
 Dim kind As CrParameterValueRangeKindEnum = newParameterField.ValueRangeKind
 If kind = CrParameterValueRangeKindEnum.crParameterValueRangeKindDiscrete Then
  Dim discreteValueText As String = "Modified Parameter Value"
  Dim discreteValue As New ParameterFieldDiscreteValue()
  discreteValue.Value = discreteValueText
  newParameterField.CurrentValues.Add(discreteValue)
 End If
 Dim parameterFieldController As ParameterFieldController
 parameterFieldController = rcd.DataDefController.ParameterFieldController
 parameterFieldController.Modify(parameterField, newParameterField)
End Sub

C#

private void ModifyParameterValue(ISCDReportClientDocument rcd)
{
 Fields parameterFields = rcd.DataDefController.DataDefinition.ParameterFields;
 ParameterField parameterField = (ParameterField)parameterFields[0];
 
 ParameterField newParameterField = new ParameterField();
 parameterField.CopyTo(newParameterField, true);
 newParameterField.CurrentValues.RemoveAll();
 CrParameterValueRangeKindEnum kind = newParameterField.ValueRangeKind;
 if (kind == CrParameterValueRangeKindEnum.crParameterValueRangeKindDiscrete)
 {
  String discreteValueText = "Modified Parameter Value";
  ParameterFieldDiscreteValue discreteValue = new ParameterFieldDiscreteValue();
  discreteValue.Value = discreteValueText;
  newParameterField.CurrentValues.Add(discreteValue);
 }
 ParameterFieldController parameterFieldController;
 parameterFieldController = rcd.DataDefController.ParameterFieldController;
 parameterFieldController.Modify(parameterField, newParameterField);
}

This list includes the namespaces used by the sample code:

© 2021 SAP AG. All rights reserved.

http://www.sap.com/sapbusinessobjects/

Support services

http://service.sap.com/bosap-support/

Created with the Personal Edition of HelpNDoc: Full-featured Documentation generator