<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3095049585949690284</atom:id><lastBuildDate>Wed, 21 Oct 2009 03:44:28 +0000</lastBuildDate><title>Notes On Lotus Notes</title><description>Short notes on developing Lotus Notes client applications.</description><link>http://notesonlotusnotes.blogspot.com/</link><managingEditor>noreply@blogger.com (janeg)</managingEditor><generator>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/NotesOnLotusNotes" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-9030474986734484475</guid><pubDate>Wed, 29 Apr 2009 02:17:00 +0000</pubDate><atom:updated>2009-04-28T22:25:36.217-04:00</atom:updated><title>The jig is up</title><description>Yesterday was my last day at IBM, I have now officially joined the ranks of the retired.  It's highly unlikely I will be doing any future Notes development so this blog has also come to an end.&lt;br /&gt;&lt;br /&gt;Best wishes to everyone in the Notes community, without you I doubt I would have survived in the field as long as I did :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-9030474986734484475?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/s8PxB9RhfPw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/s8PxB9RhfPw/jig-is-up.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2009/04/jig-is-up.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-6167595721402910566</guid><pubDate>Fri, 10 Oct 2008 20:13:00 +0000</pubDate><atom:updated>2008-10-10T16:21:17.364-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gotcha's</category><title>Focus on document with Embedded View</title><description>This is a silly one but had me scratching my head for a bit.  Have a database with two almost identical forms, both have Embedded Views and an &lt;span style="font-weight: bold;"&gt;Edit Document&lt;/span&gt; action button.  Clicking the Edit action in one form  puts the document into Edit mode; clicking the Edit action on the second form does nothing!  Why does the first form open with the correct focus and the second one doesn't?&lt;br /&gt;&lt;br /&gt;Did some digging and found &lt;a href="http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/dc22994ce1ab0f1e8525712600592b65?OpenDocument&amp;amp;Highlight=0,document,focus,embedded"&gt;this post&lt;/a&gt; on Notes Net.  Nice, did my first form already have a hotspot?  Nope.  But it did have a  &lt;span style="font-weight: bold;"&gt;Computed Text&lt;/span&gt; item before the embeded view. Added a Computed text item to the second form, and &lt;span style="font-style: italic;"&gt;voila&lt;/span&gt; the Edit action worked as expected.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-6167595721402910566?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/Q_7Nd4CSM8k" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/Q_7Nd4CSM8k/focus-on-document-with-embedded-view.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2008/10/focus-on-document-with-embedded-view.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-1513786345268963417</guid><pubDate>Fri, 16 May 2008 15:12:00 +0000</pubDate><atom:updated>2008-05-16T11:53:40.345-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DXL Transformer</category><category domain="http://www.blogger.com/atom/ns#">design synopsis</category><category domain="http://www.blogger.com/atom/ns#">XSLT</category><title>New XSL for Form and Database</title><description>I've added two new stylesheets: dsDatabase.xsl and dsSingleFormSubformOrPage.xsl  (see sidebar for links)&lt;br /&gt;&lt;br /&gt;dsDatabase.xsl provides a &lt;a href="http://www.janeg.ca/notes/dsMailDb.html"&gt;short synopsis of a database&lt;/a&gt; while dsSingleFormSubformOrPage.xsl provides &lt;a href="http://www.janeg.ca/notes/dsMemoForm.html"&gt;considerably more detail&lt;/a&gt;.  Both make use of the ds.css stylesheet cribbed from Christian Gorni's Synopsis2.css (if you're using Firefox use the 'Open in IE tab' to see the correct .css format; the page links won't work correctly but they do when you run thinks through DXL Transfomer).  One drawback, the Form stylesheet is only meant to be used with one form at a time; it will produce output for all forms if more than one is selected but the page links will only work for the first form.&lt;br /&gt;&lt;br /&gt;Some features of the new Form synopsis are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    List of all properties not having a value of 'false'&lt;/li&gt;&lt;li&gt;    List of Shared Fields, Actions and Subforms (with details if available)&lt;/li&gt;&lt;li&gt;    An indexed table of Fields&lt;/li&gt;&lt;li&gt;Hide-when Properties and Formulas&lt;/li&gt;&lt;li&gt;Keyword field types (radiobutton, dialoglist, etc) with choices/formula&lt;br /&gt;&lt;/li&gt;&lt;li&gt;    Formatted Notes Names&lt;/li&gt;&lt;li&gt;    Formatted formula/script code (long lines are wrapped)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I've also updated REPORT-DesignElements.xsl with the new format templates.&lt;br /&gt;&lt;br /&gt;Working with the DXL Transformer utility is a bit of a pain as it provides no debug information; the transform either works or fails.  Thankfully I found &lt;a href="http://xmlcooktop.com/"&gt;Cooktop&lt;/a&gt;, this free XML editor allows you to load a stylesheet and and and .xml file so I was able to export an xml for a form, load it up and use it in Cooktop for testing.&lt;br /&gt;&lt;br /&gt;On to Views.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-1513786345268963417?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/bKc69Ygu1gM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/bKc69Ygu1gM/new-xsl-for-form-and-database.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2008/05/new-xsl-for-form-and-database.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-1241030186948396480</guid><pubDate>Fri, 09 May 2008 23:08:00 +0000</pubDate><atom:updated>2008-05-09T19:18:36.469-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DXL Transformer</category><category domain="http://www.blogger.com/atom/ns#">design synopsis</category><category domain="http://www.blogger.com/atom/ns#">xsl</category><title>Revised XSLT Design Synopsis Template</title><description>Worked out most of the bugs (I think).  The field hide-whens are now showing up where they belong, with the fields, and the code section is limited to the 'form' , 'view' or 'actionbar' and not all the code in the form, view, etc.&lt;br /&gt;&lt;br /&gt;It's still pretty rough and does not pick up all the attribute values for each entity so I'll probably keep playing with templates; developing individual templates for each design element.&lt;br /&gt;&lt;br /&gt;I've added a 'DXL Templates' list on the left with links to what I've done so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-1241030186948396480?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/0IuAxZpQOZQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/0IuAxZpQOZQ/revised-xslt-design-synopsis-template.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2008/05/revised-xslt-design-synopsis-template.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-3681517938469778664</guid><pubDate>Mon, 28 Apr 2008 02:23:00 +0000</pubDate><atom:updated>2008-05-07T12:33:57.128-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DXL Transformer</category><category domain="http://www.blogger.com/atom/ns#">xsl</category><title>XSLT Template for Design Elements</title><description>Awhile back &lt;a href="http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/please-write-an-xsl-for-design-synopsis?opendocument&amp;amp;comments#anc1"&gt;Andre Guirard&lt;/a&gt; promised a nice umbrella to anyone who would take a crack at creating a stylesheet that could be run through DXL Transformer and produce something similar to the Design Synopsis.  I haven't played with XSLT in a few years but had some extra time this week and decided to give it a try.&lt;br /&gt;&lt;br /&gt;First, I poked around on notes.net to see if anyone else had already done something similar; I found a &lt;a href="http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/65a85bfb133285ef8525708500438596?OpenDocument"&gt;2005 post by Joseph P White&lt;/a&gt; that I used as a starting point.  I created two stylesheets &lt;a href="http://www.janeg.ca/Notes/REPORT-ListDesignElements.xsl"&gt;REPORT-ListDesignElements.xsl&lt;/a&gt; and &lt;a href="http://www.janeg.ca/Notes/REPORT-DesignElements.xsl"&gt;REPORT-DesignElements.xsl&lt;/a&gt;.  The first simply lists all design elements in the database (in DXL Transformer, you need to select all elements for this to work correctly).  The second will list details on one or more selected elements: Forms, Subforms, Agents, Script Libraries, etc.&lt;br /&gt;&lt;br /&gt;Output Examples:&lt;br /&gt;&lt;a href="http://www.janeg.ca/Notes/PersonalJournalDesignElements.html"&gt;Personal Journal Design Elements&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.janeg.ca/Notes/PersonalJournal_JournalEntry.html"&gt;Personal Journal Form&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.janeg.ca/Notes/PersonalJournal_View.html"&gt;Personal Journal View&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.janeg.ca/Notes/PersonalJournal_ScriptLib.html"&gt;Personal Journal Script Library&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To use the stylesheets, just save them to your notes\data\xsl directory; open a database in Designer and fire up Tools-&gt;DXL Utilities-&gt;DXL Transformer, select one or more design elements and the REPORT-DesignElement.xsl stylesheet.&lt;br /&gt;&lt;br /&gt;If you don't see DXL Utilities under Tools, edit your current location document and change your browser to Internet Explorer (I hope they've fixed this in Notes 8 so it will work with FireFox).&lt;br /&gt;&lt;br /&gt;I've commented the .xsl documents so hopefully modifying them to suit your own needs won't be an onerous task.  If you improve on them please share :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Edit:&lt;/span&gt;  Looks like this is not quite ready for prime time, the FIELD code for the HIDE-WHEN does not show up in the field section; same for the CLICK values of buttons and hotspots.  Needs some re-engineering.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-3681517938469778664?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/bRjONjUkC1M" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/bRjONjUkC1M/xslt-template-for-design-elements.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2008/04/xslt-template-for-design-elements.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-2090406343328455785</guid><pubDate>Thu, 03 Apr 2008 15:12:00 +0000</pubDate><atom:updated>2008-04-03T11:32:16.479-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DialogBox</category><title>DialogBox Behaviour</title><description>A dialogbox contained a checkbox option whose value was not being returned if  the user closed the dialogbox by hitting Esc or clicking the 'x' in the window frame instead of using the dialog OK button.  The fix was a simple one: added @Command([RefreshParentNote]) to the QueryClose event of the dialog form and the checkbox data was correctly passed to the underlying document. The command has been around since Notes 5 but I wasn't aware it existed (or if I was, I'd totally forgotten about it).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The command (also available through NotesUIWorkspace) is also useful if you want to create your own dialog buttons.  For example &lt;span style="font-weight: bold;"&gt;Close&lt;/span&gt; instead of &lt;span style="font-weight: bold;"&gt;Ok&lt;/span&gt; or &lt;span style="font-weight: bold;"&gt;Cancel&lt;/span&gt;.  Add your custom button to the dialog form and use&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;@Command([RefreshParentNote])&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;@Comand([FileCloseWindow])&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;When calling the dialogbox, set &lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;noOkCancel&lt;/span&gt;&lt;/span&gt; to &lt;span style="font-weight: bold;"&gt;True&lt;/span&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-2090406343328455785?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/0I4d8-xIfDQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/0I4d8-xIfDQ/dialogbox-behaviour.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2008/04/dialogbox-behaviour.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-1942847742616339599</guid><pubDate>Fri, 05 Oct 2007 18:22:00 +0000</pubDate><atom:updated>2007-10-05T15:54:57.876-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gotcha's</category><title>Run Exiting/OnChange Gotcha</title><description>I've been struggling with a navigation design that relies on a combination of Dialog List and Radio Button selections to populate various folders; the code is in the &lt;span style="font-style: italic;"&gt;OnChange()&lt;/span&gt; event; when triggered, it finds the necessary documents, populates and displays the appropriate folder and tracks the current and previous selection values for each field.&lt;br /&gt;&lt;br /&gt;The setup works but there are odd behaviours that I have not been able to isolate and track.&lt;br /&gt;&lt;br /&gt;Yesterday I was searching &lt;a href="http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/5f04af1663bfcc4e8525714900515f08?OpenDocument"&gt;notes.net&lt;/a&gt; for references to the &lt;span style="font-style: italic;"&gt;OnChange()&lt;/span&gt; event and stumbled across the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Very important!&lt;/span&gt; The onChange event &lt;u&gt;will run twice&lt;/u&gt; for every value change: once when the user changes the value, and again when the user leaves the field...&lt;/blockquote&gt;&lt;/span&gt;Ah Ha! Is that the source of my problem?  Did some testing today and, sure enough, that is it. Or at least, a big part of what has been causing me headaches.&lt;br /&gt;&lt;br /&gt;This is what happens, when the user makes a Radio Button selection and the fields 'Run Exiting/OnChange' is set and there is script in the &lt;span style="font-style: italic;"&gt;OnChange()&lt;/span&gt; event:&lt;br /&gt;&lt;pre&gt;Entering onChange Event-&gt;prevVal= (Length: 0)&lt;br /&gt;Entering onChange Event-&gt;currVal= (Length: 0)&lt;br /&gt;&lt;br /&gt;Exiting onChange Event-&gt;prevVal= (Length: 0)&lt;br /&gt;Exiting onChange Event-&gt;currVal= Two(Length: 3)&lt;br /&gt;----------------------------------------------&lt;br /&gt;&lt;/pre&gt;And here's what happens when the user exits the same field:&lt;br /&gt;&lt;pre&gt;Entering onChange Event-&gt;prevVal= (Length: 0)&lt;br /&gt;Entering onChange Event-&gt;currVal= Two(Length: 3)&lt;br /&gt;&lt;br /&gt;Exiting onChange Event-&gt;prevVal= Two(Length: 3)&lt;br /&gt;Exiting onChange Event-&gt;currVal= Two(Length: 3)&lt;br /&gt;&lt;/pre&gt;You can see that the &lt;span style="font-style: italic;"&gt;prevVal&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;and &lt;span style="font-style: italic;"&gt;currVal&lt;/span&gt; variables end up being equal. &lt;span style="font-style: italic;"&gt;The script setting these values is executed twice!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By contrast, using a DialogList which does not have the 'Run Exiting/OnChange' option but has script in the &lt;span style="font-style: italic;"&gt;OnChange()&lt;/span&gt; event:&lt;br /&gt;&lt;pre&gt;Entering onChange Event-&gt;dlprevVal=&lt;br /&gt;Entering onChange Event-&gt;dlcurrVal=&lt;br /&gt;&lt;br /&gt;Exiting onChange Event-&gt;dlprevVal=&lt;br /&gt;Exiting onChange Event-&gt;dlcurrVal= Cheyenne&lt;br /&gt;&lt;/pre&gt;The script in the &lt;span style="font-style: italic;"&gt;OnChange()&lt;/span&gt; event is executed only once; when the field is exited.&lt;br /&gt;&lt;br /&gt;The workaround (for the Radio Button field) is to add a third variable, load it with the current selection and compare it to the saved current value; if they match, skip the code that sets current and previous values.&lt;br /&gt;&lt;pre&gt; Dim ws As New NotesUIWorkspace&lt;br /&gt; &lt;br /&gt; value$ = ws.CurrentDocument.FieldGetText("test1")&lt;br /&gt; If(value$ &lt;&gt; currVal$) Then&lt;br /&gt;  prevVal$ = currVal$&lt;br /&gt;  currVal$ = value$&lt;br /&gt; End If&lt;br /&gt;&lt;/pre&gt;I searched the help files for an explanation of what I'm seeing, this is the only entry I could find for &lt;span style="font-style: italic;"&gt;Run Exiting/OnChange&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;Special Notes Client Event Options (this section appears only for certain fields, including checkbox, radio button, list box, combobox, and time zone fields).&lt;br /&gt;Run Exiting/OnChange events after value change - If you check this field, the OnChange event is triggered when the value in the field is changed.&lt;br /&gt;If you leave this field unchecked, the OnChange event is not triggered unless the value in the field has changed and the focus has left the field.&lt;/blockquote&gt;I wish they had worded it a little better.  I was under the impression that the event would be triggered immediately if the box was checked OR, if the box was unchecked, the event would be triggered when the field was exited.  Not that the event would trigger &lt;span style="font-style: italic;"&gt;both times&lt;/span&gt; if the box was checked :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-1942847742616339599?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/UA4XcfuYBbQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/UA4XcfuYBbQ/run-exitingonchange-gotcha.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2007/10/run-exitingonchange-gotcha.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-520284635310922918</guid><pubDate>Tue, 31 Jul 2007 01:18:00 +0000</pubDate><atom:updated>2007-07-30T21:55:04.645-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Rich Text fields</category><category domain="http://www.blogger.com/atom/ns#">Reader fields</category><category domain="http://www.blogger.com/atom/ns#">Author fields</category><title>Playing catch up</title><description>Wow! Hadn't realized it's been almost two months since my last post. Just haven't had the time but want to correct that now and take a moment to thank the Notes community.. while I haven't been actively participating I have been actively mining various blogs and posts.&lt;br /&gt;&lt;br /&gt;First, thanks to Andre Guirard for his &lt;a href="http://www-10.lotus.com/ldd/46dom.nsf/11a0b6a64ffb3d8d85256a4c004f1bbd/e0359d10a2307d1885256c61000707b7?OpenDocument"&gt;Complete Reader and Author Field Troubleshooter&lt;/a&gt; post on &lt;a href="http://www.notes.net"&gt;notes.net&lt;/a&gt;.  I usually avoid using these fields, preferring to rely on the ACL groups but I couldn't get away from them last month and Andre's post helped me out, didn't realize the names had to be canonical to work correctly.&lt;br /&gt;&lt;br /&gt;Second, thanks to Shane Hollis for his comment to enorki's SnTT entry &lt;a href="http://www.eknori.de/archives/348"&gt;Insert RichText into RichText with LotusScript - Chapter 2&lt;/a&gt;.  I needed to create a rich text history field and was having some difficulty with it until I read Shane's example; it was the &lt;span style="font-family: courier new;"&gt;Call doc.removeItem("tmpHistory")&lt;/span&gt; that solved my problem.  And thank you to the IBM Support team for supplying the cool little &lt;a href="http://www-1.ibm.com/support/docview.wss?rs=0&amp;uid=swg24004166"&gt;Unhide Rich Text Utility&lt;/a&gt;.  I had to convert an existing rich text field that had a hide/when formula.  When I copied it to the new rich text history field it carried the hide/when with it. The little utility allowed me to quickly clean up all the existing fields. (Note to self: &lt;span style="font-style: italic;"&gt;do not use hide/when formulas on rich text fields!)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've also been keeping an eye on Nathan Freemans &lt;a href="http://www.lotus911.com/nathan/escape.nsf/d6plinks/NTFN-75GF6M"&gt;Revolution posts&lt;/a&gt;;  it strikes me as one of those techniques that is simple once you get it but which, on the surface, doesn't appear to be of any immediate use.  Which means I'm not getting it.  Hopefully will have some time this month to walk through the example databases carefully and think about how and where I could apply the technique.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-520284635310922918?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/OBcFmCZA38w" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/OBcFmCZA38w/playing-catch-up.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2007/07/playing-catch-up.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-2451045347350526580</guid><pubDate>Mon, 07 May 2007 21:40:00 +0000</pubDate><atom:updated>2007-05-07T17:41:06.368-04:00</atom:updated><title>Links and 'Object variable not set'</title><description>Tripped over my own feet on this one. I have a form with an action button with LotusScript code behind it. When new documents are created an email notifier is sent with a link back to the document. If users opened the document via the email link and then clicked the action button they would sometimes get an 'Object variable not set' error; other times it appeared to work properly.&lt;br /&gt;&lt;br /&gt;After some poking around discovered that if the document was in a local copy of the database and that database was open the action button worked fine. But if it was in the server copy and had not been replicated to the local copy, the error occurred, even if the local copy was open.&lt;br /&gt;&lt;br /&gt;Problem was in the action button script, I was using &lt;span style="font-family: courier new;"&gt;ws.CurrentDatabase.Database&lt;/span&gt; to grab a reference; the assumption being the user would only use the action button when the database was open (not always the case if they've opened the document from an email link). Changed the code to &lt;span style="font-family: courier new;"&gt;session.CurrentDatabase&lt;/span&gt; and the error went away.&lt;br /&gt;&lt;br /&gt;It was a silly thing I failed to notice when I tested the form. In the future, need to remember to close the database in the designer when testing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-2451045347350526580?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/GysJKSDP-jk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/GysJKSDP-jk/links-and-object-variable-not-set.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2007/05/links-and-object-variable-not-set.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-3053022346648827621</guid><pubDate>Tue, 13 Mar 2007 12:53:00 +0000</pubDate><atom:updated>2007-03-13T09:08:39.308-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gotcha's</category><category domain="http://www.blogger.com/atom/ns#">Errors</category><category domain="http://www.blogger.com/atom/ns#">LotusScript</category><title>Error: Cannot close current program</title><description>Ran into this strange error yesterday when trying to use LotusScript to open a folder in a frame that contained an open document.  After doing some digging I found the &lt;a href="http://www.codestore.net/errors.nsf/0/E1CFBFCE2BE47C7D86256E9600627E2C?OpenDocument"&gt;workaround&lt;/a&gt; courtesy of &lt;a href="http://www.codestore.net/"&gt;codestore.net &lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Turns out there is a whole &lt;a href="http://www.codestore.net/errors.nsf/all?OpenView"&gt;list of errors&lt;/a&gt; and workarounds on Codestore that I knew nothing about; learn something new everyday :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-3053022346648827621?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/oQFKig09290" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/oQFKig09290/error-cannot-close-current-program.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2007/03/error-cannot-close-current-program.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-6734602133294482581</guid><pubDate>Sat, 03 Mar 2007 00:42:00 +0000</pubDate><atom:updated>2007-03-02T19:54:36.710-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gotcha's</category><category domain="http://www.blogger.com/atom/ns#">LotusScript</category><title>Target is ancestor of script</title><description>I've spent the last two days trying to get around this error which was being triggered by an LS call to &lt;span style="font-family: courier new;"&gt;SetTargetFrame&lt;/span&gt; followed by &lt;span style="font-family: courier new;"&gt;EditDocument(False,doc)&lt;/span&gt;.   I needed the document to open up in the right hand frame.  There were a few posts on &lt;a href="http://www.notes.net"&gt;notes.net&lt;/a&gt; saying you could avoid the error by calling &lt;span style="font-family: courier new;"&gt;ws.SetTargetFrame("")&lt;/span&gt; but that didn't work (although it will if you want to open the document up in a new window).  I even tried trapping the error (4426) and doing a &lt;span style="font-family: courier new;"&gt;Resume Next&lt;/span&gt;; that worked, to a point, but I hit the error again in another sub and I really don't like trapping if there's a way to avoid the error to begin with.&lt;br /&gt;&lt;br /&gt;Finally found the solution, in the Help, of all places :rolleyes: But it was under &lt;span style="font-family: courier new;"&gt;EditDocument&lt;/span&gt;, not &lt;span style="font-family: courier new;"&gt;SetTargetFrame&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;This method raises the error lsERR_LSXU13_ANCESTOR_TARGET_FRAME (4426) if it attempts to return a NotesUIDocument object for a target frame that is the ancestor of the frame containing the code. You can suppress returning the object by specifying returnNotesUIDocument as False. The document opens in the target frame but you do not have access to its NotesUIDocument object. Calling this method as a subroutine does not suppress returning the object; you must specify returnNotesUIDocument as False.&lt;/blockquote&gt;Once I modified the call to &lt;span style="font-family: courier new;"&gt;EditDocument(False,doc,True,,False)&lt;/span&gt; the error disappeared.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-6734602133294482581?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/NbZ0W3LbLkQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/NbZ0W3LbLkQ/target-is-ancestor-of-script.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2007/03/target-is-ancestor-of-script.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-5895429123861848431</guid><pubDate>Fri, 02 Feb 2007 16:20:00 +0000</pubDate><atom:updated>2007-02-02T11:30:05.208-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Gotcha's</category><title>Strange frameset/page behaviour</title><description>When I modified the navigator described in my previous post, I had the default right hand pane of the opening frameset load a page instead of a view and suddenly I was getting an &lt;span style="font-style: italic;"&gt;Object variable not set&lt;/span&gt; error.&lt;br /&gt;&lt;br /&gt;After some investigation, I discovered that the &lt;span style="font-family:courier new;"&gt;uidb&lt;/span&gt; variable was no longer being set. The debugger showed that the &lt;span style="font-family:courier new;"&gt;CurrentDatabase&lt;/span&gt; property of &lt;span style="font-family:courier new;"&gt;NotesUIWorkspace&lt;/span&gt;  was  &lt;span style="font-family:courier new;"&gt;Null&lt;/span&gt; even thought the database was open. If I reverted back to loading a view in the initial frameset all was well.&lt;br /&gt;&lt;br /&gt;I have no idea why opening a page in the frameset rather than a view caused the &lt;span style="font-family:courier new;"&gt;CurrentDatabase&lt;/span&gt; property to be empty.  As a workaround I had to revert back to loading a view in the initial frameset and then add code to open the page I wanted users to see immeadiately in to the &lt;span style="font-family:courier new;"&gt;postOpen&lt;/span&gt; event of my navigation page.&lt;br /&gt;&lt;br /&gt;Strange.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-5895429123861848431?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/M2yMNk0aaKA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/M2yMNk0aaKA/strange-framesetpage-behaviour.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2007/02/strange-framesetpage-behaviour.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-6717859057839379099</guid><pubDate>Fri, 02 Feb 2007 14:28:00 +0000</pubDate><atom:updated>2007-02-02T11:16:17.469-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">UI Design</category><title>A Hard Earned Design Lesson</title><description>Roughly three months ago I replaced the navigation in an existing database. The original design consisted of 140+ custom navigators and 750+ views. Basically, users selected a customer logo from an opening page and were taken to a navigator custom built for that customer.  All the navigators had buttons to display the same categories of documents: Parts, Procedures, Contacts, etc.  The document categories had a 1 to 1 correlation with the database forms. There were 7 basic view patterns, 1 for each category. The customized views merely limited the documents to a specific customer. Needless to say, maintenance was a bit of a nightmare and forget about modifying view designs across the board.&lt;br /&gt;&lt;br /&gt;I re-designed the navigation using a navigation form and private on 1st use folders. Basic concept was the same, users select a Customer from a drop down vs a page logo and then select a Category from a radio button field instead of clicking a button.  Pretty straight forward. The initial test user group thought so too. The only 'new' element was an added category &lt;span style="font-style: italic;"&gt;All for Customer&lt;/span&gt; that allowed them to display all documents for the selected customer regardless of the form used to create the document (this made &lt;span style="font-style: italic;"&gt;Search this view&lt;/span&gt; easier). &lt;br /&gt;&lt;br /&gt;The folder design for this category is a hybrid, with a general description column built with form dependent data.  This &lt;span style="font-style: italic;"&gt;All for Customer&lt;/span&gt; category/folder became the default when a customer is first selected.&lt;br /&gt;&lt;br /&gt;Test users were ok with things and the design was put into production as a beta (we allowed them the option to revert to the old navigation system).&lt;br /&gt;&lt;br /&gt;Imagine my surprise yesterday when I discovered that users were not using the new design because they thought the &lt;span style="font-style: italic;"&gt;All for customer&lt;/span&gt; view didn't give them an easy way to see the data. Instead of simply selecting another category, they were jumping over to the old navigation page!&lt;br /&gt;&lt;br /&gt;When questioned they said there were no instructions telling them they needed to 'select a category'! A few said there was no Help document to tell them how to use the new navigator (there is a full help page available by hitting F1 or by selecting Help from the navigator).&lt;br /&gt;&lt;br /&gt;Yet they go to the old navigator, which defaults to Contacts, and have no problem selecting another category if Contacts is not what they want to see. Boggles the mind :(  It was also a hard lesson in how users re-act to a design change. In thinking about what went wrong the following points stand out:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The initial UI test group was composed of people who were also involved in making the design decisions.  Big No, No.  &lt;span style="font-weight: bold;"&gt;Lesson&lt;/span&gt;: Use two test groups, one involved in the design decisions and a second group who have no involvement.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the old design, users Selected a customer and they were presented with&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_4Tb6tOFKv_g/RcNfr0JP1mI/AAAAAAAAAA0/QI0QyirdzGk/s1600-h/custCatSel.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_4Tb6tOFKv_g/RcNfr0JP1mI/AAAAAAAAAA0/QI0QyirdzGk/s320/custCatSel.gif" alt="" id="BLOGGER_PHOTO_ID_5026966815412049506" border="0" /&gt;&lt;/a&gt; a different layout from which they selected a category. It was a 2 step process with&lt;span style="font-style: italic;"&gt; strong visual clues.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the new design, there is still a 2 step process but the visual clues are subtle (described by section headers on the navigator) , the display does not change.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lesson:&lt;/span&gt; do not rely on subtle clues, even if the paradigm remains the same.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A new element was made the default. &lt;span style="font-weight: bold;"&gt;Lesson&lt;/span&gt;: try &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; to change default behaviours and, if you must, provide some type of visual clue that it has changed.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;In retrospect, the above may seem obvious. The mistakes may well be due to my own lack of experience in designing for large user groups. I've been designing Notes db's for close to 13 years but my user group has always sat within shouting distance, if they didn't like something they would stand up and say 'Hey Jane, can we change this' or I'd get a quick Sametime.  This is no longer the case. My users are flung out across the country and do not know me from Adam, they can't shout my way and are disinclined to message me directly (probably a good thing, as I'd get bombarded).&lt;br /&gt;&lt;br /&gt;I've now modified the design to display a &lt;span style="font-style: italic;"&gt;Welcome...&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Select a&lt;/span&gt;&lt;span style="font-style: italic;"&gt; Customer, then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Select a Category &lt;/span&gt;opening page on the right. Hopefully  the large visual will encourage all of them to work with the new navigator.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-6717859057839379099?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/aP3GGJfXDGs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/aP3GGJfXDGs/hard-earned-design-lesson.html</link><author>noreply@blogger.com (janeg)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp3.blogger.com/_4Tb6tOFKv_g/RcNfr0JP1mI/AAAAAAAAAA0/QI0QyirdzGk/s72-c/custCatSel.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2007/02/hard-earned-design-lesson.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-3613284229437113971</guid><pubDate>Fri, 12 Jan 2007 21:52:00 +0000</pubDate><atom:updated>2007-01-12T17:22:53.221-05:00</atom:updated><title>5 Things you may not have known about me</title><description>I've been on holiday for the last few weeks and wasn't keeping up with the blogs so just spotted the '5 things game' and that Chris of &lt;a href="http://www.interfacematters.com/"&gt;Interface Matters&lt;/a&gt; had tagged me so better late than never I guess although not sure I can come with 5 things that would interest anyone.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I've always loved playing cards but didn't get the chance very often until I discovered online Poker, in particular, Texas Hold'em.  Fell in love with the game 2 years ago, taught myself to play with alot of help from Matthew Hilger and the folks that frequent &lt;a href="http://www.internettexasholdem.com/"&gt;Internet Texas Hold'em&lt;/a&gt;.  I began playing online at .02/.04 at PokerStars and have worked my way up to $1/$2 where I'll stay until I can manage to win 300BB.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I &lt;span style="font-style: italic;"&gt;love&lt;/span&gt; to read, at one point I owned over 4,000 books; I've had to distribute/rid myself of most of them over the last two years as we are down-sizing and its killing me ... it's like getting rid of old friends but have to be practical, no way I'll have room for them in a condo.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I co-authored a Java 2 Certification book with Kathy Sierra (who can really write) and some friends at &lt;a href="http://www.javaranch.com/"&gt;JavaRanch&lt;/a&gt;. I still keep my original Java study notes at &lt;a href="http://www.janeg.ca/"&gt;Java Quick Ref&lt;/a&gt; and am pleased that 30-40,000 people a mongh still find it useful.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I've had an interest in Astrology, Numerology, Tarot and spiritualism most of my life and have studied it on and off since I was 13. At 53 I still can't decide if it's valid or not.  I know many of you will probably think it is a complete waste of time and effort, and it may be. Perhaps I'll never know but I'm not quite willing to give up the idea that there is more to the material world than our current science would have us believe.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I am a hobby queen, I'm always trying new ones out: macrame, wood burning, decorative painting, knitting, crochet, piano, clay sculpting.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Probably more than you needed or  wanted to know but there it is. I won't tag anyone as I'm so late to the game&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-3613284229437113971?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/GCcu5v4eh-s" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/GCcu5v4eh-s/5-things-you-may-not-have-known-about.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2007/01/5-things-you-may-not-have-known-about.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-7364439646436155487</guid><pubDate>Sat, 23 Dec 2006 06:01:00 +0000</pubDate><atom:updated>2006-12-23T02:15:15.623-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tables</category><title>Programming Tabbed Tables</title><description>&lt;span style="font-family:arial;"&gt;Recently I modified a form to display information in a tabbed table. It only has two rows and users can fill in information under one or both tabs. If there is no information under the first tab, I wanted the second tab to display when the document is opened; so I named the table and rows, added a hidden &lt;span style="font-style: italic;"&gt;Computed for display&lt;/span&gt; field, &lt;span style="font-style: italic;"&gt;$TabbedTable&lt;/span&gt;, and set the S&lt;span style="font-style: italic;"&gt;witch rows programmatically&lt;/span&gt; option with &lt;span style="font-style: italic;"&gt;Also show tabs so user can pick row&lt;/span&gt; option set.&lt;br /&gt;&lt;br /&gt;This worked nicely in read mode, the form would open with the second tab displayed if a field in the first was blank and I could switch between tabs; however, when I opened the document in Edit mode, the tabs wouldn't work. If the second tab was showing, clicki&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ng the first sent me right back to the second and vice versa.  I tried a variety of different formulas in the &lt;span style="font-style: italic;"&gt;$TabbedTable&lt;/span&gt; field, all to no avail,  I just couldn't get the tabs to work correctly in Edit mode. I searched th&lt;/span&gt;&lt;span style="font-family:arial;"&gt;rough notes.net and the IBM TechNotes but couldn't find any posts on a similar problem so after some head scratching I finally worked out a solution.&lt;br /&gt;&lt;br /&gt;I deselected the &lt;span style="font-style: italic;"&gt;Also show tabs so user can pick row option&lt;/span&gt; and built my own action hotspot tabs. At first the action hotspots wouldn't work in read mode; then I remembered a &lt;a href="http://www-1.ibm.com/support/docview.wss?rs=78&amp;q1=%2btabbed+%2btable&amp;amp;uid=swg21084773&amp;loc=en_US&amp;amp;cs=UTF-8&amp;lang=all"&gt;TechNote&lt;/a&gt;  I'd read earlier about tabs not switching in read mode. The solution was to remove the &lt;span style="font-style: italic;"&gt;$TableName&lt;/span&gt; field from the form. I deleted &lt;span style="font-style: italic;"&gt;$TabbedTable&lt;/span&gt; and bingo, everything worked correctly.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_4Tb6tOFKv_g/RYzNkC47lII/AAAAAAAAAAk/v_qxNwbQY1w/s1600-h/tabTable_3.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_4Tb6tOFKv_g/RYzNkC47lII/AAAAAAAAAAk/v_qxNwbQY1w/s320/tabTable_3.gif" alt="" id="BLOGGER_PHOTO_ID_5011606504491160706" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;I created the action hotspots in two separate tables and used the cell property features to mimic the selected/unselected features of real tabs. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;The&lt;/span&gt;&lt;span style="font-family:arial;"&gt;y don't look quite as nice as the native tabs (no rounded corners or shadows) but they work in both read and edit mode, which is what I needed. I guess it's possible to use background images with rounded corners and shadows in the table cells but my graphic skills aren't the greatest.  lol ... just went looking for some ready made graphics and found an &lt;a href="http://www.dominoguru.com/pages/contextsensitive_tabbednavigation.html"&gt;SNTT by Domino Guru Chris Toohey&lt;/a&gt; that covers the same thing (only with alot more detail and options). He did use background graphics for the effects and they do look &lt;span style="font-style: italic;"&gt;alot&lt;/span&gt; nicer. &lt;br /&gt;&lt;/span&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-7364439646436155487?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/ib6oHkBTUhk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/ib6oHkBTUhk/programming-tabbed-tables.html</link><author>noreply@blogger.com (janeg)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp1.blogger.com/_4Tb6tOFKv_g/RYzNkC47lII/AAAAAAAAAAk/v_qxNwbQY1w/s72-c/tabTable_3.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/12/programming-tabbed-tables.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-5704975907308308283</guid><pubDate>Fri, 15 Dec 2006 19:21:00 +0000</pubDate><atom:updated>2006-12-15T15:38:05.971-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SaveOptions</category><title>Re-visiting SaveOptions</title><description>&lt;span style="font-family:arial;"&gt;I've had a few  run-ins with the &lt;span style="font-family:courier new;"&gt;SaveOptions&lt;/span&gt; field over the last week which have forced me to take a closer look at just &lt;span style="font-style: italic;"&gt;why&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;when&lt;/span&gt; it should be used.&lt;br /&gt;&lt;br /&gt;A search of the Help files doesn't turn up much information; in fact, the only description I could find was under &lt;span style="font-style: italic;"&gt;Reserved fields that control mailing options:&lt;br /&gt;&lt;blockquote&gt;Use 1 to save mailed documents. Use 0 so that the document is not saved when mailed. prevent the document from being saved.&lt;/blockquote&gt;&lt;/span&gt;No mention that:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;the &lt;span style="font-style: italic;"&gt;value&lt;/span&gt; must be text "1" or "0"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;nothing to give you a clue that it works for any document, not just documents that are being mailed.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;it's only required if the document is in Edit mode but it isn't always required&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;you need to be careful that your script does not accidentally leave the document with a "0" value; which will prevent any future saves&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;You &lt;span style="font-style: italic;"&gt;don't&lt;/span&gt; need to worry about SaveOptions if:&lt;br /&gt;&lt;/span&gt;&lt;ol style="font-family: arial;"&gt;&lt;li&gt;You are updating the document in the back end using a LotusScript Action while the document is in Read mode&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You are pre-populating fields (including Rich Text fields) with information that can be discarded if the user decides they don't want to save the document&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:arial;"&gt;The following code, run from an action button while a document is in Read mode, requires no &lt;span style="font-family:courier new;"&gt;SaveOptions&lt;/span&gt; fiddling:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Sub Click(Source As Button)&lt;br /&gt;Dim ws As New NotesUIWorkspace&lt;br /&gt;Dim doc As NotesDocument&lt;br /&gt;&lt;br /&gt;Set doc = ws.CurrentDocument.Document&lt;br /&gt;doc.status = "Submitted"&lt;br /&gt;Call doc.Save(True,False)&lt;br /&gt;&lt;br /&gt;Call ws.CurrentDocument.Close&lt;br /&gt;Call ws.EditDocument(False,doc)&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;The document is updated, saved, and re-opened for the user; displaying the update field.&lt;br /&gt;&lt;br /&gt;Neither do you need to fiddle with it for the following code, which appends a doc link to a rich text field prior to displaying the document to the user as the code in this &lt;a href="http://notesonlotusnotes.blogspot.com/2006/12/adding-link-to-currently-selected-or.html"&gt;Adding a link to currently selected or open document &lt;/a&gt;shows.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;However, you do need to use it if, for example, you are building a table in a Rich Text field based on user input i.e. user inputs a value that is added to a list which is then displayed as a table.  That code is to long to paste here but you can see an example in the &lt;span style="font-style: italic;"&gt;RTI Link Example&lt;/span&gt; form in &lt;a href="http://www.janeg.ca/notes/saveoptionsdemo.zip"&gt;SaveOptionsDemo.zip&lt;/a&gt; .&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The other time you might be tempted to set &lt;span style="font-family:courier new;"&gt;SaveOptions&lt;/span&gt;  is when you want to avoid multiple dialogs when a field validation fails on a &lt;span style="font-family:courier new;"&gt;source.Refresh&lt;/span&gt; call.  However, as noted in this &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256BAF0058A289"&gt;Breaking Par post&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, you can avoid setting&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;SaveOptions&lt;/span&gt; &lt;span style="font-family:arial;"&gt;under this scenario as well.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-5704975907308308283?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/hOmTFCBQ3nY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/hOmTFCBQ3nY/re-visiting-saveoptions.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/12/re-visiting-saveoptions.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-8728446420571040143</guid><pubDate>Mon, 11 Dec 2006 14:58:00 +0000</pubDate><atom:updated>2006-12-11T11:19:19.803-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">General Info</category><title>Notes, End Users and IT</title><description>Lotus Guru Kevin Pettit's article &lt;a href="http://www.lotusguru.com/lotusguru/LGBlog.nsf/d6plinks/JDOZ-6WD6S4"&gt;Power Users - A Bridge Between Business and IT&lt;/a&gt; makes a number of interesting observations on the traditional disconnect between end users and IT.  Like Kevin, my introduction to the IT world was as a user; an accountant. In the '70's I actually worked as a cost accountant and all job costs were recorded on time punch cards, trays and trays of them that went into data processing each night and came back with a print out that needed to be reviewed, analyzed and manually consolidated.  Dreary business and god help you if you wanted anything changed!  One of the first lessons I learned, when dealing with programmers, is that 4 out of 5 would tell you &lt;span style="font-style: italic;"&gt;'That can't be done'&lt;/span&gt;, the 5th one would sit down and do what you needed. I started taking computer and programming night courses as a form of self defense; figuring it would be harder for them to snow me if I had a better idea of what was involved. &lt;br /&gt;&lt;br /&gt;I worked for a number of firms over the years, nearly all of whom went through manual to electronic ledger transitions and yet I can only remember one occasion in which the front-line end users were consulted, although the analysts needn't have bothered since they ignored the feedback they received.  Although, to be fair, most end users at the time thought the computers were going to put them out of a job. The hype was all about paperless environments and work-load reductions; what a joke that turned out to be. Computerization doubled and tripled workload in many cases; instead of doing 3 or 4 budget revisions over a 4 month period you were asked for 3 or 4 a day!  After all, you could make the changes so quickly now. And where there were once five or ten monthly reports there were now 5 or 10 daily reports; all of which had to be analyzed .. a small fact many of the work load reduction proponents completely overlooked :rolleyes:&lt;br /&gt;&lt;br /&gt;By the early '90's I was out of the financial end of the business and working part time in IBM's recently opened Toronto HelpCentre.  The original HelpCentre was full of techies, people with computer science backgrounds straight out of Ryerson and Waterloo.  When we were all given Notes 3.0 designer id's the vast majority started working up database designs; the general consensus was &lt;span style="font-style: italic;"&gt;'This isn't really programming, what was all this @ Formula stuff&lt;/span&gt;!"  As a result, those who made use of the designer capabilities were users like myself; they had an interest in development but not much practical experience or training.  Notes databases started popping up all over, each team had there own little pet projects and they were jealously guarded.  Why? Because the managers realized they could see things exactly the way they wanted!  Then came the IT crackdown; all new id's issued were non-designer and only a few were allowed to continue with the original design enabled id's.  If you wanted to develop a database it had to go on an authorized internal server and all the little team owned servers were ferreted out and shut down.  I was lucky, I was allowed to continue developing.  And that's where I sit today; &lt;span style="font-style: italic;"&gt;&lt;/span&gt;No longer an end-user, but neither a part of IT.&lt;br /&gt;&lt;br /&gt;So, what does this have to do with the IT/end user disconnect? Users know what they want, they (usually) understand their domain and more often than not, it's the little, small changes in a system that provide them the most bang.  To this day IT hasn't seemed to grasp this fact; an end user can wait months or years for a simple change that would save them hours every month but they're told a project is locked or no revisions can be made until the next release, etc., etc.&lt;br /&gt;&lt;br /&gt;And that's the beauty of Notes development, it fills the gap between IT and end-user. But we're fish out of water as very few recognize that we are, essentially, &lt;span style="font-style: italic;"&gt;valuable middle-ware&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-8728446420571040143?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/IZiGACsZYKQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/IZiGACsZYKQ/notes-end-users-and-it.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/12/notes-end-users-and-it.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-3724929585676263417</guid><pubDate>Fri, 08 Dec 2006 06:28:00 +0000</pubDate><atom:updated>2006-12-08T02:18:03.293-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">UI Design</category><title>Adding a link to currently selected or open document</title><description>Ever had a situation where the user wanted a new document to include a link back to the document he has open or selected in a view? I wasn't sure this was doable but, with a little investigation and tinkering, I discovered it is! The key is utilizing the order in which form events are executed. &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;Initialize()&lt;/span&gt; is triggered before the new document is fully created so accessing &lt;span style="font-family:courier new;"&gt;NotesUIWorkspace.CurrentDocument&lt;/span&gt; retrieves the document the user had open in the workspace before he decided to create the new document; which means we can grab a reference to it.   If no document was open, we can check for a document selected in the current view.&lt;br /&gt;&lt;pre&gt; '-- initialize general variables&lt;br /&gt;Set session = New NotesSession&lt;br /&gt;Set ws = New NotesUIWorkspace&lt;br /&gt;Set uiview = ws.CurrentView&lt;br /&gt;Set uidb = ws.GetCurrentDatabase&lt;br /&gt;Set db = uidb.Database&lt;br /&gt;&lt;br /&gt;'-- do we have an open document?&lt;br /&gt;Set selDoc = Nothing&lt;br /&gt;&lt;br /&gt;If Not(ws.CurrentDocument Is Nothing) Then&lt;br /&gt; Set selDoc = ws.CurrentDocument.Document&lt;br /&gt; If(selDoc.formName(0) = "NavLeft") Then&lt;br /&gt;  '-- grabbed the navigator, which we don't want&lt;br /&gt;  Set selDoc = Nothing  &lt;br /&gt; End If&lt;br /&gt;End If   &lt;br /&gt;&lt;br /&gt;'-- are we in a view with a selected document?&lt;br /&gt;If (selDoc Is Nothing) Then&lt;br /&gt; If Not(uiview Is Nothing)  Then&lt;br /&gt;  Set selDoc = db.GetDocumentByID(uiview.CaretNoteID)   &lt;br /&gt; End If&lt;br /&gt;End If&lt;br /&gt;&lt;/pre&gt;Note that if you are using a Form for a navigator you need to check the current documents form name and drop the reference.&lt;br /&gt;&lt;br /&gt;We add the link in the &lt;span style="font-family:courier new;"&gt;Onload()&lt;/span&gt; event, which is triggered after the new &lt;span style="font-family:courier new;"&gt;NotesUIDocument&lt;/span&gt; is created but just before it is given focus.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  If(source.IsNewDoc) then&lt;br /&gt;      '-- do we have a document reference?&lt;br /&gt;      If Not(selDoc is Nothing) then&lt;br /&gt;         '-- create the link&lt;br /&gt;         set doc = source.Document&lt;br /&gt;         Dim rti as NotesRichTextItem&lt;br /&gt;         set rti = New NotesRichTextItem(doc,"refLink")&lt;br /&gt;         Call rti.AppendText(selDoc.title(0))&lt;br /&gt;         Call rti.AppendText(" --&gt; ")&lt;br /&gt;         Call rti.AppendDocLink(selDoc,"Link to referring document") &lt;br /&gt;         Call rti.Update&lt;br /&gt;       &lt;br /&gt;         '-- save&lt;br /&gt;         doc.Form = "newFormsName"&lt;br /&gt;         call source.Close&lt;br /&gt;&lt;br /&gt;         '-- re-open the new document&lt;br /&gt;         call ws.SetTargetFrame("")    '-- hack to make sure doc displays&lt;br /&gt;         call ws.EditDocument(True,doc)&lt;br /&gt;      End If&lt;br /&gt;  End if&lt;br /&gt;&lt;/pre&gt;The new document opens and the link is displayed in a  rich text field.  I chose to make this Computed When Composed to prevent an accidental deletion.&lt;br /&gt;&lt;br /&gt;If you're using a frameset and create the link from a document selected in a view, and don't call &lt;span style="font-family:courier new;"&gt;ws.SetTargetFrame("")&lt;/span&gt; the document will either fail to open (without an error) or you may get an "Unable to find a document window" error.&lt;br /&gt;&lt;br /&gt;Took me a few days to figure that out, it worked beautifully with an open document or the first time I selected a document in the default view but if I tried it when I switched views I'd get nothing, a blank.  No errors.  Was tinkering with it again today and for some reason I got the "Unable to find document window" error.  Searched notes.net for the error and noticed &lt;a href="http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/23e9b435c9965d8e85256feb00318f56?OpenDocument"&gt;this post&lt;/a&gt; which set off a light bulb!  Added the call to set the target frame and everything worked; I could create the links to selected documents from any view.&lt;br /&gt;&lt;br /&gt;Gotta love Notes :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-3724929585676263417?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/9u5yvX39B90" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/9u5yvX39B90/adding-link-to-currently-selected-or.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/12/adding-link-to-currently-selected-or.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-3130051941629623004</guid><pubDate>Fri, 08 Dec 2006 01:35:00 +0000</pubDate><atom:updated>2006-12-07T20:48:44.939-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">UI Design</category><category domain="http://www.blogger.com/atom/ns#">Downloads</category><title>Notes Colors Reference</title><description>Thought it would be nice to have a reference for the pre-defined NotesColor values so created a simple database to display the colors along with their NotesColor number, RGB, HSL and RGB Hex values. &lt;center&gt;&lt;br /&gt;&lt;embed src="http://www.janeg.ca/Notes/NotesColors.swf" quality="low" loop="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" allowscriptaccess="sameDomain" height=442 width=635&gt;&lt;br /&gt;&lt;/center&gt; &lt;/embed&gt;&lt;br /&gt;Your welcome to download the database &lt;a href="http://www.janeg.ca/notes/NotesColors.zip"&gt;NotesColors.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-3130051941629623004?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/mowMuaqelMA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/mowMuaqelMA/notes-colors-reference.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/12/notes-colors-reference.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-5629928460933366444</guid><pubDate>Wed, 06 Dec 2006 15:28:00 +0000</pubDate><atom:updated>2006-12-06T11:35:11.704-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">General Info</category><title>Client DOM</title><description>It's not often I use JavaScript within Notes, other than adding code to the &lt;span style="font-family:courier new;"&gt;onChange&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;onLoad&lt;/span&gt; or &lt;span style="font-family:courier new;"&gt;onSubmit&lt;/span&gt; events; the other day, out of curiosity, I decided to take a closer look at using JavaScript in the client and went looking for information on how it can be used.  The first thing I tried to track down was a description of the Client DOM.  Took me awhile but I finally found it, at least, I found a &lt;a href="http://www-12.lotus.com/ldd/doc/uafiles.nsf/70817c90542892178525695b0051105c/ba2b03b642053b0b8525695f0058d9cc?OpenDocument"&gt;Notes 5.0 version&lt;/a&gt;. And as it's still the version referred to in Notes v 7 Help I guess it's the only one.&lt;br /&gt;&lt;br /&gt;After a quick review, the only thing that tweaked my interest was the JS Header info:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;"This is not really an event.  Domino will emit the contents of the JS Header pseudo-event within script tags inside the HEAD of the generated HTML page.  Notes simulates the same action as a Web browser; the contents of this pseudo-event are evaluated prior to the body of the Form being loaded."&lt;/blockquote&gt;Not quite sure how to make use of this but the fact that the contents are evaluated prior to the body of the form being loaded might come in handy. When I get a chance, might do some digging in the Mail and other templates to see how Lotus/IBM makes use of it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-5629928460933366444?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/d-9eUl3yETI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/d-9eUl3yETI/client-dom.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/12/client-dom.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-2599091476686591448</guid><pubDate>Mon, 04 Dec 2006 17:14:00 +0000</pubDate><atom:updated>2006-12-04T12:15:24.401-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">LotusScript</category><title>Dimensioning arrays</title><description>Wrote some code the other using &lt;span style="font-family:courier new;"&gt;GetDocumentsByKey()&lt;/span&gt;, which can take an array of lookup keys, and hit an error, &lt;span style="font-style: italic;"&gt;"Too many keys"&lt;/span&gt;, that had me scratching my head. Turned out I had totally forgotten about the way LotusScript handles array dimensions.&lt;br /&gt;&lt;br /&gt;I wanted to grab documents that matched values in the first two columns of a view so I dimensioned an array with &lt;span style="font-family:courier new;"&gt;Dim keyArr(2) as String&lt;/span&gt; and then set &lt;span style="font-family:courier new;"&gt;keyArr(0)&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;keyArr(1)&lt;/span&gt; to the values I wanted to search and passed &lt;span style="font-family:courier new;"&gt;keyArr&lt;/span&gt; to &lt;span style="font-family:courier new;"&gt;GetDocumentsByKey()&lt;/span&gt;. Why the error?&lt;br /&gt;&lt;br /&gt;What I'd forgotten is that, while LotusScript has zero based arrays (unless you declare Option Base 1), similar to Java, unlike Java, it does not interpret &lt;span style="font-family:courier new;"&gt;array(&lt;span style="font-style: italic;"&gt;num&lt;/span&gt;)&lt;/span&gt; as the &lt;span style="font-style: italic;"&gt;total &lt;/span&gt;number of indexes in the array. Instead it interprets it as &lt;span style="font-family:courier new;"&gt;array(&lt;span style="font-style: italic;"&gt;num&lt;/span&gt; + 1) &lt;/span&gt;to take into account the '0' index. So &lt;span style="font-family:courier new;"&gt;Dim keyArr(2) as String&lt;/span&gt; actually creates an array with three indexes (0), (1), and (2)! Declaring &lt;span style="font-family:courier new;"&gt;Dim keyArr(1)&lt;/span&gt; as String fixed the problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-2599091476686591448?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/_aTZnD51zm0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/_aTZnD51zm0/dimensioning-arrays.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/12/dimensioning-arrays.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-3978697233146771890</guid><pubDate>Fri, 01 Dec 2006 15:52:00 +0000</pubDate><atom:updated>2006-12-01T11:37:48.327-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Book Review</category><title>Lotus Notes Developer's Toolbox</title><description>I haven't bothered purchasing a Notes Development book since v 4.5. Sadly,  the majority of Notes books I've read and have access to are little more than a re-hash of the Help files or free Redbooks.  Yet my curiosity was tweaked when I saw an ad for &lt;span style="font-style: italic;"&gt;Lotus Notes Developer's Toolbox: Tips for Rapid and Successful Deployment&lt;/span&gt;. The blurb I saw came off the back cover:&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;"Leading IBM Lotus Notes Developer Mark Elliott systematically identifies solutions for the key challenges Notes developers face, offering powerful advice drawn from his extensive enterprise experience."&lt;/blockquote&gt;Maybe, just maybe, this book is different ... so I bought it, and, once more, was let down :(  Had I come across the book 10 years ago I may have felt differently about it but I'm not sure.&lt;br /&gt;&lt;br /&gt;The first third of the book contains information I could easily locate in the Help and Redbooks, the middle third has tutorial type examples for creating five "common" Notes databases: Calendar, Collaborative, Reference Library, Workflow, Web Site. In nigh on 10 years of Notes development I've only once developed a database that did not incorporate at least three of the 'common' categories.  The last third covers &lt;span style="font-style: italic;"&gt;enhanced&lt;/span&gt; (advanced?) information on using LotusScript, Formulas, Views as well as a chapters on Security, Deployment and Troubleshooting. I found this last third the most disappointing. &lt;br /&gt;&lt;br /&gt;I don't like giving bad book reviews; writing a book is not easy, it takes time, effort, patience and self-discipline to get one from conception to press. Nor is it possible, when writing technical books, to cover all aspects of a language or application.  It's quite possible I set myself up to be disappointed by this book, I think it was the &lt;span style="font-style: italic;"&gt;"identifies solutions to key challenges"&lt;/span&gt; in the blurb. I was hoping for information on &lt;span style="font-style: italic;"&gt;pitfalls to avoid&lt;/span&gt; and c&lt;span style="font-style: italic;"&gt;omparisons of alternate solutions&lt;/span&gt; as, for me, these are the biggest challenge areas in Notes Development. I was also hoping for more &lt;span style="font-style: italic;"&gt;in-depth &lt;/span&gt;advice on structuring applications.&lt;br /&gt;&lt;br /&gt;Overall, it is not a bad book but neither is it a must have. In the end, I'm sad to say it's just another slightly better than mediocre Notes development book.&lt;br /&gt;&lt;br /&gt;For a more in-depth review of the book, you might want to read Mick Moignard's &lt;a href="http://www.dominopower.com/issues/issue200611/00001881001.html"&gt;Will the book Lotus Notes Developer's Toolbox be something you want to add to your toolbox? &lt;/a&gt;on DominoPower.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-3978697233146771890?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/hFNNrSigRPg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/hFNNrSigRPg/lotus-notes-developers-toolbox.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/12/lotus-notes-developers-toolbox.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-8930698219250974754</guid><pubDate>Thu, 30 Nov 2006 14:40:00 +0000</pubDate><atom:updated>2006-11-30T10:00:29.985-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Miscellaneous</category><title>How the times have changed</title><description>&lt;blockquote style="font-style: italic;"&gt;"...being everywhere often ties Microsoft's hands. Microsoft considered more radical changes to Vista, for example, but feared whether users and third-party software developers would be able to adapt." (&lt;a href="http://www.theglobeandmail.com/servlet/story/RTGAM.20061123.gtmsft25/BNStory/Technology/home"&gt;Full article&lt;/a&gt;)&lt;br /&gt;&lt;/blockquote&gt;lol... a few short years ago MS would have done as they liked and forced everyone to adapt, knowing they had little choice.  You gotta love open source, it's definitely changing the landscape :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-8930698219250974754?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/PDBzPsm2xg8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/PDBzPsm2xg8/how-times-have-changed.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/11/how-times-have-changed.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-2962822975033511548</guid><pubDate>Mon, 27 Nov 2006 15:36:00 +0000</pubDate><atom:updated>2006-11-27T11:01:13.096-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">LotusScript</category><title>Add a comment</title><description>This is a simple method to give document readers an easy way to add a comment to a document.&lt;br /&gt;&lt;br /&gt;First, create a simple form for use in a dialog box.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/2476/377813670159874/1600/405580/dlgBoxComments.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/2476/377813670159874/320/145176/dlgBoxComments.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Modify your main form, adding two fields: &lt;span style="font-family:courier new;"&gt;comments&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;commentHistory&lt;/span&gt;.  Set the &lt;span style="font-family:courier new;"&gt;comments&lt;/span&gt; field as &lt;span style="font-family:courier new;"&gt;Text/Editable&lt;/span&gt; and the &lt;span style="font-family:courier new;"&gt;commentHistory&lt;/span&gt; field is &lt;span style="font-style: italic;"&gt;Computed When Composed&lt;/span&gt; (since the field is only updated in the backend) with a default value of &lt;span style="font-family:courier new;"&gt;commentHistory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Last, create an &lt;span style="font-family:courier new;"&gt;Action Button&lt;/span&gt; with the following code:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;'-------------------------------------------------------------------------&lt;br /&gt;'-- Presents the user with a Dialog Box, allowing them to add a comment&lt;br /&gt;'-- If OK is clicked, the document's commentHistory field is updated&lt;br /&gt;'--&lt;br /&gt;'-- Side Effects:&lt;br /&gt;'--    If the following fields are not in the document they will be&lt;br /&gt;'--   created: commentHistory, comments&lt;br /&gt;'--&lt;br /&gt;'--&lt;br /&gt;'-- *** REQUIRES: *********************************************************&lt;br /&gt;'-- Database Form  dlgBoxComments&lt;br /&gt;'-- ***********************************************************************&lt;br /&gt;&lt;br /&gt;    '-- Date Format string (usually declare this in Globals)&lt;br /&gt;    Const DATE_FMT = "mm/dd/yyyy hh:nn:ss AM/PM"&lt;br /&gt;&lt;br /&gt;Dim session As New NotesSession&lt;br /&gt;Dim ws As New NotesUIWorkspace&lt;br /&gt;Dim uidoc As NotesUIDocument&lt;br /&gt;Dim doc As NotesDocument&lt;br /&gt;Dim item As NotesItem&lt;br /&gt;Dim comment As Variant&lt;br /&gt;Dim fmt$&lt;br /&gt;Dim flag%&lt;br /&gt;Dim id$&lt;br /&gt;&lt;br /&gt;'-- display the Add Comments dialog&lt;br /&gt;Set uidoc = ws.currentDocument&lt;br /&gt;Set doc = uidoc.Document&lt;br /&gt;&lt;br /&gt;flag% = ws.DialogBox("dlgBoxComments",True,True,False,False,False,False,_&lt;br /&gt;"Add a Comment",doc,True,False,True)&lt;br /&gt;&lt;br /&gt;'-- do we have a comment?&lt;br /&gt;If(flag%) Then&lt;br /&gt;'-- update commentHistory and save the document&lt;br /&gt;comment = doc.GetItemValue("comments")&lt;br /&gt;&lt;br /&gt;If comment(0) &lt;&gt; "" Then &lt;br /&gt;Set item = doc.GetFirstItem("commentHistory")&lt;br /&gt;If(item Is Nothing) Then&lt;br /&gt; Set item = doc.ReplaceItemValue("commentHistory","")&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;fmt$ = Format(Now(), DATE_FMT)&lt;br /&gt;id$ = fmt$ + " -- " + session.commonUserName() + " -- "&lt;br /&gt;Call item.AppendToTextList(id$) &lt;br /&gt;Call item.AppendToTextList(Implode(comment," ") + Chr$(10))&lt;br /&gt;&lt;br /&gt;'-- clear comments and save the document&lt;br /&gt;doc.comments = ""&lt;br /&gt;Call doc.save(True,False)&lt;br /&gt;&lt;br /&gt;'-- reload the document&lt;br /&gt;Call uidoc.Close&lt;br /&gt;Call ws.EditDocument(False,doc)&lt;br /&gt;End If&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;That's it :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-2962822975033511548?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/WlAJncyB_RU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/WlAJncyB_RU/add-comment.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/11/add-comment.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3095049585949690284.post-85996233963805243</guid><pubDate>Sat, 25 Nov 2006 23:28:00 +0000</pubDate><atom:updated>2006-11-25T19:37:43.214-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">General Info</category><title>Bookmarking Design Elements</title><description>Designer has a nice feature that lets you easily organize the design elements you're currently working with.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;embed src="http://www.janeg.ca/Notes/DesignerBookmarks.swf" quality="low" loop="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" allowscriptaccess="sameDomain" height="615" width="390"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;You can also drag and drop .exe files to the bookmark bar, making it easy to open other applications you use alot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3095049585949690284-85996233963805243?l=notesonlotusnotes.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnLotusNotes/~4/keroEK5MaWc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/NotesOnLotusNotes/~3/keroEK5MaWc/bookmarking-design-elements.html</link><author>noreply@blogger.com (janeg)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://notesonlotusnotes.blogspot.com/2006/11/bookmarking-design-elements.html</feedburner:origLink></item></channel></rss>
