Page 1 of 1

End of Line Marker

Posted: 25 Oct 2016 13:38
by David Potter
Hi Forum

Can I ask if anyone has a special technique for marking 'End of Line' Individuals. Meaning further Research is exhausted or has reached a practical end point. And can be visible in Diagrams?

Looking for Inspiration...

BR

David

Re: End of Line Marker

Posted: 25 Oct 2016 13:50
by tatewise
Yes, use the Individual Child Count &/or Family Count of Children facts and in Diagram > Options tick No-offspring marker and review adjacent Options button. See the Help button on that dialogue for more advice.

Re: End of Line Marker

Posted: 25 Oct 2016 14:00
by DavidNewton
Another thing you could do in the opposite direction for a bit of fun, when you cannot find an individual's ancestors , is to add 'Brick Wall' media to their record such as
Brick Wall.jpg
Brick Wall.jpg (19.07 KiB) Viewed 12577 times
David

Re: End of Line Marker

Posted: 25 Oct 2016 14:01
by ColeValleyGirl
Mike,

I think David means individuals with no identifiable parents where all attempts to identify them have failed -- i.e. end of line going backwards not forwards.

I'd suggest a flag and use it to color-code the diagram?

Helen

Re: End of Line Marker

Posted: 25 Oct 2016 14:02
by SimPar
This is one of those situations where I think flag use is justified. I use a flag called "Dead End" when I think I've got as far as I'm going to get with an individual. I then use that flag to colour the individual's box on diagrams. Because there are many reasons why you might think you have reached the end of research on an individual it may be easier to set a flag manually than to try and use children counts as Mike suggests. I will also make a note against the individual as to why I think that research is (currently) exhausted.

Simon

PS a bit late as Helen has just said the same thing - but I'll post anyway.

Re: End of Line Marker

Posted: 25 Oct 2016 14:07
by David Potter
Thank you All.

Mike's suggestion was still helpful even though it was in the wrong direction. It's handy to see that 'No Off-Spring Bar' without having to open up that particular Individual to view if there are any descendants.

And the use of a Flag for the other Direction is an excellent idea.

Much appreciated. Thank you all.

BR

David

Re: End of Line Marker

Posted: 25 Oct 2016 14:16
by Gowermick
I too use a custom 'End of Line' flag, which I find very useful as a filter in a query to list these individuals. However, I do like David's idea of using a 'Brick Wall Ahead' sign, which would make the individuals plainly visible in so many diferent scenarios. :D

Re: End of Line Marker

Posted: 25 Oct 2016 15:09
by tatewise
Yes, sorry David, I misunderstood which End of Line direction you were discussing.
This is one of those scenarios where a Flag is superior to an Expression (which would be virtually impossible).

Re: End of Line Marker

Posted: 25 Oct 2016 15:53
by David Potter
Thank you Mike

And thank you everyone for your contributions.

BR

David

Re: End of Line Marker

Posted: 25 Oct 2016 22:30
by David Potter
Hi Mike

One question please - why does the 'No Off-Spring Bar' not show for married couples with no Children?

Br

David

Re: End of Line Marker

Posted: 25 Oct 2016 22:34
by David Potter
Hi Mike

Please see the screen attached. The 'No Off-Spring Bar' is colour Yellow. Therefore the two other married couples should also have this bar - correct?

BR

David

Re: End of Line Marker

Posted: 25 Oct 2016 22:46
by AnneEast
I would say that the marker is for you to put in. FH can see that a couple have no children added but it does not know how thoroughly you have researched them. Maybe you just didn't get round to adding them. For the marker to appear I would want as much proof as possible that they had no children and not just that I don't happen to have found any yet.
Anne

Re: End of Line Marker

Posted: 26 Oct 2016 12:09
by tatewise
As Anne says, simply the lack of linked Children is not enough.
You must use the Individual Child Count &/or Family Count of Children facts set to 0 and in Diagram > Options tick No-offspring marker and review adjacent Options button, as explained in some detail in the Help button on that dialogue.

Re: End of Line Marker

Posted: 26 Oct 2016 12:14
by David Potter
Okay Mike/Anne

I'll take a closer look at this additional setting.

Many Thanks.

David

Re: End of Line Marker

Posted: 30 Oct 2016 23:14
by jimlad68
For descendants:

[1] Automatic end of line is shown by absence of expansion button
- i.e.diagram > options general > show branch expansion buttons.

However this does not indicate that research has been exhausted.
tempfh ch=0 border.jpg
tempfh ch=0 border.jpg (43.39 KiB) Viewed 12426 times
[2]
- I created an Event Fact of _ChildCount and just enter in the first line of the Note Ch=0 (this could be Ch=x or any text)
- Subsequent Paragraphs can contain any text, say explanation of findings.

- diagram > options > boxes > add condition
expression =ContainsText(%INDI.EVEN-CHILDCOUNT.NOTE2%,"Ch=0",STD)
(It would be nice to limit this to the first paragraph of the Note, but I'm not sure if that can be done).
together with box shadow 0.07cm (whatever colour you want), shadow position Left+right
(I USE LEFT TO RIGHT DIAGRAMS)

This shows a Left+Right border on the box showing the end of line. (leaving the top bottom for something else).

Additionally I add to the text scheme after the individuals name > a change of underlined font, and
=GetParagraph(%INDI.EVEN-CHILDCOUNT[1+].NOTE2%,1)
This adds whatever is in the first paragraph of the Note after the name of the Individual.

I debated whether to use the standard Child Count attribute but with the above method it hones in ONLY on those that have been researched, not just those who had a child count for whatever reason.

Re: End of Line Marker

Posted: 31 Oct 2016 11:57
by tatewise
Jim to answer your question and pose one in response.

[2] (It would be nice to limit this to the first paragraph of the Note, but I'm not sure if that can be done).
You virtually answered your own question in the next expression that extracts paragraph 1.
So your conditional expression becomes:
=ContainsText( GetParagraph(%INDI.EVEN-CHILDCOUNT.NOTE2%,1), "Ch=0", STD )
or even simpler:
=IsTrue( GetParagraph(%INDI.EVEN-CHILDCOUNT.NOTE2%,1) = "Ch=0" )

I am not sure why you chose to use the [1+] looping index in your =GetParagraph(...) expression.

Why not use the standard Child Count attribute and test its value is 0?
This attribute should only be used where the count of children has been exhaustively researched.
Conditional expression is:
=IsTrue( %INDI.NCHI% = 0 )
But that is unnecessary, because the Diagram > Options > No-offspring marker automatically marks the Diagram for you when that condition applies.

Re: End of Line Marker

Posted: 31 Oct 2016 14:03
by jimlad68
Thanks Mike for the 'limit this to the first paragraph', I don't think I have used the =IsTrue before in this context, I'm sure I will use it again now. However:


[1] Your =IsTrue( GetParagraph(%INDI.EVEN-CHILDCOUNT.NOTE2%,1) = "Ch=0" )
works fine, but it does not if there is anything else on the line (i.e. detail I might wish to show via the text scheme).
so I tried to combine with
=IsTrue(ContainsText(GetParagraph(%INDI.EVEN-CHILDCOUNT.NOTE2%,1),"Ch=0",STD))
which was a valid expression, but did not work if the 1st para had anything extra to Ch=0


[2] The [1+] is interesting. When I use it in a text scheme with say
%INDI.EVEN-BRIEF[1+].NOTE2%
it displays all instances
if used as in
=GetParagraph(%INDI.EVEN-CHILDCOUNT[1+].NOTE2%,1)
it only shows the first (order as in Gedcom file I suspect)


[3] Yes, as I mentioned, I did consider using the Standard attribute Child Count, and might migrate to it yet. The downside for me was the attribute field limitation of numeric, and also as mentioned before my method hones in ONLY on those that have been researched, not just those who had a child count for whatever reason.


[4] I have played with the Diagram > Options > No-offspring marker before but has its own very fixed rules which I find can be limiting. For instance if the 'descendant person' has child count 0, their spouse (without child count) also displays the marker, which might not be proven. It also overrides child count = 0 if the person has children, now that might be logical, but they might be on a tree with adoptive/step children etc and the child count might want to reflect biological children.

Re: End of Line Marker

Posted: 31 Oct 2016 16:43
by tatewise
[1] Yes.
Strictly speaking your ContainsText(...) is invalid syntax, because its first parameter is specified as "A reference to a data item" but GetParagraph(...) supplies Text so FH is misleading in accepting that expression.
I could not get it to detect Ch=0 under any circumstances.
What should work though is:
=IsTrue(TextPart(GetParagraph(%INDI.NOTE2%,1),1,1,STD) = "Ch=0")
providing you were prepared to add a comma after Ch=0 when more text was required.

[2] Presumably the looping index is ignored within a parameter to a function.

[3] As I said "This attribute should ONLY be used where the count of children has been exhaustively researched."
Yes, the attribute value must be numeric, but any extra text required could be added to the Note field.

[4] Yes, the rules are fixed and may not suit your requirements.

Re: End of Line Marker

Posted: 31 Oct 2016 21:30
by jimlad68
Mike, thanks again:
this did not work:
=IsTrue(TextPart(GetParagraph(%INDI.NOTE2%,1),1,1,STD) = "Ch=0")
But if I amended it to:
=IsTrue(TextPart(GetParagraph(%INDI.EVEN-CHILDCOUNT.NOTE2%,1),1,1,STD) = "Ch=0")
it works a treat. Again something even more useful for the future; if it were not for simplicity and other uses of this 'note', in this case there would be no need to start text on the 2nd Paragraph, just after a comma. I think I am understanding the 'bracket nesting' a bit more, at least how to bodge and combine different elements!

Out of interest, I have been playing with the text scheme to try and get the number of marriages for spouses in a diagram so that one knows there may be a step family(s). I was hoping to create 1 item template with a kind of ELSE statement but these multiple items with the only output if previous item blank worked and are effectively an ELSE:
=TextIf(Exists(%INDI.FAMS[4]%),Text("fam>3"),)
=TextIf(Exists(%INDI.FAMS[3]%),Text("fam=3"),) - only output if previous item blank
=TextIf(Exists(%INDI.FAMS[2]%),Text("fam=2"),) - only output if previous item blank

Re: End of Line Marker

Posted: 31 Oct 2016 22:30
by tatewise
Jim, sorry about the typo in GetParagraph(...) but you sorted it out OK.

You can combine such TextIf(...) functions into one expression providing it does not exceed a certain number of characters.
The TextIf(...) function has its own else clause after the 2nd comma, i.e. TextIf( condition, if true text, else text )
That else clause can be another function such as a nested TextIf(...)

So combining the first two (and eliminating redundant Text(...) functions) becomes:
=TextIf( Exists(%INDI.FAMS[4]%), "fam>3", TextIf( Exists(%INDI.FAMS[3]%), "fam=3", ) )
and integrating the third becomes:
=TextIf( Exists(%INDI.FAMS[4]%), "fam>3", TextIf( Exists(%INDI.FAMS[3]%), "fam=3", TextIf( Exists(%INDI.FAMS[2]%), "fam=2", ) ) )

Re: End of Line Marker

Posted: 31 Oct 2016 23:11
by jimlad68
Thanks, the Help for TextIf makes more sense now, real life examples make things a lot clearer, but the nesting, despite being logical, gets messy. It reminds me of mainframe DB2 database SQL, I had to occasionally create convoluted nested queries for my realtime database interrogations, whereas the programmers would write many lines of easier to follow code, indeed, they said it was more cpu efficient, but that's another story, another time.

Re: End of Line Marker

Posted: 01 Nov 2016 09:54
by tatewise
Agreed, the nesting can get convoluted, but in many cases where Expressions are supported there is no alternative.
In Text Schemes you have the luxury of only output if previous item blank acting as an else clause.
I have proposed Wish List Ref 498 User Defined Macros (or Custom Functions) to support a method of simplifying such complex nested structures, etc.