Print Management Report
What is this?
Managing print settings of report with the help of print
management framework. It can be number of copies, printing style, printer ,
design selection based on country, module ,customer specification.
When we need this?
Generally when we have Accountable documents which we will
be sharing with customers r vendors our report should match reporting standard
and sometime customer specific requirements may be design, copy styles.
Examples of Reports where print management is used.
·
Project Invoice
·
Purchase Order
·
Project Quotation and many more
The
DP approaches for these reports are not same .. Some of the reports DP are
developed with Normal DP approach and some with pre-processor.
Lets Do It
Create any DP based report either pre-processor or normal
DP. I will take Purchase Requisition as example.Let us modify PurchReq to print
Management report.
Purchase Requisition is not a form letter report. So update
the class from report run print management specific controller
Lets save it here and proceed with populating required
prerequisites i.e. 2 enum 4 classes.
Create a node in Doctype and NodeType base enums
Add new Node with report name to base enum PrintMgmtNodeType
and PrintMgmtDocumentType.
Specify base table id and default report format in PrintMgmtDocType
Edit getQueryTableId() method and add following code
case
PrintMgmtDocumentType:: PurchReq:
tableId =
tableNum(PurchReqTableVersion);
break;
Edit getDefaultReportFormat and add following code
case PrintMgmtDocumentType:: PurchReq:
return ssrsReportStr(PurchReq,
Report);
Never ever
dare to keep break statement after this code.
Register the new report in document type of node derivative and construct
the derivative in node.
Edit getDocumentTypes in PrintMgmtNode_Purch
docTypes.addEnd(PrintMgmtDocumentType:: PurchReq);
Edit construct in PrintMgmtNode
case PrintMgmtNodeType::PurchReq:
return new PrintMgmtNode_Purch();
Never ever dare to keep break statement after this code.
Edit the PrintMgmtHierarchy derivative so that you get to default the
design in printManagement
Edit getNodesImplementation in PrintMgmtHierarchy_Purch and
add following code
supportedNodes.addEnd(PrintMgmtNodeType::PurchReq);
Edit getParentImplementation in PrintMgmtHierarchy_Purch and add following code
case PrintMgmtNodeType::PurchReq:
// No record to reference, but there is
another node in the hierarchy
result.parmReferencedTableBuffer(null);
result.parmNodeDefinition(PrintMgmtNode::construct(PrintMgmtNodeType::PurchReq));
break;
Move back to controller and add following methods
Override initPrintMgmtReportRun
And runPrintMgmt
Populate the report design to printMgmtReportFormat table
Register the design names which should be available in print
management options
Through addax and AddOther
addAx(PrintMgmtDocumentType::PurchReq);
addOther(PrintMgmtDocumentType::PurchReq,
ssrsReportStr(PurchReq, Report), ssrsReportStr(PurchReq, Report), countryRegionId);
That’s Itt!! Done with Print Management ..
How will you set the Print Management design?
·
Select a module the report is related to.
·
GoTo Setup -> Forms -> Form Setup
Click Print Management Button and in Print Management
Setup form select the design you would like to go for in Purchase Requisition
node.




