Forcing BI template to 'anchor' text in a certain place

johndanter

johndanter

Legendary Poster
Forcing BI template to \'anchor\' text in a certain place

Hi List,

Got a question that is causing me some bother...

I have a mod to R04572 cheque print (I've added DCT and DOC to the stub detail) and it prints on pre perforated paper, 2 lines of holes to split the paper into 3 3rds.

Top 2 parts are the remittance detail lines. (we print no more than 10 lines ONLY if present)
These then repeat on the top line of the perforation.
Lower 3rd is the actual cheque amount

So my question is...

How do I get the 2nd 3rd to start in the same place on every page, regardless of the number of detail lines above it.

My problem is if there are say 7 detail lines the 2nd remittance print could be 4" down the page.
If there are only 2 lines of detail the 2nd remmitance prints say 2.5" down the page

I need to force the 2nd remittance to always print, say 5.5" down the page

I hear it's called anchoring text.

My other idea was to force the remittance to always print the total + 10 lines below the first line of stub detail.

That way I am certain of the length of the remittance lines.
I just have no way of knowing how to do that

Thanks in advance

John
 
Re: Forcing BI template to \'anchor\' text in a certain place

John,

When I learned about BI Publisher templates, I was told that it's best to use tables to have better control of placement. What we do is have a table with three rows, each with a fixed row height. Then within each row, we have another table that contains the actual detail.

Hope this helps.
 
Re: Forcing BI template to \'anchor\' text in a certain place

Hi Don,

Believe it or not I've already tried that
smile.gif
Nearly worked but same effect of pushing the text down too far.

What I have just discovered is this little gem, from the Oracle :

Defining Groups of Repeating Fields
In the PDF template, you explicitly define the area on the page that will contain the
repeating fields. For example, on the purchase order template, the repeating fields
should display in the block of space between the Item header row and the Total field.
To define the area to contain the group of repeating fields:
1. Insert a form field at the beginning of the area that is to contain the group.
2. In the Name field of the Field Properties window, enter any name you choose. This
field is not mapped.
3. Select Text from the Type drop down list.
4. In the Short Description field of the Field Properties window, enter the following
syntax:
<?rep_field="BODY_START"?>
5. Define the end of the group area by inserting a form field at the end of the area the
that is to contain the group.
6. In the Name field of the Field Properties window, enter any name you choose. This
field is not mapped.
7. Select Text from the Type drop down list.
8. In the Short Description field of the Field Properties window, enter the following
syntax:
<?rep_field="BODY_END"?>
To define a group of repeating fields:
1. Insert a placeholder for the first element of the group.
Note: The placement of this field in relationship to the BODY_START tag
defines the distance between the repeating rows for each occurrence. See
Placement of Repeating Fields, page 3-9.
2. For each element in the group, enter the following syntax in the Short Description
field:
<?rep_field="T1_Gn"?>
where n is the row number of the item on the template





Now this looks promising and is what I want.
ATM I am having issues getting it to work. So I am tinkering with this until I get it to work.

I'll post up the result.

In the meantime, if anyone has done something like this for repeating lines on a PO template, please post up the RTF for me (doc file as we can't upload the RTF extension)
 
Re: Forcing BI template to \'anchor\' text in a certain place

Hi List,

For anyone else reading this in the future, the answer was embarrassingly simple
smile.gif


In your template, increase the height of the header (down to say 3.5"
In the doc, create an internal template
<?template:header?>
text/xml fields to show
<?end template?>

Call this on the first line of the header text.
<?call:header?>

(this forces the data to start right at the top of the printed page)

USE NO CARRIAGE RETURNS in between commands

Then first line of body text, repeat <?call:header?>

Create another internal template for the cheque footer
<?template:cheque?>
Text....
<?end template?>

Repeat the logic above
<?call:cheque?><?end for-each-Payment_Selection_S7?><?split-by-page-break?>


Simples
smile.gif
 
Back
Top