kashiash
3/28/2019 - 2:03 PM

print xp collection

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);
    }
}