If I understand correctly, you are using the Add Command from the datasource and then typing the entry.
As I understand the Command, and no one has told me I am wrong, it is designed to gather information for the parameter list. Asking it to look at the parameter and do something is backwards and is always asking for trouble.
what do the users select if the parameter is not 'g'? Crystal is not that complex nor that intelligent, if you have a parameter (or this your method to get data for the report?) crystal is going to want to have it filled in to pass along to the stored proc or the filter.
As much as anything, what is the purpose of the code? To get information for a parameter, to be a parameter, or to get data for the report?