print xp collection
public class InplaceReportEnableController : PrintSelectionBaseController
{
protected override void ShowInReport(SingleChoiceActionExecuteEventArgs e, IReportData reportData)
{
// check if current report is the one we have to replace
if (reportData.ReportName == "My Report To Replace")
{
// find report-replacement
List<IReportData> reportDataList = InplaceReportCacheController.GetReportDataList(base.Frame, typeof(MyCustomTypeToBeShown));
if (reportDataList.Count > 0)
{
// prepare list of KeyValues for the object which I want to be shown in resulting report
List<object> values = new List<object>();
foreach (object obj in e.SelectedObjects)
{
if (!(obj is MySourceObject))
continue;
values.AddRange(((MySourceObject)obj).NestedObjects.Select(nestedObject => base.ObjectSpace.GetKeyValue(nestedObject)));
}
base.Frame.GetController<ReportServiceController>().ShowPreview(reportDataList[0], (CriteriaOperator)new InOperator(base.View.ObjectTypeInfo.KeyMember.Name, values));
}
}
else
base.ShowInReport(e, reportData);
}
}