2010-05-22 9 views
5

Mam raport o pojedynczym krysztale, który zwykle kończy się na około 150 stronach. Pojedynczy .rpt, dzięki wykorzystaniu sprytnego grupowania, w rzeczywistości zawiera rekordy z niewielkimi pojedynczymi sekcjami nagłówka i stopki dla każdego klienta. Pomyśl o tym jako o raporcie sprzedaży dla 100 klientów, z których każdy ma własną sekcję.Crystal Reports - Ułatwia drukowanie z przodu/z tyłu

Każda sekcja klienta ma długość od 2 do 7 stron.

Chcemy wydrukować na przedniej i tylnej stronie stron. Obawiam się jednak, że około połowa sekcji klientów rozpocznie drukowanie z tyłu ostatniej strony poprzedniej sekcji klienta.

Edycja: co to sprowadza się do ... Potrzebuję wstawić dodatkowy podział strony, jeśli aktualny numer strony jest nieparzysty. Jakieś pomysły?

+1

Czy można uruchomić oddzielne zadania drukowania dla każdego raportu? – tgiphil

+0

Zasadniczo, jeśli zadania drukowania nie są w jakiś sposób możliwe do wykonania w samym pliku .rpt, potrzebuję wszystkich stron przedniej/tylnej ~ 80, aby wydrukować za jednym zamachem. Potrzebuję jakiejś logiki, aby wstawić podział strony, jeśli numer strony jest nieparzysty. –

Odpowiedz

3

Dobrze, jeśli wszystko, o co prosisz, to formuła wstawiania podziału strony, gdy numer strony jest nieparzysty, dodaj to do nowej strony po lub nowej strony przed formułą w pożądanej sekcji raportu.

PageNumber Mod 2 = 1 

Niestety nie mogę pomóc, ale mam problem ze zrozumieniem Twojego pytania.


edycja:

Dzięki za wyjaśnienie zasadzie w swoim ugrupowaniu dla swojego klienta (czyli „mała sekcja indywidualna stopka”), trzeba będzie zrobić coś takiego w Nowym strony po formuła

(Next({Customer.CustomerId}) <> {Customer.CustomerId}) 
AND 
(PageNumber MOD 2 = 1) 

Uwaga Customer.CustomerID powinien odwoływać się do unikatowej wartości dla klienta w zestawie rekordów. Właśnie coś wymyśliłem, ponieważ nie znam twoich nazw pól danych. Zasadniczo powyższe forum będzie patrzeć na następnego unikalnego klienta i jeśli nie jest to ta sama wartość co aktualny klient, to wiesz, że rozpoczyna się nowa sekcja klienta. Połączyć tę logikę z pogodą, a nie PageNumber jest dziwne i można powiedzieć pogoda, czy nie trzeba wstawić podział strony.


EDYCJI 2

(ISNULL(Next({Customer.CustomerId})) OR Next({Customer.CustomerId}) = "") 
AND 
(Next({Customer.CustomerId}) <> {Customer.CustomerId}) 
AND 
(PageNumber MOD 2 = 1) 

Możesz sprawdzić, czy następnego klienta ID (IE Unikalne wartości klienta) jest null ten sposób nie skończy się z pustej strony na samym końcu raport.

+0

Zmieniono dla wyjaśnienia –

+0

Zmieniono moją odpowiedź ... sprawdź to –

+0

Przepraszam redagował moją odpowiedź jeszcze raz. Czytałem ją i przypadkowo używałem! = Zamiast <> .... Przepraszam czasami mieszam i dopasowuję składnię z różnych języków . Jestem pewien, że to zwykły błąd. –

Powiązane problemy