expressappframework-113259-validation-validate-report-parameters.md
You can require end users to specify report parameters when reports are viewed with a filtered data source:
You can use the solution described below to validate these parameters.
The following code snippet illustrates the ReportParametersObjectBase class descendant. Its ShowTasksAssignedTo property is decorated by RuleRequiredFieldAttribute.
[DomainComponent]
public class MyReportParametersObject : ReportParametersObjectBase {
public MyReportParametersObject(IObjectSpaceCreator provider) :
base(provider) { }
public override CriteriaOperator GetCriteria() {
return CriteriaOperator.Parse("[FullName] = '" + showTasksAssignedTo.FullName + "'");
}
public override SortProperty[] GetSorting() {
List<SortProperty> sorting = new List<SortProperty>();
return sorting.ToArray();
}
protected override IObjectSpace CreateObjectSpace() {
return objectSpaceCreator.CreateObjectSpace(typeof(Contact));
}
private Contact showTasksAssignedTo;
[RuleRequiredField("RuleRequiredField for MyReportParametersObject", "PreviewReport",
"Assigned To cannot be empty")]
public Contact ShowTasksAssignedTo {
get {
return showTasksAssignedTo;
}
set {
showTasksAssignedTo = value;
}
}
}
The following image illustrates the rule’s node in the Model Editor.
The following image shows the broken rule detection.
See Also