Genii Weblog
MRTYB with Midas #6 - Construct complex and elegant reports
Sat 14 Jan 2006, 12:33 PM
Tweetby Ben Langhinrichs
I had a customer request to pick up where I left off with my customer inspired list of the top ten ways to use Midas which I started back in November with:
MRTYB #10 - Rich text comparisons with red-lining
MRTYB #9 - Manage doclinks, URL links and link hotspots
MRTYB #8 - Build dynamic forms
MRTYB #7 - Work with images in rich text and in image resources
A pretty good list so far, but I now offer #6...
MRTYB #10 - Rich text comparisons with red-lining
MRTYB #9 - Manage doclinks, URL links and link hotspots
MRTYB #8 - Build dynamic forms
MRTYB #7 - Work with images in rich text and in image resources
A pretty good list so far, but I now offer #6...
#6) Construct complex and elegant reports |
Description
While it is said that a picture is worth a thousand words, your boss probably won't accept a picture, so what you really need is a report. Notes does a fair job of collecting and sorting information into views, but views make lousy reports, whether or not they are printed. Midas is not a report writing product, but you can write a very elegant report using information collected by views, agents or external data sources. These reports can be designed for printing (despite rumors to the contrary, you CAN print from Note), or for on-line viewing. On-line reports can take advantage of all the special rich text tricks available, including tabbed tables, progressive disclosure and more.
History
Since the first version of Midas in June of 1997, customers have been using it to build reports. At first, these were mostly formatted tables with doclinks, since little else was available in Notes 4.1, but as every Notes release has added features, people have incorporated them into their reports. Colors, sections, tabbed tables, embedded views, and even layers have been used by everyone from IBM (present condensed reports to top executives reading about the new "internet" back in Release 4.5) down to the smallest SMB. While very few features are added to Midas for the explicit purpose of report writing, every rich text attribute which is controlled by Midas enables a more flexible approach to report writing. Recently, SmartRefs were added to Midas, and these have been used in some complex reports to create even richer content.
Comparison with standard Notes/Domino functionality
Notes 6.x incorporates some ability to create tables, which are almost always part of a report, but has offered little in the way of complex formatting or access to rich text elements such as nested tables or specialized attributes. There is no facility in the backend to import images to "pretty up" the report, no facility to modify to create contextual links, no ability to control layers, etc. Report writing in the Notes model is little more than support for views.
Documentation
Documented on report writing in particular is fairly slim, both in the Help database and in samples. While all the methods and properties necessary are available, the ways to put them together are not. There are, however, many samples available directly from Genii Software showing different sorts of reports and offering code to gt you started. Try posting a question in the Support Forum if you want one of these samples. Be sure to describe the data you want to report on and the type of report you envision.
On-line demo
None available at this time.
Sample Database
Report It! 2.0 - Featured Sample (Notes client) Formatted Text, Image Resources, Images, Tables
Sample reports created using the Midas Rich Text LSX.
Sample reports created using the Midas Rich Text LSX.
In addition to this specific sample, the techniques used in Walden are useful, as are those used in the Design Demo sample, although without the fields. In addition, the AppendTable sample shows how to create some of the tables necessary.
Images of a sample nested tabbed report (showing Fix List db)
This image is captured from the Fix List nested tabbed table report I create from time to time in the Lotus Business Partner forum. Note that this fairly simple report includes two levels of nesting, links to SPR documents, bullet items, fonts, colors, etc., but still maintains a clean, easy to read interface. The amazing thing is that in a single page you can see what takes seventy two page downs to see in an expanded view, or four and a half pages even when just collapsed to one category.
Sample Script Snippet
This snippet is taken from the actual script used to generate the tabbed table above. Note the use of AppendText with various fonts, AppendParagraph to set and clear bullets, and AppendLink to create URL links:
' *** Add the technical area title and set up bullets for items
Call rtchunk.AppendParagraph("-Bullet_List " & NON_BULLET_MARGINS & NON_BULLET_SPACING)
If firstOnTab Then
Call rtchunk.AppendText(entry.ColumnValues(0), CATEGORY_FONT)
Else
Call rtchunk.AppendText(Chr(0) & entry.ColumnValues(0), CATEGORY_FONT)
End If
firstOnTab = False
Call rtchunk.AppendParagraph("+Bullet_List " & BULLET_MARGINS & BULLET_SPACING)
' *** Cycle through each item, adding links to the full document (on web, although it could easily be doclink or hyperlink)
Set child_entry = nav.GetChild(entry)
Set child_entry = nav.GetChild(child_entry)
Do
Call rtchunk.AppendText("SPR# ", SPR_FONT)
If INCLUDE_LINKED_SPR = "URL" Then
Call rtchunk.AppendLink(child_entry.ColumnValues(3), "http://www-10.lotus.com/ldd/r5fixlist.nsf/SPR/" & child_entry.ColumnValues(3))
Elseif INCLUDE_LINKED_SPR = "Doclink" Then
Call rtchunk.AppendLink(child_entry.ColumnValues(3), db.ReplicaID, sourceview.UniversalID, _
child_entry.Document.UniversalID, "Click here to open SPR document...", db.Server)
Else
Call rtchunk.AppendText(child_entry.ColumnValues(3))
End If
Copyright © 2006 Genii Software Ltd.
What has been said: