Przemysław Janczewski

Przemysław Janczewski Administrator
systemu IT

Temat: sumowanie sumowania :)

Witam, problem pojawia się cyklicznie ale tym razem chyba nie da się tego obejść i trzeba to rozwiązać:
w mam podsumowanie w dwóch grupach:
powiedzmy
Grupa 1 nadrzędna Kolory wszystkie
Grupa 2 podrzędna kolory poszczególne
W grupie 2 mam sytuacje taką że jedną wartością jest suma dwóch pól (suma w grupie) * max cena występująca w danej grupie - daje nam to ogólną wartość
w grupie 1 natomiast chciałbym zsumować wszystkie wartości z grupy 2 ale nie wiem jak...
Ani ze składaczka sumy ani za pomocą sum (dla grupy) a ni RTF.
Jakieś sugestie?
Andrzej Curyło

Andrzej Curyło konsultant,
freelancer

Temat: sumowanie sumowania :)

Nie wiem czy dobrze rozumiem ale może tak.
Tworzysz trzy pola FormulaFields;

1 - licznik1_zeruj
whileprintingrecords;
numbervar nSuma1 := 0
to pole umieszczasz w nagłówku grupy

2 - licznik1_zwieksz
whileprintingrecords;
numbervar nSuma1;
nSuma1 := nSuma1 + {@podSuma}
to pole umieszczasz w stopce grupy podrzędnej

3 - licznik1_wyswietl
whileprintingrecords;
numbervar nSuma1;
nSuma1
to pole umieszczasz w stopce grupy
Marcin S.

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

Temat: sumowanie sumowania :)

Ja z kolei zaproponowałbym zastosowanie zwykłych formuł zamiast zmiennych:


if {warunek} then {wartosc} else 0


Następnie wstawiamy zwykłą sumę tych wartości. To tylko przykład.

Wstaw przykład twojego problemu to podam dokładniejsze rozwiązanie.

Formuły bez zmiennych mają tą zaletę, że w razie czego sumy tych formuł można przenieść do nagłówka raportu.
Przemysław Janczewski

Przemysław Janczewski Administrator
systemu IT

Temat: sumowanie sumowania :)

Dziękuję za podpowiedzi - co prawda natchnęło mnie i problem rozwiązałem wcześniej robiąc zapytanie w sql i jakoś poszło ale na pewno problem powróci wiec skorzystam z propozycji.

Temat: sumowanie sumowania :)

Dzień dobry,

Mam podobny problem z sumowaniem. Robię raport z inwentury. Każda pozycja inwentaryzacyjna ma wyciągniętą z podraportu cenę jednostkową za pomocą

Shared NumberVar cena;


ta następnie przeliczana jest za pomocą formuły wartość, gdzie obliczone są odchyłki (dodatnie lub ujemne) dla danej pozycji

Shared NumberVar cena;

((cena * ({ilość_rzeczywista}-{ilość_planowana})))/{jednostka_zakupowa}


W zależności od tego czy powyższa wartość jest dodatnia, czy ujemna chcę sumować w stopce odchyłkę dla wartości dodatnich (wartość +) i wartości ujemnych (wszystkie pozycje w wartością -)

Storzyłem dwie formuły, które upraszczając wyglądają tak
 Shared NumberVar cena;

if ((cena*({Ilość_rzeczywista}-{Ilość_planowana})))/{Jedostka_zakupowa} < 0 then //(oraz wariant odwrotny >0)
((cena*({Ilość_rzeczywista}-{Ilość_planowana})))/{Jedostka_zakupowa}
else
0;


Jednak nie mogę zrobić ich sumowania. Po prostu program nie podopowiada mi pól podsumowania dla tych wartości. Jeśli usunę z nich zmienną "cena", to już mogę sumować, ale wtedy mam tylko podsumowanie ilościowe, a nie wartościowe.

Jak czytam we wcześniejszych postach: "Formuły bez zmiennych mają tą zaletę, że w razie czego sumy tych formuł można przenieść do nagłówka raportu." .... jak to rozgryźć w przypadku formuł ze zmienną?

Z góry dziękuję za porady.
Krzysztof Wojtal

Krzysztof Wojtal Specjalista ds
systemu ERP, PL/SQL,
Crystal rep., Power
B...

Temat: sumowanie sumowania :)

Cześć Bartosz,

Dodaj do formuły drugą zmienną typu SHARED np. Suma_Cena:=Suma_Cena + to co obliczasz w formule. Następnie w miejscu gdzie chcesz pokazać sumę stwórz sobie drugą formułę np. Suma_Cena i ją tam wstaw. W tej formule zainicjuj tą zmienną:

Shared NumberVar Suma_Cena;

Suma_Cena;

Powinno zadziałać.

Temat: sumowanie sumowania :)

Cześć Krzysztof,

dziękuję za wskazówkę. Wprawdzie musiałem te formuły dodatkowo ukryć w szczegółach raportu i trochę się nagimnastykować, aby te statystyki zadziałały, ale wszystko działa jak należy. Wielkie dzięki.

Swoją drogą, dlaczego nie można sumować po polach ze zmiennymi? Byłoby to o niebo łatwiejsze niż przekazywanie wartości ze zmiennej do zmiennej....

Jeszcze raz dzięki.
Krzysztof Wojtal

Krzysztof Wojtal Specjalista ds
systemu ERP, PL/SQL,
Crystal rep., Power
B...

Temat: sumowanie sumowania :)

Cześć Bartosz,

Jeżeli w formule użyjesz badania wyniku pola poprzez Pervious lub Next np:

if Previous(pole_z_bazy) <> pole_z_bazy then ....

to takiej formuły nie wrzucisz jako sumy.

Czasem miałem też takie przypadki, że zmienna typu Global nie działała i wystarczyło zmienić jej typ na Shared i zaczęło działać wszystko jak należy - dodam, że zmienna nie była nigdzie przekazywana do innej formuły.

Pozdrawiam.
Marcin S.

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

Temat: sumowanie sumowania :)

Generalnie w przypadku sumowania warunkowego proponuję zastosować sumy bieżące (Running Total Fields) zamiast stosowania zmiennych, które są w trudniejsze w analizie i wolniejsze.
W przypadku Bartka występuje jeszcze podraport Każda pozycja inwentaryzacyjna ma wyciągniętą z podraportu cenę jednostkową za pomocą (...) co komplikuje sytuację.

Ale tutaj zamiast podraportu, który zapewne wyciąga tylko jedną wartość(?) proponuję zastosować SQL Expression. Dzięki temu raport będzie szybciej przetwarzany.

Pozdrawiam,

Następna dyskusja:

Sumowanie po stronach




Wyślij zaproszenie do