Print Copies of Picking List According to Item Quantity Per Order

SOLVED

Hello everyone,

I created a picking sheet form to print out as a thermal label customized to a merchant's specification. The label has two unsuppressed sections (rest suppressed), Group Header SO_SalesHeader.SalesOrderNo and the Group Footer. The Group Header consists of fields pertaining to the sales order information, such as PO number and return policy text, and the group footer contains a subreport, linked by SO_SalesHeader.SalesOrderNo, that displays the items in an order. The subreport has everything suppressed except for a report header, which displays the column headers, and a detail section that displays item number, qty, etc.

We need to print picking lists for each order X number of times, with X depending on the total quantity of items being shipped for that order. 

I have tried searching for hours and I cannot find much information regarding this. 

May I ask for some help with this please? And thank you in advance.

  • +1
    verified answer

    I don't believe there is any way of doing this with Crystal Reports itself.  I was never able to get a page or section to repeat based on the quantity, or any number field in the report.  For our client who needed 1 label for each unit instead of one label for each item line, we had to create a SQL process where we pull the Sage data into SQL tables, then run a stored procedure with a loop to turn the results into multiple lines that are then printed by the Crystal Report.  

  • 0 in reply to hyanaga

    Hi Hyanaga.

    Thank you for the information and for replying! Is creating an SQL process something that is easily done, or is it better to reach out to a professional? Also, if you don't mind me asking, are there any documents or Sage Knowledge articles that can guide me in creating this process?

  • 0 in reply to MC-IT

    Setting it up in SQL does require SQL knowledge.  You have to install the free version of SQL if you don't already have an instance, create the connection to the Sage database, create the tables to store the data, and the actual procedure to produce the results to print.  I do not know of a KB article that explains this, sorry.  I am a consultant myself, and I have a full client list so I don't usually say this on this forum, but this is a bit specialized so if you are looking for professional help with it, feel free to connect with me.

  • 0

    Create a UDT with a column that just has numbers counting up beyond the highest quantity you ever want to print.  1, 2, 3, 4...

    The do a <= join of that UDT to your quantity column.  Put a UDT field on the report but suppress it (something from the UDT has to be in the report for it to be effective) and your lines should repeat as you wish.

  • 0 in reply to Kevin M

    That a really cool idea.  It sounds like it would work if you want every picking list to print one per quantity.  My client has specific items that should print in multiples, and others that will print one per line, so we had to use a custom process.

  • 0

    When it comes to printing labels I always suggest the software Bartender.  very powerful and doing this is very easy.  Just tell it the number of labels = the quantity field value.

  • 0 in reply to hyanaga

    Some conditional report selection criteria could filter out the copies when you don't want them.

  • 0 in reply to Kevin M

    Hi Kevin,

    My apologies for taking so long to reply, it's been hectic. And thank you for your suggestion! 

    I have a very basic college level understanding of SQL, so if I may sort of rehash what you are explaining.

    The value in the quantity column would be used to look up anything <= in the UDT column.

    Adding the UDT field into the report would make the report print for every value that is matched ( UDT <= quantity). This is why the column needs have numbers exceeding the possible max quantity, so that all values can be matched.

    Question:

    The report consists of a group header with the sales order information, and a group footer with a subreport. The subreport contains the item information.

    I have a beginner's understanding of Crystal Reports, but I would think the UDF field should be inserted into the group header so the report is forced to to generate again for the next value?

  • 0 in reply to hyanaga

    Hi Hyanaga,

    Thank you again for your help!

  • 0 in reply to MC-IT

    The UDT strategy works to duplicate the line data, where you'd print one line per page, not the whole report duplicated multiple times.  To duplicate the entire report multiple times, you'd have to move those contents into a sub-report, with appropriate linking parameters... which is not easy to set up properly.