The first difference I would like to discuss is the ‘reservation’ of space, so to speak. In Classic NAV, when you print a report and some of the fields on that report are being set to Visible = FALSE in code, the position of the other fields in the report is unaffected. In a report in the RTC client, when you use the Hidden property to make a field in the RTC client not visible, the position of the other fields on the report can be affected.
On a lot of reports, a field moving up or down a little bit won’t matter, but when your report needs to print information in certain designated areas (like when printing a Check, or Address information that needs to be readable through the window in an envelope), this can become a problem.
Two easy ways to prevent a field being made invisible affecting the position of the other fields on the report:
Use a rectangle
When you have certain sections in your report that always need to have the same dimensions, no matter what fields might be set to Visible = FALSE, put a Rectangle around those fields, or actually put the fields on the Rectangle, so the Parent property of the fields will become the Rectangle. This will make sure that all the fields on the rectangle will always be displayed in the same location on the rectangle. If the entire report is just one section, create a Rectangle that spans the entire report, and then start adding fields, and tables, and whatever else you might need on that report.
Use the Expression property instead of the Hidden property
Do not use the Hidden property to make the field invisible, but instead use the Expression property to affect what you display in certain situations. For some reason, a field with the Hidden property set to TRUE takes up less space than a field with the Hidden property set to FALSE. While a field that has a conditional Expression, always takes up the exact same space.
For instance, if the Expression for a certain field would be
And its Hidden property would be
Iif(Condition, true, false)
Instead you could set the Hidden property to false, and make the Expression
Just make sure that you assign the correct statements to the THEN and the ELSE clause of the Iif statement.