Karol Jakubiak

Karol Jakubiak Kierownik działu IT,
SPA

Temat: Przekazanie wartości do podraportu - I co dalej?

Pozdrawiam !!!

Chciałbym przedstawić problem z którym nie mogę sobie poradzić. Pewnie dla większości koleżanek i kolegów jest banalna dlatego liczę, że otrzymam wiele odpowiedzi. :-)

Stworzyłem raport, w którym mam listę klientów. Klienci identyfikowani są po polu "CardCode". W raporcie głównym tworzę formułę w której deklaruję zmienną i przekazuję ją do podraportu.

Shared StringVar KODKLIENTA;
True

Funkcję umieszczam w nagłówku raportu głównrego. Zmienna jest inicjowana.
W części "Szczegóły" umieszczem funkcje, która przypisuje wartość zmiennej i wyświetla ją.

Shared StringVar KODKLIENTA;
KODKLIENTA := {OCRD.CardCode};
KODKLIENTA;

W raporcie głównym funkcja wy świetla prawidłową wartość. (Czyli kod klienta)

W podraporcie mam funkcję, która również wyświetla wartość kodu klienta. Po umieszczeniu funkcji na podraporcie wyświetla się jego prawidłowy kod.

Shared StringVar KODKLIENTA;
KODKLIENTA;

Moje pytanie dotyczy wykorzystania tej zmiennej w podraporcie. Chciałbym przefiltrować dane z podraportu tak aby wyświetlał tylko wiersze dotyczące danego klienta. (którego kod przekazałem do podraportu).

Za pośrednictwem "Expert w wybieraniu rekordów" próbowałem porównać kod klienta z podraportu z przekazaną do podraportu zmienną:

{OINV.CardCode} = {@CardCode}

Niestety otrzymuję komunikat:

"Nie można użyć tej formuły ponieważ wymaga ona późniejszego sprawdzenia"

Gdzie popełniam błąd? Czy w ogóle mój tok rozumowania jest poprawny? Może powinienem podejść w zupełnie inny sposób do tego problemu. Od razu uprzedzę, że wykonanie zestawienia w sposób bez podraportu odpada gdyż w raporcie głównym powinien pojawić się jeszcze inny podraport z dodatkowymi informacjami.

Z góry serdecznie dziękuję za wszelką pomoc.
Pozdrawiam
Karol
Krzysztof Wojtal

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

Temat: Przekazanie wartości do podraportu - I co dalej?

Cześć,

W pierwszej kolejności zrobiłbym w podraporcie parametr i w "Expert w wybieraniu rekordów" ustaw formułę:

baza.KodKlienta = {?Param_KodKlienta}

W raporcie głównym formułę połącz z parametrem z podraportu. Powinno zadziałać prawidłowo.

Problem z wywołaniem formuły w "Expert w wybieraniu rekordów" polega na tym, że używasz zmiennych SHARED , które mogą się zmieniać w dowolnym momencie i dla tego masz ten komunikat.

Pozdrawiam
Krzysiek
Marcin S.

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

Temat: Przekazanie wartości do podraportu - I co dalej?

Cześć,
Nie stosuj zmiennych do przekazywania danych do podraportu. Do tego służy inna wygodniejsza opcja:

1. Zaznacz podraport i pod prawym przyciskiem myszki wybierz opcję Change subreports links
2. Wybierz pole OCRD.CardCode z głównego raportu
3. Wybierz pole OINV.CardCode z podraportu

Obrazek


Gotowe.

Crystal Reports automatycznie na podstawie powyższych czynności utworzy parametr ?Pm-CardCode w podraporcie i wstawi formułę filtrującą (Selection Formula).

Zmienne shared przydają się wówczas gdybyś chciał przekazać dane w odwrotnym kierunku to znaczy z podraportu do raportu głównego.
Karol Jakubiak

Karol Jakubiak Kierownik działu IT,
SPA

Temat: Przekazanie wartości do podraportu - I co dalej?

Pozdrawiam !!!

Przepraszam za opieszałość ale rozumiecie natłok obowiązków. :-)
Wszystko działa i jest OK.
Dziękuję bardzo za pomoc. Jakie teraz to się wydaje proste. :-)
Jeszcze raz serdeczne dzięki.

Pozdrawiam
Karol

Następna dyskusja:

przekazanie zmiennej do pod...




Wyślij zaproszenie do