One of my most long standing problems that I have had with RE:VBA is showing a form modally. This in itself is not difficult but as soon as you move away from Raiser’s Edge, bring up another window in front of the modal form and then go back to Raiser’s Edge, the modal form has disappeared. Because the form is modal you are not able to access the underlying window (let’s call this the parent window). This is a pain as the only way to bring it back is to place another window over the parent window and then minimize it. This is not hard to do but it is harder to explain to users and not very intuitive.
All posts by David Zeidman
Old and New Relationships
The other day I was trawling the knowledgebase for some code to quickly look up the primary organization record for a constituent. It is the sort of thing that I could have worked out myself very easily but sometimes it is just convenient to see if Blackbaud already have the code available.
I found exactly what I was looking for, or so I thought. KB BB54132: How to write code to find the Record ID for the Primary Organization relationship. Seeing the solution reminded me of the time I first took over the reigns of RE customisation developer at my first position in San Francisco.
Six ways to name a record
One thing that can make the API confusing is its inconsistencies. Take for example the task of referencing the constituent object’s system id from another data object. The constituent system ID is used uniformally throughout to connect a constituent to its child objects such as, gifts, actions, aliases, solicit codes, etc. The naming convention however is not uniform. The objects have fields which are referenced in the following format:
OBJECTNAME_fld_FIELDNAME
so that an action references the constituent that is tied to it by the following:
oAction.Fields(ACTION_fld_RECORDS_ID)
Shortcuts with Long Names
Every so often you discover something useful from the vault of information that is the API/VBA help file. The help file is a reference guide for the whole API but in order to really make use of it you have to study the various classes carefully. This is generally not something I enjoy doing.
I stumbled across a useful solution to a problem that could easily have been solved another way. I had been manipulating address objects (CConstitAddress) but did not have the name and constituent id of the constituent that the address referred to. Continue reading Shortcuts with Long Names
VBA: Inside or Out?
If you are using VBA to perform actions on opening, saving or deleting record you have the option of putting the code in two different places.
Perhaps the most obvious is when you log in to RE as supervisor you can go into the Visual Basic for Applications environment (found under the Tools menu) and capture your events in the System project. This is the “inside” solution as it resides inside the database and can be programed from inside the RE application.
The other option is to use the RE7VBA tool. This executable is found in the Raiser’s Edge directory along side RE7.exe. Running this program opens up a similar environment except that you can save your work in a file and compile it to a DLL. This is the “outside” solution for opposite reasons
What are the pros and cons of each? Continue reading VBA: Inside or Out?
Decoding RE code
Welcome to RE Decoded. My aim with this blog is to share some techniques used in the Raiser’s Edge API to solve day to day problems that the ordinary user may have. Feel free to add your own comments if you have solved a problem differently. Its the best way to learn.
This first entry is less technical than the other entries. I need to break you in gently.