This reference guide describes the structure of the config file XML elements. Use this guide if you build or edit your config XML directly, without using the Admin Console.
Note: For the "settings" nodes within <general></general>, see Config File and API Setting Reference.
The config file's outer nodes are as follows:
<?xml version="1.0" standalone="yes"?> <webreports></webreports>
All following nodes are within the <webreports> element.
XML objects are represented in tables with the following format:
Node | Description | Type | Required |
Node is the XML node name. Nodes in bold font are objects, which are represented in a below table.
Description is the Admin Console field. If there is no mapped field, or the field is implicit, the description is in italic font.
Type is the value type. If the type is a constant or enum, the possible values are listed below the table. Constants are case sensitive.
Required indicates whether the node requires a value. (1+) indicates that there can be multiple nodes.
Outer node: <datasource></datasource>
Node | Description | Type | Required |
id | Unique Id | int | yes |
name | Name | string | yes |
dbtype | Type | constant | yes |
dataconnstr | Connection String | string | yes |
schema | Schema/Owner Name | string | no |
odbcdelim | Column Delimiter(s) | string | no |
Possible values for dbtype: mssql, mysql, oracle, postgres, db2, informix, websvc, assembly, file, msolap, odbc
<datasource> <id>0</id> <name>Northwind</name> <dbtype>odbc</dbtype> <schema>dbo</dbtype> <dataconnstr>DRIVER=SQLite3 ODBC Driver;Database=C:\Northwind.sqlite;</dataconnstr> <odbcdelim>`</odbcdelim> </datasource>
Outer node: <entity></entity>
Node | Description | Type | Required |
id | Id | string | no |
entity_name | Alias | string | no |
db_name | Name | string | yes |
sql_stmt | Custom SQL Object | string | no |
category | Category | string | no |
datasource_id | Id of data source | int | yes |
object_type | Object type | constant | yes |
schema_access_type | Schema Access Type | constant | no |
key | Unique Key Fields | object | yes (1+) |
param | Parameters | object | no (1+) |
tenant | Tenant Columns | object | no (1+) |
filter_dropdown | Filter Dropdown Object | object | no |
column_metadata | Column Metadata | object | no (1+) |
transform | Vertical table transform | object | no |
Possible values for object_type: table, view, procedure, function, assembly, sqlstmt, websvc, file
Possible values for schema_access_type: Metadata, Datasource
Node | Description | Type | Required |
col_name | Column name | string | yes |
Node | Description | Type | Required |
id | Parameter name | string | yes |
Node | Description | Type | Required |
col_name | Column name | string | yes |
parameter_id | Parameter name | string | yes |
Node | Description | Type | Required |
db_name | Data object name | string | yes |
sql_stmt | SQL statement | string | no |
datasource_id | Id of data source | int | yes |
object_type | Object type | constant | yes |
Possible values for object_type: table, view, procedure, function, assembly, sqlstmt, websvc, file
Node | Description | Type | Required |
col_source | Specify as custom col | constant | no |
col_name | Column name | string | yes |
col_description | Column Description | string | no |
col_type | Data Type | constant | no |
col_alias | Column Alias | string | no |
visible | Visible | bool | no |
filterable | Filterable | constant | no |
sortable | Sortable | bool | no |
col_sortandgroupbyvalue | Sort and Group-By Value | string | no |
col_value | Column Value | string | no |
Possible values for col_source: ExagoFormula
Possible values for col_type: string, date, datetime, time, int, decimal, image, float, boolean, guid, currency
Possible values for filterable: All, Dynamic, Static, None
Node | Description | Type | Required |
col_name | Data field names column | string | yes |
val_name | Data values column | string | yes |
datatype_name | Data types column | string | no |
non_transform_col | Fields exempt from transform | object | no |
Node | Description | Type | Required |
col_name | Data field name | string | yes |
data_type | Data type | enum | no |
Possible values for data_type: 0: string, 1: date, 2: datetime, 3: time, 4: integer, 5: decimal, 6: float, 7: bit, 8: guid, 9: image, 10: currency
<entity> <id>ODE</id> <entity_name>OrderDetails</entity_name> <db_name>OrderDetail</db_name> <sql_stmt>SELECT *</sql_stmt> <category>Order Information</category> <datasource_id>1</datasource_id> <object_type>table</object_type> <key> <col_name>OrderId</col_name> </key> <key> <col_name>ProductId</col_name> </key> <param> <id>count</id> </param> <tenant> <col_name>CategoryName</col_name> <parameter_id>count</parameter_id> </tenant> <filter_dropdown> <db_name>Category</db_name> <sql_stmt>SELECT *</sql_stmt> <datasource_id>-1</datasource_id> <object_type>table</object_type> </filter_dropdown> <column_metadata> <col_source>ExagoFormula</col_source> <col_name>Total</col_name> <col_type>currency</col_type> <col_alias>Total</col_alias> <filterable>false</filterable> <col_value>{ODE.Quantity}*({ODE.UnitPrice}-{ODE.Discount})</col_value> </column_metadata> <column_metadata> <col_name>UnitPrice</col_name> <col_type>currency</col_type> </column_metadata> </entity>
Outer node: <join></join>
Note: For entity names, use Id if set, otherwise use db_name.
Node | Description | Type | Required |
entity_from_name | From object (left) | string | yes |
entity_to_name | To object (right) | string | yes |
join_type | Join Type | constant | yes |
relation_type | Relation Type | constant | yes |
weight | Weight | int | yes |
joincol | Join Columns (deprecated in v2017.2) | object | yes (1+) |
clause | Join Clause (v2017.2+) | object | yes (1+) |
Possible values for join_type: inner, leftouter, rightouter, fullouter
Possible values for relation_type: 11: one to one, 1M: one to many
Node | Description | Type | Required |
col_from_name | From column (left) | string | yes |
col_to_name | To column (right) | string | yes |
Node | Description | Type | Required |
left_entity | From object (left) (v2017.3+) * | string | no |
left_side | From expression (left) | string | yes |
right_side | To expression (right) | string | yes |
conjunction | Joining conjunction | constant | yes |
comparison | Comparison operator | constant | yes |
left_side_type | From expression type | constant | yes |
right_side_type | To expression type | constant | yes |
level | Parenthesis nesting level | int | yes |
* left_entity overrides the base (implicit) from object entity_from_name for the specific join clause; this is necessary for some uses of the IN operator
Possible values for conjunction: AND, OR
Possible values for comparison: EQ (=), NE (<>), LT (<), GT (>), LE (<=), GE (>=), IN
Possible values for left_side_type, right_side_type: Column, Constant, SubQuery, Expression
<join> <entity_from_name>PRO</entity_from_name> <entity_to_name>CAT</entity_to_name> <clause> <left_side>ProductId</left_side>
<right_side>CategoryId</right_side>
<conjunction>AND</conjunction>
<comparison>EQ</comparison>
<right_side_type>Column</right_side_type>
<left_side_type>Column</left_side_type>
<level>0</level> </clause> </join>
Outer node: <parameter></parameter>
Node | Description | Type | Required |
id | Name | string | yes |
data_type | Type | constant | yes |
value | Value | string | no |
hidden | Hidden | bool | yes |
prompt_text | Prompt Text | string | no |
parameter_dropdown | Parameter Dropdown Object | object | no |
Possible values for data_type: string, date, integer, decimal
Node | Description | Type | Required |
db_name | Database object name | string | yes |
sql_stmt | SQL statement | string | no |
datasource_id | Unique Id of data source | int | yes |
object_type | Object type | constant | yes |
value_field | Value Field | string | yes |
display_value_field | Display Value Field | string | no |
display_data_type | Display Type | constant | yes |
sp_params | Stored proc parameters | string | no |
Possible values for object_type: table, view, procedure, function, assembly, sqlstmt, websvc, file
Possible values for display_data_type: string, date, integer, decimal
<parameter> <id>count</id> <data_type>integer</data_type> <hidden>False</hidden> <prompt_text /> <parameter_dropdown> <db_name>Category</db_name> <sql_stmt /> <datasource_id>1</datasource_id> <object_type>view</object_type> <value_field>Category_View</value_field> <display_value_field /> <display_data_type>string</display_data_type> <sp_params /> </parameter_dropdown> </parameter>
Outer node: <role></role>
Node | Description | Type | Required |
id | ID | string | yes |
active | Active | bool | yes |
rolegeneral | General settings | object | yes |
security | Security settings | object | yes |
Node | Description | Type | Required |
reportpath | Report Path | string | no |
dateformat | Date Format | string | no |
timeformat | Time Format | string | no |
datetimeformat | DateTime Format | string | no |
separatorsymbol | Numeric Separator Symbol | string | no |
currencysymbol | Numeric Currency Symbol | string | no |
readfiltervalues | Read Database for Filter Values | bool | no |
dbtimeout | Database Timeout | int | yes |
showgrid | Show Grid Lines in Report Viewer | bool | no |
showcrosstabreports | Allow Creation/Editing of Crosstab Reports | bool | no |
showdashboardreports | Allow Creation/Editing of Dashboard Reports | bool | no |
showchainedreports | Allow Creation/Editing of Chained Reports | bool | no |
showexpressviews | Allow Creation/Editing of ExpressViews | bool | no |
allowexpressviewliveedit | Allow Editing ExpressView with Live Data | bool | no |
showexpressreports | Allow Creation/Editing of Express Reports | bool | no |
showexpressreportsgrouping | Show Grouping | bool | no |
showexpressreportsformulabutton | Show Formula Button | bool | no |
showexpressreportsstylingtoolbar | Show Styling Toolbar | bool | no |
showexpressreportsthemes | Show Themes | bool | no |
showadvancedreports | Allow Creation/Editing of Advanced Reports | bool | no |
showschedulereports | Show Report Scheduling Option | bool | no |
showschedulereportsmanager | Show Schedule Reports Manager | bool | no |
schedulemanagerviewlevel | Scheduler Manager User View Level | constant | no |
showschedulereportsemail | Show Email Report Options | bool | no |
decimalsymbol | Numeric Decimal Symbol | string | no |
languagefile | Language File | string | no |
servertimezoneoffset | Server Time Zone Offset | int | no |
showdashboardnewvisualizationbutton | Allow Creation/Editing of Dashboard Visualizations | bool | no |
Possible values for schedulemanagerviewlevel: user, company, all
Node | Description | Type | Required |
folders | Folder Security | object | yes |
dataobjects | Data Object Security | object | yes |
dataobjectrows | Data Row Security | object | no |
Node | Description | Type | Required |
include_all | Include All Folders | bool | yes |
read_only | All Folders Read Only | bool | yes |
allow_management | Allow Folder Management | bool | yes |
folder | Folders | object | no (1+) |
Node | Description | Type | Required |
name | Folder Name | string | yes |
read_only | Read Only | bool | yes |
propagate | Propagate status to sub-folders | bool | yes |
Node | Description | Type | Required |
include_all | Include All Data Objects | bool | yes |
dataobject | Objects | object | no (1+) |
Note: For name, use Id if set, otherwise use db_name.
Node | Description | Type | Required |
name | Data Object Name | string | yes |
Node | Description | Type | Required |
dataobjectrow | Filters | object | no (1+) |
Note: For name, use Id if set, otherwise use db_name.
Node | Description | Type | Required |
name | Data Object Name | string | yes |
filter | Filter String | string | yes |
<role> <id>Test</id> <active>False</active> <rolegeneral> <reportpath>asraaweweweasd</reportpath> <dateformat /> <timeformat /> <datetimeformat /> <separatorsymbol>,</separatorsymbol> <currencysymbol>$</currencysymbol> <readfiltervalues /> <dbtimeout>0</dbtimeout> <showgrid /> <showcrosstabreports /> <showdashboardreports /> <showchainedreports /> <showexpressviews /> <allowexpressviewliveedit /> <showexpressreports /> <showexpressreportsgrouping /> <showexpressreportsformulabutton /> <showexpressreportsstylingtoolbar /> <showexpressreportsthemes /> <showadvancedreports /> <showschedulereports /> <showschedulereportsmanager /> <schedulemanagerviewlevel /> <showschedulereportsemail /> <decimalsymbol>.</decimalsymbol> <languagefile /> <servertimezoneoffset>1</servertimezoneoffset> <showdashboardnewvisualizationbutton /> </rolegeneral> <security> <folders> <include_all>True</include_all> <read_only>False</read_only> <allow_management>True</allow_management> <folder> <name>Examples</name> <read_only>False</read_only> <propagate>True</propagate> </folder> </folders> <dataobjects> <include_all>False</include_all> <dataobject> <name>CAT</name> </dataobject> </dataobjects> <dataobjectrows> <dataobjectrow> <name>CAT</name> <filter>heyho</filter> </dataobjectrow> </dataobjectrows> </security> </role>
Outer node: <function></function>
Note: Functions and Filter Functions use the same xml syntax. Filter functions have weight > 0 (which indicates its order in the filter list).
Node | Description | Type | Required |
name | Name | string | yes |
description | Description | string | no |
category | Category | constant | no |
min_args | Minimum Number of Arguments (deprecated in v2017.2) |
int | no |
max_args | Maximum Number of Arguments (deprecated in v2017.2) |
int | no |
arguments_json | (v2017.2+) Arguments information | json object | yes |
variable_arguments | (v2017.2+) Variable Argument Count | bool | yes |
available_in | Formula or filter function | enum | yes |
filter_return_type | Filter Type | constant | no |
weight | List Order | int | yes |
language | Language | constant | yes |
program_code | Program Code | string | yes |
reference | References | object | no (1+) |
namespace | Namespaces | object | no (1+) |
Possible values for category: Aggregate, Operators, Logical, Date, Financial, Database, Arithmetic, String, Formatting, Other
Possible values for available_in: 0: Unavailable, 1: Formula, 2: Filter
Possible values for filter_return_type: date, string, integer, decimal
Possible values for language: CSharp, JavaScript, VB
Node | Description | Type | Required |
name | Reference name | string | yes |
Node | Description | Type | Required |
name | Namespace name | string | yes |
(v2017.2+) A JSON-formatted array of objects with the following format:
Property | Description | Type | Required |
Name | Name | string | yes |
Required | Required | bool | yes |
Description | Description | string | yes |
<function> <name>IncrementBy</name> <description>Count up by value steps.</description> <category>Other</category> <arguments_json>[{"Name":"counter","Required":false,"Description":"Number to increment by. Default: 1."}]</arguments_json>
<variable_arguments>false</variable_arguments> <available_in>1</available_in> <filter_return_type>String</filter_return_type> <weight>0</weight> <language>CSharp</language> <program_code>return Extensions.CustomFunctions.IncrementBy(sessionInfo, args);</program_code> <reference> <name>Extensions.dll</name> </reference> </function>
Outer node: <serverevent></serverevent>
Node | Description | Type | Required |
name | Name | string | yes |
id | Unique Id | int | yes |
event_type | Global Event | constant | yes |
datasource_id | Id of assembly data source | int | no |
func_name | Assembly function name | string | no |
language | Language | constant | no |
program_code | Program code | string | no |
reference | References | object | no (1+) |
namespace | Namespaces | object | no (1+) |
Possible values for event_type: None, or see List of Server Events.
Possible values for language: CSharp, JavaScript, VB
Node | Description | Type | Required |
name | Reference name | string | yes |
Node | Description | Type | Required |
name | Namespace name | string | yes |
<serverevent> <name>ExpandAllFolders</name> <id>0</id> <event_type>OnAfterLoadReportsList</event_type> <language>CSharp</language> <program_code>Extensions.ServerEvents.ExpandAllFolders(sessionInfo, (TreeNodeCollection)args[0]); return null;</program_code> <reference> <name>Extensions.dll</name> </reference> <reference> <name>WebReports.dll</name> </reference> <namespace> <name>WebReports.UI.Controls</name> </namespace> </serverevent>
Outer node: <actionevent></actionevent>
Node | Description | Type | Required |
name | Name | string | yes |
id | Unique Id | int | yes |
event_type | Global Event Type | constant | yes |
datasource_id | Id of assembly data source | int | no |
func_name | Assembly function name | string | no |
user_action | Event Type | constant | yes |
language | Language | constant | no |
program_code | Program code | string | no |
uiaction | Assigned UI Item(s) | object | no (1+) |
reference | References | object | no (1+) |
namespace | Namespaces | object | no (1+) |
Possible values for event_type: None, or see Global Action Events.
Possible values for user_action: None, Load, Click
Possible values for language: CSharp, JavaScript, VB
Node | Description | Type | Required |
element_id | Element Id | constant | yes |
Possible values for element_id: See Identifying Actionable UI Elements.
Node | Description | Type | Required |
name | Reference name | string | yes |
Node | Description | Type | Required |
name | Namespace name | string | yes |
<actionevent> <name>DoubleClick</name> <id>0</id> <event_type>OnDoubleClickReport</event_type> <user_action>Click</user_action> <language>CSharp</language> <program_code>return Extensions.ActionEvents.DoubleClick(sessionInfo);</program_code> <uiaction> <element_id>RunReportBtn</element_id> </uiaction> <reference> <name>Extensions.dll</name> </reference> </actionevent>
Outer node: <customoption></customoption>
Node | Description | Type | Required |
option_id | Id | string | yes |
option_type | Type | constant | yes |
option_list_item | Option list item | object | no (1+) |
Possible values for option_type: Int, Decimal, Bool, Text, List
Node | Description | Type | Required |
option_list_item_id | List item Id | string | yes |
<customoption> <option_id>Hello</option_id> <option_type>List</option_type> <option_list_item> <option_list_item_id>World</option_list_item> </option_list_item> </customoption>