Printing SalesOrderAcknowledgement via ButtonClick

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

2 Likes