Przemysław Janczewski

Przemysław Janczewski Administrator
systemu IT

Temat: crosstab

Czy w "cross-ach" jest możliwość dodania do wyników które aktualizują się na bieżąco stałych danych.
Przykład - mamy raport sprzedaży gdzie co miesiąc generuja się wartości - mamy też okres czasu sprzed nowej bazy danych i posiadamy dane archiwalne które możnabyłoby dodac na "stałe"
Jakieś sugestie.
Marcin S.

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

Temat: crosstab

Cross-tab od wersji CR 2008 posiada możliwość wstawiania własnych kolumn i wierszy, za pomocą tzw. Calculated Member

Pod prawym przyciskiem na cross-tab (lewy, górny róg) jest opcja Advanced Calculations | Calculated Member.

Łatwiej z niej skorzystać gdy na preview zaznaczymy wiersz lub kolumnę i wybierzemy opcję Calculated Member | Insert Child lub Calculated Member | Insert Column

Następnie za pomocą formuł możemy określać jaka wartość będzie wyświetlana i czy będzie wyświetlana. W formułach można korzystać z funkcji do obsługi cross-taba z grupy funkcji Grid Value.

Niestety ten mechanizm na początku nie jest łatwy w obsłudze, ale po niewielkiej wprawie możemy dostosować cross-tab do własnych potrzeb.

Powodzenia!
Przemysław Janczewski

Przemysław Janczewski Administrator
systemu IT

Temat: crosstab

Jak zwykle można na Pana liczyć Panie Marcinie - zaraz testuję :)
Przemysław Janczewski

Przemysław Janczewski Administrator
systemu IT

Temat: crosstab

Działa :)
ps.
Jeszcze jedno pytanie czt crossa można złamać?
W takim sensie że jeżeli jest za długi i rozciąga stronę można go zwinąć i cześć danych wyświetlać poniżej?
Marcin S.

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

Temat: crosstab

W ten sposób aby kontynuacja cross-taba było pod spodem?
Niestety nie ma takiej możliwości.

Crosstab będzie musiał być kontynuowany na kolejnej stronie. Przypominam, że w ustawieniach cross-taba można włączyć opcję Repeat Row Labels, aby powtórzył nagłówki wierszy na kolejnych stronach.
Piotr Bielak

Piotr Bielak IT Project Manager,
Omya

Temat: crosstab

witam
ja mam pytanie odnosnie cross-taba
dodalem sobie w nim dodatkowy wiersz na dole przed wierszem sumującym, liczacy srednia w kolumnie, w tabeli zmienia sie ilosc wierszy w zaleznosci od parametru podawanego przy generowaniu raportu dlatego dziele wartosc przez aktualny index wiersza

funkcja liczaca wyglada tak:
(GridValueAt(CurrentRowIndex+1,CurrentColumnIndex,CurrentSummaryIndex))/(CurrentRowIndex)

jak zrobic aby funkcja pomijala pola w ktorych jest zero lub null
jak wyroznic konkretny wiersz
jak umiescic wiersz na dole tabeli po wierszu sumujacym
Przemysław Janczewski

Przemysław Janczewski Administrator
systemu IT

Temat: crosstab

Jeżeli suma w cross-tabie działa ok to proponowałbym dodać jezcze raz to samo pole z tym że zamiast opcji SUM w Cross-Tab Exper zmianić na Avg :)
Raczej będzie poprawnie.


Obrazek
Przemysław Janczewski edytował(a) ten post dnia 03.09.12 o godzinie 14:52
Marcin S.

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

Temat: crosstab

jak zrobic aby funkcja pomijala pola w ktorych jest zero lub null

Zero nie wpływa na sumowanie, a wartość null jest mapowana domyślnie na 0, więc nie powinno być z tym problemów. A jeśli masz problem opisz dokładniej swój przypadek.
jak wyroznic konkretny wiersz

Niestety nie ma możliwości wyróżnienia całego wiersza. Można natomiast wyróżnić poszczególne komórki i w ten sposób otrzymać wyróżnienie wiersza.

Wystarczy zaznaczyć wartość w komórce i wybrać np. Format Field | Font | Style


Obrazek


oraz wpisać formułę:


If GridValueAt (CurrentRowIndex, CurrentColumnIndex, 0) > 100 Then
crBold
Else
crRegular

jak umiescic wiersz na dole tabeli po wierszu sumujacym

To już wskazał Przemek. Dodam jeszcze, że w opcjach formatowania (Customize Style) można ustawić aby pola sumujące były w osobnych kolumnach w poziomie (Summarized Fields | Horizontal) oraz wyświetlić ich nazwy w nagłówku (Show labels).


Obrazek
Piotr Bielak

Piotr Bielak IT Project Manager,
Omya

Temat: crosstab

dzieki za szybka odpowiedz
wyroznienie zrobilem - warunkowo
ze srednia gorzej bo w podsumowaniu i w polach nie mam liczb z bazy danych a liczbe wystepowania konkretnych zdarzen w bazie czyli count i srednia musze liczyc po poleceniu count wiec odpada mi dodatkowy warunek w polu sumowania
to samo dotyczy miejsc zerowych - do sredniej jest brane jak w funcji ktora podalem wczesniej suma z ilosci wszystkich wystapien dzielona byla przez indeks wiersza w ktorym znajduje sie srednia a wiec bralo takze wiersze w ktorych ilosc wystapien byla zero ale juz sobie dalem rade za pomoca bardziej rozbudowanej funkcji do liczenia sredniej ktora mi sprawdza czy wiersz ma wartosc zerowa czy nie:

Local NumberVar y:=0;
Local NumberVar i;
for i:=1 to CurrentRowIndex do
(
if GridValueAt(CurrentRowIndex-i,CurrentColumnIndex,CurrentSummaryIndex)>0 then
y:=y+1;
);
(GridValueAt(CurrentRowIndex+1,CurrentColumnIndex,CurrentSummaryIndex))/y

ale nadal nie wiem czy jest mozliwe umieszczenie wiersza po wierszu sumujacym


Obrazek
Piotr Bielak edytował(a) ten post dnia 04.09.12 o godzinie 12:02

Następna dyskusja:

Shared Variable a CrossTab




Wyślij zaproszenie do