If you isolate the record in a found set of just that one record and then create enough blank records to serve as placeholders for your used labels, you can do this. You can sort in ascending order on almost any field in your table after you create the blank records so that they are listed before the one you want to print. After printing, you can delete the blank records. You can also use a related table where you have 30 records-one for each label position on your page. With that approach, you don't have to create and delete records each time.
Either way, you'll need to set up a field in a table somewhere to keep track of how many labels are used on the current page.
Here's the related table approach, it assumes you have a serial number field in your contacts table that uniquely identifies each contact record.
Define a number field in our new, Labels, layout as ContactID. Define a field in this same table as a number field with global storage enabled: gLabelsUsed.
Now define this relationship: YourContacts::ContactsID = Labels::ContactsID.
Create a labels layout for yoru particular Avery label based on Labels, but list fields from the YourContacts table in this label.
Use this script to print the current record on a layout based on YourContacts in the correct location:
Set Variable [$ContactID ; value: YourContacts::Contact ID]
Go To Layout [Labels (Labels)]
Show All Records
Replace Field Contents [no dialog; Labels::Contact ID; ""] //use calculation and specify an empty string "" to clear all the ID fields
Set Field [Labels::gLabelsUsed ; Mod ( Labels::gLabelsUsed + 1 ; 30 ) + 1]
Go To Record/Request/Page [ no dialog ; Labels::glabelsUsed ]
Set Field [Labels::Contact ID ; $ContactID]
Print [Restore] //specify your labels printer and "Records Being Browsed"
This solution, BTW, is only set up for a single user environment or at least when you have just one user permitted to print this single label.
I have figured out how to do the first option, it is a little more than I want to do each time I want to mail a letter or bill etc.. there's got to be a better way. I am still trying to understand the second option. Can your contact ID be a name or address field instead of serial number or numbered ID field?
It needs to unique identify the desired record. Names are not guaranteed to be unique. The same is true for address fields.
A serial ID field can easily be added to any existing table. After you define the field. Place it on a layout based on this table so that you can Show All Records, place the cursor in this field and then use Replace Field Contents with the Serial Numbers option to load all existing records with a serial number and update your auto-entry options so that the next new record will automatically get the next serial value.