Sizing rows in Infomaker

I've got a nested report that can return from 1 to 6 rows, and I want to resize it based on the number of rows it returns so that it always fits in the same space. I'm running into two problems.

1 - Doesn't work. I tried this in the Modify Expression dialog box for font size: if(rowcount()>4,7,9)  figuring that sizing the row to 7 point font would give me enough room if there are more than four rows. But when that's entered, the text resizes to 1 point font, no matter how many rows there are... not what I wanted at all.

2 - Not sure it will work even if it works. I'm assuming that if I resize the font and have Autosize Height checked under position, the rows will get closer together as they get smaller... am I going in the right direction here?

Anyone tried something like this already? Any advice?

thanks

Parents
  • Hi Brian,

     

    For item #1, you must specify the correct font height.  You will need to express this in the unit of measure you are using for the report – not the desired Font pt.; so if you are using 1/1000s of an inch as the measure for your report, you will need to figure out the size of the row you want and express it that way.  See the excerpt from the Infomaker documentation below.

     

    Also, I’m not sure if your rowcount() expression will do exactly what you want because that is looking at your current location, not the total rows returned; so you would have 1 row height for columns 1-4 and a different row height for columns 4-6.  However, you could probably just use the regular count( x for all) function to get the same height for all rows:  ex.  If (count(id for all) > 4,700,900).

     

    For item #2, I believe if you set your report datawindow from the calling program not auto size, the nested report  will always take up the same amount of room on your report.  You could even put a border around your sub report (visible or not) to be able to easily see how much real-estate you have left on your report.

     

    I hope that helps.

     

    lisa

    Font.Height

    Description

    The height of the text.

    In the painter

    Size on the Font page in the Properties view.

    Value

    An integer in the unit of measure specified for the report. Units of measure include PowerBuilder units, thousandths of an inch (1000 = 1 inch), thousandths of a centimeter (1000 = 1 centimeter), or pixels. To specify size in points, specify a negative number.

    Example

    The following statement is specified for the Font.Height property of a text control. Note that the report is defined as using thousandths of an inch as its unit of measure. The statement says that if the control is in the first row, show the text 1/2-inch high (500 1/1000ths of an inch) and if it is not the first, show the text 1/5-inch high (200 1/1000ths of an inch):

     If(GetRow() = 1, 500, 200)

    The boundaries of the control might need to be extended to allow for the increased size of the text. At runtime, the first occurrence of the text control is big (1/2 inch); subsequent ones are small (1/5 inch).

     

     

    From: Tessitura Technical Forum [mailto:forums-technical@tessituranetwork.com] On Behalf Of Brian Graham
    Sent: Monday, May 17, 2010 5:10 PM
    To: llindvall@cfl.rr.com
    Subject: [Tessitura Technical Forum] Sizing rows in Infomaker

     

    I've got a nested report that can return from 1 to 6 rows, and I want to resize it based on the number of rows it returns so that it always fits in the same space. I'm running into two problems.

    1 - Doesn't work. I tried this in the Modify Expression dialog box for font size: if(rowcount()>4,7,9)  figuring that sizing the row to 7 point font would give me enough room if there are more than four rows. But when that's entered, the text resizes to 1 point font, no matter how many rows there are... not what I wanted at all.

    2 - Not sure it will work even if it works. I'm assuming that if I resize the font and have Autosize Height checked under position, the rows will get closer together as they get smaller... am I going in the right direction here?

    Anyone tried something like this already? Any advice?

    thanks




    This message was sent automatically to you by www.tessituranetwork.com because you subscribed to the Tessitura Technical Forum. You may reply to this message to post to the Technical forum or visit the site to search, read and post to the forums. In the interest of keeping the forum posts from becoming cluttered, we encourage you to delete previous message text from your reply before sending. Thank you!

Reply
  • Hi Brian,

     

    For item #1, you must specify the correct font height.  You will need to express this in the unit of measure you are using for the report – not the desired Font pt.; so if you are using 1/1000s of an inch as the measure for your report, you will need to figure out the size of the row you want and express it that way.  See the excerpt from the Infomaker documentation below.

     

    Also, I’m not sure if your rowcount() expression will do exactly what you want because that is looking at your current location, not the total rows returned; so you would have 1 row height for columns 1-4 and a different row height for columns 4-6.  However, you could probably just use the regular count( x for all) function to get the same height for all rows:  ex.  If (count(id for all) > 4,700,900).

     

    For item #2, I believe if you set your report datawindow from the calling program not auto size, the nested report  will always take up the same amount of room on your report.  You could even put a border around your sub report (visible or not) to be able to easily see how much real-estate you have left on your report.

     

    I hope that helps.

     

    lisa

    Font.Height

    Description

    The height of the text.

    In the painter

    Size on the Font page in the Properties view.

    Value

    An integer in the unit of measure specified for the report. Units of measure include PowerBuilder units, thousandths of an inch (1000 = 1 inch), thousandths of a centimeter (1000 = 1 centimeter), or pixels. To specify size in points, specify a negative number.

    Example

    The following statement is specified for the Font.Height property of a text control. Note that the report is defined as using thousandths of an inch as its unit of measure. The statement says that if the control is in the first row, show the text 1/2-inch high (500 1/1000ths of an inch) and if it is not the first, show the text 1/5-inch high (200 1/1000ths of an inch):

     If(GetRow() = 1, 500, 200)

    The boundaries of the control might need to be extended to allow for the increased size of the text. At runtime, the first occurrence of the text control is big (1/2 inch); subsequent ones are small (1/5 inch).

     

     

    From: Tessitura Technical Forum [mailto:forums-technical@tessituranetwork.com] On Behalf Of Brian Graham
    Sent: Monday, May 17, 2010 5:10 PM
    To: llindvall@cfl.rr.com
    Subject: [Tessitura Technical Forum] Sizing rows in Infomaker

     

    I've got a nested report that can return from 1 to 6 rows, and I want to resize it based on the number of rows it returns so that it always fits in the same space. I'm running into two problems.

    1 - Doesn't work. I tried this in the Modify Expression dialog box for font size: if(rowcount()>4,7,9)  figuring that sizing the row to 7 point font would give me enough room if there are more than four rows. But when that's entered, the text resizes to 1 point font, no matter how many rows there are... not what I wanted at all.

    2 - Not sure it will work even if it works. I'm assuming that if I resize the font and have Autosize Height checked under position, the rows will get closer together as they get smaller... am I going in the right direction here?

    Anyone tried something like this already? Any advice?

    thanks




    This message was sent automatically to you by www.tessituranetwork.com because you subscribed to the Tessitura Technical Forum. You may reply to this message to post to the Technical forum or visit the site to search, read and post to the forums. In the interest of keeping the forum posts from becoming cluttered, we encourage you to delete previous message text from your reply before sending. Thank you!

Children
No Data