Feature - Printing API to Dynamically Set Number of Copies

Release Date: 04/04/2018
Applied to Elliott versions: 7.5 and 8.2

Currently, the Elliott user decides how many copies of a report he/she wants to print in the Print Option window.  See the first sample screen below.  With this new API feature, Elliott developers can write a program to override the number of copies to be printed on a dynamic basis.  For example, a user may want to print as many copies of a packing list as the number of boxes (collected through shipment verification processing) for the order.

To do so, before opening the printer, send the number of copies of the report to be printed this way:


Of course, you may use a variable different from BOX-COUNT and you may need to call PRINT240 instead, depending on whether you are using PRINT30 or PRINT240.  The valid value for REPORT-COPIES-COUNT is between 1 and 999.

Normally, a user would prefer the printing output be collated when there are multiple pages. Elliott Systems Manager can handle collating up to 9 copies. When it is over 9 copies, Elliott needs to send the job to the printer and ask the printer to do the collating instead. There is no guarantee that the printer has the ability to perform collating; this will depend on its memory capacity and the size of the print job. 

It is also possible that a user may choose multiple printers in the Print Option window.  In that case, the number of copies will be distributed to the selected printers in this way:
  1. If the number of copies is less than 10, all of them will be printed to the first selected printer, using Elliott to collate the output.  This means there will be one print job spooled for each copy of the report.  This eliminates the risk that the printer will not be able to collate each report.
  2. If the number of copies is 10 or more, the reports will be distributed as evenly as possible among the selected printer(s) while relying on the printer to do the collating. Selecting multiple printers speeds up the printing by using multiple devices.
For example, the user has selected the following printers:

If the program dynamically sets the number of copies to 8, all 8 would be printed on the Cannon MG3500 (default printer) with Elliott doing the collating.

If the program set the number of copies to 13, 7 would be printed on the  Cannon MG3500 (default printer) and 6 would be printed on the CutePDF Writer.  The collating would be done by both printers, not by Elliott.  Again, whether or not the printer can perform the collating is not guaranteed.

One thing worth mentioning is that in the Laser Form Template, Copies tab, the system supports printing different literals per copy. See sample screen below:

This existing feature only works if Elliott (instead of the printer) performs the collating.  Since Elliott can only collate up to 9 copies, for this new API to print the copy literal as defined in Laser Form template, it can only do so if the number of copies is less than 10.

Modified programs: PRINT30, PRINT240

Developer Documentations

  1. Received Code 9999 with Web Services Call
  2. Received Return Status Code 3 When Using Elilogin Login Method
  3. Elliott Web Service Requirements
  4. Elliott eStore Checklist
  5. LN API
  6. FN API
  7. RN API
  8. IN and DF API Change (V9.0)
  9. FA API Changes (V9.0)
  10. VA API Changes (V9.0)
  11. CartService
  12. EliarachService
  13. ElicshtxService
  14. EliattrbService
  15. ElisyscdService
  16. EliNoteService
  17. El2rstimService
  18. EliOrderService
  19. ItemInquiry
  20. EliitmiqService
  21. EliShiptoService
  22. El2getfrService
  23. Steps Required to Test ReportWriter in V8.2
  24. Installation of ElliottService, NETcellent’s Web Services for Elliott
  25. ResellerFinder
  26. EliaptrxService
  27. VendorInquiry
  28. EliloginService
  29. ElislsmnService
  30. EliserhsService
  31. EliatpobService
  32. ElievprcService
  33. ElihdtrxService
  34. ElicuswlService
  35. QueryTurnaround
  36. InvoiceInquiry
  37. ElicustmService
  38. EligetcdService
  39. OrderInquiry
  40. EliordiqService
  41. EliecontService
  42. EliautdpService
  43. El2CrCrdService
  44. Log-Timer / ElliottTimer.Ini Support
  45. Alpha Document Number Support (V8.5/V9.0)
  46. ElliottService System.TypeInitializationException
  47. Feature - Printing API to Dynamically Set Number of Copies
  48. The Values and Meanings of Distribution Types - ARDISFIL, APDISFIL, IMDISFIL, BMDISFIL
  49. DD API Changes (V9.0)
  50. PA API (8.5)
  51. Validate License API
  52. AP API
  53. TP API: Temporary Path
  54. Data Structures for Report Desk Defaults and Enforcements
  55. COBOL to VB Interface Programs
  56. IN API: Option to Support Files and Folders Validation
  57. FF API: File Functions
  58. ID API
  59. LK: Links API
  60. FFLNearYou
  61. Report Desk: Registry Settings
  62. Developing a New Elliott V8.6 Report Desk User Defined Report (UDR)
  63. CustomerInquiry
  64. Elliott API (JSON Web Service)
  65. Animating COBOL Code in Elliott V8.5
  66. Preliminary Programming Changes for Elliott 8.6
  67. CV API
  68. System Lock File Requirements
  69. How to Write Test Codes for C# ESS Projects
  70. Solving the Inability to Debug Elliott on a New Server
  71. Report Desk: Developing Custom Reports
  72. Report Desk Tables
  73. Report Desk Database Delivery Strategy
  74. Logging I-O Logic Errors
  75. Report Desk: Developer Documentation Roadmap
  76. Report Desk: Resolution of Pervasive.Data.SqlClient.dll
  77. TB API
  78. Creating HTML Emails for Professional Presentation
  79. EM API - Create and Send an Email
  80. DN API (Document Number Handling)

Feedback and Knowledge Base