Columns
The cols parameter of the create method defines the visualization's hypercube . The number of columns you need to specify depends on the visualization. If you specify too few columns, you will get an Incomplete visualization error, just as if you created it in the client.
The order of the columns are in some cases not important. For a basic bar chart with one dimension and one measure, the columns can be specified in any order. However, for a table it does matter in which order the columns are specified. The order you specify in the cols parameter is the order that will be shown in the table.
There are three different ways of specifying the columns:
- As a string.
- As a NxDimension or NxMeasure structure:
- As a reference to a predefined dimension or measure, a so-called master item.
The above three methods can be combined in the same create statement. You can use a simple string syntax for one column, a more advanced object for another and a predefined master measure for the third.
String syntax
If a string starts with =, it will be treated as a measure, otherwise it is treated as a dimension.
app.visualization.create( 'barchart',
["Case Owner Group", "=Avg([Case Duration Time])"]
).then( function ( visual ) {
visual.show( 'QV01' );
} );
Object syntax
Use the object syntax if you want to set more options for your columns. If you. for example, create a pivot table with labels, you should use qFieldLabels for dimensions and qLabel for measures.
app.visualization.create( 'pivot-table',
[
"Year", //dimension
{"qDef": {"qFieldDefs": ["Case Owner Group"], "qFieldLabels": ["Group"]}}, //dimension with label
{"qDef": {"qDef": "=Avg([Case Duration Time])", "qLabel": "Avg Case Duration Time"}},//measure with label
{"qDef": {"qDef": "Sum( [Open Cases] )", "qLabel": "Open Cases"}} //measure with label
],
{"title": "Case Owner Group Case stats per year"}
)
You can limit the data set to only show the top five values using qOtherTotalSpec.
app.visualization.create( 'barchart',
[
{
"qDef": {
"qFieldDefs": ["Case Owner Group"],
"qFieldLabels": ["Group"]
},
"qOtherTotalSpec": {
"qOtherMode": "OTHER_COUNTED",
"qOtherCounted": "5"
}
}
"=Avg([Case Duration Time])"
],
{"title": "Barchart with others"}
)
The full list of available options is documented in the Engine API documentation.
Using predefined dimensions and measures
You can use dimensions and measures that are predefined in the app. This is mostly relevant if the user should be able to select dimensions and measures from lists. You must know the Dimension ID or the Measure ID, which is defined in the qLibraryID property. You must also state if it is a measure or a dimension in the qType property.
app.visualization.create( 'gauge',
[{"qLibraryId":"eqZjE","qType":"measure"}]
)