Hello Fin Ops Dev,
Recently I was asked to fix a design issue in one specific form, I noticed that the issue did not occur in our dev Environment I tried it on Google Chrome, and there it was the falting behavior the users complained about.
Internet Explorer:

Google Chrome:

The issue happens when using the Form Group Extended Style: tabularFields

This is the original microsoft code, in this case Form VendChangeProposal, responsible for showing the changes that are sent to Accounts payable Workflow “Proposed vendor changes workflow” (WF Type: VendTableChangeProposalWorkflow), Submited from VendTable form.
Our current code base has an extension of this form with 5 added groups before the footerGroup.
Solution
The idea consists in fixing the size of the groups & creating a new empty form group that will automaticaly resise and fill the missing area of the form without deforming the content.
First you have to create a group “BlankGroup” with the same cararteristics as the others, I’d suggest you duplicate the the last group.
Create an Static String under this new group, keep the Text Property as empty.

Now lets go to code, Create a new class, copy the following X++ code:
| class VendChangeProposalFix | |
| { | |
| /// <summary> | |
| /// Aligned the change proposal fields for Google Chrome | |
| /// Code in X++, Ms Dynamics finances & operations, AxaptaHut, 07-Set-2021 | |
| /// </summary> | |
| /// <param name="sender"></param> | |
| /// <param name="e"></param> | |
| [FormEventHandler(formStr(VendChangeProposal), FormEventType::Initialized)] | |
| public static void VendChangeProposal_OnInitialized(xFormRun sender, FormEventArgs e) | |
| { | |
| int height = 5; | |
| int heightMode = FormHeight::Manual; | |
| void setControlProperty(FormGroupControl _groupControl) | |
| { | |
| _groupControl.heightMode(heightMode); | |
| _groupControl.height(height); | |
| } | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, CaptionGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, HeadersGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, CreditMaxGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, NameGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, VendGroupGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, PaymModeGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, PaymSpecGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, VATNumGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, BankAccountGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, CashDiscGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, CreditRatingGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, PaymTermIdGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, InvoiceAccountGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, VendPriceToleranceGroupIdGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, PaymentDayGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, BSBNumberGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, AccountNumGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, PaymentDayGroup))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, CustomerReference))); | |
| setControlProperty(sender.design().controlName(formControlStr(VendChangeProposal, FooterGroup))); | |
| } | |
| } |
This is the result across all browsers:

If done correctly, this solution should work without any issues.
Follow us and get exclusive AX DEV content.
Hope it might be helpful,
Thanks,
Felipe Nogueira
