Create a New Dashboard ======= Knowage allow end users to *self-build interactive cockpits* through an intuitive and interactive interface, with a few clicks and simple drag and drop. This allows you to compose your analytical documents with multiple widgets and define associations among them, so that clicking on one widget data are automatically updated in other widgets. .. figure:: media/image135.png Cockpit document example. It enables *data mash-up* to integrate enterprise data and externally sourced data. Cockpit document can be created and executed both by technical users and end users and are part of Knowage ad-hoc reporting system. A key aspect is that different widget can rely on different datasets and hence on different data sources. The only requirement needed to define associations between two or more datasets is the presence in each of them of one or more columns containing the same data. .. warning:: **Section structure exception** Since there are no differences between the cockpit interface reached by a final user and the one reached by a technical user, the cockpit designer is described in one unique My first Cockpit for both those kind of users. By the way, when necessary we will highlight how the same functionality can be exploited accordingly to the user’s role. My first Cockpit -------------------- You can create your new Cockpit from the **Analysis** area of the **Workspace** by clicking on the “Plus” icon and selecting **Cockpits** if you enter Knowage Server as final user, while you can enter the document browser and start a new cockpit using the “Plus” icon if you enter Knowage Server as admin. .. important:: **Reaching the cockpit designer** We stress that the cockpit interface is reached by the final user and the administrator following two different paths. Let us see how to build a cockpit and how the interface is displayed within the server. Once opened, the cockpit interface is an empty page with a toolbar containing different options described in Table below. .. table:: Cockpit editor toolbar. :widths: auto +--------------------------------+-----------------------+-----------------------+ | Icon | Name | Function | +================================+=======================+=======================+ | .. figure:: media/image136.png | **Cockpit menu** | Configuration menu of | | | | Cockpit. | +--------------------------------+-----------------------+-----------------------+ | .. figure:: media/image137.png | **Add widget** | It opens a window | | | | where you can create | | | | a new chart or table, | | | | add texts, images or | | | | Knowage documents. | +--------------------------------+-----------------------+-----------------------+ | .. figure:: media/image138.png | **General | It opens the window | | | configuration** | where you set the | | | | general cockpit | | | | options (name, label, | | | | show menu, etc.) and | | | | widget style (header, | | | | titles, borders, | | | | etc.). | +--------------------------------+-----------------------+-----------------------+ | .. figure:: media/image139.png | **Data | It opens a window | | | configuration** | where you can manage | | | | the dataset, the | | | | association between | | | | datasets and the | | | | refresh frequency. | +--------------------------------+-----------------------+-----------------------+ | .. figure:: media/image140.png | **Selections** | It opens a window | | | | where you can | | | | manage selections. | +--------------------------------+-----------------------+-----------------------+ | .. figure:: media/image141.png | **Clear Cache** | It cleans temporary | | | | data. | +--------------------------------+-----------------------+-----------------------+ | .. figure:: media/image142.png | **Save as** | It opens the window | | | | to save the cockpit | | | | document as a new | | | | document. | +--------------------------------+-----------------------+-----------------------+ By clicking the button **Add Widget** you can add a widget containing a **Text**, an **Image**, a **Chart**, an **HTML**, a **Table**, a **Cross table**, a **Document**, a **Map**, the **Active selections** or the **Selector** to your cockpit, as shown below. **Python**, **R**, **Discovery** and **Custom charts** are available according to the license installed. .. figure:: media/image143_bis.png Widget Type. In the following we go into details of each available widget. Text widget ~~~~~~~~~~~ By clicking the button Text Widget you can add text to your cockpit. As shown in figure below, the widget editor opens and it is divided in three tabs: the **Text editor**, the **Style**, the **Dataset** and the **Filters** tab. .. _texteditwidgetconf: .. figure:: media/image144.png Text editor of text widget configuration. On the “Text editor” tab you can type the desired text in center panel and customize it. Using the dataset tab it is possible to associate dataset values to the text and read it real time at each execution. Move to the dataset tab to add a dataset to the widget. Then, going back to the Text editor tab, the user will find the dataset columns on the right side, as well as a set of functions to eventually apply to the fields. We summed up main steps in the Figure below. To add a function to a measure first select the desired function and then the field of numeric type. .. figure:: media/image1454647.png Editing a dynamic text. It's also possible to add variables values if at least one of them is defined. During the execution of the widget the value will be displayed based on the current variable value. .. figure:: media/image144b.png Variables in text widget. On the “Style” tab you can customize the text widget. We have provided all details about this tab in the Table widget. On the “Dataset” tab you can add more dataset to be used in the dynamic value. Finally, the “Filters” tab can be used to extract limited output from the dataset. We put details off to the table widget subsection. Image widget ~~~~~~~~~~~~ By clicking the button **Image Widget** you can add images to your cockpit. As already seen the widget editor opens and it is divided in three sections. On the **Gallery** tab you can upload an image, delete it or select one from the gallery. Refer to the following figure. .. figure:: media/image148.png Gallery tab of Image Widget Configuration. On the **Style** tab you can configure the style of your image widget with the different options offered by this tab. Many of them are defined in the table widget that you will find later. On the **Cross** tab you can define navigation to another document, as shown in figure below. .. figure:: media/image149.png Cross tab of Image Widget Configuration. .. warning:: **Cross navigation only for technical users** Due to the fact that parameters can only be managed by a technical user the cross navigation cannot be implemented by the final user. For this purpose, you must activate **Enable cross navigation** flag and select the destination document through the list of cross navigation definition. This last flag is optional. If you select a cross navigation definition, when you launch the cross navigation it will go to the document of arrival directly. If the cross navigation definition is not defined, then when you launch the image widget cross navigation will be shown a pop up (refer to figure below) with the list of cross navigation definition that exist for this cockpit. .. _crossnavmultchoice: .. figure:: media/image150.png Cross navigation multiple choices. Chart widget ~~~~~~~~~~~~ Charts are an essential representation of data, Knowage lets you use many different charts type and configure them according to your needs. We have provided all details about charts type and configuration in Chart chapter. We recall that also for chart widget it is possible to set cross navigation on elements. .. warning:: **Cross navigation only for technical users** Due to the fact that parameters can only be managed by technical user the cross navigation cannot be implemented by the final user. As shown in next figure, it is mandatory to enable the cross navigation feature by using the dedicate tab of chart editor GUI. It is mandatory to choose the column element to be passed to the destination document and associate it to the right output parameter (previoulsy added to the document using the detail interface). The cross navigation name can be left empty. In case multiple cross navigation definitions have been configured for the document, a pop up will be displayed, letting the user to choose which destination to reach (exactly as we saw earlier for Image widget in the last figure of that paragraph). .. _crossnavchartwidget: .. figure:: media/image151.png Cross navigation for chart widget. In addition, if the navigation expects other parameters to be passed, use the bottom part of the page to add the additional parameters. Figurebelow shows an example. .. figure:: media/image152.png Add all output parameters involved in the cross navigation. It is also possible using Solr datasets and calculated fields with charts. Dataset fields editing and configuration is possible using the first tab inside widget edit mode, in this way, for example, users can modify aggregations for measures: .. figure:: media/image152b.png In this way it is possible adding new calculated fields on chart by clicking on "Add Calculated field", the standard calculated field editing mode will appear. .. figure:: media/image152c.png Adding new calculated fields is easy as using other measure fields, using Chart Engine Designer structure tab: .. figure:: media/image152d.png As said before charts are the most adopted method in presenting BI data since they allow an immediate perception of a phenomenon and are easily understandable. Thatis why it is worth having an overview through them when creating a dashboard that includes a chart widget. Knowage provides a chart engine to create several types of charts, including: - Bar - Line - Pie - Sunburst - Wordcloud - Treemap - Parallel - Radar - Scatter - Heatmap - Chord - Gauge - Bubble Once you enter the Knowage environment as a final user, enter the **Analysis** area under the **Workspace** menu item, click on the **Create Analysis** icon and choose **Cockpit**. .. important:: **Enterprise Edition only** Please note that this operation is available only in KnowageBD and KnowageSI. Using the KnowagePM license, only a technical user can create Cockpit document. Once opened, the cockpit interface is an empty page with a toolbar containing different options, the second of which is the **Add chart** feature. .. figure:: media/charts/image90.png Add a chart to a cockpit. .. note:: **Cockpit** The Cockpit Engine allows the user to self-build interactive cockpits through an intuitive and dynamic interface. Read more in *Cockpit* chapter. Clicking on the **Add Chart** icon, you will be asked to choose among some available widgets. Pick out the **Chart** one and let’s now go into details on how to build a chart from scratch. The designer editor is divided into four principal tabs: **Dataset**, **Chart Engine Designer**, **Style**, **Cross** and **Filters**. As soon as the user clicks on the “Add Chart” button, he/she enters the “Dataset” tab editor. Here the user must select, using the “little plus” icon placed just aside the combobox line, one dataset. Then the user must switch to the “Chart Engine Designer” tab and choose a chart type among the available ones, as shown in figure below. .. figure:: media/charts/image91.png Chart editor. After choosing the appropriate chart type you must go into the **Structure** page. Here it is possible to select the measures and the attributes chosen for the chart. .. _chartstructure: .. figure:: media/charts/image92.png Chart structure. Clicking on the **Configuration** page you will found eight different blocks as you can see in figure below. .. figure:: media/charts/image93.png Chart configuration. In detail these blocks concern: - **Generic Details**, as the orientation of the chart, the family and the size font. - **Title and Subtitle details** - **No data message** where it is possible to put a message where the data are not founded. - **Legend Title** - **Legend Items** - **Color Palette** - **Advanced Series Configuration** - **Custom Colors** These eight blocks are common to all chart types; anyway, there could be some additional blocks for specific types. The **Advanced** tab contains extra features, usually exploited by an expert user. Here the user can see all settable properties associated to the chart: it reflects the property tabs that an expert user should manually edit to generate a json template. .. figure:: media/charts/image94.png Chart Advanced Features. In the next subsections, the available functionalities of the Structure, the Configuration and the Advanced tabs are described in a more specific way. .. important:: **Enterprise Edition only** Please note that the "Advanced" tab is available only in Knowage Enterprise Edition. The “Structure” tab of the designer is the core of the Chart development. Here it is possible and mandatory to choose the measures and the attributes. When selected, the tab shows a two axes panel. The horizontal axis indicates the X-axis where you must choose one or more attributes. As well, the left axis is the Y-axis and here you must choose measures. You can also insert manually the axis title for both the X and the Y axis if the chart is configured to have axis titles. .. warning:: **Chart type changemens may cause broke down** Before creating any chart, it is convenient to be sure of what kind of chart you want to develop. We stress that the user can change the chart type afterwards, but at the expense of a loss of just defined settings. In this section it’s possible to customize the labels of the axis, titleand grid style clicking on different buttons. With the arrow button, on the top of the Y-axis and X-axis, it’s possible to choose the axis configuration detail, the axis title configuration, the major and minor grid configuration (just for Y-axis) and ordering column (just for X-axis). With the pencil button opens a window on the right with the series configuration details where it’s possible to choose the aggregation way, the order type of the series, if the data will be shown e so on. Finally, with the strip cartoon button you can choose the features of the tooltip (font color, text alignment, ecc). If the chart in place does not allow the customization of the axes the specific button will be disabled or not visible. The Figure below will show in detail the three buttons above explained: .. figure:: media/charts/9597.png From left to right: (a) Generic configuration axis (the specific arrow). (b) Generic configuration axis. .. figure:: media/charts/image97.png Series style configuration. .. figure:: media/charts/image98.png Series tooltip details. The **Configuration** section contains options to define the generic style of the chart. Here you can set the dimensions of the chart, the background color, insert the title and subtitle and define their style, choose the series palette, associate a specific color to a particular serie or category, add and configure the legend. The listed options are an example of what you can configure in the tab. Note that for the color palette details you can use one already in the list or you can choose any color inserting the hex color code with the hashtag symbol. This is a very useful feature to customize the output. .. figure:: media/charts/image99.png Color box editing. In particular, in the 6.3 version, it has been introduced a new configuration option: the Custom Color. .. figure:: media/charts/image200.png Custom Colors details. With this new option it is possible to assign a specific color to a particular category and/or serie or to a particular value of a category and/or serie. Look at the following figure for an example. .. figure:: media/charts/image201.png Custom Colors example. To add a custom color simply write the category/serie value or name, select a color with the color piker and then click on the plus button. In the figure example it is assigned a color for each value of the ‘QUARTER’ category. Indeed, the options available in this tab change according to the chart selected enabling different configurations. See Chart types in detail for a detailed description of the specific options of each chart. The **Advanced** tab contains some advanced options to more customize the chart. Here it is possible, for example, to set the tooltip options, the widget dimensions, if the chart is stacking or not, the grouping type. .. figure:: media/charts/image140.png Advanced tab. Down here are listed some of the most useful and new options. The **dataLabels** option can be found under the path VALUES -> SERIE -> 0 or another serie -> dataLabels. The option is available only for measures. Here it is possible to set the labels style such as the color, font family or font weight. .. figure:: media/charts/image141.png dataLabels option. The **TOOLTIP** option allows to set the width and the radius of hte tooltip's border. The **plotBands** and **plotLines** options can be found under the path AXES_LIST -> AXIS -> 0 or another serie. With these options is possible to plot respectively bands and lines on the chart with fixed values and to set their style, like the line width and the line type or the band color. .. figure:: media/charts/image142.png plotBands option. The **min** and **max** options are under the path AXES_LIST -> AXIS -> 0 or another serie. They are available only for series and allow to set the maximum and minimum axis value for the selected sere's axis. .. figure:: media/charts/image143.png min and max options. Following, a description on how to create charts within the **Chart Engine** of Knowage. **Traditional charts** Knowage allows you to create the so-called *traditional charts* like bar, line, pie, radar and scatter chart in a fancy way. Each chart type is built on a specific dataset. Despite all, there are some general rules that can be applied to those “simplier” and common charts. The minimum requirement is to define/have a dataset with at least one attribute column and one measure column. Then you can select the type of chart you want to use from the **Chart** section; meanwhile using the **Structure** section you can fill in the category box with one or more attributes (typically these will be place in the X-axis) and in the series box with one or more measures (typically placed as Y-axis’ values). Refer to *Chart Structure* figure as example. Once you have selected the attributes and measures you can edit the series style and axis style configurations as explained in My first Chart. Then go to **Configuration** to set the chart dimension, the title, the legend and to choose how to associate colors to series. Some charts are endowed with datetime and grouping functions. In particular, it is possible to enable the grouping/splitting functions to **Bar** and **Line** charts. The user can reach those functions just clicking on the “little arrow” located at the right end of category bar. .. figure:: media/charts/image100.png Datetime and grouping function. The grouping functions can be implemented only through specific categories and series configurations. As shown in figure below, the grouping function cannot be applied with just one attribute as category. To allow the function to be applied, the user must define two attributes as category fields. .. figure:: media/charts/image101.png Error alarm when enabling the grouping function. As well, the user can use the splitting functions to divide one series over the second one or over the second category. To split the first series over the second one, remember that it is necessary to choose only one attribute as category field and two measures as series values. The following figure shows an example. .. figure:: media/charts/image102.png Split over second series. Meanwhile to split a measure over second category it is mandatory to choose exactly two attributes as category field and only one measure as series value, as shown in figure below. .. figure:: media/charts/image103.png Split over second category. Futhermore, in the occurance the chart uses one datetime attribute as category field, the user can improve visualization applying the datetime function to custom date format. .. figure:: media/charts/image104.png Datetime function usage. For bar and line chart you can add more then one container for adding series in **Structure** section. In that case you will have in your chart more then one axis for series. In **Advanced** section you can specify to align these axis to 0 (zero) value. It is check box **alignAxis** where checked means that axises will be aligned to 0, and unchecked means that they will not be aligned. For pie chart inside **Advanced** section you can set configuration for your toolip: to show/hide absolute value and/or percentage. Inside **tooltip** property of serie object you can find properies **showAbsValueTooltip** and **showPercentageTooltip**. **Scatter chart** A scatter chart is a graphical representation of scattering phenomenon of data. It is useful when the user wants to underlight the density of data upon certain spots to the detriment of readability of single points. If you select a scatter chart in the **Configuration** section you will have Ticks and Lables Details instead of Advanced Series Configuration. Be carefull to fill in the **Scatter configuration** with the **Zoom type**, as showed below. .. figure:: media/charts/image105.png Scatter Chart, ticks and labels details. You must check if you want that the values in the Y-axis start (or end) in the first (last) tick or in the first (last) value of the dataset and if you want that the last label of the category axis should be showed. **Sunburst chart** The sunburst chart is a graph with a radial layout which depicts the hierarchical structure of data displaying a set of concentric rings. The circle in the center represents the root nodes, with the hierarchy moving outward from the center. The slices in the external rings are children of the slice in the inner circle which means they lie within the angular sweep of the inner circle. The area of each slice corresponds to the value of the node. Even if sunburst charts are not efficient space-wise, they enable the user to represent hierarchies in a more immediate and fascinating way. To create a sunburst chart in Knowage you just have to select a dataset with at least two attribute columns describing the hierarchy and at least a measure column that indicates the width of the slices. An example of dataset for the sunburst chart is showed in Table below. .. _exampleofdatsetsunburst: .. table:: Example of dataset for the sunburst chart. :widths: auto +----------------------+----------------+------+ | CATEGORY | SUBCATEGORY | UNIT | +======================+================+======+ | Baking Goods | Cooking Oil | 349 | +----------------------+----------------+------+ | Baking Goods | Sauces | 109 | +----------------------+----------------+------+ | Baking Goods | Spices | 290 | +----------------------+----------------+------+ | Baking Goods | Sugar | 205 | +----------------------+----------------+------+ | Bathroom Products | Conditioner | 64 | +----------------------+----------------+------+ | Bathroom Products | Mouthwash | 159 | +----------------------+----------------+------+ | Bathroom Products | Shampoo | 254 | +----------------------+----------------+------+ | Bathroom Products | Toilet Brushes | 92 | +----------------------+----------------+------+ | Bathroom Products | Toothbrushes | 94 | +----------------------+----------------+------+ Once you selected the dataset and the type of chart, choose at least two attributes in the X-axis panel and a measure in the Y-axis panel as showed in the following figure. .. figure:: media/charts/image106.png Sunburst configuration. Then click on **Configuration**. As you can see the features are not exactly the same as traditional chart. We give some tips on most important sunburst settings. Using the **Generic** button you can set the **opacity** on mouse movement and choose how to display the measure values: absolute, percentage or both. These two features allow the visualization of data just moving the mouse over the slice: the slice is highlighted and values are shown in the center of the ring while the root-node path for the node selected is displayed on the left bottom corner of the page. Opacity and Breadcrumb configuration are available only on Comunity Edition. The tooltip is a mandatory field since it shows the value of the selected slice. Therefore be sure to have filled it before saving by using the **Explanation detail** panel. On Comunity Edition you have option custom the root-node path, clicking on the **Sequence** icon and choose position, label tail size and text style. **Sequence** option is not available on Enterprise edition, it is deprecated. Figure below sums up the three features. .. figure:: media/charts/image1070809.png Generic, Sequence and Explanation configuration In Figure below you find the sunburst obtained with data of :numref:`exampleofdatsetsunburst`. .. figure:: media/charts/image1101112.png From left to right: (a) Sunburst. (b) Sunburst category.(c) Sunburst subcategory. Inside **Advanced** section you can set value for scale that will increase/decrease your chart. You need to set numeric value for property **scale**. **Wordcloud chart** The wordcloud chart is a graphic to visualize text data. The dimension of the words and colors depend on a specified weight or on the frequency of each word. The dataset to create a wordcloud should have at least a column with attributes and only one column with numerical data which represents the weight to assign to each attribute. Choose one attribute as category field (the wordcloud accept only one attribute in the category box) and a measure as series field. Switch to the **Configuration** section to set the generic configuration of the chart and to custom fields of the **Word settings datails**. Here the use can decide if to resize the words accordingly to the measure retrieved in the dataset (**Series** option) or accordingly to the frequency of the attributes in the dataset (**Occurrences** option). Moreover it is possible to set the maximum number of words that you want to display, the padding between the words, the word layout and whether or not you want to prevent overlap of the words as showed in Figure below. .. figure:: media/charts/image113.png Wordcloud chart specific configuration. **Treemap chart** The treemap is a graphical representation of hierarchical data, which are displayed as nestled rectangles. Each branch of the tree is given by a rectangle, which is tiled with smaller rectangles representing sub-branches. The area of the rectangles is proportional to a measure specified by a numerical attribute. The treemap is usefull to display a large amount of hierarchical data in a small space. To create a treemap chart you have to select a dataset as the one described for the sunburst chart in the Parallel chart. Once you have selected the dataset, choose the treemap chart type in the designer and then at least two attributes into the X-axis panel. The order of the attributes in the X-axis panel must reflects the order of the attributes in the hierarchy starting from the root to the top. Finally you can set generic configurations and colors palette in the **Configuration** tab and advanced configurations in **Advanced editor** tab. In Figure below we show the Treemap resulting with data of our example .. figure:: media/charts/image11415.PNG From left to right: (a) Treemap. (b) Treemap sub-branches. **Parallel chart** The parallel chart is a way to visualize high-dimensional geometry and multivarious data. The axes of a multidimensional space are represented by parallel lines, usually equally spaced-out, and a point of the space is represented by a broken line with vertices on the parallel axes. The position of the vertex on an axis correspond to the coordinate of the point in that axis. To create a parallel chart select a dataset with at least one attribute and two columns with numerical values. You can find an interesting example of dataset in the next table where we display some of its rows. .. _exampleofdatsetparallel: .. table:: Example of dataset for the parallel chart. :widths: auto +--------+--------------+-------------+--------------+-------------+-----------------+ | ID | sepal_length | sepal_width | petal_length | petal_width | class | +========+==============+=============+==============+=============+=================+ | 36 | 5.0 | 3.2 | 1.2 | 0.2 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 37 | 5.5 | 3.5 | 1.3 | 0.2 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 38 | 4.9 | 3.1 | 1.5 | 0.1 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 39 | 4.4 | 3.0 | 1.3 | 0.2 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 40 | 5.1 | 3.4 | 1.5 | 0.2 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 41 | 5.0 | 3.5 | 1.3 | 0.3 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 42 | 4.5 | 2.3 | 1.3 | 0.3 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 43 | 4.4 | 3.2 | 1.3 | 0.2 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 44 | 5.0 | 3.5 | 1.6 | 0.6 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 45 | 5.1 | 3.8 | 1.9 | 0.4 | Iris-setosa | +--------+--------------+-------------+--------------+-------------+-----------------+ | 66 | 6.7 | 3.1 | 4.4 | 1.4 | Iris-versicolor | +--------+--------------+-------------+--------------+-------------+-----------------+ | 67 | 5.6 | 3.0 | 4.5 | 1.5 | Iris-versicolor | +--------+--------------+-------------+--------------+-------------+-----------------+ | 68 | 5.8 | 2.7 | 4.1 | 1.0 | Iris-versicolor | +--------+--------------+-------------+--------------+-------------+-----------------+ | 69 | 6.2 | 2.2 | 4.5 | 1.5 | Iris-versicolor | +--------+--------------+-------------+--------------+-------------+-----------------+ | 70 | 5.6 | 2.5 | 3.9 | 1.1 | Iris-versicolor | +--------+--------------+-------------+--------------+-------------+-----------------+ | 71 | 5.9 | 3.2 | 4.8 | 1.8 | Iris-versicolor | +--------+--------------+-------------+--------------+-------------+-----------------+ | 101 | 6.3 | 3.3 | 6.0 | 2.5 | Iris-virginica | +--------+--------------+-------------+--------------+-------------+-----------------+ | 102 | 5.8 | 2.7 | 5.1 | 1.9 | Iris-virginica | +--------+--------------+-------------+--------------+-------------+-----------------+ | 103 | 7.1 | 3.0 | 5.9 | 2.1 | Iris-virginica | +--------+--------------+-------------+--------------+-------------+-----------------+ | 104 | 6.3 | 2.9 | 5.6 | 1.8 | Iris-virginica | +--------+--------------+-------------+--------------+-------------+-----------------+ | 105 | 6.5 | 3.0 | 5.8 | 2.2 | Iris-virginica | +--------+--------------+-------------+--------------+-------------+-----------------+ | 106 | 7.6 | 3.0 | 6.6 | 2.1 | Iris-virginica | +--------+--------------+-------------+--------------+-------------+-----------------+ | 107 | 4.9 | 2.5 | 4.5 | 1.7 | Iris-virginica | +--------+--------------+-------------+--------------+-------------+-----------------+ | 108 | 7.3 | 2.9 | 6.3 | 1.8 | Iris-virginica | +--------+--------------+-------------+--------------+-------------+-----------------+ In this example three different classes of iris are studied. Combining the values of some sepal and petal width or lenght, we are able to find out which class we are looking at. In Figure below (a part) you can find the parallel chart made with the suggested dataset. While in next figure (b part) it is easy to see, thanks to selection, that all iris with petal length between 2,5 and 5.2 cm and petal width 0,9 and 1,5 cm belong to the iris-versicolor class. .. _fromleftparallrighetchart: .. figure:: media/charts/image11617.png From left to right: (a) Parallel. (b) Parallel chart selection. Therefore, select **parallel** as chart type using the designer interface, then choose one or more attributes in the X-axis panel and one or more measures in the Y-axis panel. On the **Configuration** tab you can set the generic configuration for the chart and you must fill the **Series as filter column** filed under ”Limit configuration”. Under ”Tooltip configuration” there is new property available - **Maximum number of records to show tooltip**. It is used to limit showing tooltip in case there are lot of records returned from dataset, which make chart more readable. **Heatmap chart** Heatmap chart uses a chromatic Cartesian coordinate system to represent a measure trend. Each point of the Cartesian system is identified by a couple of attributes. Note that one attribute must be a datetime one. Meanwhile, each couple corresponds to a measure that serves to highlight the spot with a certain color according to the chosen gradient. Figure below gives an example of how an heatmap chart looks like inside Knowage. .. figure:: media/charts/image118.png Heatmap example. Before configuring a heatmap chart, be sure that your dataset returns at least two attributes, one of which **must** be a datetime one, and (at least) one measure. Once entered the chart designer, choose the “Heatmap” type and move to the “Structure” tab. Use the datetime attribute and an other attribute as category fields and one measure as series fields. Figure below shows an example. .. figure:: media/charts/image119.png Configuring the attributes and the series for the heatmap chart. Note that for series axis it is possible to specify the values’ range by assigning a minimun and the maximum value, as shown in figure below. Otherwise, the engine will automatically link the axis scale to dataset results set. .. figure:: media/charts/image12021.png Configure min and max values for series. The next step is to move to **Configuration** tab and select the **Color palette** icon. Here (figure below) the user has to define the chromatic scale which will be associated to the measure values. The panel will demand the user to insert the first, the last color and the number of bands that will constitute the color scale. .. _addgradientpanel: .. figure:: media/charts/image122.png Add gradient panel. The engine will create a progressive color scale as shown in the left image of figure below. To custom the scale the user can use the Preset colors and use the arrow to move up and down Heatmap chart the added color or the user can increase the number of steps and then some intermediate color to leave more contrast between them. .. figure:: media/charts/image12324.PNG Custom color scale. Remember to edit both **Legend** and **Tooltip** configuration in the **Tooltip details** panel to improve the readability of the chart. **Chord chart** Chord diagram is a graph which allows to show relationship between entities and between data in a matrix. The entities can belong to an unique category while the arc be non-oriented or belong to two different categories. In this latter case, they have direct arcs. The data are arranged radially with arcs that represent the connection between points. The width of the arc connecting two points depends on the weight assigned to the edge connecting these two points. This graphic is usefull when you want to represent a large number of data in a small space. The chord diagram requires a dataset that have a column with numerical values. These represent the weight of the arc connecting two points. It also must have two columns with the entries for the entities to be connected in the diagram. These two columns must have the same set of values so that the engine can understand the relation between all the entities. If there is not a relation between two entities the weight of the arc is zero. Note that when you create a directed chord diagram with two different categories, all the relations between entities of the same category have a zero weight. An example of dataset for the chord chart is represented in Table below: .. table:: Example of dataset for the chord chart. :widths: auto +--------------------+--------------+-----------+ | CUSTOMER\_ CITY | STORE\_ CITY | VALUE | +====================+==============+===========+ | Beaverton | Portland | 4609.0000 | +--------------------+--------------+-----------+ | Lake Oswego | Portland | 4201.0000 | +--------------------+--------------+-----------+ | Milwaukie | Portland | 5736.0000 | +--------------------+--------------+-----------+ | Oregon City | Portland | 3052.0000 | +--------------------+--------------+-----------+ | Portland | Portland | 3984.0000 | +--------------------+--------------+-----------+ | W. Linn | Portland | 3684.0000 | +--------------------+--------------+-----------+ | Albany | Salem | 5544.0000 | +--------------------+--------------+-----------+ | Corvallis | Salem | 8542.0000 | +--------------------+--------------+-----------+ | Lebanon | Salem | 8015.0000 | +--------------------+--------------+-----------+ | Salem | Salem | 6910.0000 | +--------------------+--------------+-----------+ | Woodburn | Salem | 6335.0000 | +--------------------+--------------+-----------+ | Albany | Albany | 0.0000 | +--------------------+--------------+-----------+ | Beaverton | Beaverton | 0.0000 | +--------------------+--------------+-----------+ | Corvallis | Corvallis | 0.0000 | +--------------------+--------------+-----------+ | Lake Oswego | Lake Oswego | 0.0000 | +--------------------+--------------+-----------+ | Lebanon | Lebanon | 0.0000 | +--------------------+--------------+-----------+ | Milwaukie | Milwaukie | 0.0000 | +--------------------+--------------+-----------+ | Oregon City | Oregon City | 0.0000 | +--------------------+--------------+-----------+ | Portland | Portland | 0.0000 | +--------------------+--------------+-----------+ | Salem | Salem | 0.0000 | +--------------------+--------------+-----------+ | W. Linn | W. Linn | 0.0000 | +--------------------+--------------+-----------+ Once you have selected the dataset open the designer and select chord chart type. Then choose the two entities in the X-axis panel and the value in the Y-axis panel as showed in figure below. Now you are ready to customize the chart setting the generic configuration and the palette on **Configuration**. .. figure:: media/charts/image12526.png Chord configuration. **Gauge chart** Gauge chart uses needles to show information as a dial reading. It allows to visualize data in a way that resembles a real-life speedometer needle. The value of the needle is read on a colored data scale. Colors are used to provide additional performance context (typically green for good and red for bad). This chart type usually is used in dashboards to show key performance indicators or any measure having reference values. For gauge chart you should have only series items, the one that gives you values for the chart. So, the defined dataset to be used should provide numerical data for the Y-axis for the gauge chart. After selecting the dataset go to the designer and select **gauge** in chart type combobox. Then choose one or more measure on the Y-axis panel on the **Structure**. Moreover you must not forget to provide all data needed for the **Axis style configuration** of the Y-axis. When you finished to set all the mandatory and optional parameters and configurations in the **Structure** tab you can select the **Configuration** tab and set the generic configuration of the chart. **Bubble chart** A bubble chart requires three dimensions of data; the x-value and y-value to position the bubble along the value axes and a third value for its volume, z-value. It is a generalization of the scatter plot, replacing the dots with bubbles. .. figure:: media/charts/bubble_chart.png Bubble chart. Inside X,Y,Z containers, user can put only **measure values**. Inside Categories container user can put **attributes** that he wants to see in the **tooltip**. .. figure:: media/charts/bubble_chart_conf.png Bubble configuration. .. figure:: media/charts/bubble_tooltip.png Bubble tooltip. **Advanced functionalities** Inside **Advanced tab**, user can find configuration for **plotband** and **plotline** of xaxis and yaxis. .. figure:: media/charts/bubble_plotband_and_line.png Bubble plotband and plotline configuration. User also has option for **splitting serie** by one of two categories. Split option has limit on **maximum** two categories. User can set which category will be used for coloring bubbles. And also can show/hide values that are inside bubbles. .. figure:: media/charts/bubble_split_conf.png Bubble split configuration. .. figure:: media/charts/bubble_split.png Bubble split examples. Difference between **One category - split disabled** and **Two categories - split disabled** is what is present in the tooltip. Knowage **Chart Engine** allows you to drill down into categories. This means that the user can explore the details of each category as many times as configured. Indeed, to let the chart admits the drill down, it is necessary first that the chart in place allows it. Secondly the user must have dragged and dropped multiple attributes into the category axis in the **Configuration** tab. The order of the attributes in the X-axis panel determines the sequence in which the categories are going to be showed. When executing the chart the label of the category is linkable and it is possible to click on the label to drill down. The chart that enables the drill down are: - Bar Chart - Line Chart - Pie Chart - Treemap To give an idea of the outcome, we take as instance the Bar Chart drill down. In the following example, the selected categories are four and called: ``product_family``, ``product_department``, ``product_category`` and ``product_subcategory``. Once we open the document, we get as shown below: .. figure:: media/charts/image127.png Drillable Bar Chart When selecting ``shelf_depth`` measure of the Food category one gets (see next figure): .. figure:: media/charts/image128.png Drillable Bar Chart: first drill Once again, we can select ``Frozen food`` subcategory and drill to a second sub-level as below: .. figure:: media/charts/image129.png Drillable Bar Chart: second drill And so on to the fourth subcategory. Selecting the “Back to: ...” icon available at the right corner of the graphic, the user can get back to the previous level. This efficient feature allows the user to have a deep insight of the analysis and draw important conclusions from it. Table widget ~~~~~~~~~~~~ The **Widget table configuration** opens and it guides you through the steps to configure the widget. The pop up opens showing the **column** tab, as you can see from Figure below. In details, it is mandatory to select a dataset using the combobox (only if at least one dataset has been loaded using the **Data Configuration** feature) or clicking on the icon |image156| available just aside the combobox line. You can page the table specifying the number of rows per sheet. Consequently the user can set columns properties. .. |image156| image:: media/image153.png :width: 20 .. figure:: media/image154.png Table configuration window. In fact, the column area is divided into two parts: on the upper part there are the buttons to add a new column or a calcutated field. Also the new functionality of column grouping is available here. In the lower section, as soon as the dataset is selected, you can indicate the sorting column or modal selection column. The modal selection serves to specify which value will be passed to other widgets (if interaction is enabled) when clicking on the cell at document execution time. You can specify this field by selecting a value from the combobox. In the same way, you indicate the sorting column and the order type that steers the rows ordering. You can select the field and the order from the dedicated comboboxes. When a dataset is added to a table widget, all of its columns are listed below. If the user doesn’t wish to show some of them, he can use the delete button available at the end of each column row, as shown below. .. figure:: media/image155.png Delete a column. In case of accidental cancellation or new table requirements, it is possible to re-add columns. In order to add a new column you have to click on the **Add Column** icon on the top right of the second box. Once opened you can select one or more columns. When you have finished selecting the desired columns you can click on save button and your new columns will appear in the field list. Refer to Figure below. .. figure:: media/image156.png Add a new column. **Manage Columns Groups** will open a menu to add or remove columns groups and to set their style. A column group is a container for more than one column that will show a common header between them. .. figure:: media/image156b.png Example column group. Likewise, to add a calculated field you have to click on the **Add Calculated field** icon next to add column icon. Once opened the Calculated Field Wizard you have to type an alias for your calculated field in the dedicated area at the top corner of the wizard. Then you can choose from the left sidebar list the fields that you want to use in your formula. You can also use arithmetical functions or use the functions available in the menu (**aggregations**, **column totals**, **variables**). If you prefer you can create or modify the expression manually directly in the editable panel. When you are satisfied with your expression you can click on validate to check your formula sintax or save button and your calculated field appears in the field list. We provide an example in the following figure. .. figure:: media/image157.png Add a calculated field. If Dataset is of type Solr, the columns displayed on the right panel are dataset columns fields and the calculated field formula elaboration is calculated on the fly. .. figure:: media/image158b.png If variables are set for the present cockpit, the variable menu button will appear, making it possible to add variable values in the calculated field expression. .. figure:: media/image157c.png Variables menu In the bottom section of the window, you can see the table fields (with their aggregation type) listed and you also can sort columns displayed in the table by dragging them up or down, insert a column alias and customize it by adding font and style configurations using the brush shaped icon, as you can see from figure below. Here you can find configuration features to adjust the column size, max cell characters, hide column or column header options, and the row spanning toggler. .. figure:: media/image157d.png Columns Settings If you hide the column (from this view or from the column list), the column will not be visible, but will still be used for aggregation purposes. If you enable the **row span feature**, all the same visible values of the column will be collapsed in one, to avoid repetitions. If the column is a measure, more functionalities will become available: - **Inline chart mode**: you can choose the visualization type of the measure, and if you choose chart and maximum/minimum values, a chart will appear in the view to represent the cell measure. - **Thresholds**: you can choose to set some thresholds that will trigger font color, background color or will show icons if the chosen condition is satisfied. - **Format**: you can choose the prefix, suffix and the precision (i.e. 9.8 m/s). Please be aware that the data will be formatted following the locale of the user. Otherwise you can choose to treat it as string. .. _columnsettings: .. figure:: media/image158.png Column settings. Note that here you can indicate the column type and the aggregation. To add an aggregation to a column you must control the type of data that column has. An aggregation can only be added if the column value is of “number” type . The different aggregation functions are: *none (you also can not add any aggregation function)*, *Sum*, *Average*, *Maximum*, *Minimum*, *Count* and *Count distinct*. If a column group has been set another option will become available in order to set the optional group belonging of the column. For all the columns, if at least one variable is set, the variables settings box will appear. Depending on the variable usage it will be possible to set a dynamic header or to hide the column conditionally. .. figure:: media/image158c.png Variable settings box. Clicking on the plus button you can add one or more conditions. The possible actions are: - Hide column: the column will be shown conditionally depending on the condition set. - Set column header name: the column name will be replaced by the variable value. Multiple conditions can be set, but a condition fullfilling the "=" will have higher priority. .. figure:: media/image158d.png Variable action set. The **Style** tab is where you can customize the table by using the different options of style. It is divided into eight parts: - In the **Header Style** section you can find different options for styling the table header. Refer to Figure below. .. figure:: media/image162.png Header style section of the Style tab. - In the **Rows** section you can set the generic style for all the rows (such as alternate color background) or specify different styles according to specific conditions on values. While the multiselectable option allows you to select multiple values and pass them to other cockpit widgets or other external documents. Refer to figure below. .. figure:: media/image160.png Rows section of the Style tab. - In the **Summary** section you can customize the appearance of the total of columns using font and style configurations. Refer to Figure below. .. figure:: media/image159.png Summary section of the Style tab. - In the **Titles** section you can add the titles to the widget and modify the font size and weight. In this section you can also change the height of the widget title. Refer to Figure below. .. figure:: media/image163.png Titles section of the Style tab. - In the **Borders** section you can add a border to the widget and customize it by using the colors, thickness and style. Refer to the following figure. .. figure:: media/image164.png Borders section of the Style tab. - In the **Padding** section you can add a padding inside the widget area, specifying a value for top, bottom, left and right zones. Refer to the following figure. .. figure:: media/image164b.png Padding section of the Style tab. - In the **Other Options** section you can add the shadows in the widget, you can set the background color of the widget and it is possible to disable or enable the screenshot option or the Excel export (when available) for that particular widget. Refer to the following figure. .. figure:: media/image165.png Other Options section of the Style tab. - In the **Export PDF** section you can enable the export of the widget in PDF format and also specify the orientation and size. Refer to the following figure. .. figure:: media/image165b.png Export PDF section of the Style tab. Once the table style settings have been implemented you can switch to the next tab. The **“Cross”** tab is where the navigation to other documents is defined. It is visible to final users but yet only configurable by a technical user (like an administrator). In this tab is possible to select between three different type of interactions: cross navigation to another document, open a preview popup of a dataset content or link to an external URL. .. figure:: media/image165c.png Cross tab with preview of a dataset enabled. Finally, the **“Filters”** tab is where you can filter the table results by adding a limit to the rows or a conditions in the columns. the following figure shows an example of how to set the limit rows or a conditions on dataset columns. .. _filterstabwidgetconf: .. figure:: media/image168.png Filters tab of the table widget configuration. Once you have finished setting the different configuration options of the table widget, then just click on **“Save”** and your new widget is displayed inside the cockpit. Cross Table widget ~~~~~~~~~~~~~~~~~~ Similar configurations are available also for the Cross Table widget. In this data visualization option, you still have the tabs: **Dataset** tab, **Configuration** tab, the **Style** tab and the **Filters** tab as you can see below. .. figure:: media/image169.png Dataset section of the crosstab widget configuration. Using the “Dataset” tab the user can add the dataset to take values from. Consequently, it is necessary to select the fields you wish to appear as columns, those as row and measures to be exhibited in the pivot table. See figure below. Remember to set column and row fields as attributes, while measure fields as numbers. .. figure:: media/image170.png Selecting columns, rows and measures of the crosstab. There is also the possibility to add calculated fields as measures clicking on the "Add calculated field button". The calculated field will work exactly as in the table widget. After creating a calculated field there will be the possibility to edit, remove it or set the properties for it's column clicking on the new measure buttons. .. figure:: media/image170b.png Calculated field detail. Once the columns, rows and measures have been selected the style of each column can be set by clicking on the cog settings icon. A popup will open with different options for the selected columnn. See figure below. .. figure:: media/image210.png Column style popup. It is possible to sort the crosstab according to the values of the selected column or, alternatively, according to columns not visible in the crosstab. It can also be set the style of the column, such as the font size, the font weight or the cell alignment. There is also the possibility to specify the size of the column in pixels (you can also use percent values but it is better to use pixels). In case the selected column is of type measure, there is a dialog to configure the behaviour of that field: .. figure:: media/image490.png Measure configuration dialog. A particular option for a measure is **Exclude from Total and SubTotal**: that checkbox excludes the measure from the sums of Total and SubTotal fields makin the relatives table cells empty. .. figure:: media/image211.png Measure threshold setting. As figure above shows, you can also manage threshold. For measures only, it is possible to associate a particular icon or a specific background color to a particular measure's value or range. To do so add a new threshold, set a condition for it to appear, and choose the icon from the list or select the color that will be changed to the cell. It is possible to add more or to remove thresholds using the add or delete button. .. figure:: media/image211c.png Variables header value. If one or more variables are set, in column and measure settings another field will appear. It is possible to set the header name to be dynamic using one of the variables set. If one of the variables are selected in the combo as in example, the header name will be changed depending on the current variable value. .. figure:: media/image211b.png Column style. It's also possible to set style elements for both attributes and measures. In measures will also be possible to set the precision and prefix/suffix of the cell value. The comma and dot used for decimals and thousands will be automatically changed depending on user's locale. Once the dataset has been properly configured, you can proceed to the “Configuration” tab. The latter is made up of three sections: **General**, **On rows** and **On columns**, as Figure below shows. .. figure:: media/image171.png Configuration tab interface. In the **“General”** section you can set the following features: - define the maximum cell number to show; - decide to hook measures to columns or rows; - decide to show percentages of measures related to columns or rows. Thanks to the **“On rows”** feature, you can easily compute totals or subtotals on rows. Figure below exhibit an example. .. figure:: media/image172.png Computing totals and/or subtotals on rows. Otherwise, thanks to the **“On columns”** feature, you can easily compute totals or subtotals on columns. Figure below exhibit an example. .. figure:: media/image173.png Computing totals and/or subtotals on columns. Selecting the **"Hide rows on just null values"** will hide all the rows with just 0 or null values, avoiding space waste if unneeded. The "Fix attribute's columns" will pin to the left the columns containing the attributes, so side scrolling will be available without losing those columns. .. figure:: media/image173b.png Pinned columns example. The **"expand/collapse"** functionality will add a + and - button in your rows, in order to easily aggregate your data. In the widget menu you will also find the expand all/collapse all buttons, in order to reset closing or opening your whole widget. Be aware that to use this functionality columns subtotal should be selected. If not the functionality check will enable it automatically. .. figure:: media/image173c.png Expand/collapse example. Switching to the **“Style”** tab you can find the general style settings available for the crosstab. - **Crosstab General Options** where the rows' height, the general font and font size can be set; in particular, the layout combo determines how the columns resize themselves in respect of the contained value; .. figure:: media/image174.png General style options for crosstab. - **Crosstab Headers Font Options** where you can configure the header style settings as color, background, font, etc. .. figure:: media/image175.png Crosstab Headers Font Options for crosstab. - **Measures Font Options** where you can configure several style options for measures, such as color, background, font size, etc. .. figure:: media/image176.png Measures Font Options for crosstab. - Using the **Grid** section you can mark (or not) grid borders, decide for border style, thickness and color. You can also alternate row indicating different colors. .. figure:: media/image177.png Grid Options for crosstab. - In the **Measures Headers** section you can configure different style option for measure headers, such as color, background, font size, etc. .. figure:: media/image178.png Measures Headers Option for crosstab. - In the **Total** section you can set color and background of totals (if any). .. figure:: media/image179.png Color settings for Totals. - In the **Subtotal** section you can set color and background of subtotals (if any). .. figure:: media/image180.png Color settings for Subtotals. - In the **Titles** section you can add titles to widget and customize them using different styles. .. figure:: media/image181.png Title settings. - In the **Borders** section you can add borders to widgets and customize them using different styles. .. figure:: media/image182.png Border settings. - In the **Other Options** section you can add a shadow to widget layout and indicate its measure, color the widget background at convenience and it is possible to disable or enable the screenshot option or the Excel export for that particular widget. .. figure:: media/image183.png Other Options for crosstab. Opening the **Cross** tab is possible to set a cross navigation to another document or an external link. In addition to other cross-navigations, for cross table widget it is possible to set as a dynamic value the name of the selected measure column or the selected category. The choice is available from the combobox. .. figure:: media/image498.png Cross navigation for cross table widget. Once some or all (at least the mandatory) of the above mentioned setting features have been set you can save and the widget will be inserted into the cockpit area. Document section ~~~~~~~~~~~~~~~~ The Document widget allows to add an external document into the cockpit area. This widget supports documents like reports, maps, etc. Use the Data configuration button to add a document source to the cockpit. Click on the “Plus” icon on the right half of the page to choose among all available documents. The Document Widget configuration is divided into two parts: **Custom** tab and **Style** tab as you can see from Figure below. .. figure:: media/image185.png Custom tab of the Document widget. The Custom tab is the place where the document is uploaded while the Style tab is where all style options are set. Active Selections widget ~~~~~~~~~~~~~~~~ To enable the Active Selections widget, which means the possibility to have all the currently applied selections listed and accessible on a widget, the user must open the **“Active Selections”** feature through the **“Add widget”** functionality and configure the demanded options. Figure below shows the **“Active Selections widget configuration”** interface. .. figure:: media/image186.png Active Selections widget configuration. The Active Selections will display the elements selected by the user. Figure below shows an example. .. figure:: media/image187.png Active Selections widget outlook. If global associations have been set, clicking on table, cross table or chart elements will update all corresponding widgets. Otherwise, only the widget on which selection has been made will be updated. In both cases the Selection widget will display the highlighted attribute values. Selector Widget ~~~~~~~~~~~~~~~ The **Selector Widget** is a way to include a dataset filter, directly inside the cockpit, that can be displayed like a combobox, radio button or checkboxes. .. figure:: media/image188.png Selector widget outlook. In detail, use the **Columns** tab to select the dataset and the dataset column on which you want to apply the filter. Then select the **Select modality** options; for instance, choose between single or multivalue or to use a list or a combobox. Note that for the list option you can further choose among “vertical”, “horizontal” or “grid”. You can also decide to add a default value, chosen from main column’s first item, main column’s last item or to simply assign a static value. Finally, by clicking on the Wrap Text option it is possible to wrap the text shown in the selector; this option is useful when the categories to choose from are sting of long dimensions. In the case of the selector of type list "grid" it is also possible to set the grid columns width. .. figure:: media/image304.png Grid columns width. Move to the **Style** tab to set the widget style in terms of: label, titles, borders, shadows and background color. Figure below shows a customization example. .. figure:: media/image189.png Selector widget configuration. Finally use the **Filters** tab to handle pagination or filter on a dataset column. .. figure:: media/image190.png Selector filters. The Selector widget works effectively as a ready-to-use filter panel. .. figure:: media/image191.png Selector widget execution example. HTML Widget ~~~~~~~~~~~ The HTML widget allows to add customized HTML and CSS code to implement very flexible and customized dynamic elements to the cockpit. This widget supports all HTML5 standard tags and CSS3 properties. .. warning:: For security reasons no custom Javascript code can be added to html tags. Every tag considered dangerous will be deleted after saving the document. The **Edit** section of the widget is composed by five tabs: the Dataset, HTML editor, Style, Cross and Filters. In the editor tab is possible to add the code that will be shown in the widget. Clicking on the top expander section in the tab, the one named "CSS" also the CSS editor will be available. .. important:: A CSS property will be extended to all the classes in the cockpit with the same name, to apply the property only to the current widget use the id prefix shown in the info panel of the CSS editor .. figure:: media/image208.png HTML widget editor In the right side of the editor is possible to explore the available tags that can be copied inside the code, those tags will be explained in details in the following paragraphs. Given that is not possible to add custom JavaScript code inside the html editor, this available tags are the tools to make the widget dynamic and to use the dataset data. The **Dataset** tab allows the user to select a dataset to make the Widget dynamic and to bind it to dataset data. After choosing a dataset the list of available columns will be shown. Those names will be useful inside the dynamic tags. Here it is also possible to order the dataset according to a column and to select the ordering type (ascending or descending). .. figure:: media/image209.png Dataset selection By clicking on the icon |image302| of a specific column the dataset will be ordered by that column by default by ascending order. In order to select the descending ordering type you have to click another time on the icon (the icon will be now like this |image303|). .. |image302| image:: media/image302.png :width: 30 .. |image303| image:: media/image303.png :width: 30 **Available Tags** *kn-column* ``[kn-column='COLUMN-NAME' row='COLUMN-ROW-NUMBER' aggregation='COLUMN-AGGREGATION' precision='COLUMN-DECIMALS']`` The ``kn-column`` tag is the main dynamic HTML Widget tool, it allows to select a column name from the selected dataset and to display its values. The value of the kn-column attribute should be the name of the column value you want to read in execution. The **row** attribute is optional and is a number type attribute. This attribute can let you retrieve a specific row according to the position in the dataset. If no row is selected the first row column value will be shown. The **aggregation** attribute is optional and is a string type attribute. If inserted the value shown will be the aggregation of all column rows values. The available aggregations are: AVG, MIN, MAX, SUM, COUNT_DISTINCT, COUNT, DISTINCT COUNT. The **precision** attribute is optional and is a number type attribute. If added and if the result value is a number, the decimal precision will be forced to the selected one. *kn-parameter* ``[kn-parameter='PARAMETER-NAME']`` The kn-parameter tag is the tool to show a dataset parameter inside the widget execution. The value of the kn-parameter attribute should be the name of the parameter to display. *kn-calc* ``[kn-calc=(CODE-TO-EVALUATE) precision='VALUE-PRECISION']`` The ``kn-calc`` tag is the tool to calculate expressions between different values on widget execution. Everything inside the brackets will be evaluated after the other tags substitution, so will be possible to use other tags inside. The **precision** attribute is optional and is a number type attribute. If added and if the result value is a number, the decimal precision will be forced to the selected one. *kn-repeat* ``