GeneXus offers a simple way for end users to modify certain aspects of report outputs, such as fonts, the position of controls, colors, and so on.
From the viewpoint of development with GeneXus, reports are defined by creating Procedure objects with a Layout, and a few simple settings are needed to obtain the result in PDF format. When they are generated, in addition to the lines of code in the corresponding language, an XML file is also generated for each procedure with a layout, containing the information relative to the presentation (controls, position, fonts, and others).
An XML file is metadata taken at runtime to design each procedure output (the output isn't hard-coded inside the generated code). So, even though the XML files are editable, GeneXus offers a friendlier alternative for end users to modify the outputs.
GeneXus provides an editor called GeneXus Report Editor (GxReportEditor.exe), which is available at the installation root of GeneXus.
It allows end users, upon opening an .rpt file associated with a report (Procedure object with a Layout), to update its printblocks.
RPT files are not generated by default. You have to set the Customizable Layout property in the Knowledge Base at the Generator level to generate the .rpt file for each procedure with a layout, or the same property at the object level if you decide to generate it for specific procedures.
RPT files are stored under the Knowledge Base path, more specifically in the LayoutMetadata directory which is located in the web directory of the generator directory:
C:\Models\KBTravelAgency\CSharpModel\web\LayoutMetadata
When an .rpt file is opened using the GeneXus Report Editor, the view is the same as that of the GeneXus Procedure Layout. This means that you will be able to remove controls from the print blocks and modify control properties such as Fonts, Colors, and others.
It is also possible to change the position of controls inside the print block. However, controls cannot be moved from one print block to another, and neither is it possible to include controls that were not originally included in a print block when the procedure was designed in GeneXus.
Upon saving the modifications, in the subsequent execution of the procedure corresponding to the .rpt file that has been modified, the changes will be taken into account and the new layout will be shown.