Difference between revisions of "Editable Data Grid"
(41 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | '''Editable Data Grid''' is a table, that shows data from QPR Suite | + | '''Editable Data Grid''' is a table, that shows data from QPR Suite and the data can also be edited. Editing possibility is the only difference to the [[Data Grid Properties|Data Grid]] presentation object. The Editable Data Grid uses QPR Suite Web Service to query and save data, and thus QPR Suite Web Service properties define which kind of data can be edited. Mainly QPR Metrics, QPR Portal action forms and QPR Suite user management data can be edited, where as QPR ProcessDesigner or QPR EnterpriceArchitect cannot be edited. |
− | Data shown in the data grid is fetched using QPR Suite Web Service query, where each row is linked to one object and each column is linked to | + | Data shown in the data grid is fetched using QPR Suite Web Service query, where each row is linked to one QPR Suite object, and each column is linked to one attribute in the QPR Suite Web Service. Note that the editable data grid does not use [[Datasets_in_QPR_UI|datasets]] to fetch data. |
− | |||
− | Note that | ||
+ | Editable data grid is configured using '''JSON settings''' field that is available in the Data grid settings in the '''Presentation''' tab. The following table shows all available settings. See configuration examples below the table. | ||
{| class="wikitable" | {| class="wikitable" | ||
!'''Property''' | !'''Property''' | ||
Line 36: | Line 35: | ||
||Attribute name that is used as parent object when creating new objects to QPR Suite. The referenced parent attribute must exist either in the defined columns or in the ''additionalAttributes''. The first case is better when user needs to select the parent from multiple options, and the latter is better when there is a fixed parent for all the created objects. | ||Attribute name that is used as parent object when creating new objects to QPR Suite. The referenced parent attribute must exist either in the defined columns or in the ''additionalAttributes''. The first case is better when user needs to select the parent from multiple options, and the latter is better when there is a fixed parent for all the created objects. | ||
|- | |- | ||
− | || | + | ||createObjectOptions |
− | ||Options parameter for the QPR Suite Web Service CreateObject operation (http://kb.qpr.com/qpr2017-1/index.html?createobject2.htm), that is used | + | ||Options parameter for the QPR Suite Web Service CreateObject operation (http://kb.qpr.com/qpr2017-1/index.html?createobject2.htm), that is used when a new row is created that is not based on a template object. |
|- | |- | ||
− | || | + | ||createCopyOptions |
− | ||Options parameter for the QPR Suite Web Service CreateCopy operation (http://kb.qpr.com/qpr2017-1/index.html?createcopy3.htm), that is used | + | ||Options parameter for the QPR Suite Web Service CreateCopy operation (http://kb.qpr.com/qpr2017-1/index.html?createcopy3.htm), that is used when a new row is created based on a template object. |
|- | |- | ||
− | || | + | ||deleteObjectOptions |
− | ||Options parameter for the QPR Suite Web Service DeleteObjects operation (http://kb.qpr.com/qpr2017-1/index.html?deleteobject2.htm), that is used | + | ||Options parameter for the QPR Suite Web Service DeleteObjects operation (http://kb.qpr.com/qpr2017-1/index.html?deleteobject2.htm), that is used when a row is deleted from the data grid. |
+ | |- | ||
+ | ||setAttributeOptions | ||
+ | ||Options parameter for the QPR Suite Web Service SetAttribute operation (http://kb.qpr.com/qpr2017-1/index.html?setattribute.htm), that is used when an attribute value is set. | ||
+ | |- | ||
+ | ||templateObjectQuery | ||
+ | ||QPR Suite Web Service query to get the template object to use when new objects are created. Used only when new objects are created based on a template object. If the query returns multiple objects, the first one is used as a template. If the templateObjectQuery is not defined, new objects are not created based on a template. More information about queries: http://kb.qpr.com/qpr2017-1/index.html?queryobjects.htm. | ||
+ | |- | ||
+ | ||elementType | ||
+ | ||Defines the type of the created object. Used only when new objects are not created based on a template object. This needs to be a type name that is supported in the namespace. Also type ID can be used. | ||
+ | |- | ||
+ | ||namespace | ||
+ | ||Namespace into which new objects are created. When creating QPR Metrics objects, the namespace is the QPR Metrics model id. When creating QPR Portal actions forms, the namespace is ''PO''. When creating users and groups, the namespace is ''UM''. For QPR Metrics objects, the namespace can be omitted, because the namespace is assumed to be the same as the QPR Metrics model, where the parent element is located. | ||
|- | |- | ||
||columns | ||columns | ||
Line 55: | Line 66: | ||
|- | |- | ||
||attributeParameters | ||attributeParameters | ||
− | ||Parameters for the attribute. For example, ''value'' attribute supports ''period'' and ''series'' parameters, which are defined as follows: ''period=Q1/2018,series=ACT''. | + | ||Parameters for the attribute. For example, ''value'' attribute supports ''period'' and ''series'' parameters, which are defined as follows: ''period=\"Q1/2018\",series=\"ACT\"''. |
|- | |- | ||
||headerText | ||headerText | ||
Line 62: | Line 73: | ||
||inputType | ||inputType | ||
|| | || | ||
− | + | Determines which type of control is used for data input. Following options are available: | |
− | + | {| class="wikitable" | |
− | + | !'''Type''' | |
− | + | ! '''Description''' | |
− | + | |- | |
− | + | ||checkbox | |
− | + | ||Shows a checkbox, which is used for storing two possible values. The possible values are defined in '''trueValue''' and '''falseValue''' properties. | |
+ | |- | ||
+ | ||date | ||
+ | ||Shows a date selector that can store values using XML date format (e.g. 2018-10-05T16:26:42). When reading data, both XML date format and Excel style are accepted. | ||
+ | |- | ||
+ | ||dropdown | ||
+ | ||Shows a dropdown list where user can select from a list of predefined items. The items are defined in the '''dropdownOptions''' property. | ||
+ | |- | ||
+ | ||numericbox | ||
+ | ||Shows a textbox for numeric values. It's not possible to input textual data. | ||
+ | |- | ||
+ | ||relation | ||
+ | ||Shows a dropdown list where a QPR Suite object can be selected. Id of the selected object is stored as the relation attribute value. | ||
+ | |- | ||
+ | ||textbox | ||
+ | ||Shows a textbox for storing string values. | ||
+ | |} | ||
|- | |- | ||
||dropdownOptions | ||dropdownOptions | ||
Line 95: | Line 122: | ||
||Query to get the list of objects to be selected from dropdown list. Used only used when ''type'' is ''relation''. | ||Query to get the list of objects to be selected from dropdown list. Used only used when ''type'' is ''relation''. | ||
|- | |- | ||
− | || | + | ||relationLabelAttribute |
− | ||Attribute | + | ||Attribute which values are shown in the list of object in the dropdown menu. Used only used when ''type'' is ''relation''. By default, it's attribute ''name''. |
+ | |- | ||
+ | ||relationValueAttribute | ||
+ | ||Attribute which value is saved to QPR Suite when selecting an item from dropdown list. Used only used when ''type'' is ''relation''. By default, it's attribute ''id''. | ||
|- | |- | ||
||validationRules | ||validationRules | ||
Line 113: | Line 143: | ||
Examples: | Examples: | ||
<pre> | <pre> | ||
− | validationRules: { required: true, minlength: 3 } | + | "validationRules": { "required": true, "minlength": 3 } |
</pre> | </pre> | ||
<pre> | <pre> | ||
− | validationRules: { range: [0, 100] } | + | "validationRules": { "range": [0, 100] } |
</pre> | </pre> | ||
|- | |- | ||
||allowEditing | ||allowEditing | ||
− | ||Enables or | + | ||Enables (''true'') or disables (''false'') editing for the column. By default editing is disabled. Syncfusion Grid setting. |
|- | |- | ||
||format | ||format | ||
− | ||Syncfusion Grid setting. | + | ||Syncfusion Grid setting. Documentation: https://help.syncfusion.com/js/grid/columns#format. |
+ | |- | ||
+ | ||editParams | ||
+ | ||Syncfusion setting for other editing related parameters (https://help.syncfusion.com/api/js/ejgrid#members:columns-editparams). For example, number of decimals for ''numericbox'' input type: | ||
+ | <pre> | ||
+ | "editParams": { "decimalPlaces": 2 } | ||
+ | </pre> | ||
|- | |- | ||
|| | || | ||
− | [other | + | [other Syncfusion settings] |
|| | || | ||
− | All Syncfusion | + | All Syncfusion Grid settings can be used: https://help.syncfusion.com/api/js/ejgrid#members:columns |
|- | |- | ||
|} | |} | ||
Line 137: | Line 173: | ||
[other syncfusion settings] | [other syncfusion settings] | ||
|| | || | ||
− | All Syncfusion | + | All Syncfusion Grid settings can be used: https://help.syncfusion.com/api/js/ejgrid#members:columns |
|} | |} | ||
+ | == Configuration examples == | ||
+ | Example 1: List all scorecards in the Metrics environment. Scorecard names, identifiers and descriptions can be edited. | ||
+ | <pre> | ||
+ | { | ||
+ | "query": "[SC].models.scorecard", | ||
+ | "sortBy": "name", | ||
+ | "selectedRowVariable": "selectedScorecardId", | ||
+ | "columns": [ | ||
+ | {"attribute": "name", "headerText": "Scorecard name", "inputType": "textbox", "validationRules": { "minlength": 5 }, "allowEditing": true}, | ||
+ | {"attribute": "symbol", "headerText": "Scorecard identifier", "inputType": "textbox", "validationRules": { "required": true }, "allowEditing": true}, | ||
+ | {"attribute": "description", "headerText": "Scorecard description", "inputType": "textbox", "allowEditing": true} | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | Example 2: List of measures in a single scorecard. The scorecard id must be available in the ''myScorecard'' variable. | ||
+ | <pre> | ||
+ | { | ||
+ | "query": "[<#myScorecard>].measures", | ||
+ | "sortBy": "name", | ||
+ | "selectedRowVariable": "selectedMeasureId", | ||
+ | "columns": [ | ||
+ | {"attribute": "name", "headerText": "Measure name", "inputType": "textbox", "allowEditing": true}, | ||
+ | {"attribute": "Numeric value", "attributeParameters": "series=\"SERIES1\"", "headerText": "Measure value", "inputType": "numericbox", "allowEditing": true}, | ||
+ | {"attribute": "measure.value", "attributeParameters": "series=\"SERIES2\"", "headerText": "Date date", "inputType": "date", "allowEditing": true}, | ||
+ | {"attribute": "measure.value", "attributeParameters": "series=\"SERIES3\"", "headerText": "Checkbox value", "inputType": "checkbox", "trueValue": "10", "falseValue": "0", "allowEditing": true}, | ||
+ | {"attribute": "measure.value", "attributeParameters": "series=\"SERIES4\"", "headerText": "Dropdown value", "inputType": "dropdown", "dropdownOptions": [{"label": "Good", "value": "10"},{"label": "Fair", "value": "5"},{"label": "Bad", "value": "0"}], "allowEditing": true} | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | Example 3: The following settings can be used to control, whether there are adding, deleting and editing functions available: | ||
<pre> | <pre> | ||
{ | { | ||
Line 145: | Line 213: | ||
"allowAdding": true, | "allowAdding": true, | ||
"allowDeleting": true, | "allowDeleting": true, | ||
− | "allowEditing": true | + | "allowEditing": true |
− | |||
}, | }, | ||
"toolbarSettings": { | "toolbarSettings": { | ||
Line 155: | Line 222: | ||
</pre> | </pre> | ||
− | + | Example 4: The following settings show a grid in which copies of a measure (ID of which is defined in the "templateObject" context variable) can be created under a parent measure (ID of which is defined in the "parentelementID" context variable). The grid will show all the created measures ("[<#parentelementID>].childobjects"). It's also possible to edit the values of the two series (with identifiers "ACT" and "NME") for the latest period in the created copies. | |
+ | <pre> | ||
+ | { | ||
+ | "query": "[<#parentelementID>].childobjects", | ||
+ | "sortBy":"name", | ||
+ | "selectedRowVariable":"gridSelectedRowID", | ||
+ | "additionalAttributes": {"description":"New element from QPR UI","parentelementid":"<#parentelementID>"}, | ||
+ | "parentAttribute":"parentelementid", | ||
+ | "templateObjectQuery": "[<#templateObject>]", | ||
+ | "toolbarSettings": {"showToolbar":true,"toolbarItems":["edit","update","cancel","add"]}, | ||
+ | "editSettings": {"allowEditing": true,"allowAdding":true}, | ||
+ | "columns": | ||
+ | [ | ||
+ | {"attribute": "name", "headerText":"Name", "inputType": "textbox","allowEditing":true}, | ||
+ | {"attribute": "measure.value", "attributeParameters": "series=\"ACT\",period=\"latest\"", "headerText": "Numeric Value", "inputType": "numericbox", "allowEditing": true}, | ||
+ | {"attribute": "measure.value", "attributeParameters": "series=\"NME\",period=\"latest\"", "headerText": "Text Value", "inputType": "textbox", "allowEditing": true} | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | Note that the batch editing is not supported by the editable data grid ('''"editSettings": { "editMode" : "batch" }''') | ||
+ | |||
+ | [[Category: QPR UI]] |
Latest revision as of 21:52, 29 April 2018
Editable Data Grid is a table, that shows data from QPR Suite and the data can also be edited. Editing possibility is the only difference to the Data Grid presentation object. The Editable Data Grid uses QPR Suite Web Service to query and save data, and thus QPR Suite Web Service properties define which kind of data can be edited. Mainly QPR Metrics, QPR Portal action forms and QPR Suite user management data can be edited, where as QPR ProcessDesigner or QPR EnterpriceArchitect cannot be edited.
Data shown in the data grid is fetched using QPR Suite Web Service query, where each row is linked to one QPR Suite object, and each column is linked to one attribute in the QPR Suite Web Service. Note that the editable data grid does not use datasets to fetch data.
Editable data grid is configured using JSON settings field that is available in the Data grid settings in the Presentation tab. The following table shows all available settings. See configuration examples below the table.
Property | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
additionalAttributes | List of attributes and values that are saved to the object when it's created. Can be used to define a fixed parent object id for all created objects. Defined as a JSON object where the property name is the attribute name, and property value is the attribute value.
Example: "additionalAttributes": { "attribute1": "value1", "attribute2": "value2" } | ||||||||||||||||||||||||||||||||||||||||||||||||||||
selectedRowVariable | Local context variable where currently selected row's object id of stored. Note that the selected row doesn't change, when the context variable is changed from somewhere else. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
query | Query parameter for the QPR Suite Web Service query to get the rows to the editable data grid. More information: http://kb.qpr.com/qpr2017-1/index.html?queryobjects.htm. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
sortBy | Sorting parameter for the QPR Suite Web Service query to get the rows to the editable data grid. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
queryOptions | Options parameter for the QPR Suite Web Service query to get the rows to the editable data grid. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
parentAttribute | Attribute name that is used as parent object when creating new objects to QPR Suite. The referenced parent attribute must exist either in the defined columns or in the additionalAttributes. The first case is better when user needs to select the parent from multiple options, and the latter is better when there is a fixed parent for all the created objects. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
createObjectOptions | Options parameter for the QPR Suite Web Service CreateObject operation (http://kb.qpr.com/qpr2017-1/index.html?createobject2.htm), that is used when a new row is created that is not based on a template object. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
createCopyOptions | Options parameter for the QPR Suite Web Service CreateCopy operation (http://kb.qpr.com/qpr2017-1/index.html?createcopy3.htm), that is used when a new row is created based on a template object. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
deleteObjectOptions | Options parameter for the QPR Suite Web Service DeleteObjects operation (http://kb.qpr.com/qpr2017-1/index.html?deleteobject2.htm), that is used when a row is deleted from the data grid. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
setAttributeOptions | Options parameter for the QPR Suite Web Service SetAttribute operation (http://kb.qpr.com/qpr2017-1/index.html?setattribute.htm), that is used when an attribute value is set. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
templateObjectQuery | QPR Suite Web Service query to get the template object to use when new objects are created. Used only when new objects are created based on a template object. If the query returns multiple objects, the first one is used as a template. If the templateObjectQuery is not defined, new objects are not created based on a template. More information about queries: http://kb.qpr.com/qpr2017-1/index.html?queryobjects.htm. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
elementType | Defines the type of the created object. Used only when new objects are not created based on a template object. This needs to be a type name that is supported in the namespace. Also type ID can be used. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
namespace | Namespace into which new objects are created. When creating QPR Metrics objects, the namespace is the QPR Metrics model id. When creating QPR Portal actions forms, the namespace is PO. When creating users and groups, the namespace is UM. For QPR Metrics objects, the namespace can be omitted, because the namespace is assumed to be the same as the QPR Metrics model, where the parent element is located. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
columns | Array of objects where each represent a column in the editable data grid. Following properties can be used:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
[other syncfusion settings] |
All Syncfusion Grid settings can be used: https://help.syncfusion.com/api/js/ejgrid#members:columns |
Configuration examples
Example 1: List all scorecards in the Metrics environment. Scorecard names, identifiers and descriptions can be edited.
{ "query": "[SC].models.scorecard", "sortBy": "name", "selectedRowVariable": "selectedScorecardId", "columns": [ {"attribute": "name", "headerText": "Scorecard name", "inputType": "textbox", "validationRules": { "minlength": 5 }, "allowEditing": true}, {"attribute": "symbol", "headerText": "Scorecard identifier", "inputType": "textbox", "validationRules": { "required": true }, "allowEditing": true}, {"attribute": "description", "headerText": "Scorecard description", "inputType": "textbox", "allowEditing": true} ] }
Example 2: List of measures in a single scorecard. The scorecard id must be available in the myScorecard variable.
{ "query": "[<#myScorecard>].measures", "sortBy": "name", "selectedRowVariable": "selectedMeasureId", "columns": [ {"attribute": "name", "headerText": "Measure name", "inputType": "textbox", "allowEditing": true}, {"attribute": "Numeric value", "attributeParameters": "series=\"SERIES1\"", "headerText": "Measure value", "inputType": "numericbox", "allowEditing": true}, {"attribute": "measure.value", "attributeParameters": "series=\"SERIES2\"", "headerText": "Date date", "inputType": "date", "allowEditing": true}, {"attribute": "measure.value", "attributeParameters": "series=\"SERIES3\"", "headerText": "Checkbox value", "inputType": "checkbox", "trueValue": "10", "falseValue": "0", "allowEditing": true}, {"attribute": "measure.value", "attributeParameters": "series=\"SERIES4\"", "headerText": "Dropdown value", "inputType": "dropdown", "dropdownOptions": [{"label": "Good", "value": "10"},{"label": "Fair", "value": "5"},{"label": "Bad", "value": "0"}], "allowEditing": true} ] }
Example 3: The following settings can be used to control, whether there are adding, deleting and editing functions available:
{ "editSettings": { "allowAdding": true, "allowDeleting": true, "allowEditing": true }, "toolbarSettings": { "showToolbar": true, "toolbarItems": ["add", "edit", "delete", "update", "cancel"] } }
Example 4: The following settings show a grid in which copies of a measure (ID of which is defined in the "templateObject" context variable) can be created under a parent measure (ID of which is defined in the "parentelementID" context variable). The grid will show all the created measures ("[<#parentelementID>].childobjects"). It's also possible to edit the values of the two series (with identifiers "ACT" and "NME") for the latest period in the created copies.
{ "query": "[<#parentelementID>].childobjects", "sortBy":"name", "selectedRowVariable":"gridSelectedRowID", "additionalAttributes": {"description":"New element from QPR UI","parentelementid":"<#parentelementID>"}, "parentAttribute":"parentelementid", "templateObjectQuery": "[<#templateObject>]", "toolbarSettings": {"showToolbar":true,"toolbarItems":["edit","update","cancel","add"]}, "editSettings": {"allowEditing": true,"allowAdding":true}, "columns": [ {"attribute": "name", "headerText":"Name", "inputType": "textbox","allowEditing":true}, {"attribute": "measure.value", "attributeParameters": "series=\"ACT\",period=\"latest\"", "headerText": "Numeric Value", "inputType": "numericbox", "allowEditing": true}, {"attribute": "measure.value", "attributeParameters": "series=\"NME\",period=\"latest\"", "headerText": "Text Value", "inputType": "textbox", "allowEditing": true} ] }
Note that the batch editing is not supported by the editable data grid ("editSettings": { "editMode" : "batch" })