Oskar Oleszkiewicz

Oskar Oleszkiewicz Programista z pasją

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Witam,

Zbudowałem sobie "dynamiczną" tablice, która przechowuje jako elementy nazwy miesięcy. Na raporcie maja być wyświetlane wszystkie miesiące począwszy od stycznia aż do miesiąca w którym uruchomiony został raport. Miesiące te maja być wyświetlane jako kolumny macierzy. Nie umiem zmusić macierzy aby wyświetliła każdy element tablicy jako osobną kolumnę.
Marcin S.

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

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Jeśli w danych wejściowych masz kolumnę typu data to wystarczy pogrupować po miesiącach.
Nie musisz tworzyć dynamicznych tablic z nazwami miesięcy. Poza tym, aby zamienić liczbę na nazwę miesiąca wystarczy użyć funkcji MonthName.
Oskar Oleszkiewicz

Oskar Oleszkiewicz Programista z pasją

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Witam,

Dziękuję za poradę ale potrzebuje wyświetlić dane w kolumnach dokładnie w ten sposób:


Obrazek


Nie ma tabelki w bazie danych, gdzie by były pogrupowane te wartości, dokładnie można przedstawić problem w ten sposób:

Raport dla sprzedaży, pogrupowane po miastach, następnie po nazwie nazwijmy to "projektu" w danym mieście i następnie po typie produktu, to są wiersze i nie mam problemu żeby je wyświetlić, następnie jest kolumna "SUMA" gdzie jest suma dla całego "projektu", ale mam także wyświetlić sume wszystkich sprzedanych produktów (pogrupowane jak wcześniej napisałem) dla poprzedniego roku (np wprowadzamy jako warunek rok 2012 a w kolumnie nr 3 wyświetla wszystko do końca 2011 do np. 31.12.2011) następne kolumny to dynamicznie wszystkie miesiące od stycznia danego roku do tego miesiąca w którym jest wyświetlany raport, i na końcu dwie statyczne kolumny w jednej wartość samej sprzedaży ogólem dla wszytskich lat od kiedy istnieje projekt, i ostatnia kolumna wszystkie jeszcze dostepne produkty (maja statusy).

Wiec problem w tym że nie wiem jak zmusisc CR do wyświetlania tych kolumn?!
Może jakieś sugestie???

LINK DO PRZYKŁADU: http://postimage.org/image/thla2v62d/

Z góry dziękuje
OskarOskar Oleszkiewicz edytował(a) ten post dnia 08.10.12 o godzinie 09:57
Marcin S.

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

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Czy w tabeli z danymi masz kolumnę z datą sprzedaży?
Oskar Oleszkiewicz

Oskar Oleszkiewicz Programista z pasją

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Tak mam datę sprzedaży. Dokładnie wygląda to tak: Projekt posiada produkty i posiada kontrakty, na kontrakcie są produkty i daty sprzedaży. Z kontraktów pobieram daty sprzedaży danych produktów.
Oskar Oleszkiewicz

Oskar Oleszkiewicz Programista z pasją

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Tak naprawdę to Total dla projektu (kolumna statyczna 1) mogę pominąć bo mi z automatu posumuje jako SUMA,a le reszta to jakaś masakra :D
Marcin S.

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

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

W takim razie:
1. Do wierszy wstaw: Miasto, Nazwa, Rodzaj produktu
2. Do kolumn wstaw datę sprzedaży i pogrupuj wg miesiąca (jeśli pole jest typu datetime to Crystal wyświetli taką opcję)

Crystal domyślnie stworzy sumy pośrednie. Sumy pośrednie, których nie potrzebujesz możesz ukryć za pomocą opcji suppress subtotal na zakładce Customise Cross-tab.

Jeśli chcesz, aby tabelka pokazywała tylko dane za rok poprzedni to utwórz parametr rok i określ warunek filtrowania (Report | Record Selection Formula) na podstawie daty sprzedaży:


year({faktury.data_sprzedazy}) < {?Rok}
Oskar Oleszkiewicz

Oskar Oleszkiewicz Programista z pasją

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Dziękuję za podpowiedzi, próbuje wdrożyć je tak aby w końcu ten raport ruszył :)
Oskar Oleszkiewicz

Oskar Oleszkiewicz Programista z pasją

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

OK, udało mi się wyświetlić wszystkie miesiące z danego roku wg. parametru, i formuły wyboru:

Year({A_Contract.Contract Create Date}) = Year({@doDaty})


To co udało mi sie uzyskać:

- wyświetla kolumny jako miesiące pogrupowane po roku (parametr) wyświetla: miesiąc + rok
- SUMA - odpowiada za Całkowitą wartość projektu

No ale jest jedno "ALE":

-Muszę w jednej z kolumn podsumować wszystkie pozostałe faktury wg daty do poprzedniego roku... czyli jak wprowadzę "2012" to rok 2012 rozbija mi na miesiące natomiast do 31. grudnia 2011 sumuje wszystkie wartości i wyświetla w jednej kolumnie
- Potrzebuje dodać jeszcze trzy kolumny statyczne na końcu macierzy gdzie będą takie podsumowania:
-> TOTAL Dla danego roku wybranego jako parametr (różnica miedzy SUMA całkowitą jest taka że sumuje tylko dany rok)
-> TOTAL Sold
-> TOTAL Available

No ogólnie ten raport jest strasznie zakręcony, może dodać kilka macierzy kilka elementów poprzesłaniać i jakoś to w jeden ciąg połączyć? Tylko z tego co zauwazyłem jak macierz rośnie to nakłada sie na nastepna w jednej lini poziomej(?) chyba ze jest jakas opcja aby rosła a nastepnie druga "rosnie".
Marcin S.

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

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Jeśli chcesz porównać ze sobą 2 lata (rok bieżący i poprzedni) musisz dodatkowo pogrupować po roku. Dodaj do kolumn pole data sprzedaży i wybierz opcję grupowanie na year.

Pamiętaj, aby w filtrowaniu poszerzyć filtr tak, aby pobierał dane na rok bieżący i poprzedni.
Oskar Oleszkiewicz

Oskar Oleszkiewicz Programista z pasją

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Ok wszystko fajnie, na razie idzie widzę w dobrym kierunku :):

grupowanie:
- ContractDate >> Po latach
- Contractdate >> Po miesiacach

Do miesięcy dodałem formułę żeby zamieniało na nazwę miesięcy (wyświetlanie) natomiast w latach chce dodać żeby Sumowało wszystkie daty poniżej wybranego roku i nie rozbijało ich na poszczególne miesiące, z tym że nie mogę przekazać dynamicznie tego parametru?

W drzewie pól raportu nie wyświetla mi ani parametru ani formuły która chce użyć do wyliczenia:
 rokWczesniej := wprowadzony parametr (Year) - 1 (Year); // Cos tego typu, to tylko przykład!
Oskar Oleszkiewicz

Oskar Oleszkiewicz Programista z pasją

Temat: Przekazanie tablicy stringów jako listy nazw kolumn w...

Udało mi się osiągnąć 99% wszystkich założeń, pogrupowałem po roku, i po miesiącach, problem został tylko z opcja pokazywania samych sum dla lat niższych (-1) od podanego parametru

Następna dyskusja:

Zalinkowane pole jako parametr




Wyślij zaproszenie do