Best solution is to not delete these individuals from the database so that their info remains present for report purposes. You might consider adding a status field to your sponsors table where you can select "inactive" or some such value instead of deleting the sponser from the table. You can then perform finds that omit "inactive" sponsors when you need to work only with active sponsors. This also makes it possible to restore someone easily to active status without completely re-entering their info and also leaves them with their original ID.
Thank you, Phil, this is what I suspected. It is easier for the purpose of mail merges, etc to delete them, but I suppose every time we do a mail merge we will just have to remember to exclude people through a find.
I will make an active/inactive field or something similar. Thanks!
Such an 'exclude' can be automated so that you don't have to remember each time.
Many developers specifically design their system to prevent the actual deletion of records from key tables, 'marking' them in some way and then designing the interfaces to hide them from the user. The user thinks they have deleted the record, but the devloper (or a script he/she sets up for the purpose) can magically 'undo' the delete and bring back an accidentally deleted record.
Thanks Phil. Ideally, I'd like to run a script trigger onlayoutload that excludes the Inactive Sponsors, but I'm running FM Pro 9 and I don't think it includes script triggers. I don't want to move them to a different table (an archive table, for instance), because the donation records are still set up to pull information from the sponsors table, and not the archive table.
The easiest solution I can think of for now is to write it into a script, and include all of the finds/excludes/whatever for that mail merge in a script so I don't have to keep re-writing them. The inactive sponsors will of course still show up when simply browsing records this way.
If there is a better solution, please advise. Thank you!
Given the limitations of version 9, that's probably the best approach. You can tack on code like this to the end of the find script:
//put steps that set up find criteria specified by user here
Set Field [Sponsors::Status ; "Inactive"]
Set Error Capture [on]
That adds an "omit" request to the end of anything else specified as criteria in the script.