Window or Not ?
Vroom - Window Processing
QTIPS - Window Symbol Tables
VROOM - Window Processing II
@ATTACK - @HW
Uncommon Knowledge - WC_Reset%
Reader's Clinic - Related Windows
Window or Not?
Reader's Clinic - Scribe Replace Processes in Window
Soft Windows
QTIPS - Window Bug and Debugging Window Bug
Overlapping Windows And Window Menus
QTIPS - New Catalyst Option
QTIPS - Collectors on the fly
QTIPS - Blank Menus in Windows
QTIPS - Moving Objects the EASY way.
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
QTIPS - Skipping Prompts
Reader's Clinic - Screen Width
Screen Grabber
Reader's Clinic - Slow Multivalued Screen Display
Utility Diskette # 4
Set_Attach_Sub and Attach images
QTIPS - @Date.Format
@ATTACK - @Date.Format
QTIPS - Short Cut Implicit Formatting
Utility Diskette # 4
RTP Series - RTP9
DOS Interfacing (Part II)
QTIPS - Form Processor
QTIPS - Reusing Symbolics in Windows
Soft Windows
QTIPS - Query Windows - Changing Colours
Reader's Clinic - Template Name at Pre-Init
Caching in on the Frames Array - Mike Pope
Advanced Revelation Assembler Interface Module - Yves Pattyn, Technical Manager, Distribase, France
@ATTACK - @Record
@ATTACK - @Reduction.Done
Collector Windows
Soft Windows
Reader's Clinic - Template Name at Pre-Init
Network Contention
Index Sub Revisited
Rebuilding Indexes
Utility Diskette # 3 - Part I
Utility Diskette # 4
QTIPS - Using @Upper.Case and @Lower.Case with Foreign Languages
@ATTACK - @Lower.Case
@ATTACK - @Upper.Case
Sorting out Collation Sequences by Mike Pope
QTIPS - Using @Upper.Case and @Lower.Case with Foreign Languages
QTIPS - Local Language Sets
Sorting out Collation Sequences by Mike Pope
Reader's Clinic - Functions and Subroutines
Argument passing - Subroutines and Functions - Mike Pope
QTIPS - Break-On Date Fields
IConvs / OConvs
Reader's Clinic - Preventing Records Being Amended
QTIPS - Finding/Replacing Spaces With The Editor
Reader's Clinic - Scribe Replace Processes in Window
RTP5 and RTP51
RevTi Just Wanna Have Fun
QTIPS - Local Language Sets
Prompt Help
Reader's Clinic - Scribe Replace Processes in Window
What's New (and un(der)documented!) In 2.12
Utility Diskette # 4
Collector Windows
QTIPS - Reusing Symbolics in Windows
VERBatim - V126
Esc.To.Exit
Uncommon Knowledge - WC_WST_CHAR%
QTIPS - Browse Lists in Collector Windows
Collector Windows
QTIPS - Collectors on the fly
RTP Series - RTP27
QTIPS - Printing Large Variables from the Debugger
VERBatim - V87
Report Professional (TM) - Dialog Software
R3 Report Writer Reviewed by Richard Guise, CSS Ltd
Version 2
Utility Diskette # 4
2.1 Highlights
REVMEDIA Revisited
Vroom
RTP Series - RTP32
Utility Diskette # 3 - Part I
Form.List.S
QTIPS - Aesthetically Improving RLIST Reports
QTIPS - Form Processor
QTIPS - Suppressing Initial Form Feed
QTIPS - Using RTP29 In Place of V6
Prompt Help
VERBatim - V6
QTIPS - BASIC Options
The End of the Line - Mike Pope and Hal Wyman
Reader's Clinic - Page Marks in Windows
@ATTACK - @CPU.Type
Uncommon Knowledge - WC_VWindow%
@ATTACK - @Query.Depth
Index Sub Revisited
@ATTACK - @Pseudo
QTIPS - Browse Lists in Collector Windows
QTIPS - NoRead

RevMedia FKB

DocumentV3I5A3
TitleSoft Windows
KeywordsWINDOW
TEMPLATE
LCPOSITIONS
@RECORD
TextThe biggest problem confronting developers when modifying the display
characteristics of window at a pre init stage (E G to remove prompts the
user does not have access to or to change screen wording) is that of
changing the stored literal image The format of this image is open to
understanding and thus can be customised on the fly (a subject for a later
REVMEDIA) but there are easier ways to actually force the window processor
to do the work on the developer's behalf

The compiled screen information is stored in the template record in the
ninth substring delimited by Char(247)s At the pre init stage this may be
accessed FROM @RECORD If at this stage this is nulled down the window
processor will rebuild it FROM scratch USING the information CURRENT in the
prompts in @RECORD Thus in the case of replacing all of the screen prompts
and the screen title WITH for EXAMPLE a DIFFERENT language version one
would

subroutine WINDOW_SOFT
/*
Author AMcA
Date July 1991
Purpose To replace the on screen messages & title WITH local language version
Copyright Sprezzatura Ltd 1991
*/

equ DLM$ to char(247)
* Firstly remove literals by fieldstoring null
@RECORD = fieldstore(@RECORD DLM$ 9 1 "")
/*
Now assume P contains @FM delimited list of new prompt messages and T
contains new window title
*/
* Store title in @RECORD
@RECORD = fieldstore(@RECORD DLM$ 6 1 T)
* Now store prompts in @RECORD
TOP = @RECORD<1> + 1
for X = 2 to TOP
/*
check to see if prompt hidden if so don't bother replacing literal
Hidden info is MV 53 of CURRENT prompt
*/
if @RECORD = "" then
@RECORD = P
end
next
return


This approach could be extended to build completely new windows on the fly
be it data entry windows or simply collector windows Thus if in a program
parameters were needed to define the scope of a report (dates amounts etc)
a generic subroutine could be written to COLLECT the necessary information
A sample generic subroutine follows

subroutine GENERIC_COLLECTOR(PROMPTS TITLE)
/*
Author AMcA
Date August 1991
Purpose To provide a generic collector for report programs PROMPTS will
contain an @FM delimited list to include on the window with
each field being in the form PROMPT_TYPE : "|" : PROMPT_LABEL
*/

$insert include lcpositions
equ DLM$ to char(247) ; * Template delimiter char
MARK = 0 ; POS = 0 ; @RECORD = ""
loop
remove NP FROM PROMPTS at POS SETTING MARK
while NP do
PT = NP[1 "|"] ; * Type D Date A Amount etc
PL = NP[ 1 "B|"] ; *Prompt Label
NUM = @RECORD<1> + 1 ; * Increment prompt count
@RECORD<1> = NUM
PROMPT = ""
PROMPT<0 TYPE> = "F"
PROMPT<0 FNO> = NUM
PROMPT<0 D> = PL
PROMPT<0 DX> = 2
PROMPT<0 DY> = NUM * 2 1
PROMPT<0 VX> = 20
PROMPT<0 VY> = NUM * 2 1
PROMPT<0 VJST> = "L"
PROMPT<0 VLEN> = 15
* Add in prompt type specific logic
begin case
case PT = "D"
PROMPT<0 VOTP> = "DE"
PROMPT<0 VINP> = "(DE)"
case PT = "A"
PROMPT<0 VOTP> = "MD2 "
PROMPT<0 VINP> = "(MD2)"
end case
@RECORD< 1> = PROMPT
repeat
* Set up virtual screen measurements
DEPTH = NUM * 2 + 4
@RECORD< 1> = 20 : @FM : 4 : @FM
@RECORD := 60 : @FM : DEPTH
@RECORD := DLM$:60:@FM:DEPTH:@FM:
@RECORD := 60:@FM:DEPTH:@FM:0:DLM$
@PSEUDO = @RECORD
@PSEUDO = fieldstore(@PSEUDO DLM$ 6 1 TITLE)
COL = str(@FM 5) : 1 ; * Collector parameters
@PSEUDO = fieldstore(@PSEUDO DLM$ 13 1 COL)
CALL catalyst("W" " NOREAD")
return


(Volume 3 Issue 5 Pages 6 7)
[revmedia/copyrigh.htm]

Page last modified: 31/01/03