Home Page list
Ancestors Named Group #namedgroup
RootsMagic 4 users have been seeking an improvement to Named Groups, namely "dynamic refresh" or, at least, a manual refresh button. The idea is that a group's membership should be updated on demand following the rules that set it up in the first place. Currently, a group is static, requiring the user to edit the group, setting up the rules all over again.This query provides a manual refresh for a specific group, i.e., the ancestors of a specified person. While not the most challenging criterion for group membership and thus not a big time-saver, nonetheless it demonstrates the principle upon which more complex rules could be based. AncestorsGroup.sql is built around the query described at Ancestors Query
which is used virtually intact.
NB- LabelID instead of LabelValue error corrected 2011-11-27 21:45 EST
- Backup your database before you do this every time until you are confident that it does no harm.
- In RM4, create a named group having the words "ancestors" and "#RIN" in it, where RIN is the number of the person whose ancestors are to be in the group, e.g., "Tom's ancestors #269". Do not leave this group empty, add anyone immediately or do the next step before creating any more new groups (bug in RM4).
- Open your RM4 database with SQLite Expert Personal and load AncestorsGroup.sql into the SQL editor.
- Execute the query (F5)
- You will be prompted to enter a value for @StartRIN: enter the number of the person in the name of the group, in this example "269" (without quotes and the leading #).
- When the query has finished, you will need to refresh the RM4 sidebar view of your group by selecting another group and then re-selecting it.
The RM4 GroupTable allows for group members to be defined in ranges of consecutive numbers between a StartID and EndID, thus shortening the table versus one row per member. This script makes no attempt to use this capability so it consumes one row per member with EndID=StartID. I don't know if there is any significant efficiency gained as a result of ranges.