* Providing different levels for Individual/s privacy within a Chart

Questions regarding use of any Version of Family Historian. Please ensure you have set your Version of Family Historian in your Profile. If your question fits in one of these subject-specific sub-forums, please ask it there.
Post Reply
avatar
rob_it
Gold
Posts: 28
Joined: 13 Aug 2015 13:10
Family Historian: V6.2

Providing different levels for Individual/s privacy within a Chart

Post by rob_it » 15 Dec 2017 17:41

I have a reasonably comphensive coverage of bmd (dd/mm/yyyy) data from aunts/uncles level downwards in a Descendant Chart.
I distribute this to cousins in pdf format, however some cousins wish me to limit what is shown in their respective branches:-
( eg no bmd or format in yyyy only for some/all in their branch or no named individual/s ie. just an empty box in their branch for some individuals only, or a mixture of some/all of the foregoing)!

As a quick fix on previously distributed drafts I created text boxes containing the word 'unavailable' and positioned them to obscure those areas that contained the 'priviledged' data but each time the tree has been amended the obscuring text boxes have to be repositioned to maintain the privacy required and this has become tedious.

Has anybody else had a similar problem and if so how did they resolve it?

User avatar
tatewise
Megastar
Posts: 27088
Joined: 25 May 2010 11:00
Family Historian: V7
Location: Torbay, Devon, UK
Contact:

Re: Providing different levels for Individual/s privacy within a Chart

Post by tatewise » 15 Dec 2017 22:32

Depending how complex and how many different scenarios you need it may be possible to customise your Text Scheme to conditionally include/exclude/reformat various items.

The conditions could be Record Flags, which have a dedicated Flag Condition tick box in each item.
So there could be several alternative items for the same data, but only one is enabled by the current Record Flag applied to the Individual.

A similar approach could use the =IsInList(%INDI%,"NamedList") function.
i.e. =TextIf( IsInList(%INDI%,"NamedList"), ... )
Then put each Individual in appropriate Named List to achieve desired text format.

Bear in mind that each Individual can have multiple Record Flags or appear in multiple Named Lists so many combinations are possible.

You can also make use of the Only output if previous item blank option.
So if the previous conditional item yields no output, then the current conditional item is applied.
That chain reaction continues until a conditional item results in some output, or the items are exhausted.
Mike Tate ~ researching the Tate and Scott family history ~ tatewise ancestry

User avatar
LornaCraig
Megastar
Posts: 2996
Joined: 11 Jan 2005 17:36
Family Historian: V7
Location: Oxfordshire, UK

Re: Providing different levels for Individual/s privacy within a Chart

Post by LornaCraig » 17 Dec 2017 12:03

There is a Wish List item here: Ref 553 Better Diagram Box Format Options
requesting more flexible options for formatting diagram boxes, "especially the ability to selectively override any Family Tree Box Text &/or Icons".

This would avoid the need for the use of complex text schemes and/or flags every time a new one-off diagram display is wanted. Do vote for it if you would find it useful.

It followed a discussion in this topic Better Diagram Text & Picture Options (14224)
Lorna

avatar
rob_it
Gold
Posts: 28
Joined: 13 Aug 2015 13:10
Family Historian: V6.2

Re: Providing different levels for Individual/s privacy within a Chart

Post by rob_it » 17 Dec 2017 22:09

Hi Mike,

Thanks for your reply. - I'm having dificulty incorporating your Named List solution with the Text Scheme Item - Template

I've tried using a named list "NoBMD" and substituting :-

=TextIf(IsInList(%INDI%,"NoBMD"),"Unavailable",Born: %INDI.BIRT.DATE:COMPACT% in %INDI.BIRT.PLAC:TIDY%)

for the template so that I either get "Unavailable" or "Born:" <birth date> , but it's being rejected when tested.
Its seems to be rejecting the : Born: %INDI.BIRT.DATE:COMPACT% in %INDI.BIRT.PLAC:TIDY% part as when I substituted:

=TextIf(IsInList(%INDI%,"NoBMD"),"Unavailable","Born: %INDI.BIRT.DATE:COMPACT% in %INDI.BIRT.PLAC:TIDY%")

as the function it's accepted but then of course the outputs are then both text and not "Unavailable" or "Born:"<birth date>

Where am I going wrong?

(I have got the flags approach working but I prefer your named list method, as for me, it gives alternative text O/P and would be easier to maintain).

-----
Lorna - I'll add my support to the request on the Wish List as you suggested. Thank you.

User avatar
tatewise
Megastar
Posts: 27088
Joined: 25 May 2010 11:00
Family Historian: V7
Location: Torbay, Devon, UK
Contact:

Re: Providing different levels for Individual/s privacy within a Chart

Post by tatewise » 17 Dec 2017 23:40

Rob, the last parameter is a mixture of "plain-text" and %data-refs% so you must join them using say the Text(...) function.
e.g.
Text( "Born: " . Text(%INDI.BIRT.DATE:COMPACT%) . " in " . %INDI.BIRT.PLAC:TIDY% )

The DATE needs enclosing in Text(...) because its value is a Date.

BUT, what if either the DATE or the PLAC are empty?

The answer is to use the more sophisticated Combine Text(...) function where 1st param is only output if 2nd param exists.
e.g.
CombineText( "Born: ", Text( Text(%INDI.BIRT.DATE:COMPACT%) . CombineText( " in ", %INDI.BIRT.PLAC:TIDY%, )), )
Mike Tate ~ researching the Tate and Scott family history ~ tatewise ancestry

avatar
rob_it
Gold
Posts: 28
Joined: 13 Aug 2015 13:10
Family Historian: V6.2

Re: Providing different levels for Individual/s privacy within a Chart

Post by rob_it » 20 Dec 2017 01:39

Mike, thanks for your help - works well and will save me a lot of time and effort when updating the chart.

Post Reply