Sorting Columns
Hakan at Exformedia.se
Hakan at Exformedia.se
Wed Mar 4 05:56:51 EST 2015
There is a lession on how to format your display here:
http://lessons.runrev.com/m/datagrid/l/7327-how-do-i-override-the-default-behavior-for-rendering-data-to-a-cell
In short you need to override the default behavior of the datagrid column:
1. Create a new button and select it
2. Copy the default behavior script to your button via:
set the script of the selectedobject to the script of button
"Default Column" of stack "revDataGridLibrary"
3. Tell the datagrid to use your behavior instead via:
set the dgProps["default column behavior"] of group "Your data grid"
to the long id of the selectedObject
4. Edit the script of your button
What you need look for is the fillInData function
Let say you want to display your big sales number as $ 1.000.000 (but
still have the value saved as 1000000) you can change fillInData to
on FillInData pData
set the text of me to formatNumber(pData, ",", ".", "$ ")
end FillInData
Then you only need to add the formatNumber function...
function formatNumber pNum, pSeparator, pCommaSign, pPrefix, pPostfix
local tIsNegative, tRest, tCommaPos
if pNum < 0 then
put abs(pNum) into pNum
put true into tIsNegative
end if
put offset(pCommaSign, pNum) into tCommaPos
if tCommaPos > 0 then
put char tCommaPos to -1 of pNum into tRest
end if
put char 1 to tCommaPos -1 of pNum into pNum
repeat with i = length(pNum)-3 to 3 step -3
put pSeparator before char i+1 of pNum
end repeat
if tIsNegative then
return pPrefix & "-" & pNum & tRest & pPostfix
else
return pPrefix & pNum & tRest & pPostfix
end if
end formatNumber
Finally if you just want to target a specific column for your formatting
you can use the dgColumn property (or dgColumnNumber) to ensure you only
format specific columns
Let's say you have a column named "Value" that you would like to format
but no other columns you can change fillInData to:
on FillInData pData
put the dgColumn of me into tCol
if tCol is "Value" then
set the text of me to formatNumber(pData, " ", ".", "$ ")
else
set the text of me to pData
end if
end FillInData
Happy Coding!
:-Håkan
> Bob Sneidar <mailto:bobsneidar at iotecdigital.com>
> 4 mars 2015 01:13
> dgData returns an array. dgText returns delimited text. if the commas
> are thousand delimiters, then strip them. I’ve often thought of trying
> to implement a “displayAs functionality for Datagrids, like Excel
> does, where the value is one thing but the display is another. Your
> situation really underscores the need for this.
>
> Bob S
>
>
> On Mar 3, 2015, at 06:18 , dunbarx at aol.com<mailto:dunbarx at aol.com> wrote:
>
> An easy way is to extract the full dataset, perhaps with the "dgData".
> This will give you a tab and return delimited list. Then you might
> sort by a function:
>
> _______________________________________________
> 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
> dunbarx at aol.com <mailto:dunbarx at aol.com>
> 3 mars 2015 15:18
> An easy way is to extract the full dataset, perhaps with the "dgData".
> This will give you a tab and return delimited list. Then you might
> sort by a function:
>
>
> sort yourData numeric by goodNumber(item columnOfInterest of each)
>
>
> where:
>
>
> function goodNumber var
> repeat for each char tChar in var
> if var is in "0123456789" then put tChar after temp
> end repeat
> return temp
> end goodNumber
>
>
> Craig Newman
>
>
>
> -----Original Message-----
> From: JB <sundown at pacifier.com>
> To: How to use LiveCode <use-livecode at lists.runrev.com>
> Sent: Tue, Mar 3, 2015 6:33 am
> Subject: Sorting Columns
>
>
> I have a data grid and one of the columns
> has numbers with commas included. If I
> use the property inspector and select the
> header column I can choose sort by text
> or numeric. Due to the commas neither
> of the sort types gives me a correct sort.
>
> Do I need to make another array and strip
> the commas and then use that sort with
> columns from the original array? What is
> the best way to sort numeric columns with
> commas included in the numbers?
>
> John Balgenort
>
> _______________________________________________
> 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
>
>
> _______________________________________________
> 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
>
> JB <mailto:sundown at pacifier.com>
> 3 mars 2015 12:30
> I have a data grid and one of the columns
> has numbers with commas included. If I
> use the property inspector and select the
> header column I can choose sort by text
> or numeric. Due to the commas neither
> of the sort types gives me a correct sort.
>
> Do I need to make another array and strip
> the commas and then use that sort with
> columns from the original array? What is
> the best way to sort numeric columns with
> commas included in the numbers?
>
> John Balgenort
>
> _______________________________________________
> 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