Sunday, December 11, 2011

Open frameset of another database in Lotus Notes

While working on a Lotus Notes client-based application I came across one peculiar scenario that we could not open a frameset residing in another database. You can code @Command([OpenFrameset]; FramesetName) in formula language or Call NotesUIWorkspace.OpenFrameSet(<FramesetName>) in LotusScript. But both these commands open frameset which reside in the same database from which the command is being executed. After searching (read it as Googling) I found a solution by Tammie Miller on SearchDomino. But this required me to modify the target database also. After some tinkering in Lotus Notes I was finally able to do it without modifying the target database.

  1. Add an image onto your form and add a Hotspot or Link Hotspot on the image.
  2. Lets say we add a default hotspot to the image. In the properties of the hotspot we set the following options:

    Set the value of "Formula for database" in the format <Server name>!!<Application path>, with double exclamation marks as separator between server name and application path.
  3. And you are done. The amazing thing about this is that you specify - name of element, name of database & name of design element - all in formula language. Thus you could get these names from a field on the form and open frameset based on certain condition.
  4. Also Lotus Notes provides you with option of opening Page, Form, Frameset, View, Folder or Navigator using this option.
This option is available only for Default Hotspot and Link Hotpot. Default Hotspot can be only put on images while Link Hotspot can be put on images and text.

One bad part is that this thing does not work on web... It only works on Lotus Notes client :-(
But this functionality is pretty easy to put on web using URL as:

http://<Server Name>/<Database Name>/<Frameset name>/?OpenFrameset

You can also read this tip on SearchDomino.

No comments:

Post a Comment