Författare Ämne: Summering över lista  (läst 8843 gånger)

0 medlemmar och 1 gäst tittar på detta ämne.

Utloggad Carsten van Dyhr

  • Administratör
  • Flitig postare
  • Antal inlägg: 360
    • Visa profil
    • www.cdsoft.se
Summering över lista
« skrivet: 13 december, 2011, 18:19 »
Jag sitter och pillar med en funktion som skall skapa summeringar över en list funktion. Jag kan inte komma på något bra sätt att göra en funktion för detta, har ni något förslag?

• Jag har följande poster i en tabell med två fält, namn och belopp
Kalle Kula 12
Svante Tornefjun 99
Kalle Kula 12
Svante Tornefjun 1
Odd Böjelse 3

• Jag vill att funktionen skall returnera
Kalle Kula 24
Svante Tornefjun 100
Odd Böjelse 3

Med andra ord vill jag att funktionen skall summera beloppen för respektive person men jag vill bara ha namnet med en gång.

Jag har först försökt bygga en rekursiv som skapar en array med båda fälten och sedan summerar den. Jag har också kolla runt på nätet efter custom functions som skulle lösa problemet men utan resultat.  

Carsten Dyhr | CD Soft AB | www.cdsoft.se | 0706-15 08 90

Utloggad David Wikström

  • Mycket flitig postare
  • Antal inlägg: 668
    • Visa profil
    • CamelCase data - FileMaker developers
SV: Summering över lista
« Svar #1 skrivet: 13 december, 2011, 18:57 »
Exakt hur ska funktionens resultat returneras? I två fält/beräknade fält? Som en lista med separator i en variabel eller liknande? Eller bara visas ex.vis. i en portal?
FileMaker 17/16/15/14/13/12/11/10/9/8 Certified Developer | FBA Member

Utloggad Carsten van Dyhr

  • Administratör
  • Flitig postare
  • Antal inlägg: 360
    • Visa profil
    • www.cdsoft.se
SV: Summering över lista
« Svar #2 skrivet: 13 december, 2011, 19:15 »
Det kvittar egentligen men det optimala vore om man fick resultatet i varsin array eller i näst bästa fall så här så kan jag ju själv dela upp det.



|Kalle Kula|24|
|Svante Tornefjun|100|
|Odd Böjelse|3|
Carsten Dyhr | CD Soft AB | www.cdsoft.se | 0706-15 08 90

Utloggad David Wikström

  • Mycket flitig postare
  • Antal inlägg: 668
    • Visa profil
    • CamelCase data - FileMaker developers
SV: Summering över lista
« Svar #3 skrivet: 13 december, 2011, 22:03 »
Du kan göra detta mha CustomList. Ska inte vara särskilt svårt, fast jag har inget färdigt på lager... ;-)
FileMaker 17/16/15/14/13/12/11/10/9/8 Certified Developer | FBA Member

Utloggad Carsten van Dyhr

  • Administratör
  • Flitig postare
  • Antal inlägg: 360
    • Visa profil
    • www.cdsoft.se
SV: Summering över lista
« Svar #4 skrivet: 13 december, 2011, 22:15 »
Menar du Brian Dunnings Custom Function, den har jag annars tittat på men jag skall ge den en chans till.
Tack
Carsten Dyhr | CD Soft AB | www.cdsoft.se | 0706-15 08 90

Utloggad majo

  • Nykomling
  • Antal inlägg: 55
    • Visa profil
SV: Summering över lista
« Svar #5 skrivet: 14 december, 2011, 00:05 »
Jag knackade ihop en lösning som fungerar. Jag visste inte hur du vill använda utfallet, men resultatet ligger i två arrayer, "$namnarray[$counter]" och "$summor[$counter]"
Eftersom jag bara är amatör så är jag alltid osäker på om mina lösningar är vettiga så om den inte duger får du gärna förklara varför. Det är lätt att tappa självförtroendet om man bara möts med tystnad...  :-\

Bifogar fil.
« Senast ändrad: 14 december, 2011, 00:09 av majo »

Utloggad majo

  • Nykomling
  • Antal inlägg: 55
    • Visa profil
SV: Summering över lista
« Svar #6 skrivet: 14 december, 2011, 00:46 »
Jag knackade ihop en lösning som fungerar. Jag visste inte hur du vill använda utfallet, men resultatet ligger i två arrayer, "$namnarray[$counter]" och "$summor[$counter]"
Bifogar fil.

Jag såg nu att jag lämnade kvar lite slagg i manuset. I första raden kan man naturligtvis tilldela värdet från ValueCount direkt till $counter och sedan skippa andra raden i manuset.

Utloggad Carsten van Dyhr

  • Administratör
  • Flitig postare
  • Antal inlägg: 360
    • Visa profil
    • www.cdsoft.se
SV: Summering över lista
« Svar #7 skrivet: 14 december, 2011, 07:16 »
Tack Majo!
Det var inte riktigt det jag for efter. Jag vill få fram resultatet i en beräkning presenterat som en multidimensionell array eller som en vanlig array sepererat med exempelvis |, och inte genom att loopa posterna, det kommer att ta på tok för lång tid i mitt fall.

I övrigt så verkar ditt hack fungera, man får fram en massa variabler med namn och nummer och i många fall är det ju precis vad man vill ha dock inte i detta.

Jag kunde ju varit en smula tydligare i min formulering också :)

Tack för din insats Majo
Carsten Dyhr | CD Soft AB | www.cdsoft.se | 0706-15 08 90

Utloggad David Wikström

  • Mycket flitig postare
  • Antal inlägg: 668
    • Visa profil
    • CamelCase data - FileMaker developers
SV: Summering över lista
« Svar #8 skrivet: 14 december, 2011, 07:40 »
Menar du Brian Dunnings Custom Function, den har jag annars tittat på men jag skall ge den en chans till.

Nej jag menar Agnès Barouh's custom function CustomList - som du för övrigt kan hitta bl.a. på Dunnings hemsida (http://www.briandunning.com/cf/868), eller på Agnès egen hemsida (http://www.tictac.fr/CoinFileMaker/PageCustomList.html).

Principen är genial men enkel - istället för att loopa eller använda "riktig" rekursion skapar man en lista genom att mha Evaluate utvärdera en formel per värde. Detta blir extremt portabelt - du kan skapa din array med en enda custom function (jag hade i detta fall skapat en egen custom function för din speciella använding och inn i den använt CustomList). Dessutom är det snabbare än rekursion och fungerar för upp till 250.000 loopar med FileMaker Pro (mot 10.000 eller 50.000 för en rekursiv anpassad funktion). 
Perfekt för ditt fall - men det tog mig själv ett tag tills jag fick in sättet att programmera med CustomList, så ge inte upp om du inte får till det direkt.

Är just nu egentligen på semester i San Diego, annars hade jag gärna knåpat ihop detta till dig... Kanske kan jag göra det på flyget till Vancouver på torsdag, om du kan vänta tills dess....
FileMaker 17/16/15/14/13/12/11/10/9/8 Certified Developer | FBA Member

Utloggad Carsten van Dyhr

  • Administratör
  • Flitig postare
  • Antal inlägg: 360
    • Visa profil
    • www.cdsoft.se
SV: Summering över lista
« Svar #9 skrivet: 14 december, 2011, 07:46 »
Tack David du är en godhjärtad människa :)
Min franska är inte vad den borde vara så jag hade lite problem att läsa hennes hemsida men jag lyckades till sist hitta ett exempel som jag nog skall kunna använda.
Jag återkommer när problemet är löst, för idag skall jag vara ledig och kela med min gamla mini cooper.


Au revoir!
« Senast ändrad: 14 december, 2011, 07:50 av Carsten Dyhr »
Carsten Dyhr | CD Soft AB | www.cdsoft.se | 0706-15 08 90

Utloggad David Wikström

  • Mycket flitig postare
  • Antal inlägg: 668
    • Visa profil
    • CamelCase data - FileMaker developers
SV: Summering över lista
« Svar #10 skrivet: 14 december, 2011, 17:17 »
D'accord - bonne chance!
FileMaker 17/16/15/14/13/12/11/10/9/8 Certified Developer | FBA Member

Utloggad Carsten van Dyhr

  • Administratör
  • Flitig postare
  • Antal inlägg: 360
    • Visa profil
    • www.cdsoft.se
SV: Summering över lista
« Svar #11 skrivet: 14 december, 2011, 17:23 »
Merci mon ami
Carsten Dyhr | CD Soft AB | www.cdsoft.se | 0706-15 08 90

Utloggad David Wikström

  • Mycket flitig postare
  • Antal inlägg: 668
    • Visa profil
    • CamelCase data - FileMaker developers
SV: Summering över lista
« Svar #12 skrivet: 16 december, 2011, 05:27 »
Bifogar ett sätt att lösa detta. Inte det elegantaste, men bättre än så får jag inte till det på flygplats/flygplan... Verkar åtminstone fungera.
FileMaker 17/16/15/14/13/12/11/10/9/8 Certified Developer | FBA Member

Utloggad Carsten van Dyhr

  • Administratör
  • Flitig postare
  • Antal inlägg: 360
    • Visa profil
    • www.cdsoft.se
SV: Summering över lista
« Svar #13 skrivet: 16 december, 2011, 08:10 »
Jag är tokig med dig, David!
Jag har faktiskt använt en helt annan lösning, jag fick inte rätt på hennes custom function.
Jag gjorde lite test på hur långt tid det tar att loopa igenom en portal med 1000 rader i förhållande till att gå till relaterade och loopa dem där, det visade sig att det tar ungefär lika lång tid om man slår bort skärmuppdatering i scriptet, men fördelen med att loopa på postnivå är att man kan ändra sorteringsorningen utan att användaren ser det vilket gör att man kan sortera arryen i vilken ordning man vil.
Vi gjorde alltså just så som vi egentligen inte ville, men det visade sig bli ganska snabbt ändå. 1 sekund på en slö mac mini, det är helt acceptabel i detta fall.
By the way! så verkar beräkningen bli tokslö om man har "många" poster, testade att skapa 200 och då låste den sig för att inte tala om vad som hände med 20.000 Jag kommer utan tvekan att ha nytta av din beräkning ändå eftersom jag ofta tycker jag befinner mig i situationen att jag vill ha en dimension till i en beräkning.

Tack för din insats David och också du Majo!
« Senast ändrad: 16 december, 2011, 08:16 av Carsten Dyhr »
Carsten Dyhr | CD Soft AB | www.cdsoft.se | 0706-15 08 90

Utloggad David Wikström

  • Mycket flitig postare
  • Antal inlägg: 668
    • Visa profil
    • CamelCase data - FileMaker developers
SV: Summering över lista
« Svar #14 skrivet: 16 december, 2011, 17:42 »
Min beräkning kan optimiseras en hel del - jag tyckte mest det var kul att se att detta går att göra utan manus. Jag väljer för övrigt själv i 90-95% av fallen att använda manus - enklare att programmera och betydligt mer flexibelt.

Skulle vara kul att testa hur snabb en beräkning kan göras, och om den ändå blir långsammare än ett manus...
FileMaker 17/16/15/14/13/12/11/10/9/8 Certified Developer | FBA Member