Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Witam

Piszę raport oparty o dni tygodnia, szczegóły są w dwóch kolumnach, chcę aby dany dzień nie "łamał się" przez kolumny na stronie. Używam dla danego dnia opcji, że stopkę grupy drukuj na dole strony (kolumny) w ten sposób zmuszam, aby kolejny dzień wydrukował sie w nowej kolumnie. Ale nie zawsze tak jest, że w danym dniu jest stała ilość elementów.
Chcę wprowadzić zmienną w nagłówku grupy, która będzie numerem id dnia i np kleić z numerem strony.
Jeżeli wartości w nagłówku i stopce są różne, chcę użyć warunkowo w stopce opcję drukuj u dołu strony.

Czy możecie coś podpowiedzieć?Marcin M. edytował(a) ten post dnia 03.07.12 o godzinie 12:10
Marcin S.

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

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Jeśli chcesz aby grupa drukowała się na jednej stronie i nie była przedzielona skorzystaj z opcji
w menu Reports | Group Expert | Options | Keep Group Together

Najlepiej jeśli pokażesz nam jakiegoś screenshota.
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Dziękuję za odpowiedź, zgadzam się, że to działa, ale nie pomiędzy kolumnami na jednej stronie, tylko kolejnymi stronami. Temat wydawał się banalny, ale...
Chcę uzyskać dokładnie taki sam efekt między kolumnami

czyli

STRONA 1
[ ------ Kolumna1 ------ ]*[ ------ Kolumna2 ------]
Grupa 1-------------------*Grupa 3
Grupa 2-------------------*Grupa 4

A nie:
STRONA 1
[ ------ Kolumna1 ------ ]*[ ------ Kolumna2 ------]
Grupa 1-------------------*cd. Grupa 2
Grupa 2-------------------*Grupa 3
----------------------------*Grupa 4
Marcin S.

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

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

W takim razie proponuję skorzystać z opcji formatowania wielokolumnowego:

1. Przejdź do trybu Design
2. Zaznacz sekcję Details po lewej stronie prawym przyciskiem myszy
3. Wybierz opcję Section Expert
4. Zaznacz opcję Format with Multiple Columns
5. Przejdź na zakładkę Layout i określ szerokość kolumny np. 10 cm

W razie masz jeszcze opcję poniżej Format Groups with multiple columns.

Powodzenia!
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

To też testowałem, dokładnie mam tak ustawiony raport.
Działa wtedy opcja, aby stopkę strony drukowało u dołu kolumny, w ten sposób jak już pisałem kolejna grupa zaczyna się w nowej kolumnie. W formatowaniu warunkowym ustawiłem tą opcję tylko wtedy gdy nr grupy jest 2, ale zdarza się tak, że czasami grupa 1 ma 2 wiersze, grupa 2 ma 1 wiersz a grupa 3 15 wierszy i niepotrzebnie wskakuje do kolumny 3.
Pomysł jest taki żeby w formatowaniu warunkowym w stopce grupy sprawdzać np czy
GUID nagłówka grupy 2 * 10 + Numer kolumny = GUID stopki grupy 2 * 10 + Numer kolumny jeśli nie no to drukuj stopkę u dołu strony. W ten sposób osiągnąłbym zamierzony efekt dla zmieniających się "rozmiarów grup".
Wg mojej wiedzy w Crystal Reports formatowanie wielu kolumn nie jest dobrze obsłużone.
Temat byłby rozwiązany gdybym umiał określić jakimś cudem numer kolumny.
Temat dość ciekawy.
Dziękuję za podpowiedzi jeśli masz jakieś pomysły to proszę o pomoc, jak uda mi się coś wcześniej znaleźć lub wymyślić to też dam znać
Marcin S.

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

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Opisz bardziej biznesowo co ma przedstawiać raport. Może trzeba użyć całkowicie innego mechanizmu, np. tabel krzyżowych (cross-tab).

Najlepiej jeśli pokażesz zrzut docelowego raportu, który chcesz uzyskać.

p.s.
Crystal Reports nie posiada funkcji, która zwróci Tobie numer kolumny.
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Ok w Piątek znajdę trochę czasu i postaram się opisać problem.
Dziękuję za pomoc
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Witam

Raport jest grafikiem pracy ludzi i sprzętu na budowach. Parametrem raportu jest dzień. Wydruk prezentuje kolejne budowy. Elementami budów są ludzie, maszyny, i urządzenia.
Maszyny i urządzenia wyciągane są subraportami.
Ilość budów w danym dniu może być różna, tak samo jak różna może być ilość elementów w grupie.

Raport robię dla kolegi i założenie, że grupa ma się nie dzielić pomiędzy 2 kolumny poznałem dopiero po zrobieniu raportu.

http://www.fotosik.pl/pokaz_obrazek/pelny/b2d892555c9b...

Dane są przykładowe i nie wyglądają ładnie, ale chciałby aby grupa Budowa 1, znalazła się w kolejnej kolumnie. Jest to potrzebne gdyż ktoś przez przypadek może nie zabrać koparki na budowę :) Oprócz tej niedogodności raport spełnia wymagania klienta.

Pozdrawiam
Marcin S.

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

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Jeśli chcesz osiągnąć taki efekt jak na obrazku + kontynuacja grupy w następnej kolumnie, musisz użyć formatowania wielokolumnowego, który opisałem wcześniej. Zaznacz dodatkowo Format Groups with multiple columns, aby grupy były również przenoszone do kolumn.
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Moje przeoczenie, poprosiłeś o wygląd jaki chcę osiągnąć a ja pokazałem efekt jaki mam :(.
Chcę aby napis budowa 1 dynamicznie z nową grupą przenosił się do nowej kolumny.
Wszystkie te opcje o których pisałeś mam ustawione. Rysunek mylnie nie pokazuje grupy w kolejnej kolumnie, ale grupy sie przenoszą tylko nie działa opcja trzymaj razem tak jak jest to w przypadku stron.
Może to moja wersja Crystal CR Professional 11.5.7.636.
Może jest błąd, ponieważ opcja drukuj u dołu strony działa w kolumnach, ale opcja trzymaj razem już nie.

Pozdrawiam
Marcin S.

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

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Naszkicuj w takim razie docelowy wygląd, bo z opisu muszę się sporo domyślać.
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Jest tak
http://www.fotosik.pl/pokaz_obrazek/pelny/87ba1456ea8d...
STRONA 1
[ ------ Kolumna1 ------ ]*[ ------ Kolumna2 ------]
Grupa 1-------------------*cd. Grupa 2
Grupa 2-------------------*Grupa 3
----------------------------*Grupa 4

a chcę aby było tak
http://www.fotosik.pl/pokaz_obrazek/pelny/eebc78f1ab30...
STRONA 1
[ ------ Kolumna1 ------ ]*[ ------ Kolumna2 ------]
Grupa 1-------------------*Grupa 3
Grupa 2-------------------*Grupa 4

PozdrawiamMarcin M. edytował(a) ten post dnia 09.07.12 o godzinie 14:14
Marcin S.

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

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Teraz wiem o co dokładnie tobie chodzi.
Odtworzyłem sobie taki przykład i faktycznie Keep Group Together jest ignorowany w przypadku raportu wielokolumnowego (CR 2008 SP5).

Podobny problem jest opisany tutaj:
http://stackoverflow.com/questions/7162576/how-do-you-...

Obawiam się, że nie da się tego przeskoczyć. Może trzeba zmienić wygląd graficzny raportu, aby uniknąć kilku kolumn.
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Niestety Klient przyzwyczajony jest do takiej formy, robił to w EXCELU i chce mieć taki sam obraz tutaj.

Jak coś wymyślę dam znać.
Dziękuje za poświęcony czas.

Pozdrawiam
Marcin S.

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

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

No niestety, nie wszystko da się zrobić w Crystalu tak, aby wyglądało jak w Excelu.
Podobnie jest w Cross-tabach, które posiadają wiele ograniczeń.

Spróbuj zaproponować klientowi, nowy, lepszy układ.
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Mam pomysł, ale sprawdze to dopiero w piątek.
Postaram sie liczyć ilość wierszy (jeśli uda się to zrobić np SQL Expression) przed wyświetleniem grupy, to w stopce grupy która jeszcze się mieści w kolumnie 1 (wiem że np w kolumnie mieści się 50 wierszy) dam drukuj u dołu strony i w ten sposób zmuszę kolejną grupę do pokazania sie w drugiej kolumnie.
Ta funkcja działa i to sprawdziłem.

Pozdrawiam
Marcin S.

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

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Do obliczania ilości wierszy (rekordów) nie musisz używać SQL Expression. Wystarczy funkcja Count.
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Zgadza się - spróbuje, ale wydaje mi się, że w przypadku count nie zadziała formatowanie warunkowe, ponieważ muszę mieć informację przed tym jak stopka grupy się wyświetli (count zlicza "pokazane" elementy - chyba, że się mylę) i wtedy może się zdarzyć, że informację o ilości wierszy które się nie mieszczą uzyskam w kolumnie 2 ( to mi nic nie daje) , dodatkowo muszę zliczać ilość nagłówków występujących w danej kolumnie. Problematyczne będzie to że na daną budowę składają się dwa pod-raporty (ale tutaj poradzę sobie przez shared numbervar, aby przekazać sobie liczbę do Raportu Głównego, kluczowa będzie jedna z 2 wartości ta większa).
W piątek dam znać jak poszło

Pozdrawiam
Marcin S.

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

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

funkcja Count liczy ilość rekordów, nawet takich, które są niewidoczne.
Marcin M.

Marcin M. Specjalista do spraw
wdrożeń, Complex
Computers

Temat: Praca na wielu kolumnach. Czy da się złapać numer kolumny...

Marcin Sulecki:
funkcja Count liczy ilość rekordów, nawet takich, które są niewidoczne.


ok, ale nie wie ile elementów będzie np. w grupie przed wyświetleniem grupy. Jeśli tej informacji nie będę miał, mój pomysł nie zadziała. SQL Expression pozwoli mi to wyciągnąć.



Wyślij zaproszenie do