One of the data types that organizations can track as an attribute in the Raiser’s Edge is Yes/No. Examples might include:
- Action Attribute with a category called Attended? with a description equal to Yes/No
- Constituent Attribute called Society Member? with a description equal to Yes/No
- Gift Attribute called Include in Annual Total Given? with a description equal to Yes/No
They are handy dandy tools inside the Raiser’s Edge because you can easily include or exclude records in all Reports and Mail functions based on Attributes. That seems pretty straightforward at first, but I’ll let you in on a little secret I learned the hard way. Outside of the Raiser’s Edge can be a different story, especially in Crystal Reports.
******Spoiler alert here********
I’m about to slip into a little Geek speak . If you want to skip it, cover your eyes and go straight to the bottom line below. In Geek speak, a Yes/No field is what is known as a Boolean value. I’m no code expert, but I do know enough to know that means it’s Pass/Fail, True/False kind of thing. In order for it to work the way you expect it to, it must be present on every record being considered. Why does that matter?
It matters if you’re going to write formulas against that field in Crystal Reports or use it with the Select Expert tool in Crystal. The Attribute Category must be populated on every record in the data file. Crystal Reports looks first for the Category to be present and THEN for the value you choose (i.e. Yes or No). What a PAIN!
So, here’s my secret: when I am setting-up a Yes/No attribute for my clients, I set-up a Table with 2 entries: Yes and No. Then, I use an Attribute data type of Table, instead of Yes/No. It looks exactly the same to the end user and behaves the exact same way inside the Raiser’s Edge, but because it is not a true Boolean, it’s much friendlier outside of the Raiser’s Edge, especially in Crystal Reports.
If you need a Yes/No attribute and there is even the slightest possibility that you may need to use it in a Crystal Report, use a data type of Table with a Yes/No Table.
Make sense? Check Yes or No 🙂
Keeping you on the Leading Edge,