« Suuuuuunny Days | Main| Top 5 »

How to get to Sesame Street - Embedded Framesets and programmable embedded views


UPDATE AGAIN: The description now includes screenshots for those who are mystified by my complex use of language!

UPDATE: The NSF is available on the sidebar list of downloads now.  

If you've watched my demo on Embedded Framesets, you're either going "what's the big deal?" or "how the crap did you do that!?!"  (Okay, you might be going "who cares?" but if so, this blog is probably not targeted at you.)

Let's answer the first question.  The big deal is...

1) a view embedded on the form will now respect form formulas and preview conditions.  This is extremely handy, and something of a big deal.

2) the referenced database for an embedded view becomes programmable at runtime.  This is a HUGE deal, because it means that template developers who work with multi-NSF designs can use embedded views that still work when you create an instance of those templates.  (Without having to resort to ugly hacks like customized subforms or round-tripping DXL.)

There are other implications that you might be thinking of as well, such as whether this works in a dialog box (no... but that would be insanely cool, wouldn't it?) or whether it works in a layer (of COURSE!) or whether the target frame is addressable with @SetTargetFrame (doesn't look like it, but there's a ton of coding approaches that I haven't tested yet.)

So... how does it work?  Read more for details!

It's actually ridiculously simple.  I'll update this page with details & screenshots later, but you don't really need them...

1 (hahahaha) - Create the frameset that you want to embed, but include one extra frame on it.  I called my frame "Snuffleupagas."  (Because it's a hidden frame, dontcha know.)
 Sesame1.png
 Sesame2.png

Put that frame somewhere that you can't see it, such as at the bottom with a height of 0 pixels.
Sesame3.png

2 (ahahahah) - Create a form that's set to auto-load itself into a frameset.  Select the frameset that you just created and tell the form to render in the "hidden" frame.
 Sesame6.png

3 (hahahaha) - Create an embedded editor on any form (or page) that points to "snuffleupagas."  It doesn't matter whether we had any fields on the form, because it's not visible.
 Sesame7.png

The auto-frameset renders into the embedded context of the editor. Yeah, it's that easy.  

How none of us ever thought to do this before, I have no idea.  Maybe someone DID and it was so easy, they didn't think it was worth talking about.

Anyway, because you're loading a frameset, you get all the power of Notes frames.  Which means you can use @formulas to determine the contents of the frame.  Which means if you want to show a view, you can set the frame's contents to "computed" and then determine the NSF and the name of the view with whatever @formula skills you might possess.  (And if you're reading Escape Velocity, odds are good that you're pretty handy with @formulas.)

In my demo, I kept it simple with ENVIRONMENT variables.  I'm sure Profile docs would be effective, too.  Or @DbLookup.  Like I said, you probably know you're way around the formula language.

Here's some shots of how the frameset itself loads...
 Sesame4.png
 Sesame8.png

Oh, and many thanks to Carl Tyler for his assistance in getting the actual demo put together!

Comments

1 - Tickle me frameset. Eee hee hee...

2 - Seriously, though, that's wicked cool.

3 - Nathan, this solution is not exactly intuitive, not to me. So it was quite some brain storm you must have had to come up with it. I am just trying to compute the new possibilities that this opens up.

Seems like you got your wish for embedded framesets.

4 - Slawek, I believe the excitement over the new possibilities can be seen here:

{ Link }

/me thinks Nathan is the man... That's cool dude!

5 - IBM should hire you : you had feature to the Notes client without coding a single line Emoticon

Seriously, great stuff !

6 - And the history books will show that at 7:45 AM EDT on Sunday July 15th, 2007 the world changed.

7 - unfortunately, frames are not big friends with "show single category" stuff. you need to make embedded view in form, anyway.

tho, great idea! and I wonder it works. will Lotus say "works as designed"? Emoticon

8 - Great stuff Nathan!

Will have to go and have a play with this now. I can see some new UI concepts and interactions not far off!

Thanks!

9 - I'm telling you...those hidden frames are useful as heck!!! Emoticon I'm looking forward to playing with this, Nathan. To me, the best part is the idea of handling embedded views in templates. As always, great work!

10 - I've been working on an app for the past two months and I had something like this framed up in my head but never could make it work. I started re-developing it in Access just because I couldn't make Notes do what I wanted. Emoticon

I had the framesets, I had the embedded editor... I was missing the Auto Frame piece. Sometimes it takes another set of eyes to see what you've been missing on your own. Now I can finish up this app, deliver it in Notes, and everyone will be happy. Or at least as happy as a client can be.

11 - I did something like this in a layer, building on the earlier work you had shown. In my case, I wanted a dialog similar to "use view contents" but that would maintain its selection. As you say, there are many applications for this type of thing.

It is disappointing that it won't work in a dialog box. From what I can tell, once you put focus in an embedded view on a dialog box, it will never come out.

12 - I can just see a glut of " look what you can do now" type posts coming up.. nice one Emoticon

13 - Awesome, thanks Nathan.

14 - I tried this approach today in the context of an enhancement I've been working on for eSales ('OverQuota' rather, for Nathan's sake), but I really do need the single-category selection capability that Embedded Views provide; @7 pointed this out earlier. For now I've decided to stay with EV's and deal with DXL round-tripping. I've been building a simple tool that makes working with DXL/EV's a bit easier if anyone is interested.

This is still a very sweet way of dealing with programmable 'virtual' embedded views.

-jeff


15 - Hi,

Really a great thing that help me show new possibilities to users.

Have you found a way to get reference to a field of selected document in the view that is in the frameset ?


16 - Nathan, love your site, quick question. I want to take this concept one step further and you may have already tried this.

My need is to have the various embedded views in the form show only docs by a single category, like a regular embedded view does. The idea is that many different dbs have docs in them by the same key for my review.

Functionally you would create a document with an editable key in it, and the buttons to show the other embedded views use the key for the document display.

Tried this?

Paul

17 - Thanks for this good idea !
But, in fact, I would like to open a retstricted to category view (as we can do in embedded view)
I tried to open the frame on an URL (...?openview&Resticttocategory=xxx) but it doesn't in Notes Client.

Any idea ?

18 - I got the single category to work in this Embedded Frameset by:
(1) Setting Environment variable that captures the single category

(2) using this environment variable in the view selection formula

(3) Rebuilding this view with an agent

It does seem to work pretty well. I don't know if a solution has already been found to this already. But if not, I'll be happy to post more details, if anybody is interested.

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

11 Aug 

Hire Me 

Lotus-911-Logo.jpg

Search 

Disclaimer 

Welcome to Escape Velocity!

Opinions expressed here by Nathan T. Freeman are not necessarily those of his employer. However, there's a decent chance they are, so check with them if you really want to know.

But really... do you need that kind of validation? Are the opinions expressed here in doubt?

MiscLinks