OK - here's the closest I've got to what I think you want. It's three programs consisting of a menu program, one to add to a "database", (just a block with stuff in), and one to view the database....
rebol [
file: %menu.r
]
if not value? 'menu-lo [
menu-lo: layout [
button "Edit DB" [do %edit-db.r]
button "View DB" [do %view-db.r]
]
]
view/new/title menu-lo "Menu"
do-events
rebol [
file: %edit-db.r
]
if not value? 'db [db: []]
if not value? 'edit-lo [
edit-lo: layout [
across
title "Name:"
name: field
return
title "Email:"
email: field
return
button "Add" [
Append/only db reduce [name/text email/text]
if value? 'view-lo [
view-txt/text: mold db
show view-txt
]
]
]
]
view/new/title edit-lo "Edit DB"
do %menu.r
rebol [
file: %view-db.r
]
if not value? 'db [db: []]
if not value? 'view-lo [
view-lo: layout [
view-txt: area 200x100 wrap mold db
]
]
view-txt/text: mold db
view/new/title view-lo "View DB"
do %menu.r
You can run them in any order, but if you run either of the db ones, the menu will also be run.
This shows two programs sharing data. (The DB block - it's not saved to disk, but of course that could be added.)
Unfortunately though, it doesn't allow you back to the console without closing all windows. It's possible that by using some form of feel in the menu layout instead of using do-events you could have it so you could close the menu window and return to the console with the other two windows still open, but I didn't have time to explore this.
Hope this helps, anyway.