Adding Gifts Means Thinking User Options

One issue that I frequency encounter was raised as a post on the forum for a similar problem:

When you create a gift you need to add a fund, campaign and appeal. The problem is that the values on the gifts are dependant on the user options of the person running the code. When I first encountered this problem I was amazed that this could have been programmed in this way.

For example if I am running the code and I usually view fund descriptions rather than IDs the following code will work fine:


Public Sub addGift(oConstit As CRecord)Dim oGift As New CGift

oGift.Init SessionContext

   oGift.Fields(GIFT_fld_Constit_ID) = oConstit.Fields(RECORDS_fld_ID)

   oGift.Fields(GIFT_fld_Amount) = 10

   oGift.Fields(GIFT_fld_Fund) = "General Fund" 



   Set oGift = Nothing

End Sub

However if I usually view my funds as ID then this will fail as there is no fund ID called ‘General Fund’ (only a description).

What I need to do is to either ensure everyone in the organisation has the same user options (this I think is not a very robust coding solution) or alternatively add some code to check whether the user uses the id or the description for funds.


Dim oReServices As reservices

Dim sFund As StringSet oReServices = New reservices

oReServices.Init getSessionContext

If oReServices.GetUserPref(USER_fld_FUNDFORMAT) = "Description" Then

    sFund = "General Fund"


    sFund = "112233"

End If  '------ Code continues ------

That way you know if your user is using a description or id and you can add the correct fund value.