Mina produkter
Hjälp
osbom
CHAMPION *

Visa antalet sålda artiklar föregående månad i en förfrågan

av osbom

Hej

Jag har en förfrågan där jag summerar antalet sålda artiklar föregående månad per artikel. Jag gör det genom följande "=SUM(IIF(Month([SOLine.OrderDate])=Month(Today())-1,[SOLine.OrderQty],0))". Jag trodde att det fungerade tidigare men nu vet jag att det inte fungerar längre (och blir lite osäker på om det någonsin fungerat). Den returnerar alltid 0,00 i nuläget. Som "Schemafält" har jag satt "SOLine.OrderQty".

Någon som kan se något uppenbart fel?

Vänligen

Olof

5 SVAR 5
Thomas Mostrom
PARTNER

av Thomas Mostrom

Hej, Olof

 

Tänk på att antal på ordlinjen är alltid positivt även vid returer.

Varav när du räknar ut antal måste hantera detta i formeln förutom datum och period

 

= IIf([SOLine.OrderType] = 'RC' Or [SOLine.OrderType] = 'CM' Or [SOLine.OrderType] = 'RM', -1 * [SOLine.OrderQty], [SOLine.OrderQty])

 

Om du fortfarande har problem med perioder och datum

Gör en enkel förfrågan och använd standard filter i själva förfrågan med FilterTraten

 

Thomas Moström
osbom
CHAMPION *

av osbom

Tack för input, jag ska justera förfrågan enligt det. Verkar dock inte som att det har något att göra med min ursprungliga fråga. Det resultatet blir fel ändå, jag funderar på om det kan vara något typfel vid jämförelsen typ integer vs string.

Isac Falkenberg
PARTNER

av Isac Falkenberg (Uppdaterad ‎06-01-2022 23:34 av Isac Falkenberg PARTNER )

Hej, 

Jag hade testat med =IIf ([ARInvoice.DocType]='CRM' AND Year([ARInvoice.DocDate])=Year(Today()) And Month([ARInvoice.DocDate])=Month(Today()-1),-[ARTran.Qty], IIF (Year([ARInvoice.DocDate])=Year(Today()) And Month([ARInvoice.DocDate])=Month(Today()-1),[ARTran.Qty],0))

Jag kör i faktura modulen istället för jag själv tycker det är mer intressant att se det som är fakturerat snarare än det som ligger på en order. 

Jag har grupperat på InventoryID och jag har det är väldigt viktigt att du då sätter summa i aggregeringfunktion. Annars kommder du få 0 i värde (detta är förmodligen varför du får 0 i värde). Min formel tar också hänsyn till kreditfakturor. Denna formel går också att modifiera så att du kan sätta datumintervalet själv. Då ersätter du Today() med [Namnpåparamtern]. 

Testa gärna om det fungerar för dig. 

_______________
Vänliga hälsningar,
Isac Falkenberg
Teamleader
Traventus AB
Isac Falkenberg
PARTNER

Dock kom jag på nu att denna  verkar vissa dagens månad och inte föregående månad. Eftersom year variablen är med kan det ställa till det vid årsbryt om man nu vill se decembers försäljning... Men kanske går att modifiera lite. 

_______________
Vänliga hälsningar,
Isac Falkenberg
Teamleader
Traventus AB
Isac Falkenberg
PARTNER

av Isac Falkenberg (Uppdaterad ‎07-01-2022 08:05 av Isac Falkenberg PARTNER )

Hej igen, 

Testade lite ytterligare och det verkar som att denna fungerar. 

=IIf ([ARInvoice.DocType]='CRM' AND Year([ARInvoice.DocDate])=Year([AsOfToday]) And Month([ARInvoice.DocDate])=Month([AsOfToday]),-[ARTran.Qty], IIF (Year([ARInvoice.DocDate])=Year([AsOfToday]) And Month([ARInvoice.DocDate])=Month([AsOfToday]),[ARTran.Qty],0))

Viktigt här är att du gör en parameter som heter [AsOfToday]. Sedan gör du ett villkor på att ARInvoice.DocDateska vara mindre eller lika med [AsOfToday]. Viktigt här att också gruppera och sätta summa i aggregeringfunktion på raden med formlen. 

Du kan sätta den som standard = idag. Men du kan med denna ändra till vilken period du vill se. Om du nu vill se sista december så ändrar du bara parametern till det. 

_______________
Vänliga hälsningar,
Isac Falkenberg
Teamleader
Traventus AB

Få uppdateringar på det här inlägget i din inkorg

Klicka på de tre prickarna till höger i inlägget/artikeln och välj Prenumerera.

Läs mer om prenumeration här