The way I did it for the Pick list report was to call via a new Context menu, a customization of SoPickListReport window, passing along the active sales order number. Launch the print then close the window.
Here is the generation of the report info:
try
{ Erp.Proxy.Rpt.SOPickListReportImpl report = WCFServiceSupport.CreateImpl<Erp.Proxy.Rpt.SOPickListReportImpl>((Ice.Core.Session)oTrans.Session, Epicor.ServiceModel.Channels.ImplBase<Erp.Contracts.SOPickListReportSvcContract>.UriPath); var ds = report.GetNewParameters(); report.GetDefaults(ds); ds.SOPickListReportParam[0].ToDate = (DateTime)edvReportParam.dataView[0]["ToDate"]; ds.SOPickListReportParam[0].FromDate = (DateTime)edvReportParam.dataView[0]["FromDate"]; ds.SOPickListReportParam[0].OrderList = order; ds.SOPickListReportParam[0].ArchiveCode = 0; ds.SOPickListReportParam[0].AgentID = "SystemTaskAgent"; ds.SOPickListReportParam[0].AutoAction = "SSRSPREVIEW"; ds.SOPickListReportParam[0].SSRSRenderFormat = "PDF"; ds.SOPickListReportParam[0].WorkstationID = WorkID; ds.SOPickListReportParam[0].ReportStyleNum = 1001; ds.SOPickListReportParam[0].DateFormat = "mm/dd/yyyy"; ds.SOPickListReportParam[0].NumericFormat = ",."; ds.SOPickListReportParam[0].TaskNote = "From menu context of Sales Order: " + ds.SOPickListReportParam[0].OrderList + " by " + UserName ; ds.SOPickListReportParam[0].ReportCultureCode = "en-CA"; if(bKitComponents) ds.SOPickListReportParam[0].PrintKitComponents = true; else ds.SOPickListReportParam[0].PrintKitComponents = false; string dquote = "\""; string dbakslash = @"\\"; string bakslash = "\\"; ds.SOPickListReportParam[0].RptPageSettings = "Color=True,Landscape=True,Margins=[Left=25 Right=25 Top=25 Bottom=25],PaperSize=[Kind=" + dquote + "Letter" + dquote + " PaperName=" + dquote + "Lettre" + dquote + " Height=1100 Width=850],PaperSource=[SourceName=" + dquote + "Sélection automatique" + dquote + " Kind=" + dquote + "AutomaticFeed" + dquote + "],PrinterResolution=[Kind=" + dquote + "Custom" + dquote + " X=600 Y=600]"; string info = ""; report.SubmitToAgent(ds, "SystemTaskAgent", ds.SOPickListReportParam[0].AgentSchedNum, 0, "Epicor.Mfg.UIRpt.SOPickListReport"); } catch (Exception ex) { MessageBox.Show(ex.ToString()); }
Hope it helps…
Pierre