| File Variables |
| Argument passing - Subroutines and Functions - Mike Pope |
| RevTech Replies - Mike Pope (RevTech UK Ltd) |
| Symbol Table Structure |
| Gas Bar |
| Prompt Help |
| @ATTACK - @Environ.Set |
| Uncommon Knowledge - WC_Reset% |
| Reader's Clinic - Scribe Replace Processes in Window |
| REVMEDIA Revisited |
| Creating Your Own Background Processes |
| @ATTACK - @Last.Select.Process |
| Reader's Forum |
| QTIPS - Menu Item Pre-Processing |
| Reader's Clinic - Different Id Same Record |
| RTP Series - RTP25 |
| QTIPS - String Space |
| Reader's Letters - Jim Owen |
| QTIPS - Finding/Replacing Spaces With The Editor |
| QTIPS - Command Line Options |
| QTIPS - Invalid Code and Command |
| QTIPS - Code/Command Help |
| Utility Diskette # 4 |
| RTP Series - RTP17 |
| QTIPS - PERFORM Arguments and FMT Specifications |
| What's New (and un(der)documented!) In 2.12 |
| Viewer |
| VERBatim - V65 |
| QTIPS - Using INIT.VIEW with Printers |
| REVMEDIA Revisited |
| QTIPS - Sub-Headings in RLIST (Revisited) |
| Reader's Clinic - Template Name at Pre-Init |
| Video Control |
| Catalyst |
| Uncommon Knowledge - WC_Reset% |
| Uncommon Knowledge - WC_Amv_Action% |
| Uncommon Knowledge - WC_Is% |
| QTIPS - Using @Upper.Case and @Lower.Case with Foreign Languages |
| @ATTACK - @Lower.Case |
| @ATTACK - @Upper.Case |
| Sorting out Collation Sequences by Mike Pope |
RevMedia FKB
| Document | V2I8A9 |
| Title | Uncommon Knowledge - WC_Reset% |
| Keywords | WINDOW_COMMON% WC_RESET% WC_IS_ORIG% WC_IS% WC_WDONE% WINDOW_COMMON_SHORT% WINDOW.CONSTANTS |
| Text | WC_Reset% is a flag variable used to tell the window interpreter that the developer has made changes to other common VARIABLES and that these changes ought to be evaluated and processed It may take a value of 1 to 6 these being DEFINED in the WINDOW CONSTANTS record in the INCLUDE file as follows EQU CLEAN UP LINE$ TO 1 EQU CLEAN UP EDIT$ TO 2 EQU RESET EDIT$ TO 3 EQU RESET PROMPT$ TO 4 EQU RESET RECORD$ TO 5 EQU RESET WINDOW$ TO 6 These values are actually quite self explanatory once you know what they do! WC_Reset% is only looked at at certain predefined points when the window is running and some processes ignore it entirely Actions caused by WC_Reset% can be misleading To illustrate WC_Reset% might be set to 6 on a default process and the window might close It might therefore be assumed that the default process was responsible for the closing of the window This is only partially true Heavy use of commuter logic reveals that the default logic ignores the SETTING of WC_Reset% and that it is the subsequent Pre Prompt logic that picks up the request to close the window In the following discussion consideration will be given to how various values of WC_Reset% alter the window logic FLOW Other VARIABLES affected by WC_Reset% will be considered by EXAMPLE as they are encountered When the text states that "the perpetual process is run" (or some other process) it is implicit that this only happens if a perpetual process (or the appropriate process) has been DEFINED In all cases a WC_Reset% value of 6 closes the window so this will not be repeated to save space Pre Application Catalyst CALLS and COMMANDS may be executed before a window is invoked by adding the construct(s) PREAPP=@Code Command@ to the command line If WC_Reset% is set here it will be ignored until additional window processing has occurred Thus if WC_Reset% were set to 6 here the window would still display and execute various processes before actually closing If a PREAPP wishes to close the window it should set WC_WDone% to 1 and the window will close immediately Note that ACCESSING WINDOW_COMMON at this stage of the window interpreter requires careful manipulation of the COMMON block At this stage although WC_Reset% and WC_WDone% can be accessed the various dimensioned common VARIABLES cannot Therefore a special common block must be constructed (called for EXAMPLE WINDOW_COMMON_SHORT%) which contains all of the common VARIABLES up to (but not including) the first dimensioned common variable (WC_W%( WC_W_CNT%)) This can then be $INSERTed and the variables may then be referenced without fatal error messages regarding unassigned common VARIABLES Pre Init As WITH Pre App Pre Init ignores the WC_Reset% variable If it is required that the window be exited use the WC_WDone% variable and WINDOW_COMMON_SHORT% Post Init As WITH Pre App Post Init ignores the WC_Reset% variable If it is required that the window be exited use the WC_WDone% variable and WINDOW_COMMON_SHORT% Pre Proc The Pre Prompt Process looks at WC_Reset% values of 4 5 and 6 WC_Reset% = 4 The Perpetual Process will be run If there is no value in WC_Is% the Default Process will be run then control will return to the Pre Prompt Process In the special case where the CURSOR has not yet been through the first field AFTER the key on the data entry window the Perpetual Process will be run followed by the Pre Read Process the Rep Read Process and then the Post Read Process Finally if there is no value in WC_Is% the Default Process will be run then control will return to the Pre Prompt Process WC_Reset% = 5 The sequences initiated by WC_Reset% = 4 are followed WITH the omission of the Perpetual Process Dflt Proc Ignores WC_Reset% Edit Proc The EDIT process looks at all WC_Reset% values except in the case of multivalued fields (both ASSOCIATED and non associated) where WC_Reset% is ignored (NB please remember the caveat that in this article we are only considering effect on window flow) WC_Reset% = 1 Returns to prompt WITH WC_Is% set to the entered value and WC_IS_ORIG% unchanged WC_Reset% = 2 The Post Process will be run followed by the Perpetual & WC_Reset% = 3 Process and then the Pre Prompt Process It will then return to the prompt WITH both WC_Is% and WC_Is_Orig% set to the new value WC_Reset% = 4 The Perpetual Process will be run followed by the Pre Prompt Process It will then return to the prompt with WC_Is% and WC_Is_Orig% unchanged WC_Reset% = 5 The Pre Prompt Process will be run It will then return to the prompt WITH WC_Is% and WC_Is_Orig% unchanged Post Proc The Post Prompt Process looks at WC_Reset% values of 4 5 and 6 WC_Reset% = 4 Key Prompt If this is the first entry into a prompt or the previous SCREEN was refreshed or saved then the Perpetual Process will be run If there is no value in WC_IS% the Default Process will be run Finally the Pre Prompt Process will be run and it will then return to the prompt If the previous record was deleted the Perpetual Process will be run WC_Is% will be set to "" (i e a blank @ID) and PROCESSING will continue at the next prompt If the previous key has been changed the Perpetual Process will be run WC_Is% will be set to WC_Is_Orig% and processing will continue at the NEXT prompt WC_Reset% = 5 Key Prompt This SETTING of WC_Reset% behaves as 4 with the exception that the Perpetual Process is skipped WC_Reset% = 4 Non Key Prompt WC_Is% is set to WC_Is_Orig% the Perpetual Process is run then processing continues at the next prompt WC_Reset% = 5 Non Key Prompt This SETTING of WC_Reset% behaves as 4 WITH the exception that the Perpetual Process is skipped Invalid Proc Ignores WC_Reset% Perp Proc The Perpetual Process only looks at a WC_Reset% value of 6 which closes the window Pre Read The Pre Read Process looks at WC_Reset% values of 5 and 6 WC_Reset% = 5 Returns to key prompt without running REPLACE or Post Read Rep Read The Replace Read Process only looks at a WC_Reset% value of 6 which closes the window Post Read The Post Read Process only looks at a WC_Reset% value of 6 which closes the window Pre Save The Pre Save Process looks at WC_Reset% values of 5 and 6 WC_Reset% = 5 Returns to key prompt without running Replace or Post Save (hence not saving any changes) However WC_PREC% is set to the version of @RECORD that has been abandoned which is not valid Rep Save The Rep Save Process looks at WC_Reset% values of 5 and 6 WC_Reset% = 5 Returns to key prompt without running Post Save Post Save The Post Save Process only looks at a WC_Reset% value of 6 which closes the window Pre Delete The Pre DELETE Process looks at WC_Reset% values of 5 and 6 WC_Reset% = 5 Returns to key prompt without running Replace or Post Delete (hence not deleting the record) Rep Delete The Rep Delete Process looks at WC_Reset% values of 5 and 6 WC_Reset% = 5 Returns to key prompt without running Post Delete Post Delete The Post Delete Process only looks at a WC_Reset% value of 6 which closes the window Post App Ignores all values of WC_Reset% Collector Read Proc As WITH Pre App Post Init ignores the WC_Reset% variable If it is required that the window be exited use the WC_WDone% variable and WINDOW_COMMON_SHORT% Collector Save Proc The COLLECTOR Save Process Process looks at WC_Reset% values of 5 and 6 WC_Reset% = 5 Returns to window WITH @RECORD nulled down (Volume 2 Issue 8 Pages 8 11) |
Page last modified: 30/01/03