Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Table with subform: manage the font (size, color) of each recording

Christopher95
Level 2
Level 2

Hi there, 

I have a data table that I display via subforms and I would like for some lines to be able to modify the font (size, color, style etc) from a field in my current data line.

Example:

. my data table:

LAST_NAMEFIRST_NAMECHANGE_STYLE
HAMILTONLEWISX
RAIKKONENKIMI 
SENNAAYRTONX
ALONSOFERNANDO 

 

Now, when this data are displayed in my PDF, i would like, for example, the following result:

LAST_NAMEFIRST_NAMECHANGE_STYLE
HAMILTONLEWISX
RAIKKONENKIMI 
SENNAAYRTONX
ALONSOFERNANDO 

 

The new style of the row (line 1 and 3 in my example) is applied if the field 'CHANGE_STYLE' is equal to 'X'.

Is it possible to do that? in javascript i suppose.

 

Thank for any help.

1 Accepted Solution
Kosta_Prokopiu1
Correct answer by
Employee
Employee

Hi,

the layout.ready event is the one you must use for such changes to field formatting. But I approach it slightly different then you I guess. The linked example takes 2 seconds to render a 1000 row table (which is good). I created a very rough subform based table and make a pseudo data fill with a script. See if that works for you.

https://documentcloud.adobe.com/link/review?uri=urn:aaid:scds:US:14266d35-a169-4ea7-9d90-20ee62e36c2...

 

View solution in original post

4 Replies
radzmar
Level 10
Level 10

Hi,

 

this is posibble. All you need is a scritpt in the layout ready event of the row. 

Given the cells are named LAST_NAME, FIRST_NAME and CHANGE_STYLE it could look this way: 

var bStyle = this.CHANGE_STYLE.rawValue === "x" ? true : false;
this.LAST_NAME.font.weight = bStyle ? "bold" : "normal";
this.LAST_NAME.font.underline = bStyle ? "1" : "0";
this.FIRST_NAME.font.fill.color.value = bStyle ? "51,102,255" : "0,0,0";
this.FIRST_NAME.font.posture = bStyle ? "italic" : "normal";
this.FIRST_NAME.font.size = bStyle ? "8pt" : "10pt";
this.FIRST_NAME.font.underline = bStyle ? "1" : "0";

 

radzmar_0-1611256200976.png

 

Christopher95
Level 2
Level 2

Hi there,

it does not work for me, moreover if I implement this event it is very very slow, in the case where I have hundreds of lines it is impossible as a solution.

Kosta_Prokopiu1
Correct answer by
Employee
Employee

Hi,

the layout.ready event is the one you must use for such changes to field formatting. But I approach it slightly different then you I guess. The linked example takes 2 seconds to render a 1000 row table (which is good). I created a very rough subform based table and make a pseudo data fill with a script. See if that works for you.

https://documentcloud.adobe.com/link/review?uri=urn:aaid:scds:US:14266d35-a169-4ea7-9d90-20ee62e36c2...

 

View solution in original post