2010-09-02 14 views
5

Mam raport kryształu, który ma parametr raportu, który może być wartością od 1 do 100. Jeśli wartość jest mniejsza niż 50, muszę pogrupować według identyfikatora klienta. Jeśli wartość jest większa niż 50, muszę pogrupować według OrderID.Dynamic Grouping Crystal Reports 9

Szukałem w Internecie, jak to zrobić i natknąłem się na kilka linków, które mówią, że można to zrobić za pomocą formuły. Więc wewnątrz wzoru mam:

if {ReportParameter} < 50 then 
    {TableName.CustomerID} 
else 
    {TableName.OrderID} 

stworzyłem grupę ręcznie że prawidłowo sifts pośrednictwem danych, ale kiedy przeciągnąć formułę do grupowania kategorii, to nie działa dla mnie.

Czy brakuje mi dodatkowego kroku?

+1

Kilka pytań: Kiedy mówisz, że "Utworzono grupę ręcznie" masz na myśli, że właśnie wstawiłeś grupy jako {TableName.CustomerID} i {TableName.OrderID}? A kiedy próbujesz grupować według tej formuły, co dokładnie masz na myśli mówiąc "nie działa"? – Ryan

+0

Tak, wstawiłem grupy (Wstaw> Grupa) tylko po to, aby sprawdzić, czy udało mi się zgrupować dane i działało. Dlatego usunąłem etykietę z sekcji grupy i spróbowałem zamiast niej wstawić formułę, która nie działa. – coson

+0

Nie widzę problemu z używaniem tej formuły do ​​grupowania. Nie działa, że ​​rekordy wcale się nie zgrupowują? Co wyświetla się jako nazwa grupy, gdy to robisz? – Ryan

Odpowiedz

1

OK, tutaj jest jak skończyło się w ten sposób:

I zdefiniowane formuły, ale nie odwołuje się do grupy wzoru.Więc wróciłem do nagłówka grupy> Zmień grupę> Zmień opcje grupy> zakładka Opcje

i wskazałem na nazwę mojej formuły i zadziałało.

Myślałem, że poprzez dodanie formuły do ​​nagłówka grupy CR automatycznie skojarzy moją formułę z nagłówkiem grupy. DOH !!!

0

Istnieje kilka sposobów, dla mnie do rozwiązania tego jednego ...

  1. Jeśli rozumiem swoich dalszych uwag prawidłowo, wszystko co zrobiłem było zmienić wyświetlaną nazwę grupy, to nie właściwie zmienić grupę. Próbowałem tego sam, aby się upewnić i tak mi się wydaje.

  2. Po drugie, (ktoś mnie poprawi, jeśli się mylę), nie można grupować według wzoru. Próbowałem również tego w CR2010 i nie mogłem tego zrobić. (Edit porysować, że Ryan ma rację, że się mylę.).

  3. Polecam używanie Raporty ->grupa ekspertów, aby zobaczyć co jest zgrupowane gdzie. Domyślnie powinien być również na pasku narzędzi.

mogę myśleć 2 sposoby konfigurowania raportu, które czynią to kwestia nieważna:

  1. zrobić 2 osobne raporty, 1 dla każdego widoku. Ustaw kryteria wyboru odpowiednio

LUB

  1. Dodać 1 raport Master. Skonfiguruj tutaj nagłówki grupy, strony i raportu & stopki. Zanim dane dotrą do Crystal, utwórz pole, które będzie działać jako "indeks" (być może z podaną formułą) i zgrupuj się w tym.
  2. Utwórz 2 podsekcji szczegółowych. Jeśli chcesz zmienić etykietę swoich grup, po prostu przeciągnij & upuścić pole formuły na nagłówek grupy.
  3. Wyłącza pierwszą podsekcję, jeśli {ReportParameter} < 50. Utwórz podraport tam i zgrupuj ten podraport przez {OrderID}.
  4. Wyłącza drugą podsekcję, jeśli {ReportParameter}> 50. Utwórz podraport tam i zgrupuj ten podraport przez {IDklienta}.
+1

Bardzo często grupuję formuły. Większość moich raportów zawiera jakieś elastyczne grupowanie, które pozwala użytkownikowi dokładnie określić, co Coson próbuje osiągnąć ... to jest, na podstawie grupy parametrów według tego pola, w przeciwnym razie grupuj według tego innego pola. Zrobiłem to w XI i 2008 bez żadnych problemów. – Ryan

+0

Dzięki. Zmieniłem odpowiednio odpowiedź. Nie wiem, dlaczego tak myślałem. – PowerUser

+0

Dla mojej własnej wiedzy, możesz zdefiniować "elastyczną grupę"? Nie zna tego terminu. – PowerUser

Powiązane problemy