This page has information about how to use reports. Reports can have multiple graphical components: tags, symbols, tables, and trends. All these components have the capability to update data once a report is generated; providing users with the most recent data in their reports. Reports can be saved into files, like XPS, HTML, Unicode, ASCII, or PDF.

On this page:


Using the Report Editor

To access editor, go to Reports / Forms Editor.

There are two areas in the Report Editor, the top toolbar with formatting tools and the text area, where the user can model the document like any classical text editor.

Adding Tags

This can be done in the text area, by writing the correct command.

For internal tags, the command is the tag's name, and it must be written between curly brackets so the system understands it as a tag and not as a string.

{Tag.<TagName>}

An easier way to add a tag to a report is by right click on the toolbar Tag Button and finding the tag through all Solution elements. It will place the tag with the correct formatting.

Adding Symbols

Symbols can be added in a similar way. Simply, click the Symbol button and choose the desired Symbol. It is worth mentioning that the Symbol will have the appearance it had when the report was exported.

You can use the method above to add Trend Elements to a Report, as we'll show below. However, this is not possible for Alarm and Grid Objects. 

For these objects, there is a Table functionality that is accessed through the Header Bar.

Adding Tables

If the table has a limited number of lines, use a Static Table. If not, use a Dynamic Table.

Static Table

For Static Tables, you must specify the number of rows and columns, and you need to populate its cells with the desired information.


Dynamic Tables (populated via queries)

To add a Dynamic Table, you must insert the query name or table that it will fetch data from when the report is saved.

To select and name the desired rows, write the Column Name from the final Report in the first row and the Column Name from the database in the second row.



Tricks and Tips

TrendCharts

To add a TrendChart Element to a report, you will need to create a new Symbol from the Trend. To do so, right-click the desired element and select Make New Symbol.

Right-click an element and select Make new symbol


Go to Reports / Forms Editor, and click Symbol in the header bar. Then, select your Trend Symbol.

Note

If the Trend is modified in your Solution, the one inside the Report will be updated automatically.

Translating Tags and Tables

For reports that have different translation options, the first requirement is to create Dictionaries in Displays / Localization.

To switch between languages, use the property:

@Client.Localization = "" // for default dictionary
//or
@Client.Localization = "<Dictionary_Name>"


For Tables and Tags, the property above should be enough. However, the callback function must be used to translate an Alarm Audit Trail with added Custom Messages and Comments.

To enable the translation of custom messages, you must add a string element to the itemName input parameter, as seen below:

string itemName = "{object}"


A final AddCustomMessage with localization capabilities should look like this:

@Alarm.AuditTrail.AddCustomMessage("User:  {"  +  @Client.UserName  +  "}  logged",  null,  null, null, "{object}", null, null);


The code added to the callback function is presented below:

public void OnReportCustomTableCell(string reportName, string columnName, System.Data.DataRow row, System.
Windows.Documents.TableCell tableCell)
{
if (row["ItemName"].ToString() == "{object}")
{
string[]  Message_Split_Parts  =  row[columnName].ToString().Split(’{’,  ’}’); string Translated_Message = "";

for (int i = 0; i <= Message_Split_Parts.Length - 1; i++) {

// Translate the custom message part
Translated_Message += @Client.Locale(Message_Split_Parts[i]);

Run  cellText  =  (tableCell.Blocks.FirstBlock  as  Paragraph).Inlines.FirstInline  as  Run;

// Replace the original message with the translated one. cellText.Text = Translated_Message;
}
}
}


The DataGrid is added to the Report following the default logic for tables. The DataGrid language will depend on the dictionary that was enabled when the report was saved.

Headers and Footers

To add a Header and/or Footer to a Report, you need to create one independent report for each. Then, set the reports as the Header and Footer in the Main Report. 

The Header and Footer data (can be text, image, or page numbering) will be replicated throughout the main document.

To dynamically number the pages of a Report, you will need to write the macro #PAGE wherever you want the page number to be placed. You can also use the macro #TOTALPAGE to get the total page number.

Appends

By default, when a new report is generated, it replaces the old one if the SaveFile path and ReportName are the same.

However, it is possible to append the most recent data into an existing report, which allows the old and new data to be displayed in the same ReportFile.

To do so, you need to enable the Append column on Reports / Forms, and insert the number ”1” in it.


Examples Using Report

Tags and Symbols

Below is an example of the creation of a report with all elements mentioned above. It is a sample report with a Trend, Tags, and Tables.  

The Table was created in a static format for it to be populated by different Tags (and their current values at the moment the report was saved) as well as the timestamp of their last value.

There is also a Trend element (added as a symbol) that displays the configured Pens (Tag.Temperature and Tag.Pressure) when the Report was saved.


Finally, the created PDF file can be seen below.

PDF file example


You can also check Dynamic Cell Colors in Reports for a code example on how to achieve that effect.


In this section:

  • No labels