Sorry for this belated response, just catching up, but it is a subject dear to my genealogy heart.
I use ASSOiations instead of Witness etc or any none genealogically related individuals. The main reason I have never used Witnesses is because it is not GEDCOM standard and exports to other genealogy databases very badly, if at all. Having said that ASSOs do not export that well either! And I must admitt 'my jury' is still out as to which is the lesser of evils.
In particular I use 2-way ASSOs via AS for marriage witnesses, but also for things connected to probate and wills, funerals, baptisms etc.
I also use a custom fact 'Note_Common_Source'
with this fact advanced option 'Use Override Template for Facts tab Listings':
Cmn_Src: < {_place}:> {%FACT.SOUR[1]>TITL%}: {%FACT.SOUR[2]>TITL%} : {%FACT.SOUR[3]>TITL%} : {%FACT.SOUR[4]>TITL%}
and this sentence
<br>[] See Common Note Source(s) <for {date:COMPACT}><: {_place}:> <<br> - {%FACT.SOUR[1]>TITL%} > <<br> - {%FACT.SOUR[2]>TITL%}> <<br> - {%FACT.SOUR[3]>TITL%}> <<br> - {%FACT.SOUR[4]>TITL%}>
-- With this I can create a Source to show a connection between various people, for instance from a probate, or a family 'circumstance'. e.g. source titles might be:
V_Probate~19060629~Samuel MORL (18251112-19060530) (mentions-Edmund Morl, Ann Sutton)
Family Note~Levi Buxton+Sarah Jane Hilson~19010330~Family split up at 1901 census
-- The source detail would then show on reports.
Post TMG I am now converted to 'type 1' sources and theoretically see no reason to use witness or ASSO. If Sources are the basis of all things, all relationships/facts/Witness/ASSO can be connected/calculated via Sources. The problem is that I have not found a genealogical program that connects people (reports, trees etc) via Sources (only by facts, parent/sibling etc). I have no doubt there would be a way to do this in FH via either a query or plugin, but way beyond me.
FH is not good at reporting ASSO (neither some other things like the new PLACES), but FH being what it is there are often ways around it:
<> For diagrams I use this in the text scheme (1+ finds all for diagrams):
- check if there is an ASSO to add some text
=ExistsText(%INDI.ASSO[1+]%,"Assoc")
- if it is there this will print it
:%INDI.ASSO[1+]>%
<> In a sentence you can add to a fact like this with my BIRTh (I should add I use sentences to tabulate my data rather than a readable text flow):
[][]____ {individual} ____[][] ::Parents= {%CUR_PRIN.~FATH[1]>NAME[1]%}({=LifeDates2(%CUR_PRIN.~FATH[1]>%,STD)}), {%CUR_PRIN.~MOTH[1]>NAME[1]%}({=LifeDates2(%CUR_PRIN.~MOTH[1]>%,STD)})<br> [] BIRTH: <{date:COMPACT}><: {_place}> < <br> {note}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[1]%}> <~~ {%CUR_PRIN.ASSO[1].RELA%}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[2]%}> <~~ {%CUR_PRIN.ASSO[2].RELA%}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[3]%}> <~~ {%CUR_PRIN.ASSO[3].RELA%}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[4]%}> <~~ {%CUR_PRIN.ASSO[4].RELA%}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[5]%}> <~~ {%CUR_PRIN.ASSO[5].RELA%}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[6]%}> <~~ {%CUR_PRIN.ASSO[6].RELA%}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[7]%}> <~~ {%CUR_PRIN.ASSO[7].RELA%}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[8]%}> <~~ {%CUR_PRIN.ASSO[8].RELA%}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[9]%}> <~~ {%CUR_PRIN.ASSO[9].RELA%}> <<br> [] ASSOCIATION: {%CUR_PRIN.ASSO[10]%}>
Unfortunately in FH you cannot yet use the 1+ 'all occurances' in sentences.
<> In the property box I use the tab detailed by Mike above.
<> A query for ASSOs (N.B. I think the "INDI.ASSO[1+]>" does the same as "INDI.ASSO>"
my filename: C:\ProgramData\Calico Pie\Family Historian\Queries\Custom\0_Ind_ASSOsiations.fhq
[Family Historian Query]
VERSION=3.0
TYPE=INDI
DESC=
A complete list of Individuals in the current file, in alphabetical order.
This query has the same columns, and shows the same data, as the Record Wi
ndow in its default configuration, when installed.
.
TITLE="All Individuals"
SUBTITLE="%#x"
ORIENTATION=LANDSCAPE
TAG="Individual","INDI",,,158
TAG="Record Id","=RecordId()",,,57
TAG="Associated Person1+","INDI.ASSO[1+]>"
TAG="Associated Person01","INDI.ASSO>",,DESC,80
TAG="Associated Person02","INDI.ASSO[2]>"
TAG="Associated Person03","INDI.ASSO[3]>"
TAG="Associated Person04","INDI.ASSO[4]>"
TAG="Dates","=LifeDates(,STD)",,,57
TAG="Birth Place","INDI.BIRT.PLAC",,,61
TAG="Relationship to Root","=Relationship(FileRoot(),,TEXT,1)",,,109
TAG="Updated","=LastUpdated()",,,64
TAG="Physical Description Descriptor","INDI.DSCR.TYPE"
TAG="Father","INDI.~FATH>"
FILTER=GEN,EXC,IF,N,"","INDI.ASSO>",,"null"
<> There is also 'Create a 2-way Association' (from FHUG DavidNewton20140720) at
2-way associations (11338)
you can download.
I'm sure there are 'neater' ways of doing these things but they work for me. If anyone has other useful examples they woud be warmly welcomed for perusal!