home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / progmisc / sld.zip / SLD.DOC < prev    next >
Text File  |  1993-05-04  |  103KB  |  2,578 lines

  1.         Screen Layout Designer - V1.03b
  2.         -------------------------------
  3.  
  4.  
  5.                   Chapter 1.
  6.                   ==========
  7.                         
  8. INTRODUCTION
  9. ------------
  10.  
  11. The Screen Layout Designer (SLD) has been designed to create data
  12. entry screens for database applications, such as dBase or
  13. Clipper. Initially it was developed for in house use to assist in
  14. the design of database systems, but it has proved so useful that
  15. it has been enhanced further into a development tool in its own
  16. right.  
  17.  
  18. The Screen Layout Designer will take the drudgery out of
  19. designing data entry screens.  It displays the data fields and
  20. field headings on your screen so that you can use the cursor keys
  21. or a mouse to position them wherever you want.  Additionally you
  22. may add framed boxes and titles to smarten up your data entry
  23. screen.  Colors for the background, data entry fields, headings,
  24. titles, menus and frames are selectable. SLD can read data field
  25. types directly from the header of dBase or Clipper ".DBF" files. 
  26. These fields are then displayed on the screen for you to
  27. manoeuvre into the desired position.  Alternatively SLD can read
  28. the fields from a text file, either created by you manually, or
  29. by dumping the database field definitions into the file by
  30. running a database field listing program, an example of which is
  31. given further in the text.  SLD can also retrieve previously
  32. designed screens from a Screen Layout Definition File, with a
  33. ".SLF" extension.  
  34.  
  35. SLD can generate two types of output file.  The first type is a
  36. text file containing dBase type "@ SAY" and "@ GET" statements,
  37. which may be directly pasted into your dBase or Clipper programs. 
  38. The second type is a Screen Layout Definition File, mentioned
  39. above, which stores full information about fields, boxes, titles
  40. and colors, etc.  You may use almost any programming language to
  41. read these files and extract the information contained in them to
  42. produce data entry screens for almost any database development
  43. language.  Details of these files are given later.   
  44. SLD supports multiple data entry screens.  That is to say if
  45. there are more fields in your database file than can be
  46. accommodated on one screen then you may place them on several
  47. screens.  SLD allows you to move freely between screens and even
  48. to move fields from one screen to another.  You may also change
  49. the text of field headings.  
  50.  
  51. Screen Layout Designer version 1.03 has been developed by Neville
  52. T. Palmer of PDM Associates.  This product is available for you
  53. to copy and pass on to other people, but the copyright remains
  54. the property of PDM Associates and Neville T. Palmer.  You may
  55. use this software initially without charge, but if you intend to
  56. continue using it you should register the product for your use. 
  57. This product is being developed further and there will be
  58. features of later versions which are not yet available in this
  59. one.  Upon registration we will send you the latest version of
  60. this software.  You will also be entitled to generous discounts
  61. on our other programs and future software. Please see appendix D
  62. for information on planned future enhancements, and the section
  63. on registration for information on how to register and to obtain
  64. your free software updates. 
  65.  
  66.                         Chapter 2.
  67.                         ==========
  68.  
  69. INSTALLING SCREEN LAYOUT DESIGNER
  70. ---------------------------------
  71.  
  72. SLD may be installed in any directory of your choice.  You should
  73. copy the files supplied on floppy disk into this directory. If
  74. they are archived then you will need to unarchive them into the
  75. directory.  Here is a full list of files you should have to use
  76. SLD:
  77.  
  78.       SLD.EXE      (the main executable program)
  79.       SLD.OVR      (the overlay file)
  80.       DBFACC.EXE   (the .DBF access program)
  81.       SCREDIT.EXE  (a simple text file editor)
  82.       SETNAME.NAM  (a file containing the name of the setup file  
  83.                         initial default: SETUP.SET)
  84.       SETUP.SET    (a file containing the initial default
  85.                         settings)
  86.       SCRHELP.EXE  (the help program)
  87.       SCRHELP.HLP  (the help file)
  88.       SLD.DOC      (the user manual ... this file)
  89.       SLD.WP5      (the user manual in Wordperfect format)
  90.       README       (a list of these files and initial info)
  91.       TUTOR.DOC    (a tutorial ... also found in the manual)
  92.       REGISTER.DOC (the software registration form for SLD)
  93.        HISTORY.DOC  (history of modifications, etc.)
  94.  
  95.       and sample files as follows:
  96.  
  97.       INPUT.TXT    (a sample input text file)
  98.       COMPANY.DBF  (a sample .DBF file)
  99.       CONTACT.DBF  (ditto)
  100.       OUTPUT.PRG   (a sample screen output file in Clipper 5)
  101.       DBASE3.PRG   (a sample screen output file in dBase III)
  102.       SCREEN.SLF   (a sample screen layout file)
  103.  
  104.       miscellaneous files:
  105.  
  106.        CLIPTEST.PRG (a test program generated by SLD each time a 
  107.                         Clipper program is generated)
  108.       DBTEST.PRG   (a test program generated by SLD each time a
  109.                         dBase program is generated)
  110.       CLIPMAKE.BAT (a batch file which may be used to compile the
  111.                         generated code and test program in
  112.                         Clipper)
  113.  
  114.  
  115.  
  116. STARTING SCREEN LAYOUT DESIGNER
  117. -------------------------------
  118.  
  119. Before running SLD it is best to ensure that no other programs
  120. are running on your system.  To start SLD type 'SLD' at the DOS
  121. prompt. A pull down menu will be displayed.  You will need to
  122. enter systems settings before you can use SLD.  Dependant on the
  123. way you will use SLD you will also have to create certain files
  124. before you can use SLD to build data entry screens (please see
  125. further information below). The most important settings which
  126. you should set from the pull down menu are as follows:
  127.  
  128.   SETUP - select this option from the main menu to enter 
  129.   ====    system settings.
  130.    
  131.       This will take you to a second pulldown menu bar called the
  132.       "System Setup Menu". The most important choices you should
  133.       make from here are:
  134.  
  135.      INPUTTYPE:  -menu option.
  136.      ---------
  137.       You have three choices, "TEXT", "DIRECT" or "SLF". If you
  138.       want to read the data fields direct from a ".DBF" database
  139.       file then you should select "DIRECT".
  140.  
  141.       If you want to read the fields from a text file then you
  142.       should select   "TEXT".  Input text files can be created by
  143.       you either using a text  editor or by running a program
  144.       from Clipper or dBase which dumps the fields to a text
  145.       file. They are also created as an intermediate part of the
  146.       process of reading fields from a .DBF file if you select
  147.       "DIRECT".
  148.  
  149.       You may also read the screen layout which you have
  150.       generated from a previous session.  In this case you should
  151.       select "SLF".
  152.  
  153.       LANGUAGE - menu option
  154.       ---------
  155.       There are slight differences between the dialects of dBase
  156.       generic languages. SLD is equipped to allow for these
  157.       differences in the output screen source code that it
  158.       generates. You may select Clipper V.5, Clipper Summer '87,
  159.       dBaseIII or dBaseIV. SLD will choose the most suitable
  160.       commands for the language that you choose. However if you
  161.       select dBaseIII, certain features of SLD are not available,
  162.       these are:   
  163.         1)  only three box frame types are available instead of
  164.             five (No Frame, Single or Double lined),
  165.         2)  the 43/50 row by 80 column display mode is not
  166.             supported.
  167.       OTHER - menu option
  168.       -----
  169.       
  170.       SETFILE: This is the name of the file which will be used to
  171.             store the system information.  You need not worry
  172.             about this option to begin with , as a default file,
  173.             "SETUP.SET" will already be entered here for you.
  174.   
  175.       EDITOR: You may edit or create the input text file or edit
  176.             the generated screen code file, in which case you
  177.             will require an editor. You may use an editor from
  178.             within SLD, so you should enter the executable name
  179.             of your editor here. The default is the simple built
  180.             in editor "SCREDIT". If you want something more
  181.             sophisticated then your editor should either exist in
  182.             the SLD directory, or in a directory in the DOS path. 
  183.             Do not use a wordprocessor, as it is likely to use
  184.             too much memory and may add unwanted control
  185.             characters to your files.  
  186.  
  187.       SPEED: This setting determines the speed at which messages
  188.             are displayed on the screen. You may select "SLOW",
  189.             "MEDIUM", "FAST" or "FLASH" here, which determines
  190.             the speed at which messages are displayed.
  191.  
  192.       MAXFIELDS: If you are reading input data fields direct from
  193.             a database .DBF file, or from a text file, the fields
  194.             will be placed on the screen automatically. You will
  195.             need to limit the number of fields placed on any one
  196.             screen to prevent cluttering. When you select this
  197.             option you will be prompted for the number, between 1
  198.             and 50. Save it by pressing the Enter key or Esc to
  199.             quit.  Note that if the screenheight is less than the
  200.             number you enter here this value will be temporarily
  201.             overridden and reduced to the value of the height, in
  202.             number of rows, of the current screen. Also if you
  203.             have entered #SCREEN commands in the input text file,
  204.             these will temporarily override the value.
  205.  
  206.       REGISTER: This option allows you to register this program
  207.             or check your existing registration. If you intend to
  208.             continue using this software you should register this
  209.             program. If you do so the first screen you see when
  210.             entering SLD will contain your registered name and
  211.             there will be no time delay before the program runs;
  212.             also the exit screen when you leave SLD will no
  213.             longer appear. See the section on Registration for
  214.             full information on how to use this option to
  215.             register this program.       AUTHOR: When you generate the screen code a header will be 
  216.                   written to the top of the file. This will
  217.                   contain the output source code file name and
  218.                   date. It will also contain the registration
  219.                   name if you have registered SLD. You may wish
  220.                   to add an Author name, and selecting this
  221.                   option will allow you to do this.
  222.  
  223.  
  224.       SPLITFILE: You may select "NoSplit" or "Split".
  225.  
  226.             If you select NoSplit:
  227.  
  228.             when you generate the output screen code file
  229.             (usually with a "PRG" file extension) all the code
  230.             will be saved to one file, regardless of how many
  231.             screens you have containing data fields or menus. In
  232.             the case of an FMT file only the screen code for the
  233.             currently active screen number will be saved to the
  234.             FMT file.
  235.  
  236.             Note: the NoSplit option is best suited to Clipper
  237.             programs where multiple screens can be accomodated in
  238.             one program file.
  239.  
  240.             If you select Split:
  241.  
  242.             when you generate the screen code, each screen will
  243.             be saved to a different file with a "Pxx" extension,
  244.             where "xx" is the screen number, eg. screen one may
  245.             be saved to a file called "OUTPUT.P1". In the case of
  246.             FMT files each screen would be saved to a file with
  247.             an "Fxx" extension, where "xx" again is the screen
  248.             number. eg. screen ten may be saved to "OUTPUT.F10".
  249.             When these files have been generated you will
  250.             probably need to rename them to a suitable .PRG or
  251.             .FMT filename.
  252.             
  253.             Notes:
  254.  
  255.             i)  The Split option is better suited to dBase
  256.             programs, especially since dBaseIII may find a single
  257.             file too long to work with.
  258.  
  259.             ii)  The filenames that are used to save the code for
  260.             each screen to will be the name of the Code file or
  261.             FMT file you selected from "File" and "Output" on the
  262.             Main Menu with the new "Pxx" or "Fxx" extension added
  263.             in place of the "PRG" or "FMT" extension.
  264.       FILESPERSCREEN: you may select OneOnly or Multiple
  265.             When SLD reads data fields from an input file or
  266.             files you may allow it to display the fields from
  267.             only one data file on each screen or the fields from
  268.             more than one file per screen. 
  269.  
  270.             If you select OneOnly:
  271.  
  272.             If you have setup SLD to read data fields from more
  273.             than one data file those fields will be placed on the
  274.             screen according to the "MaxFields" option, which is
  275.             described above, unless you have set OneOnly here, in
  276.             which case fields from different data files are
  277.             placed on different screens.
  278.  
  279.             If you select Multiple:
  280.  
  281.             In this case fields from different data files may be
  282.             placed on the same screen, and the number of fields
  283.             displayed on one screen will only be determined by
  284.             the "MaxFields" setting.
  285.  
  286.             Note: this setting depends on the intended use of the
  287.             generated code and also which language you are using.
  288.             If you are generating a dBase III/IV screen format
  289.             (FMT) file, normally only fields from one data file
  290.             need be included in one format file.
  291.  
  292.  
  293.  
  294.       DISPLAY - menu option
  295.       -------
  296.       You may select "COLOR" for a color display and "MONO" for a
  297.       monochrome monitor.  In "MONO" mode the display colors are
  298.       clarified for monochrome display. Normally you should opt
  299.       for "COLOR", even on a monochrome display, but if your
  300.       display does not work well in color select MONO.
  301.       From here you may also select "TYPE" so that you can select
  302.       the display adapter type to which your monitor is attached.
  303.       This should be one of "VGA", "EGA", "CGA" or "MDA". See
  304.       below for a further discussion on this. 
  305.  
  306.       MODE - menu option
  307.       ----
  308.       This option determines the size of your data entry screens
  309.       either 80 columns by 25 rows, 80 columns by 43 rows, or 80
  310.       columns by 50 rows  (dependant on your monitor type).  The
  311.       default is "80x25". See below for further discussion.
  312.       PRINTER - menu option.
  313.       -------
  314.       In order to print files and system setting information you
  315.       will need to enter settings relating printer. The printer
  316.       may have a serial or a parallel interface. If it is
  317.       parallel it may be connected to port LPT1, 2 or 3 on your
  318.       computer. If it is serial it may be connected to port COM1,
  319.       2 or 3, and you may need to enter settings relating to the
  320.       communications speed and the size of data bits which for
  321.       characters which will be sent to your printer. The setup
  322.       information may be entered as follows:
  323.  
  324.       PORT:  this is the port on your computer to which the
  325.             printer will be attached and should be one of
  326.             LPT1,LPT2,LPT3 for parallel, or COM1, COM2 or COM3
  327.             for serial printer interfaces.
  328.  
  329.       COMMS: if you are using a printer with a serial interface 
  330.                   having selected one of COM1-3, you may need to
  331.                   change  the port communication speed and data
  332.                   bits to match the printer. The options from
  333.                   this submenu are:
  334.  
  335.         Speed -   one of 9600, 4800, 2400 or 1200 bauds. This is
  336.                   the rate of data transfer to your printer.
  337.         Data  -   this is the number of data bits for each
  338.                   character sent to the printer, either 7 or 8.
  339.         Parity-   this may be Even, Odd or None, depending on the
  340.                   type of data parity error checking your printer
  341.                   requires.
  342.         Stop -    this is the number of stop bits that are added
  343.                   to the end of each character sent to the
  344.                   printer, either one or two.
  345.  
  346. For information on which printer settings to select you should
  347. consult your printer manual. If your printer has a parallel
  348. interface you do not need to change any of the settings available
  349. from the "COMMS" option, but if it has a serial interface you may
  350. need to. You should ensure that you have the correct cable
  351. attached to your printer, especially in the case of serial
  352. communications where you will need to ensure that correct
  353. handshaking takes place between the computer and printer. There
  354. are no facilities for changing handshaking modes from SLD at the
  355. moment, so ensure that you have a cable capable of dealing with
  356. hardware or software handshaking as appropriate for serial comms.
  357.  
  358.       SAVE - menu option.
  359.       ----
  360.       Once you have entered the settings you should save them by
  361.       selecting this option.
  362.  
  363.       Now return to the Main Menu by selecting "MAINMENU" or
  364.       pressing "ESC".
  365.                   -----------------------
  366.       FILE - menu option. Select this option from the Main Menu.
  367.       ----
  368.  
  369.        INPUT: If you have selected "DIRECT" from the INPUTTYPE
  370.             option of the System Setup Menu, then you will need
  371.             to enter the name of the .DBF file that SLD will read
  372.             data fields from, and the name of an intermediate
  373.             text file into which the fields will be held for use
  374.             by SLD. In this case enter the name of the text file
  375.             by selecting "TEXT" and then the name of the .DBF
  376.             file by selecting "DBASE".
  377.  
  378.             If you have selected "TEXT" from the INPUT option on
  379.             the System Setup Menu then you only need to enter the
  380.             name of the text file here, in the same way.
  381.             Remember, if you elect to do this the text file must
  382.             already exist, having been created manually or by
  383.             dumping fields from a .DBF file into the text file.
  384.  
  385.             If you have selected "SLF" from the INPUTTYPE option
  386.             you must enter the name of a previously generated
  387.             Screen Layout File, with an ".SLF" extension, created
  388.             by you during a previous SLD session.
  389.  
  390.  
  391.       OUTPUT: You must select "CODE" to enter the name of the
  392.             file which will contain your dBase generic language
  393.             screen source code. You must select "SLF" to enter
  394.             the name of a Screen Layout       File which will be
  395.             used to store the screen layout and settings from the
  396.             current SLD session.
  397. Using MonoChrome Monitors with SLD.
  398. -----------------------------------
  399. Ideally Screen Layout Designer is used to best effect on a color
  400. monitor, however you may be using a monochrome monitor, or simply
  401. wish to generate source code for mono monitors. To select
  402. monochrome display mode you may either select Setup/Display/Mono
  403. from the menu bar after starting SLD, or you may start SLD with
  404. the "/M" switch, ie. type the following at the DOS prompt:   
  405. SLD /M.  This will override the default colors. If you then
  406. change the colors when in SLD you should save them.  If you do
  407. this you will not need to use the /M switch, which overrides all
  408. color settings, when you next run the program.
  409.  
  410. The color palette is available for you to change colors in Mono
  411. mode, but they are translated into the gray scale tones
  412. automatically so that what you see is actually what you get when
  413. code is generated.
  414.  
  415. Some mono monitors have been found to display well in Color
  416. display mode, but others display better in Mono mode.
  417.  
  418.  
  419.  
  420.  
  421. Selecting a Display Adapter Type:
  422. --------------------------------
  423. When you initially setup SLD you should select SETUP from the
  424. Main Menu. This will take you to the Setup Menu. Enter the other
  425. settings as normal. To change the display adapter type, select
  426. MODE followed by TYPE. You may select MDA for Monochrome and
  427. Hercules display adapters, CGA for the original Color Graphics
  428. Adapter, EGA for the Enhanced Graphics Adapter, or VGA for Video
  429. Graphics Array adapter (including SVGA, etc.). Selecting the
  430. correct display adapter will ensure that you do not select an
  431. incorrect display mode.
  432.  
  433.  
  434. Selecting Text Mode.
  435. --------------------
  436. The display mode that you select will determine the appearance of
  437. your data entry screen in the finished dBase/Clipper program. The
  438. display modes are: 25 rows x 80 columns, 43 x 80, and 50 x 80.
  439. There are a number of factors which determine valid display modes
  440. as follows:
  441.  
  442.  1)   your display adapter and monitor type,
  443.  2)   which output language you will use (dBaseIII or IV, or 
  444.       Clipper V5 or S87).
  445.  3)   the version of DOS on the program development PC.
  446. SLD attempts to be as flexible as possible in the above issues.
  447. Here is a breakdown of valid display modes:
  448.  
  449.  1)   The CGA display adapter generally only allows 25 x 80 
  450.       display mode. MDA and Hercules monochrome, and EGA color
  451.       adapters generally allow only 25 x 80, and 43 x 80 display
  452.       modes. VGA adapters generally allow  25 x80, 43 x 80 and 50
  453.       x 80 modes, however SLD only supports 43 x 80 mode on a VGA
  454.       adapter with DOS version 4 and above.
  455.  
  456.  2)   dBaseIII and Clipper 87 only support 25 x 80 mode. dBaseIV 
  457.       supports 25 x 80 and 43 x 80 modes. Clipper V5 supports 25
  458.       x 80, 43 x 80 and 50 x 80 modes.
  459.  
  460. To select a text mode select SETUP from the Main Menu to display
  461. the Setup Menu. From this menu select MODE. You may then select
  462. one of the three modes, dependant on the adapter type you have
  463. entered in the TYPE option on this menu. If you change mode the
  464. contents of the screen will be cleared and regenerated in the new
  465. mode.
  466.  
  467.  
  468. NOTES:
  469. ------
  470. You should change the display mode before you have allowed SLD to
  471. read data fields from a file and display them on the screen (by
  472. selecting SHOW from the Main Menu). If you do not the screen you
  473. were editing could be truncated, particularly if you switch from
  474. 50 x 80 to 25 x 80 mode, and some fields may not be displayed.
  475. Should this happen, switch back to the previous mode and move the
  476. fields to within the bounds of the new screen mode, or,
  477. alternatively, move the fields to another screen.  eg. if you
  478. wish to switch from 50 x 80 to 25 x 80, then move the relevant
  479. field's position on the screen above the 25 row boundary, or move
  480. it onto the next screen.
  481.  
  482. Select the best screen mode for the output language you are
  483. using. For instance, don't select 50 x 80 mode when your target
  484. language is dBaseIII. SLD is flexible; you might say that it
  485. gives the user enough rope to hang themselves with!
  486.    
  487.                               Chapter 3.
  488.                               ==========
  489.  
  490. USING SCREEN LAYOUT DESIGNER.
  491. -----------------------------
  492.  
  493. Having setup the important initial settings in SETUP and FILE
  494. from the pulldown menu you are ready to view and edit the data
  495. fields on screen.
  496.  
  497. To do this select "SHOW" from the main pull down menu.  The pull
  498. down menu will disappear and the fields will be displayed with
  499. their headings.  A second menu will appear superimposed on the
  500. fields; this is the Screen Edit Menu. If you are reading from a
  501. .DBF or text file the data fields and default headings will be
  502. displayed starting from top left.  To start editing the screen
  503. select EDITSCREEN from the pulldown menu or just press "Esc".
  504. You are in Screen Edit Mode. NOTE: to get back to the pull down
  505. menu from within your editing session  press "Esc" again.  To
  506. move the cursor you may use the cursor (arrow) keys or a mouse.
  507.  
  508. Note:  if to return to the main menu from the Screen Edit Menu,
  509.       select "QUIT"  (or "Alt Q").
  510.  
  511.  
  512. Manoeuvring the Fields and Headings.
  513. -------------------------------------
  514. You may use the cursor keys  or mouse to manoeuvre the fields and
  515. headings around the screen.  To move a field or heading, move the
  516. cursor onto it with the mouse or cursor keys and press the Enter
  517. key or press the left mouse button.  If you are using a mouse,
  518. keep the left button pressed and move the field to the new
  519. position, then release the button.  If you are using the cursor
  520. keys, move the field to the new position and press enter again to
  521. place it. 
  522.  
  523. Other Cursor Movement Keys.
  524. ---------------------------
  525. In addition to the mouse and cursor keys (arrow keys) you may use
  526. other keyboard keys to move the cursor around the screen as
  527. follows:
  528.       HOME - to move the cursor to the far left of the screen.
  529.       END  - to move the cursor to the far right of the screen.
  530.       PAGE_UP - to move the cursor to the top of the screen.
  531.       PAGE_DOWN -to move the cursor to the bottom of the screen.
  532.  
  533.  
  534. Changing Headings & the Screen On Which a Field/Heading Appears.
  535. ---------------------------------------------------------------
  536. If you move the cursor onto a field or heading with the mouse or
  537. cursor keys and, either press function key F2, or double click
  538. the mouse, a window will appear containing the following
  539. information on that field:
  540.  
  541. Field Name: the name of the data field as it appears in the .DBF
  542.             file.
  543. Type: the type of the field (C=character, N=numeric, D=date,
  544.       M=memo, L=logical)
  545. Width: the width of the data field
  546. Decimal Places:   the number of decimal places for numeric
  547.                   fields.
  548.  
  549. From here you can change the heading text which corresponds to
  550. the data field on the screen, and the screen on which the field
  551. and its heading are displayed.  In version 1.03 of SLD you will
  552. only be able to change these two items.  To change the heading,
  553. simply type in the new text. If you do not want any heading for
  554. this field (eg. for ADDRESS2,3,4 fields) delete the heading,
  555. leaving the text blank, and the heading will not appear on the
  556. screen when you save the information.
  557.  
  558.  
  559. If you want the field and its heading to be displayed on another
  560. screen, enter the new screen number here, and when you save the
  561. information the field and heading will disappear from the current
  562. screen.  The field and heading will reappear when you select the
  563. new screen from the menu bar. To save and exit the window, press
  564. Ctrl and Enter.  To exit without saving the changes, press Esc. 
  565. Or you may delete a field and its heading completely by pressing
  566. the F4 key.  If you do so the field and heading will disappear
  567. from all screens.  You should consider very carefully whether you
  568. need the field you are about to delete before actually deleting
  569. it. If you delete it then your program will not be able to update
  570. information in this field for each record in your data file, with
  571. the code generated in this session.
  572.  
  573.  
  574. Moving to Another Screen.
  575. ------------------------
  576. If you press "Esc" whilst in Screen Edit Mode the pulldown Screen
  577. Edit Menu will reappear.  To change to another screen select the
  578. "SCREEN" option from here.  You are given three choices: "NEXT"
  579. to move to the next screen, "PREV" to move to the previous
  580. screen, and "NUMBER" which will prompt you to enter a screen
  581. number to move to.  If the screen you select is out of range you
  582. will be warned accordingly.
  583.  
  584. You may also select a screen by number from the main menu SCREEN
  585. option. Adding a Blank Screen.
  586. ----------------------
  587. You may add a blank screen to the current editing session from
  588. the Main Menu bar or from the Screen Edit Menu by selecting
  589. "SCREEN", followed by "ADD".  If are in Screen Edit Mode you
  590. should press "Alt" and "S" (or press "Esc" to return to the
  591. Screen Edit Menu and select "SCREEN") so that you can select
  592. "ADD" to append a new screen to your session.
  593.  
  594.  
  595. Adding Boxes and Titles to your Screens.
  596. ---------------------------------------
  597. To improve the presentation of your data entry screens you can
  598. add framed
  599. boxes and additional titles to them.  
  600.  
  601. To Add a Box:
  602. -------------
  603. You may add a box from the Screen Edit Menu by selecting "BOX".
  604. From here
  605. you may add a NEW box, EDIT or DELETE an existing one. If you are
  606. in Screen Edit Mode you may press "Alt" and "B" which will take
  607. you straight to the new box menu option on the Screen Edit Menu
  608. (you may also do this by pressing "Esc" and then selecting "BOX"
  609. from the menu). Before adding your box you may wish to change the
  610. type of frame you want for the box, in which case select "FRAME"
  611. first.  The frame type you select will override the default frame
  612. setting.  Having selected the frame you should then select "NEW".
  613. The pulldown menu will disappear and you will enter Screen Edit
  614. Mode and then Box Edit Mode.  Move the cursor, using the cursor
  615. keys or mouse, to the position where you want the top left corner
  616. of the box to start, then press Enter, or click with the mouse.
  617. Now when you move the cursor the box will expand or contract from
  618. its origin.  When the box is at its correct size you may move it
  619. around the screen by pressing F3.  F3 can be used to toggle
  620. between moving the box or expanding/contracting it.  When you are
  621. happy with the size and position of the box, click with the mouse
  622. or press Enter to save it, or to abandon the box press Esc.
  623.  
  624. To edit or delete a box select "EDIT" or "DELETE" from the BOX
  625. option on the menu.  Move the cursor to the box to edit or delete
  626. and either click on it with the mouse or press Enter.  If you are
  627. deleting the box you will be asked whether you wish to go ahead
  628. with the deletion.  If you answer "Y" the box will disappear. If
  629. are editing the box you will enter Box Edit mode and you should
  630. progress as mentioned previously when adding a box.
  631.  
  632. Hotkey to Add a Box.
  633. --------------------
  634. If you are in Screen Edit Mode you may add a box without
  635. resorting to the pulldown menu bar.  If you press F3 you will
  636. enter Box Edit Mode, from where you can place a box on the
  637. screen.  Note however that you cannot use F3 to edit or delete an
  638. existing box.
  639. To Add a Title:
  640. --------------
  641. You may add a box from the Screen Edit Menu by selecting "TITLE".
  642. From here you may add a NEW title, EDIT or DELETE an existing
  643. one. If you are in Screen Edit Mode you may press "Alt" and "T"
  644. which will take you straight to the new title menu option on the
  645. Screen Edit Menu (you may also do this by pressing "Esc" and then
  646. selecting "TITLE" from the menu). The pulldown menu will
  647. disappear and a window will appear prompting you to enter the
  648. title text.  The title text can be up to 78 characters in length. 
  649. Leading spaces will may be used to left pad the title. To save
  650. the title text press Enter (to exit without saving press Esc).
  651. You will enter Screen Edit Mode and then Title Edit Mode.  Move
  652. the cursor, using the cursor keys or mouse, to the position where
  653. you want the left side of the title to start, then press Enter,
  654. or click with the mouse.  Now when you move the cursor the title
  655. will expand or contract from its origin. When the title is at its
  656. correct size you may move it around the screen by pressing F3. 
  657. F3 can be used to toggle between moving the title or
  658. expanding/contracting it.  When you are happy with the size and
  659. position of the title, click with the mouse or press Enter to
  660. save, or press Esc to abandon it.
  661.  
  662. To edit or delete a box select "EDIT" or "DELETE" from the TITLE
  663. option on the menu.  Move the cursor to the title to edit or
  664. delete and either click on it with the mouse or press Enter.  If
  665. you are deleting the title you will be asked whether you wish to
  666. go ahead with the deletion.  If you answer "Y" the title will
  667. disappear.  If are editing the title a window will appear
  668. enabling you to edit the title text as previously.  When you have
  669. changed the text save it with Enter, or press Esc to abandon the
  670. edit. You will then enter Title Edit mode and you should progress
  671. as mentioned previously when adding a Title.
  672.  
  673. Hotkey to Add a Title.
  674. ----------------------
  675. If you are in Screen Edit Mode you may add a title without
  676. resorting to the pulldown menu bar.  If you press F4 you will
  677. enter Title Edit Mode, from where you can place a title on the
  678. screen.  Note however that you cannot use F4 to edit or delete an
  679. existing title.
  680.  
  681. Adding Menu Systems and Options your Screens.
  682. ---------------------------------------------
  683. To improve the functionality of your data entry screens you can
  684. add menu sytems to them.  To each menu system you may can add a
  685. number of menu options.
  686.  
  687. To Add a Menu System:
  688. ---------------------
  689. From the Screen Edit Menu select "MENU" and then "ADD" .  From
  690. here you can add a new menu system. The menu system will be added
  691. to the current screen on view. You should plan your menus and
  692. remember not to clutter your screens with too many menus.
  693.  
  694.  
  695. dBase II and IV Menus:
  696. ----------------------
  697. If the language you are using is dBase III or IV then you may use
  698. one of 3 slightly different menu types. When adding a new menu
  699. you will first of all be prompted: 
  700. "Use Conventional dBase Menu style (Y/N)?". 
  701. If you answer "NO" to this the menu generated will be a bounce
  702. bar type, and if you answer "YES" the menu will be of the
  703. conventional dBase type. If you do answer "YES" you will be
  704. prompted: 
  705. "Use an @GET to Select menu options (Y/N)?". 
  706. If you select "NO" to this the user's menu choice will be input
  707. by an INKEY() statement, but if you answer "YES" the user's
  708. choice will be input by an @GET and you will be prompted for the
  709. row and column where you wish the @GET prompt to be initially
  710. placed on the screen. If you answer "YES" you should save the row
  711. and column that you have entered by pressing the "Ctrl" and
  712. "Enter" keys. If you press the "Esc" key you will be returned the
  713. the previous "(Y?N)?" prompt. Remember that if you are adding
  714. more than one menu to the screen the @GET prompt should be placed
  715. in a different position for each menu. In any case you may move
  716. the prompt later by entering Menu Edit Mode.
  717.  
  718. Note: if you add a conventional dBase menu system without an @GET
  719. to select options on this menu then you may only add a maximum of
  720. nine selectable options to this menu. This type of menu is
  721. available for efficient small menus for dBase applications. Adding Options to Menus:
  722. ------------------------
  723. Once you have created your menu system it will be of no use until
  724. you have added menu options to it. To add an option select
  725. "MENU", then "OPTION", followed by "NEW" from the Screen Edit
  726. Menu.  NOTE: If you are in Screen Edit Mode you may get straight
  727. to here by pressing "Alt" and "M".
  728.  
  729. You will be prompted to enter the heading text for the menu
  730. option you are adding and the number of the menu system on which
  731. it will appear. The heading may be up to 40 characters, for
  732. example you may have a heading of "EDIT" on your menu. If you are
  733. unsure of which menus are active on the screen in view, press the
  734. F3 key and you will be presented with a list box of available
  735. menu numbers active on this screen. You should use the up or down
  736. arrow keys to highlight a menu number and select it using the
  737. Enter key. To save the heading and menu number information press
  738. "Ctrl" and "Enter", or "Esc" to abandon the whole operation.
  739.  
  740. If you save the menu heading information you will enter Screen
  741. Edit Mode and then Menu Edit Mode.  Move the cursor, using the
  742. cursor keys or mouse, to the position where you want the left
  743. side of the menu option to start, then press Enter, or click with
  744. the mouse. When you move the cursor keys or mouse the menu option
  745. will expand or contract it from its origin.  When the menu option
  746. is at its correct size you may move it around the screen by
  747. pressing F3.  F3 can be used to toggle between moving the option
  748. or expanding/contracting it.  When you are happy with the size
  749. and position of the menu option, click with the mouse or press
  750. Enter to save it. 
  751.  
  752.  
  753. To edit or delete a menu option select "EDIT" or "DELETE" from
  754. MENU/OPTION  on the menu.  Move the cursor to the menu option to
  755. edit or delete and either click on it with the mouse or press
  756. Enter.  If you are deleting the option you will be asked whether
  757. you wish to go ahead with the deletion.  If you answer "Y" the
  758. menu option will disappear.  If are editing the option a window
  759. will appear enabling you to edit the menu option text as
  760. previously.  You may also attach the menu option to another menu
  761. system. 
  762. When you have changed the text save it with Enter, or press Esc
  763. to abandon the edit. You will then enter Menu Edit mode and you
  764. should progress as mentionedpreviously when adding a menu option.
  765.  
  766. Hotkey to Add a Menu Option.
  767. ---------------------------
  768. If you are in Screen Edit Mode you may add a menu option without
  769. resorting to the pulldown menu bar.  If you press F5 you will
  770. enter Menu Edit Mode, from where you can place a menu option on
  771. the screen.  Note however that you cannot use F5 to edit or
  772. delete an existing menu option.
  773. Adding a Standard Menu System.
  774. -----------------------------
  775. To save you the time taken in creating a standard menu system,
  776. you may select a Standard menu from the Screen Edit Menu. This
  777. standard menu has seven options already created for you, these
  778. are: "ADD", "EDIT", "DELETE", "NEXT", "PREV", "FIND" and "QUIT".
  779. These menu options are drawn on the second to last row of the
  780. current screen when you select "MENU", followed by "STANDARD",
  781. from the Screen Edit Menu. You may only add one standard menu to
  782. each screen. These menu options may be edited in the same way as
  783. previosuly described.
  784.  
  785. Letter Selection of dBase Menus.
  786. --------------------------------
  787. To improve your dBaseIII/IV menus you may wish to select a menu
  788. option by pressing a letter, rather than using the cursor/tab key
  789. to highlight it and then pressing the enter key. For example: if
  790. you have amenu option called "EDIT" you may wish to select it by
  791. simply pressing the letter "E".  To enable letter selection then,
  792. when you edit the menu option heading, insert a ^ (hat) symbol
  793. before the selection letter (normally the first letter). The
  794. ^ symbol will not appear on the finished menu system, but the
  795. letter selection code will be generated. (So then in our example
  796. we would enter the option title as "^EDIT" ). Note that when you
  797. select the standard menu system the ^ symbol is added before
  798. the first character of each option automatically.
  799.  
  800.  
  801. Notes: 
  802.  
  803. 1)    in the case of Clipper menus it is not necessary to include
  804.       the ^ symbol in option headings because Clipper
  805.       automatically allows first letter selection in menus.
  806.  
  807. 2)    If you select Clipper for the Language setting, then
  808.       generate a Standard Menu, and you then change the language
  809.       to dBase, remember that the Standard Menu will have no ^
  810.       symbols for first letter selection.
  811.  
  812.  
  813. The Expand/Contract or Move HotKey - F3
  814. ----------------------------------------
  815. It is worth emphasising that when editing Boxes, Titles or Menu
  816. options and moving them around the screen the F3 key toggles
  817. between movement of the object and expanding/contracting the size
  818. of the object.
  819. CHANGING DEFAULT COLORS FOR GENERATED SCREENS.
  820. ----------------------------------------------
  821.  
  822. If you select "SCREENCOLORS" from Main Menu, at any time, you
  823. will be able to change the colors, etc, of the data entry screen
  824. you will generate (NOTE: this should not be confused with the
  825. system colors for SLD system menus and windows available from the
  826. Setup Menu).
  827.  
  828. The settings you can change from SCREENCOLORS are as follows:
  829.  
  830.  BACKFILL:  this option allows you to change the character that
  831.             will be used to fill the background of your data
  832.             entry screen. It may be a space character, or ASCII
  833.             code.
  834.  
  835.  BACKGROUND: this allows you to change the background color of 
  836.             the data entry screen.  The actual color and
  837.             appearance of the background will depend on the
  838.             combination of this setting and the BACKFILL
  839.             character you selected.
  840.  
  841.  FIELD:     this determines the color of text and background of
  842.             unselected data entry fields.  To assist you in
  843.             choosing the color of the field text, an asterisk is
  844.             displayed in the blank field.
  845.  
  846.  SELECTED:  this determines the text and background color in
  847.             which the currently selected data entry field will
  848.             appear. 
  849.  HEADING:   this allows you to select the text and background 
  850.             color for headings which correspond to a data entry
  851.             field.
  852.  
  853.  TITLE:     this option allows you to select the text and
  854.             background color for additional titles on your data
  855.             entry screen.
  856.  
  857.  MENU:      this option allows you to select the text and
  858.             background color for selected user created menu
  859.             options. These menus should not be confused with the
  860.             main SLD pulldown menu bar.
  861.  
  862.  UNSELMENU: this allows you to select the text and background
  863.             color for unselected user created menu options.
  864.  
  865.  BOX:       this determines the frame background and foreground
  866.             color of boxes you add to your data entry screen.
  867.  
  868.  FRAME:     you can select the default frame characters which
  869.             boxes will use by default.  This setting can be
  870.             overridden temporarily when you add a new box.  The
  871.             frame you may select can be one of: No Frame, Single
  872.             Lined Frame, Double Lined Frame, Double Lined Top and
  873.             Single Lined Side, or Single Lined Top and Double
  874.             Lined side.
  875.  
  876.  SETFRAMES: if you change the default frame type this change will
  877.             not be reflected in the previously defined boxes
  878.             already displayed on the screen, unless you change
  879.             each box individually. However by selecting this
  880.             option all boxes will be updated with the new default
  881.             frame type at the same time.
  882.  
  883.   Note:     if you are using the monochrome display mode the
  884.             color palette colors will be translated to gray scale
  885.             tones. Some colors in the palette will be displayed
  886.             with an underline. These colors will be displayed
  887.             with underlining in the system colors, and on
  888.             completed data entry screens if you have selected
  889.             Clipper for the language type. However the
  890.             underlining will not be displayed if you select dBase
  891.             for the language type, so bear this in mind when
  892.             selecting colors.
  893. CHANGING DEFAULT SLD SYSTEM COLORS.
  894. -----------------------------------
  895. If you select "SETUP" from Main Menu, the System Setup Menu will
  896. appear. You may change the default system settings for Screen
  897. Layout Designer from here. By selecting "COLORS" you may change
  898. the colors for the pulldown menus, information windows/dialog
  899. boxes, data entry, and listboxes, etc.
  900.  
  901. The settings you can change from COLORS are as follows:
  902.  
  903.  MENUBAR - this option allows the setting of pulldown menu colors
  904.  -------
  905.  UNSELECTED: this option allows you to change the color of        
  906.             currently unselected options on the pulldown menus.
  907.  
  908.  HIGHLIGHT: unselected menu options have a highlighted character.
  909.             If you select "Alt" and this character, or just this
  910.             character on its own you will select this option on
  911.             the menu. You may change the highlight color here.
  912.  
  913.  SELECTED:  this option allows you to change the color of the
  914.             currently selected menu option.
  915.  
  916.  DISABLED:  some menu options will not be valid for the state of
  917.             the current menu. These options will disabled and
  918.             should appear in a dimmer color than normal selected
  919.             or unselected options. Change this color here.
  920.  
  921.  FRAME:     this option allows you to change the frame and
  922.             heading text color of pulldown menus.
  923.  
  924.  HELP:      this option allows the setting of the single help
  925.             line positioned at the bottom of the screen.
  926.  
  927.  WINDOWS - this option allows the setting of windows/dialog box -
  928. -------   colors.
  929.  
  930.    TEXT:    this option allows you to change the color of the
  931.             text of information and dialog boxes,as well as the
  932.             background on which it is displayed.
  933.  
  934.    FRAME:   this allows you to change the frame color for info.
  935.             windows and dialog boxes.
  936.  
  937.    SBUTTON: some dialog boxes will present you with options
  938.             presented as buttons responding to operator response
  939.             (eg. 'Y' or 'N'). You to change the color of the
  940.             currently selected push button.
  941.  
  942.    UBUTTON: this allows you to change the color of currently
  943.             unselected push buttons.
  944.  
  945.   ENTRY - this option allows the setting of data entry box colors
  946.   -----
  947.    WINDOW:  this option allows you to change the frame, heading 
  948.             and background colors for data entry windows
  949.             requiring user input (eg. the name of a file for SLD
  950.             to process).
  951.  
  952.    PROMPT:  this option allows you to change the text and
  953.             background color for the text prompting the user for
  954.             data entry. (eg. Filename: ).
  955.  
  956.    SELECTED: this allows you to change the color of the currently
  957.             selected item in in a data entry window.
  958.  
  959.    UNSELECTED: if there is more than one item in a data entry
  960.             window the currently unselected items will be
  961.             presented in a different color to the selected item.
  962.             You may change this color here.
  963.  
  964.   LISTBOX - this option allows the setting of listbox colors.
  965.   --------  Listboxes will present the user with multiple lines
  966.             of information and may also allow the user to select
  967.             a line for input into a data entry screen.
  968.  
  969.   FRAME:    this allows you to change the color of the frame
  970.             surrounding a list box.
  971.  
  972.   HIGHLIGHT: this allows you to change the color of the
  973.             currently highlighted line in a list box.
  974.  
  975.   NORMAL:   this allows you to change the color of all other
  976.             non-highlighted items in a list box.
  977.  
  978.  
  979.   HELP  - this option allows you to change the help window
  980.   ------  and index colors.
  981.  
  982.    FRAME:   this allows you to change the color of the frame and
  983.             heading colors of the help window and help index.
  984.  
  985.    NORMAL:  this allows you to change the background and text
  986.             color for of the help window and index.
  987.  
  988.    HIGHLIGHT: this allows you to change the color of higlighted
  989.             words within the help window (ie. for important
  990.             titles and points).
  991.  
  992.    INDEX:   the index window highlights the currently selected
  993.             index topic. This allows you to change the the color
  994.             of the highlighted item.
  995.              
  996. GENERATING SCREEN OUTPUT SOURCE CODE.
  997. -------------------------------------
  998.  
  999. Once you have laid out your data entry screen(s), complete with
  1000. any necessary boxes and titles, you are ready to generate source
  1001. code so that the screen can be incorporated into the database
  1002. program under development.
  1003.  
  1004. The built in code generator will generate code in dBase or
  1005. Clipper generic code.  To generate the code you should ensure
  1006. that you have entered a file name in the FILE/OUTPUT/CODE option
  1007. from the pulldown menu bar, then you should select "GEN" from the
  1008. menu bar, followed by "CODE".  The source code for the screen(s)
  1009. will be placed in the selected file. You should then paste the
  1010. code into your program and compile it with your dBase generic
  1011. compiler.  The code will be in the form of a procedure.  If your
  1012. program will incorporate multiple data entry screens then one
  1013. procedure will be generated for each screen.  Please see Appendix
  1014. B for information on the code generated by SLD.
  1015.  
  1016. The default filename extension for generated Screen Code Files is
  1017. ".PRG". 
  1018.  
  1019.  
  1020. GENERATING A SCREEN LAYOUT FILE.
  1021. --------------------------------
  1022.  
  1023. In addition to source code, you can store the contents and
  1024. settings of a data entry screen you have laid out in a type of
  1025. file unique to SLD.  This file contains a header record and a
  1026. record for each screen you have assigned in the current session. 
  1027. The Screen Layout Files have a ".SLF" extension name.  Once you
  1028. have laid out your screen(s) you can generatean SLF, first
  1029. ensuring that you have entered a file name with the correct
  1030. extension in the FILE/OUTPUT/SLF option from the pulldown menu
  1031. bar.  To generate the SLF select "GEN", followed by "SLF" from
  1032. the menu bar. The full information and settings relating to the
  1033. current screen(s) will be stored in the selected Screen Layout
  1034. File.
  1035.  
  1036. At any time in the future you can read from this SLF by selecting
  1037. SETUP/INPUT/SLF from the menu bar and entering its file name when
  1038. you select FILE/INPUT/SLF.  Then when you select VIEW the
  1039. previously stored screen will be redisplayed.
  1040. This type of file is probably the most powerful feature of SLD
  1041. because any third party program can be written to read its
  1042. contents to generate screen code in almost any language.  This
  1043. feature is one being developed further.
  1044.  
  1045. For information on the fields in the records of a Screen Layout
  1046. File please see Appendix A.
  1047.  
  1048.  
  1049. UPDATING THE INPUT TEXT FILE.
  1050. -----------------------------
  1051.  
  1052. If you are reading the data fields direct from a .DBF file then
  1053. an intermediate input text file will be created.  You may also
  1054. create your own text file containing the data fields, either
  1055. manually with an editor (see Chapter 4), or by dumping the fields
  1056. from a .DBF file into a text file (a program example, written in
  1057. Clipper is given in Chapter 4).  Screen Layout Designer will read
  1058. the data fields from this text file.  You may update the contents
  1059. of this file, in a limited way, by selecting "UPDATE", followed
  1060. by "TEXT", from the menu bar.  The data fields listed in the text
  1061. file will be saved in the order in which they appear on the
  1062. screen you have laid out, and according to them screen number on
  1063. which they appear.  The update operation may make use of the
  1064. #SCREEN command, unique to SLD.  
  1065.  
  1066. NOTE: beware that if you have updated the text file and you are
  1067. reading direct from a database .DBF file, the text file will be
  1068. overwritten when you re-run SLD or select NEW from the menu bar,
  1069. unless you select a new text file name for input.
  1070.  
  1071.  
  1072.  
  1073. EDITING A FILE.
  1074. ----------------
  1075.  
  1076. You may edit an input text file (default extension .TXT), an
  1077. output Screen Code File (default extension .PRG), or a dBase FMT
  1078. file (default extension .FMT), but you should not attempt to edit
  1079. any other type of file used by SLD.  Before you can edit a file
  1080. you must ensure that a valid editor has been selected.  The
  1081. executable file name of your editor should be entered by
  1082. selecting SETUP, then EDITOR from the menu bar. The default
  1083. editor is SCREDIT.EXE, however you may want to use a more
  1084. sophisticated editor.  Do not use a wordprocessor from within
  1085. SLD, as it is likely to use too much memory and may add unwanted
  1086. control characters to the file being edited.  If you have to use
  1087. a wordprocessor use it outside of the SLD program and save your
  1088. files as ASCII text, without control characters.
  1089.  
  1090. To edit the input text file select "EDIT", followed by "INPUT"
  1091. from the pulldown menu bar, then enter the name of the input text
  1092. file you wish to edit.  The default file extension for input text
  1093. files is ".TXT". 
  1094. To edit the output Screen Code File select "EDIT", followed by
  1095. "OUTPUT" from the menu bar, then enter the output Screen Code
  1096. File name that you wish to edit.  The default file extension for
  1097. Screen Code files is ".PRG".
  1098.  
  1099. To edit a dBase FMT file select "EDIT", followed by "FMT". The
  1100. default extension for these files is ".FMT".
  1101.  
  1102.  
  1103. PRINTING A FILE.
  1104. ----------------
  1105.  
  1106. You may print an input text file (default extension .TXT), an
  1107. output Screen Code File (default extension .PRG), or a dBase FMT
  1108. file (default extension .FMT), but you should not attempt to
  1109. print any other type of file used by SLD. You may additionally
  1110. print information about the current system settings. The
  1111. information is sent to the printer in normal ASCII text form. 
  1112. Before printing you must ensure that you have selected the
  1113. correct printer port for your printer. This should be LPT1, LPT2,
  1114. LPT3, COM1, COM2 or COM3, depending on whether your printer
  1115. interface is parallel or serial, and on how many ports your
  1116. system has free and available. To setup the printer, run the
  1117. Setup Menu, by selecting "SETUP" from the Main Menu, and then
  1118. select "PRINTER". You should enter the printer port and other
  1119. information here (see Setup).
  1120.  
  1121. To print the input text file select "PRINT", followed by "INPUT"
  1122. from the Main Menu bar. The file to be printed will be the input
  1123. text file name that you have entered by selecting "File", "Input"
  1124. and "Text" from the Main Menu.
  1125.  
  1126.  
  1127. To print the output Screen Code File select "PRINT", followed by
  1128. "OUTPUT" from the Main Menu. The file to be printed will be the
  1129. output program file name that you have entered by selecting
  1130. "File", "Output" and "Code" from the Main Menu.
  1131.  
  1132. To edit a dBase FMT file select "PRINT", followed by "FMT". The
  1133. file to be printed will be the input text file name that you have
  1134. entered by selecting "File", "Output" and "FMT" from the Main
  1135. Menu.
  1136.  
  1137. To print information about the current system setup select
  1138. "PRINT" followed by "SETTINGS". 
  1139.  
  1140. SELECTING A NEW INPUT FILE.
  1141. ---------------------------
  1142.  
  1143. You do not need to exit Screen Layout Designer to clear the
  1144. screen and read data fields from a new file.  If you select "NEW"
  1145. from the menu bar you will be able to clear the current fields
  1146. from the screen and either re-read the current input file, or
  1147. read a new input file.  If you have not saved the current screen
  1148. and settings you will be prompted to save them before reading of
  1149. the new input file commences.
  1150.  
  1151.  
  1152. USING ONLINE HELP.
  1153. ------------------
  1154.  
  1155. A HELP option is available from the pulldown menu.  This is
  1156. effectively an online manual with an index of topics.  If you are
  1157. stuck at any point then pressing "Esc" will get you out of
  1158. trouble and take you back to the menu bar, where you can select
  1159. online help which will be of assistance to you in the task you
  1160. are trying to perform.
  1161.  
  1162.  
  1163. LEAVING THE PROGRAM.
  1164. --------------------
  1165.  
  1166. To Exit SLD from Screen Edit Mode, press "Esc" until the menu bar
  1167. appears.  From the main pulldown menu bar press "Esc" again to
  1168. quit the program.  If you have not saved your screen and settings
  1169. you will be prompted to do so. 
  1170.  
  1171.  
  1172.                         Chapter 4.
  1173.                         ==========
  1174.  
  1175. CREATING AN INPUT TEXT FILE.
  1176. ----------------------------
  1177.                         
  1178. If you opt to read data fields onto your screen by
  1179. directlyreading from a database .DBF file then Screen Layout
  1180. Designer will automatically create an intermediate text file for
  1181. you.  You can use the file thus created in future screen editing
  1182. sessions without having to re-read the database file.   
  1183.  
  1184. If you do not want to read fields directly from the database file
  1185. then you can create the text file in two ways:
  1186.  
  1187. 1)    by running a program which lists the fields from your
  1188.       database file and dumps them into the text file.
  1189. 2)    by using an editor to create the file manually yourself.
  1190.  
  1191.  
  1192. Method 1:
  1193. ---------
  1194. Here is a sample program, written in Clipper, which can be used
  1195. to read the structure of a database file, in this case MEDIA.DBF,
  1196. and copy the field information into a text file, in this case
  1197. INPUT.TXT:
  1198.  
  1199. use MEDIA
  1200. COPY STRUCTURE EXTENDED TO newlist
  1201. USE newlist
  1202. LIST field_name,field_type,field_len,field_dec TO FILE input.txt
  1203.  
  1204.  
  1205. The above program is all you need to create the input text file. 
  1206. You might call this program "STRUC.PRG" and then compile it using
  1207. the Clipper compiler.  When you run the executable, STRUC.EXE,
  1208. you will create the text file.  (Note that newlist is an
  1209. intermediate file).
  1210.  
  1211. Method 2:
  1212. ---------
  1213. You can get an initial idea of how to create a text file manually
  1214. by looking at the sample file INPUT.TXT supplied on the
  1215. distribution disks.  The text file must contain, for each field,
  1216. the field name, field type, field length and decimal places (for
  1217. numeric types).  The field types can be one of: C (character), D
  1218. (date), N (numeric) or M (memo).  Here is an example:
  1219.  
  1220.       SHORTCODE C 10  0
  1221.       ACCNO     C 10  0  
  1222.       COMPANY   C 30  0  
  1223.       ADDRESS1  C 30  0  
  1224.       ADDRESS2  C 30  0  
  1225.       ADDRESS3  C 30  0  
  1226.       ADDRESS4  C 30  0  
  1227.       POSTCODE  C 15  0
  1228.  
  1229.  
  1230. Each line corresponding to each field can optionally be prefixed
  1231. by a number for compatibility reasons, although SLD ignores the
  1232. number. For example:
  1233.  
  1234.       1     SHORTCODE C 10  0
  1235.       2     ACCNO     C 10  0
  1236.       3     COMPANY   C 30  0
  1237.       4     ADDRESS1  C 30  0
  1238.       5     ADDRESS2  C 30  0
  1239.       6     ADDRESS3  C 30  0
  1240.       7     ADDRESS4  C 30  0
  1241.       8     POSTCODE  C 15  0
  1242.  
  1243.  
  1244. In addition the file can contain a "#SCREEN" command, unique to
  1245. SLD, which splits a number of fields into screens.  This command
  1246. is the only "hash" command currently supported by SLD. The syntax
  1247. is:     #SCREEN  <number>
  1248. where "number" is the screen number.  All data fields after the
  1249. #SCREEN command will be placed onto the screen with the specified
  1250. number, until another #SCREEN command is encountered.   Note:
  1251. When you do not include a #SCREEN command in the input text file
  1252. SLD automatically splits the screens for you, but if you include
  1253. #SCREEN commands SLD allows these to split the screens, so be
  1254. careful that you do not try to push too many fields onto one
  1255. screen. Example:
  1256.  
  1257.       #SCREEN 1
  1258.  
  1259.       SHORTCODE C 10  0
  1260.       ACCNO     C 10  0
  1261.       COMPANY   C 30  0
  1262.  
  1263.       #SCREEN 2
  1264.  
  1265.       ADDRESS1  C 30  0
  1266.       ADDRESS2  C 30  0
  1267.       ADDRESS3  C 30  0
  1268.       ADDRESS4  C 30  0
  1269.       POSTCODE  C 15  0
  1270.       
  1271. In the above example, SHORTCODE, ACCNO and COMPANY will appear on
  1272. screen number 1 and ADDRESS1,2,3,4 and POSTCODE will appear on
  1273. screen 2.
  1274.  
  1275.  
  1276. Multiple Database Files.
  1277. ------------------------
  1278. You may enter fields from more than one databse file on you data
  1279. entry screens. This features allows SLD to produce relational
  1280. applications. The layout is as follows:
  1281.  
  1282. COMPANY->SHORTCODE C 10  0
  1283. COMPANY->ACCNO     C 10  0
  1284. COMPANY->COMPANY   C 30  0
  1285. COMPANY->ADDRESS1  C 30  0
  1286. COMNPNY->ADDRESS2  C 30  0
  1287. COMPANY->ADDRESS3  C 30  0
  1288. COMPANY->ADDRESS4  C 30  0
  1289. COMPANY->POSTCODE  C 15  0
  1290. CONTACTS->SHORTNAME C 10 0
  1291. CONTACTS->FIRSTNAME C 30 0
  1292. CONTACTS->SURNAME   C 30 0
  1293.  
  1294. Two data files are used in the example above, COMPANY and
  1295. CONTACTS, so that fields from both files will appear on the same
  1296. screen.
  1297.  
  1298.  
  1299. As previously mentioned SLD will automatically generate an
  1300. intermediate text file for you if you opt to read the database
  1301. fields directly from  database .DBF files. However you may wish
  1302. to edit the input text file to suit your needs.                         APPENDIX A.
  1303.                         ===========
  1304. THE FORMAT OF SCREEN LAYOUT FILES.
  1305. ----------------------------------
  1306. The format of SLF files have changed. The older format is however
  1307. still supported by the later releases of SLD.
  1308.  
  1309. Screen Layout Files (SLF) contain full information about screens
  1310. that you have built, plus other settings, including colors.  Each
  1311. SLF has a 222 byte header record, followed by a 109 byte record
  1312. for each field, box or title on all active screens.  The file
  1313. looks like this:
  1314.  
  1315.           byte
  1316.           pos'n
  1317.           -----
  1318.              1  _______________
  1319.                |    Header     |
  1320.            223 |---------------|
  1321.                |  Field Info.  |
  1322.            332 |---------------|
  1323.                |  Field Info.  |
  1324.            441 |---------------|
  1325.                |  Field Info.  |
  1326.            550 |---------------|
  1327.                     etc...
  1328.  
  1329. The Header Record will be as follows:
  1330.  
  1331. Byte   Data
  1332. Pos'n  Type     Purpose of Data
  1333. -----  ------   -----------------------
  1334.  1     byte     Color used for background of data entry screen
  1335.  2     byte     Color used for unselected data entry fields
  1336.  3     byte     Color used for selected data entry fields
  1337.  4     byte     Color used for data entry field headings
  1338.  5     byte     Color used for additional titles
  1339.  6     byte     Color used for boxes
  1340.  7     byte     Color used for selected menu options
  1341.  8     byte     Color used for unselected menu options
  1342.  9     char     ASCII character used for background
  1343. 10     Boolean  Text mode (true=80x25, false=80x50)
  1344. 11     byte     Language type (1=Cl5, 2=Cl87, 3=DB3, 4=DB4)
  1345. 12     Boolean  Use a space after field headings.
  1346. 13-102 array of 10 strings of length 8 bytes, containing
  1347.        .DBF filenames
  1348. 103    Boolean  Monochrome colors (true=mono, false=color)
  1349. 104    byte     Default frame type (see table)
  1350. 105    byte     Number of active data fields on the screen(s)
  1351. 106    byte     Number of boxes on the data entry screen(s)
  1352. 107    byte     Number of titles on the data entry screen(s)
  1353. 108    byte     Maximum number of screens active in this session
  1354. 109    byte     Number of menus on the data entry screen(s)
  1355. 110-149 array of bytes (1 to max. menu number) one byte for each
  1356.       active menu containing the screen on which it appears.
  1357. 150    byte     Display type (1=MDA, 2=CGA, 3=EGA, 4=VGA)
  1358. 151    byte     Display rows (25, 43 or 50)
  1359. 152    byte     Dos version no.
  1360. 153-168 array of bytes - Each bit of 16 bytes representing a 
  1361.       screen, if the bit is set it has a standard menu on it.
  1362. 169-208 array of bytes (1 to max menu no.) one byte for each 
  1363.       active menu containing menu type.
  1364. 209-216 byte    reserved
  1365. 217-220 byte    Representing ASCII characters giving 'END$'
  1366. 221    byte     byte value for SLD file type (3 = 1.03b)
  1367. 222    byte     reserved
  1368.  
  1369. The frame types are numbered.  This number represents frame types
  1370. as follows:
  1371.  
  1372.  0 = No Frame
  1373.  1 = Single Frame  (ASCII codes 218,192,191,217,196,179)
  1374.  2 = Double Frame  (ASCII codes 201,200,187,188,205,186)
  1375.  3 = Single Top Double Sided (ASCII 214,211,183,189,196,186)
  1376.  4 = Double Top Single Sided (ASCII 213,212,184,190,205,179)
  1377.  
  1378.  
  1379. Following the header, information relating to each active data
  1380. field for the session being recorded is stored in the form of one
  1381. record field, including its heading, as follows:
  1382.  
  1383. Byte
  1384. Pos'n
  1385. From  Data
  1386. Start Type        Purpose of Data
  1387. ----- ------      ---------------------------
  1388.   1   double byte Field reference number
  1389.   3   byte        DBF file number (this number corresponds to an
  1390.                   index in the array of DBF files in the header)
  1391.   4   string[10]  Field name in the database file
  1392.  15   string[78]  Heading as it appears on screen for this field
  1393.  94   character   The data type of this field (C,N,D, or M)
  1394.  95   byte        The length of the field
  1395.  96   byte        The number of decimal places (numeric fields)
  1396.  97   byte        Left column of start of data entry field on
  1397.                   screen
  1398.  98   byte        Top row of start of data entry field
  1399.  99   byte        Right column of data entry field
  1400. 100   byte        Bottom row of data entry field (same as top)
  1401. 101   byte        Left column of start of field heading on screen
  1402. 102   byte        Top row of field heading
  1403. 103   byte        Right column of field heading
  1404. 104   byte        Bottom row of field heading (same as top)
  1405. 105   byte        The screen number on which this field appears
  1406. 106   byte        (reserved for boxes,titles and menus... see
  1407.                   below)
  1408. 107   byte        Color attribute of unselected data entry fields
  1409. 108   byte        Color attribute of field headings
  1410. 109   byte        Color attribute of selected data entry fields
  1411.  
  1412. Note: the color attributes for individual fields are not
  1413. currently supported.
  1414.  
  1415. After the fields have been stored, information on titles and menu
  1416. options will be stored in the same manner, with one record per
  1417. title or per menu option. The record format is identical to that
  1418. used for the data entry fields, however the record fields are
  1419. re-used. The only differences between titles and menu options
  1420. are: (a) the title type is 'T', whereas this will be 'Y' or 'Z'
  1421. for menus,  (b) a byte is used to store the menu system number in
  1422. the case of menu options, and this will be 0 for titles. The
  1423. information will be stored as follows:
  1424.  
  1425.       Data
  1426. Byte  Type        Purpose of Data
  1427. ----  ------      -----------------------------------
  1428.   1   double byte Reference number
  1429.   3   byte        unused
  1430.   4   string[10]  unused
  1431.  15   string[78]  This contains the text for this title
  1432.  94   character   The data type of this field = 'T' for a title,
  1433.                   but 'Y' or 'Z' for menu options.
  1434.  95   byte        unused
  1435.  96   byte        unused
  1436.  97   byte        Left column of start of title/menu option on
  1437.                   screen
  1438.  98   byte        Row of title
  1439.  99   byte        Right column of title/menu option
  1440. 100   byte        unused
  1441. 101   byte        unused
  1442. 102   byte        unused
  1443. 103   byte        unused
  1444. 104   byte        unused
  1445. 105   byte        The screen number on which this title/menu
  1446.                   option appears.
  1447. 106   byte        must always be set to 0 for titles, but in the
  1448.                   case of menu options this must be the menu
  1449.                   system number on which this menu option
  1450.                   appears.
  1451. 107   byte        Color attribute for this title or menu option.
  1452. 108   byte        unused
  1453. 109   byte        unused
  1454.  
  1455. Note: the color attributes for individual titles or menu options 
  1456.       are not currently supported.
  1457.  
  1458. After the title and menu records, information relating to Boxes
  1459. on the screen(s) will be stored in a similarly.  The record
  1460. fields are re-used as follows:
  1461.  
  1462.       Data
  1463. Byte  Type        Purpose of Data
  1464. ----  ------      -----------------------------------
  1465.   1   double byte Reference number
  1466.   3   byte        unused
  1467.   4   string[10]  unused
  1468.  15   string[78]  unused
  1469.  94   character   The data type of this field = 'X' for boxes
  1470.  95   byte        unused
  1471.  96   byte        unused
  1472.  97   byte        Left column of start of box on screen
  1473.  98   byte        Top row of box
  1474.  99   byte        Right column of box
  1475. 100   byte        Bottom row of box
  1476. 101   byte        unused
  1477. 102   byte        unused
  1478. 103   byte        unused
  1479. 104   byte        unused
  1480. 105   byte        The screen number on which this box appears
  1481. 106   byte        The frame type number for this box (see above)
  1482. 107   byte        Color attribute for this box
  1483. 108   byte        unused
  1484. 109   byte        unused
  1485.  
  1486. Note: the color attribute for individual boxes is not currently
  1487. supported.
  1488.  
  1489.  
  1490.                         Appendix B.
  1491.                         ===========
  1492.  
  1493. THE GENERATED SCREEN CODE.
  1494. --------------------------
  1495.  
  1496. The Screen Layout Designer is capable of producing dBase generic
  1497. source code directly.  The source code representing the screens
  1498. that you have laid out will be stored in a text file which may
  1499. bepasted directly into your dBase generic program source code. 
  1500. You can then compile this code, using your dBase generic
  1501. compiler, into an executable ".EXE" file.  
  1502.  
  1503. The default extension for files containing generated screen code
  1504. is ".PRG". 
  1505.  
  1506. When you select dBase language generation a "MAIN.PRG" file will
  1507. be generated for you to enable you to test the code in the
  1508. generated .PRG file. This file may form the basis for your
  1509. application, though you should obviously rename it if you make
  1510. changes to it.
  1511.  
  1512. FMT FILES
  1513. ---------
  1514. SLD version 1.03 is also capable of producing dBaseIII "FMT"
  1515. files.  These FMT files contain only @SAY and @GET statements
  1516. corresponding to data entry fields and headings. Any menus, boxes
  1517. or titles you have laid out on the screen will not be included.
  1518. The default extension for these files is ".FMT".
  1519.  
  1520.  
  1521. The source code will be generated as follows:
  1522.  
  1523. Start and End of a Screen.
  1524. --------------------------
  1525. The contents of each screen will be placed in a procedure,
  1526. beginning with:
  1527.  
  1528.  PROC SCREEN#     ,where # is the screen number, and ending with:
  1529.  RETURN
  1530.  
  1531.  
  1532. Colors for Screens.
  1533. ------------------
  1534. Colors for each screen as a whole, boxes or titles will be set by
  1535. the following command:
  1536.  
  1537.  SET COLOR TO <expC1>,<expC2>,<expC3>,<expC4>,<expC5>
  1538.  
  1539. where expC1 = standard color, expC2 = enhanced color, expC3 =
  1540. border color, expC4 is left blank, expC5 = unselected color.  
  1541. For example:
  1542.  
  1543.  SET COLOR TO "GR+/R,BG+/R,W+/G,,N/W"
  1544.  
  1545.  In the case of Clipper V5 this will take the form of:
  1546.  
  1547.  SETCOLOR("GR+/R,BG+/R,W+/G,,N/W")
  1548.  
  1549.  
  1550. Drawing Boxes.
  1551. ---------------
  1552. Boxes are drawn with the following command syntax for Clipper:
  1553.   
  1554.   @ <toprow>,<leftcol>,<botrow>,<rightcol> BOX <frame> COLOR
  1555. <color>
  1556.  
  1557. For example:
  1558.  
  1559.   @ 13,32,17,62 BOX "┌─┐│┘─" COLOR "W+/G"
  1560.  
  1561.  
  1562. In the case of dBaseIII the box drawing is different:
  1563. Firstly the colors are set, then the box may have a double or
  1564. single lined frame:
  1565.  
  1566.   @ <toprow>,<leftcol> TO <botrow>,<rightcol> [DOUBLE]
  1567.  
  1568. Note: "DOUBLE" is omitted in the case of single lined frames.
  1569.  
  1570. Example:
  1571.  
  1572.       SET COLOR TO "W+/G"
  1573.       @ 8,36 TO 13,54 DOUBLE
  1574.       SET COLOR TO "GR+/RB,N/BG,,,N/W"
  1575.  
  1576.  
  1577. For dBaseIV the code will be similar to this example:
  1578.  
  1579.       SET COLOR TO "W+/G"
  1580.       @ 8,36 TO 13,55 "┌─┐│┘─└│"
  1581.       SET COLOR TO "GR+/RB,N/BG,,,N/W"
  1582.  
  1583. Titles.
  1584. -------
  1585. The command syntax for titles will be a simple @SAY statement,
  1586. preceded by coloring information:
  1587.  
  1588.      @ <row>,<col> SAY  "<text>"
  1589.  
  1590. For example:
  1591.   
  1592.    @  1,12  SAY "   Sales Database  "
  1593.  
  1594.  
  1595.  
  1596. Data Entry Fields.
  1597. ------------------
  1598. The colors for unselected and selected data entry fields will be
  1599. taken from the SET COLOR command immediately preceding the @GET
  1600. commands.  The data entry field code will be as follows:
  1601.  
  1602.    @ <row>,<col>  GET  <field_name>
  1603.  
  1604. For example:
  1605.  
  1606.    @ 3,17 GET company
  1607.  
  1608.  
  1609. Data Field Headings.
  1610. --------------------
  1611. The headings corresponding to data entry fields will be generated
  1612. using @SAY statements as follows:
  1613.  
  1614.    @ <row>,<col>  SAY  <heading>
  1615.  
  1616. For example:
  1617.  
  1618.    @ 3,5  SAY  "Company Name"
  1619.  
  1620.  
  1621. Reading Data Fields.
  1622. --------------------
  1623. The @GET statements in a procedure are terminated with a 
  1624. READ command.
  1625.  
  1626.  
  1627.  
  1628. Menu Systems
  1629. ------------
  1630. The way in which menus are implemented in Clipper differs from
  1631. dBase. In Clipper @PROMPT commands are used to build the menu and
  1632. the selected menu option stored using a MENU TO MKey command. In
  1633. the case of dBase menus the process of menu building is more
  1634. complicated, and an example is more suitable to illustrate this.
  1635. Each menu system is formed by a separate procedure in which the
  1636. menu is defined and laid out on the screen. This procedure is
  1637. called:
  1638. PROCEDURE MENU#   ,where # is the menu number.
  1639. Another procedure contains CASE statements where appropriate
  1640. action is taken in accordance with the selected menu option. 
  1641. This is called:
  1642. PROCEDURE MENUCASE#   ,where # is the menu number.
  1643.  
  1644. Clipper menu syntax:
  1645. -------------------
  1646. The menu is defined within the MENU# procedure:
  1647.  
  1648. To define a menu option:
  1649.  
  1650.   @ <row>,<col> PROMPT <heading>  MESSAGE <message>
  1651.  
  1652. Foe example:
  1653.  
  1654.   @ 14,20 PROMPT "QUIT" MESSAGE " "
  1655.  
  1656. Note that the message is blank, but you may add your own help
  1657. text.
  1658.  
  1659. Storing the menu to a variable:
  1660.  
  1661.   MENU TO <key>
  1662.  
  1663. For example:
  1664.  
  1665. MENU TO MKey
  1666.  
  1667. dBaseIII/IV Menus
  1668. -----------------
  1669. This is rather more complicated. Please study the sample program
  1670. DBASE3.PRG.
  1671.  
  1672. The last statement before RETURN in the MENU# procedure should
  1673. be a call to the procedure containing CASE statements:
  1674.   DO MENUCASE#
  1675. Clipper example:
  1676.  
  1677.   PROCEDURE MENU1
  1678.     LOCAL MKey
  1679.     @ 1,1 PROMPT "SAVE" MESSAGE " "
  1680.     @ 3,1 PROMPT "QUIT" MESSAGE " "
  1681.     MENU TO MKey
  1682.     DO MENUCASE1 WITH MKey
  1683.   RETURN
  1684.  
  1685.  
  1686. To Define the Menu Case Statements:
  1687. ----------------------------------
  1688. As mentioned previously the final stage of the menu process is a
  1689. separate procedure in which CASE statements perform appropriate
  1690. action according to the selected key from the menu.  The syntax
  1691. for this procedure is as follows:
  1692.  
  1693. PROCEDURE MENUCASE#
  1694.    PARAMETER <key>
  1695.    DO CASE
  1696.        CASE <key> = 1
  1697.          DO <procedure>
  1698.        CASE <key> = 2
  1699.          DO <procedure>
  1700.        ....
  1701.        ....
  1702.    ENDCASE
  1703. RETURN
  1704.  
  1705.  
  1706. For example:
  1707.  
  1708.  PROCEDURE MENUCASE1
  1709.    PARAMETER MKey
  1710.    DO CASE
  1711.       CASE MKey = 1
  1712.         DO SaveIt
  1713.       CASE MKey = 2
  1714.         RETURN
  1715.    ENDCASE
  1716.  RETURN
  1717.  
  1718.  
  1719. Note: SLD directs the case statements to a dummy procedure with
  1720.       DO DUMMY.  You should enter your own user defined procedure
  1721.       in each case statement. The DUMMY procedure is defined as:
  1722.       PROCEDURE DUMMY 
  1723.       RETURN
  1724.  
  1725. Selecting Menu Options at Runtime.
  1726. ---------------------------------
  1727. When you have generated the code for your menus you may, in
  1728. addition to first letter selection, select menu options when you
  1729. run the program as follows:
  1730.  
  1731.   dBaseIII/IV:    using the tab key, or the up or down  arrow
  1732.                   keys.
  1733.   Clipper:  using the cursor keys (arrow keys).
  1734.  
  1735.  
  1736.  
  1737. How the Generated Source Code is Constructed.
  1738. --------------------------------------------
  1739. The source code is formed of several modules. Each screen has its
  1740. own associated set of procedures, which are as follows:
  1741.  
  1742. Procedure 1: Displays titles and framed boxes, @SAY and @GETs for
  1743.             the data field memory variables.
  1744. Procedure 2: Declares data field memory variables corresponding
  1745.             to the open database fields. They are declared as
  1746.             PUBLIC.
  1747. Procedure 3: Initialises the memory variables so that they do
  1748.             not contain garbage.
  1749. Procedure 4: sets the memory variables to the contents of the
  1750.             database fields, so that editing procedures can make
  1751.             use of this.
  1752. Procedure 5: replaces the database field values with the values
  1753.             of the corresponding memory variables.
  1754. Procedure 6: this is a dummy procedure used by case statements
  1755.             in menus for testing purposes only.
  1756. Procedure 7: this defines menus and the menu options, and passes
  1757.             a menu selection to the next procedure.
  1758. Procedure 8: this is a series of case statements which act on the
  1759.             appropriate menu selection in procedure 7. The case
  1760.             statements call the dummy procedure at the moment
  1761.             -you should replace this with your own procedures.
  1762.  
  1763.  
  1764. An Example of Generated Screen Source Code.
  1765. --------------------------------------------
  1766. There are sample programs supplied with .PRG file extensions.
  1767. These will undoubtedly give you more insight into how SLD
  1768. generates its screen code. Howeever here is a simple single
  1769. screen example of the typical output of the Screen Layout
  1770. Designer.  It includes, boxes, a title, and data fields, with
  1771. appropriate headings:
  1772.  PROCEDURE SCREEN1
  1773.  
  1774.   LOCAL WinStr,iRow
  1775.  
  1776.     SETMODE(25,80)
  1777.  
  1778.       WinStr=""
  1779.       SETCOLOR("B+/B")
  1780.       FOR iRow = 0 TO 25
  1781.         @ iRow,0 SAY PADC(WinStr,80,"░")
  1782.       NEXT
  1783.  
  1784.       SETCOLOR("W+/BG")
  1785.       @ 0,0,24,79 BOX "┌─┐│┘─└│"
  1786.  
  1787.       SETCOLOR("GR+/R,W/R,,,N/W")
  1788.       @ 2,25 SAY "    ACME Sales Database   "
  1789.  
  1790.       SETCOLOR("GR+/RB,N/BG,,,N/W")
  1791.  
  1792.       @ 4,8 SAY "Short Name "
  1793.       @ 6,11 SAY "Company "
  1794.       @ 8,11 SAY "Address "
  1795.       @ 9,20 SAY aADDRESS2 PICTURE "XXXXXXXXXX"
  1796.       @ 10,20 SAY aADDRESS3 PICTURE "XXXXXXXXXX"
  1797.       @ 11,14 SAY "City "
  1798.       @ 13,5 SAY "Zip/Post Code "
  1799.       @ 15,15 SAY "Tel "
  1800.       @ 16,15 SAY "Fax "
  1801.       @ 18,9 SAY "Sales Area "
  1802.       @ 20,9 SAY "Sales Rep. "
  1803.       @ 18,44 SAY "Credit Limit "
  1804.       @ 14,43 SAY "Business Type "
  1805.       @ 4,39 SAY "Account No. "
  1806.       @ 16,48 SAY "Turnover "
  1807.       @ 20,46 SAY "Last Order "
  1808.      DO GETSCR1
  1809.      DO MENU2
  1810.  
  1811.  RETURN
  1812.  
  1813.  PROCEDURE SCREEN2
  1814.  
  1815.   LOCAL WinStr,iRow
  1816.  
  1817.     SETMODE(25,80)
  1818.  
  1819.       WinStr=""
  1820.       SETCOLOR("B+/B")
  1821.       FOR iRow = 0 TO 25
  1822.         @ iRow,0 SAY PADC(WinStr,80,"░")
  1823.       NEXT
  1824.  
  1825.       SETCOLOR("W+/BG")
  1826.       @ 0,0,24,79 BOX "┌─┐│┘─└│"
  1827.  
  1828.       SETCOLOR("GR+/R,W/R,,,N/W")
  1829.       @ 2,25 SAY "    Customer Contacts    "
  1830.       @ 16,8 SAY "Received: "
  1831.  
  1832.       SETCOLOR("GR+/RB,N/BG,,,N/W")
  1833.       @ 9,49 SAY "Importance "
  1834.       @ 5,15 SAY "Short ID "
  1835.       @ 7,14 SAY "Firstname "
  1836.       @ 8,16 SAY "Surname "
  1837.       @ 10,18 SAY "Title "
  1838.       @ 12,14 SAY "Call Rate "
  1839.       @ 14,14 SAY "Interests "
  1840.       @ 16,21 SAY "Xmas Card? "
  1841.       @ 16,37 SAY "XMas Gift? "
  1842.       @ 16,53 SAY "Golf Day Invite? "
  1843.       @ 19,12 SAY "Note: "
  1844.      DO GETSCR2
  1845.      DO MENU2
  1846.  
  1847.  RETURN
  1848.  
  1849.  PROCEDURE GETSCR1
  1850.  
  1851.       @ 4,20 GET aSHORTNAM PICTURE "XXXXXXXXXX"
  1852.       @ 6,20 GET aCOMPANY PICTURE "XXXXXXXXXX"
  1853.       @ 8,20 GET aADDRESS1 PICTURE "XXXXXXXXXX"
  1854.       @ 9,20 GET aADDRESS2 PICTURE "XXXXXXXXXX"
  1855.       @ 10,20 GET aADDRESS3 PICTURE "XXXXXXXXXX"
  1856.       @ 11,20 GET aADDRESS4 PICTURE "XXXXXXXXXX"
  1857.       @ 13,20 GET aPOSTCODE PICTURE "XXXXXXXXXX"
  1858.       @ 15,20 GET aTELNO PICTURE "XXXXXXXXXX"
  1859.       @ 16,20 GET aFAXNO PICTURE "XXXXXXXXXX"
  1860.       @ 18,21 GET aSALEAREA PICTURE "XXXXXXXXXX"
  1861.       @ 20,21 GET aSALESREP PICTURE "XXXXXXXXXX"
  1862.       @ 18,58 GET aCREDIT PICTURE "XXXXXXXXXX"
  1863.       @ 14,58 GET aBUSTYPE PICTURE "XXXXXXXXXX"
  1864.       @ 4,52 GET aACCNO PICTURE "XXXXXXXXXX"
  1865.       @ 16,58 GET aTURNTARG PICTURE "XXXXXXXXXX"
  1866.       @ 20,58 GET aLASTORD PICTURE "@D"
  1867.  
  1868.  RETURN
  1869.  
  1870.  PROCEDURE GETSCR2
  1871.  
  1872.       @ 9,61 GET aIMPORT PICTURE "XXXXXXXXXX"
  1873.       @ 5,25 GET bSHORTID PICTURE "XXXXXXXXXX"
  1874.       @ 7,25 GET bFIRSTNAM PICTURE "XXXXXXXXXX"
  1875.       @ 8,25 GET bSURNAME PICTURE "XXXXXXXXXX"
  1876.       @ 10,25 GET bTITLE PICTURE "XXXXXXXXXX"
  1877.       @ 12,25 GET bCALLRATE PICTURE "XXXXXXXXXX"
  1878.       @ 14,25 GET bINTEREST PICTURE "XXXXXXXXXX"
  1879.       @ 16,33 GET bXMASCARD PICTURE "XXXXXXXXXX"
  1880.       @ 16,49 GET bXMASGIFT PICTURE "XXXXXXXXXX"
  1881.       @ 16,71 GET bGOLFDAY PICTURE "XXXXXXXXXX"
  1882.       @ 19,20 GET bNOTE PICTURE "XXXXXXXXXX"
  1883.  
  1884.  RETURN
  1885.  PROCEDURE DECVARS1
  1886.     PUBLIC aSHORTNAM
  1887.     PUBLIC aCOMPANY
  1888.     PUBLIC aADDRESS1
  1889.     PUBLIC aADDRESS2
  1890.     PUBLIC aADDRESS3
  1891.     PUBLIC aADDRESS4
  1892.     PUBLIC aPOSTCODE
  1893.     PUBLIC aTELNO
  1894.     PUBLIC aFAXNO
  1895.     PUBLIC aSALEAREA
  1896.     PUBLIC aSALESREP
  1897.     PUBLIC aCREDIT
  1898.     PUBLIC aBUSTYPE
  1899.     PUBLIC aACCNO
  1900.     PUBLIC aTURNTARG
  1901.     PUBLIC aLASTORD
  1902.  RETURN
  1903.  
  1904.  
  1905.  PROCEDURE DECVARS2
  1906.     PUBLIC aIMPORT
  1907.     PUBLIC bSHORTID
  1908.     PUBLIC bFIRSTNAM
  1909.     PUBLIC bSURNAME
  1910.     PUBLIC bTITLE
  1911.     PUBLIC bCALLRATE
  1912.     PUBLIC bINTEREST
  1913.     PUBLIC bXMASCARD
  1914.     PUBLIC bXMASGIFT
  1915.     PUBLIC bGOLFDAY
  1916.     PUBLIC bNOTE
  1917.  RETURN
  1918.  
  1919.  
  1920.  PROCEDURE INITVARS1
  1921.    aSHORTNAM = SPACE(10)
  1922.    aCOMPANY = SPACE(30)
  1923.    aADDRESS1 = SPACE(30)
  1924.    aADDRESS2 = SPACE(30)
  1925.    aADDRESS3 = SPACE(30)
  1926.    aADDRESS4 = SPACE(30)
  1927.    aPOSTCODE = SPACE(15)
  1928.    aTELNO = SPACE(15)
  1929.    aFAXNO = SPACE(15)
  1930.    aSALEAREA = SPACE(1)
  1931.    aSALESREP = SPACE(20)
  1932.    aCREDIT = SPACE(9)
  1933.    aBUSTYPE = SPACE(12)
  1934.    aACCNO = SPACE(20)
  1935.    aTURNTARG = SPACE(11)
  1936.    aLASTORD = DATE()
  1937.  RETURN
  1938.  PROCEDURE INITVARS2
  1939.    aIMPORT = SPACE(1)
  1940.    bSHORTID = SPACE(10)
  1941.    bFIRSTNAM = SPACE(20)
  1942.    bSURNAME = SPACE(20)
  1943.    bTITLE = SPACE(20)
  1944.    bCALLRATE = SPACE(10)
  1945.    bINTEREST = SPACE(40)
  1946.    bXMASCARD = SPACE(1)
  1947.    bXMASGIFT = SPACE(1)
  1948.    bGOLFDAY = SPACE(1)
  1949.    bNOTE = SPACE(50)
  1950.  RETURN
  1951.  
  1952.  
  1953.  PROCEDURE SETVARS1
  1954.     aSHORTNAM = a->SHORTNAM
  1955.     aCOMPANY = a->COMPANY
  1956.     aADDRESS1 = a->ADDRESS1
  1957.     aADDRESS2 = a->ADDRESS2
  1958.     aADDRESS3 = a->ADDRESS3
  1959.     aADDRESS4 = a->ADDRESS4
  1960.     aPOSTCODE = a->POSTCODE
  1961.     aTELNO = a->TELNO
  1962.     aFAXNO = a->FAXNO
  1963.     aSALEAREA = a->SALEAREA
  1964.     aSALESREP = a->SALESREP
  1965.     aCREDIT = a->CREDIT
  1966.     aBUSTYPE = a->BUSTYPE
  1967.     aACCNO = a->ACCNO
  1968.     aTURNTARG = a->TURNTARG
  1969.     aLASTORD = a->LASTORD
  1970.  RETURN
  1971.  
  1972.  
  1973.  PROCEDURE SETVARS2
  1974.     aIMPORT = a->IMPORT
  1975.     bSHORTID = b->SHORTID
  1976.     bFIRSTNAM = b->FIRSTNAM
  1977.     bSURNAME = b->SURNAME
  1978.     bTITLE = b->TITLE
  1979.     bCALLRATE = b->CALLRATE
  1980.     bINTEREST = b->INTEREST
  1981.     bXMASCARD = b->XMASCARD
  1982.     bXMASGIFT = b->XMASGIFT
  1983.     bGOLFDAY = b->GOLFDAY
  1984.     bNOTE = b->NOTE
  1985.  RETURN
  1986.  
  1987.  PROCEDURE REPLVARS1
  1988.     REPLACE a->SHORTNAM WITH aSHORTNAM
  1989.     REPLACE a->COMPANY WITH aCOMPANY
  1990.     REPLACE a->ADDRESS1 WITH aADDRESS1
  1991.     REPLACE a->ADDRESS2 WITH aADDRESS2
  1992.     REPLACE a->ADDRESS3 WITH aADDRESS3
  1993.     REPLACE a->ADDRESS4 WITH aADDRESS4
  1994.     REPLACE a->POSTCODE WITH aPOSTCODE
  1995.     REPLACE a->TELNO WITH aTELNO
  1996.     REPLACE a->FAXNO WITH aFAXNO
  1997.     REPLACE a->SALEAREA WITH aSALEAREA
  1998.     REPLACE a->SALESREP WITH aSALESREP
  1999.     REPLACE a->CREDIT WITH aCREDIT
  2000.     REPLACE a->BUSTYPE WITH aBUSTYPE
  2001.     REPLACE a->ACCNO WITH aACCNO
  2002.     REPLACE a->TURNTARG WITH aTURNTARG
  2003.     REPLACE a->LASTORD WITH aLASTORD
  2004.  RETURN
  2005.  
  2006.  
  2007.  PROCEDURE REPLVARS2
  2008.     REPLACE a->IMPORT WITH aIMPORT
  2009.     REPLACE b->SHORTID WITH bSHORTID
  2010.     REPLACE b->FIRSTNAM WITH bFIRSTNAM
  2011.     REPLACE b->SURNAME WITH bSURNAME
  2012.     REPLACE b->TITLE WITH bTITLE
  2013.     REPLACE b->CALLRATE WITH bCALLRATE
  2014.     REPLACE b->INTEREST WITH bINTEREST
  2015.     REPLACE b->XMASCARD WITH bXMASCARD
  2016.     REPLACE b->XMASGIFT WITH bXMASGIFT
  2017.     REPLACE b->GOLFDAY WITH bGOLFDAY
  2018.     REPLACE b->NOTE WITH bNOTE
  2019.  RETURN
  2020.  
  2021.  
  2022.  PROCEDURE RELVARS1
  2023.     RELEASE aSHORTNAM
  2024.     RELEASE aCOMPANY
  2025.     RELEASE aADDRESS1
  2026.     RELEASE aADDRESS2
  2027.     RELEASE aADDRESS3
  2028.     RELEASE aADDRESS4
  2029.     RELEASE aPOSTCODE
  2030.     RELEASE aTELNO
  2031.     RELEASE aFAXNO
  2032.     RELEASE aSALEAREA
  2033.     RELEASE aSALESREP
  2034.     RELEASE aCREDIT
  2035.     RELEASE aBUSTYPE
  2036.     RELEASE aACCNO
  2037.     RELEASE aTURNTARG
  2038.     RELEASE aLASTORD
  2039.  RETURN
  2040.  PROCEDURE RELVARS2
  2041.     RELEASE aIMPORT
  2042.     RELEASE bSHORTID
  2043.     RELEASE bFIRSTNAM
  2044.     RELEASE bSURNAME
  2045.     RELEASE bTITLE
  2046.     RELEASE bCALLRATE
  2047.     RELEASE bINTEREST
  2048.     RELEASE bXMASCARD
  2049.     RELEASE bXMASGIFT
  2050.     RELEASE bGOLFDAY
  2051.     RELEASE bNOTE
  2052.  RETURN
  2053.  
  2054.  
  2055.  PROCEDURE DUMMY
  2056.  RETURN
  2057.  
  2058.  
  2059.  PROCEDURE MENU1
  2060.   LOCAL MKey
  2061.  
  2062.       SET ESCAPE OFF
  2063.         SETCOLOR("R/W,W/R,,,N/W")
  2064.  
  2065.       @ 22,5 PROMPT " ADD  " MESSAGE " "
  2066.       @ 22,14 PROMPT " EDIT " MESSAGE " "
  2067.       @ 22,23 PROMPT "DELETE" MESSAGE " "
  2068.       @ 22,32 PROMPT " NEXT " MESSAGE " "
  2069.       @ 22,41 PROMPT " PREV " MESSAGE " "
  2070.       @ 22,50 PROMPT " FIND " MESSAGE " "
  2071.       @ 22,69 PROMPT " QUIT " MESSAGE " "
  2072.       @ 22,59 PROMPT "CONTACT" MESSAGE " "
  2073.  
  2074.        MENU TO MKey
  2075.        DO MENUCASE1 WITH MKey
  2076.  RETURN
  2077.  
  2078.  PROCEDURE MENU2
  2079.   LOCAL MKey
  2080.  
  2081.       SET ESCAPE OFF
  2082.  
  2083.         SETCOLOR("R/W,W/R,,,N/W")
  2084.       @ 22,9 PROMPT " ADD  " MESSAGE " "
  2085.       @ 22,18 PROMPT " EDIT " MESSAGE " "
  2086.       @ 22,27 PROMPT "DELETE" MESSAGE " "
  2087.       @ 22,36 PROMPT " NEXT " MESSAGE " "
  2088.       @ 22,45 PROMPT " PREV " MESSAGE " "
  2089.       @ 22,54 PROMPT " FIND " MESSAGE " "
  2090.       @ 22,63 PROMPT "RETURN" MESSAGE " "
  2091.        MENU TO MKey
  2092.        DO MENUCASE2 WITH MKey
  2093.  RETURN
  2094.  
  2095.  
  2096.  PROCEDURE MENUCASE1
  2097.    PARAMETER MKey
  2098.     DO CASE
  2099.  
  2100.       CASE MKey = 1
  2101.          DO Dummy
  2102.       CASE MKey = 2
  2103.          DO Dummy
  2104.       CASE MKey = 3
  2105.          DO Dummy
  2106.       CASE MKey = 4
  2107.          DO Dummy
  2108.       CASE MKey = 5
  2109.          DO Dummy
  2110.       CASE MKey = 6
  2111.          DO Dummy
  2112.       CASE MKey = 7
  2113.          DO Dummy
  2114.       CASE MKey = 8
  2115.          DO Dummy
  2116.  
  2117.      ENDCASE
  2118.  RETURN
  2119.  PROCEDURE MENUCASE2
  2120.    PARAMETER MKey
  2121.     DO CASE
  2122.  
  2123.       CASE MKey = 1
  2124.          DO Dummy
  2125.       CASE MKey = 2
  2126.          DO Dummy
  2127.       CASE MKey = 3
  2128.          DO Dummy
  2129.       CASE MKey = 4
  2130.          DO Dummy
  2131.       CASE MKey = 5
  2132.          DO Dummy
  2133.       CASE MKey = 6
  2134.          DO Dummy
  2135.       CASE MKey = 7
  2136.          DO Dummy
  2137.  
  2138.      ENDCASE
  2139.  RETURN
  2140.  
  2141.  
  2142. Note: you may use this program by adding a few lines of code to
  2143.       it. If you place "DO SCREEN1" before the declaration of
  2144.       procedure SCREEN1 and you add "USE COMPANY" and "USE
  2145.       CONTACT" after the local variable declarations, then
  2146.       compile the program, you will be able to see the data entry
  2147.       screen as it would appear in a Clipper program. You will of
  2148.       course need to add SET RELATION or similar commands to
  2149.       relate the fields in the two database files, and if you
  2150.       intend to use the program on a network you will need to
  2151.       open your files accordingly. You will need to add the code
  2152.       to add, edit and delete records. SLD should greatly reduce
  2153.       the time taken to produce screens and menus. Our further
  2154.       planned releases will do even more for you.
  2155.  
  2156. Test programs are also generated at the same time as you generate
  2157. the main code .PRG. These test programs can be used to test the
  2158. operation of the main code: 
  2159.  
  2160. For Clipper:      CLIPTEST.PRG for Clipper code. Compile and link
  2161.                   the generated code with the CLIPMAKE.BAT batch
  2162.                   file (also generated at the SAME TIME).
  2163.             
  2164. For dBase:        DBTEST.PRG for dBase code. Run this program
  2165.                   from the applications generator.
  2166.  
  2167. How To Complete Your Application.
  2168. ---------------------------------
  2169. Whilst Screen Layout Designer takes care of the bulk of the task
  2170. of generating source code you will need to open your data files,
  2171. take care of database file relations, record locking and general
  2172. record operations. SLD was designed to take the hit and miss
  2173. frustration out of data entry screen layout and menu design, but
  2174. not to replace the programmer. (Please note: future versions SLD
  2175. will be able to open data files, take care of relational code and
  2176. record locking, and more).
  2177.  
  2178.  
  2179.                        Appendix C.
  2180.                        ===========
  2181.  
  2182. Two Tutorials.
  2183. --------------------
  2184. Here are two examples of how to read input from two previously
  2185. created input files.  The first example demonstrates how to get
  2186. SLD to read directly from a database file, COMPANY.DBF, and the
  2187. second example demonstrates how to read fields from a previously
  2188. created Screen Layout File, SCREEN.SLF or TUTOR1.SLF.  You will
  2189. be shown how to generate the code in the form of a .PRG file and
  2190. view it with an editor.
  2191.  
  2192. Tutorial One: Direct from a .DBF
  2193. ------------------------------
  2194. Action 1:  Start SLD.
  2195. Action 2:  select Setup from the Main Menu bar, followed by
  2196.             InputType.
  2197. Action 3: select Direct (the system is set to read directly from
  2198.             a .DBF)
  2199. Action 4:  press Esc until you return to the Main Menu bar.
  2200. Action 5:  select File, followed by Input.
  2201. Action 6:  select DBase.
  2202. Action 7:  enter "COMPANY" in the box next to the DB File 1
  2203.             prompt and ensure that all other boxes are empty.
  2204. Action 8:  press Ctrl and Enter.
  2205. Action 9:  select Text.
  2206. Action 10: enter the name of the intermediate text file, eg.
  2207.             TUTOR1.TXT
  2208. Action 11: press Esc until you return to the Main Menu bar.
  2209. Action 12: select SHOW  (if the file TUTOR1.TXT exists you will
  2210.             be prompted to overwrite it, so enter "Y" in this
  2211.             case)
  2212. Action 13: you will now be in the Screen Edit Menu. Select
  2213.             ScreenEdit, or alternatively press  the Esc key.
  2214. Action 14: you will now be in Screen Edit Mode, so, either use
  2215.             a mouse or the arrow keys to move the cursor onto a
  2216.             data field displayed on the screen.
  2217. Action 15: with the cursor on a data field, or its heading, click
  2218.             with the left mouse button or press the Enter key.
  2219. Action 16: you may now move the field around the screen.
  2220. Action 17: when you are satisfied with the position of the field
  2221.             on the screen click with the left mouse button or
  2222.             press Enter.
  2223. Action 18: to see information about the contents of the field,
  2224.             ensure that the cursor is over the field or its
  2225.             heading and double the left mouse button quickly or
  2226.             press F2.
  2227. Action 19: you may edit the heading text or change the screen on
  2228.             which it will be displayed. For the moment move down
  2229.             to the Field Description prompt and change the text.
  2230. Action 20: Press Ctrl and Enter to save the text. The field
  2231.             heading will change accordingly. Adding a box:
  2232.  
  2233. Action 21: Press Esc to return to the Screen Edit Menu bar.
  2234. Action 22: select Box.
  2235. Action 23: select New. You will enter Box Edit Mode.
  2236. Action 24: move the cursor around the screen to the position
  2237.             where you want the box to start.
  2238. Action 25: click with the left mouse button or press enter.
  2239. Action 26: when you move the cursor with the mouse or arrow keys
  2240.             the box will expand or contract from its origin.
  2241. Action 27: Press F3. Now when you move the cursor the box will
  2242.             remain the same size, but will move around the
  2243.             screen.
  2244. Action 28: press F3 again. The box will expand or contract when
  2245.             you move the cursor again.
  2246. Action 29: When you are happy with the size and position of the
  2247.             box press the Enter key or click the left mouse
  2248.             button. You have succeeded in drawing a box! 
  2249.  
  2250. Adding a Title:
  2251.  
  2252. Action 30: Press Esc to return to the Screen Edit Menu bar.
  2253. Action 31: Select Title.
  2254. Action 32: select New.
  2255. Action 33: you will be prompted to enter some text for your
  2256.             title. Do so and press Enter. You will enter Title
  2257.             Edit Mode.
  2258. Action 34: Move the cursor to where you want the title to begin, 
  2259.             then click with the left mouse button or press Enter.
  2260. Action 35: when you move the cursor the title will expand or
  2261.             contract.
  2262. Action 36: press F3. Now when you move the cursor the title will
  2263.             move.
  2264. Action 37: press F3 again. You will be able to expand/ contract
  2265.             and move the title.
  2266. Action 38: when you are satisfied with the position and size of
  2267.             your title press Enter, or click the left mouse
  2268.             button. You have drawn a title.
  2269.  
  2270. Adding a User defined Menu:
  2271. Action 39: Press Esc to return to the Screen Edit Menu bar.
  2272. Action 40: Select Menu.
  2273. Action 41: select Add. You have now added a new menu system to
  2274.             the screen on view.
  2275. Action 42: select New. This will add a new menu option to the new
  2276.             menu.
  2277. Action 43: you will be prompted to enter a heading text for your
  2278.             menu option (eg. "EDIT"). Do so and press Enter. You
  2279.             will enter Menu Edit Mode.
  2280. Action 44: Move the cursor to where you want the menu option to
  2281.             begin, then click with the left mouse button or press
  2282.             Enter. Action 45: when you move the cursor the menu option will expand
  2283.             or contract.
  2284. Action 46: press F3. Now when you move the cursor the menu option
  2285.             will move.
  2286. Action 47: press F3 again. You will be able to expand/ contract
  2287.             and move the menu option.
  2288. Action 48: when you are satisfied with the position and size of
  2289.             your menu option press Enter, or click the left mouse
  2290.             button.
  2291.  
  2292. You have drawn the first option on your new menu.(You may repeat
  2293. steps 42 to 48 if you want to continue adding options to your new
  2294. menu, or continue to 48).
  2295.  
  2296.  
  2297. Generating the Code:
  2298.  
  2299. Action 49: Press Esc to return to the Screen Edit Menu bar.
  2300. Action 50: Select Quit. You will be returned to the Main Menu.
  2301. Action 51: from the Main Menu select File, followed by Output,
  2302.             then Code.
  2303. Action 52: enter the name of the source code output file, eg.
  2304.             TUTOR1.PRG
  2305. Action 53: press Esc until you return to the top level of the
  2306.             Main Menu.
  2307. Action 54: select Generate, followed by Code.
  2308. Action 55: if the TUTOR1.PRG or other file exists you will be
  2309.             warned. In this case enter "Y" to overwrite it. The
  2310.             screen code will be generated.
  2311.  
  2312. Viewing the generated Code:
  2313.  
  2314. Action 56: select Edit, followed by Output from the Main Menu
  2315.             bar.
  2316. Action 57: enter the name of your output code file, eg.
  2317.             TUTOR1.PRG (or press Enter if it is shown). Your
  2318.             output source code wil be displayed.
  2319. Action 58: To exit the editor, press F4.
  2320.  
  2321. Saving Your Work:
  2322.  
  2323. Action 59: pres Esc to return to the top level of the Main Menu
  2324.             bar.
  2325. Action 60: select File, followed by Output, then SLF.
  2326. Action 61: enter the name of a Screen Layout File, eg. TUTOR1.SLF
  2327. Action 62: Esc to the Main Menu bar.
  2328. Action 63: select Generate, followed by SLF.
  2329. Action 64: if the file TUTOR1.SLF, etc. exists then enter "Y" to
  2330.             the prompt to overwrite it.
  2331.  
  2332. To exit SLD:
  2333.  
  2334. Action 65: Select Exit (or just press Esc) from the Main Menu
  2335.             bar. You will be prompted to confirm whether you wish
  2336.             to exit, and whether to save setup and screen
  2337.             information. For the moment respond "Y" to confirm
  2338.             that you want to exit and "N" to save setup/screen
  2339.             information.
  2340.  
  2341. Well done, you have generated your first application!
  2342.  
  2343. Tutorial Two: Reading from an SLF:
  2344. ----------------------------------
  2345. Action 1:  Start SLD.
  2346. Action 2:  select Setup from the Main Menu, then InputType from 
  2347.             the Setup Menu.
  2348. Action 3:  select SLF (the system is set to read from a
  2349.             previously generated Screen Layout File).
  2350. Action 4:  press Esc until you return to the Main Menu bar.
  2351. Action 5:  select File, followed by Input.
  2352. Action 6:  select SLF.
  2353. Action 7:  enter the name of a previously generated SL File in
  2354.             the box,  eg. TUTOR1.SLF that you generated in
  2355.             Tutorial One.
  2356. Action 8:  press Enter.
  2357. Action 9:  press Esc until you return to the Main menu bar.
  2358. Action 10: select SHOW.
  2359. Action 11: you will now be in the Screen Edit Menu. Select
  2360.             ScreenEdit, or alternatively press  the Esc key.
  2361. Action 12: the data fields from the SLF will be displayed and
  2362.             your screen and you will enter Screen Edit Mode.
  2363.  
  2364. You may now proceed according to the Actions from 14 onwards in 
  2365. Tutorial 1.
  2366.                         Appendix D.
  2367.                         ===========
  2368.  
  2369. FUTURE ENHANCEMENTS OF THE SCREEN LAYOUT DESIGNER.
  2370. --------------------------------------------------
  2371.  
  2372. Development is continuing on this software and related products
  2373. too.  Of course we would appreciate your interest and feedback. 
  2374. By listening to users of this software we can provide you with
  2375. what you want. In addition to planned enhancements to this
  2376. program we are developing one related program in particular:
  2377.  
  2378. A separate program, as part of a suite of software, for creating
  2379. .DBF files and for defining relational links between files,
  2380. including definition of primary and foreign keys, which will be
  2381. used by SLD to generate complete relational database
  2382. applications, including network record and file locking for
  2383. multi-user environments. This will reduce greatly the programming
  2384. work required by the developer. Work on this is in progress at
  2385. present. This will complement SLD  and registered users of SLD
  2386. will geat a generous discount on this software when available.
  2387.  
  2388. We also intend to produce further modules for SLD so that it can
  2389. generate screen source code in other languages.
  2390.  
  2391. We are investigating the feasibility of a separate program
  2392. allowing users not developing in dBase generic code to use SLD to
  2393. generate data entry screen source code in other languages. This
  2394. would allow users to define their own procedures or functions for
  2395. generating an object on the screen. SLD would use the defined
  2396. functions/procedures to generate screen source code.
  2397.  
  2398.  
  2399.  
  2400.  
  2401.                         Appendix E.
  2402.                         ===========
  2403.  
  2404. TECHNICAL SUPPORT
  2405. =================
  2406.  
  2407. If you have any technical problems with Screen Layout Designer,
  2408. or you wish to enquire about other software we are developing,
  2409. then youshould contact us at the address below, or telephone
  2410. 0703-701936 in the UK or 44 703 701936 outside the UK. Another
  2411. number you may call at weekends if you are unable to contact us
  2412. is 0329 833488 in the UK, or 44 329 833488 outside the UK. 
  2413.  
  2414. Compuserve support is available: user id: 100116,370 
  2415.  
  2416.       Neville T. Palmer
  2417.       PDM Associates
  2418.       17 Heathlands
  2419.       Shedfield
  2420.       Southampton
  2421.       Hants
  2422.       SO3 2JD
  2423.       England
  2424.  
  2425.  
  2426. Who are PDM Associates?:
  2427. We are a group of three programmers who have been working
  2428. together since 1991 on various projects. We will continue to work
  2429. in this way in the future. 
  2430.                         REGISTRATION.
  2431.                         =============
  2432. If you register your copy of Screen Layout Designer we will send
  2433. you the latest version of the software, which will include any
  2434. enhancements. The cost of registration is US $40 or £25 Sterling. 
  2435. To register, please print and fill in the form below,
  2436. then send it, together with the appropriate payment, made out to
  2437. Neville T. Palmer, to this address:
  2438.  
  2439.       Neville T. Palmer
  2440.       PDM Associates
  2441.       17 Heathlands
  2442.       Shedfield
  2443.       Southampton
  2444.       Hants
  2445.       SO3 2JD
  2446.       England
  2447.       
  2448. Registration Form - Screen Layout Designer V1.03 Plus
  2449. -----------------------------------------------------
  2450.  
  2451.       Name:    ____________________________________
  2452.  
  2453.       Company: ____________________________________
  2454.  
  2455.       Address: ____________________________________
  2456.  
  2457.                ____________________________________
  2458.       
  2459.       City:    _____________________
  2460.  
  2461.       State/County:  _______________    
  2462.       
  2463.       Zip/Post Code: _______________
  2464.  
  2465.       Country:       _______________
  2466.  
  2467.       Telephone: __________________  Fax:__________________
  2468.  
  2469.       Compuserve: _________________
  2470.  
  2471.       IMPORTANT!! Please enter the Name that you wish to appearon
  2472.       your registration screen when running the program (14 to 40
  2473.       alphanumeric characters; see next page for full info):
  2474.  
  2475.       Registered Name:
  2476.       
  2477.       ______________________________________________________
  2478.  
  2479.       Disk Size for Update(s):  5.25" [ ]      3.25" [ ]
  2480.  
  2481.       Please enclose $40 US or £25 Sterling (or equivalent)
  2482. HOW TO COMPLETE PROGRAM REGISTRATION:
  2483. ------------------------------------
  2484.  
  2485. To register you should send us the appropriate fee along with the
  2486. name that you will register this software under. This name must
  2487. consist of at least 14 alphamumeric characters. Valid characters
  2488. are capital 'A' to 'Z', lower case 'a' to 'z', number '0' to '9'
  2489. and figures &',/()-   (ampersand, apostrophe, comma, forward
  2490. slash, left bracket, right bracket and hyphen). Spaces are of
  2491. course permitted between words, but note that there must be at
  2492. least 11 non-space characters in the name. No other characters
  2493. are valid. Case sensitivity is not important. When we receive the
  2494. registration fee and name we will generate a registration number
  2495. encoded from the name, so it is important that you send us the
  2496. exact name you will use for registration. We will send you the
  2497. latest version of this software. You will also be entitled to
  2498. full support and discounts on our other programs. We will send
  2499. you the registration number and confirmation of the name. You
  2500. should then run SLD and go into the Setup Menu from the main
  2501. menu, then select "OTHER", followed by "REGISTER" from this menu.
  2502. From here enter the name and registration number.  When you have
  2503. entered them satisfactorily.  Press the F2 function key to to
  2504. complete registration. You will see a message telling you that
  2505. registration has been successful. If you see an error message
  2506. "invalid registration number" then check that you have entered
  2507. the name and number correctly. 
  2508.  
  2509. The registration number and name are stored in a text file called
  2510. 'REGISTER.SLD'. This file must be present in the directory from
  2511. which you run SLD otherwise the registration information will not
  2512. be picked up by the program. You can generate this file in more
  2513. than one directory. Keep your registration number and name safe
  2514. so that if you accidentally delete this file you can re-generate
  2515. it.
  2516.  
  2517. When you complete registration the delay on the message at the
  2518. start and end of the program will be removed. You will only see
  2519. the opening screen with your rgistered name on it and you may
  2520. press any key or click a mouse button to continue immediately.
  2521.  
  2522. If you are reading this text at registration time then thankyou
  2523. for your support.
  2524.  
  2525.                   SOFTWARE FOR YOU!
  2526.                   =================
  2527.  
  2528. This software has been aimed at professional and amateur software
  2529. developers and dealers with experience ranging from novice to
  2530. advanced. We always welcome any comments regarding our software
  2531. so that we can write software that people want. The whole purpose
  2532. of this software is to make life easier for you!
  2533.  
  2534. Additionally we may be able to customise this product for your
  2535. individual requirements. Contact us today.
  2536.  
  2537. We are also working on other developement/database projects.
  2538. Details upon request!
  2539.  
  2540. Screen Layout Designer V1.03a
  2541. -----------------------------
  2542.  
  2543. The Differences Between Version 1.03 and 1.03b.
  2544. ------------------------------------------------
  2545. Improvements have been made in the way SLD selects the
  2546. text mode. Three modes are supported: 25 rows x 80 columns,
  2547. 43 x 80 and 50 x 80. The improvements are as follows:
  2548.  
  2549. 1) improvements to overcome text mode selection problems
  2550.    experienced on some PCs.
  2551.  
  2552. 2) use of the DOS 4 & 5 MODE command to allow EGA emulation
  2553.    on a VGA display.
  2554.  
  2555. 3) Allow Clipper to use 50 line mode.
  2556.  
  2557. 4) User may select a display adapter type (MDA, CGA, EGA, VGA).
  2558.  
  2559. 5) Changes to the SETUPS.SET file and Screen Layout
  2560.    Files (SLF), so that mode and display type are saved,
  2561.    etc.
  2562.  
  2563. 6) dBase III and IV users now have the choice of 3 menu           
  2564.    types:
  2565.       i) Clipper style menus.
  2566.       ii) conventional dBase menus with the choice input in
  2567.           an @GET.
  2568.       iii) conventional dBase menus with no @GET.
  2569.  
  2570. 7) Frame types can be reset globally to a new type.
  2571.  
  2572. 8) dBase IV frame strings are now correct.
  2573.  
  2574. 9) Corrections and amendments to documentation.
  2575.  
  2576. 10)   Generated source code files now have a header describing
  2577.       the file name, date, author and registration name.
  2578.