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

Adobe Summit 2023 [19th to 23rd March, Las Vegas and Virtual] | Complete AEM Session & Lab list
SOLVED

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

Avatar

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

Avatar

Correct answer by
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

0 Replies

Avatar

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

 

Avatar

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.

Avatar

Correct answer by
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...

 

The ultimate experience is back.

Join us in Vegas to build skills, learn from the world's top brands, and be inspired.

Register Now