Visa kundstatistik i faktura

Tråden skapades och har fått 13 svar. Det senaste inlägget skrevs .
1

Godmorgon alla 99:are!

Jag har ett litet bekymmer, det är säkert bara en tankevurpa...

Jag försöker göra en självrelaterad portal i en fakturatabell som ska visa en slags topp-10 lista över vilka kunder vi fakturerat mest under året, men hur jag än vrider och vänder på relationerna så får jag inte till det... någon som vet..

Mvh Jenny

Jag antar att du har den vanliga konstruktionen med kunder, fakturor, fakturarader, artiklar i separata tabeller? Sedan "står" du i Fakturor (layouten visar poster från Fakturor) och i en portal vill du se de kunder som har mest försäljning (som kan vara fördelat på FLERA fakturor)?

Du står alltså inte i en layout som som visar poster från Kunder, vilket ju kunde vara en annan naturligare utgångpunkt.

Du behöver då skapa två relationer, dels en mellan Fakturor och FakturorKundnummer och dels en mellan Fakturor och Fakturor som är av typen "X".

Den första relationen gör det möjligt att skapa ett beräkningsfält som gör att varje faktura "vet" den totala försäljningen för den kunden vars kundnummer som står på fakturan. Den ser så att säga alla andra fakturor från samma kund via relationen på kundnumret. Säg att den relationen du skapar döps till Fakturor_Fakturor_Kundnummer, då kan du skapa beräkningsfältet Summa försäljning denna kund med denna beräkning:

Sum(Fakturor_Fakturor_Kundnummer::Summa faktura) (om nu det fält som innehåller fakturasumman heter just Summa faktura.

Nu står alltså samma siffra på alla fakturor, dvs hur mycket denna kund har köpt för totalt.

Nästa relation som är mellan Fakturor och Fakturor på vilket fält som helst (Kundnummer tex) men är av typen "X" som betyder "alla". Jag brukar skapa ett beräkningsfält som heter Rel_X med beräkningen "X" just för detta. Denna relation kan heta Fakturor_Fakturor_Rel_X.

Man kunde tänka sig skapa en relation mellan ett fält som innehåller året 2008 i ett variabelfält och dels ett nytt fält som utifrån fakturadatum räknar ut året också. Då får du bara årets fakturor. Den relationen kan heta Fakturor_Fakturor_Årets. (Du kunde ha en "väljare" ovanför din portal för året exempelvis).

Sedan sorterar du denna relation på fältet Summa försäljning denna kund fallande och vips har du en portal där toppförsäljningen visas med en rad per kund. Du kan även ställa in på portalen att endast post 1-10 skall visas.

Lycka till!

Senast redigerat 2008-11-23 14:24

Ojdå, glömde en sak. Om det är meningen att det bara skall vara årets försäljning som varje faktura skall vara "medveten" om så måste du ha med året i relationen också. Alltså måste du skapa ett fält som utifrån fakturadatum räknar ut året och ha med det på båda sidor i relationen. Så relationen kanske skall heta Fakturor_Fakturor_Kundnummer_och_År istället för Fakturor_Fakturor_Kundnummer

Du känner till funktionen Year(Datum_Faktura) ?

Senast redigerat 2008-11-23 14:24

En sak till!

Om du finner att detta är en prestanda-dödare (att summera flera saker via relationer dessutom i flera led + sortera resultatet mm), så kan du se till att lagra data på varje post och se till att uppdatera de data det gäller med ett manus, som man kan köra med en knapp i närheten av portalen.

Du kan alltså ha numeriska fält (istf beräkningsfält) och ha ett manus som loopar igenom poster och tilldelar informationen till fältet/fälten för Summa försäljning denna kund och fältet Summa faktura och året-fältet.

Tack Ola!

Jag ska prova så får vi se om jag får ihop det.. Jag hör av mig om hur det går.

Mvh Jenny

:"> Jag har provat men det fungerar inte, eller så är jag i dålig daglig form...
Min utformning ser ut som du trodde (du är ett litet orakel... *S*)
Jag försöker skapa portalen i fakturadelen (fakturaraderna ligger i en egen tabell)

Jag har försökt flera varianter men det vill sig inte... ska det vara 2st parallella självrelationer mot fakturadelen, eller ska de relateras i serie med varandra?

Sen vart jag lite osäker på vad X-relationen skulle användas till och hur beräkningsfältet kommer in i den och vilken relation och vilka fält som ska visas i portalen... Jag är antagligen ovanligt korkad idag.. Behöver nog ingen flytväst i sommar om det fortsätter så här...:">

Tack för att du finns Ola som digital livräddare i filemakerfloden:)

Det skall vara två parallella självrelationer, blev lite förvirrande ovan när jag kom på att året måste vara med, så här ser de ut:

Faktura -> Faktura | Fält: Kundnummer & År på båda sidor

Den används för att varje faktura skall kunna summera i en beräkning hela faktura-värdet på alla fakturor med samma kundnummer och samma år. Om kund A tex har fakturor på beloppen 1000, 2000 och 3000:- så kommer det på alla de tre fakturorna står 6000:- i total försäljning denna kund detta år.

Beräkningen är Sum(Faktura_Faktura_Kundnummer_o_År::Summa faktura) och fältet heter Summa faktura detta år och denna kund

Faktura -> Faktura | Fält: År på båda sidor (sortera på Summa faktura detta år och denna kund, fallande)
Den används för att oavsett vilken faktura du står på i Fakturor, så kan du titta i portalen och se din topplista.

Hur långt kommer du i stegen ovan?

(Om det inte funkar har jag en ide om varför)...

Godmorgon...

Nej det fungerar inte.. Jag får antingen totalsumman av en kund repeterat med antalet förekomster, eller så får jag alla förekomster, beroende på vilken relation jag sätter portalen till. Det borde ju finnas nån lösning på det, nånstans i bakhuvudet gnager en lösning, men jag kommer inte enda fram...

Sorry, jag tänker nog fel, nu när du har berättat vilket fel du får förstår jag varför. Anledningen är att när man bygger som jag skrev så "ser" relationen alla poster (fakturor) som har det höga beloppet, inte bara en av dem. Det finns inget sätt att välja ut så att man bara ser en i en relation tyvärr. (I SQL har man något som heter DISTINCT som betyder att även om relationen "ser" flera poster vill man bara ha en av dem, men det finns inte i FM).

Måste du stå i fakturor när du gör detta? Du kan inte ställa dig i kunder istället? I så fall kommer det jag berättar om fungera just för att du har bara en post per kund.

Det finns även en workaround som bygger på manus och tilldela fält, då tar du helt enkelt och sorterar upp alla fakturor i kundnummer-ordning, loopar igenom dem och tilldelar den första av de med samma kundnummer totalbeloppet av försäljningen i ett numeriskt fält. Det betyder i sin tur att relationen mm ovan kommer att fungera, för sorteringen på totalt fakturavärde gör att bara de med en siffra i fältet kommer med.

Nej jag kan ta det via kunder istället, tell me, pleeease... :):D

Ok, du behöver ett variabelfält som innehåller året 2008. På det fältet får du gärna ha en värdelista, 2007, 2008, 2009 osv. År kan det heta.

I Fakturor behöver du också ett fält som innehåller året, beräkna det utifrån faktura-datum året.

Nästa sak du behöver är en relation mellan kunder och fakturor som är baserad på fältet Kundnummer och fältet År på båda sidor. Vi kan döpa den till Kunder_Fakturor_Kundnummer_o_År.

I Kunder behöver du sedan ett beräkningsfält som gör en summa av fakturavärdet, det kan heta tex Årets försäljning och beräkningen är:

Sum(Kunder_Fakturor_Kundnummer_o_År::Summa faktura) (om nu Summa faktura innehåller fakturans totalvärde eller försäljningsvärde eller vad du nu vill mäta).

Det betyder att vi redan nu kan göra en list-layout och sortera den på Årets försäljning, för att få en topplista. Vilken kan vara trevligt att skapa ett manus av och kanske exportera som PDF och maila till någon.

Men du vill ha en portal, så då behöver vi en relation till som "ser" alla kunder.

Först behöver du en Rel_X-fält i Kunder, det är ett beräkningsfält med det namnet, resultatet Text och beräkningen är "X".

Kunder_Kunder_Rel_X kan relationen heta och du markerar Rel_X-fältet på båda sidor.

När du sedan skapar portalen, så ställer du in portalen på att sortera, omvänd ordning på Årets försäljning och vips får du din topplista. Du kan även ställa in visa endast 10 poster. Så även om relationen i fråga faktiskt ser varenda kund, så kommer sorteringsordningen att göra att du får bara de kunder som har en försäljning i år.

Det funkar!!!

Du är en ängel Ola!!

Mvh Jenny

Tack, roligt att det lirade!

1
Bevaka tråden