Sławomir M.

Sławomir M. Specjalista ds.
jakości
oprogramowania,
Asseco Business S...

Temat: Sumy narastające

Cześć wszystkim
Problem polega na tym, że nie wiem jak zrobić sumowanie narastające.
Przykładowo mam grupę, która jest numerem dokumentu faktury. Faktura o wartości 10000 zł jest rozliczana kilkoma (powiedzmy trzema) dokumentami rozliczającymi KP które są w detailsach.
Czyli mamy:
F/0001/10 10 000zł KP 001/10 1000zł
KP 002/10 2000zł
KP 003/10 5000zł
Saldo na koniec jest 2000 zł i jest ok, natomiast chciałbym żeby przy każdym KP była informacja o ile zmieniła się wartość faktury do rozliczenia czyli przy KP powinny być kwoty:
KP 001/10 - 9000zł
KP 002/10 - 7000zł
KP 003/10 - 2000zł
Reasumując chce, żeby po KAŻDEJ KP była informacja ile zostało jeszcze do rozliczenia a nie sumarycznie po wszystkich KP razem.

Na chłopski rozum potrzebuję odjąć od wartości faktury, wartość pierwszego rozliczenia a potem od tej nowej wartości odjąć kolejne rozliczenie itd.

konto usunięte

Temat: Sumy narastające

nie można tego jakoś zrobić w samym zapytaniu ?
Sławomir M.

Sławomir M. Specjalista ds.
jakości
oprogramowania,
Asseco Business S...

Temat: Sumy narastające

Jakub S.:
nie można tego jakoś zrobić w samym zapytaniu ?

Za pomocą formula fields pewnie można korzystając z funkcji previous albo previousvalue ale nie bardzo wiem jak to ugryźć.

konto usunięte

Temat: Sumy narastające

Na sucho:

Wprowadzasz zmienna zaplacono (nie wyswietlasz)


//Dla pierwszego wiersza w grupie:
If previous({@numer faktury}) <> {@numer faktury} Or PreviousIsNull({@numer faktury})
{@wartosc wplacona w tym KP}
Else //Dla pozostalych
previous({@zaplacono})+ {@wartosc wplacona w tym KP}


A wyswietlasz do zaplaty:

{@wartosc faktury}-{@zaplacono}
Sławomir M.

Sławomir M. Specjalista ds.
jakości
oprogramowania,
Asseco Business S...

Temat: Sumy narastające

Dziękuję bardzo, o to chodziło.Sławomir Malinowski edytował(a) ten post dnia 12.08.10 o godzinie 15:10
Sławomir M.

Sławomir M. Specjalista ds.
jakości
oprogramowania,
Asseco Business S...

Temat: Sumy narastające

Jednak jest problem, a mianowicie zawarcie previous({@zaplacono}) w formule o nazwie @zapłacono jest niemożliwe.
"Formuła nie może bezpośrednio lub pośrednio odwoływać się do samej siebie"

konto usunięte

Temat: Sumy narastające

Heh...
Wyguglalem cos takiego:
"You need to use Global Variables"
http://forums.sdn.sap.com/thread.jspa?threadID=1277675
Sławomir M.

Sławomir M. Specjalista ds.
jakości
oprogramowania,
Asseco Business S...

Temat: Sumy narastające

Teraz super, sprawdziłem i działa, dzięki.

W między czasie znalazłem inne rozwiązanie więc piszę dla potomnych.
Dodajemy Running total fields gdzie jako pole podsumowania wybieramy pole rozliczenia KP, następnie wyznaczamy wartość przy zmianie @id_rozliczenia i resetujemy przy zmianie grupy (w tym przypadku przy zmianie faktury).
Dodajemy Formula fields i tam od wartości faktury odejmujemy nasze Running Total Fields.
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Sumy narastające

W przypadku sumowania narastające najlepiej stosować Running Totals, gdyż są one wydajniejsze w Crystalu od zmiennych. Poza tym dają duże możliwości.

Następna dyskusja:

sumy bieżące




Wyślij zaproszenie do