|
|
|
|
Administrators Customers Important Contributors FamilyTrees.GenoPro.com GenoPro version: 3.1.0.1
Last Login: Wednesday, December 3, 2025
Posts: 3,464,
Visits: 26,854
|
As things seem to have gone a little quiet on this Forum, I thought I'd put up details of my initial attempts at a custom report to perhaps provoke discussion and share ideas.
Whilst being similar and largely based to Dan's original report template, I have tried to adopt a narrative style and make it reasonably comprehensive in terms of data displayed.
i.e full details of birth,baptism,marriage,divorce & separation are shown, together with any comments.
The report uses tables to show full details of any education and occupation items.
Footnotes are used for Source references.
I have tried to get over the problems of hyperlinks by creating reverse link details in Init.htm and storing it as Session items.
I have also added a stylesheet style.css to make it easier to customise fonts, colours etc.
If you want to try the Report Tempate for yourself, download the zip file from http://www.priors.net/genealogy/skins/FullNarrativeV3.zip. Unzip the contents into a new folder under your existing GenoPro skins folder. You should then be able to access the Template in the 'skin name' drop down list of the Report Generator.
Any comments for improvement or details of problems welcome. (I'm no web designer either!)
A sample report can be viewed at http://www.priors.net/genealogy/reports/FullNarrative/default.htm
'lego audio video erro ergo disco' or "I read, I listen, I watch, I make mistakes, therefore I learn"
|
|
|
|
|
Administrators Moderators Customers Gamma FamilyTrees.GenoPro.com Translator GenoPro version: 3.1.0.1
Last Login: Tuesday, October 28, 2025
Posts: 4,886,
Visits: 22,799
|
Congratulation for your creative work. Your report looks very good. With your permission, I would like to distribute your "report skin" as the built-in "Generic Report" for GenoPro. I want to give you credit for your work. What name and contact information do you want me to display as the "author" of the skin?
By the way, I noticed a chinese name at http://myweb.tiscali.co.uk/ronsweb/genealogy/reports/ind00574.htm . Is this normal, or it is a "Unicode bug"?
|
|
|
|
|
Administrators Moderators Customers Gamma FamilyTrees.GenoPro.com Translator GenoPro version: 3.1.0.1
Last Login: Tuesday, October 28, 2025
Posts: 4,886,
Visits: 22,799
|
Dear Ron,
I noticed you have several <Partner_> entries in file Dictionary.xml. I realize I neglected to document the method LanguageDictionary.Peek(str) that does not display an error message when the dictionary entry is not found. I think the method Peek would have saved you time. To go one step further, I am also thinking of adding two new methods, Lookup2(str1, str2) and Peek2(str1, str2) where str2 is the fallback in case the first entry str1 is not found.
I also noticed the subroutine IsPresent determines if a field is present. I realize such a subroutine could be built-in to the report generator. You also wrote a subroutine named nb which inserts if the field is empty. I would like to hear your opinion on the method EnableWriteNbspOnEmptyText.
If you provide me your phone number (by email), I will call you. I am sure we can exchange valuable information and improve the report generator better.
|
|
|
|
|
Administrators Customers Important Contributors FamilyTrees.GenoPro.com GenoPro version: 3.1.0.1
Last Login: Wednesday, December 3, 2025
Posts: 3,464,
Visits: 26,854
|
Thanks for response. Yes, a Lookup2 method for Dictionary entries would be valuable. The Japanese characters entry was not a bug, I was just testing that they would be displayed OK. Its the same sample file as I used of SVG testing so its a hang over from that.
The IsPresent function is to test that at least one 'sub-tag' is present in a group, the 'groups' being birth, baptism, civil marriage, divorce etc. This is particularly useful when trying to achieve a narrative style report. a built-in Util.IsPresent would be good, especially if it wasn't necessary to give the 'flags' parameter). As you are aware, the 'nb' function (no_blanks) was needed to ensure that the table cells were not empty, otherwise the cell border is not displayed. As an alternative to your suggested EnableWriteNbspOnEmptyText , which as you say could lead to confusion, perhaps an additional encoding qualifier to WriteFormatted, i.e. {&t} could be qualified with say c to indicate table cell so {&tc} would encode and add the <td> and </td> tags and automatically substitute if blank. I was unaware of the border-collapse option so thanks for that. I had tried the more intuitive empty-cells:show with no effect
Since publishing the sample, I've noticed a couple of bugs in it. I've got the wrong test for 'exclude_from_report' and the Occupations table is wrongly formatted. I have corrections for these but I'm also working on an option for disguising living individuals (Living="Hide") and supress Comments using the Report Parameters facility, this should enable me to publish my own tree. So I'll republish the sample in a day or two when the amendments are completed. It will also have a couple of other options, specified using a custom tag 'Report_Options' for Individuals and Families; 'NoComments' will suppress comments just for specific Individuals/Families and 'Show' will allow specific living individuals to be displayed (e.g. those that have given consent)
By the way, I initially found it confusing that the properties is_dead, exclude_from_reports and hyperlink.internal are described as boolean in Tag Definitions but are actually text/string data types. I find it more natural to write 'If is_dead then ....' rather than 'If is_dead="Y" then ....'
p.s. I'll email my contact details.
'lego audio video erro ergo disco' or "I read, I listen, I watch, I make mistakes, therefore I learn"
|
|
|
|
|
Administrators Moderators Customers Gamma FamilyTrees.GenoPro.com Translator GenoPro version: 3.1.0.1
Last Login: Tuesday, October 28, 2025
Posts: 4,886,
Visits: 22,799
|
Thanks for your comments.
I find it more natural to write 'If is_dead then ....' rather than 'If is_dead="Y" then ....
I agree. This is legacy stuff before the report generator. In the begining, all tags were text, and they evolved to more complex data types for the report generator. I need fix this and keep all tags to their native data types such as boolean. In fact, I don't like the underscore anymore. I never use underscore when I write code, however I wanted all tags to be lowercase, so I decided to use the underscore. Now, I am thinking of having IsDead rather than is_dead. Of course, I will keep the is_dead to honor compatibility with existing tools
|
|
|
|
|
Customers GenoPro version: 2.5.4.1
Last Login: Friday, October 18, 2013
Posts: 142,
Visits: 3,822
|
Ron,
I am very impressed with what you created here. Very detailed. As a matter of fact exactly what I have been looking for. Excellent job!
Two comments:
1. When running your script, the following error appears:
Processing template 'individual.htm'...
Error at line 177 generating 'ind00576.htm': Object doesn't support this property or method: 'i.death.disposition.comment'
Microsoft VBScript runtime error 800A01B6
2. I believe the location of each of the different sections appear in the web page should be reconfigured:
The name index on the leftmost pane,
Initial Letter Search on right, top-most pane
The family names on immediately below that
The details on bottom right
Also, the pane with details should be a bit narrower, so as not to require using the scrool bars left and right.
Here is the new code for the look I was seeking:
<frameset cols="27%,*">
...
<frame name="toc" target="main" src="toc_individuals.htm" scrolling="auto" marginwidth="12" marginheight="12">
<frameset rows="84,108,*">
<frame name="main" src="home.htm" scrolling="no" target="index">
<frame name="index" src="index.htm">
<frame name="detail" src="detail.htm" scrolling="auto" marginwidth="40" marginheight="16">
</frameset>
</frameset> |
Please don't be put off by my comments. The items in comment 2 are very nit-picky. You have done a fantastic job !! Thank you for sharing this with everyone.
Danny
|
|
|
|
|
Administrators Moderators Customers Gamma FamilyTrees.GenoPro.com Translator GenoPro version: 3.1.0.1
Last Login: Tuesday, October 28, 2025
Posts: 4,886,
Visits: 22,799
|
The runtime error regarding 'i.death.disposition.comment' is because there is no such tag named 'i.death.disposition.comment'. Perhaps 'i.death.comment'?
Thanks to Ron's work, I will add new methods and properties. For instance, I will add new build-in methods such as WasMarried and IsPresent.
Each enumeration has the id property (the same as i.gender). For instance, the tag family.relation is an emumeration, so you can use family.relation.id which guarantees the returned value is independent of the text value in Dictionary.xml.
Function WasMarried(family)
' check to see if a partnership involved marriage
WasMarried=false
if IsPresent(family.marriage.religious,"dps") then WasMarried=True
if not WasMarried then if IsPresent(family.marriage.civil,"dps") then WasMarried=True
if not WasMarried then if IsPresent(family.divorce,"dpsc") then WasMarried=True
if not WasMarried then if IsPresent(family.separation,"dps") then WasMarried=True
if not WasMarried then
select case family.relation.id
case "Marriage", "Separation", "SeparationLegal", "Nullity", "Divorced", "Widowed"
WasMarried=True
end select
end if
End Function |
|
|
|
|
|
Administrators Customers Important Contributors FamilyTrees.GenoPro.com GenoPro version: 3.1.0.1
Last Login: Wednesday, December 3, 2025
Posts: 3,464,
Visits: 26,854
|
Thanks Dan & 'rdn' for the input. I've now posted an updated sample report (see 1st post above for URLs). This has the privacy features I mentioned in my 2nd post above, and 'living' individuals are hidden by default.
I've removed the reference to i.death.disposition.comment. It was present in my GenoPro file, it must have been created as a custom tag during a Gedcom import. So a question for Dan, can we have a function to test whether or not a Custom Tag is present? say IsTag(...). In the updated sample I'm using a custom tag Report_Options. I have to use 'on error' statements in case it does not exist. I have also change the function WasMarried to incorporate Dan's suggestion (.id). I have also changed its name to just 'Married' as it could be IsMarried, WereMarried, AreMarried as well as WasMarried!
I have changed the layout slightly to provide for a title banner in 'heading.htm'. I have not adopted 'rdn' proposal as yet. I deliberately place 'detail.htm' in the top left as I wanted it to be the primary focus for the reader rather than the index.
I'll look into the feasibility of having two layout styles, perhaps selected by a Config.xml Parameter.
'lego audio video erro ergo disco' or "I read, I listen, I watch, I make mistakes, therefore I learn"
|
|
|
|
|
Administrators Moderators Customers Gamma FamilyTrees.GenoPro.com Translator GenoPro version: 3.1.0.1
Last Login: Tuesday, October 28, 2025
Posts: 4,886,
Visits: 22,799
|
I knew I would have to handle this issue soon... Next week, I will add a method named ReportGenerator.Document.RegisterTag(strTagName [, strObjectType]) to let the report generator aware of the presence of a user-defined tag. Once a tag has been "registered", it will no longer trigger an error if not present in the .gno file. Of course, all registered tags will return an empty value if not present in the .gno file. I will also add the method IsTag(strTagName [, strObjectType]) to offer additional flexibility.
Keep up the feedback .
|
|
|
|
|
Administrators Customers Important Contributors FamilyTrees.GenoPro.com GenoPro version: 3.1.0.1
Last Login: Wednesday, December 3, 2025
Posts: 3,464,
Visits: 26,854
|
I've now uploaded the version of my sample report template with 2 layout options, my orginal one and another similar to 'rdn's suggestion but with a heading frame. The choice of which layout is determined in the Config.xml file with the Layout parameter. The default is 'standard' - my version, you can also set it to "rdn" for rdn's version. Note that in the latter case the introductory text in the 'detail' frame is taken from detail_rdn.htm instead of detail.htm. Of course the text in these frames can be changed as required.
Another minor amendment is to change the custom tag Report_Options to report_options to bring it more in line with GenoPro's naming style. I found it a bit of a pain changing these tags with Tag Editor, it wouldn't let me delete and replace the tag as GenoPro insisted on keeping the old name with the upper case letters. So I did a find & replace in the .xml file instead and imported that into GenoPro.
The revised sample report template can be downloaded from the same place http://www.priors.net/genealogy/skins/FullNarrativeV3.zip.
'lego audio video erro ergo disco' or "I read, I listen, I watch, I make mistakes, therefore I learn"
|