Dimensional Arrays
Jim Ault
JimAultWins at yahoo.com
Thu Mar 15 04:15:12 EDT 2007
A little refinement can get you tallys and averages for reporting:
Ken's example with the following added:
get tData
filter it with ("B444AAA,*,*,2" -- only month 2
put sumFuelKM(it, collectedValues) into collectedValues
-------------------------------------
put "B444AAA" into tRegNo
put 2 into tMonth
get tData
filter it with ( tRegNo&",*,*, "& tMonth) -- only month 2
put sumFuelKM(it, collectedValues) into collectedValues
--see the sumFuelKM function below
get line 1 of collectedValues
put sum(it) into tTotalLiters
put (tTotalLitres/the number of items init) into tAvgLitres
get line 2 of collectedValues
put sum(it) into tTotalKMs
put ( tTotalKMs/the number of items init) into tAvgKMs
get tTotalLitres && tAvgLitres && tTotalKMs && tAvgKMs
put it into line tMonth
--> repeat for each month, then
put empty into collectedValues
put 3 into tMonth
get tData
filter it with ( tRegNo&",*,*, "& tMonth) -- only month 3
put sumFuelKM(it, collectedValues) into collectedValues
--------------------
function sumFuelKM pListOfRegNos, collectedValues
repeat for each line tLine in pListOfRegNos
put comma & tLiters after line 1 of collectedValues
put comma & tKMs after line 2 of collectedValues
end repeat
return ( collectedValues)
end sumFuelKM
-----------
** caution **
get tData
filter it with "B444AAA,*,*,1*" -- month 1, 10, 11, 12
Sounds like you are headed for report building and cross-tabulation :-)
Jim Ault
Las Vegas
On 3/14/07 11:11 PM, "Ken Ray" <kray at sonsothunder.com> wrote:
> On Wed, 14 Mar 2007 17:11:36 +0200, Nic Prioleau wrote:
>
>> Hi Kev,
>>
>> Thanks for your feedback however, I managed to get something like this:
>>
>> regNo,totalFuel,totalKM,month
>> B456TRF,1000,0,2
>> B456TRF,150,0,3
>> B456TRF,0,376,3
>> B444AAA,50,0,3
>> B444AAA,340,3000,3
>> B444AAA,0,600,3
>>
>> into a variable from my selects... Could you tell me how I can
>> achieve the same result as I was trying to get before as I have now
>> eliminated the other arrays I had. It was too messy and because they
>> did not have the same keys, it was difficult to get an accurate
>> result.
>
> Basically the same thing, but it's actually easier in this case - you
> can take the variable and filter on the regNo (put an asterisk after
> the regno so there'll be a match):
>
> filter tData with "B444AAA*"
>
> And then loop through the resulting filtered lines, extract the items
> you're looking for an add them up:
>
> put 0 into tLitres
> put 0 into tKMs
> repeat for each line tLine in tData
> add (item 2 of tLine) to tLitres
> add (item 3 of tLine) to tKMs
> end repeat
>
> HTH,
>
> Ken Ray
> Sons of Thunder Software, Inc.
> Email: kray at sonsothunder.com
> Web Site: http://www.sonsothunder.com/
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
More information about the use-livecode
mailing list