nmorgan
Professional
  
Posts: 40
Norman Morgan
|
 |
« on: July 06, 2009, 08:54:54 AM » |
|
Is there a way to selectively force the F1 help text to display on certain fields? I know you can turn it on with several options on a per user basis. I want it for all users only on select fields.
Here's why I want this: We have some screens that have large blocks of descriptive text. One example is an accident/injury reporting system we created for our HR and safety folks. To make it "easier" to enter these long narrative descriptions, I called INVOKE.TEXT.ED in the Process Before slot on the field. Works like a champ, but seemed to confound some users. Got some awfully messy data as they struggled to get out of the field and move to the next. The next time I had occasion to build such a screen, I made the edit mode optional by providing the INVOKE.TEXT.ED via the F8 key. Now they forget to use it and string their long narratives into a single line. I'd like to be able to force the F1 help for those fields as the cursor enters it.
|
|
|
|
|
Logged
|
My wife says her life is like a fairy tale. She married a prince and he turned into a toad.
|
|
|
precisonline
President/Chief Technologist
Administrator
Rock Star
    
Posts: 1532
|
 |
« Reply #1 on: July 06, 2009, 09:43:30 AM » |
|
You might try using a process before to data stack "?" into each of your selected fields.
|
|
|
|
|
Logged
|
-Kevin Accidents "happen"; success, however, is planned and executed.
|
|
|
nmorgan
Professional
  
Posts: 40
Norman Morgan
|
 |
« Reply #2 on: July 06, 2009, 11:34:14 AM » |
|
Thanks! I had completely forgotten about entering "?" in a field to summon help.
|
|
|
|
|
Logged
|
My wife says her life is like a fairy tale. She married a prince and he turned into a toad.
|
|
|
|
Tom Pellitieri
|
 |
« Reply #3 on: July 07, 2009, 05:15:22 AM » |
|
Norman,
Two other notes for posterity (since you're on "short time" -- me, I still got 20 yrs to go...)
If you need to display 2nd level help, you can use a process that does a DATA "@31","@31" in the Process Before on the screen field. I use this to bring up a reminder for a field that's a bit less than obvious.
Also, I find that using a separate screen for fields to INVOKE.TEXT.ED is less confusing for most users. The text field being updated has INVOKE.TEXT.ED in the Process Before slot. I also add a second non-input field (usually on a WORK field) which calls my FORCE.F2 process in the Process Before. This process is a paragraph with the single line:
IF @OTHER(18) = 32 THEN EXIT U
This allows the user to press F2 just once to complete the text editor and also return to the previous screen.
(And, to be honest, I'm sure I got both of these hints from Kevin at some point...)
--Tom
|
|
|
|
|
Logged
|
|
|
|
precisonline
President/Chief Technologist
Administrator
Rock Star
    
Posts: 1532
|
 |
« Reply #4 on: July 07, 2009, 07:19:59 AM » |
|
Thanks for the attribution Tom, but I actually do it slightly differently. Like you, I prefer to have word wrapped comment fields on their own screen. However, what's different is that I prefer to do it all with one field, one process.
With a single mv'd comment field on the screen, I use a Process Before on that prompt that does this:
IF @OTHER(18) = 32 THEN EXIT U END ELSE EXEC 'INVOKE.TEXT.ED' END
The first time through it invokes the word-wrapping process, and then when the user presses F2 this process runs again and does the EXIT U. This way you don't need that second field - unless of course you really want it for some other reason.
|
|
|
|
|
Logged
|
-Kevin Accidents "happen"; success, however, is planned and executed.
|
|
|
nmorgan
Professional
  
Posts: 40
Norman Morgan
|
 |
« Reply #5 on: July 07, 2009, 11:41:55 AM » |
|
I just tried this and got in a MESS.
I built a secondary screen with just the text fiield. I put your If/THEN in a paragraph named EDIT.OR.SAVE and named it in the Process Before on the secondary screen, making sure the secondary screen had option S. Then on the primary screen, I changed the text field to No input and called the input process for the secondary screen in the Process Before. This seemed to work OK. Seconday screen jumps up, accepts text, saves out with F2, and the text is now displayed on the primary screen.
So far, so good. Next field on the primary screen is another, similar text block. So I do the same trick. No joy! As soon as the cursor enters that second text block, the secondary screen appears and the terminal session starts making frying noises and locks up so tight I can't even break the session with a Ctrl-C. I have looked this over carefully and the only difference I see is that the second text block on the primary screen is not marked as mandatory (because it isn't), while the first one is.
Ideas?
|
|
|
|
|
Logged
|
My wife says her life is like a fairy tale. She married a prince and he turned into a toad.
|
|
|
precisonline
President/Chief Technologist
Administrator
Rock Star
    
Posts: 1532
|
 |
« Reply #6 on: July 07, 2009, 11:45:44 AM » |
|
Absolutely. Before the EXIT U, set @OTHER(18) = 0. So this would be the process:
IF @OTHER(18) = 32 THEN @OTHER(18) = 0 ;* Fool SB+ into thinking <cr> was pressed EXIT U END ELSE EXEC 'INVOKE.TEXT.ED' END
|
|
|
|
|
Logged
|
-Kevin Accidents "happen"; success, however, is planned and executed.
|
|
|
nmorgan
Professional
  
Posts: 40
Norman Morgan
|
 |
« Reply #7 on: July 07, 2009, 12:46:02 PM » |
|
Perfect! Thanks!
|
|
|
|
|
Logged
|
My wife says her life is like a fairy tale. She married a prince and he turned into a toad.
|
|
|
|