Sort on two sortTypes

Mike Bonner bonnmike at gmail.com
Sat Apr 8 14:17:23 EDT 2017


do 2 consecutive sorts..
First by item 3
then by item 2 datetime

Alternatively, you might be able to use a function sort to do it, but I'd
have to really think about how to accomplish it that way, and its too early.

Basically though, a sort using a function looks like the following example..
(if the lines contain an item like a hex code for example, 00 to ff, one
could use a function to convert the value to a decimal and then return the
decimal value as the numeric sort key)

sort lines of <container> ascending numeric by myFunction(each)

function myFunction pVar
   return baseconvert(item 3 of pvar,16,10)
end myFunction

This would return the decimal value of the hex and use the value as the
sort key.  Like I say, since you're using two data types for your sort, it
would require some pondering to figure out the best way to normalize the
data and generate the proper sort key, but it should be possible.  Still,
much easier to just do two consecutive sorts.


On Sat, Apr 8, 2017 at 11:45 AM, Randy Hengst via use-livecode <
use-livecode at lists.runrev.com> wrote:

> Hi All,
>
> I’m working an app to facilitate the development of student class
> schedules.
>
> Right now there are three items for each course that I’d like to sort in
> various ways: CourseName, Time, Days. The information is placed in that
> order in a field for display.
>
> It’s easy to sort on any one of the items. For example….
> sort lines of field "FIRSTyear_FALL" by item 1 of each
>
> sort lines of field "FIRSTyear_FALL" dateTime by item 2 of each
>
> sort lines of field "FIRSTyear_FALL" by item 3 of each
>
>
> But I can’t figure out how to sort first on item 3, Days and then by item
> 2, Time. My goal is sort by matching Days and then by time in ascending
> order. The courses meeting on the same day would be grouped together by
> time earliest to latest. A sort does take place, but it’s text. I’ve not
> figured out how/where to place the dateTime sortType when combining a sort
> on item 3 and item 2.
>
> Here’s the basic line of script… where does “dateTime” go? I’ve tried
> placing it in all the points of the line that I can think of….
> sort lines of field "FIRSTyear_FALL" by item 3 of each & item 2 of each
>
> The dictionary under “Sort Container” suggests what I want to do is
> possible:
> The sort container command is a stable sort. This means that if the
> sortKey for two items or lines is the same, sorting does not change their
> order, so you can do two successive sorts to create subcategories within
> the major sort categories.
> Tip: To create a custom sort order, use the each keyword to pass each line
> or item to a custom function. The value returned by the function is used as
> the sort key for that line or item. It is not currently possible to debug
> custom sort functions, and doing so could make the IDE unstable. It is
> recommended to use logging messages instead.
> The information in the “LiveCode Resource Center” doesn’t include an
> example of sorting on two criteria.
>
> Thanks in advance for any thoughts you can share.
>
> be well,
> randy
>
> Randy Hengst
> www.classroomFocusedSoftware.com
>
>
>
> _______________________________________________
> 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