Datagrid Multiple Column Sort

Bob Sneidar bobs at twft.com
Thu Feb 3 19:12:26 EST 2011


Maybe not the place for this, but I looked in my datagrid, and those scripts are not there. The buttons in DGH for Column sort, Reorder lines, Reorder columns, and Resize columns by double-click are all greyed out, which I assumed meant that the scripts were installed. If they were, it was not in the datagrid I had selected. 

Bob


On Feb 3, 2011, at 1:36 PM, zryip theSlug wrote:

> On Thu, Feb 3, 2011 at 9:32 PM, Bob Sneidar <bobs at twft.com> wrote:
> 
> Hi Bob,
> 
>> Hi all.
>> 
>> I thought this was addressed before, but I have looked through the forums and the API to no avail. Is it now possible via the API to sort by multiple columns? I know I can get the dgText, sort with Rev API and set the dgText, but I want to try to use the Datagrid API as much as possible.
>> 
>> I looked at the Datagrid Helper and saw some scripts for column sorting, so I installed them. Now it dawns on me I do not know how to call them, or get rid of them if I don't want them anymore.
> 
> For column sorting, DGH builds a script according to the name of the
> columns in the datagrid. The script is installed in the datagrid
> group.
> For example, in a datagrid with 3 columns: "First name", "Last Name",
> "Phone number", the generated script must be something such as:
> 
> switch pColumn
>      case "First name"
>         pass SortDataGridColumn
>         break
> 
>      case "Last Name"
>         pass SortDataGridColumn
>         break
> 
>      case "Phone number"
>         pass SortDataGridColumn
>         break
> 
>      default
>         pass SortDataGridColumn
> end switch
> 
> In the script comments, DGH gives also some clues for customizing this
> switch case statement:
> 
> ## Use:
>   # -> pass SortDataGridColumn for a regular sort
>   # -> don't pass SortDataGridColumn for disabling the column sort
>   ## For a multicriteria sort, use:
>   # -> SortDataByKey "col 1" -- name of the column of the first criteria
>   # -> SortDataByKey "col 2" -- name of the column of the second criteria
>   # -> SortDataByKey "col n" -- name of the column of the criteria n
>   # -> HiliteAndStoreSortByColumn "col 1" -- hilites the first column
> after the multicriteria sort
>   ## For reversing the sort of a column, use:
>   # -> ReverseSort "col 1"
> 
> In the next version of DGH, I'll clarify the parameters for the
> SortDataByKey command.
> 
> According to the API, this command accepts 4 parameters:
> pArrayKey -> the name of the column
> pSortType -> the type of data in the column (numeric, text, etc)
> pDirection -> the direction of the sort (ascending, descending)
> pCaseSensitive -> optional. Default is false
> 
> Now, imagine that you need sorting the data by First name AND Last
> name when one click on the "First name" header:
> 
> switch pColumn
>      case "First name"
>         put the dgColumnSortDirection[pColumn] of me into
> tSortDirection -- get the sort direction
>         SortDataByKey "First name", "text", tSortDirection, "false"
> -- First criteria : sort by first name
>         SortDataByKey "Last name", "text", tSortDirection, "false" --
> Second criteria : sort by last name
> 
>         HiliteAndStoreSortByColumn "First name" --  Tell data grid to
> hilite column
>         break
> 
> 
> DGH not removes installed scripts. DGH could not detected if users had
> updated a script and I would not take the risk to break something
> built by users.
> To remove the custom sort, just edit the script of the datagrid group
> and delete the SortDataGridColumn handler installed by DGH.
> 
> Best regards,
> 
> -Zryip TheSlug- wish you the best! 8)
> http://www.aslugontheroad.co.cc
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the Use-livecode mailing list