Tables can sometimes be linked several different ways and it will not matter, it depends what you do. The norm is equal joins but you can do a 'left outer', where you link tables A and B and you want each record on A even when there is no B for it. In this case, the values on B will still be on the detail line but as null values.
Having come to Crystal from mainframe languages, I got a 'cultural shock' when encountering null. It means 'no data': Mainframe languages mostly treat this as the same as zero.
It is actually a finer shade of meaning, the difference between 'Yes, we have no bananas' and 'I don't know how many bananas we have, it could be some, it could be zero'. In Crystal, the entry is 0 or null and can be tested for.
Note that Crystal assumes that anything with a null means that the field should not display. Always begin with something like
Code:
if isnull({your.amount}) then 0
else {your.amount}
or
Code:
if isnull({your.date})
or {your.date} in [{Start-Date} to {End-Date}) then "OK"
else "not"
Or else
Code:
if isnull({your.amount})
then "no value found"
else ToText({your.amount})
The 'ToText' allows you to mix numbers and text, and also has interesting format options.
![[yinyang] [yinyang] [yinyang]](/data/assets/smilies/yinyang.gif)
Madawc Williams (East Anglia, UK). Using Windows XP & Crystal 10
![[yinyang] [yinyang] [yinyang]](/data/assets/smilies/yinyang.gif)