[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference ilbbak::ibi_focus

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

271.0. "windows are not refreshed" by MLNAD2::ANTONANGELI (Andrea - ADG Milan consultant) Thu Sep 28 1989 14:32

                <<< 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.RTitleUserPersonal
Name
DateLines
271.1no titleMILPND::MADDENFri Sep 29 1989 17:5617
    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.2THE solution!!MLNAD2::ANTONANGELIAndrea - ADG Milan consultantMon Oct 09 1989 07:2319
	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.