Skip to Content
Author's profile photo Venkata Rakesh Mogillapalle

Using Subform to trigger Master Pages dynamically

Hi All,

Just wanted to share a requirement which I recently worked on using different master pages and then need to use different master pages dynamically, based on some conditions.  But we cannot generally hide a master page, so taught of so many ways and finally came up with this idea. Here is the step by step procedure, which I followed to achieve this

  1. Create a variable (which triggers master page) in interface

Image 1.png

  2. Create a table with one field in it, in Code initialization part of interface

Image 1.png

3. Then we need to create number of tables in global data section according to the number of master pages needed, i.e. If you have 2 master pages, then we need to create 2 tables.

Image 1.png

4. Code Initialization: Place below logic
Populate it_vbap table // Some Data
wa_mast
t1 = ‘1’.
IF trigger = 1. // If trigger is 1, then it triggers first master page, else second
APPEND wa_mast to it_master1.
ELSE.
APPEND wa_mast to it_master2.
ENDIF.

5. Now create a form using this interface

6. Design two master pages

7. Create a subform.  Set it properties as ‘flowed’.  Bind it to one of the tables, say itab_master1.  Set maximum repetition to 1 and remove minimum(which will be set by default)

Image 1.png

8. In pagination set the properties, such that it is on master page 1 (Page1 in our case)

Image 1.png

9. Now copy first subform and paste again.  In second subform bind it to other internal table and in pagination set to page 2

Image 1.png

Image 1.png

10. Activate it and execute it. If trigger is ‘1’, then it will trigger first master page

Image 1.png

Image 1.png

if trigger <> 1, then it triggers second master page.

Image 1.png

Image 1.png

Hope this helps.

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Roberto Vacca
      Roberto Vacca

      @Rakesh MV

      Hi . Thanks for your tips.

      I'm not sure, I've Adobe Indesigner 11, but I think your code will not hide blank page.

      After a lot of struggle , finally I hope to realize how it works. Your solution need something to add.

      I need to insert in the initialization event of Subforms (first and second) the javascript

      -First subform

      if ( trigger.rawvalue = '2' )

      {

      this.presece = "hidden";

      }

       

      -Second subform

      if ( trigger.rawvalue = '1' )

      {

      this.presece = "hidden";

      }

       

      In this way it seems to work well.

      Please let me know!

      Thanks a lot!