1. Michael Klein
  2. Report Editor
  3. Monday, August 24 2020, 09:35 PM
  4.  Subscribe via email
I have a report that prints a set of labels. (I'm using a report instead of labels because of this issue.) My labels come in sheets of 3 labels across by 5 down. My report is configured using Column Layout: Right.

I'd like to be able to print partial pages, and then print the rest another time by skipping the first N labels on a page. For example, if I print a sheet of 5 labels, the next time I print, I'd run the same sheet through again and tell the report to skip the first 5 positions (so it would start on row 2 column 3).

Is there a way to do this either at printing time, or by altering my query and adding conditional printing to my page elements in the report to leave the first N positions blank?
Comment
There are no comments made yet.
Sergey Pashkov Accepted Answer
Hello Michael,

Yes, you can skip first records.

1. Add a new parameter to the Parameters tab at the left (e.g. start_record, type Integer, Default 5)
2. Select printed controls and change print_if property:
report.cursor.position >= $P('start_record')


An invisible rectangle will keep an empty space
Attachments (2)
Comment
There are no comments made yet.
  1. 3 weeks ago
  2. Report Editor
  3. # 1
Michael Klein Accepted Answer
This looks like a good start as far as keeping empty space, but I don't want to actually skip those records. I have a field called printed that I use to keep track of labels that have already been printed, and the query excludes those. So I want to print all the records in the query, but I want to skip skip_number of label spaces. Can I do that, or do I have to somehow include skip_number records at the beginning of my cursor as well?
Comment
There are no comments made yet.
  1. 3 weeks ago
  2. Report Editor
  3. # 2
Michael Klein Accepted Answer
I've overcome the hurdle in the last question by creating a blank_rows table with 14 numbered rows, and edited my query:


SELECT row_num AS name, row_num AS description, 0 AS serial_number
FROM blank_rows
WHERE row_num < $P(start_record)
UNION ALL
SELECT name, description, serial_number
FROM real_data
ORDER BY serial_number;


Now I have the right number of dummy records at the top of my data source to match the number of blank spaces I need, and things are almost working right. The problem now is:


  • if start_record is 1 through 3, printing starts in the correct position in row 1
  • if start_record is 4 through 6, printing starts in the correct position in row 2
  • if start_record is greater than 6, printing starts in the correct column, but still in row 2


In other words, it will only ever skip 1 row worth of labels.

I've tried putting 1, 2, 3, and 4-row high rectangles in the header and setting them to print conditionally if start_record > 3, 6,
9, and 12, respectively. That almost works also, but that results in the labels in columns 2 and 3 of the last row getting pushed to
the next page for some reason.
Comment
There are no comments made yet.
  1. 3 weeks ago
  2. Report Editor
  3. # 3
Michael Klein Accepted Answer
Please disregard my previous message. I accidentally set my blank rectangle to print conditionally based on start_num and it was causing the failure to shift down. I think everything is working now the way I want it. Thank you!
Comment
There are no comments made yet.
  1. 3 weeks ago
  2. Report Editor
  3. # 4
  • Page :
  • 1


There are no replies made for this post yet.
However, you are not allowed to reply to this post.

Categories

Announcements & News
  1. 0 subcategories
Valentina Studio
  1. 2 subcategories
Valentina Server
  1. 4 subcategories
Valentina Database ADK
  1. 0 subcategories
Valentina Reports ADK
  1. 0 subcategories
Other Discussions
  1. 2 subcategories
BETA Testing
  1. 0 subcategories
Education & Research
  1. 0 subcategories