Few days back we found a serious problem regarding Translation of the Labels of all the forms we were working on. The pressure came from the functional. As per there requirement they want to update a table(Constant table) and they want to reflect the changes in the adobe forms. Then things are getting little challenging. One of my senior created an method to fetch all the Translation details for any of the form. We were passing the values through the context of the forms. She created a structure with 200 fields. Among those fields anybody can pass max of 200 fields to a structure for translation. For our forms the number 200 was little high. Anyways after that we follow the below steps and successfully displayed the caption of the fields dynamically as per the system language.

this.resolveNode(“this.caption.value.#text”).value = data.Page1.Translations.FIELD_001.rawValue ;

The bold one is the field which contains translation and the italic one is the subform in which we wrapped the fields which contains translation.

Now the problem begins. Some of the field text needed to be like this as shown below.

/wp-content/uploads/2016/01/trans_870377.png

  

Case A: For this case the caption is needed to be right aligned. The initial spaces may varies for different languages.

  • First calculate the total no of letters may fit in that field A. Say it is 50 char.
  • Then create an global field named ‘i’ set its value as 50 spaces. Goto Edit->Form Properties->Variables. Click on ‘+’ and set the value as 50 spaces. It may change for other fields.
  • Then write the following code.

var label = 0 ;

var i_val = 0;

var i_len = 0;

var label_len = 0;

var space_len = 0;

var space_app = 0;

label = data.Page1Translations.FIELD_001.rawValue ;

i_val = String(i.value); ……………………………………………  ” For spaces

i_len = i_val.length; …………………………………………… ” Checking the space length

label_len = label.length ; ……………………………………………. ” Checking the label length

space_len = Number(i_len) – Number(label_len); ……………………………………………. ” finding the no of spaces have to be appended to a field labels

space_app = i_val.substring(1,space_len);……………………….” actual required spaces

  1. this.resolveNode(“this.caption.value.#text”).value = space_app + label; ………..” Concatenating and displaying the labels..

Thus we achieved our requirement. Now I thought how to fulfill the next requirement…

Case B: I created another global variable named ‘NXT_LINE’ and set its value as ‘enter’. (That means in the value I pressed only enter.. )

Then wrote the same code as before just passed NXT_LINE instead if ‘i’. In the output it came like field B only.

At last the things are done with the forms. Then I started to write this document. Suddenly senior came and stood behind me and watched what I was writing.

I realized somebody behind.. Heard a little tough voice “Enough blogging something I have regarding MIGO tcode”… 

If any improvement is needed in this technique then please don’t forget to write. The main implementation of this technique is to display the caption with your required alignment.

To report this post you need to login first.

3 Comments

You must be Logged on to comment or reply to a post.

  1. Nikolay Evstigneev

    I believe the trick you’re doing with right aligning will work out only for monospace fonts. And when someone tells you to change the width of some cells you’ll need to recalculate the number of suitable spaces, do I get it right?

    (0) 
    1. Sabarna Chatterjee Post author

      Yes Nikolay, you are right. For this case if any changes come to the field we have to change the global variable length again.. If there is any alternative solution please share.

      (0) 

Leave a Reply