Is there any technique on a List view to mark items as done?
For example, i have a Summary List View, when user double-clicks a record (row), it opens a form in a seperate window and they do whats needed in that form and close it. Then they go back to the Summary List View and do the same with the next.
Is there a way of highlighting/change colour of completed rows in the Summary List View or put a Check box next to each record so the User knows which ones have been actioned? The List is Not editable, just used to double-click to open a record and mark as done.
Solved! Go to Solution.
I may have to attempt this in my environment; however, I think this should be possible if you create a SmartBox SmartObject to flag when the form is completed.
We can do this by adding another column to the list view and labelling it "Completed" (or whatever you choose). Then map the SmartBox SmartObject to the column. Based on your design, you will probably want to make sure there is a Unique Identifier for the rows in the Summary List view. This way we can pair that ID number for the row with the completed form in the SmartObject.
Next, you would add the SmartObject update method to the rules for completing the form. When the form is completed the SmartObject will update the SmartBox and the column's row with the word 'completed' (or however you choose to customize it from here).
From here the customization is up to you. You can filter the summary list based on that columns rows having a value = 'completed'. This would remove the rows for completed forms from the list view when the user goes back to it. Now that we have a flag linked on the row, we can add customization options to the list views initialize rule. By this, I mean that you can add other rules that work off of the value showing in the completed column, like filtering on the word 'completed'.
Good day SharpSharp
I would recommend the following in order to obtain a completed column in your list view. There are other design alternatives like highlighting the line, etc. however i believe the below steps would display the completed status the neatest.
1) Create a SmartObject with the properties your design requires.
2) Add an additional property to the SmatObject with type YesNo | this would be used to save the completed status of a list view record.
3) Add some data to the SmartObject.
4) CreateGenerate a list view or editable list view from the created SmartObject.
5) Edit the list view, then drag and drop a data label control onto the additional column.
6) Select the column, select the Header tab and specify the header name in the Text property.
7) Select the column, select the Body tab, locate the Literal property and check it also ensure that the prevent xss property is unchecked.
😎 Select the column, select the Body tab, select the expressions elipse and add the following into a expression:
IF(SMARTOBJECT PROPERTY = True,<img style="height:20px" src="PLACE A IMAGE URL HERE" />,<img style="height:20px" src="PLACE A IMAGE URL HERE" />)
*Replace the "SMARTOBJECT PROPERTY" in the expression with the SmartObject value.
*Replace the "PLACE A IMAGE URL HERE" with a completed image url example: https://www.iconsdb.com/icons/preview/green/checked-checkbox-xxl.png (checked box) andor https://upload.wikimedia.org/wikipedia/commons/3/3f/No-red.svg (unchecked box)
9) Select the expression you created and press okay to bind the expression to the column.
10) Save,Finish and Run the list view .
Note: Based on your specific requirements, when the main form is opened in a seperate browser window you will not be able to pass a value between the two forms to update the list therefore you can ensure that parent form executes the "Execute a SmartObject method" rule and preform a update to the SmartObject created in step 1, updating the completed status with static true or false value when the main form had been completed via submission. To do this you will need to carry the selected records ID from the Summary List view to the Main form, to do that you can implement the following:
1) On the summary list view you are presumably using a "Navigate to URL" rule to open the main form on a record double click event, therefore add a parameter called "Id" into the navigate to URL rule and pass the SmartObject ID to the parameter.
2) Edit the main form add a parameter from the parameter breadcrumb tab, provide it with the exact same name "Id".
3) Still on the main form, edit or add the initialize rule, then do a transfer data that would pass the "Id" parameter to a data label if you do not have section to which the selected records ID can be passed to.
In Addition to that, refreshing the summary list view will require a manual refresh which will not be ideal. To resolve that you can create a total seperate SmartObject with one property. Then on the main forms submission the SmartObject value should be updated. The Summary view will need to pull the value from that SmartObejct on initailize and also lets say every 10 minutes using a timer control - this will alow the summary list view to check if the value in the SmartObejct had been updated since it was last retreived via a condition check, to allow to list to refresh if it a task has been completed.
Looking at the above explained I do have to point out that the design requirement does not make sense as to why your views need to be seperated on this level therefore the above would work to resolve your issue and accomodate your requirements however best practice would have been to call the main form as a subview or a subform when a record on the summary list view had been double clicked, allowing you to easily manipulate, monitor and alter the data as well as views accordingly.
Should you feel that this post is of use and or an accurate solution to the raised question, I kindly encourage you to mark it as such using the 'Mark as Solution', 'Kudo' andor ‘Me Too’ options.