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