Title: | FOCUS, from INFORMATION BUILDERS |
Moderator: | ZAYIUS::BROUILLETTE |
Created: | Thu Feb 19 1987 |
Last Modified: | Mon May 05 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 615 |
Total number of notes: | 1779 |
<<< SHIRE::BEORN:[NOTES$LIBRARY]FOCUS.NOTE;1 >>> -< European FOCUS Notes Conference >- ================================================================================ Note 182.0 Windows are not refreshed No replies MLNAD2::ANTONANGELI "Andrea - ADG Milan consultant" 72 lines 28-SEP-1989 18:33 -------------------------------------------------------------------------------- We are writing an application using FOCUS for reporting as well as for executing commands (using FOCUS windows). The application uses one FOCUS procedure as a menu driver. Sometimes the menu driver executes FOCUS procedures and somotimes it executes DCL procedures. Usually when one of these is finished, all open windows are rebuilt (using a screen refresh, which is automatically executed by FOCUS WINDOW). However in case of execution of a FOCUS RUN command followed by a FOCUS VMS command (which executes a DCL procedure) the screen is not refreshed, what means that the output of the DCL procedure and of the FOCUS window gets mixed up. We think the problem (which we think is a FOCUS bug) is due to a mixture of the following facts: 1. The spawn command executed by FOCUS to call the DCL procedure 2. The RUN command of FOCUS 3. The way FOCUS is keeping track of the windows which are opened and need to be refreshed after execution of the combination of 1. and 2. We tried several ways to do an 'artificial' refresh, but unfortunately without any success. Attached is an example which includes this problem situation, keeping in mind that there is the FOCUS WINDOW file also. ******************************************************************** Who hitted the same problem and can help us solving it. ******************************************************************* -SET &WINDOWNAME = 'MAINMENU'; -* -******************************************************************************* -* This section displays the menu windows and check from which -* window screen the command has been entered. -******************************************************************************* -* -DISPLAY_MENU -WINDOW APPLIC &WINDOWNAME -******************************************************************************* -* Operational Utilities -******************************************************************************* -* -IF &WINDOWNAME EQ 'BROW_LOG' THEN GOTO BROW_LOG; -IF &WINDOWNAME EQ 'OP_DEL' THEN GOTO OP_DEL; -IF &WINDOWNAME EQ 'OP_ADD' THEN GOTO OP_ADD; . . . -* -******************************************************************************* -* This section executes the selected BROW_LOG option menu. -******************************************************************************* -* -BROW_LOG some FOCUS commands as you want -RUN -VMS @SPORT$$D_COM:browse_log.com &BROW_LOG -* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -GOTO DISPLAY_MENU
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
271.1 | no title | MILPND::MADDEN | Fri Sep 29 1989 17:56 | 17 | |
THIS IS A GOOD ONE. I had this problem a year or so ago and I'll try to recall the solution as best I can. Basically you have to create a mechanism to communicate between DCL and FOCUS, so when you return to the window driver fex it knows which windows to put up (which is where you left off before the DCL spawn). The mechanism is simply a status file created just before or during the spawn. On return to the window fex, I went to the top and VMS STATE filename -RUN -IF &RETCODE NE 0 GOTO ....... -SET &WINDOW = 'name...'; VMS DELETE filename -GOTO ..... The existance of the status file tells you which window to display. You can have a different one for each DCL exit. | |||||
271.2 | THE solution!! | MLNAD2::ANTONANGELI | Andrea - ADG Milan consultant | Mon Oct 09 1989 07:23 | 19 |
Hi, we think our problem was misunderstood: the problem is not about remembering which window was diplayed, but is how to refresh the windows after executing some particular FOCUS statements and VMS statements. In every case, we were looking for a solution that didn't use SPAWN commands or writing to files (which are both SLOW operations). But anyway! WE DISCOVERED THE SOLUTION TO OUR PROBLEM ! After 2 (two) months (elapsed time, not CPU time...) we discovered that by putting a simple -TYPE command (without any argument) just before the -WINDOW statement solves the problems and the windows are correctly refreshed, also if you have executed a -RUN and a -VMS commands: the only delay you will have is the execution of the -TYPE . Ciao. Fabio Ferrari. Andrea Antonangeli. |