If you have many companies and manage user role security, unless you're fortunate enough to Grant access to all organizations more often than not, you probably hate the SysSecRoleAssignOM form shown here. To click company, Grant, company, Grant, company, Grant, company Grant, company Grant, grates the nerves, to put it nicely. Certainly this form could multi-select.
Let's make it do just that.
First, drill down to the organizationTree control, and switch SingletonSelection to No, thus enabling multi-select in the tree of Available organization nodes.
Then, drill down to the Grid control, and switch MultiSelect to Yes, doing the same for the grid.
Next, in the addOrganization form method which responds to the Grant button, some code changes are required to loop through all of the selected tree nodes instead of acting on just the current node. We'll use a for loop to iterate through all of the selected tree nodes, move the ttsbegin outside of that loop so all changes occur within the transaction scope, and then swap out the return statement for a continue statement to avoid adding nodes that already exist without aborting entirely.
The clicked method on the Revoke button requires the most work. We'll use a for loop here also to iterate through all of the selected grid records, but we need a local OMUserRoleOrganization buffer to do the work, and also need to move the ttsbegin, ttscommit, and cleanup code outside of the loop.
Finally, we want the Grant button to enable appropriately. We'll use one last for loop to iterate through all of the selected tree nodes, with only minor additional changes.