Crystal Reports tips & trucs (24-3-2010)
Vragen beantwoord ik tegen betaling van een uurtarief van € 60,- met een minimum van 1 uur
I N H O U D S O P G A V E
Crystal Reports tips & trucs (24-3-2010)
1.4 Tabellen klein maken in links van de Database Expert
1.9 Een checkbox tonen in een report
1.13 Uitlijnen objecten uit verschillende secties
1.14 Docken van Field Explorer
Algemene tips
Command
SQL
Vanaf versie 9 kunnen we via de optie Add Command in de Database Expert rechtstreeks SQL commando's in te voeren:

Met parameter
Als je een parameter gebruikt, moet je er op letten hoe je deze invoert:
select * from klanten where land = '{?land}' (in dit geval alfanumeriek en dus met enkele aanhalingstekens.
Alfabetiseren veldennamen
Via File->options
We kunnen de velden ook standaard in alfabetische volgorde zetten. We doen dit via het menu File -> options -> database:

Via de Field Explorer
In versie 2008 kunnen we dat aanzetten door in de Field explorer op de rechter muisknop te klikken en de betreffende optie te kiezen.

Veldtypen tonen
Tot en met versie 8.5
In de Field Explorer drukken we op de + voor Database Fields en vervolgens op de + voor klanten. We krijgen het volgende scherm


- Klik op de knop rechtsboven

We krijgen dan extra informatie over het type veld en de lengte.
Vanaf versie 9
Vanaf deze versie moeten we in de field explore op de rechter muisknop klikken, We krijgen dan:

Tabellen klein maken in links van de Database Expert
Vanaf versie 11 is het mogelijk via dubbelklikken op de tabelnaam de tabelnaam te laten samenklappen.
We gaan dan van:

Naar:

Weeknummers
Om weeknummers en vooral Nederlandse weeknummer te krijgen, gebruiken we de functie Datepart :

Kwartalen
Kwartalen maken we met dezelfde functie: datepart(“q”,{Orders.Orderdatum}). Er zijn nog diverse andere mogelijkheden via de helpfunctie te vinden.
Description |
|
yyyy |
Extracts the year |
q |
Quarter (the result is 1, 2, 3 or 4) |
m |
Month (the result is from 1 to 12) |
y |
Day of year (1 to 365 or 366 in a leap year) |
d |
Day part of the date (1 to 31) |
w |
Day of week (1 to 7 with the result depending on firstDayOfWeek) |
ww |
Week of year (1 to 53 with firstDayOfWeek and firstWeekOfYear determining the exact days of the first calendar week of the year) |
h |
Extracts the hour part of the given DateTime (0 to 23) |
n |
Minute part (0 to 59) |
s |
Second part (0 to 59) |
Parameters
Als je gekozen hebt voor een a multiple value parameter, kun je de inhoud ervan weergeven met de Join function.
In een formula field: join({?parma},”, “)
Watermerk
Als je een watermerk op elke pagina wilt, zet je een plaatje in de page header. Via de section expert vink je dan voor de Page Header Underlay Following Sections aan:

Een checkbox tonen in een report |
Crystal Reports ondersteunt Boolean operators maar toont ze als:
True of False, 0 of 1 enzovoorts
Crystal Reports kan deze operators niet standaard tonen maar met wat creativiteit en Wingdings lukt dat wel.
Als je een Boolean veld in je rapport geplaatst hebt, kies je de Format Expert. Op het tabblad Font kies je Wingdings
Op het tabblad Common klik je op de knop achter Display Strings:
Onder die knop plaats je de formule:
if {Producten.Uit assortiment}= true then chr(254) else chr(111)
Het uiteindelijke resultaat wordt dan:
|
Browse data
Rechts klikken op een veld in de Field Explorer levert de optie Browse Data.

Die optie geeft een inkijk op de data in een kolom. Daar zit evenwel wel een beperking op. Alleen de eerste 500 verschillende gegevns worden getoond. Alle volgende waarden worden weggelaten.

Details om en om kleuren
Je gaat naar de Sections Expert

kiest daar voor Details en maakt bij het tabblad color

de formule:
IF recordnumber MOD 2 = 1 THEN
Color(255,200,255)
ELSE
Color(255,255,200)
Bij groepen vervang je recordnumber door groupnumber .
Afdrukken parameter
Voor het afdrukken van een parameter die meerdere waarden bevat, maak je de volgende formule:
JOIN({?My Parameter},”, “)
De “, “ zorgt ervoor dat de waarden door een komma + spatie gescheiden worden.
Als je de waarden ook nog op de juiste manier gesorteerd wilt hebben, wordt de formule wat ingewikkelder:
stringvar array sort;
numbervar loop1;
numbervar loop2;
stringvar temp;
sort:= {?My Parameter} ;
for loop2:=1 to ubound(sort)-1 do(
for loop1:=1 to ubound(sort)-loop2 do(
if sort[loop1] > sort[loop1+1] then
(temp := sort[loop1];
sort[loop1] := sort[loop1+1];
sort[loop1+1] := temp)));
Join(sort,", ")
Als je gekozen hebt voor een parameter met een range, luidt de formule:
"Van " & MINIMUM({?My Parameter}) & " tot " & MAXIMUM({?My Parameter})
Als de parameter niet van het type string is, dan kun je deze met de functie ToText() omzetten. Vervolgens kun je toch weer Join() gebruiken.
Uitlijnen objecten uit verschillende secties
Je selecteert met de CTRL-toets ingedrukt de objecten te selecteren die je wilt uitlijnen. Dan klik je met de rechter muisknop op het object waar je de andere objecten mee wilt uitlijnen. Je kiest nu uit het snelmenu de optie Align en één van de uitlijnmogelijkheden.

Docken van Field Explorer
Field Explorer van zijn plek geraakt? In versie 2008 kun je deze nu snel terugkrijgen. Klik met de rechter muisknop op de bovenste balk van de Field Explorer en kies Dock




