The_Sensible_Solution_1984 The Sensible Solution 1984
The_Sensible_Solution_1984 The_Sensible_Solution_1984
User Manual: The_Sensible_Solution_1984
Open the PDF directly: View PDF .
Page Count: 374
Download | ![]() |
Open PDF In Browser | View PDF |
The SENSIBLE SOLUTION'" í^"" $ iSl e- m ^ 3 O'HANLON COMPUTER . SYSTEMgg COPYRIGHT © 1984 by O'Hanlon Computer Systems, All rights reserved. Inc. O'Hanlon Computer Systems, Opportunity Builcíing 8383 158th Avenue N.E. Redmond, Washington july Copyright (C) 1984 Inc. 98052 1984 by O'Hanlon Computer Systems, Inc. All rights reserved. No part of this publication may be reproduced in any form without prior written permíssíon from O'Hanlon Computer The The Systems, Language, registered CP/M SENSIBLE SOLUTION SENSIBLE SOLUTION, SENSIBLE SOLUTION Management Series are trademarks of O'Hanlon Computer Systems,lnc. Inc. and and MP/M MSDOS DPC/OS a The all are registered trademarks of Digital Research is a registered trademark of Microsoft, Inc. is MmmoST registered trademark of Action Computer Enterprises. is e registered trademark of Televideo. TurboDOS is a registered trademark of Software 2000. n/STAR is a registered trademark of Molecular Computer. Corp. Mai-l Address: Customer O' Hanlon Supµort Computer SÁ: í"n i ces Syst eríis Buildirig Opportunity 8383 158t.h Avenue Redmond, Wastiingtc): N.Ew ) 9ü(i'R SYstems, Coííiput.er please pr(.ql')1elns, and locate the dealer cll" ';"Líaíil /j!'Í prior to calling your check review the following list:, reüieíc yüur appropriate sections in the i: efeí"'erice mañúR -i. 8. Bef: You t;á"Ll )L'€j i-or to calling 'yüul" .:itia there are several things better support service: Zeí-" Pr 1. You A may C The spec'i.fii: numbe r . . 0 2. 3 . be must You prior asked faííé'íÍ to contacting f t.o transfer ii Software which sections l-owinq (ji"ü{.: 'i"cztii"ig} jjYSt'-tií7tS iii-n: result- -Lj"if(")L"íílat: suyport., irí quicker and j on: SyStt.: 'inr t.ke SENSIBLY S-;("}{.,[.7'"í'í{")L.: í$arL[nkac{e ¿-;ens[b],e sQL.íj'Í'k()l.d Appl icati-om or a !-}!: (}("i|-¿ct.-·"aE)p'Licd,..íK-líz Lái" Vv' i.t-Íi .E '.'cut' Stj.PPl: CusLoiucu." es, loaá di.¿3ks, a-ncí/or Versicm }'}a': \'.jT¿cA]"'p íL"'¿.. !"OÍ. re'·'-}".)c)c)t i of EU" li U)'l .t') Sé±f'7"· COí1lE'\'lt O'Hanlon do t: -hat w.i yj it: h fa["L1í.í.j citthe t is JrftCñ very í|í¿i['lÍ.'t,4.l t-ht.i i""e1atc' to bc: must Manual(s)% You numbers á.z'úi If you wece iii were executing . can thü ÍJ"üf í!ardware Your ¥ B be asked or you ' Cust"ome: if you serial system ana operating example, you may be i !.'(} system, etc. Ci': :ar)!.1ter g'Hár: j.{")í; f ' )f'íÉ'! y()\2 can hei: ': yc'ií' .pi fí-;](3t[í',[·-not-e System identify the page . s-;'.íL'}r/í-;?'-- susµects that the user áíú-i (: í]st'(:\ruer Y't".jü be may asked to re-install the c()rreí"i".. Please t'c-táci yut: ií: im: t" ai LU j..:".;ü nianüal carefiilly and have software. i-t available for ref éL"¿: TfCé If you are installation i-s 4 5. The ¿j . If SENSIBLE you are SC'Lü'i' i\)'ÍYt ruíw níA. (:Á!'gcj"t.ÁL"_l¿É(.3 ni :i :'.í á z,:.Átt. i- 'íl'.q, -,' í..'¶j"{'jÁ ¿"grkrüefEt, you should Ínt-í"oduction 13 know system status your operating users on your system. 6. If an operating A. B. 7. error message system: and is displayed or the status it Note the exact error message; character along with any drive letter designation or by other to the character, file name. the immediate sequence of events and conditions just prior to the error. Note the menu selections, the cursor location on your screen, and the data last entered. Note We SENSIBLE abruptly returns recommend that you have your telephone, computer close by so that you can try alternate we may suggest over the phone. The all of SOLUTIONtrrl terminal, and procedures that Introduction 14 The SENSIBLE Requírements Systern The operation ( 1 ) ( 2 ) RAM (a) (b) (c) (d) (free user ) : requires exclusiv(s SOLUTION area CP/M, MP/M CP/M (DEC Rainbow/Pro) PC-DOS, MS-DOS (IBM, TI) MS-DOS (Victor) 48k 96k 12tsk 2 56k í1,'íñ RAM of níemory 48k operating o li TPA or system 'l'Pl\\ SENSIBLE SOLUTION requires mass storage capability Storage: of at least two floppy Disk Drives, each with at least 30Ok bytes (after formating). usable (floppy disk) storage capacity drives, disk capacity, and/or hard disks will increase Additional Hard disks are recommended for multi-user system performance. implementation and/or extensive appl icat.ions. Mass Terminal: of the following CRT ( a) b) ( c) ( d) ( ( e ) ( 5 ) SENSIBLE Memory: requirements ( 4 ) software: of MP/M, MS-DOS SENSIBLE SOLUTION requires a CP/M, Operating System: which hardware Most operating system. or similar, compatible SOLUTION. SENSIBLE operating an system such run supports will systems are: CP,/M, MP,/ M , M S -DOS , Examples of these operating MrnmC)ST, DPC/OS, TurboDOS, PC-DOS, N-Star, CP--NET. greater ( 3 ) and for the inst.allation system requirements following are the basic SENSIBLE SOLUTION succcessful Printer: following ( a ) ( The SOLUTION SENSIBLE b) SOLUTTC)Nt: SENSLBI.E minimum requiree requirement s: SOLUTION a CRT (Video) terminal ANSI compatible (lines) by El(j (columns) Display: Direct Cursor Addressing (absolute) Clear to End of Line Clear Screen ASCII Screen serial type 24or SOLUTION SENSIBLE miniínum requirements: ASCII type 80 column or more (e .m requites .g. 255 a column t"'Y"inter with the compressed .I print) ntroduct.ion 11 O' Hanlon Systems, Computer Customer Inc. Policy Support: are available only Although (Note: persorincl they rnay not are very knowledgable, specific operating system or your hardware!) Customer support serv.ices Sy"3tems software products. 1. O'Hanlon for all be Computer of our experts support your on Thc . initial support responsibility f or O'Hanlon Computer Systems Sof tware Products lies with the dealer through wh.ich you purchased your software. Please contact your dealer first for resolut: ion of problems and questioris. 2 O'Ilarílon 3. Computer Systems lira ted to SENSIBLE customer support and user SOL(1TTON software. User modifications to O'iianlon applications help required programs are NOT supported. Systems for Custom Software Consulting. area, contact O'Ilanlon Computer is application 4. days If O'llanlon Computer af ter shipment. Systems i is supported for software in this is a period of 90 and research) rae (telephone hours of support is 90 days after shipment. As during the cost available without first up to two long as the software maintenance contract is maintained, (non-cumulative). Af ter hours of support is available per quarter O'Hanlon the time at Customer Support billable current is that, Computer Systems rate. 5 . 6. with 7. Up ti two to Those the current version of the software is supported. older software are required to obtain a current version. Only The O'llanlon Computer Please 206-$385-2502 Hours are Morning: Af ternoon: (No The SENSIBLE SOLUTIQNttñ Support telephone Customer Systems ask 8: (10 1: 00 for to to Customer 12: ()0 4: 00 users number is: Support. Pacific Monday Time thru Friday collect calls accepted) Introduction 12 logical screen being displayed The Software The (programs) instructions hardware. code Source The program you on your monitor. that direct the operation of the computer The source code with the SENSIBLE SOLUTION Language. and code, a set of pseudo turned into the computer is then compiled understand. readily more can that the computer instructions Stríng contiguous A write series by of alphanumeric Syntax The rules that decide constructed. In other characters. a one can A values can take different the word variable has the same unit that SOLUTION The SENSIBLE SOLUTIONtm at be must to the other every time 'logical' item (could be a every time some condition is position be a Value A given to a field. number or a name (string of characters) have 'Name' 'Smith' value the can or 'Brown'; the the field '234.56'. can have the value Variable strímg. programming language statements words, the grammar of the language. itforth satisfied. , j-s how Toggle A two position switch that changes from is operated. In computer language bit) that changes its status back and it 'Ac%!L+' different times. as field. meaning For example, field 'amount' In Introduction SENSIBLE 9 The SENSIBLE System SOLUTION Specíficatíons O./S Limited Size O/S Limited Size File of Data Files Unlimited . of Records per tjata File 16,777,216 1,Ó(J(J of Data Fields per Record Data Record Memory Limited File Bytes per 16 Number of Open Files in a Program 10 Number of Indexes (Keys) per Data File Record Number Record One [This includes Pre-Defined Index] Maximum Number of Keys per Screen 100 or Program Maximum Length 72 of Key Field Maximum Length of a Single Field 255 Stored Number Range: Maximum +99,999,999,999.9999 Mnirrium - 9,999,999,999.9999 4 Decimal Place Precision [Computations are done to 5 decimal place precision, then rounded to the precision of the target field.] Maximum Number of Accessed 255 fields per Program Maximum Number of Command Lines per program 2,000 Maximum Number of Command Line Labels 300 per Program Maximum Number of Nested 20 Subroutines (GOSUB) Maximum Length of Reporter Print Line Printer Limited Maximum Number of Report Format 60 Lines......... Maximum Fields 255 on a Screen/Report Format (fields) 15 Maximum Length of Field (Variable) Name Maximum Number of Unique 255 Field Names per Program Maxi-mum Maximum Maxi-mum Maxi-mum Maxi-mum Maxi-mum Maxi-mum Maximum Program Data Number Number Number NOTES: O/S The Limited: SENSIBLE Limited SoLUTIONtm by the disk capacity and operating system. Introduction 10 File name The SENSIBLE.COM. first part of the file specifier. SENSIBLE is the name file of the Fije specífíer The characters used to fully identify a file, the file name and the file extension separated by a period. SENSIBLE.COM is the file specifier of the file whose name is SENSIBLE and whose extension is COM. Format The logical organization Hardware The mechanical, Key, See control control Key, índex A of data within electronic the computer memory electrical devices that and logical attribute given to one or more fields in a and retrieval of a record given the value of the of keyboard you press to generate Label descriptive identifier. to identify a parameter line to which program a satisfied. Lístíng, a disk. the computer. character on file key. to permit fast the screen of your computer. a label Typically, is a group of characters used the screen. In a program, labels identify the control is to pass when certain conditions are on program the instructions list oflisting), (printer or on the a up on key. access Key, What make or contained in the program. screen (CRT listing). It can be on paper logged onto a physical disk drive to a logical location in the of assigning by disk drives Usually computer's operating system. are represented alphabetic values from A to P. To gain access to a physical disk drive (to logon to a disk drive) you would normally enter the disk drive location followed by a colon. For example, typíng C: and the carriage return key will log you onto drive C. Logon or The act Machíne code series without any translation. SENSIBLE SOLUTI()Ntiñ A The of instructionq in a form the computer can understand Introduction directly 7 Memory The place access. where the computer stores information for immediate It is often called RAM -- Random Access Memory. Monítor The physical fast screen of your computer. Number Numeric character characters only. Operatíng system software that allows The with your your computer to communicate the operating system allows with these physical devices. etc.. In our case, drives, printer, communicate SOI,IJ'1'£ON and to CRT, disk SENSIBLE Parameter i-tern of information that can be changed in accordance with your wishes. you might have a parameter For instance, called 'Payment amount', which would give different values during execution of your prograI!!· An Program An ordered list of instructions sequence of operations. directing computer to carry out a pseudo code The code, meaningless to humans, which the computer SENSIBLE SOLUTION. pseudo code not computer can understand immediately), but is written in generates frorn a desired a program machine code (which the is fairly close to it. Recc>rd A by series of related data that is created a Many records form a file. program. Record, physical space allocated The on fixed. disk or in memory by a and program to store can records. be interpreted Its length is Screen The physical device that is used by the computer to display information. ís often referred to a'" monitor or CRT. reen can also be It interpreted to mean the template of information that defines the position of and comments when labels, field windows as they will be displayed on the A sc: CRT a program is run. Screen, currently The SENSIBLE actíve SOLUTIONtm Introduction 8 Byte A group bits, of adjacent generally nowadays Compile The coding operations the computer performs (something that you can read and understand) understand. Constant or parameter A Literal whose value is fixed throughtout accepted as 8 bits. to convert your program lines into something the computer can the execution of a program. Control character special one-character code that is generalíy not displayed on the screen by a program to initiate some e,ction. that can interpreted is generated It the by holding down the control key while another chara.: .""ter key on keyboard is depressed. A Control code specíal code which sets certain functions within the computer. blank your computer screen for instance. control generated from the keyboard or from the software. A code Control key A special keyboard key to be used key to send special commands to the CTRL or ALT. Control keys are used cotrol key is depressed in control character. CRT The physical in conjunction On It errors be it CRT stands for It correct can it Cathode Ray fijLe contains the 'data', the information that file of data. into the computer that you want to manipulate or simply store a list of names and addresses for instance. and certain with an ordinary character some keyboards computer. is marked for screen handling functions. When the conjunction generates a with another key, screen of your computer. Data A Debug To isolate A can in a computer Tube. you and have put retrieve. p]rogram- Default dríve The disk drive that is automatically accessed by the operating system when no other drive is specified; normally indicated on your screen with a letter from A to P followed by an angle bracket or a dot. The disk drive you have logged onto and are running programs from The SENSIBLE SOLUTIONtm Introduction 5 Default value value that The is automatically assigned to a field by a program. Dísk Plastic or metal disk, coated with magnetic material on which data can be stored and retrieved by the computer. The disk is divided into concentric rings called tracks, each of which is in turn subdivided into sectors. The common varieties are floppies and hard. Floppies are flexible plastic disks contained in an envelope. Their data storage capacity is fairly limited and by the continuous theír life head is affected with the disk drive friction operations and atmospheric dust. Read and read/write are slow in write comparison with hard disks. Hard disks have a much larger capacity than floppies, to 30 times, and they operate at a far greater typically from speed. They are not affected by dust and dirt as they are contained in sealed enclosures. 10 Dísk dri.ve machine that spins normally identifed with colon, i.e. A: The Executíve program program that has been the ínstructions given A the disk a letter and reads its contents. of the alphabet from A to compiled and is ready to the programmer. be by run. A p disk drive followed by It will perform is a all Fíeld A subdivision of is stored equivalent a record. or found as a to variable. field is an area where data of a certain type single entity. In SENSIBLE SOLUTION field is A Fíel-d, wíndow area on the screen, to the the value of the field. The Fije An organized composed of and structured records and each right of a field label designated to display The collection of information. record is composed of fields.. information is Fíle, data See data file. Fí1e extensíon The second SENSIBLE.COM. The SENSIBLE part of the SOLUTIONtm file specifier. COM is the extension Introduction of file 6 data entry The and SENSIBLE update screen SOLUTION is a for the user, etc.. procedure oriented language that SOLUTION, perform these kinds of tasks. inexperienced computer user programming. applications With the SENSIBLE the can perform arcane can easily the relatively art of business Begin your study of SENSIBLE SOLUTION by reading over this manual carefully. At this stage, pay particular attention to this introductory section and Before you section at the back of this manual. then read the INSTALLATION SOLUTION perform a SENSIBLE need to on system, computer you will your run section of this short installation procedure descríbed in the INSTALLATION manual. By the signing SENSIBLE Before you and returning the User SOLUTION warranty and go one step diskettes. detailed instructions manual. SOLUTION The SENSIBLE SOLUTIONtm License Agreement return rights. you will be entitled to make back-up copie" of your new SENSIBLE how to do this, know there should be don't Ifon you disk copying in your computer hardware system further, Introduction 3 GLOSSARY many businesses that have generated as much the computer industry. The rapid chances within this Confusion industry lead to a constantly changing vocabulary. may not be easy for results not only because the new terms all participants to understand, but also because the same term may be used in more than one way. There jargon aren't too as ccmpu.ter at the non-specialist user and we help such confusion by bringing that to dispel will together all the jargon words used throughout this manual. All words underlines are referred to elsewhere in this glossary. This glossary is aimed it hope Alphanumeríc, character Any character that can be a number, punctuation marks and mathematical signs. Applícation, A series is system letter a commonly used of information unit Boot operation of computer memory. The a given SENSIBLE abbreviation of 'binary that can be stored in A hotel booking requirement. for instance. SOLUTION Memory storage area permanent storage. SENSIBLE where SOLUTIONtiñ information is In and SENSIBLE number the SOLUTION of arrays fields. All digit'. a It represents the smallest computer, either a O or a 1. transferring the operating Buffer The like symbols package of programs that satisfy a posisibie ápplication of Array A set of fields identified by a common name. have two dimensions: the length of the fie,ld fields must have the saíne length. BÍT The or other system from the disk to the assembled before transmission Introduction 4 to The SENSIBLE SOLUTION Language has brought a revolution to the The powerful, inexpensive microcomputer business office, but all too often seems the new computer wins the battle A and loses the war! computer without a program is just an overpriced A computer with a poor program is worse than useless: paperweight. you get the data into the systern, work around the parts the computer fight toknow how to do, and maybe you finally give up in frustration and go doesn't back to doing the job by hand. it Computers the rnost misplaced the sun. have no imagination. nit-picking detail, in comma a program They must be to accomplish sent the Voyager how exactingly a tasé,. space III dorm to instructed, few years ago, one probe careening into A This is why designing business systems with languages like BASIC or COBOL is and expensive Even a tedious, a simple time-consuming General affair. Ledger can take months to design, code, test and debug; adding one tiny feature to the finished system can send the whole thing back to the drawing board. Of there are hundreds of "standard" business packages already problem is, nobody runs a standard business. There's always some billing system the boss wants to use, a "'pecial arrangement with an old customer or something the sales staff is used to doing and won't change. Often the accountant keeps track of the exceptions by hand and the two sets The computer of books slowly drift away from any relation to each other. becomes more trouble than it's worth. course, available. Database The programs are a recent rage because they let you design have systems. It's a good start, but many of these programs Designing limited accounting capability and poorbe facilities for validation. systems as difficult as using BASIC. with a database program may Worst of all, each new system is totally unrelated to earlier ones -- you can't What you have is a 'Qt of pieces that do build on what you've already done. What you nc.ted is a system that of the job but can't work together. part them puts all together: your The management own SENSIBLE - a as - a quick they and will easy way to create screens and reports appear on a terminal or printed page. data control system that keeps track of all the items of information: what they are, what they SOLUTIONtIn Introduction 1 contain, what is valid data relates to all the others. and how each iteín set of standardized tools so the designer doesn't have to rebuild the same logic over and over yet allows the operator to use the same dataentry techniques for each and every application. - a - a - a program generator that handles the nit-picking details while leaving the designer totally free to specify the logic of the system structure that lets the designer expand the system without having everything again frorn the ground up. change or to retest finally, a resulting system that is fast, efficient, and accurately handles the needs of a full-size business. You've probably O'Hanlon realized that this isn't just d wish list. a program Computer Systems has developed exactly this system: that generates the full range of business applications from mailing lists to accounting packages to forecasting to cost control or whatever you can puts the power of the imagine. We have developed a system that That's why we call microcomputer to work for you today. it The SENSIBLE - SOLUTION. computer languages like Basic, Fortran, and Pascal are general purpose provide many syntax oriented languages. All of these 'high level' languages diverse yet primitive functions that allow you to write programs for scientific, engineering, and business applications. Most There is a world of difference, however, between a scientific 'number running from millions crunching' program where you might encounter numbers to millionths and a business application program that keeps track of The point is, numbers high lrvel languages provide to two decimal places. the tools for an experienced programmer to write many di'f"ferent kinds of applícations, but this diversity is usually paid fo'r at thcc expense of speed and ease of use. Since business programs are usually limited in scope, using the same kinds of procedures over and over, why use a diverse, high level language to solve a specific business problem? There is a better way, aandprocedural language composed of the kinds of procedures that you use over over -- create a and retrieve data from a a update send system, file file, file, provide a The SENSIBLE SOLUTIONtm Introductiorí 2 INSTALLATION Introduction . . . . . . . . System Requirements. . . . . Pre-lnstallation Instructions. File Extensions. . . . . . . Files Supplied with SENSIBLE . Installation Instructions. SENSETUP The . SENSIBLE . . . . . . SOLUTIONtñí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SOLUTION . MANUAL . . . . . . . . 1 2 3 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 . . . . . . . . . . . . . . . . iii 5 7 The SENSIBLE SOLUTION Language Table of Contents INTRODUCTION The SOLUTION SENSIBLE (Introduction) Language Glossary . . . . . . . System Specifications. System Requirements. . Customer Support Policy. Update Procedure . . . User License Agreement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . W . . . Ó . . . - . . . . . . . . . . . . . . . . . . . . . 1 . . 4 .10 .11 .12 .15 .16 TUTORIAL LESSON LESSON LESSON LESSON LESSON LESSON LESSON LESSON LESSON LESSON LESSON 1 2 3 4 5 6 7 8 9 10 11 Using SENSIBLE SOLUTION for Data Entry and Update. Using the Program Generator. . . . . . . . . . . . Creating Applications with the SENSIBLE SOLUTION . Editing a SENSIBLE SOLUITON program. . . . . . . . Payment Program. Creating The Customer . . . . . . Defining Data Files With The Data Dictionary . . . . Creating Our Sales-Order Program . . . . . . . . Adding New Fields to a File or Screen. . . . . . . Creating a Menu. . . . . . . . . . . . . . . . . . Inquire, the Quick Data Scanning Facility. . . . . The Reporter Format. . . . . . . . . . . . . . . . REFERENCE File File Extensions. List. Main Menu Main Menu. . . . . The Compile SENSIBLF A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10.1 .11.1 MANUAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 1.2 1.3 2.1 SELECTIONS . . . . . . . . . . . I) Execute A SENSIBLE SOLUTION Program 2) Data Dictionary Maintenance. . . . 3) Screen Painting . . . . . . . . . 4) Source Code Editor . . . . . . . . A Data 5) Initialize File . . . . . . 6) . . . MENU . . . . Programs . . . 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 Source Code SOLUTIONtñí File . . . . . . . . G b . . . . . . . . . . . . . . # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . W . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 .2.10 .2.23 .2.29 .2.34 .2.37 i Rekey A Data File Restructure A Data Program Generator. Inquire. . . . . . 7) 8) 9) 10) . . . . . . . . . . . . . . . . . . . . File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LANGUAGE Enter. . . = (equals) .2.39 .2.41 .2.44 .2.46 COMMANDS . . . . . . . . . . . . . . . . . . . Unlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .'3.1 3.4 . .3.22 .3.31 .3.38 .3.40 .3.42 .3.44 .3.49 .3.59 .3.72 .3.76 .3.78 .3.79 .3.85 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 4.6 4.7 . .4.10 . If Go . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mount. . . Save rec . Delete rec Clear. . . Find . . . Print. . . Trap . . . Execute. . ! (remark) Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DATA STRUCTURES Record Field Layout. Types. . a Data Altering Structure. Translating Foreign Data Multi-ljser Considerations. . 4.1 APPENDIX System Specifications. . . . . . Complete File . . . . . . . SENSIBLE SOLUTION File Extensions. SENSIBLE SOLUTION Language Files Main Menu Selections (and System Error Messages. . . . . . MENU.SCC, MENU.SRR . . . . . . . ARRAY.SCC, ARRAY.SRR . . . . . . List files) The SENSIBLE SOLUTIONtíñ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 5.2 5.3 5.4 . 5.5 . 5.6 . .5.11 .5.13 . . ii PROGRAM- IE IP woRKLaANs!3 4 . FURNISHED, UNDER TC) NORMAL USE FROM t)íiFEc!!g FREE n' MÉiTERIALs E)'á· 'r"m t: 't"v i ?Cj ! ?RY? P"RObi pETuOLr li INITIAL LICENSEE AS EVTDENCED BY É% COPY BE FOR DATE or INITíAL DELIVERY RECEIPT THEREFORE. TO LIMI'X'ATIONS REMEDY SHALL O' HANLON' A. THE O AUTHOR AND REMEDIES: BE: S ENTX RE LIABILITY AND YOUR THE OF EXCLUSIVE NOT OF ANY OR MEETING CASSETTE THE REPLACEMENT DISKk.TTE AN TO O'HANLON OR WARRANTY" , ' HANLON "LIMITED WHICH IS RETURNED AGREEMENT USER C)!? YOUR A COPY LICENSE DEALER WITH I ZED O' E!ANLON RECE"LF"F rµ" O ' B. OR DISKETTE WORKMANSHIP, AND OF AND YOUR TFÍEREC)F, OR HANLON MONEY OR cAssE!rrE YOU MAY WILL BE REPLACEPIENT DELLVER A THE DEALER IS UNABLE TO OR WHICH IS FREE OF DEFECTS IN MATERIALS BY RETURNING THE PROGRAM TERMINATE THIS AGREEMENT REFUNDED. DAMAGES INCLUDING EVENT WILL O'HANLON BE LIABLE TO YOU FOR ANY , CR OR OTHER CONSEQUENTIAL INCIDENTAL SAVINGS, LOST PROFITS, IÁ)ST PROGRAM, DAMAGES EVEN IF ART-SING OUT OF THE USE OR TNABTLITY TI) USE SUCK OF C)' HANLON BEEN AN OH ADVISED THE AUTHORIZED O'HANIÁ)N DEALER HAS FOR C)F SUCH DAMAGES, OR ANY CLÉJM BY ÉNY ")THER PARTY WHO MAY POSSIBLMÍ"Y ASSEKT 9R L"JRÁ LJY! DAMAGES. IN NO ANY 5 . GENERAL programe: attempt duties : c)l" You may not súblicense, assign or transfer except as expressly provided in this license otherwise to sublicense, assígn or t-ransfc-r obligations hereunder is void. O' Han1nvn Computer' Systems, enhancements as áeveloped. Inc . agrees to supply You agree to pay O'Hanlon which the the media ítpori costs and a reasonable Inc . fcí" the cost of distribui: ed, s.!íippinq & freight o' hrnlc'n computer systems, níc: OPPORTUNITY BUILDING 158th 8383 avenue n .E. REDMOND, 'At) 12 WASHINGTON (206) 1385-2502 The sEr4¿: 1"BI.,?.: S·;C).L,{.'T LÍ-\Ñ tm . t..he license agreement anv of the s;';íj wit: h i Ccnnputer or the . Any rights, product Systems, enhancements are handling charge. ;í'lz'z'íU""í C 'iÍíljí'ttE't' Upda SENSIBLE { tm ) software t y ;.',': í'!í7.S , 'i D C * 'Procedure te i.tz: and constantl'r . undergu i.rig enhancements maii)t.erL¿3í"zcre 'i'h.e sof"tware This norma version of © current t: hat we .[:r(3aF.?.F:t" w,a"y be a n'ajor or mir¡¢.-gr re Lease- in terms of its impact. on the user . (")' Hanlon C'c: n!L;uter Systeius will ont-y give customer support to those zj.se: í"t2 'Ñ)?c' a.re .runninq t-he cu.rrer!t ma jor software release. v: .i The to áetermine whether or vers i-on ríumL)er' of your í;()j]"t>"|iií"E! II allow you version 2 .DC ma !"or examp Le, not the current .re tease i-s maicni" k a isSystems jor i.cm 1 ?4 :E C) 'Hartlorí Uc--rs compared Thus i Computer release to . * , is currently shipping 'jersiün 2 .QC and you are using Version 1 .24, you must t.n update your software order U-) !;'w;í ell qi!ile .for software support. SC)íAjTL"")N{ SENSIBLE ':'ri) &zaíers and end--u,4ers will be made aware of ma jor releases tbrougb newsletter's and f,uííezin.s . revisions sof tware SOLI]TI¿]N S i. :3 . Sof rrtaintenarícc' C Cc)F'.pLzte?: IL Fees are bill-ed to the end-user by The fe2 i.S 13% of the suggested price '+7Í?O does arLn?7.2lly * An'.'i, "'n.L3.·-t'!Aer keep software maintenance not í"tírZ he st: ppot t.ed b'," C)' Hanlon Cc3nlp'.}ter Systems c'u£.: t.'n !.. \t.é Z contract '3(1 Cíaj' F:!}(?-7d3ers .: j'": .'"'"í')'.!. ]' i-n t..-Á -' "-' the can only receive a category soft'w,zí"e by E"í'tj!"¿;kíaE;ing O' Hanlon new versir: !I¡ ¿-.'S' Í;¿'!..,': '¿.E.;-F ':1·'."IÁ"!'.!Á)!'-,/Z.!n) a new Sy'"'"" F"'t'"; Computer ;"a: 7 t'á'dV'C í'4ai: -Ú:enancg. Contract. at 3 ()% of the current ,\3:!:j-c:e. suggested tware 'Hanlon ' directly 'their contract Sy .:3 '"er1e billed retail after this retail Software updates are naodlaá i . list: A i9.a É.!"¿teKÉan 2 3 . . I SENS the c.:c- Cori '- cact are so-ftware dealers end-users SQLU'I'!C'N(tín) "E3LE LLc)íl'Árí¿Á} ' " ¥"' e:ÉpÜ}!se::' an"i Tcü.r Q:": r' .i.r: gz,-::iiat-i ti i-).! ( c: ) The SENSIBLE . Details are as who have paid the siruppli ed the to by C'Hanlon Computer ¿.;C'í-,UZ'! ,: F, t-: n Scftware SENSIBLE Systems . c)}"} lers will usually require a zpdates to def ray shipping costs. (g.q' g"í': z'."! "" 't"" ::-,'(":L.tjz.' m'it tm} aler may elect ¿:'f.: 1'[A) ': L};.;"!a[.es ct·a .Lmay inciucie : . rges yí: :í·di-zí t' Cu: -'új t.!"íc,. c: ..'7izkc·t.t-es, marmals, etc) z;7j: p'!)i-r}g ', E'?"C":-i-'í;"t!"Z) CcjSt: t !larici i img' cha Lt"e f follows: dea E-nd--"l,";e"" SCJ'¶t-,ÜY· (a) your dealer of 'N:1.:m) SCíL,íjTL(: by 'to ship C)' Han]-on Cornputer SYstems, USER LICENSE You and 1 2 . . should carefully read the following acceptíng this diskette package O' Hanlon manuals Inc. AGREEMENT terms and conditions before openíng . Computer Systems arid licenses and provides the programs operator in the generation and execution of software applications . in these programs are copyrighted materia'Ls of O'Eanicjn, licensed by O' Hanlon to you for use under this .! icense agreeraerit . You assume responsibility for the and for selection of the program to achieve your intended results, the installation, use and results obtained from the program. , SOFTWARE C"Hanlon currently purchase . Computer suggested If Inc . , use ,;"i.r t cluded i wM-ch are MAINTENAN.CE CONTRACT you so elect, agree you to pay Systems, Computer The fee an annual maintenance fee. Inc. 9C and days annually, commences the date of by O' Hanlon This fee may be adjusted as deemed appropriate Systems , Inc., but in no event shall the fee exceed 15% of the If billed is after retail price. the Soítware Maintenance } nc: . , O' Hanlon Contract fee is not paid when due, no under obligation provide continued to is inainfénance or product enhancements support, desires . If a licensee non-payínerit be made reinstai: extent reinstatement upon , after willreasonable terms and conditions agreed between ji censee (or transferee) and O' Harílol"R computer Systems , Iñc . , taking into account the period of and the then coí: ·"títions nc)n-E ayníent, of enhancements, status of the product . Computer 3 . Systems LIMITED WARRANTY: THE PROGRAM AS IS PROVIDED WITH A LIMITED WARRANTY BÉiü)gT MAKES NO OR WARRANTY O'HANIÁ)N DESCRIBED EXPRESS IMPLIED TO INCLUDING, BUT NOT LIMITED THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE UNLESS SPECIFICALLY STATED. THE AG TO OF ENTIRE RISK THE CUALITY AND PERFORMANCE THE PRCJGRÉM WITH IS sHo3.ñ,t9 TlPC PROGRAM PROVE YOU YOU, {AND NOT O'HANLON OR ANY DEFECTIVE. RSSUME O' RRNLON DEALER) , AUTHORIZED THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. DOES O' HANLON WILL MEET YOUR UNINTERRUPTED HOWEVER, The SENSIBLE NCT WARRANT THAT THE FUNCTIONS CONTAINED IN THE REQUIREMENTS OR THAT THE OPERATION OF THE PROGRAM OR ERROR FREE. O'HANLCJN SOLUTION WARRANTS tm THE DISKETTE( S) OR CASSETTES ON PROGRAM WILL WHICH BE THE The SENSIBLE Maín The SENSIBLE SOLUTION Menu SOLUTION Screen I) The SENSIBLE Display Version Language MAIN 2) 3) 4) S) 6) 7) 8) 9) 10) Language 2!!ENU A SENSIBLE SOLUTION Execute Maintenance Data Dictionary Screen painting Code Editor Source A Data File A Source Code File Compile Rekey A mta File Restructure A Data File Program Generator program Initialize Inquire SOLUTIONtIn Reference 2.1 2.0 Main SENSTBLE.COM Execute A SENSIBLE SOLUTION menu selection 1 Program Overview: This is the primary SENSIBLE SOLUTION executive program. the initial program to call from the operating system level is SENSIBLE main SOLUTION Language menu and to execute the is also the runitSOLUTION time executive programs program used to execute all SENSIBLE program SENSTBLE.COM (tilename.RUN). Operatíon: SENSIBLE.COM can be executed from the operating system level by typing the and [RETURN). When SENSCTRL.MS done, the word SENSIBLE ERRFLE.MS/aKS, SOLUTION SENSIBLE immedíately be accessed. read device device and the SENSCTR'LeMS to determine the with the system communícation control codes that you previously specified SENSIBLE SENSETUP.COM. then open ERRFLE.MS and program SENSIBLE SOLUTION MENU.RUN. This program execute the compiled program, menu shown on the immediately display the SENSIBLE SOLUTIOF' Languaqe next page. this is printer will file installation files, wíll terminal will -- will Selection number program," will also either the operatíng The SENSIBLE 1 on call the language SENSIBLE.COM. system level SOLUTIONtm or menu, "Execute A SENSIBLE Thus SENSIBLE.COM may be frorrt the language menu SOLUTION called from level. Reference 2.2 Introductíon 7 Welcome! we'd like to introduce you to The SENSIBLE SOLUTION, a language that lets you quickly and interactively design and modify business and database applications. to demonstrate the ease with which you can design new applications, and integrate old ones, applícations into your particular business Your environment. task will be to create a collection of programs which can form the backbone of a customer order/entry/payment control system and could be integrated into a complete accounting system. 'Ne 'want enhance You willa create become program. familiar with the logical progression Main Using the selections on the Menu, of steps you will: taken to create files and fields in the Data Dictionary paint program screens using the Screen Painter create the source code file using the Source Code Editor initialize the data files ' compile the source code file execute the program In addition, we will will teach you about: using arrays " data structures how easy i.t is to modify an existing program Inquire -- the data query facility creating report formats that will print information from several different files reports which include If you're a novice, relax! We'll provide you with all the basics you need to familiarize yourself with SENSIBLE SOLUTION procedures and embark on your And you pros, programming endeavor. here's a quick overview of the entire SENSIBLE SOLUTION development system which will assist your enterprise. The SENSIBLE SOLUTION tm Tutorial After The typing SENSIBLE SENSIBLE SOLUTION [RETURN] -- Language version MAIN I) 2) 3) 4) 5) 6) 7) 8) 9) ID) ## MENU Execute A SENSIBLE SOLUTION Data Dictionary Maintenance Screen Painting Code Editor Source Initialize A Data File Compile Source Code Rekey A Data Restructure a Data Program Generator File Program File Inquire Enter Your Choice From Options Above . The SENSIBLE SOLUTION tm Tutorial 1.0 2.0 Usíng LESSON 1 Data SOLUTION for SENSIBLE We'll start by showing Included in your data demonstrate how SENSIBLE Entry and Update SOLUTION'S some of SENSIBLE manager is a that SOLUTION applications work. you files mailina-list capabilities. we'll use to Incidentally, the mailing-list manager is not just a toy demonstration system Once you can put to good use. you've program; it's a functional become familiar with SENSIBLE SOLUTION, you can tailor and expand to That's one of the most important features of the SENSIBLE your exact needs. SOLUTION: from you can build on previous work, without having to re-design scratch. it your computer (that's computerese the operating system") then type Boot A> for "turn on the power and fit re-start SENSIBLE and marked the key press the carriage return key (on some terminals, [RETURN]. [ENTER] [RETURN]). message, viewing copyright After the press or Your terminal display clear and display the menu shown on the facing SENSIBLE SOLUTION always you a menu of choices or page. The is will you exactly tell you from insulates the ultimate We're going [RETURN]. executive execute. user it what typing (who rnay wilt offer wants to know. and syntax errors not be a prograrrirner) This very important feature makes unnecessary for to learn "computerese". and so a SENSIBLE SOLUTION program, SENSIBLE SOLUTION clear the screen, the name of the .RUN program, and ask you Press [SPACE BAR] and type MAILLIST. to execute The will for it type 1 and load the file you press command want to Using this terminal now displays the screen shown on the next page. records, modify enter new mailing-list screen, or update you can remove existing entries, obsolete ones, and scan through the entire mailing by records using several different índexíngkeys: last name, list to find zipcode, city, or state. Your brief is in order here to give you an overview of what a program can do, and how you can control it. Following take you step by "tep through the selection and use of this will controls. your screen A discussion SOLUTION SENSIBLE summary, we The SENSIBLE SOLUTIONtm Tutorial 1.1 Executing the program MAIILIST -- + (Last name first, please) t******************************) Address: ****************************** ****************************** City: I********************] State I**] Name: Date Interest: Notes: entered zip I*********] mm/dd/yy ************************* ************************* + The SENSIBLE SOLUTION tui Tutorial 1.2 at the screen display Look on the opposite page. place on a screen display that you see an asterisk (*), a number sign The (#), or a date (mrn/dd/yy) is called a"field window". field windows a into data you to enter particular field that appear on your screen allow Each screen that the in a file or to view the data that is already there. of file information. one record, contains sy"tem displays or line, when you are viewing a display Therefore, screen, you are actually looking at the contents of a record within one of the system's disk files. Every enter data into the cystern all vou have to do is move the cursor to the have When finished you appropriate field window and type in the data. choose save the "screen can then to you full" entering data onto the screen, you decide to save the screen of data (a record) or to edit the screen. If the system will transfer the informat: ion from the screen to of information, So how do you control the appropriate disk file where all will be saved. The SENSIBLE SOLUTION screen menus and the keys on Easy! your of this? computer terminal keyboard. To it Screen Controls: By pressing edge bQttom the escape key of your terminal: Begín Clear Next fíelds [ESC] you elicit the following Previous End Fínd Save record jump screen Quít screen Trace display Remove ?[Hdíp) at the record is highlighted. By pressing your [SPACE] bar or {RIGHT highlight willThemove right, to the next option available indicates the option you wish through the displayed rnenu. híghlight ARROW] SPACE] [LEFT The word Begín ARROW] key, the to choose. highlight press your Pressing the [BACK the left. When you key and the choice back to [RETURN] key will highlighted the option will be activated. or have move the you want, key Another way to activate a screen control is to press the character example, each For by option. indicated the upper case character beginning Throughout this manual press [R] to select the "Remove record" function. brackets will be used to indicate that ve are referring to a specific key on your keyboard. Pressing The [ESC] SENSIBLE will always SOLUTIONtm redisplay your control options menu. Tutorial This allows 1.3 ¡'rcms [ÉSCi [B] L-() f bcic.ji the incl nninq record ---- - l Name : Addrcss: (Í,asL nanio [I)()E, ,J()llÑ 111 AVENUE jNEIM Not:.cs: CI'/M 'I'llE , AMERICAS c! InyÍ St-ate Zip j10oo1 i 07/04/tS3 ent_ercd I3[)S;lN!':SS S()I'TW/\1QE I CITY YORK Rat lrít-crcmt-: ()1" ! 1()1 Sljl'l'F) City: f irst, plcasc) SYS'L'EMS ÍlOIjSE j l m» 'i'lic : ;|':N!;ll)Í,l': s:()t.tj'!'l()N Ílíl ""' " . " + '!'ut-uriaj } . cj a to make a selection by either entering a single character to activate and pressing moving selection appropriate the the highlight to function, or example, [RETURN]. For the option to "Clear fields" may be selected by that [ESC] (which calls up the menu and indicates to the computer pressing [C] key the for and (the pressing make then selection), a you are ready to C hicrhlight the Or, the to move may you keyboard.) on your letter "Clear fields" and press [RETURN]. anpropriate selection, you does not work usually marked [CTRL], like the other keys on When doesn't. produce a character you terminal. press it, your computer but Instead, acts rather like the [SHIFT] key, code on your display screen. changes to a special instead of changing the letter to upper-case recognizes as a signal to do sorne particular operation. the computer that We In the future, any time you abbreviate the code by simply writing ["D]. [CTRL] key áown while you manual, ["D] written in thi'" hold the press see send a command would example, [D] to the action the key. In this your system to delete a space or character from a field. The control key, it it it it By recognized by the system. screen controls are 20 different 12 Two made [ESC], these of available to you. menu options are pressing [ESC] assistance screens. [?] are program ' [ESC] [Tj AND options, These involve the there are 7 commands for editing fields. Additionally, keys and the [CTRL] key. The remaining screen controls use of the [ARROW] used transferring in screens. are There using the control keys, we're goíng to look at. the mailing Then we will with your SENSIBLE SOLUTION diskette. supplied file another, update of the entries from the mailing list data file, few new entries. add and a third, Now, list data remove correct one a Yoür cursor is We'll begin by looking for the first name in the listK by name. be to NAME; Press [ESC] searching the so located at we'll list then press [B] (find BEGINníng record). display the screen controls menu, The computer will respond by finding Doe, john and displaying his record, as you see on the opposite page. The entry for JOHNSON, RICHARD replaces (fínd NEXT record). again and again, and the computer Press {N] (fínd NEXT record) and SMYTHE, WINSTON. RICHARD, SMIITH, ROBERT, SMITH, Finally, steps through have exhausted when end you keys" of reached "Search the computer reports the entries in the mailing list. Now DOE, press In) JOHN. printed an error message on your screen, the controls the computer a menu to the pressing [ESC] Noiñnally, no longer displayed. [ESC] following display, you message an However, you error press screen. ('I'he "Trace" Lists the specific program activate the Trace function. Because menu is will The SENSIBLE if SOLUTIONtR1 calls Tutorial 1.5 Usi..ng [F] the Iesc] Find record keys -- 4 Address: C first, (Last name RICHARD SMITH, 8Tll AND MARKET SUITE 212 [SAN FRANCISCO f Name: íty: Date IBM lnt-ercst: Notcs please) ] State i IcaÍ zip [78992 l mm/dd/yy entered PC ************************* : + -f . i (]csicjndtQ(í 'í'ht-' !;L': NS}í3T,F: as brackets i-ndi cates that thc "key f lei-d." In the abovc uxamplc", "Name" field whii.c the field "interest-" has not. sm: rcmrickid ndow as a a kcy -- /\ f cId becn dcsignatcd NOTE W.l :;()j",í!'f'Í()N "í"*%*"&¥&?. t-m by Tutorial ficld has I .() has bcen tirne of error.) press line that the computer was executing at the Too much work? Following again and the controls inenu will appear. passing through the "Trace" function by you can eliminate the error message, [RETURN] key redisplay the menu. any pressing to or command [ESC] on remember, your as long as the screen control ínenu is diplayed by pressing the wish, you option control any exercise you may terminal keyboard key representing the upper case character lodged in each option or, by highlighting the option of your choice (using the [BACK SPACE] key or [RETURN]. [SPACE BAR]) and pressing just (p] (fínd PREVIOUS record) repeatedly and you can scan the entries in Search reached beginníng of keys. reverse alphabetical orderuntil youhave and jE| (fínd ENDíng record) will Similarly, [B] (fínd BEGINníng record) and in the entries display the first last list. Press the [C] (CLEAR fíelds) name. First,The press we'll look for a particular computer window. "name" indicates that the blank the out to field how showing window by many you empty asterisks with field isbe filling it the had name the cleared out we field, entered. not can characters If computer would have used the name currently displayed as a field index key and we'd never see a different record. Now key As you may have guessed by now, kevboard keys and there referred to as "key fields". Let's some patience on your part. and you'll begin to see the there are sometimes hardware keys", "indexing are software Learning all these new terms will require example through the MAILLIST continue between relationship files, records, fields, and key fields. (FIND [F] Instead, press the [ESC] but don't press [RETURN)! The and Smith's record. Richard display record) the computer 'will keys, the indexing key value you typed search finds the first record that matches in and displays that information on the screen. Type SMITH [ESC] [F] the entire field, the value you suppLy does not the which key from to as a record) start partía1 uses the value of the key. any data left: over also becomes search. part InciaentalIy, but had typed "SMITH" over the top you had not cleared the nante field, If begun to search with "SMITHJOHN". have JOHN", "DOE, would the computer of fill When (FIND Now, name save menu ROBERT" (did you clear the corrie up with "SM"LI'i'!.t, find "SM". You should We're double-l in the name then the going correct to field first?). Press [ESC], which turns off the screen control the corrected entry. and the cursor to the fíeld window we have been searching. returns key tvui.c: [RIGHT Press the over the The first SENSIBLE ARROWÍ (Cursor Now "I". press SOLUTIONtín Ríght) [^D] (Delete e, to position CharacterL the The Tutorial cursor "I" first 1.7 Execution and c>ff. Begín Control Eñd F'ind jump fíelds CLear' Menu Keys Next screen The '--" [KSCAPEJ Previous Qüit screen key tut ns the control Save record 'Él ace Remove inenu cm recc).L"d ?(Hélp) With the menu on, move the highlight to the selection of ycmr choice and press |RE7'URNj or, enter the single capitalized charact: er lodged 1r the option you prefer. [BJ Begin Finds first: record (lowest. value) the field in which cursor appears. [E] End Fl-rids last. record (highest- 'value) in the t"i'le f irld in which cursor Fínd [F] ÍN'Í Finds file Lii í: núxrecürd encountered." [pj Prevíous [S] Save fR] Remove fcl Ci-ear fj jump screen Display nex"í 'm-teen. {q} Quit sc: reen Disµ.l-ay jn: ev'i CuiS ITJ Trace Invokes the [?] (Help) Display } record record f.iel&s {2ont-airí'5 U-Je.. the disp"Liyed screen record hel!: cui sc.: : Lates" Trap Tbe ¿-3ENsr[3ÍÁb: SÚT.Tji'íON t-tn "eííd f.t"UIA of' of di.sk the file. disk tile. zipaces. ! ééíi$ de!")\íg':tj.rLg opt i.i:íñ. recm "find Next" and "find previous" rüust. be Beginning," or "find Ending" in the saiue field. "Re command. NOTE to ssc"cé.t2i'i :' value. i .j.j.e "be9'i.nrg ing" screen rec'ürd in the program '.{ eíl."oí po±sibi.e error': Era.ses zñ: on field Possible t: he ai! fields based "end of íiound)" Stores Clears on field value, that t: he the di splayed a key field", Finds previous record. file encountered." displayed í'>ased appears. Finds the record, which most cLosely matches Possible "not erro"rs: encounter ed ( reccit"ct RCñÁ Next: file the. 1ñ pLec¿¿íded Al '!. L)',' a. s·: earches Ttrt..c.>í" "Find", "t"íríd ti"!.gger the j a! ! .¿"$ disappear and the rest will deleted character space. We've corrected of the the entry on-screen, name but slides to the we haven't left t.o fill in the stored the correction on [ESC] Press Is) (SAVE screen record) and the computer disk-file yet. SAVE thís record? ask (Y/N). This gives you chance to check your will entry and change the [N] key (No) to not save the Press necessary. if reposition at the name field. record; the cursorit will our a [ESC] [S] (SAVE screen record) again and this time answer [y] (yes). The computer the new store place of the old. information in will ROBERT" and the new "SMITH, "SMIITH" index key has disappeared, key follows "SMITH, RICHARD" in the index. The SENSIBLE SOLUTION always keeps the indexes in alphabetical order even when severaZ keys are changed at Press The once. Information This mailing indexed by up to nine different keys for each data file. is indexed by four keys: name, city, state, and zipcode. He indicate list a that field is a key by putting brackets around the field window space defined for on the terminal display (e.g., [key field]). Let's scan through the entries by zipcode. may be it ARROW] [DOWN and (Next. Fíeld) keys are used (Prevíous Fíeld) [UP ARROW) windows Move through the field to move from field window to field window. key until your cursor is positioned using the (Next Field) [DOWN ARROW] at Now The the zípcode field. record). press [ESC] {B] (fínd BEGINníng computer displays the lowest zipcode on file along with the rest of the Scanning information NEXT the entry. the address with (fínd record) in [ESC] [N] show Now look the mailing list in zipcode orderu at the will names; they are no longer in alphabetical order. The The SENSIBLE SOLUTION knows whether your cursor is positioned in a key field or not. In a field that is not an indexing key, the execution control menu selections presented when you press ESC] do not include the Begín, End, and Fínd options. There is one other feature concerning record searches that we should talk [ESC] Once you have done a record search tr"irig about. [F] in a key field window, the system program considers that particular key field to be "set" system field until you move will use that key field as the Ciesignated -- the the another search with [ESC] [F]. cursor to another key field and coríduct Actually, this feature works out rather nicely because once you move the page through the cursor out of the "set" key field window, you can You don't have to move the records by simply using [ESC] [p] or [ESC] [N]. cursor back to the "set" key field just to look at t: he next ([ESC] [N]) or previous ([ESC] [p]) records. Experiment with these features on your system still The SENSIBLE SOL[jTIONtm Tutorial 1.9 To the add a new record, windows on fíeld first press the screen -- {ESC] {CJ (CLE1\'R fields) to clear ali of + (Last Name Address City : : : name Date Interest: Notes : first, please) I******************************] ****************************** ****************************** I********************] State I**] entered zip I*********) mm/dd/yy ************************* ************************* + The SENS3LBLE SC)í,[jTI(.)N tin 1'utoti.á,l 1. 1(1 you'll appreciate and how it easy is to locate the exact record you want. the address lines, dates, and notes, are not keys. In this you system you may decide to modify this mailing your own use, later for list The makes SENSIBLE SOLUTION keys. want to change or add indexing rebuilds your data files easy to change fields and keys and automatically to accommodate the changes. It's all explained in the Reference Manual under Menu Selections 8) Restructure a Data File. list If it viewing or modifying information already in the list. keys. record. First, press the (CLEAR fields) [ESC] {C] where leave the labels on-screen but fills the field computer will fielddenote .is empty the cursor is with asterisks to that of information. So Now The far, we've let's add a been new it with the cursor located at the name field, type in the name of one of your customers (last name first, so the indexing key can fi.nd the surname). If jumps the name fills the entire field, the cursor automatically to the next field window "Address"; otherwise, press [RETURN] to tell the computer that the field has been completely entered. Continue a down the screen entering by (leave blank) field (Prevíous Fíeld) field. itfUp You can skip address, cit.y, state, etc.. using the (Next Fidld) [DOWN ARROW] key. will let you go back to correct a previous ARROW] ["D] and with the (DELETE CHARACTER) field (INSERT CHARACTER) [^1) bumps everything in under the field right to make room for a new character Characters at the right end of the field fall off and are lost. cursor. ["U] will clear the field window where the cursor Pressing is positioned. clears only the entry in that field window, other fields on the screen It You may edit the contents of a (INSERT CHARACTER) [^1] keys. one space the to the are not disturbed. You the record haven't filled in all the fields. if andyou the computer will ask you to confirm just SAVE Take (Y/N). a record? look the at entry. thís If it's right, press [y}. The computer save the new record and insert all the indexíng keys in will theír proper order. can press save [ESC] [S] (SAVE To delete (REMOVE even record) an existing record, record) [ESC] Ir). record? (Y/N)c Once a computer confirmation insures against occasional typing error. how We know The SENSIBLE to scan bring the entry up on the screen and press The computer asks you to confirm REMOVE has erased data, gone forever; so due accidental loss of information to an the information, SOLUTIONtln this this it's ejilit it, add new data, and Tutorial delete old 1.11 Cursor These you to [UP —— controls operate when the execution control menu is off. They allow move your cursor from field to field, and to edit your data entry. ARROW] [DOWN Controls Screen ARROW] Move cursor to topmost field) = Move = lowest [RIGHT {LEFT ARROW] ARROW] Move = cursor field) cursor the field is Move cursor field is ["D] = ["I] = ["U] = The to beginningof previous beginning of next field. (Locks at field. (Locks position right within field. Value of one unchanged. one position unchanged. left within field. Value of the Deletes the character "under the cursor". characters in field field shift left to blank appears at right end of field. Remaining fíll, and a Remaining Inserts a blank "under the cursor". in field shift right. Rightmost character in field is lost. characters SENSIBLE at Clears SOLUTION tm the displayed value from the field window. Tutorial 1.12 The work the same way keys in every SENSIBLE control data. (QUIT screen) There is one last control to learn, application. Press these keys to finish working on the current screen and you in this returned to the previous screen used by the system, SENSIBLE SOLUTION main SOLUTION {ESC] [q]· be The case, will menu. contt"ols! Let's say that you just put some last point concerning screen You can not simply and now time. data entry quitting into its iswhy:imperative that program turn off your computer in the middle of Here's It how and the from system you make an orderly exit you do not follow an ORDERLY exit sequence prior to turníng If off your computer system, you risk seriously corrupting the íntegrity of your data. Every time that ycm choose to stop executíng a SENSIBLE SOLUTION program (data entry and,/or data [q] to exit to the previous screen. retrieval) you must use [ESC] have Repeat exited all the way back to the thís process untíl youOnce the operating system prompt ís operaitíng system prompt. dísp1ayed on your screen, you may then turn off your computer One longhours a system. In a minute, we're going to create a new SENSIBLE SOLUTION application SOLUTION. SENSIBLE scratch to show you how programming is done in the We've slipped confusion. a up clear quietly let's little and first, t.o explain what tirne "computerese" into the discussion, it's We're talking about fijes, records and fíelds. it from But some weans. deal in l's and O's, bínary dígíts people know that computers (abbreviated as bíts). Microcomputers handle data in chunks of eight bits a quantity, Each byte can represent an arithmetic at a time -- bytes. how The computer determines program of some data. character, other type or each byte will be interpreted. Most to actual nuts and bolts of binary data representation are "invisible" Programmers usually think in terms of numbers and programmer. the computer being manipulated directly by the program characters just as you consider "$5,000.00" to be a money amount not a string of alphanumeric characters. and as when you look- at' it as "how much?" you see as an amount Actually, column Your program when tiiqures. of a characters you're t-yping into lets you switch between the two int.erpretations when appropriate. The it it Consider a data. into groups of related Information is usually gathereá The and has name: a the fí1e a folder is folder full of invoices. file Each label on the folder. Inside is a sheaf of pages, one per transaction. each page consists of a page Finally, is a record of the t.ransaction. date, number customer address, invoice number, name, of different items: it The SENSIBLE SOLUTIONtIn Tutorial 1.13 Files, records, fields, and key fields -- FILE \ / \/ MAILLIST fields < KEY KEY Name Address 1 RECORD 2 RECORD 3 RECORD 4 RECORD 5 etc. The SENSIBLE City 2 KEY KEY State zip Notes Interest +"———————+"———"+——————+—""—+"————————+——————— ———_"+ RECORD Address 1 > ———_—+———————"—+"_————————+———"_+_———+"———+——————_——+—————— l l l l l l I I ——_"+——+_——— —+——— SOLUTION I tm I l i —— ———"+———— Tutorial 1.14 part number, elementary quantity, back order, and so on. In computer lingo, these "particles" of data are called fields. As you continue, you're going to be using fields a lot. They are the basic Take some time to look buílding blocks of data file management. at the and on page the opposite picture you will see what we mean by fíles, records, fíe1ds, and key fíeíds. The SENSIBLE SOLUTIONtiñ Tutorial 1.15 After The typing SENSIBLE SENSIBLE SOLUTION [RETURN] -- Version 2.0 Language MAIN I) 2) 3) 4) 5) 6) 7) 8) 9) 10) ## The SENSIBLE SOLUTION tin MENU Execute A SENSIBLE SOLUTION Data Dictionary Maintenance Screen Painting Code Editor Source Initialize A Compile Source Rekey A Data program File mta Code File Data File Restructure A Program Generator Inquire Enter Your Choice From Options Above Tutorial 2.0 Usíng the LESSON Program 2 Generator that you're familiar with data entry and update in the SENSIBLE This we're going to create anapplication system from scratch. demonstrate more capabilities of the SENSIBLE SOLUTION, particularly will desigru the power and ease of ímplementing an applications Now SOLUTION, display should be showing the SENSIBLE SOLUTION main menu. in the mailing list, press [ESC] [q] now andwait for the you're at the operating system level, be sure that your SENSIBLE copy is in the drive. You did make a copy of the distribution Good! Now type didn't you? If Your still you're If menu. SOLUTION diskette, A>SENSIBLE and press screen. [RETURN}. The SOLUTION SENSIBLE We'll begin by"painting" a screen entry and update. After that, the generate a simple program from it. Select "Main The 3) Screen display will Menu followíng Enter the type of format appear you on Now you will SENSIBLE will appear on by pressing [3] and then your screen: ++ wísh to load |Screen format| Reporter format +———"+ [SPACE BAR) SOLUTION name and tm of the screen format: type your {RETURN]. see: Enter the Press your menu a terminal-display layout for data --SENSIBLE SOLUTION will automatically [RETURN]. Press The Painting" main ?:???7??? PHONLIST. Tutorial 2.1 put in the *'s or #'s. paint the screen headings on this page. Doñ't include the brackets after the field label "Name: " -- they will remind that "'name" is a key field. Phone Name Home Work : [*************************] ### Phone ******** Ext ### Phone ******** Ext 4,Km% &,,,m, ,, : ### : ### List z7¿!='3r'a%: % , Do you '"k , The SENSIBLE SOLUTION tm Tutorial 2 .2 The will create all data and program files on the same resides on. You can, however, specify a different disk drive than the one you're on. you had typed B: PHONLIST all files would be created on drive B. You'll find more information about file names in the operating system User's Guide that came with your computer. SENSIBLE disk SOLUTION drive that it If The SENSIBLE SOLUTION Screen Painter The ".SCC" PHONLIST.SCC and indicates extentíon the type of will be creating a data file from this portion of the file-name is called the file -- in this case, a screen file. entry: To continue, now you wíll see the following New {RETURN] Press and @: your screen PHONLIST.SCC question Fí1e? |jtes| your screen: No will display fíle on status a col=OO1 opened line: row=O1 we want to lay out the "picture frame" for our screen First, -- the marks and labels we want the what is to be entered for screen to show indicating each fíeld. After this is done, we can define the fields themselves, which you can think of as "windows" through which data values will be displayed. During"screen painting", you are tellingthe computer how to display and manipulate begin, positions. To UP) [UP (CURSOR on the values. simply type what you want to see You'll find the cursor-positioning ARROW], RIGHT) (CURSOR DOWN) [RIGHT ARROW]. [DOWN These ARROW], keys let the display at the desired (CURSOR control keys useful: on (CURSOR LEFT) [LEFT ARROW] and you move your cursor anywhere Go ahead already displayed. display without disturbing information shown the as on the facing headings screen" and"paint the *'s or #'s. (INSERT page. Don't put ín {"I] puts a space "under the cursor" and bumps everything at the cursor line to the right one position; the character (DELETE of the screen falls off the edge and disappears. right character) ["d] works just the opposite; the character under the cursor disappears, the line moves to the left, and a space appears at the right edge of the screen. else The CHARACTER) on the edge SENSIBLE SOLUTION tm Tutorial 2.3 paint: the screen headings on this page. Don't put in the include the brackets after the fíeld label "Name: " -- they that "name" is a key field. . ,, ..,,.,. . .,,, |||Kg,ék€'Ñ^ Phone Name : : ### Phone : ### ·7 · .P List ******** ******** Ext ### Ext ### " The will remind I*************************] Home Phone Work *'s or #'s. SENSIBLE SOLUTION tm . ,, ""'" ' Tutorial ,< 2 .4 Do you Similarly, (ADD LINE) [ESC] [L] and (DELETE LINE) [ESC] [D] insert and horizontal line the cursor is on and bump all lines below down line or up to compensate. Incidentally, the SENSIBLE SOLUTION refuse to delete a line on which a field has been placed. You must the field first, then delete the line. delete the entire that will remove To create a box drawing on the screen, place the cursor at the desired position for the upper left corner and press [ESC] Now move the [B] (BOX). cursor to the desired position for the lower right corner of the box and A box press the [SPACE BAR]. will appear on your screen. To create Toa Line on horízontal your screen, simply create a box with no height. create a vertícal Line on your screen, simply create a box with no width. [ESC] [U] (UNBOX) Place the cursor press [ESC] [U]. is used to remove box drawings from the screen format. at the top, left corner of the box you wish to remove and becomes With a little practice a snap to quickly generate very impressive and move labels back and forth screens they centered and neatly are framed. Play with these editing control until keys a while to get the feel of for designinga You should end up with a display that looks screen. like the screen shown on the facing page. Don't forget to leave roorn for the it field windows! just you learned in executing a SENSIBLE SOLUTION program, there is a to manipulate the display. Move your cursor to the right of the label "Name: ". Place at the starting point for your field window. as menu it Now press [ESC]. +--—-———+ jAdd fíd The Remove +------—+ f1d Quít When Screen Move Del lne Painting f1d add menu Show Lne f1d Box will be Í?íe1d Unbox displayed: chg file Chg Hard copy rEdísp scrn the menu appears, your cursor will move up to position itself over "Add Since we want to add a field, this is the menu function to select. Simply press [RETURN] and the display will request: field". Enter the The SENSIBLE name SOLUTION tm of the fíe1d **************** Tutorial 2.5 Screen Painting Cursor Control Keys -- These controls let you move your cursor already displayed. disturbing information [UP ARROW] ARROW] {DOWN [RIGHT [^D] = ARROW) ARROW] [LEFT = = = = Cursor up Cursor down Cursor right Cursor left anywhere on the screen Deletes the character "under the cursor". characters in field shift left to appears at right end of field. fill, ["I] The = Inserts characters field ís SENSIBLE SOLUTION tin without Remaining a blank and Remaining blank "under the cursor". in field shift right. Rightmost character in lost. a Tutorial 2.6 in Type message: PHON.NAME The The see As and press fíeld entered was [RETURN]. not found. On Do you the screen you wísh to create will see the ít? y default Yes is activated when your press [RETURN]. answer Now you will of specifications use in defining the field you are creating. to list you progress down the list, you wíll be prompted to answer questions about each of the specifications which apply to the field as you define a Here it. we go! Phon.Name Fíe1d name: Fí1e name: Fíe1d descríptíon: Fíeld type: (A,N,D,O,R) Size: Number of decimal places: Offset: Key: Entry Upper (Y/N) mask: case entry only: (Y/N) Carríage return required: (Y/N) PHON.NAME will display as the default entry for "Field name: ". Every Even name. fíeld must have its ownunique you be duplicated. The computer another data file, the field name cannot searches the Data Dictionary to see already knows the name. does, the field is displayed as previously defined and the rest of the questions are skipped. This insures that all programs wíll handle data consistently. SENSIBLE SOLUTION if If it use if it Field names can be up to 15 characters long and may contain almost any character except for [ ] ( ) < > + — & * and /. These characters are used in calc expressions, which we'll be talking about later. This may come as a shock you're used to BASIC-style field names that must start wíth a letter and contain only letters and numbers. "1000.00", For example, "MEMORY\1", and"FERD!IS@" SENSIBLE SOLUTION names. are all valid field if This gives you complete freedom to create names that are understandable to Obviously, things can get out of hand you. you don't use a We recommend you choose word names like"CUST.PYMT.RCVD" or discretion! "CUS.RCVBLSO1" to help you remember what the data represents and which file it's stored in. if The SENSIBLE SOLUTION tin little Tutorial 2.7 Screen Painting The [ESCAPE] Add fíd jump key turns the Remove Quít Del Ine fld Add [R] Remove [S] Show f1d IfÍ Fíe1d chg menu -- on f1d and off. Fíe1d Lne the highlight enter the single move Place fld Keys Show add fld With the menu on, press {RETURN] or, optíon you prefer. [A] Control Menu Box chg Unbox fííe Chg Hard copy rEdísp scrn selection of your choice and capitalized character lodged in the to the field at cursor location. field at cursor locaticm. Gives defined field narne, file, size, location on screen, and whether field is a key. Allows redefinition of any element of field Remove specificatíons. (CI fí1e Chg Allows [H] Hard copy [jj jump Send a format description to a disk file or to the printer. Will shift127your display to the right or left so that you mayview columns of a reporter format with your 80 column CRT. [DJ Del Ine The move redefinítion of file. line andbelow the cursor is deleted. a up All lines below blank Line is created at the bottom of the screen. [L] add blank líne is inserted below the cursor. All lines below move down and the last line on the screen is lost. Lne A ends [q] Quit This [BJ Box Create a box [U] Unbox Remove box [EJ rEdísp The SENSIBLE scrn an editing drawing session. on the screen. drawings from the screen format. redraws any boxes on the screen which may have altered or disarranged due to you inserting or deleting spaces. Correctly been SOLUTION tut Tutoríal 2.8 you find you have mistyped If field narne at this time. Press field the name, [RETURN] you can re-enter down the to continue the correct list. Right now, we Enter Fíle Name Every field must exist in a data file. SENSIBLE SOLUTION haven't told the -about any data fi1e(s) for this screen. Type PHONLIST (you don't have to press [RETURN] the computer knows that PHONLIST ís a full-length B-character file name all by itself). Later, when we are defining more fields, the computer will offer PHONLIST as a default file name. will Now you This fí1e Press see: does not exist. [RETURN] and the data Do you want to create file will be ít? y created. Field descriptíon: -- You may use this 30 character long space to enter a description Enter whatever or reminder of what purpose your field serves. remark or description you wish. This has no effect while executing Your description will appear in the Data Dictíonary. Press programs. [RETURN]. Enter the F: íeld type: (A,N,D,O,R) -- Data fields may be: letters, digits or punctuation digíts, decimal point and minus sign only automatícally tested on entry for validity. add days each Alphanumeric type: Numeric Date type: type: and Overlay type: Record number Alphanumeric want Enter field. The the Type SENSIBLE can most You dates from can other, be common so so press number of character press [RETURN]. SOLUTION subtract have a name" tobe alphanumeric and date, dates. a defined as one--for instance if Name" and a for for "first field field can an define overlay which you field contains "first and last name" known as "name." data this field contains the record number for each record saved. You may search for records by using this field. type: Síze--The 25 on fields "last two you fields are the PHON.NAME key to tm A as the default. is offered [RETURN] We [A] or positions in the "window" Tutorial for this 2.9 [ESC] [AJ f1d, adding the Add field PHON.NAME -- n " 4 Field name: PHON.NAME File name: PHONLIST Field description: Field type: (A,N,D,O,R) A Size: 025 Number of decimal places: Offset: (Y/N) Key: y Entry mask: N (Y/N) Upper case entry only: Carriage return required: (Y/N) Save the above record -Wié,1.,1 W4i,m I 5 Note: to any current The ? N (Y/N) Y D Al ¥ wmá K and [DOWN ARROW} to position your cursor next specification you wish to alter. press ["U) to clear the field you desire. definition and re-enter the specification You can SENSIBLE use [UP SOLUTION ARROW] tm Tutorial 2.10 Use you may abort the field definition. At any point during its creation, your [UP ARROW] key to position the cursor in the "Fíeld name: " field window at the top of the list of specifications. Press [ESC] [q] and see the message. The field entered [N] (no). was no be was not found. the screen Do you wish to create ít? Y find that the cursor is returned to will last located before you chose to add a field. If you choose to it escape, information will have been created, but the file name field created. entered will This escape feature will allow you to stop an made Answer where entry if On you've a you mistake. noü. field respond Let's go ahead and create this Enter the field name: PHON.NAME Now enter the followino: Fiñe name: Field description: Field type: Size: PHONLIST A 25 will find Now you (Y/N)o and Press [ESC] [A] (Add field). "yes" you do want to create it. press press [RETURN] [RETURN] press [RETURN] that the cursor skips áown the list of definitions to Key: the question Because you defined the field PHON.NAME as "alphanumeric," "number of decímal places?" does not apply. If you had defined your field as numeric you could specify as many as four places after the decimal point. only enter information -- overlay field. will You a type O into Offset when you are defining a field as (Y/N) as many as nine different File records ínay be índex—keyedby -- don't down by indexing on unnecessary slow the to computer want fields. keys. In this case, the name ís a key we want touse in searching for data [RETURN). records so press -- no need to press ENTRY MASK: an entry mask is the format of a field that is stored in the Data (See the section on Masking in the Reference Manual, Data Dictionary.-Because we do not want to define a mask for this field Dictionary.) press [RETURN]. Key You Y , (Y/N) answer yes, all data entry to this -- you N. Answer automatically converted to upper case characters. Y By you (Y/N) specifying answering that requíred: are return -- will be required to press [RETURN) user who enters data to this field Upper case field will Carríage any The SENSIBLE entry only: If be SOLUTION tm Tutorial 2.11 Use the phone" arrow keys to area code -- move the cursor to the Phone Home t*************************] Phone: "I Ext Work Phone: Name: The SENSIBLE first space provided for List Ext SOLUTION tin Tutorial 2.12 "home after entry to get tc} the next input fieIcL answer N, the If vou you corrLi,)]-etely automat.i.caily jump the to next input field will characters. not you this field with is will need to filled, If pres" [RETURN] t-o get- to the next input field. Fm our purposes, answer N. each system fill If you find. that you have this field definition, you made an may use er.ror at sorne your Iup ARROW] cursor to the erront"ons ent-ry and make to clear the current definition, then move your { Press "U] you desire. At if it this point you will be in the creation of point and fDowN ARROW] keys to any necessary corrections. L"e-ent<': z" the specif ication asked: Save the above record? (YjN) Y [y] or [RETURNJ . The SENSIBLE SOLUTION now '" :í- t-- exactly how you want this file represented and pLaces 25 *'S next to the "Na.tne: " label on your display to indicate that the screen will accept up to 25 characters in that The "window". return to field is added to your screen and the cursor will You have just the first character of the field window. Corígratulations! added your first field. Now let's add the rest of the fields. Press Using the arrow keys, move the cursor t.o the f: i í"st spact" provided f or your "home phone" [ESC} Press (area code). to call up the Screen Painting menu. We add want to [RETURN] Following field, and the the procedure described LABEL Home a Add f.ield option above, QUESTION Phone: Field ANSWER PHON.ARE7.\HOME PHONIJI ST nañít2: N so press (area code) value-default [RETURN] N mask: '\,{ 'tkiU,) Y it Because is not necessary to enter want to require "Upper case entry questions were omitted from the above ARROWJ accepting the default- answers. SOLUTION NOTES C) : Save? SENSIBLE information: pres s 5 Key: Entry et the followino ent File: Field type: Size: Number of decimal places The is híghlighted, . tin a "Field Description," and we" do not or "Carriaqe return, these [RETURN] [DOWN only" list. Simply press or 'í'utorial 2. 13 SOLUTLON SENSIBLE File extensions * . SCC * . SRR * . RUN * . U) * .IjS'JJ * .MS * . KS Op(?rating * * The -- and with created used SENSIBLE or Rer)orter SOLUTION: files F'ormat Code Source Command Inquire Format Screcn/lQeporter Format or Source Master Data Key the .MS Screen Coinmand Compiled f lies files files file System EXE SENSIBLE file extensions exccutible executible Compilcd Compiled SOLUTION tm Code f ilcs 1\SCII file) file (for .COM . Fi-ie Extensions used with program program SENSTBLE - CP/M, MS DOS, SOLUTION: MP/M PC DOS Tutorial 2 .14 Did you notice that the entry mask that you defired for this field was not immediately reproduced on your screen. The 5 # signs indicate the number of 'í'he parentheses spaces reserved for this field. will show up after we comrñle t.he program. Nofj position your cursor [RETURN] to add the home Field Phone Heme the home area after number field. PHON Nar.1e: File: phone Field Field type: Size: Number of decimal places: N Key: Save N Field Phone Work 3 Phone" label and and [RETURN) to PHCíN name: File: Entry [ESC] í'dork your cursor Field File: Field The SENSIBLE mask (area code) press [RETURN] A HEAWORK N .5 : O \..(#±:e['.,) : Y : [RETURN]. Phone the work area N Key: Position . below the directly add PHCNL!ST Field type: Size: Number of decimal places Save rxtension) press [RETURN] Y next to the "Work field. Press [Escj field. and O : code {ESC] (home EXTHOME . PF1ONL,!ST PHON name: your cursor area number) [RETURN] press f ield, then press number File: home code phone and Y your cursor after the horne phone to add a home extension field. Position (home NUMHOME {ESC] #E'n-¿i¿.!.#¢f mask: Save? Phone presq N Entry Horne . and E3 Key: [RETURN] field PHONLIST a Field type: Size: Position code phone appropriately name: to .pIa ce tj: iO PHCü.l F'HONT,j type: SOLUTIO!Ñ tm A . t: ....l NLMWCiF'K 3T k phone (work number. phone press Tutorial Press number) [RETURN] 2 . 15 After The "saving" SENSIBLE [ESC] your work, press SOLUTION I) 2) 3) 4) 5) 6) 7) 8) 9) 10) ## SENSIBLE SOLUTION to the Main Menu tin -- Version 2.0 Language MAIN The to return MENU Execute A SENSIBLE SOLUTION Program Data Dictionary Maintenance Screen Painting code Editor Source A Data File Compile Code Source Rekey A Data Restructure A Data Program Generator Initialize File File Inquire Enter Your Choice From Options Above Tutorial 2.16 . Size: 8 Key: N Entry Save Posit-ion L'ress Work [RETURN]. i"ield Phone Y appropriately to your cursor [ESC] ###-#### mask: : F'i l.e the work add PHONE name: Field type: j Z(' : Number of decimal Our work [RETURN] {ESC} press 3 pl-aces: () Y wit-h the Screen Painter is complete sc) press to accept the default "yes" to the quest.ion aCa cinsion) [RETURN] N Do you Then field. ext: press N Key: Save: job! then (work EXTWORK PHONLTST : S good and . extension phone want the t-o save in to rc't.urn to the changes? Main Yes that we havc paint-ed a screen and def ined the it: 's time to create a progrmn. Select "Main Menu see displayed: name IQJ No Menu. Now Enter the {ÉSCi within f9)ields Program the screen, Generator" and of the screen format ?:?????7?? for you to specify the disk drive first "?" followed by ": " is provided everything where your program is located. from the same is running If arid type PHONLIST. drive, just press your [SPACE BAR) t-o jurnp past The it The SENS7BLE SOLU'I'1(.")N program generator will go through five phases: -- Checking fields Data files Initializing Command -- Generating Source file -- Chccking 'l'argct. Labels -- Checking for o/Gesubs for Got —— ... and for This running it finishes Briefly, The each pha": e which commentirídicates that be returned to you tells will SENSIBLE SENSIBLE S()LU'!'LUN SOLUTION t-iii line of the the the perfL)rmL}(j is scanning. file When is it working. command program generator Main Menu. three main steps here: Tutorial data 2. file 17 Cursor -— controls operate when the execution control menu is off. They allow to move your cursor from field to field, and to edit your data entry. These you [UP Controls Screen ARROW] [DOWN ARROW] Move cursor to beginning topmost field) = = Move lowest [RIGHT [LEFT ARROW] ARROW] Move = cursor field) cursor the field is Move cursor field is ["D] = ["I] = {^U] = of previous to beginning of next (Locks at field. field. (Locks at position right within fíeld. Value of one unchanged. one position unchanged. left within field. Value of the Deletes the character "under the cursor". characters in field field shift left to blank appears at right end of field. Remaining fill, and a Remaining Inserts a blank "under the cursor". in field shift right. Rightmost character in field is lost. characters Clears the displayed value from the field window. . The SENSIBLE SOLUTION tin Tutorial 2.18 Data at i-on. creates data reading the field definitions stored in the file-'s c)ñ the disk. It: works 't.hose def initions. and then creating Data Dictionary the f lle that iuatches The source code necessary to maintain files is automat i.calZy generated by SOLUTION. SENSIBLE Compilation is the process of creating pseudo code that can run. executive progratn the SEF'SIB'LE SOLTJTION initialization, source code geríe.raticm, by file initi.alizati.on is a process by We our willMenunow I) take Execute "Main On for new SENSIBLE SOLUTION prograrri SOLUTION Program." a SENSIBLE you will see: Enter name of your screen CUl!lft-L and source ccde whic: h SENSIBLE SC)L.{jTI(jN File to .RUN be executed: ? : a I quick spin! Select ******** 7·u: YO\"l t:o sµec: Again, the fi-rst "?" fol. Lowed by ": " is provi(: ify the disk ever.yI: Ling i-s running from the sanie dri.ve where your prograrrt is located. and enter pHoNLIsgr# Your drive, just press your [SPACE BAR) to jump past PHONLIST screen will be displayed and ready for írípüt. !¿3,.i if it located at the name fiel-d winduw, type in a fri-end's name (last first, so the indexing key can Find the surname). If the name the entire field, t-he cursor autornatica LLy jumps lo the 'next field window Home Phone area code; otherwise, press [RETURN] to tell the computer that the field entry is coííiplete. With the cursor name fills Continue down the screen entering home phone, extension, work phone, and You can skíp a blank) using the (leaveLt work phone extension. field[RETURNÍ . (PREVIOIJSby FIELD) (NEXT FIELD) [DOWN ARROW] key or pressing [UP ARRDW] will let you go back to correct a previous Í .ield. t:'he coritents of CHARACTER) [^1) keys. one space to the edit the field You rítay (INSERT a the (DELETE CHARAC'L'ER) f^D] and (R.NSERT CHARACTER) Í^j: buní,ps evervthing in make foí" room a new character under the to and are eííd of the field with j right Characters at the right lost. field fall. off You can save the rec: ord rven you haven't filled in ai the fields. just if rei": [ESC] (SAVE and ornpet you vii ürd) the [S] to conf irm SAVE press 'g right, press Take RECORD? (Y/N)w lüok at. the ent-t}". [y]. The if A! keys and in their indexing insert" save the new record computer cursor. !. c: a w proper ill i á±: !á í-.fjc order. Enter several- records done? :.-· '"'l' .¡'.f Then let'sand you've acquired can edit The SENSIBLE w i-:.h the and [Qj ÍESC] create Sotirce SOLUTION t.r: i cI ¿ocIé" All skills menu options to view your records. Main t.irne Menm t:o take the ic: át-t:d s suyh i which we more t screen arid program Ed.itcír. Let's begiru use the to the It's Í'utorial 2. 19 Paínt this screen -— CUSTOMER No: [ Name: [ Account MASTER FILE ] Date ) Address: City: Outstanding State: Réceivables: jan May Feb Mar Apr SENSIBLE jun jly Aug SOLUTION tm Zip: [ ] Sales year-to-date: Sales The Started: by Month Sep Oct Nov Dec Tutorial 3.0 LESSON Creating CUSTFI.LE information is Applications 3 wíth the SOLUTION SENSIBLE a customer master record program. about one particular customer. It summarizes as before, select"Main Menu 3) Screen Painting." load want to you is a Screen format so press [RETURN). {SPACE BAR] and type CUSTFILE. just The The all the type of format press your Now question: New fí1e? I I Yes No +""""+ will appear on your display "Yes" i'" the default answer. Paint the frame as shown for the field windows! on terminal. Press (RETURN] the opposite and continue. page. Don't forget to leave room we're going to define and place the field windows, just as we've done before. Position your cursor appropriately, [ESC) and"Add" each of the fields as follows: Now QUESTION LABEL Account Date No. started Field N Key: Save: y y Field Key: Save: SENSIBLE CUS.CUSCODE CUSTFILE Field type: Size: Number of decimal places: File: The name: File: Field SOLUTION NOTES ANSWER 8 default press [RETURN] press [RETURN] C) narne: CUS.DATE CUSTFILE type: D N Y tm value-- Tutorial 3.1 While using [ESC] [A] Add f1d, the listed entries represent [DOWN ARROW]. answers obtained by pressing [RETURN] or Field name: File name: (no definition Field description: A (A,N,D,O,R) Fíeld type: Size: Number of decimal places: Offset: Key: Entry (Y/N) mask: case Save Note: to any current The You can is required) (no definition is required) the above use [UP record ARROW] ? and (Y/N) N Y [DOWN ARROW] specification you wish to alter. field definition and re-enter the specification SENSIBLE SOLUTION default N entry only: (Y/N) N Carriage return required: (Y/N) Upper the tin to position your cursor next Press ["U] to clear the you desire. Tutorial 3.2 Field Name CUS.NAME CUSTFILE name File: Address Field type: Size: A Key: Upper Save: Y case Field name: entrv only: Field type: Size: Key: Upper Save: N case Field name: entry only: A Key: Upper Save: N case Field name: entry only: press [RETURN] press [RETURN] Y Y CUS.STATE CUSTFILE A 2 N Key: Upper Save: case Field Name: entry only: Y Y CUS.ZIP CUSTFILE Field type: Size: A Key: Save: Y 9 Y name: File: SOLUTION [RETURNJ 20 File: Key: Save: SENSIBLE press Y CUS.CITY CUSTFILE Field type: Size: Number of decimal places: The [RETURN] Y Field type: Size: Field press 20 File: Receivables [RETURN] Y A Field type: Size: zip press Y CUS.ADDR CUSTFILE File: State [RETURN] 34 File: City press CUS.RECEIVE CUSTFILE N 12 2 (dollars N Y tm Tutorial 3.3 & cents) [ESC] Use @: [H) CUSTFILE.SCC (Hard copy) to obtain screen format No: Name: Address: City: Outstanding Feb Mar Apr Field name CUS.CUSCODE CUS.DATE CUS.NANE CUS.ADDR CUS.CITY CUS.STATE CUS.GlP CUS.RECEIVE CUS.SALES CUS.MONTHO1 CUS.MONTH05 CUS.MONTH09 CUS.MONTH02 CUS.MONTH06 CUS.MONTH1O CUS.MONTH03 CUS.MONTH07 CUS.MONTH11 CUS.MONTH04 CUS.MONTH08 CUS.MONTH12 The SENSIBLE Page No: Date 1########] I**********************************] ******************** State: ** ******************** Receivables: #########.## CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE tm Started: zip: year-to-date: mm/dd/yy ********* #########.## Month Sep Oct Nov Dec jly File SOLUTION by Sales May #######.## jun #######.## #######.## Aug #######.## #######.## #######.## #######.## #######.## 0001 MASTER FILE Sales jan listing like this: listing CUSTOMER Account a Size Col Row 008 8 034 020 020 002 009 012 012 010 010 010 010 010 010 010 010 010 010 010 010 016 065 016 016 016 051 062 028 064 012 037 062 012 037 062 012 037 062 012 037 062 04 04 06 07 08 08 08 #######.## #######.## #######.## #######.## Key Y N Y N N N Y 10 N 10 N 16 N 16 N 16 N 17 N 17 N 17 N 18 N 18 N 18 19 19 19 N N N N Tutorial 3.4 , Field name: File Field type: Size: Number of decimal places: Sales Key: Save . MONTHQ [RETURN] press [RETURN] 1 CUSTFILE Key: Save N 10 2 y : CUS .MON'M02 CUSTFILE name: File: Field type: Size: Number of decimal places: N 10 í' — N Y : Make entries the Mar and so on, but otherwise and two number" "O". with the for lettert press N N Key: Save ÍRETURN] 12 Field type: Size: Number of decimal places: Field press 2 CUS name: File: Feb N Y : Field jan . SALES CUSTFILE CUS letter through Dec labels called CUS.MONTHO3, CUS.MONTHO4 MONTHO1 CUS.MONTHO1. consists of and one number. Don't confuse zero five identical to not six letters This completes our field definitions for the CUSTFILE screen. If you would a printed copy of your screen as defined, press [ESC] [H] (Hard copy) like and the shown be printed on your system on the facing page listina will a examine You may the cursor also particular f ield by positioning printer. {ESC] [S] (Show at the beginning of the field window then pressing fíd). The field definition will appear at the top of the display. can change the definition of a field within Screen Paintíng by using i-f'-ícation. Pressing chg) [ESC] [E] and redefining any field (Fíeíd [ESC] but does not Ir) (Remove fld) keys will take a fi,eld off 'the screen remove the Data Dictionary. If you remove a field and use the same it from again, the existiIlC definition will be used automatically. field name You [.5fgE'·3(: The SENSIBLE SOLUTION tm Tutorial 3 .5 Executing In the the CUSTFILE program-- field, enter last name name CUSTOMER Account No: Name: Address: City: Outstanding [ Feb Mar Apr The SENSIBLE MASTER FILE 1111] Mte Receivables: State: SOLUTION by jly tm WA zip: Sales year-to-date: #########.## 12/16/84 [98107] #########.## Month May #######.## jun #######.## #######.## Aug #######.## #######.## #######.## #######.## #######.## Started: ] [MARQUARDSON, JOHN STREET 123 NORTH SEATTLE Sales jan first. Sep oct Nov Dec #######.## #######.## #######.## #######.## Tutorial 3.6 that the CUSTFILE screen computer will ask has Now Do you to want defined, been the save (ÉSCi press IQ) The . Y/N changes? Press y. The screen definition w-i.íl be saved and you will be asked once more what type of format you wish to load into the Screen painter. you had more screens to create, you would simply name another and begin to Ifpaint and define so press [ESC] At this time we are finished screen painting, it. Main Menu. to return to the let's Now our use CUSTFILE The Program "Main Menu 9) Program Generator" screen format. Generator [SPACE name 7: of the screen forínat: BAR] CUSTFILE. The When the program reappear. Now it menu will works. create a program using will pronipt Enter the Type as main and ******** program generator will report on its progress generation is complete, the SENSIBLE SOLUTION we're ready to execute the program. will give this new program a trial run; then later, connect with our sales-order and payment-entry screens* We we will' modify it to The display Select "Main Menu I) Execute A Sensible Solution Program." will Type CUSTFILE clear and ask you to Enter name of .RUN file to be executed. (you don't have to press [RETURN] ). The screen we just defined appear examine, will on the terminal display and allow you to enter, or update information in the Customer Master Fi.le. and command keys that you used with the MAILLIST and to you to aid in entering data to the proaraíns are available Please enter records for account numbers 1111, 2222, 3333, 4444, screen. and so on. Specify account number, date started, name, address, city, last name first. Use state, and zip code only. andIn the name fíeld, enter make own names up a f ew imaginary customers' addresses data, your of for customers. We'll need f ive or six customer rec: cu elS Íiot' later when we create and use the sales—order and payment-entry screensThe same PHONLIST ESC Menu Again, play with the entries keys. A few things to try: and cíet t-he feel of-" data entry and the control cursor automatically ícjves to the next- field when you -- The window of the current field. Ireturn] and a (NEXT FIELD) fill the í: A The SENSIBLE SOLUTION tin Tutot"íal 3 . 7 [DOWN Use the execution control to experiment with your menu No: Name: Address: City: [ 1111] Date State: Sales Feb Mar Apr The SENSIBLE WA by jun jly Aug SOLUTION tin zip: [98107J Month May jan jump 12/16/84 Sales year-to-date: Outstanding Receivables: Fínd Started: ] [MARQUARDSON, JOHN 123 NORTH STREET SEATTLE End Begin Clear fíe1ds program MASTER FILE CUSTOMER Account CUSTFILE Next screen Save record Previous Quít screen Trace Sep Oct Nov Dec Remove record ?(N1p) Tutorial 3.8 -- ARROW] ARROW] will moves to the next field one "window". move you you back (PREVIOUS window. [UP FIELD) (CLEARFIELD) [^U] eraseñ" the data in the field where your cursor is -- located. SCREEN) [ESC] [C] (CLEAR erases the entire entry and the the cursor in repositions first field at the top of the screen. Remember, you must clear the screen before enterinq a new record. Changingthe field values on an existing record will overwrite the old and data -- replace it with the new. ["I] (DELETE CHARACTER) ["D] and (INSERT CHARACTER) along with (CURSOR LEFT) [LEFT [RIGHT ARROW] are ARROW] and (CURSOR RIGHT) Thej,' work on both cí!d,da.t.a and new correcting typing mistakes. useful in field entries. [ESC] [ESC] [FIND], [ESC] {B] (fínd BEGINningrecord), [E] -- Searches i.n indexingan (findENDíngrecord) not is your cursor will fail {ESC] key field. [Fj begins itsifscan with all the data shown in the the data was already there before you began field, even if part of[CLEAR Remember ("U) typing. FIELD) to before searching. (fínd NEXT record) and [ESC] -- to[ESC]know[N] what the "current index-key" [ESC] {B], or [ESC) [E] [ESC) has Isl (SAVE record) and -- from anywhere on a screen, typed in. of course, exists "on the display" not been [p] is. done Ir) (find They first. PREVIOUS fail if record) need a [ESC] [F]. [ESC] (REMOVE record) both work even have not been some of the because removing a new record only and has not yet been saved disk the to if fields will will fail itfile. When you have finished Don't forg'et t.o save each individual record. [q] (QUIT), entering and examining five or six customer records press [ESC] and you ínain menu. the return to will Now that you have SENSIBLE SOLUTION, The SENSIBLE painted a screen and entered data into fields created by let's look at our program and see how we can enhance it. SOLUTION trn Tut.orial 3.9 ¢UCUSTFTLE.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 The source file listing Page No: 0001 remark trap trap mount goto SAVE.GRP goto DELT.GRP screen CUSTFILE SAVE DELETE CUS.CUSCODE CUS.DATE CUS.NAME CUS.ADDR CUS.CITY CUS.STATE CUS.ZIP CUS.RECEIVE CUS.SALES CUS.MONTHO1 CUS.MONTH05 CUS.MONTH09 CUS.MONTH02 CUS.MONTH06 CUS.MONTH1O CUS.MONTH03 CUS.MONTH07 CUS.MONTH11 CUS.MONTH04 CUS.MONTH08 CUS.MONTH12 START enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter SAVE.GRP save DELT.GRP goto delete rec goto START rec in START SENSIBLE SOLUTION tin file CUSTFILE confirm / in file CUSTFILE confirm clear buffer Tutorial 4.0 Edíting Select "Main Menu 4) LESSON 4 a SENSIBLE SOLUTION Code Source Editor." The will then display: screen + + I Program Load + command-file source The SENSIBLE The You want The computer' SOLUTION cursor will to load for Comnand I edíting Quit + Editor Source be positioned over (CUSTFILE) a program V2.OC "Load command-file so press fRETURN]. source for editíng". will ask: fíle: ?: ???????7 The first "?" followed by ": " is provided for you to specify the drive location of your .SRR file (the CUSTFILE source code file). 'In this case CUSTFILE.SRR is located on the same drive a"; the one you are presently working on, so press your [SPACE BARJ and enter the name of your source file The Source Code Editor CUSTFILE. There is no need to press [RETURN]. When you enter an eight accepts file names up to eight characters long. You character name the Editor automatically loads the specified file. [RETURN] must press file does name space only the provided not file if your characters is shorter than eight you already did in length). (if it [RETURN] If[RETURN] and be Enter name of the source fill press you're ready to The computer the file name ask: an error go. message will display the CUSTFILE will was misspelled or you are New File? displayed--press source opening Yes again screen. If file ontheyourcomputer will file code a riew No If you wished to open a new file you would respond with [y]. The computer then would give you a blank space to write source code. If you don't want (maybe the file name) respond with {N]. to open a new you misspelled and you can This will bringfile you back to "Load" try again. The SENSIBLE SOLUTIONtíü Tutorial 4.1 @: CUSTFILE.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 The source file listing Page No: 0001 remark trap trap mount goto SAVE.GRP goto DELT.GRP screen CUSTFILE SAVE DELETE START enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter SAVE.GRP save DELT.GRP goto delete rec in goto START CUS.CUSCODE CUS.DATE CUS.NAME CUS.ADDR CUS.CITY CUS.STATE CUS.ZIP CUS.RECEIVE CUS.SALES CUS.MONTHO1 CUS.MONTH05 CUS.MONTH09 CUS.MONTH02 CUS.MONTH06 CUS.MONTH1O CUS.MONTH03 CUS.MONTH07 CUS.MONTH11 CUS.MONTH04 CUS.MONTH08 CUS.MONTH12 rec in START SENSIBLE SOLUTION tm fíle CUSTFILE file CUSTFILE confirm / clear buffer confirm Tutorial 4.2 computer will locate CUSTFILE.SRR and bring into inerriory for You will notice that the computer generated source examination and editing. code file reads very much like English. it The Source Code Editor offers 15 different menu options modifying a program. The editing options are displayed on The Change @ line prevíous page Transf er block : CUSTFILE .SRR Let' s look at [q] End source Begin source Delete line Insert Iíne Read Mark page Write block block block Next Hard Copy Fínd Line Quilt delete block On Line: 0001 Tot limes: 0001 Insert of f each = menu selection: Quit the screen you are cur'ten'-íy viewinq and return to You have the the previous screen used by the 3ysteIn. option to leave the Source Code editor completely, or to leave the current file and begin edit work on a new program [p] = . selection you may scroll the source code the screen you will see the t'op line lines. to the middle of the screen, revealing the 8 lines carne before right angle bracket character it.new Aposition mark the of this line. will Using this 8 On down move that ">" [N] = Using this selection you inay scroLI- the source code up 8 On lines. the screen you will see the bottom line move to the middle of the screen, revealing the 8 lines that A right angle bracket character ">" will follow mark the it. new position of this line. [B] = This selection finds the beginning command sets the line prompt ">" at the file. in the source first line of This select-ion finds the eríííÁícf c:omniand file. -rt sets the line pr("}í[Ll;t. ">" at the in the source last li.ne of code [E] = code [I) = . It . This selection will insert a curnínand line following the command marked by the line prompt ">". The COMMANDS Note menu is displayed you select insert mode. that the insert will foj,low the line being pointed at, not precede i.t. if The for entering or like this: a menu SENSIBLE SOLUTIONtíñ Tutorial 4. 3 print[H] out like this You may obtain a [ESC] menu selection @: CUSTFILE.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 The source one by the Source using Code (Hard copy). file listing Page No: Editor 0001 remark SAVE goto SAVE.GRP DELETE goto DELT.GRP mount screen CUSTFILE enter CUS.CUSCODE enter CUS.DATE enter CUS.NAME enter CUS.ADDR enter CUS.CITY enter CUS.STATE enter CUS.ZIP enter CUS.RECEIVE enter CUS.SALES enter CUS.MONTHO1 enter CUS.MONTH05 enter CUS.MONTH09 enter CUS.MONTH02 enter CUS.MONTH06 enter CUS.MONTH1O enter CUS.MONTH03 enter CUS.MONTH07 enter CUS.MONTH11 enter CUS.MONTH04 enter CUS.MONTH08 enter CUS.MONTH12 CUSTFILE confirm save rec in goto START CUSTFILE confirm delete rec in goto START trap trap START SAVE.GRP DELT.GRP SENSIBLE file file SOLUTION tm / clear buffer Tutorial 4.4 [D] [C] = = This seLecti.on position marked allows by the you line to delete the prompt ">". line at the This selection will change the command at the line marked by the line prompt ">". The COMMANDS menu is mode. displayed you select change if [M] = Using this selection you may mark the beginning or the end of a list of command lines in your progtam. Having thus defined a block of text, you may perform file/block editing operations (e.g., deleting a block, t.ransferring a block to a new position in the L'r'jgraIn). [W] = A [R] = a [T] = Zir,es in your program is marked block of command Thí.s act.-ion to a disk file. writtenmarks. will not clear your block block of command holding file will you are editing. line marked by the this selection to transfer a marked block of command The lines to a new position within your program. transferred block will follow the line marked by the ">". After use, the block marks are deleted line prompthave and be Use would again . [K] = Use lines [H] = Use file [F] = lines which you have sent to a disk (inserted) into the program inserted block will follow the line prompt ">". be "read" The to reset in order this selection to delete from your program. selection this (.SRR). to print a marked a This selection the block block of command code allows you to search your source file for specific label, field name, or line number. The search for a line proceeds only from the position in the You can not program at which you issue t-his c'ornmand. The last criteria search backwards through a prugram that you specified is stored, allowing you to repeat your search rapidly. SENSIBLE move listing of the source a The to SOLUTIONtm Tutori.al 4 .5 Line numbers CUSTFILE.SRR # LINE 0001 0002 0003 0004 0005 0006 0007 do not display source The they only appear on hard copy COMMAND LABEL remark trap trap mount enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter enter START SOLUTION CUS.CUSCODE CUS.DATE CUS.NAME CUS.ADDR CUS.CITY CUS.STATE CUS.ZIP CUS.RECEIVE CUS.SALES CUS.MONTHO1 CUS.MONTH05 CUS.MONTH09 CUS.MONTH02 CUS.MONTH06 CUS.MONTH1O CUS.MONTH03 CUS.MONTH07 CUS.MONTH11 CUS.MONTH04 CUS.MONTH08 CUS.MONTH12 save DELT.GRP SENSIBLE goto SAVE.GRP goto DELT.GRP screen CUSTFILE SAVE DELETE rec in file CUSTFILE confirm / clear buffer goto START delete rec in file CUSTFILE confirm goto START SAVE.GRP OC)27 0028 0029 the terminal; file listing: OC)08 0009 ODIO 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 on tm Tutorial 4.6 -- When you [ESC] select Insert and appropriate keys, be displayed: Change [I] or[RETURN], [C] [ESC] then pressing triode the fol.lowino by pressing the COMMAND options will Enter Find = If Print Go Mount Save Trap Execute ! rec Delete rec Clear Lock Unlock remark buffer Each of the options (activated by pressing the bold print Capital character, Each [RETURN] is a command. or highlighting your choice and pressing command has a subset of functions. be asked each You questions about will how the of these functions. Your an=wer will determine the specifics of command is to perform during program execution. The SOLUTION SENSIBLE listino is quite different from a la-nguaqe like by BASIC, and the different, it The lime number is an you indicator to let just tell the Source Code Editor which command line you want to work on. Í.ine rnirnbers are not referenced Source Code Editor provides a status line within the program itself. The .SRR you name the the of telling file that is "opened", the line you can work with -- "On line: ####", and the total number of lines in the program lines: ####". the terminal, next to line benumbers do not display -- "Tot [H] [ESC] (Use each command On they hará out. copy line. printed will (Hará copy) such to obtain listing.) The label indicates which line will be the "tarCet" of a control transfer. and commands that transfer the control of the for instance, are For example: program source is too. Let's look at piece piece. On a GOTO GOSUB, to a specified label. trap SENSIBLE will SOLUTION one require DELETE goto DELT.GRP programs consist of collections or more parameters. of commands. Each command The source a logic within file listing is used to examinelooksthe flowa ofSENSIBLE SOLUTION You do not edit a text program. like file thatan executable and then compile Instead, program. that into text listing using the Source Code Edítor you specify the line you want to create and the editor will prompt you for the command and parameters automatically. is and important an essential difference between the SENSIBLE SOLUTION and language's BASIC or CCBOL. Because the editor prompts you the command The and necessary parameters, syntax errors can never happen. The a reference hasn't been defined. to a SENSIBLE SOLUTION executive controls details of data representation. This editor The like will SENSIBLE all reject SOLUTIONtm for firld that all Tutorial 4.7 the program using the scroll through and You can End, prevíous @: CUSTFILE.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 (1015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 The Next page, source [ARROW) keys, Find line, page. file listing page No: 0001 remark SAVE goto SAVE.GRP DELETE goto DELT.GRP mount screen CUSTFILE enter CUS.CUSCODE enter CUS.DATE enter CUS.NAME enter CUS.ADDR enter CUS.CITY enter CUS.STATE enter CUS.ZIP enter CUS.RECEIVE enter CUS.SALES enter CUS.MONTHO1 enter CUS.MONTH05 enter CUS.MONTH09 enter CUS.MONTH02 enter CUS.MONTH06 enter CUS.MONTH1O enter CUS.MONTH03 enter CUS.MONTH07 enter CUS.MONTH11 enter CUS.MONTH04 enter CUS.MONTH08 enter CUS.MONTH12 CUSTFILE confirm save rec in goto START CUSTFILE confirm delete rec in goto START trap trap START SAVE.GRP DELT.GRP SENSIBLE file file SOLUTION tm / c--=ar buffer Tutorial 4.8 Beg, SOLUTION SENSIBLE these details, letting the computer deal with make debug, so hard of the errors that to while programs eliminates leaving the freedom to design program logic in the hands of the programmer. have been suspicious of this approach Designers using traditional lanquages complex Once on the first flawlessly performs a they program until try it. back! By 90@ attempt, they never want to SENSIBLE SOLUTION programs SENSIBLE SOLUTION command 2000 long! Most specif go a number of lines containing a can appropriate parameters. Programs of the programs though, are quite short. lines is only 29 linee the automatically-generated program CUSTFILE of consist and ic be up to For instance, long. does. and examine CUSTFILE what listing step-by-step commands and parameters it this entire program labels, -- was -when we "painted" our screen using "Main Menu 3) automatically created Menu 9) and Let's go Remember, through the Screen Painting" Generator. " then generated a program using "Main Program program very easily. The [UP ARROW] through your program one line at a time willFind Line option allows The you to look for a specific in either direction. command, label, or line number. mg and End move the line prompt ">" to the very beginning or ending of the command file. You and Líne through your scroll ARROW] keys can [DOWN 2 trap SAVE CUSTFILE move you goto is a very important one in the immediately when a Trap is set up. tells the computer where to transfer control when condition or event occurs durinq the execution of the The concept of SENSIBLE SOLUTION. Instead, the command a setting particular program. SAVE.GRP up Nothing a Trap happens In thís example, whenever SENSIBLE SOLUTION senses that the program operator has pressed the (Save record) [ESC] [S] keys it. will exit from the command it's executing, usually an Enter coinman.d, and search for continues the specified line label. Once finds that labeZ, proorain execution from that point. In this case, program control is diverted to SAVE.GRP (a set of commands tna't saves the current record, clears the screen and tran'Mers control to START to allow a new record entry) . it it Line 3 trap DELETE goto DELT .GRP This command is executed whenever the (Remove by the the entered at program is terminal The SENSIBLE SOLUTIONtm record) operator. [ESC] Tutoríal [R] It 4 option transfers .9 the program using the scroll through and You can End, Prevíous @: CUSTFILE.SRR 0001 0002 0003 0004 0005 The source file [ARROW) keys, Page 0001 Find lime, page. list..ing No: remark SAVE goto SAVE.GRP DELETE goto DELT.GRP mount screen CUSTFILE CUS.CUSCODE enter enter CUS.DATE enter CUS.NAME enter CUS.ADDR enter CUS.CITY enter CUS.STATE enter CUS.ZIP enter CUS.RECEIVE enter CUS.SALES enter CUS.MONTHO1 enter CUS.MONTH05 enter CUS.MONTH09 enter CUS.MONTH02 enter CUS.MONTH06 enter CUS.MONTH1O enter CUS.MONTH03 enter CUS.MONTH07 enter CUS.MONTH11 enter CUS.MONTH04 enter CUS.MONTH08 enter CUS.MONTH12 CUSTFILE confirm save rec in goto START CUSTFILE confirm delete rec in START goto trap trap START OOC)6 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 Next page, SAVE.GRP DELT.GRP SENSIBLE file file SOLUTION tin / cLear buffer Tutorial 4.10 Beg, Líne line labeled program control to the command 4 screen CUSTFILE mount DELT.GRP. This command diSplayr the screen CUSTFILE at the terminal, clears the field windows to blanks or zeroes, and prepares the computer enter or display data. Lime 5 enter START all to CUS.CUSCODE Beginning at the label we reach START, a series of Enter commands, each allowing entry to, or editing of a particular field. Enter will display the value of the field within the active record. If there is no active record, the field with blanks or a zero. Enter will When an Enter command is executed, the flow of program control "drops through" to the next command unless a control key is used. If you (PREVIOUS [UP ARROW] SENÉIBLE FIELD) fill press command you Line 6-25 are in enter and moves you SOLUTION"exits the Enter to the preceding Enter command. FIELDNAME Allows the user to enter the necessary information as described above. Finally, there are two groups of commands that save the record and clear the screen for a new entry (Save Rec) or delete an existing record (Delete rec). be reached by triggering the Trap Notice that the "delete" group can only on Delete with an [ESC) Ir) (Remove record). Líne 26 SAVE.GRP This save rec in file CUSTFILE confírm command saves the current record to answered to the Save question. is continues with the next line. if Lime This Líne goto command 28 DELT.GRP This line. The and clears the buffer Otherwise, the program START sends SENSIBLE program control delete rec command Remove clear buffer memory Y 27 / in file to the CUSTFILE command START. confirm deletes the reccnd frorrt memory question. Otherwise, proCram control SOLUTIONtm. line labeled if falls Y is answered to the through to the next Tutorial 4.11 CUSTFILE.SRR after deleting CUSTFILE.SRR source 0001 0002 0003 0004 0005 0006 0007 0008 The file listing 12 through 25 Page -- No: 0001 remark SAVE goto SAVE.GRP DELETE goto DELT.GRP mount screen CUSTFILE enter CUS.CUSCODE enter CUS.DATE enter CUS.NAME enter CUS.ADDR enter CUS.CITY enter CUS.STATE enter CUS.ZIP CUSTFILE confirm save rec in goto START confi-rrri CUSTFILE delete rec in goto START trap trap START OCl09 0010 0011 0012 0013 0014 0015 lines SAVE.GRP DELT.GRP SENSIBLE file file SOLUTION tin / clear buffer Tutorial 4.12 Line 29 goto command This START program control sends to the command line labeled START. final comments on the program: START, SAVE.GRP and DELT.GRP are labels that the Program Generator creates automatically. For simple applications, easiest generally find create to programs directly from screens. you'll You can then edit or itcombine the resulting programs to enhance their Some operation. You need make to some modifications CUSTFILE.SRR. to through your CUSTFILE program using [UP ARROW] and scroll The Fínd line option allows you to look for a specific label, or line number. Beg and End niove the cursor to the very beginning or ending of the command file. Remember, you [DOWN ARROW] command, can keys. that we wish to change in CUSTFILE.SRR is lines 12 through create two separate programs (CUSTPYMT and CUSTORD) to gather He aná relate information to the customer master file (CUSTFILE). this don't want to be able to enter this data in the customer master file. Of course you may Therefore, delete lines CUS.RECEIVE throucsh CUS.MONTH12. delete each line, one at a time, using [D] (Delete Line), but try usingthe [M] (Mark block) and [K] (delete bIocK) function to remüve lines 12 through These 25. functions will speed up your work corr'iderably. The 25. thing first want to we it the program to report any duplicates found in the data and display a To do this we must on the screen. insert a command to check to see the data already exists. Go into the insert mode by pressing [I] and notice on the status line that now display "insert on". want message We if it There is a line of screen. This field label this *'s displayed would be Press [RETURN] 15 window command. displayed. Position .your íf Follow line duplicate prompt ">" at line key using fíe1d this procedure: of the left hand corner you wished to to enter a label options is the menu of command in the upper used and 5 and insert CUS.CUSCODE if this got-o command: START [I] for for Press IF. [D] Press Duplicate key check Type CUS.CUSCODE and press [RETURN]. Type START and press [RETURN]. [RETURN] to save the new Press line. The SENSIBLE SOLUTIONtm Tutorial 4.13 The completely modified CUSTFILE.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 The source CUSTFILE program file listing -Page No: 0001 remark SAVE goto SAVE.GRP DELETE goto DELT.GRP mount screen CUSTFILE enter CUS.CUSCODE CUS.CUSCODE duplicate key using enter CUS.DATE enter CUS.NAME enter CUS.ADDR enter CUS.CITY enter CUS.STATE enter CUS.ZIP CUSTFILE confirm clear save rec in START goto CUSTFILE confirín delete rec in goto START trap trap START field if SAVE.GRP DELT.GRP SENSIBLE file file SOLUTION tm / goto START buffer 'í'utorial 4.14 This is the only Editor menu. We coinniand wish to i.nsert we CUSTFILE.SRR, are through modifying "Yes" IQ) to quit and respond to Press so exit so [Escf Code to the Source let's return to the Main Menu. completely. changes in our program using the Source Code Editor, each change made. code was (.SRR) was updated on the disk as the source we the new commands However, unless we re—compíle our CUSTFILE.RUN have created not be executed when we run the CUSTFILE program. As made we in file will Select On "Main 6) Menu your screen [SPACE your Your screen Compile Code." Source see: Enter the Press it file, name BAR] of the fí1e to and type be compiled: 7: ******** CUSTFILE. will then display: Checkíng for target labels for goto/Gosúbs Checkíng for Screen/Reporter formats command Checkíng Wrítíng out compííed file Checkíng When the compilation is complete, The SENSIBLE SOLUTION and translates program. The compiler (.RUN which file) file it file) Líne you ??? will be returned to the Main Menu. Language Compiler reads the source code file (.SRR into a code which the computer can read to execute a translates the source code file and creates a command will always be used to execute the CUSTFILE program. and execute CUSTFILE go back program is compiled SOLUTICN" SENSIBLE Menu I) Execute a program and You CUSTFILE discover the new as the .RUN to execute. refuses to allow entry of a duplicate account number; program obstinately allow however, nor may you enter data into the monthly sales you to search an existing account number. Now it! let's that the revised Select"Main we're readv programs. The SENSIBLE to create SOL[jTIONtrrl the companion sales-order specify it will fields; for Now that will file and Tutorial payment-entry 4.15 Paint this CUSTPYMT screen -- T CUSTOMER Account No: Customer The SENSIBLE ] Date paid: Amount: Name: Outstanding Sales [ PAYMENTS ENTRY Receivables: year-to-date: SOLUTION tin Tutorial 5.0 \jc: design system. is owe" you money. 'll It how You know Lcñ-'s bcqin by a screen that LESSON 5 Payment Customer The Creating the customer payment used to record receipt to use "Main Menu creatinq the (.SCC) looks like the ono Program screen cntry payment of as the second part of on account by customers Scrcen Painti.ng" to define a screon. screen f lle name, CUSTPYMT, and paintinq shown on the' opposi te pac;c. positions cntcr thc follow incj fi.eld paraneter,c in the ru)íjropriate [ESC] (Use {Aj Add fld.) screcn. Computer Accourit no: : Amount : Field File Ficjd : Rcccivablcs: Sales: of decimal places You answer: PYMT .CUSCODE N 8 O : Y . DATE (CIJSTPYMT) PYMT D type: Kcy: N Field name: File name: Field type: Size: Nurnbcr of dccimal places PYMT Name : Name : Name : on CUSTL'YMT name: name: Key: Name : Field name: FiLe namc: Fi.cld type: Size: Number Key: ñatc paid: asks . PAYMENT (CUSTPYMT) N " : 10 2 N CU S CUS CUS . . . NAME RECEIVE SALES Notice that the SENSIBLE SOT,UTJON automatically used the already-defined types and formats for CUS.N1\ME, CUS.RECEIVE and CUS.SALES. The SENSIBLE SOLUTION tn-t who 3) Now Label our Tutorial 5. 1 t: hc Using the Source Code Editor -- Change Begín End source Line Delete Line Insert Line source Read block Mark block Previous page Next page Wríte block Hard Copy TKwisfer block delete bIocK Fínd line Quit @: CUSTPYMT.SRR On line: 0001 Tot lines: 0001 Insert off remark > The SENSIBLE SOLUTION tin Tutorial 5.2 When your SOLUTION far, So screen will we save have Screen Painting Data Dictionary. "Main Menu press [5J Type . 5) is correct, painted Editor. Now Initialize The [ESC] the screen definition. a screen Our and and file files Data File." the data a (Q), and save the screen. The [ESC] to the Main Menu. SENSIBLE using the files and fields stored definitions are field in the must be "initialized." will use defined We wil appear: Enter the file name: ******** following display CUSTPYMT. The drive location and file name will be displayed i-n the upper right hand and Two corner of the screen as the program runs. files CUSTPYMT.MS CIJSTI'YMT.KS The .MS data be used to are created at this time. fileThewill .KS store all data records entered to the fi.le CI.JSTPYMT. file will store keys which will be used by SENSIBLE SOLUTION to locate the desired record in the .MS file. When At the CUSTPYMT this time press initialized, you will again Enter the file name: ******* file hi: {ESC] v" been and return to the Main see: Menu. We are going to create a customer payment program to write and store a Our payment record of each custorner payment received. records will be keyed by the customer Each code time we write a new payment (Account No.). record, we want the prograrn to look up the master customer record by the and fetch the current same code, information for the customer to display on screen . w i-ll create the CUSTPYMT.SRR file using the Source Code Editor. Considering the changes that you had to make in CUSTFILE, you can see why is common practice to create all source code with the Editor instead of relying Screen Painting and the Program Generator. We it Select "61ain Menu 4) Source Code Editor" and load CUSTPYMT. Answer "Y" to thc question "New file?" The computer will present you with a blank working area. Between the menu and the working area is the status line. Read the Ii.ne to find that (IJCUSTPYMT.SRR is opened, we are presently on line one, total lines equal one, and insert is off. The SENSIBLE SOLUTION tm Tutorial 5 . 3 Creating the CUSTPYMT.SRR ()00 0008 0009 0010 0011 0012 0013 (l014 ()0 --- file listing AND FILES: CUSTFILE CUSTPYMT SAVE.GRP goto trap trap DELETE goto DELT.GRP mount screen CUSTPYMT enter PYMT .CUSCODE PYMT.CUSCODE related CUS.CUSCODE rec usi.ng Üíl úrror goto START enter PYMT .DATE enter PYMT .PAYMENT ) ( ) CUS = (CUS . RECEIVE - PYMT . PAYMENT . RECEIVE CUSTPYMT confirm save rec in clear butfei: CUSTFILE save rec in no confirm clear buffet: goto START CUSTPYMT confirm delete rec goto START OPEN SAVE START field find SAVE.GRP L")EL!l'.GR.P 15 The source remark remark 1 OÜ()2 OÜlj3 0004 (JO 05 0006 00 0"7 CUSTPYMT prograir, SENSIBLE file file field / / in fi.le SOLUTION t.íri Tut,orial '; .4 the insert on continue so until Turn by you pressing [I]. return to this You are now in menu and change insert mode and will a different mode. displayed in the upper the to long label prompt (10 *'s) will be ten character hand that the command you are of your screen. If you anticipate corner left branched be about to write will to from other places in your program, this the the provided enter to "target" label to which control rnay be space is We do not want a label on this line so press [RETURN]. diverted. A SOLUTION automatically opens files as they are information purpcwes, at the beginning of your source idea to note the files used by your prc'gram SENSIBLE for good [I] pres": OPEN The CUSTFILE will then ask: computer [y] or Press The FILES: line that However, fi-le it's a remark for You will be presented with a row of to enter whatever remark you wish. executing programs. Type needed. code 65 The [RETURN] CUSTPYMT AND this Save This space is provided for you remark will have no effect while *'s. new line? Yes No [RETURN] just wrote you remark OPEN appears in your FILES: CUSTFILE program AND as: CUSTPYMT next thing we want to do is to set "traps" for certain conditions (Save record and Remove record). If at any point during execution of this program the program operator presses [ESC) [S] or [ESC] {R] to save or remove a record, we want program control to jump to another portion of the program where the save and delete record commands will be executed. The Our next command line will look like this: trap SAVE let's create it. Again you will be presented with goto SAVE.GRP Now The a label [RETURN] no Press [T] for trap SOLUTION tin area. label Press SENSIBLE input Tutorial 5.5 Creating the CUSTPYMT.SRR 0001 0002 00 03 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 source -- file listing remark START - SAVE.GRP IJELT.GRP 1)() 15 The CUSTPYMT program SENSIBLE CUSTPYÉ4T AND CUSTFILE reinark OPEN FILES: trap SAVE goto SAVE.GRP trap DELETE goto DELT.GRP mount screen CUSTPYMT enter PYMT .CUSCODE find rec using field PYMT.CUSCODE related enter enter PYMT or: field error CUS.CUSCODE goto START .DATE PYMT .PAYMENT ) CUS = ( CUS . RECEIVE - ( PYMT .PAYMEN'Í' ) , . RECEIVE CUSTPYMT confirm save rec in clear bufEer CUSTFILE save rec in clear buffer no confirm goto START delete rec goto START SOLUTION tin file file in file / CTJSTPYMT / confirm Tutotial 5 .() Press [S] for Save Press [g] for Goto Type [RETURN] Press Now on [RETURN] SAVE.GRP sub as the label to to save the DELETE goto Press [RETURN] no label Press [T] for Trap Press [D] Press [g] for Delete for Goto or Type [RETURN] next thing earlier. [RETURN] DELT.GRP Press So we jump line as the label to save the DELT.GRP sub to jump mount screen [RETURN] no Press [M] for Press [S] Press [RETURN] Mount for the screen name to save the line want to mark the actual beginning of the program data Our command allowing data entry. line will look like this: START SENSIBLE SOLUTION painted CUSTPYMT We The we for screen format [RETURN] [CUSTPYMT] the screen that label Press Type to line the program should do is display will write the command: or to line: to the next trap The or tm enter input and start PYMT.CUSCODE Tutorial 5.7 Creating the CUSTPYMT.SRR 0001 0002 0003 0004 0005 0006 0007 CUSTPYMT program source -- file listing remark remark OPEN AND FILES: CUSTFILE CUSTPYMT SAVE goto SAVE.GRP DELETE goto DELT.GRP mount screen CUSTPYMT enter PYMT .CUSCODE PYMT.CUSCODE related find rec using trap trap START field OIl 0008 0009 00 1() 0011 00 12 0013 0014 0015 The enter enter SAVE.GRP DELT.GRP SENSIBLE PYMT V field error CUS.CUSCODE goto START .DATE .PAYMENT ) ( CUS ( PYMT ) PAYMENT CUS = . RECEIVE . RECEIVE . , CUSTPYMT save rec in clear bufííer confirm CUSTFILE save rec in no confirm clear buffer got.o START CIJSTPYMT confirm delete rec in goto START PYMT file file file SOLUTION trn / / Tütorial 5 .8 This time we want tolabeZ the conunand at the upper left corner of the screen. Type START Press [E] Type [RETURN] corrunar,d [RETURNJ PYMT.CUSCODE line using the label (10 *'S) line label for enter for field name Press [RETURN] no mask Press [RETURN] Press [RETURN] for for no on help Press [RETURN] for no on up Press [RETURN] to The field no password save the gosub arrow goto line files different information two are using in our program, CUSTFILE and CUSTPYMT, contain but they are "related" by the account-number field. Every master customer record will have a unique account number; but there be several We probably payment records each customer. want for will SENSIBLE SOLUTION to retrieve the appropriate customer record and to display and sales-year-to-date when we enter a new customer name, receivables, payment record. we To do this, we have to find the "related" record. locate the record "related" to PYMT.CUSCODE. Our command We'll insert a command line will read: fínd rec usíng fíe1d PYMT.CUSCODE START related fíeldCUS.CUSCODE on error got Enter the following: [RETURN] no [F] for Find for Related record For related field to use for related fi.eíd to find [R] PYMT.CUSCODE CUS.CUSCODE The SENSIBLE to [RETURN] [RETURNJ SOLUTION trn label Tutorial 5.9 Creatíng the CUSTPYMT.SRR 0001 0002 0003 0004 0005 0006 0007 0003 0009 0010 0011 0012 0013 0014 0015 The CUSTPYMT program source file listing remark remark trap trap mount START -- OPEN FILES: CUSTFILE AND CUSTPYMT goto SAVE.GRP DELETE goto DELT.GRP screen CUSTPYMT SAVE enter PYMT.CUSCODE find rec using field PYMT.CUSCODE e related on DELT.GRP SENSIBLE error CUS.CUSCODE goto START PYMT.DATE PYNIT.PAYMENT CUS.RECEÍVE = (CUS.RECEIVE)-(PYMT.PAYMENT) , CUSTPYMT confirm save rec in clear buffer CUSTFILE no confirm save rec iri clear buffer goto START CUSTPYMT confirm delete rec in START goto enter enter SAVE.GRP field file file file SOLUTION tm / / Tutorial 5.10 START [RETURN] if an to save (e.g., can't error occurs field) go to this label this new line related Leturn] let's The write two more "enter" program. first will say: allowing data input to our commands, Now enter find'the PYMT.DATE Enter the following: no [E) for enter field name for no mask for no password PYMT.DATE [RETURN] [RETURN] [RETURN] for for [RETURN} [RETURN] {RETURN] The label [RETURN] to next "enter" command no on help no on up the save gosub arrow goto new line is: enter PYMT.PAYMENT Enter the following: no [E] for enter field name PYMT.PAYMENT [RETURN) [RETURN] no mask [RETURN] for for {RETURN) The label [RETURN] SENSIBLE SOLUTION tin no password no on help gosub Tutorial 5.11 Creating the CUSTPYMT.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 The CUSTPYMT proCrarrl source file listing remark remark trap trap mount START -- OPEN FILES: CUSTFILE AND CUSTPYMT goto SAVE.GRP DELETE goto DELT.GRP screen CUSTPYMT SAVE enter PYMT.CUSCODE find rec using field PYMT.CUSCODE related cu-t enter enter SAVE.GRP DELT.GRP SENSIBLE field error CUS.CUSCODE goto START PYMT.DATE PYMT.PAYMENT CUS.RECEIVE = (CUS.RECEIVE)-(PYMT.PAYMENT) , sáve rec CUSTPYMT confirm clear bui"fet' CUSTFILE save rec in no confirm clear buffer goto START CUSTPYMT confirm delete rec in goto START in SOLUTION tm file file file / / Tutorial 5.12 [RETURN] for Lreturn] to no on up save the arrow goto line new want to reduce receivables in the CUSTFILE master-customer record by the Our amount of the payment. program must compute the new amount of outstanding receivables. We'll insert a command the line linepayment" after and minus allowing payment entry to calculate "receivables store the result back into "receivables." We The command line will read: ' = (CUS.RECEIVE) CUS.RECEIVE (PYMT.PAYMENT) - Enter the following: [RETURN] no [=} to designate CUS.RECEIVE [RETURN] The some the destination placed [E] In the current label sort of computation field where the SENSIBLE SOLUTION, a calc expressíon calculates a new value using the values in fields, or constant numeric or constant alphanumeric data. command [=] takes this newly-calculated value and places in the Complex SENSIBLE it algebraic SOLUTION Expressions number + 3.50, may and expressions seldom occur in business applications so the a very simple systems for expression calculations. uses contain the current value of a field, alphanumeric stri.ngs like ABCGOAT> standard arithmetic (addition) The operations - (subtraction) kind of data is indicated (CUS.CUSCODE) <4500.50> [Account No.] The be for Expression field. The will answer SENSIBLE SOLUTION tin ( ) < > [ ] * by marks marks marks are indicated (multiplication) constants like the by: / the type of brackets (division) around it: field name a a numeric constant an alphanumeric string constant Tutorial 5.13 Creating the CUSTPYMT.SRR 0001 0002 0003 0004 000S 0006 0007 0008 0009 001O 0011 0012 0013 0014 0015 The CUSTPYMT program source -- file listing remark remark OPEN FILES: CUSTFILE AND CUSTPYMT SAVE goto SAVE.GRP DELETE goto DELT.GRP mount screen CUSTPYMT enter PYMT.CUSCODE PYMT.CUSCODE related CUS.CUSCODE find rec using on error goto START enter PYMT.DATE enter PYMT.PAYMENT CUS.RECEIVE = (CUS.RECEIVE)-(PYMT.PAYMENT) , CUSTPYMT confirm save rec in clear buffer CUSTFILE clear buffer save rec in no confirm goto START CUSTPYMT confirm delete rec in goto START trap trap START field field SAVE.GRP DELT.GRP SENSIBLE file file file SOLUTION tm / / Tutorial 5.14 The appropriate brackets and may be used as SENSIBLE SOLUTION, that the characters "+", "-", "*" Remember, string or a field name. with may "+" stríng entirely legal! also indicate it's which we'll talk about later. "/" concatenatíon, must be part of a used so Continue entering: (CUS.RECEIVE) -(PYMT.PAYMENT) {RETURN] [RETURN) to The command that Customer Master the calculated the save expression line new we have by in our just created updates the "receivables" field Of course, subtracting the amount of the payment. the customer file is not actually updated until the customer record is saved We back to the disk. need two commands--a "save" to the payments file and a "save" to the Customer Master File. Our next command File is : save rec ín fije CUSTPYMT confírm/clear buffer Enter the following: SAVE .GRP [RETURN] line label command [S] for Save CUSTPYMT file [y] so [RETURN] yes [RETURN] No rec name the must save be confirmed before to clear the buffer happens of the record We "goto" line label is needed. want the continue with program flow to next command. sequential you wished program command, you flow to branch to an alternative would enter that comrúand line label. If [RETURN] Our second "save" save The SENSIBLE this new line looks like this save command rec ín SOLUTION tin : fije CUSTFILE no conf irm/clear buffer Tutorial 5. 15 Creating the CUSTPYMT.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 The CUSTPYMT source -- file listing remark remark AND CUSTPYMT CUSTFILE FILES: SAVE.GRP DELETE Coto DELT.GRP mount screen CUSTPYMT enter PYMT.CUSCODE CUS.CUSCODE PYMT.CUSCODE related find rec using on error goto START enter PYMT.DATE enter PYMT.PAYMENT CUS.RECEIVE = (CUS.RECEIVE)-(PYMT.PAYMENT) CUSTPYMT confirm save rec clear buffer CUSTFILE clear buffer save rec no confirm goto START CUSTPYMT confirm delete rec goto START trap trap START program OPEN SAVE goto field field SAVE.GRP DELT.GRP SENSIBLE in in SOLUTION tm file file in file / / Tutorial 5.16 Enter the following: Now label [RETURNJ no [S] for CUSTFILE file [N} so the happens [RETURN] yes [RETURN] save create the command Save rec naine save need to clear this the buffer new confirmed be not. before of the record line line: goto START Enter the following: no [g] for for Go not dependent [T] [RETURN] START next command goTo option line label to save new line [RETURN] [RETURN] The label Iwturn) on field value branch to line is: delete rec ín fije CUSTPYMT cDn.fj-rm Enter the following: DELT.GRP line label for delete record [RETURN] [D] The CUSTPYMT file [RETURNJ a SENSIBLE SOLUTION tjn name confirm must. be answered before delete Tutorial 5.17 it Crcatíng the CUSTPYM'I'.SIQR ()()()1 ()()()2 0()()3 ()()04 ()0()5 ()()()6 START ()()07 ()()()8 ()()()9 ()()1() ()()11 SAVE.GRP ()0 12 ()()13 0()14 ()() I') The 1)EL'I'.GRP SENSIBLE CUSTPYMT program source -- filc listing remark remark FILES: CUS'I'FILE goto SAVE.GRP trap trap DELETE goto DEL'I'.GRP mount screen CUSTPYMT OPEN AND CUSTPYMT SAVE enter PYMT .CUSCODE find rec using field cnter enter PYMT.CUSCOIJE related on PYM'I' f i-old error CUS.CUSCODE goto START .DATE .PAYMENT CUS. RECE IVE = (CUS . RECEIVE ) - ( PYMT . PAYMENT) CIJSTPYMT confirm save rec in clear buffer CUSTFLLE no confirm clear buffer save rec in goto START CUSTPYMT confirm delete rec in goto START PYMT file file file SOLUTLON tm / / Tutorial 5 . 18 [RETURN] no [RETURN] save final Our label needed this new line line is: command goto START Enter the following: [RETURN] no (g] for for [T] [RETURN] START label Go goTo no dependent on field value [RETURN] line label to branch to [RETURN] save new line Your completed program should look like the one on the opposite page. Did you make any mistakes? you find that you want to delete a line of your source code, pres" [ESC] Ifto call up the Source Code Editor menu. Use the [UP ARROW] and [DOWN ARROW] keys to position the line you want deleted next to the ">" prompt (or use [ESC] {F] Find line). Select "Delete line" option and answer the question Do you simply "Insert" Now wísh to delete thís Line? Yes No the proper line, using the "Insert line" option. If you want to change a part of a line in your code, position the line next to the ">" pronpt and select the"Change line" option. Press [RETURN) and the current command options will be displayed one step at a time. You can change change of the entries, any Take some time and experiment you'll begin to appreciate To exit out of the insert back to the Source Code asked: The SENSIBLE SOLUTION tm the entire or how mode with easy command. these options. After a is to use the SENSIBLE it press your [ESC] key. This menu. Press [q] for Quit. Editor practice little SOLUTION! willYou bring you will be Tutorial 5.19 After pressing The SENSIBLE {ESC] [q] (Quit) SOLUTION -- Version 2.0 Language MAIN I) 2) 3) 4) 5) 6) 7) 8) 9) 10) ## The SENSIBLE SOLUTION tin MENU Execute A SENSIBLE SOLUTION Data Dictionary Maintenance Screen Painting Code Editor Source program File Initialize A Data Code Compile Source Rekey A ijata Restructure A Data Program Generator File File Inquire Enter Your Choice From Options Above Tutorial 5.20 +_"+ |YesI Exit completely? No +——+ [RETURN]. Press youmust compile the source code file. Compilation is the process of creatinq pseudo code that the SENSIBLE SOLUTION executive program can run. Select "Main Menu 6) Compile Source Code" and specify CUSTPYMT as the file to be compiled. Now compiler labels, scan the source code listing and verify all command will and screens, fields, files. Finally, the compíler will create the which is used by the SENSIBLE SOLUTION executive (Main file CUSTPYMT.RUN When Menu option the compiler is finished working, I). returns you to the Main Menu. The it , let's Program" our try out arid Now SOLUTION Select "Main Menu I) Execute new program. enter the file name CUSTPYMT. a SENSIBLE "2222" was one of the Enter account number 2222 and press [RETURN). The customer's name customer entries you entered with your first screen. will automatically appear. for Now enter a date the "payment" and then 457.65 the amount of the Take a look at the outstanding payment. receivables" window on your screen. see the balance the This -457.65 has appeared his payment of $457.65 accainst a zero receivables customer has Press [y] or [RETURN] to store payment record in the CUSTPYMT data and to save the updatedvalue Receivables the Customer Master data record (CUSTFILE). for You'll that for in this for file You'll have Let's The create SENSIBLE a a hard time talking your customer sales-order screen. SOLUTION tin is it. credit in total. file File into making payments only! Tutorial 5.21 The Data Dictionary maintenance screen k jÑ¿l!úm|hs]|á,=||| !,,1kk I, I li |'| I N'I ,Q|j he SOLUTION SENSIBLE -- Data Dictionary Maintenance + INFORMATION * Use: Location: Number Of 128 Byte Segments: FILE I********] File Name: Fíle #: ######## Key I) 2) 3) 4) 5) Name *************** *************** *************** *************** *************** Size ### ### ### ### ### Offset #### #### #### #### #### FIELD Key 6) 7) 8) 9) ************************* ## Number Of Keys: # Name *************** *************** *************** *************** Size Offset ### ### ### ### #### #### #### #### INFORMATION Field Name: I***************] File Namé: ******** Fíeld Description: ****************************** #### * Key (Y/N): Type: Size: ### Decimal: # Offset: Default Entry Mask: *********************************** * * 'CR' Upper Case Only (Y/N): Required On Entry (Y/N): * + * The SENSIBLE SOLUTIONtíñ Tutorial 6.0 Defíning Data LESSON 6 Wíth The Files Díctíonary Data Now that you understand Program Generator work, how the Screen Code Source and Painter, Editor, we are going to take another approach to creating a begin the whole' process by setting up the Then we'll Dictionary. paint the screen with "Main and create the program with the Source Code Editor. This time we'll in the Data fields 3) Screen Painting" program. and Menu file Dictionary Maintenance is a SENSIBLE SOLUTION program used to update SOLUTION FLDFLE.MS,ñKS and RECFLE.MS/.KS. data files, These When a SENSIBLE SOLUTION four files comprise the Data Dictionary. program is run, to determine accesses the Data Dictionary (RECFLE.MS) the drive locations of your data files (filename.MS/.KS). In addition to this file information, the Data Dictionary contains a cozriplete definition of Before, we used Screen every fieldused in a SENSIBLE SOLUTION program. Painting to create or "define" fields. But don't be confused, the field definitions that you created while you were painting a screen went into the Data Dictionary. This time, however, we're going to go directly into the Data Dictionary to create some new field definitions. Data four SENSIBLE it Select "Main Menu 2) Data Dictionary Maintenance." You'll see display like the one shown on the opposite page. We'll begin by examining the field definitions of the master data file we have already created. Enter the file name, CUSTFILE, in the first field window on the Data and [RETURN]. Dictionary a screen press Each field window on this screen displays information fields that comprise the file: Fí1e The disk-directory specified. Name: Locatíon: which disk drive the Use: Designer enters file here. Fííe Num: ' The SENSIBLE track NuInber of 128 Byte Segments: Currently SENSIBLE SOLUTIONtIn a SOLUT"'LON files in expressed in The about the use. defined 128 file file file name, resides "comment" uses this and the useron. about number the to size of data record byte units. Tutorial 6.1 The Data Dictionary The SENSIBLE maintenance screen SOLUTION Dictionary Data -- Maintenance FILE Fiie File I********] Name: ######## #: Key I) 2) 3) 4) 5) Name *************** *************** *************** *************** *************** INFORMATION * Use: 128 Byte Segments: Location: Number Of Size Offset ### ### ### ### ### #### #### #### #### #### FIELD Key 6) 7) 8) 9) *************************## # Number Of Keys: Size Name ### ### ### ### *************** *************** *************** *************** Offset #### #### #### #### INFORMATION File Narrie: Field Name: I***************] ******** F'ield Description: ****************************** #### * ### Key (Y/N): Type: Size: Decimal: # Offset: Default Entry Mask: *********************************** * * 'CR' Case Only (Y/N): Upper Required On Entry (Y/N): + * <= The SENSIBLE SOLUTIONtíñ Tutorial 6.2 * Number Key of Number Keys: Fi.eld Name: Size: Number of index name of keys field of bytes in used used key Beginning byte position this file. in for field. a key. in record. You can change any of the displayed information on the screen, call up other and field definitione, or create brand new file and field definitions file One point we should note in the Data Dictionary all with this one screen. here, Data Dict.íonary Maintenance ís itself a SENSIBLE SOLUTION program. Beca.use t.he page of this, through you can files using any of the standard program control keys to search for recordc, clear the screen, Remember, etc.. remove records, you change any of the displayed ifscreen, on the the definition in the Data Data information Dictionary not actually be changed until you save the screen Dictionary will {ESC] information with [S]. For detailed inforinaticm on the operation of 2) on the Data Data Díctíonary Maintenance, youat line 4 and [M] (Mark block) going file, option SENSIBLE you and SOLUTIONtm Tutorial 7.11 CUSTORD.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 The it BEGIN trap trap trap mount START after appending appears remark remark 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 as TEMPFILE CUSTFILE AND FILES: RELATES RELATES gosub JUMP SCREEN goto CUSTFILE DELETE goto DELT.GRP OPEN screen -CUSTORD CUSTORD SAVE ignore ORD.CUSCODE trap enter find rec using enter enter print field ORD.DATE ORD.CUSINV at col 004 row ORD.CUSCODE on 24 verbage field related error CUS.CUSCODE CUSTFILE goto LANGUAGE, CHOICES: MANAGEMENT, APPLICATIONS PRODUCT enter ORD.PROD ] at col 004 row 24 verbage ORD.PRICE enter enter ORD.QUANT trap SAVE goto SAVE.GRP ORD.TOTPURCHASE = (ORD.PRICE)*(ORD.QUANT) CUS.RECEIVE = (CUS.RECEIVE)+(ORD.TOTPURCHASE) CUS.SALES = (CUS.SALES)+(ORD.TOTPURCHASE) 002 chars N.2.0.1 = portion of ORD.DATE from 001 CUS.MONTHO1 = &(N.2.0.1)(om.ToTpURcHAsE)+(N.2.0.1)&(cUs.MoNTHo1) CUSTORD no save save rec in clear buffer confirm then goto BEGIN CUSTFILE clear buffer save rec no confirm goto START CUSTORD no delete thengoto BEGIN delete rec in confirm START goto print for SAVE.GRP DELT.GRP RELATES CUSTFILE START find rec using / if ORD.CUSCODE return trap JUMP SCREEN goto BEGIN mount screen CUSTFILE enter CUS.CUSCODE dupíícate key usíng fíeíd enter CUS.DATE enter CUS.NAME enter CUS.ADDR enter CUS.CITY enter CUS.STATE enter CUS.ZIP íf SENSIBLE field SOLUTION tm if / file in file file related field CUS.CUSCODE on error goto CUS.CUSCODE goto START Tutorial CUSTFILE 7.12 to and mark mark Now select the Write block Enter the name Let's [LJ of the [W] file Enter the will TEMPFILE. be appended The name The option. the We're finished line prompt of the commands end of to the file be editor Code is to be saved: find line will n******** and and read: 7:******** CUSTFILE program CUSTORD allows the user to create new master the CUSTFILE screen. Every time our who does not have a record a customer for master file, the program will immediately display the CUSTFILE that message a at the bottom of the screen dísplay Let's print options and directions to the program user. have a program which usi'ng as necessary, records a sales order enters user Now 12 request: with CUSTFILE so IQ) Quít at the end of the program to the disk from your program. saved your to > process, same Source ín whích the block file TEMPFILE. name our Load CUSTORD. Position select Ir) Read block. Type Using the the beginning of the block. the end of the block. we Insert this command line following line 31: at col 000 row 00 message CUSTOMER NOT prínt {ESC} FOUND {RETURN} customer program ín the screen. offers TO CREATE,{ESC} JUMP TO REENTER The program displays the message at the bottom of the screen. ís informed that there ís no record for the customer account number the user presses [RETURN] they can create the master file just entered. If could be found because the user record at that time. If no related record to the they may [ESC] [ESC] [JUMP] entered an incorrect account number, CUSTORD screen to re-enter the number. This user command our program user decides to create a master file record for a newly help entered customer account number, screen their CUSTFILE will entered the CUSTORD screen. which they new account number displays the to Insert the following command line after line 32: When if ít CUS.CUSCODE Let's continue by examining screen CUSTFILE program. Líne The 31 mount SENSIBLE SOLUTIONtm the = (ORD.CUSCODE) command lines we just appended to our Tutorial 7.13 CUSTORD.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 as 0024 0025 0026 0027 0028 0029 0030 0031 0032 BEGIN trap trap trap mount START after altering lines CUSTFILE AND FILES: .RELATES RELATES gosub JUMP SCREEN goto CUSTFILE DELETE goto DELT.GRP OPEN screen 32 and 33 -- CUSTORD CUSTORD SAVE ignore ORD.CUSCODE trap enter find rec using enter enter print field ORD.DATE ORD.CUSINV at col 004 row ORD.CUSCODE on 24 verbage field related error CUS.CUSCODE goto CUSTFILE LANGUAGE, CHOICES: MANAGEMENT, APPLICATIONS PRODUCT ORD.PROD ] at col 004 row 24 verbage ORD.PRICE enter enter ORD.QUANT trap SAVE goto SAVE.GRP ORD.TOTPURCHASE = (ORD.PRICE)*(ORD.QUANT) CUS.RECEIVE = (CUS.RECEIVE)+(ORD.TOTPURCHASE) CUS.SALES = (CUS.SALES)+(ORD.TOTPURCHASE) 002 chars N.2.0.1 = portion of ORD.DATE from 001 CUS.MONTHO1 = &(N.2.0.1)(om.ToTpURcHAsE)+(N.2.0.1)&(cUs.MoNTHo1) CUSTORD no save confirm clear buffer save rec in then goto BEGIN CUSTFILE clear buffer no confirm save rec in START goto CUSTORD no delete thengoto BEGIN delete rec in confirm START goto enter print for SAVE.GRP DELT.GRP RELATES CUSTFILE 0033 0034 0035 0036 0037 0038 0039 The appears remark remark 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 it find rec using return trap JUMP SCREEN goto mount screen CUSTFILE prínt at col 000 row CUS.CUSCODE = enter CUS.DATE enter CUS.NAME enter CUS.ADDR enter CUS.CITY enter CUS.STATE enter CUS.ZIP SENSIBLE field SOLUTION tin if / file file file / if ORD.CUSCODE related on field error CUS.CUSCODE goto CUSTFILE BEGIN 00 verbage CUSTOMER NOT FOUND {ESC} JUMP TO CREATE,{ESC} (ORD.CUSCODE) TO {RETURN} REENTER Tutorial 7.14 This command display. Lime the screen mounts CUSTFILE prínt{ESC}at JUMP row 00 message col 000 REENTER 32 CREATE,{ESC} 33 displays FOUND {RETURN} TO command the message at the bottom of the , =(ORD.CUSCODE) CUS.CUSCODE This CUSTOMERNOT terminal 'TO This command screen. Line the on specifies that the CUS.CUSCODE field will which resídes in the ORD.CUSCODE field. CUS.CUSCODE will become equal to display the value In other words, ORD.CUSCODE. The next "Delete command line was labeled START in the line option" to eliminate this line. line: command íf dupíícate key usíng fíe1d CUSTFILE Delete CUS.CUSCODE goto program. as Use the well the next START These value can be eliminated because CUS.CUSCODE has been assigned the lines ORD.CUSCODE. ORD.CUSCODE'S value has been tested in the earlier command line "find related record" (line 9). Líne 34 enter This Líne 35 Líne 36 command enter This CUS.DATE CUS.NAME command enter 37 enter This Líne 38 This The allows program user to enter the customer allows program user to enter the city. CUS.STATE command SENSIBLE name. CUS.CITY command enter allows program user to enter the customer CUS.ADDR This command address. Líne allows program user to enter the date. allows program user to enter the state. SOLUTIONtm Tutorial 7.15 A partíal end the 0006 0007 0008 0009 of listing editing of our mount START 0024 0025 0026 0027 0028 0029 0030 0031 0032 enter enter print screen with line 6) as -- it appears at CUSTORD SAVE ignore ORD.CUSCODE ORD.DATE ORD.CUSINV at col 004 row related ORD.CUSCODE on 24 verbage field error CUS.CUSCODE goto CUSTFILE PRODUCT CHOICES: LANGUAGE, MANAGEMENT, APPLICATIONS enter ORD.PROD ] at col 004 row 24 verbage enter ORD.PRICE enter ORD.QUANT trap SAVE goto SAVE.GRP ORD.TOTPURCHASE = (ORD.PRICE)*(ORD.QUANT) CUS.RECEIVE = (CUS.RECEIVE)+(ORD.TOTPURCHASE) CUS.SALES = (CUS.SALES)+(ORD.TOTPURCHASE) 002 chars N.2.0.1 = portion of ORD.DATE from 001 CUS.MONTH = &(N.2.0.1)(om.ToTpURcHAsE)+(N.2.0.1)&(cUs.MoNTHo1) CUSTORD no save confirm clear buffer save rec in then goto BEGIN CUSTFILE clear buffer save rec no confirm goto START CUSTORD no delete thengoto BEGIN confirm delete rec in goto START ORD.CUSCODE CUS.CUSCODE related rec using on error goto CUSTFILE print for SAVE.GRP DELT.GRP RELATES CUSTFILE / file in file file find if field return trap JUMP SCREEN goto mount screen CUSTFILE print at col 000 row file goto 0041 SENSIBLE SOLUTION if / field BEGIN 00 verbage TO CUS.CUSCODE = (ORD.CUSCODE) enter CUS.DATE enter CUS.NAME enter CUS.ADDR enter CUS.CITY enter CUS.STATE enter CUS.ZIP CUSTFILE save rec in 0033 0034 0035 0036 0037 0038 0039 0040 The session (beginning find rec using field 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 trap enter CUSTORD.SRR CUSTOMER NOT FOUND CREATE,{ESC} {ESC} JUMP confirm/ clear TO {RETURN} REENTER no save buffer then goto BEGIN if BEGIN tm Tutorial 7.16 Líne 39 enter CUS.ZIP k This command allows program user to enter the zipcode* We have given our program users the means to create new customer master records. they do so, we needa command in the program which saves this information and stores in the CUSTFILE program. Insert the following If it commands: Líne 40 save then goto save This in filie rec CUSTFILE confírm BEGIN / cLear buffer command if saves the current record to CUSTFILE to the Save question and clears the buffer. If N to the Save question, program control transferred to the command line labeled BEGIN. Líne 41 goto This command transfers program line labeled BEGIN. the CodeeEditor," Source with"Main CUSTORD you you is BEGIN command Now leave CUSTORD if Y answer answer no the return to the Main MenuT 5)Initialize Data File. Finally, "Main Menu 6) Ccmpile Source Code." Menu with program control back to Initialize and a compile the t a moment to look through 6 present Take create our CUSTORD Selection Selection Selection Selection Selection at the SENSIBLE SOLUTION the logical progression program. Main of steps 2-- Create files and fields in the Paint the program screen. 4-- Create the source code file. 5-- Initialize the data file. 6-- COmpile the source code file. 3—- Menu. Data Menu selections we have taken 2 to Íjictionary. CUSTORD (Main Menu selection I) and entering a few try executing You can scan and change sales orders. the order file with the usual control [ESC] Use SOLUTION main menu; keys. [q] to get back to the SENSIBLE then run CUSTPYMT to enter a flew payments. Whenyou later runCUSTFILE, you wíll see that the orders and payments have been posted to the correct the Customer Master File. fields in Now The SENSIBLE SOLUTIONtIn Tutorial 7.17 Use put [L) add Lne to insert blank lines into your CUSTFILE screen, then the'4jate of last payment: " label on the screen and ESC] {A] Add fíd [ESC] CUS.LASTPYMT. CUSTOMER Account No: Name: Address: City: Outstanding MASTER FILE Date [########1 I**********************************] ******************** State: ** ******************** Recefvables: Date Payment: Sales jan Feb Mar Apr The SENSIBLE #######.## #######.## #######.## #######.## SOLUTION May jun jly Aug tm by zip: Sales year-to-date: #########.## of Last Started: mm/dd/yy I*********] #########.## mm/dd/yy Month #######.## #######.## #######.## #######.## Sep oct Nov Dec #######.## #######.## #######.## #######.## Tutorial 8.0 LESSON Adding Fíe1ds to New 8 a Fije or Screen of the strongest features of the SENSIBLE SOLUTION is its ability to and the work we've already done by adding new files, screens, build When we call up a customer's master record we'd fields. Here's an example. know when the That information customer made his last payment. like to is We need CUSTFILE entered on the payment modify the to screen. screen to show change date, the Data Dictionary entries for the CUSTFILE data file to this add a hold field to this date, and also modífy CUSTPYMT to post the information over to the CUSTFILE.MS data file. One on Since we're addíng a new field to the file, we must also restructure the The SENSIBLE SOLUTION provides record layout to make room for the new data. an option from the main menu to do thís automatically for us, "Main Menu El) A Data File." Once we've modified our two program/screens, Restructure we'll be using this program. From the CUSTFILE. SENSIBLE Put the "Date of to the right: field just of Date Then SOLUTION last payment: [ESCAPE] IQ) the File. SENSIBLE The to Enter the Enter the displayed: name main name of the file Create work choose Name: Name: Type: Key: 3) SCREEN on PAINTING the screen, D Painting editor select returns, appear on your screen: be restructured CUSTFILE. fí1e this N Screen fije to and modify and add CUS.LASTPYMT CUSTFILE menu will prompt of the data has to Thus, last payment: " label exit from the SOLUTION following menu, Field Fíle Field screen. When main CUSTFILE.M$$ The 8) and Restructure dríve the A Data ******** fo1lowingmessage on save will be : the restructured file it for a time, your disk storage file. will have to contain an amount of data that is twice the size of the original data file. To provide RESTRUCTURE data The SENSIBLE make SOLUTIONtm a work before creates new Tutorial 8.1 SENSIBLE File SOLUTION extensions Screen Command Compiled *-IQ *.LST *.MS and used with SENSIBLE or Reporter files files files file *.KS System *.COM *.EXE The created -- SOLUTION: files Format Code Source Command Inquire Format Screen/Reporter Format or Source Master Data Key the .MS *.SCC *.SRR *.RUN Operating Extensions File SENSIBLE file extensions Compiled Compiled SOLUTION file (for executible executible tm Code files ASCII file) used with program program SENSIBLE - SOLUTION: CP/M, MP/M DOS, PC MS DOS Tutorial 8.2 RESTRUCTURE for this extra work space, will allow you to designate a different drive location to contain the temporary work file.needFor example, bytes in size, you will at least original data file is if200OKyourbytes the necessity of of free space on this same drive to avoid designating a unique temporary work drive location. If your present drive location does not have enough free space, type in a different drive location letter than the one displayed. 1OOOK Press enough if the drive with abort RESTRUCTURE location, name and drive back and watch the program run. You will will [RETURKÜ the default room on the disk work drive has too drive, or give the for the temporary file. little free space. for left After entering immediately a valid file begin execution. letter of any Restructure will sitthrough table, building the restructure and replacing the restructuring the records, re-writing the Data Dictionary, you remínd a message old file. When the program is finished, to appear will to REKEY the file and RECOMPILE all programs that access the data file: SENSIBLE see SOLUTION go Please reineñber to Restructure ís complete. --REKEY your filie, and --RECOMPILE all programs whích use thís fíle or deleted a key field, altered a key field's size, or Any time that a as a non-key field, within your file. been defined in an existing data dífferent set of key fields has must file, the be rebuilt and the record counter in the index-key file, fííename.KS, be must reset to reflect the total number of records in the file. file Menu Main option 7) Rekey a Data File performs these functions by re-keying that the SENSIBLE SOLUTION data file, filename.KS. In fact, we recommend you use option 7 any containing an time that data "live" existing file been data has restructured. you had a key Suppose redefined added field Go ahead and REKEY now. "Number of records to be To the prompt Enter the file name CUSTFILE. that re-keyed" respond with [RETURN] to indicate REKEY on wish the the Then watch work rekey to program you entire file. each record in the file. The CUSTFILE, CUSTFILE data recompile changes files. The these made CUSTORD file. Recompiling files. CUSTFILE.SCC in the Recompile SENSIBLE andCUSTPYMT accommodate To SOLUTIONtíñ CUSTFILE programs the new will alert and screen format AND restructured all use thenewly you must structure, file SENSIBLE SOLUTION to the CUSTORD now, update the .SRR using "Main and Menu Tutorial 8.3 .RUN 6) '""USTPYNT.SRR as it CÜSTPYMT.SRR soí: rce Tile 0001 0002 0003 remark remark trap trap Cl004 O rj D-5 0006 0007 mount START The -Lrispr'¿j-nq ~ 9 '--- listing OP'".N CUSTFILE FILES: SAVE goto SAVE.GRP DELETE goto DELT.GR!? screen PYMT line AND ZÜST.PY.MT CIJSTPYMT .CUSCODE reZateS E"Y-MT.CTJSCODE on Eieid error CUS.CUSCODE goto START PYMT .DATE -LASTPJMT = ( PYMT .DATE) enter PYMT .PAYMENT CljS . RECEIVE = ( C6S . RECEIVE ) - ( PYMT .PAYYENT ) CUSTPYNT confirm clear buffer save rec in C'JSTFILE clear buffer no confirm save rec in goto START CUSTPYMT confirm delete xec in START goto enter CUS SAVE.GRP GO13 0014 0015 0016 enter after find rec using field OOC8 C009 0010 0011 0012 aqgears DELT.GRP SENSIBLE file file file SOLL'TION tm / / Tutorial 3 ¶·(j Compile a Source Since Code the CUSTFILE Date" field, to change the the date over to the Payment have From The SENSIBLE rnodifyCUSTPYMT. File." program/screen doesn't accept data entry to the "Last you don't have to modify that program; however, you do CUSTPYMT command source code file CUSTPYMT.SRR to post CUSTFILE.MS data file. SOLUTION Insert the main menu, following CUS.LASTPYMT This will place the previous "last payment" payment entry) = select "4) Source Code Editor" to after line 8: command (PYMT.DATE) date in the customer record (overwriting every time a payment is made. Because the you have modífied the CUSTPYMT source code and the CUSTFILE file, screen format file which CUSTPYMT accesses, re-compile to is necessary to update SENSIBLE SOLUTION'S CUSTPYMT.RUN file. Do so now, using "Main 6) Compile Menu Source Code." it it ¥ The SENSIBLE SOLUTIONtñi Tutorial 8.5 Use the CUSMENU 0001 0002 0003 0004 0005 Source .SRR source Editor START OPEN program -- FILES: CUSMENU CUSMENU screen enter N.1.O.1 goto line on value of execute execute execute SENSIBLE to create the following file listing remark remark mount 0006 000"7 0008 The Code SOLUTION tm .Run .Run .Run file file file N.1.O.1 maximum gotos 03 if error CUSTFILE CUSTPYMT CUSTORD Tutorial 9.0 goto START LESSON Creatíng OUR 9 a Menu ACCOUNTING COMPANY File I) Maintain 2) 3) # SYSTEM Customer Payments Customer Customer Orders Record Record is your selection? What becoming menu tedious to return to the SENSIBLE SOLUTION main every and use I) Execute A SENSIBLE SOLUTION Program to run our programs. Let's create a menu screen that will allow us to execute our programs directly from the menu. It's time Actually, program 4) Source THE MAIN Create one a field the called Code MENU, main SENSIBLE SOLUTION MENU.RUN. You Editor" to see how Field Number name: name: Field type: Size: of decimal places: . this screen. Then, since you must ínítía1íze it. Select "Main Save name In The this LINE source ON SENSIBLE Key: SENSIBLE ít it tests SOLUTIONtm There ESC] is only [A]: N.1.O.1 MEMORY N 1 O N field to the file, MEMORY, you Inítialize a Data File" and enter Source Code Editor" to create the source code the facing page and compí1e that listing. listing there are VALUE SOLUTION Menu DON'T EDIT "Main added a Menu 5) MEMORY. Now use "Maín Menu 4) (CUSMENU.SRR) shown on GOTO a up to match the one shown above . screen called CUSMENU to add. Position your cursor over the "#" sígn and File file is ítse1f and via call list program is constructed. for heaven's sake!!! Selection the menu can a menu two commands we the value of the specified haven't encountered field, which should Tutorial 9.1 file yet. be a CUSTFILE after modification CUSTFILE.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 The START source -- file listing remark trap EXIT goto EXIT trap SAVE goto SAVE.GRP trap DELETE goto DELT.GRP mount screen CUSTFILE CUS.CUSCODE enter enter CUS.DATE duplicate key using field CUS.CUSCODE goto START enter CUS.NAME enter CUS.ADDR enter CUS.CITY enter CUS.STATE enter CUS.ZIP confirm / clear buffer save rec in file CUSTFILE goto START delete rec in file CUSTFILE confirm goto START execute .Run file CUSMENU if SAVE.GRP DELT.GRP EXIT SENSIBLE SOLUTION trn Tutorial 9.2 numeric type. than the '"""ñ""""1"" If the value is less than one orto greater value, control of the program is transferred the goto target label -START. Otherwise, control "jumps" to one of the statements that follow the GOTO LINE ON VALUE depending on the value of the field, N.1.O.1. If N.1.O.1 one, the next comnand to be executed is the first command following the is 7 GOTO 2, LINE ON value, executed. which is line 6. N.1.O.1 = line is If N.1.O.1 = 3 triggers line 8. N.1.O.1 = 4 is greater than the "·p¶·""j1·" so the would "goto" START instead of to one of the commands following the program GOTO LINE GOTO ON LINE VALUE. ON sometimes VALUE'S action passed to the nth element of a used often of n. menus Control is the value to perform several entry. "table jump". dependíng on also be used in like this. It might month on depending, the of a data tasks say, is It is different referred table of to as a commands, EXECUTE .RUN FILE, executes another .RUN file. In this 1 entered for your selection choice, the CUSTFILE screen allow you to update master customer records. if example, will appear you and CUSTPYMT and CUSTORD so that they can screens correctly and return to the CUSMENU screen Use on [ESC] [qj·4) You'll Code find the command limes to insert listed below. and Source "Main Menu Editor" to enter the required modífícations Menu make 6) Code" a on each then "Main Compile Source fíle to "runab1e" program front the modified command file. Now we transfer need to modify control between L.gj..á--.jÉ, this command line at the beginníng programs, following the "remark" line: Insert trap use the Insert mode to Now EXIT goto option to reach the end insert the following line: End of each one of your three EXIT of your programs and then the k EXIT The new presses the TRAP [ESC] EXIT command [q] keys. execute .Run fíle CUSMENU is activated whenever In these fíles, "exiting" the screen vía [ESC] [q] the new line labeled EXIT which, in turn, runs our will the program transfer CUSMENU.RUN control file. 0 The SENSIBLE SC)LUTIONtiñ Tutorial 9.3 user to CUSTPYMT after modification CUSTPYMT.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0()10 0011 0012 0013 0014 0015 0016 0017 0018 The source file listing remark remark START -- AND CUSTPYMT FILES: CUSTFILE EXIT trap EXIT goto trap SAVE goto SAVE.GRP trap DELETE goto DELT.GRP mount screen CUSTPYMT PYMT.CUSCODE enter CUS.CUSCODE PYMT.CUSCODE related find rec using on error goto START enter PYMT.DATE (PYMT.DATE) = CUS.LASTPYMT enter PYMT.PAYMENT (CUS.RECEIVE)-(PYMT.PAYMENT) = CUS.RECEIVE cLear buffer save rec in fil-e CUSTPYMT confirm CUSTFILE no confirm clear buffer save rec in goto START CUSTPYMT confirm delete rec in goto START CUSMENU execute .Run OPEN field field SAVE.GRP DELT.GRP EXIT SENSIBLE file file file SOLUTION tin / / Tutorial 9.4 The of a customer orderprograms now completed can form the backbone and system be entry/payment-control can integrated into a complete accountíng of course, system. you'll want to make some additions to the present progrqms. For instance, the way our system is currently designed, change you can the amount of a payment, which would also change the and receivables made. sales figures, with no record that a change was (Someone get a bucket of water. All the accountants just fainted!) Before you graduate as a SENSIBLE SOLUTION applications programmer, we'd like to introduce you to two more features of the SENSIBLE SOLUTION: "Main Menu 10) Inquire", a fast and easy utility for makingquick"adand hoc" queries of SENSIBLE SOLUTION data files, "Main Menu 3) Screen Painting " -- Reporter Format, and a powerful flexible report-generating facility. K The SENSIBLE SOLUTIONtm Tutorial 9.5 After typing SENSIBLE The SOLUTION SENSIBLE [RETURN] -- Version 2.0 Language MAIN I) 2) 3) 4) 5) 6) 7) 8) 9) 10) ## The SENSIBLE SOLUTION tm MENU Execute A SENSIBLE SOLUTION Data Dictionary Maintenance Screen Painting Code Editor Source Initialize A Data File Compile Code Source Rekey A Data File Restructure a Data Program Generator Program File Inquire Enter Your Choice From Optíons Above Tutorial 10.0 LESSON Inquire, 10 the Quick Data Scanning Facíliity you quickly you use a computer application every day, base of information with Unfortunately, a "data base". no way to get at there that information. If up build most -- is valuable a languages, all with SENSIBLE SOLUTION it's a simple matter to design a And, that you ask for questions program to answer any question you have. However, and often should do. you exactly what again, that's over over happens you need a quick answer that For example, to a simple question. "What products have we sold to our customers this year?" As you have learned, it sbrt SOLUTION of a facility to answer provides just this SOLUTION SENSIBLE data any single can scan Inquire Inquire. -the a report which can then be sent to the terminal, file and create that of format on decide the you with Inquire, a disk to printer, or file. what records will be selected from the file and how those records report: be displayed You can then save the format and execute on the report. will The report the Inquire report any time that you wish. will always display most the current data from your data base. The SENSIBLE question a Inquire will then display begin using Inquire by selecting a file. directory of all the fields in that file and ask which of these fields you you need not display wish to see on your Inquire report. In this way, all want when example, símply you "sales-by-month" the fields, for "name" and "telephone". "receivables", You with the fields you specify in the order you separated on the report is automatically field how many spaces by you exactly specify but you may, in fact, Each record that is printed each column. out on your want to appear between You can also of the report. may be formatted on from '1 to 4 lines report format. blank report your lines in insert Inquire specify will them. a few spaces create Each a report column in our data file, CUSTORD. Let's use Inquire to view some of the records a We'll report format that will show account actívity by listing create the date of the sales order, the product that was customer account numbers, and the total amount While we're at it, payable. ordered, let's restrict made during 1984. with Inquire, the report to displaying only transactions this will all be easy! Select "Main Menu 10) Inquire", displayed on your terminal. be The SENSIBLE SOLUTIONtm the screen shown on the next page will Inquire will begin by displaying a directory and Tutorial 10.1 "Main Menu Inquire" 10) -: ...¥.". " Ríe SENSIBLE Choose the Inquire SOLUTION ERRFLE CUSTORD CUSTFILE file you ... want Program FLDFLE MEMORY RECFLE to use: r" The SENSIBLE SOLUTIONtm Tútorial 10.2 of all data files and then request that you enter a file name froín which you you have too many data a quick report. wish to create files to be If [ESC] key that a menu display use the to displayed on your screen at once, and down the see the of up to you allow to rest scroll your screen will Type directory. in the file name CUSTORD and you will see the following prompt: want Fieldname headings Do you report? (Y or N): the on the fields that will be printed you will be selecting in columnar form. Answering "Y" to this prompt will force Inquire to column of the heading that will appear at the top of every page a and, answer go ahead report, as For our CUSTORD is printed out. In a report moment report "Y". it print The on next prompt, Do you wish to substitute Fieldname headings? (Y or N): using the actual fíeld names as headings you the option of either unique heading that you can specify. a report or substituting your If answer "Y" to the above prompt, every time that you select a field to be another prompt will soon follow requesting that you on the report, printed of specify whatever heading you want to see printed at the top of each page the report. Inquíre will ask for a field then Inquíre will ask for a Once again, answer "Y" to this question. heading. will give on you Now the want on cycle will begin the report: and Inquire w.íll request the name of a field . Enter Fieldname to Print: At this stage you should notice a directory screen that shows qii of the fields contained on your screen: a status line displayed displayed on the top of your in CUSTORD. You will also see + Total The you SENSIBLE print-out length: SOLUTIONtm line Tutorial 10.3 selecting After the file name CUSTORD -- . The SENSIBLE ORD.CUSCODE ORD.PROD Do you want SOLUTION Inquire . . =' ORD.CUSINV ORD.QUANT Fieláname headings ,. program ORD.DATE ORD.TOTPURCHASE on the report? (Y ORD.PRÍCE REC.NUM or N): . The SENSIBLE SOLUTIONtm Tutorial 10.4 This line indicates the current position for the start of the next field you Remember, you can only enter (columns) and the line number of your format. Do not,.however, maximum 4 lines as an Inquire display format. of specify a A format defines how the get this confused with the length of your report. be and the report can each printed, that record look out is for will pUnt thousands of records in length. menu that appears at Try pressing the [ESC] key and notice the high-lighted Use the space bar to move the high-light block the bottom of your screen. though, turn the high-light menu For now, to any of the desired options. [ESC] again. from this by sorne of the selections use pressing We'll off menu a little later on. we'll begin specifying the field names that we want printed on our At report and the headings that we want printed at the top of each column. the prompt "Enter Fieldname to print," type in our first field name -heading". substitute ORD.CUSCODE. Now "Enter a new prompt will appear, the Type you press the [RETURN] key in the words Account Nuñber and after In this fashion "Enter Fieldname to Print" message will be displayed again. and the specify the next three fields that we want to see from CUSTORD we'll the column want At printed at the top of the report. headings that we inforrnatíom appropriate prompt enter the following Now Enter Fíeldname 'to field: 3rd. field: 4th. field: 2nd. ORD.DATE press [ESC] [S] ORD.PROD ORD.TOTPURCHASE Enter súbstítute prínt: (Space insert) and heading: Order Date specify 10 spaces. Product Ordered Total Amount payable Everything we have discussed up to now is simply a repeating allow you to defíne the format of a record as is printed and column column, spacing. spacihg, heading, line field it cycle that will oyµ report -- on displayed the directory Notice that every time that you specifíed a field, When you are finished specifying the last the field in half-íntensity. Amount column payable," you will again see the "Enter heading, "Total the [REI'URN) key with Fieldname to Print" prompt. This time just answer and we'll move on to specifying that occur in 1984. only those transactions it * 'Enter The SENSIBLE Fieldname to Select by: SOLUTIONtIn Tutorial 10.5 InquLre quick report of File Name: @: CUSTORD Order Account Number -- page: Date 1/ 5/84 3/ 3/84 2/ 2/84 1/ 1/84 7/28/84 3/ 3/84 8/12/84 1/ 3/84 9/13/84 5/ 5/84 3/ 1/84 7/ 1/84 1111 1111 2222 3333 3333 4444 4444 5555 5555 6666 7777 7777 12 CUSTORD records match the Selection 1 Sort key: ORD.CUSCODE Product Ordered Totaí Amount LANGUAGE 695.00 MANAGEMENT 695.00 MANAGEMENT 695.00 LANGUAGE 995.00 MANAGEMENT 750.00 APPLICATIONS APPLICATIONS 250.00 400.00 LANGUAGE 995.00 LANGUAGE 695.00 MANAGEMENT 750.00 LANGUAGE 695.00 MANAGEMENT 750.00 criteria . The SENSIBLE SOLUTIONtm Tutorial 10.6 payable field The that name to set up. transactions We made ORD.DATE. = ( ? enter here will be used in a test that we are about contain that want to print out only those records 1984, 1, date so the enter field, on or after january you Than is Not Equal to is Greater Than is Less Than / is EqualsThan / / Equal to Less greater or or Equal to is / is Entered Value/String the Field Includes the is If What ! > < ) Operator do you wish to use: how to select the records you desire. Inquire will want to know now use an operator to test a condition. entered a field name, right parentheses symbol, ")". What Value do you Since we specified "01/01/84". a just You the Enter wish to use: date field, you will see a date type of prompt. Enter should also note here that you are free to select a field even is You can also select of the information printed in the report. not part multiple criteria thus making your report more restríctive. and Your report the second those records that passed the first test, contain will and so only have When selection you completed defining your criteria, on. test, simply press the {RETURN] key after the "Enter Fieldname to Select by" of prompt and you will move out of this cycle and into the last phase ' defining an Inquire format: if it We Enter Fie1dname to Sort by: fields At the top of your screen you will see a dírectory of all key SOLUTION can only sort data by a SENSIBLE your particular data file. report let's sort the data into "Account Number" For our CUSTORD field. key order. Enter the field name ORD.CUSCODE. The SENSIBLE SOLUTIONtm Tutorial 10.7 for key Inquire of quick report File Name: @: CUSTORD Order Account Number -- Page: Date 1/ 5/84 3/ 3/84 2/ 2/84 1/ 1/84 7/28/84 3/ 3/84 8/12/84 1/ 3/84 9/13/84 5/ 5/84 3/ 1/84 7/ 1/84 1111 1111 2222 3333 3333 4444 4444 5555 5555 6666 7777 7777 12 CUSTORD records match the Selection 1 Sort key: ORD.CUSCODE Total Amount product Ordered LANGUAGE 695.00 MANAGEMENT 695.00 695.00 995.00 MANAGEMENT LANGUAGE MANAGEMENT APPLICATIONS APPLICATIONS 750.00 250.00 400.00 LANGUAGE 995.00 LANGUAGE 695.00 MANAGEMENT 750.00 LANGUAGE 695.00 MANAGEMENT 750.00 criteria y The SENSIBLE SC)LUTIONtñi Tutorial 10.8 Payable Send output to Printer, or Disk Crt, file? (press p, C, or D) Üe'r.e finished specifying our quick report format for CUSTORD. All Since to do now is tell Inquire where we want to send the report. on we will be able to see all of our our report is less than 80 columns The CRT. [RETURN] default, so just press to accept"the display screen, should look like the format Inquire report will immediately be dísplayed; and the second Did you enter the 10 spaces between on the facing page. columns? pressing As displayed the menu that is you recall, after third [ESC] to the key at the "Enter Fieldname to Print" prompt will allow you When we're and finished, format. spaces blank lines try your in insert creating some other reports with Inquire and experiment with inserting blank between and inserting spaces lines, displaying some fields on other lines, columns. There, we have it it the report is finished press the [RETURN] selection criteria and display format. our When key and Inquire will show you -l File Selected: CUSTORD Heading Option: Substítuted Field(s) Selected: ORD.PROD ORD.DATE Line 1 ORD.CUSCODE Selection criteria: When ORD.DATE is Greater Than or Eqµa1 ORD.CUSCODE Sort Key Selected: ORDAXJTPURCHASE to 01/01/84 you want to save At the bottom of your screen a prompt will appear asking One to Inquire of nicest features of is its ability and save this format. To then answer the question "Y" save to disk a formats in it, file. Your report format will be saved answer the next prompt with a file name. in a dísk fíle with the extension ".IQ". if K Enter format Filename (save): You will returned to the original data file directory where another Inquire quick report, exit back to the main Inquire system, or re-run any previously defined be now begin creating the operating S Now file menu. The you menu or reports. back at the complete see the start of Inquire (you should get another high-lighted press the [ESC] key and you'll the high-light block over the "Load Format" option and press that you're directory) Move SENSIBLE can SOLUTIONtm Tutorial 10.9 "Main Ádµ I 10) Menu I I i i jl , T'he SENSIBLE CUSTFILE { Choose Inquire" i L,lhlI lkil' 1,|i . ',1 i file %n' a" "' ERRFLE you " ' "' Inquire SOLUTION CUSTORD the -- want Program FLDFLE MEMORY RECFLE to use: ) The SENSIBLE SOLUTIONtm Tutorial 10.10 Now enter the you name where the [RETURN] key. file and again. the report Inquire report format we'll run criteria will be displayed on your screen and then you execute the report again. saved First, can our the go CUSTORD ahead format and You can of the Inquire program. a powerful feature developing really useful report formats and then, after you any time that the format and run settlíng on a good formula, save most SENSIBLE from You report the always current your get want. will SOLUTION data base. As you can experiment see, with this it e "F e The SENSIBLE SOLUTIONtm S 4 Tutorial 10.11 After The typing SENSIBLE SENSIBLE SOLUTION [RETURN] -- Versíon 2.0' Language MAIN I) 2) 3) 4) 5) 6) 7) 8) 9) IQ) ## MENU Execute A SENSIBLE SOLUTION Data Dictionary Maintenance Screen Painting Code Editor Source Initialize a Data File Compile Rekey A Source Data Code File Data Restructure A Generator Inquire Program Enter Your program Choice File From Options Above . The SENSIBLE SOLUTION tin Tutorjai 11.0 LESSON The 11 Reporter Format When called from the Main Menu, selection 3) Screen Painting offers the The REPORTER format choice of two different formats. does for printed reports what the SCREEN format does for a terminal display: allows the of a report format with headings and footings, interactive definition detail and summary lines, calculated totals, and multiple-file sources of data. it Once defined, a reporter format may be used repeatedly in SENSIBLE SOLUTION programs in much the same way that screen formats You create a are used. by "screen The format reporter format painting". can then be reporter utilized by SENSIBLE SOLUTION programs to send formatted reports to your computer's printer. Creating reports wíth the reporter format involves the used in creating same operations SOLUTION program: any SENSIBLE REPORTER APPLICATIONS Paint Report Format Edit Source Code File Compile Commands Execute Commands Reporter formats differ slightly from screen formats. reporter format can be much larger than a screen format: a maximum of 255 columns wide and 60 lines in height. You're probably wondering how we can a 255-column print-page We on an BO-column terminal dísplay. Simple! The screen don't -- at least not all at once. a has painting method for getting around the limitation of your screen size. facility A fit The Paínting Screen option, [ESC) shift'back and forth between two views[j] of the reporter will screen. The 01 through screen is defined as coLumn column 79; the right screenleft is defíned as column 49 through column 127. Thus, there is a 30 column overlap area from columns 49 through 79. This overlap area will make easy for you to"keep your bearings" as you shift back and forth between the lefthand and right-hand The SENSIBLE menu portíons SOLUTIONtIn of the report (jump screen) format allow it screen. Tutorial 11.1 you to numbers on the left side of this page are to show you how we counted the report format lines in screen painting this Reporter Format The 1 OUR COMPANY SALES PAGE REPORT have -- ## 2 3 COMPANY ACCT. NAME DATE STARTED NUMBER 4 5 SALES YTD 6 DATE OUTSTANDING RECEIVABLES OF LAST PAYMENT 7 8*********************************** #ÉÉ#######.## 9 10 TOTAL #########.## TOTAL RECEIVABLES: SALES: 11 The SENSIBLE SOLUTION tm mm/dd/yy mm/dd/yy #######ÉÉ #########.## #########.## Tutorial 11.? 79 + 01 (left side) (line 01) 127 + 49 + (right + side) (line 01) + + Use [ESC) [j] To Shift views second nature to [ESC] [j] (jump screen) back and You'll find it becomes 128-column page width as you're defining the your format. across forth As we stated earlier, you can create report formats up to 255 columns wide. To extend a report format beyond the 127th. column, simply place line The next line down on the format screen becomes comma in the 127th. column. columns 127 through 255 and will be attached to that line so that when the report is sent to the printer, the two different lines on your screen will be printed on paper. on the same line level a GQherí and field placements. line can contain printed information SOLUTION SENSIBLE program, the program line is called from wíthin a collects the appropriate field values and prínts them in the specified format for that line. A reporter format That does not rnay contain as many as 60 format lines. Each format mean that you can only print reports 60 lines long! line in a reporter format may, and usually will, be used as the "template" for several lines of data on the actual report. For example, if you're printing a weekprobably use the same by-week listing of several data fields, you will The 60 format-line means that you can simply format line 52 times. limit only have 60 different line formats appearing on a single report íncludinC: page headers, column headers, footinqs, column entries, totals, etc.. do Each format a format Frankly, the job. The we've Most SENSIBLE never seen a report so complex that of yciur reports won't go over ten! SOLUTIONtm 60 format lines Tutorial won't 11.3 Screen below patnt this Reporter Format and [ESC] add fields as dLsplayed —- OUR COMPANY COMPANY SALES ********************************** #########.## TOTAL SENSIBLE SALES: SOLUTION #########.## TOTAL RECEIVABLES: tm ## PAGE REPORT ACCT. NAME SALES YTD The [AJ NUMBER OUTSTANDING RECEIVABLES DATE STARTED DATE OF PAYMENT mm/dd/yy írun/dd/yy ######## #########.## #########.## Tutorial 11.4 LAST so we're going best way to learn to use reporter formats is by example have CUSTFILE. Ne to create a sample Sales Report for our old friend, will to perform five complete steps to produce an executable program to generate Each step sales reports. will involve a separate program from the SENSIBLE The SOLUTION main menu. -- Use 3) Screen Paínting Specify that you are creating a Reporter format. Enter the name of the Create the report format lines as you see them on the format: SALES. opposite page. Your control keys operate just as they do when creating boxes you can not have in a reporter screen formats, with this exception: and type headings and labels. {ESC] Move the cursor, Now use format. [A] (Add fíeld) to place each of the fields to be shown on the report. Here is a partial list of the field name entries you will need to"Add" to STEP ONE your report. Do so now. #8) on = CUS.NAME (place on = CUS.CUSCODE (place DATE STARTED = CUS.DATE #8) on (place #9) SALES YTD = CUS.SALES orí (place OUTSTANDING RECEIVABLES (place = CUS.RECEIVE DATE LAST PAID = CUS.LASTPYMT on (place COMPANY NAME ACCOUNT NUMBER In addition to provide (line field line line #8) field field line field line field on line line #9) field #9) to the values #10), and there are three fields we will need fields from CUSTFILE, the format línes -- "PAGE" (line #1), "TOTAL SALES" for "TOTAL RECEIVABLES" (line #11). These fields must be defined in the Data reference to them on a report format. [ESC] add the definitions to the dictionary. Dictionary before [A] (Add fíe1d) can we will allow make us to All three beof these fields are "temporary", in that the information they hold not retained in a data file after the MEMORY, report has been printed. So, will we will place them in the "phantom file", we created for the CUSTPYMT MEMORY new expand accommodate the to temporary screen. we'll storage fields we'll need. The names of these fields follow the N.12.2.1 "N" and convention we discussed earlier: N.12.2.2 that the fíeld holds a numeric value. refers to the actual number of characters means "12" field The namíng (it's SENSIBLE length). SC)LUTIONtIn that may be entered Tutorial 4 11.5 to the Use @: ESC] [H] SALES copy) (Hard .SCC format reporter OUR COMPANY listing COMPANY Page .SCC Field name N.2.0.1 reporter #########.## TOTAL RECEIVABLES: format File listing Size MEMORY 2 CUS.NAME CUS.CUSCODE CUS.DATE CUS.SALES CUS.RECEIVE CUS.LASTPYMT CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE CUSTFILE 34 N.12.2.1 N.12.2.2 MEMORY 12 MEMORY 12 The SENSIBLE SOLUTION tm 8 8 12 12 8 PAGE ## DATE STARTED OUTSTANDING RECEIVABLES DATE OF LAST PAYMENT mm/dd/yy rrun/dd/yy ######## #########.## ********************************** #######'É#.## SALES: 0001 NUMBER ACCT. SALES YTD SALES No: REPORT SALES NAME TOTAL print-out -- to obtain the following #########.## page Col Row Key 070 001 046 066 023 046 066 023 046 01 N 08 08 08 Y No: 0002 Y N C)9 N 09 09 N 10 N 11 N N Tutorial 11.6 "2" means that there "1" and"2" (or 3 or fields that are the Position TOTAL cari be 5, decimal places in the number. allow us to differentiate between two etc) or sanie size. 4 your cursor appropriately Fiéld File SALES = Name: Name: Type: = Field File Field File #10) 12 N N.12.2.2 Name: Name: Type: (place MEMORY field on line #11) N 12 2 Key: = line 2 Length: Decimal: PAGE on N Key: RECEIVABLES add MEMORY Length: Decimal: TOTAL these fields: N.12.2.1 (place field and memory N N.2.0.1 Name: Name: (place MEMoRy field on line #1) (this field was created previously) When the out correctly, send a copy of the format to the is laid report[ESC] [H] {q] and save the using (Hard copy), then press [ESC] printer The Main format. STEP language TWO Use -- (5.) Menu Inítíalíze will A return. Data File added The SENSIBLE be SOLUTION must two new fields to the fíle memory. alerted to the change in file structure. Because MEMORY is a temporary storage file, "live" data. Consequently, we use "Main Menu it neverFile"retaíns 5) Initialize a Data to perform this function. You STEP THREE We -- must now Code Source (4.) Use create Editor Code Editor that use this report format. will Now create specify SALES. a program and as shown on for file name the next page. You'll want file the format at hand for reference because you'll which format lines to use when you write SALES. source printout STE? FOUR code Source cjf -- Use Now sirnply"escape" The SENSIBLE (6.) Coinpí1e a Source back to the Main SOLUTIONtm Code Fí1e Menu and use selection Enter the the program to keep your need to know 6 Tutorial to compile 11.7 Use the SALES Source .SRR 0002 C)003 OÜC)4 OCC5 CO06 CCC7 OCOF CO09 to create the SALES program listed below -- file listing gosub START 0011 CC12 HEADING print forrríat-line# print Forrnat-line# OS 0014 CC15 0016 0017 HEADI6'G 0018 CC19 0020 C)C21 OC22 QG23 OG24 0¢)25 Ü02€i C027 0(128 TOTALS GC29 0030 print format-linet print Torrnat-line# print blank lines 06 07 OC31 = return print fornat-lineí: print forrnat-line# print page eject execute SENSIBLE 09 (N.12.2.1)+(CUS.SALES) = (N.12.2.2)+(CUS.RECEIVE) print"blank lines 01 finá next rec in file CUSTFILE goto START N.2.0.1 = (N.2.0.1)+<1> print blank lines 0101 print format-line# 02 print format-line# C3 yrint forrtat-line# 04 print forrriat-linef print Eorrriat-line# 05 N.12.2.1 N.12.2,2 OG13 The source Editor remark AND MEMORY CUSTFILE remark OPEN FILES: PAGE gosub HEADING BREAK trap trap FILE ERROR goto TOTALS mount report format SALES print on ask at run time page printable lines = 60 yrinc page lines = 66 total print finá first rec usino field CUS.CUSCODE ClOC1 (JÜ1G Code SOLUTION tm .Run file 01 10 11 CUSMENU Tutorial 11.8 code. your source STEP FIVE -- Use (I.) Execute SOLUTION A SENSIBLE Program the main menu appears again you have a sales report program ready to 1 and choose specify the file name, SALES. selection generate your report. THERE! You've done it. When that you've finished, let's source code listing. Now As Line "trap 3 time trap the BREAK gosub PAGE the construction of our 4 reaches the end of a page, printer HEADING." The and BREAK" trap ERROR FILE goto TRAPS HEADING "gosub command This lines labeled"HEADING." heading at the top of the next page. PAGE Line review done certain Each and back in our other programs, the first thing to do is to set conditions that way occur during program execution. we have for go want the program to jumps to the group of will print our report we "gosub" subroutine TOTALS on each of the the sales report has gathered all required informatíon we an "end of file error" At customers in CUSTFILE, occur. this time, will totals and exit to. have our final sales and receivables want printed will So control branches to the portion of the proqram from the SALES program. that does this (beginning with the line labeled TOTALS). When Line 5 mount report format SALES print on ask at run tíme in other programs we have created, we must "Mount" our SALES report format screen. At the time of program execution, we want the program to ask the operator where they want the report to be sent-- to the Disk, the CRT, or the Printer. As Line Line The the 7 print prínt page page printable Lines = total Lines = 66 60 next two lines of our SALES program set the paper length at amount space on that paper at 60 lines. of printable Line Line Next, The 6 we 8 9 fínd gosúb rec first HEADING have the SENSIBLE usíng computer SOLUTIONtm field find the 66 lines and CUS.CUSCODE first record in CUSTFILE Tutorial and 11.9 then Use the SALES Source .SRR 0001 0002 0003 0004 0005 0006 O0C7 0008 0009 (1010 START ÓC11 0012 0013 0014 0015 0016 0017 HEADING 0018 0019 0020 0021 0022 0023 OC24 0025 Q(J26 OC27 OC28 TOTALS 0929 OC30 0031 The SENSIBLE Code source Editor to create the SALES program listed below -- file listing remark AND MEMORY CUSTFILE remark OPEN FILES: PAGE gosub HEADING BREAK trap trap FILE ERROR goto TOTALS mount report format SALES print on ask at run time print page printable lines 66 = 60 print page total lines = find first rec using field CUS.CUSCODE gosub HEADING print format-line# print format-line# 08 09 N.12.2.1 = (N.12.2.1)+(CUS.SALES) N.12.2.2 = (N.12.2.2)+(CUS.RECEIVE) print blank lines 01 CUSTFILE find next rec in file goto START N.2.0.1 = (N.2.0.1)+U> print blank lines 0101 print format-line# print format-line# 02 print format-lineE 03 print format-line# 04 print format-line# 05 06 print forrnat-line# 07 print format-line# 01 print blank lines return print format-line# 1011 prinz format-line# print page eject CUSMENU execute .Run file SOLUTION tlñ Tutorial 11ÑO program control Line Line Line Line Line Line Line Line Line Line Line 17 jumps HEADING to the N.2.0.1 prírrt prínt prínt print prínt print prínt print prínt 18 19 20 21 22 23 24 25 26 27 line labeled HEADING. = (N.2.0.1)+<1> blank Lines 01 format-1íne# 01 format-1íne# 02 format-1íne# 03 format-1íne# 04 format-1ine# 05 format-1íne# 06 format-1íne# 07 blank Lines 01 return "HEADING" The paCe$ subroutine prints the heading at the top of eachnumber page N.2.0.1 = (N.2.0.1)+<1> is the cornrriand which specifies Then we print a blank line, and next, the incrementation. first seven lines of the reporter format which we created with the Screen Painter. This is followed by another blank line. Finally, program control is returned to the line following the "gosub HEADING" command. Line Line Line Line Line Line Line 10 START 11 prínt format-líne# prínt format-1íne# 08 09 N.12.2.1 = (N.12.2.1)+(CUS.SALES) N.12.2.2 = (N.12.2.2)+(CUS.RECEIVE) prínt blank Lines 01 CUSTFILE fínd next rec ín fí1e goto START 12 13 14 15 16 Beginning at the label START, the first two command lines (lines 10 and 11) print the two lines in our reporter format that contain the fields that hold individual customer information (i.e., companyandnajne, acct. number, date date of last payment). outstanding receivables, started, sales 12 YTD, Command and 13 work as summing devices to compute TOTAL SALES and lines TOTAL RECEIVABLES. Line 14 prínts a blank line, which will separate the Now easier to read our report. data on each individual customer, making our program directs the computer to find the next customer record in and "goto" the line labeled START. CUSTFILE This program loop will continue by command and trapped an"end of line 4. The is occurs error file" until send command TOTALS. trap will program control to the line labeled it Line Line Line Line The 213 TOTALS 29 30 31 SENSIBLE SOLUTIONtIn prínt format-1íne# print format-1íne# prínt page.Runeject execute fí1e 10 11 CUSMENU Tutorial 11.11 Use the SALES Source .SRR SALES program listed below -- file listing gosub START HEADING OC1l3 OC19 0020 0021 0022 0023 0024 0025 0026 0027 0028 TOTALS 0029 DC30 0031 The to create the MEMORY AND CUSTFILE remark OPEN FILES: PAGE gosub HEADING BREAK trap trap FILE ERROR goto TOTALS mount report format SALES print on ask at run time print page printable lines 66 = 60 print page total lines = find first rec usinq fíeld CUS.CUSCODE OOñ7 OG17 source Editor remark 0001 0002 0003 0004 0005 0006 0008 0009 0010 00'11 0012 0013 0014 0015 0CV3 Code SENSIBLE HEADING print format-line¥ print format-line# 08 09 K.12.2.1 = (N.12.2.1l+(CUS.SALES) N.12.2.2 = (N.12.2.2)+(CUS.RECEIVE) print blank lines 01 find next rec in file CUSTFILE goto START N.2.0.1 = (Nw2.0.1)-i-<1> print blank lines 0101 print format-line# print format-line# 02 03 print format-line# 04 format-line# print print format-line# 03 print forrnat-line# 06 print format-line# 0107 print blank lines return print format-line# 1011 print format-line# print page eject CUSMENU execute .Rur. file SOLUTION tin Tutorial 11.12 prints the lines The group of ccmrnand labeled TOTALS computed and stored by command lines 12 and 13. "TOTAL SALES" and the memory line label value. line surtís of what Format line 10 contains N.12.2.1 which holds field label "TOTAL was the this RECEIVABLES" and the contains the line holds value. Since which the that report is field completed, the page eject command will immediately' force a printer paqe advance, based on the number of lines we specified are to be printed on each page. If the program user sent the report to the screen instead of to the have the effect of locking the screen display printer, this command will [RETURN] key. the the Without this command, the program presses user until would exit immediately and the user would not have the opportunity to view the information Finally, in the report. the program ends bv executing the .RUN CUSMENU, and program users are presented the CUSMENU to allow for file menu selections. further Format 11 N.12.2.2 memory Graduatíon Day! Reference Section of the SENSIBLE SOLUTION manual contains detailed and commands information on all the features, procedures in the language. In addition you will find discussions on file and record locking on multithat can user systems and converting foreign databases into data structures be read and manípulated by SENSIBLE SOLUTION. The What we've gi.ven an introduction is and system that lets you quickly, The moíÁEylmsines" database applications. SENSIBLE SOLUTION kpe?s track olí the frustrating details while you enhancing old ones, and on desiCninC new concentrate a?plications, integrating applications into your particular business environment. interactively Is it any you design wonder we call it The to SOLUTION? SENSIBLE * * a and * 0 The SENSIBLE SOLUTIONtm Tutorial 11.13 The SENSIBLE SOLUTION Language Table of Contents REFERENCE File Extensions. File List. Plain Menu . . . . . . . . . . . . . . Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 1.2 1.3 2.1 . MENU Main Menu. . . . . . . . . . . . . SELECTIONS . . I) Execute A SENSIBLE SOLUTION Program 2) Data Dictionary Maintenance. . . . 3) Screen Painting . . . . . . . . . 4) Source Code Editor . . A 5) Initialize Data File . . . . . . Compile Rekey Inquire. . . . . . If Go . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . COMNANDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 .3.22 .3.31 .3.38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.4!0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Print. . . Trap . . . Execute. . ! (remark) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The 3.1 . Mount. . . Save rec . Delete rec Clear. . . Find . . . Lock . . . . LANGUAGE Enter. . . = (equals) . . . File A File . . . 2.2 .2.10 .2.23 í'.29 .2.34 .2.37 .2.39 .2.41 .2.44 .2.46 Code Source A Data . Restructure A Data Program Generator. . 6) 7) 8) 9) 10) MANUAL SENSIBLE SOLUTIONtññ Reference . .3.42 .3.44 .3.49 .3.59 .3.72 .3.76 .3.78 .3.79 .3.85 i DATA STRUCTURES Record l?ieKí Layout0 'Types. . a Data * 3 . R * * . · p 3 · . . 3 . . 0 0 . . S . . » . . . . . . . . . . . . 4A 4.6 4.7 . .4.10 S ? 0 . * . * p 9 o 0 s . . . . . . X . . . . . . . . . . . . . . . . . 0 . . . . . . . . . 0 . . . . . 3 . . 1 7 0 . Structure. Altering Translating' Foreign Data Multi—User Considerations. 40 e . 3 0 . . . . APPENDIX Specifications. 0 . . . . Complete File List . . . . . . . SOLUTION File Extensions. SENSIBLE SOLUTION Language SENSIBLE Files (and files) Main Menu Selections System . . . . . Error Messages. System MENU.SCC, ARRAY.SCC, The MENU.SRR . ARRAY.SRR SENSIBLE . . . . . . . . . . . . . . e a . . P . . . . . . . . S . . . O . . . . q . . . . . . . . . . . S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 5.3 5.4 . · · . * . . * · * O . . . . . + . . ¥ 5»5 . . . . . . . . . . . . . 3 . 0 * . . . . . . . . . . . . . . . . . . 0 . . . . . . 0 . . . . . . . 0 . . . . . . . o . . . . . . 0 . . . SOLIjTIONtm 5.1 Reference 5.6 .5.11 .5.13 . ii The SENSIBLE SOLUTION FILE The Language EXTENSIONS filename.COM Directly executable filenarae.SCC Screen format or report filename.SRR Source code filenarrie.RUN Executable filename.MS Master data filename.XS Key filenar!le·IQ Inquire filer,ame.LST ASCII SENSIBLE SOLUTIONtm code file format source file file SENSIBLE SOLUTION oroqram file file (for the report text machine .MS format file) and gelection criteria file P.eference 1.1 file The SOLUTION SENSIBLE FILE demonstration mail MENU main menu !Y1ENU .RUN .SCC .SRR ERRENT ERRFLE ERRFLE .RUN .KS .MS change system error message key message error error message data FLDFLE FLDFLE RECFLE RECFLE .KS .MS .KS .MS key !!'IE?·ÍORY .KS .MS ..d YEMORY list file data file screen format file source code file key program program screen format file source code file file file program information file ofof all field information field file of all key information file file all data file of all file information temporary memory variable key file temporary memory variable data file data SENSETTJP.COM SENSCTRL.MS TERMDEFS.MS installation/configuration program definition data file terminal definition data file SENSFREE.COM multi-user SENSIBLE.COI'4 ENTFLE .RUN SENSCRN .CON language executive program maintenance program data dictionary screen paintincc program source code editor program inítialization program file compiler program key file re-key programprogram data file restructure automatic program generator program quick report generator prooram SENSCMD .CONt SENSINIT.COM SEP'SCOMP.COM SEHSRKEY.COM SENSRSTC.COM SENSGEN .COM SENSINQRpCOM The LIST MAILLIST.RUN RIAILLIST.KS MAILLIST.MS AAILLIST.SCC MLAILLIST.SRR MENU " Language SENSIBLE SOLU'FIONtm system system utílity program Reference 1.2 The SOLUTION SENSIBLE MAIN Execute PROGRAMS MENU SENSIBLE.COM 2) ENTFLE .RUN Data 3) SENSCRN .COM Screen Painting 4) SENSCMD .COM Source Code 5) SENSINIT.COM Initialize 6) SENSCOMP.COM Compile 7) SENSRKEY.COM Rekey 8) SENSRSTC.COM Restructure 9) SENSGEN Program 10) The .COM SENSINQR.COM SENSIBLE SOLUTIONtm program Maintenance Dictionary A SOLUTION A SENSIBLE I) A Language Editor File A Data Source Code File File Data A ijata File Generator Inquire Reference 1.3 want a list of to"90000". After prompted with: you What Value do all zip codes in this the operator you enter you wish to use: Enter the number "90000". the data file that contain listed out. that file symbol, report is When the a ZIP.CODE value are greater than or equal be you will immediately finally 90000 of run, all records or greater will in be Notice that you are free to select a field even is not part of the You can also select information printed in the report. multiple criteria thus making your report more restrictive. Your report will contain only those records that passed the first test, and the second test, and sc) on. When you have completed defining your selection criteria, simply press the Ireturn] key after th.e"Enter Fieldname to Select by" prompt and you will move out of this cycíe and into the next phase of defining an Inquire format: if it Enter Fíeldname to Sort by: . At the top of your screen you will see a directory of all k'ey fields for Enter one of these field ríames to give Inquire your partícular data file. a sorting criteria for your report. Inquire will Send now ask output to where you want the report µrínted Printer, crt, or Disk fíle? (Press out: p, C, or D) elect to send it to a disk file your report can later be read by a If youeditor or word processing program for inclusion in a document or text When the report print out of letter. is finished youchose will toseehavea summary you the your selection criteria and display format. report If sent to your screen, press the Isl key or [RETURN] to indicate to the ?roCram that your work is complete and you will see the criteria and Zormat information: File Selected: " " Heading Option: Field(s) Selected: The SENSIBLE SOLUTIONtm Reference 2.49 Line 1 Line 2 (up to 4 JAnes) Se1ectíon crítería: Sort Key Se1ected: you want to save At the bottom of your screen a prompt will appear asking One of nicest features of Inquire is this format. ability"Y" to save itsanswer To save frequentlyandused formats in a disk file. to the it, You-r repcn"t questi-on then answer the next prompt with a file name. format will be saved in a disk file with the extension ".IQ". if Eriter format Fííename (save): wí1l now be returned to the original data file directory where you can begin the creation of another Inquire quick report, exit back to the main menu or the operating system, or re-run any previously áefined Inquire Remember, Use your Inquire reports are all named "filename.IQ'L reports. operating system directory to keep track of all the Inquire report. formats you develo> You , first data file directory is displayed by Inquire, you of either choosing one of the displayed file names to create report or you can press your [ESC] key to load and run a defined you choose the latter, use "Load previously report format. menu name and then enter the format" from the high-lighted The format that you specified (filename.IQ) of the format you wish to use. be displayed You can then examine on your screen. the format criteria will and, you are satisfied, run the report. time that the Any have the option a new quick If file íf The SENSIBLE SOLUTIONtíñ Reference 2a50 name from which file the following prompt: you wish to create want Fieldname headings Do you on a quick report. report? (Y Next, you will see or N): In a moment you will be selecting the field data that will be printed on the report in columnar form. Answering "Y" to this prompt will force Inquire to print a column heading that will appear at the top of every page of the is printed out. report as it The next prompt, Do you wish to substítute Fieldname headings? (Y or N): the option of either using the actual field names as headings IE a unique heading that you will specify. or substituting be above "Y" a select you that to time answer prompt, every field you to the printed on the report, another prompt will soon follow requesting that you specify whatever heading you want to see printed at the top of each page of the report. Inquire will ask for a field then Inquire will ask for a heading. · give you will on your report Make your choice and you on the report: you want Enter Fíeldname to will then be requested to enter the narne of a field print: At this staCe you should notice a directory displayed on the top of your You will screen that shows all of the fields contained in this data file. also see a status line displayed on your screen: Total print—out length: line This line indicates the current position for the start of the next field you Remember, you can only enter (columns) and the line number of your format. 4 Do maximum however, format. not, display lines as an Inquire of specify a how the A defines format length of report. the with confused your get this The SENSIBLE SOLUTIONtm Reference 2.47 print out will look thousands of records for each record that is printed, and in length. the report can be you press the If the bottom of Iesc] key at this stage, a high-lighted menu at will appear Use the space bar to move the high-light your screen. block to the desired option and press the [RETURN] key to activate the option. If your field name directory is very long, you can use "Next screen" and "Previ-ous screen" to scroll through it. "Line change" will shift you to another format line (from 1 to 4), "Space insert" will allow you to create spaces in between your columns (2 are automatically inserted), "Restart program" will return you to the original data directory, and "Quit" abort the Inquire program and return you to file the operating system or the will To turn off this main menu. to the prompt, six option menu and "Enter Éieldname to print," simply pres.s the {ESC] keyreturn again. Everything we have discussed up to now is simply a repeating cycle that will allow you to define the format of a record as it. is printed on your report -- field column, heading, line spacing, and column spacing. Every time that you specify field in half-intensity. fields that,you want printed print" prompt with Inquire will field to set ( ? "begín Fíe1dname Enter The now narne carriage a that field, a new the When you are on the report, answer [RETURN]9 return another directory will display the finished specifying all of the the "Enter Fieldnarne to -- phase of the report format definition: to Select by: you enter here will up: be used in a test that you are about < > ! ís Equals ís Less Than ís Greater Than ís Not Equal to ) Than ís I.ess or Equal to ís Greater Than or Equal to the Fíeld Includes the Value/Stríng ís Entered What / / / If Operator do you / wísh to use: Inquire will want to know how to select the records you desire. You just entered a field name, now use an operator to specify some value for all of the records. For example, a zip code you selected called ZIP.CODE, you could then choose the operator ")" to indicate to field Inquire that if The SENSIBLE SOLUTIONtrñ Reference 2A8 This running comment alerts the operator that the program generator is working. may pause for several Note that the generator seconds when integrating command a screen format the compiled This is file. file into because each field reference in a screen or report rnust be located and linked. an appropriate are encountered during program generation, errors If complete is displayed. All erro,r messages are self-explanatory. of error messages and explanatory comments will be found in the list When Appendix of this manual. is finished, will return you to it initiated the system level or the main menu depending upon how you it. any message A SENSGEN when you enter the file narne, SENSGEN finds that a matching program If, source code file (filename.SRR) already exists on the disk, ask will you wish to overwrite it that source code file -- "Overwrite?". you answerif If "Y", the automatically compiled source code file (filename.SRR) will replace The older the older source file bearing the name "filename.SRR." files will be lost. # ;? I C The SENSIBLE SOLUTIONtIn Reference 2.45 T Main SENSINQR.COM menu selection 10 Inquíre Overview: (SENSINQR.COM) a quick, powerful, data-scanning allow you to extract data Inquire provided with SENSIBLE SOLUTION. from a format; send the formatted create a unique and then save the display format report to the CRT, disk drive, or You can use any combination a dísk of to use. Each a a record meets the selecti-on that you specify can be printed out on from 1 to 4 lines The on the form the columns of the you You can the spacing between the columns and you can also blanks lines between the records. Inquire reports can extend to a. 127 The maximum width of columns. quick generator also provides an excellent tool experimenting with formats that you may SOLUTION report a SENSIBLE wish incorporate generating prograrrc "Inquire" is single file; file for future selection criteria for criteria fields that report. adjust report. print for into to in define facility will display printer; report. specify that fields will Inquire report later Operation: To execute command Inquire line: from the operating d>SENSINQR system level d:formatname type you can type out a [RETURN] "d" is the drive location of the format, and formatname is the name of format which you have previously created and saved using SENSINQRe Follow.í-ñg execution, the program will return to the operating system leveZ where a level If you choose to initiate Inquire by typing SENSINQR from the system by begin Inquire or by choosing selection 10 from the main menu, will a displaying directory of all data files and then request that you enter a The SENSIBLE SOLUTIONtñi Reference 2A6 , specified in If the data file thatbeyoudisplayed: another message the above message can not be found, will not found After entering a in Data valid Dictionary file name and drive location, RESTRUCTURE will messages, immediately begin execution. one after the will display five other, describing each phase of Itoperation as reads the old data file and translates into the newly created file. When the program is finished, a message will appear to remind you to REKEY the file and RECOMPILE all programs that access the data file. it it The program involves a great deal of dísk accessing, For this reason, a large data fij± having many keys. you have a multi-user system with large is time consuming. If be done when data files, we recommend that a restructure operation your computer system is quiet, such as overnight. RESTRUCTURE particularly RESTRUCTURE with One other multi-user can not restructure a data file you consideration: by another user. However, that is currently being accessed the corollary is also true -- once you have successfully initíated RESTRUCTURE, any other user attempting to access the same data file will be "locked out". % ·J . The SENSIBLE SOLUTIONtm ' Reference 2.43 SENSGEN.COM Main Program menu selection 9 Generator Overview: and then will read a specified screen format (filename.SCC) automatically create a file maintenance program source code listing SENSIBLE SOLUTION program (filename.RUN). (filename.SRR) and an executable by the screen format have (filename.MS/.KS) the data referenced not files If yet been initialized, also automatically the data initialize files will SENSGEN.COM a maximum of program. prior to compiling theit will accept The resulting be used maintenance may sixteen data fileso program file immedíately to examine, update, or enter new records in a data file. It be and This program also to quíckly modified develop a may more extended with sophisticated the source application editor, program. code o SENSCMD.COM, Operatíon: SENSGEN.COM may be initiated from either the operating system level or from The program the main menu. begin by asking you the name of the screen will format: file (filename.SCC) to read. Enter that name and you want SENSGEN maintenance program create source code for a (filename.SRR), initialize the appropriate data files they do not exist and compile (filename.MS/0KS), the source code into an executable program The SENSIBLE SOLUTION program generator (filename.RUN). goes through five phases: it will file fields -- Checking Data Initializing files -- Generating Command Source file Checking for Target Labels -- Checkíng for Goto/Gosubs -- ' —— ... The and for SENSIBLE each phase SOLUTIONtm tells which line of the if command file it is scanningQ Reference 2344 , Main SENSRSTC.COM Restructure A Data menu selection 8 File Overview: It often happens, as an application is put to use, that the structure of the data file must change. New fields are needed, old fields are seen to be unnecessary, some fields must stretch to accept more characters or shrink to SENSRSTC.COM, the restructure utilíty, provides a conserve disk space. convenient way of converting existing data files to the new structure without losíng any of the data. SENSRSTC.COM If) performs three operatíons: reads FLDFLE (the Data Dictionary) to determine what changes you have rrtade to the current file structure definítion. That is, reads the field names, location of fíelds within the record ("Offset"), the type of fields (alphabetic, numeric, date, etc.) and whether you have added or deleted keys© Then compares this old definition to the new definition. SENSRSTC it it 2.) in 3.) calculates the new "Offset" values -- the location of field within the record -- and embeds the new "Offset" values SENSRSTC each FLDFLE. containing It reads the original data file (filename.MS --the onefilerecord the original data that you wish to preserve), at a time, and rewrites the data out to a new filename.MS using the new file structure definition. need only restructure data files that have records in them that you wish you retaín. to are willing to abandon the data in a fíle, you need merely If INITIALIZE the file (using SENSINIT.COM) after you have made the necessary changes Remember, Data the Dictionary. though, you must never alter the in and then INITIALIZE a data fije that contains data that you wísh structure a complete discussion REKEY, on when to use the INITIALIZE, preserve. to and RESTRUCTURE programs can be found in the reference section on Data You The SENSIBLE SOLUTIONtm Reference 2.41 Struetures. Qperatíon: t: SENSRSTC.COM, e%RESTRUCTURE system level or from the from the operating system restructure. system level. If it level, d>SENSRSTC where filename file extension) run from either the operating main menu. is executed out a command line: program can be SOLUTION SENSIBLE you can type ### filename the name of the data file is "###" and, optionally, is the execution, program Following not need to specify the of records you want to you will be returned to the (you do number to initiate RESTRUCTURE by typing SENSRSTC from the system If you orchoose A Data File,°' the by selecting main menu number 8, "Restructure level be on dísplayed your screen: following prompt will Enter the Enter will name of the file the name of the data displayed: be Create work (Restructure file fi1ename.M$$ will abort if to be file on ******** restructured (filename.MS), and drive [ENTER] work drive : has (press to little the free following message or work drive letter) space) creates the new has to make a temporary work file before have Thus, disk time, to a storage data file. your f:jr will amount of data that is twice the size of the original data file3 RESTRUCTURE To provide for this extra work space, will allow you to desígnate a different drive location to contain the temporary work file* you will For example, your original data file is 1OOOK bytes in size, need at least 200OK bytes of free space on this same drive to avoid the necessity of designating a unique temporary work drive location. If your type in a different present drive location does not have enough free space, drive location letter than the one displayed. it RESTRUCTURE restructured contain an if The SENSIBLE SOLUTIONtm Reference 2o42 Maín SENSRKEYeCOM Rekey A Data menu selection 7 Fije Overvíew: time that a different set of key fields has been defined in an existing be rebuilt and the record must data file, the index-key file, fi1ename.KS, be the of active counter in the file must total number reset to reflect by re-keying SENSRKEY.COM performs these functions records in the file. SENSRKEY.COM should be be the SENSIBLE SOLUTION data file, filename.KS. has been data used any time that an exísting data file containing "live" SENSRSTC.COM) and the number or length of key fields (see restructured specified in the file has been changed. Any and wish to initialized an exísting data file (see SENSINIT.COM) SENSRKEY.COM. Once the records must the data use you in thatSENSIBLE recover file, be has SOLUTION able to use the data fíle been re-keyed, will filename.kS file to determine the number and locatíon of records stored in the data records "lost" the filename.MS file -- effectively recovering on during file initializing or restructuring. For a complete discussion when on Data see the section to use Initialize, Rekey, and Restructure, Structures in thís reference manual. If have you Qpera'tíon: SENSRKEY menu. command can called from the operating system level or from the main executed from the operating system level, you can type out a. be If líne: it is . d>SENSRKEY where filename extension) and, The SENSIBLE the is the name ###of where optionally, SOLUTIONtm filename data you ### (do filespecify may the file not include the number of records Reference 2.39 you want command you do not enter a number at the to re-key. If of the records line, all within the file will be rekeyed. end of the If you choose to initiate REKEY by selecti»g main menu 7, "Rekey A Data File", a promp't screen requesting the name of the data file will appear on you that you wish to rekey. be asked enter the file name you After to enter the number of records that you want to rekey will either the to or press [RETURN] key to re-key the entire file. you first initialized a file containing "live" data and you want to recover the data records, you must enter a number equal to or larger than the number of records in that file or simply press the [RETURN] key to rekey of the records in the file. Remember that any time that you use all SENSINIT.COM SENSINIT to initialize a data will display the actual number of records in your file. Thefile, re-key program will automatically rebuild the index-key file (filename.KS) while displaying the key values of does so. The program when all .records as finíshes rekeyinq willor stop the number of records that you specified comes to the end of the data If it it file. When SENSRKEY has the name of a data return to the main completed the re-key operation, Press the file to be re-keyed. again ask it will [ESC} (escape) menu9 you for key to If you have a large multi-user system you should refrain from using SENSRKEY while other users have access to the system. This is because the SENSRKEY program ínvolves a great deal of disk accessing, particularly with a large User data fíle containing many key fields. For response time may suffer. very large data files on multi-user systems, re-keying ís best left to quiet periods such as overnight. other multi-user One .not be The SENSIBLE consideration SENSRKEY can should be mentioned here. other same accessing the data user is currently initiated However, the corollary is also true. Once you have successfully file. initíated SENSRKEY, any other user attempting to access the same data file wí1l be "locked out". if some SOLUTIONtrrl 1 Reference 2.40 Main SENSCOMP.COM Compí1e Code A Source menu selection 6 Fije Overvíew: ís SENSCOMP.COM the SENSIBLE SOLUTION language compiler program. executable used (program) to compíle a SENSIBLE SOLUTION command SENSIBLE SOLUTION SENSCOMP.COM a search pseudo code. by a .SRR extension. name the you SENSCOMP.COM the into pseudo code and then compile the .SRR named filename.RUN. code You can execute SENSCOMP.COM from a new either the operating system level or frorn the main menu. is file specify followed file will file containing into will file into It for file write Qperatíon: File". location will letter "Compile A Source Code of your screen requesting that you wish to compile. Enter the drive the file you wish to compile simply logged on"to, are currently select option SENSIBLE SOLUTION main menu, A prompt appear at the top (program) you enter the name of the and then the name. (filename.SRR) resides on the drive you name. type a space and then the From file file file 6, If search for the command source file compiler program (SENSCOMP.COM) willdrive. An on the specified disk (filename.SRR) error message will be displayed the file is not found. press any key to clear the error message; the SENSIBLE SOLUTION main menu will return. The if The SENSIBLE ----The SOLUTION compiler goes Checking for Target Labels Checking for Goto/Gosubs Checking for Screens/Reporter Writing out compiledcommand SENSIBLE SOLUTIONtm through four phases: formats file Reference 2.37 - and for each phase tells which line of the command file ... is scanning. This running comment alerts the operator that the compiler Note is working. when that the compiler may pause for several seconds a integrating screen format file into the compiled command file. This is because each field reference in a screen or report must be located and linked. it duríng the compile, If any errors are encountered displayed. All error messages are self-explanatory. DUPLICATE .PROGRAM of When menu. The appropriate (Examples: is message THERE ARE SCREEN NAMES IN THIS PROGRAM. APPEAR ONLY ONCE IN A A and THE FIELD LENGTH WOULD EXCEED THE RIGHT MARGIN) complete and explanatory be found in the Appendix of comments messages manual. compile, modify your command not your program 4, "Source Code and then main menu SENSCOMP.COM completed, you to the main error this using an A If selection compilation is SENSIBLE SOLUTIONtm will SCREEN MAY list file will Editor" will return re-compile. Reference 2Á38 Qperatíon: SENSINIT can be Ifline: it is menu. command executed from either the operating system level or the rnaín executed from the operating system level, you can type out a d>SENSINIT where When filename SENSINIT filename extension is required). is the name cjf the data file (no tofile be you finished returned the system level. is will the file Dictionary to determine and disk the current identification, structure, field identification, Cícjes this by looking at the SENSINIT drive location of the data file. information in the two Data Dictionary files, RECFLE.MS, and FLDFLE.MS. If do the appropriate data files corresponding to the fíle name you specified SENSINIT new not exíst on the disk, fí1ename.MS the create two will files and SENSINIT works by checking the Data key fííename.KS. If there are any active data records will display the méssage: in the Thís fije has # data records. Do you REALLY want 'to ínijtía1íze file being initialized, SENSINIT thís fí1e (Y/N)? Consider When a data your response carefully. you INITIALIZE file containing data, the records stored in filename.MS will not be affected. However, the record counter, the total number of records in filename.ZtS, to any SENSIBLE SOLUTION will be set to zero. Therefore, it willThe appear record counter can be reset by program that the data file ís empty. using the here. REKEY program and entering the number of data records displayed 4 you have If INITIALIZE a changed the structure of the records in a data file, never data file containing data that you wísh to maintain. The data stored in filename.MS will become corrupted and the former valid structure of the data will not be recoverable. Always use SENSRTC.COM, the data fíle restructuring utility, to convert existing data files to a new structure without losing the data. The SENSIBLE SOLUTIONtm Reference 2.35 The Dictionary samesuccessfully not If you SENSIBLE no (typeAny removed. displayed extends theirSENSINIT If physical the be time Data R), locations. data beyond have initiated will if file. SOLUTIONtm that it Dictionary a initiated ' fieldwill file a multi-user SENSINIT fieldthe if always size. However, some file SENSINIT, type other will make being A logical warning a which second initialized initializes create record contaíns message system, the be alignment a user "locked any corollary zero length. a is you other file offset contains will the currently out". should containing beginning pass be A user is displayed warning any of as also be attempting accessing this theseoverlay aware of type a true. record message an if fields that Reference to Oncethe of overlay an field SENSINIT overlay will number access to same you requires has also 2Á36 the haveData can fields field (type correct field been be O), {ESC] When you This option will change by the line prompt">". [C] select Insert ([ESC] Enter = If Find Print [I]) keys, the following the appropriate Go Trap Mount Save Execute ! the or Change ([ESC] command options asked how by pressing displayed: mode be the key that matches the bold is The line a label. you anticipate that this command if marked command has Each a subset of each Your of these functions. questions about during program the command to perform you select [I] or [C], ten *'s, denoting a The the upper left-hand corner of your terminal. other places in your program, line rec Delete rec Clear Unlock remark Lock When particular labels and, at the [C]) will Each of the options pressing (activated bycommand. print Capital character) is a be You functions. will determine answer will execution. command you command command should give it field, willusedbe displayed in to cive this field is command to file branches be branched will a label. to from After each command that you insert or change, the ten *'s will again appear in the upper left-hand corner waiting for you to enter the next command Again, the decision. is yours as to labeling or press [RETURN). label command or not. You can always go back to a command and change it. Pressing the the escape key file, command operating system SOLUTION and exit the editor, save the edited SENSIBLE will return you to the SENSIBLE SOLUTION main menu or prompt. When you have finished editing your command di.sk file with the file name extension development process by compiling the source run-time file (filenarne.RUN) by using rnenu file, .SRR. will create a Continue the program code (filename.SRR) into a file number 6, "Compile A selection Remember, though, before the program can have initialized all data files your program. SENSCMD.COM File" {SENSCOMP.COM). compiled, you must byfirst Source be Code (filename.MS/.KS) The SENSIBLE a referenced SOLUTIONtm ReEerence 2.33 SENSINIT.COM Main Initíalíze A Data menu selection 5 Fije Over"víew: Every data file accessed by a SENSIBLE SOLUTION program must SENSINIT.COM created (initialized). the data file initialization is that creates the necessary data files, filename.MS and filename.KS, data handled by a SENSIBLE SOLUTION program. After you have used may wish to ever change a first be program to store program and built up a data base, there are times when of the fields with the data file. alter the definitions If key field to a non-key field or vice versa but. do not you change the location of these fields within the record, then you must also SENSINIT use to notify the key file (filename.kS) that the key designation has been changed. After you have used SENSINIT under these circumstances, also use the rekey program, SENSRKEY.COM to recover your data you rnust records. you If a alter the structure of a data in a way that would affect location of fields within the record, file the you must use SENSRTC.COM, restructure utility, to convert existing data files to the new structure See the section without losing data. on Data Structures in this reference manual for a complete discussion on when to use Initialize, Rekey, and the you ever Restructure. SENSINIT.COM performs four different operations as the data it initializes SENSINIT.CQM reads the specified field First, files. definitions in the Data These Dictionary. Second, definitions are stored in FLDFLE.MS/.KS. calculates the location ("Offset") of each field within the record, andit back st.ores that information into FLDFLE.MS/.KS. Third, creates a new and filename.MS one does not exist, creates a filename.KS to store key field information. sets the record counter in filename.kS (a Finally, reserved merncmy space containing a value equal to the number of "active" records in the file) to zero. if The SENSIBLE SOL[jTIONtm it it it Reference 2.34 m simply press the [ESC] and resume work. on your screen This allows [ESC] menu. options control reUsplay Pressing your will alwaysby either entering character to activate a a single you to make a selection and pressing selection function or moving the highlight to the appropriate Dage" command [RETURN]. rnay be "Next move the to to For example, the [ESC] menu and to the up the (which pressing indicates calls activatedby lN] and then pressing (the computer that you are ready to make a selection), N rnove the to may keyboard.) on Or, highligP.t key for the letter you your and press [RETURN]. "Next page", the appropriate selection, you find that your selection was If (eScape) key to redisplay the options in error, the line line will show you the name of the file beíng edited, are working on, the total lines in the program and whether the or OFF. is the first 17 lines of code will be you have opened an existing file, If mark the particular and a right angle bracket character displayed will keys and {UP code By edit. pressing you can your line of you can scroll through the source code file (filename.SRR) a line at a time. not already exist, you will be asked if you want to If the file named does By responding Yes, the filename.SRR file will be created create a new file. SOLUTION SENSIBLE and SENSCMD.COM The status number you Insert mode ON ( > ) ARROW] to write Óptions available begin using The editing source Editor follow: you can code. a to [DOWN program in you through the ARROW] Source Code. [ESC] [q] You viewing. Quit the source program you are currently have the option of leaving the Source Code Editor completely or of loading another fíle to edit. [ESC] jp] Using this option you may scroll the source code to the previous 8 lines. On the screen you will see the top8 revealing the line move to the middle of the screen, A angle bracket before right lines that came mark it. the new position of this line. character ">" will Iesc] [N] Using next this option you may scroll the source code to the On the screen you see the bottom lines will the the middle of move the to revealing screen, line character angle bracket right follow lines that it. ">" will mark the new position of this line. This option finds the beginning command in the source 3 . 8 A [ESC] The SENSIBLE [B] SOLUTIONtm Reference 2.31 file. It code. [ESC] [ESC] [E] [D] sets the line prompt ">" at the first line This option finds the ending It sets the line prompt ">" command This option by the line line at the position will delete prompt">". the at the of in the source file. last line of code. marked ÍESC] [M] Using this option you may inark the beginning or the end of a list of command lines in your program. Having thus defined a block of text, you may perform file/block editing operations (e.g., deleting a block, transferring a block to a new position in the program). [ESC] [W] A marked block of command a temporary file. your block marks. lines in your program is written to [ESC] [R] A [ESC] [T1 Use This action will not clear block of command lines which you have sent to a holding file will be "read" (inserted) into the program The inserted block you are'editing. will follow the line marked by the line prompt ">". this option to transfer a marked block of command The lines to a new position within your program. inserted block will follow the line marked by the line prompt">". [ESC] [K] Use lines [ESC} [H] Use file [ESC] [F] this option to delete this option to print (.SRR). The SENSIBLE listing of command of the source code · option wí1l position the line prompt ">" at the line number, line label, field, or file name which you The search specify. for a line proceeds only from the position in the program at which you exercise this option [I] a marked block This The you [ESC] a from your program. You not search backwards through a program. you specified is stored allowing to repeat your search rapidly. can last criteria that This option will insert a line by the line prompt">". Note the line being pointed at, not S(jLUTIONtñi after the position marked that the insert is after in front of it. Reference 2.32 , SENSCMD.COM Main Source Code menu selection 4 Editor Overvíew: SENSCMD.COM is the SENSIBLE SOLUTION Language You must source code editor. a code use SENSCMD.COM program source to "write" (create) The source code (filename.SRR). then be compiled into SENSIBLE file can SOLUTION pseudo code (filenarne.RUN) by using main menu selection 6, The compiled program can then be run by using the SENSIBLE SENSCOMP.COM. SOLUTION executive (main menu selection I). The program, SENSIBLE.COM following discussion will describe the operation of the source code editor. SOLUTION language command For a detailed description of each SENSIBLE by "Language Commands" editor, the please on refer the section to utilized in this reference manual. file Operatíon: SENSCMD.COM program. the rnain type out provides SENSCMD can 15 be different commands for entering or modifying executed from either the operating system level is executed from the operating system level, you If it line: menu. a command d>SENSCMD where filename required). When will The SENSCMD.COM be displayed SENSIBLE is the name can filename of the source code is executed from the main at the top of your screen: SOLUTIONtm a or menu file (no file the following is extension prompt line Reference 2.29 + + Load command-file source + The SENSIBLE SOLUTION Command for editing Source Quit + Editor V2.OC the space bar to move the highlight block to the desired selectíon and You then press [RETURN]. then be asked to enter the drive location and the name of a source file. will you wane the source you will be creating If to be stored on the default system drive, simply file the space bar to press advance the cursor to the file name portion of the prompt. Enter the name of the file and press the Ireturn] key. Use The following display Change @: Previous Transfer Iíne page block FILENAME.SRR will appear on your terminal: Insert Line End source Delete Line Begín source Read block Mark block Next page Wríte block Hard Copy delete bIocK Fínd Line Quít On Line: XXXX Tot Lines: XXXX Insert off The words Change are highlighted with a reverse video block. By linebar, pressíng the highlight will move to the next option your [SPACE] available through the editor. The highlight indicates the option you wish to choose. Pressing the [SPACE BAR] will move the highlight to the right and pressing the [BACK SPACE] key will move the hi.ghlight to the left. When you have selected the option you want, press your [RETURN] key and the option will be activated. Another to activate an editing option is to press the character key the upper case character lodged in each option. For example, to select the "Delete line" function. Throughout this manual, press brackets will be used to indicate that we are referring to a specifi.c key on your keyboard. way by indicated [D] The SENSIBLE SOLUTIONtm Reference 2Á30 . answer "Y", the screen will temporarily clear and prompts will appear requesting all of the information necessary to create a new field definition in the Data Dictionary. For a complete discussion on creating a new definition, read the discussion of ENTFLE.RUN, field Dictionary "Data Maintenance." 11 [ESC] {R] from the screen. This option will remove a field window Place the cursor over the first character prompt of the type [ÉSCi IrÁ The field will field window andfromthen remains part the Data Dictionary; not be removed You message see an of the record structure. error will there was not a field where the cursor was positioned. it if [ESC] {S] the cursor to the first character position of the field window and then use this option to áisplay the definition of the befield. Field name, File, Size, Col, Row, and Key displayed at the top of the screen. will You there was not a field see an error message will where the cursor was positioned. Move if [ESC] [F] a field definition whilebeyou are You asked this option. will whether or not you wish to save the changes. If you be that field will answer "Y", the definition for(FLDFLE.MS/.KS). you If screen wish to change painting, updated in the {ESC] [C] use Data Dictionary wish to change a file definition while you are painting, use this option.You will be asked or not you wish to save the changes. If you "Y", answer the definition for that file will be updated (RECFLE.MS/.KS). in the Data Dictionary If you screen whether may send a format description to a disk file The (filename.LST) or to the printer with this option. and a layout description include the screen list of will column position all field windows including eachthe row and of the first character of field window. [ESC] [H] You [ESC] [B] This option is used to create a box drawing on the Place the cursor at the desired position for screen. Now move the the top, left corner"anki type Iesc] IeÚ. cursor to the desired position for the lower, rightA corner of the box and press any key on your terminal. box will appear on your screen. To create a horizontal The SENSIBLE SOLUTIONtm Reference 2.27 your screen, simply create a box with no height. To create a vertical line on your screen, simply create a box with no width. line on [ESC] [U] This option is used to remove box drawings from the Place the cursor at the top, left corner screen format. of the box you wish to remove and type [ESC] [U] · [ESC] [E] As you screen paint, use screen and redraw boxes and deletions . insertions to redisplay the this option been have altered due to that and placed you have typed screen messages SENSCRN.COM [q] to exit Screen Painting. screen file? (Y/N) Y". Yes is the default answer. When [ESC] you choose If screen file? screen The as it SENSIBLE not to (Y/N) was and fields will as desired, press ask you "Save this the screen, SENSCRN.COM will ask: "Abandon "N" answer (the default) will re-display allow you to continue editing. save N". SOLUTIONtw A Reference 2 this the 328 79 + 01 + (left {line side) 01) 127 + 49 ·-f {right side) (line 01) + + + + Use [ESC] ¿j] To Shift Views wide. create report formats up to 255 columns beyond the 127th. column, simply place a line The next line down on the format screen becomes through 255 and will. be attached to that line so that when the report is sent to the printer, the two different lines on your screen will be printed on paper. on the same line level As we stated To extend a comma in the columns 127 earlier, you format report 127th. column. can Use the down also create up to 60 format lines on your screen. and advance the key to next to screen display your arrow line will scroll down one line at a time. You can Screen [[Jp arrow] [Down The arrow] SENSIBLE Painting Control Keys Pressing this key moves the cursor up" Pressing this key moves the cursor down SOLTjTIONtiñ one one line. line. Reference 2.25 [Right arrow] Pressing right. lLeft arrow] Pressing left. [CTRL] tÍi A Ictrl] [U] Whatever Ictrl] [D] [ESC] [ESC] this key moves the cursor one space to the thís key moves the cursor one space to the blank is inserted under the cursor. All characters to the right of the cursor right and the last shift character on the line is lost. cursor entry. is in the field will move window to the left will side character under the cursor will characters to the right of the cursor The deleted and the to await another be be deleted. All shift left. [j] you to paint both screen formats will allow The formats. width of a report format is report limited to 255 columns. Pressing [ESC] [j] will shift your display to the right or left so that you may view 127 columns of a report format with your 80 column CRT. {D] The move SENSCRIÑ.COM and below the cursor is deleted. All lines below line and up a blank line is created at the bottom of the screen. [ESC] [L] blank line is below move down A All lines inserted below the cursor. the last line on the screen is lost. and Iesc] [q] SENSCRN.COM ask: Do This ends an editing session. will a "Y", "N", wish the changes? Answer with you to save [RETURN]. The then proCram screen painting or willof the return to the original prompt line at the top wish to screen that requests the type of format you create. [ESC] [A] The screen painting program will ask for the name of the The character in the field firscposition. fieldbeto atbe theplaced. F: names may íeld current cursor will be up to 15 characters in already long. the field is be Ifplaced automatically. the Data Dictionary If will the SENSCRN.COM can not find the field in the Data indicating that a message Dictionary, will be displayedcontinue ask the field can not be found. to will you you want to create a new field definition. it It The SENSIBLE SC)LUTIONtíñ If Reference 2.26 if Main SENSCRN.COM Screen menu selection 3 Paíntíng Overview: This program will allow you to create and define a SENSIBLE SOLUTION screen format or a printer report format andthen store that format in a file named filename.SCC. Screen formats or "templates" are accessed by SENSIBLE and SOLUTION allow data terminal programs to entry used retrieval from your the layout define to formats display. Reporter primarily are screen of a report that will be sent to the printer device. operation: it may called directly from the operating system mode or SENSCRN.COM phases to menu. There the main are two (definition) and field definition and placement. screen painting SENSCRN.COM can be be selected from operation, When SENSCRN.COM and the following screen will immeciiately go blank is executed, your display prompt line will be displayed at the top of your screen: Enter the type of format you wish to load +-------—-------+ Format Screen Reporter +---------------+ Format and the space bar to move the highlight block to the desired selection and be asked location You drive the then enter to then press [RETURN]. will be creating to the name of a format. you want the format file you will be stored on the default system drive, simply press the space bar to advance Enter the name of the the cursor to the file name portion of the prompt. be stored and gress the [RETURN] key. you want the format which to in file be The following of the displayed top at your screen: line will Use If @: The SENSIBLE filename.SCC SOLUTIONtrrl file opened col = 001 row = 01 Reference 2.23 Screen The Format SENSIBLE Screen Painting program (SENSCRN.COM) allows you to a áefine SOLUTION screen format for use with SENSIBLE Because prograns. screens are often used for simple data entry and update, the SEKSIBLE SOLUTION also provides a facility to automatically generate a file maintenance program. See Main Menu Selection 9 -- "Program Generator." SOLUTION interactively format can be a maximum of 79 columns in width and 22 lines in Use the arrow keys on your keyboard to direct the cursor to any positi-on You may then use the various you want on the screen. escape commands and keys described on the next page to"paint" messages, control box drawings, horizontal, and vertical lines. You may also place titles, "windows" on the screen where data field entry and retrieval will take place. A screen height. Reporter Format The Screen Painting facility, SENSCRN.COM, will also allow you to create report formats that can be utilized by SENSIBLE SOLUTION programs to send formatted reports to your computer's printer. Reporter formats differ slightly from screen formats. For one thing, you can not use the box drawing feature that is available with screen format.a Another difference is that a reporter format can be much a maximum of 255 columns wide and 60 larger than screen Format: Obviously this is considerably lines in height. l3C larger than a standard columns by 24 lines. The screen painting display screen of facility, however, has a method for getting around the limitation of your screen size. The and [ESC] screen painting escape command, [j], will allow you to shíft back forth between two views of the reporter screen. The left screen is defined as column 01 through column 79; the right screen is defined as 127. Thus, column 49 through column there is a 30 column overlap area from columns 49 through 79. This overlap area will make easy for you to "keep your bearings" as you shift back and forth between the two areas of the screen. it The SENSIBLE SOLUTIONtm Reference 2.24 The SOLUTION SENSIBLE Version 2.0 Language MAIN I) 2) 3) 4) S) 6) 7) 8) 9) ID) Éxecuting execute level type: To d> a A A SENSIBLE SOLUTION Execute Maintenance Data Dictionary Screen painting Code Editor Source A Data File A Source Code File Compile Rekey A Data File program Initialize Restructure A Mta File Generator Inquire Program SENSIBLE compiled SENSIBLE MENU SOLUTION SENSIBLE Program SOLUTION From The Operating System Level progran from the operatinq system d: [RETURNj (where "d" is the disk drive carriage return key) locationletter and jRETTjRYj is the example, drive "A: " and you would like to execute if you are logged ontoSeries "MGLCHAR.RUN", which is on program the SENSIBLE SOLUTION .Yanagerrient drive "E: ", simply ty?e the followinC command line from the operating system level: Fo.r The SENSIBLE SCLUTIONtrrI Reference 2.3 A> If the SENSIBLE SENSIBLE E: MGLCHAR[RETURN] SOLUTION program you wish to execute does not reside on the default drive (the logged on drive), you will have to specify the drive location of the compiled program, as shown in the example above. Executíng From the main SOLUTION Program." menu A SENSIBLE SOLUTION Program From The Main Menu SENSIBLE level, selectbe option number 1, "Execute displayed on your screen asking you for prompt will letter and the name of the file (filename.RUN) that you A A the drive location want to execute. If the program resides on the currently logged on drive, press the space bar to advance the cursor into the file name portion of the and the program prompt. Enter the name of the program (filename) will yoube executed. the program name (filename) is shorter than 8 characters, If have to press the [RETURN] key to begin execution. the program will SENSIBLE.COM (filename.RUN) cannot be found on the designated disk drive, an will- report error message. If the file (program) is found, control will If SENSIBLE The program SOLUTION program. specífied When another SENSIBLE SOLUTION program. main the language menu. return to will immediately pass to the may specify a transfer to the program is finished, control Several different key stroke controls are available to control the execution SOLUTION of a SENSIBLE These keys and their actions program. are as follows: SENSIBLE The SOLUTION Execution Control Keys Ictrl] [I] [CTRL] fU] Clears [CTRL] {D] Deletes the character "under the cursor". characters in field Eield shift left to blank appears at right end of field. SENSIBLE Remaining Inserts a blank "under the cursor". in field shift right. Rightmost character in field is lost. characters SOLUTIONtñt the displayed value from the field window. Remaininq fill, and Reference 2.4 a {LEFT ARROW] Move [RIGHT ARROW] Move the [UP cursor field is position riqht within field. value of one unchanged. of previous cursor to beginning topmost field) ARROW] {DOWN left within field. Value of the one position unchanged. cursor field is Move ARROW] Move cursor field) lowest to beginning of next field. (Locks (Locks field. at- at Iesc] fj] Display next screen. [ESC] [q] Display previous [esc] isl Save Iesc] Lrj Delete record. [ESC} [F] Finds the record, which contains the fieldv'alue, that most closely matches the dis?layed field value. Possible errors: "not a key field", "end of encountered (record not found)" screen. record. ry file {ESC] [B] Finds first record (lowest value) the field in which cursor appears. in the file based on [ESC] fE] Finds last record (highest value) in which cursor appears. in the file based on field [N] Finds next record encountered." [ESC] [p] Finds previous record. file encountered." {ESC] Iesc] [C) [?] Clears buffer. all fields Display help screen. "Find next" and"find previous" beginning," or "find ending" in the Relates Trap command. NOTE: The SENSIBLE SOLUTIONtxt possible in file. [ESC} on Possible error": screen to spaces file "beginning of arid clears the preceded by a "find", "find field. All searches trigqer the must same of "end error: be Reference 2.5 Trace -- The SENSIBLE SOLUTION program debugger has a program debugger mode built into called "Trace". This Trace function will allow you to execute your SENSIBLE SOLUTION programs one processing, and line at a time, display values, change values and continue These specified places the to features will set traps stop at program. in provide you the programmer with a sophisticated environment for debugging your programs. SER'SIBLE.COM Before it when it the Trace program debugger can be used, SOLUTIOF was section on SEF'SETUP.COM in the Refer to the you first must have enabled originally installed on your computer system. Installation Manual. SENSIBLE the Trace mode has been enabled on your system, you can invoke tíme during the execution of a program. [T] and Press {ESC] be seven options displayed the bottom of at following your screem will Once any Líne #, [ENTER] T trap input, Here is an contínue, F explanation field of {SPACE] ínspect, each one síngle-step, L stop at of the Trace Líne #: This area at the bot.torn of your screen line that ís being executed. [ENTER] you If at this to contínue: ÍENTER] press the any time. key, you it theat perform (n) Lines líne, G goto Line N command options: wíll display the current program will exit the Trace mode. You can do [SPACE] síngle-step: Press your space bar to execute the current line of the program. After the line is executed the seven trace options will again be displayed at the bottom of your screen along with the next program line number. This may cause you some confusion the next line in the program happens to be an ENTER command. is the case, you will have to If this window before you can continue enter a value into the current field back into single-line trace mode. if The SENSIBLE SOLUTIONtm Reference 2ó6 perform (n) lines: This Trace option will allow you to execute (n) number of lines from the currently displayed Line ÉL You can execute a maximum of 255 lines in N trace mode. After the system has executed the specified number of options wIll again be displayed at the bottom of lines, the 7 trace The Line # value command the your screen. display line number will where execution stopped. N trap inspect: This option will allow the program to continuously execute until When the encounters one of the Trap options you wrote in the program. Trap is encountered the program will immediately switch to Trace mode and the 7 trace options at the bottom of your screen. will be displayed command The displayed Line # will be the Program line that encountered the Trap condition. T it When you select "T" for trap inspect, at the bottom of your screen: Save Help Indicate Delete Clear Page Lockíng the Trap you will appear Related jumpscreen (press one key) dowNarrow Uparrow that display want and the system Change target will line? display: (Y or N) The area marked number ###>, as will display either "default", means "default" that the standard system or "ignore". default is set for the Trap. "ignore" means that the Trap has been set a number to be ignored. represents the program line is displayed If number where program flow will branch upon encountering the specified Trap. If you choose to change any one of these three possible ## Fíe1dname that field displayed: be Array entry # (blank=done) you want to inspect or alter. The ([CR]= not array) array, enter the element number that you wish to If the field is anis not The an array, value display. press the [RETURN] key. it field will be displayed. You may change value; currently inIf the this however, you change it, this Trace feature will update the field if mode, To return to single line execution wi.th the new value. clear window [CTRL] fU] [RETURN]; the will display 'the 7 Before returning to execution Trap on with Trace options. assígnment2 mode and you press may be your screen asked: Y/N you respond "Y", any tine a value is moved into this field, 'the If system will automatically invoke the Trace triode and stop execution. This feature allow you to continuously execute programs in normal of will then automatically conditions occur. mode and invoke the Trace mode when the proper set L stop at Line number: This Trace feature will allow you to set a line number or label to designate where you want to halt program execution and automatically invoke the Trace mode: *************** Enter the line Íiine# or Label to trap (0=off) of the label where you want program execution to When the specified Trace to begin. halt line number or label i-s reached in the proqram, Trace mode will be automatically invoked. At that point, you can display fields, change values in fields, et.c.3 To turn off this automatic Trace enable feature, enter a "O" in the window. field and G The goto SENSIBLE number mode JAne: SOLUTIONtrrl Reference 2Á3 Trace option described above lets you automatically turn on the The "G" option described here Trace mode. let you specify where will mode Follow the same to automatically turn off. you want Trace procedure as that outlined above under "L", but instead, specify the line number or label where you want the Trace mode turned off and normal program execution to continue. The 0 > The SENSIBLE SOLUTICWtrn Reference 2.9 . Main ENTFLE.RUN Data Dictíonary menu selection 2 Maíntenance Overview: The by a SENSIBLE SOLUTION structure of every file and field accessed The Data Dictionary contains all program is defined in a data dictionary. on file and field names, of the information drive location, data file disk a offsets position types, field lengths, field masks, field (field within and comments on ENTFLE.RUN SENSIBLE record), a keys, usage. is file file the Data Mctionary. SOLUTION program that creates and maintains Before you can compile and execute a SENSIBLE SOLUTION program, you must define in the Data Dictionary all fields and files that are going to first be SOLUTION accessed by that program. In fact, every time a SENSIBLE must access the Data .Dictionary to determine the location program is run However, of the proper data files. the Data Dicticmary does not create or data only defines the structure of the data files. re-buíld files; it it OperatÁon: Since ENTFLE.RUN is controls to enter dictíonary as any familiar with the program, refer to ENTFLE.RUN about about the maintains files fields. ENTFLE.RUN command can be SOLUTION a SENSIBLE program, uses the same screen data into the dictionary and retrieve data from the SOLUTION other SENSIBLE not yet program. If you are SOLUTION screen controls used to execute a SENSIBLE the section on SENSIBLE.COM. and it 4 data keys, execated line: The SENSIBLE SOLUTIONttñ RECFLE.MS/.KS, files, and FLDFLE.MS/.KS, which contains which contains dírectly from the operating system information information by typing Reference 2ND the CÍ>SENSIBLE ENTFLElRETURN] (where "d>" the currently is or you may Maintenance." When select main rnenu logged selection number on 2, disk drive) "Data Dictionary is executed, a template will appear on your screen that will and delete modify, files and fields from the Data Dictionary. upper portion of the template will allow you to select and modify data file definitions and the lower portion of the screen will allow ENTFLE.RUN you to select and modi,fy data field definitions. will also allow you to print out a report of all field definitions for a particular data file. ENTFLE.RUN allow you to create, The When and you have finished using ENTFLE.RUN to define the that be accessed by your new program, you must by then INITIALIZE the S). When using the module SENSINIT.COM (rnain menu use you ENTFLE.RUN to change the structure of an existing data you must also RESTRUCTURE the and possibly REKEY as well. will file it The Structure Of The Data files selection file, fields file Díctíonary SENSIBLE SOLUTION data file consists of two disk files, filenaíne.MS and Filename.l4S filename.KS. is the master data file, Thewhich contains the actual data stored in straight ASCII character code. location of each field the record is determined from field definition information stored in within FLDFLE.M"S. Fields are not delimited by commas or other field separators. Records are stored on 128-byte block boundaries. For example, a SOD-byte record occupies four 128-byte blocks (total 512 bytes) with 12 bytes ignored at the end of the fourth block. This speeds disk access and insures correct record locking on multi-user operating systems. A Filenarne.KS is the index-key a which maintains "B*-tree" of record file, data master (filename.MS). This method provides pointers in file Although all data files exceptionally fast access to data records. generated by SENSIBLE SOLUTION are in straight ASCII format, the B*-tree format is not in straight ASCII. the The SENSIBLE maintenance: (SENSRKEY.COM), utilities The SOLUTION are explained SENSIBLE Language also a data file initialize and SOLUTIONtñi includes restructure in detail later. a utilities for (SENSINIT.COM), re-key (SENSRSTC.COY). data file a data data Reference file file These 2.11 Usíng Ytju can system execute level. the Data SENSIBLE Díctionary SOLUTION Maíntenance program ENTFLE.RUN Type: d>SENSIBLE ENTFLE[RETURN] {where "a" is the operating system from the operating drive location prompt) or select option number 2 from the language main rrtenu, "Data Dictionary The following Maintenance." template will appear on your screen: The + SENSIBLE SOLUTION íjata Dictionary Maintenance FILE File File Key I) 2) 3) 4) 5) + INFORMATION * Use: 128 Byte Segments: I********] NumberLocation: Of Name: #: ######## Name *************** *************** *************** *************** *************** Size ### ### ### ### ### Offset FIELD Case 6) 7) 8) 9) # of *************** *************** *************** *************** ### ### ### ### Offset #### #### #### #### INFORMATION # (Y/N): Keys: Size Name File Name: I***************] ****************************** ### #### Decimal: Offset: *********************************** Only * 'CR' Field Name: Field Description: * Type: Size: Default Entry Mask: Upper Key #### #### #### #### #### ************************* ## Number Required On ******** Key (Y/N): Entry (Y/N): * * * <= The => SENSIBLE SOLUTIONtm Reference 2.12 This screen definitions) and FLDFLE (the will update both RECFLE (the field definitions). You may create a new file definition or modify an existing definition by typing the value in the "File Name" field window and then You can also search for an existing pressing [RETURN]. value by typing the [ESC] key value, then using [F] to find the closest (partial or full) approximation of the value or by using the find beginning/ending/first/last controls (see SENSIBLE.COM). new or modified definition is saved in the Data Dictionary by pressing [ESC] [S]. You may also delete definitions frorn by pressing [ESC] the Data Dictionary Ir). The Data Dictionary FILE and INFORYATION, screen is divided into two parts: FIELD INFORMATION. The a brief discussion of each following is field window on the Data A Dictionary screen: file Fije Name: file name Enter the name of the can be no longer that file than 8 information you wish to create, delete, characters in length. or edit. The Do not change" the "File Name" of an existinC data you intend to file unless references change the name of the actual data on the disk and to file all the data file in your programs. [ESC] a name by pressing [R], the entire file definition If yoube delete file deleted including of that all file's field definitions. will Fíle Number: The value displayed in this maintained by ENTFLE.RUN. field window can not You represents directly the change internal the value. file number Locatíon: This field window will allow you to specify the disk drive location of this particular data file (filename.MS/.KS). a new file If you toarethecreating definition, this field will automatically default currently logged on and a drive location. If you save file definition the "Location" field window is left blank, the Data Dictionary assume that the new data file will located oró the currently logged-on drive. is . Number This this The Of 128 Byte Segments: window will display the currently defined size of The displayed particular data file (filenarne.YS). value field SENSIBLE SCLUTIONtm a record in is expressed Reference 2.13 in byte 128 Use: You may Number This file. Key The write units. a comment of Keys: field window on the use will display of this particular file. the number of indexing keys used by this Name: allow you to specify up to 9 different key fields. Data Dictionary will A new data key field name can not exceed 15 characters in length. number file be INITIALIZED (see SENSINIT.COM, Main 5) before must Menu Selection be displayed in any of the "Key Name", "Size", or "Offset" information will of the Dicticmary Thus, Data this portion screen. you change a key field definition or create a new key field in the FIELD INFORMATION portion of this screen, that change will not appear in any of these three fields until you have INITIALIZED the data file. A if Síze: These display the size of each key field specifíed for field windows will The size of the key field is expressed in bytes. this particular file. key fíeld can not exceed 72 characters length is an alphabetic type in it type field (type field (type "A") and digits in length if it is ifa numeric A 14 "N"). Offset: These field will location of the key fields the offset of the re?resent windows display values (in bytes) that indicate the The displayed values within the record. byte each key field. in first FIELD INFORMATION portion of the Data Dictionary screen you must into this [ESC] To return the cursor to the FILE [j]. the-- screen use the "quit" command -- [ESC] fQ]· To move the cursor use the "jump" command INFORMATION portion of Fíe1d This Name: you to create, field bywindow willto allow the name of the definition referring exceed here must not any alphanumeric of the following The SENSIBLE field. characters in length. characters and some punctuation characters in a field namé: SOLUTIONtn1 15 or delete a field edit, The field name you enter The field name may contain marks. You can not use any Reference 2.14 ( ) [ ] < > / + * = - & The brackets surrounding the field window on this screen indicate that this You can, therefore, conduct a search for any "Field a key field. field isvalue Name" Dictionary by using the currently on file in the Data appropriate SENSIBLE SOLUTION screen controls (see SENSIBLE.COM). File Name: name displayed in the FILE INFORMATION any conduct a search The file for in this field window is the same file name displayeá and you can block on the screen. is a key field It Data Dictionary. file name currently on file in the between here concerning the relationshi? As you a search. you are conducting Narrie" on the currently file, that "File name. Zield name always display the File correct field for will file names are arranged in alphabetical order and there corresponding field names are arranged in alphabetical order under their respective parental file important One point should be made Name" when names "Fiéld "File through the field scroll window Name" and names: Field This field Descríption: window 30 character you are defining. field Type: You may SOLUTION must a will allow you to enter a description specify the type of file willbe Type A N D O R The field that you are creating. Every allow you to use 5 different types of fields. defined as to its "type": of the SENSIBLE field in Data alphanumeric characters numeric data date entered in Gregorian form and stored in form overlay field, stored as an alphanumeric string record number julian is strictly alphabetic characters and numbers. This field type of field is generally used for strings. You can not use numbers written in type."A" fields as numbers for performing calculations. Type "A" Type "N" involved The SENSIBLE field is of numbers must in numeric calculations SOLUTIONtñí composed O through 9. designated be Any as fields that are type "N". Reference 2.15 "D" SOLUTION dates. Dates are field is strictly one of several forms entered into SENSIBLE dd/mm/yy, programs in -- mrn/dd/yy, The date format that mm/dá/ccyy, or dd/mm/ccyy. your system uses will depend upon the date format that was specified during the initial setup see SENSETU?.COM. dates are stored internally All in SENSIBLE -number. The number SOLUTION programs as a julían Date is equal to the number of days from january 1st. 0000 A.D. to the specified date. Type These fields are overlay fields. fields are composed of two fields. An overlay field wíll always interpret the fields it is subtenáing as alphanumeric string type fields. "O" Type or more Type "R" fields are record fields. temporarily store a value to locate from a file. There ís a thorough discussion the section on Data Structures A and record field is used to retrieve any desired record of these five different types of fields in in thís reference manual. Síze: must enter the size or "width" of the field you are creating or editing window. of 255 characters Most fields can be a maximum in in this field length. andKey fields, however, can only be a maximum of 72 characters be in 14 length fields that contain numeric type data (type "N") can only You characters in length. Decimal: Enter the number of decimal places that will be recognized definition. You can not exceed 4 decimal places. Offset: Most fíelás that by this field Consequently create will not require an offset value. There is one exceptior-, the cursor will rarely move into this window. Overlay type fields (type "O") will require that you specify an however. of bytes offset value in this field window. The offset value is the number from the start of the record to the beginning of the field. We will discuss the use of this offset in more detail under the section on overlays. yc)l3 the field you If value displayed a by defininq are currently in the "Offset" field the system at the time the data file (Y/N): must enter a "Y" or "N" into not the field you are áefíníng is Key You The SENSIBLE SOLUTIONtñi is not a type "O" field and there is window, that value was calculated was initialized. thiskey field window to indicate whether or a field. Reference 2A6 Default Entry Mask: This 35 character width field will allow you to enter "mask" parameters that will define the type of data that can be entered by the computer operator. Later on in this discussion we will give a thorough description of the mask parameters available to you and show you the real power of this rnaski.ng feature. Upper This case Only (Y/N): field window will or lower case) that Case the type of characters allowbe you to define by entered can (upper the computer operator. 'CR' Requíred On Entry (Y/N): This field window will allow you to define whether or not the computer operator must press the [RETURN] key after he or she has filled a field window. For example, you have defined. a 5 character zip cocíe field and have answered "Y" to this question, the computer operator will have to press [RETURN] after entering the fifth digit in order for the ?rograrrI to continue execution. if Defining An Input Mask For A Fíe1d The An SENSIBLE SOLUTION allow you to define an "input mask" for a field. input rnask defines will the manner in which a field will be entereCí frota the The input masking keyboard when an ENTER program commaná is executed. techniques used will allow left or right justification of fields within the "forced" character entry, and characterfield width, automatic formatting, by-character validation against "inclusion" or "exclusion" classes. As you a that An The recall frorri the previous discussion, particular field window will handle you such can as: * accepts any keyboard character A acce?ts any alphabetic # accepts any also accept appropriate) input mask SENSIBLE digit, definition essentially SOLUTICWtm (for or how or characters space NUMERIC spaces controls the type of data except control character Cl-9 leading define a fields, minus "N sign, will when this particular type of Reference 2.17 The mask field can be entered by the computer operator. itself is string that is stored in the tiata Dictionary in the field window called"Default There are Entry Mask." different characters that can be used in the input mask string to define how each operator keystroke will be accepted and by a 9 handled the prográm: [ J ( ) < > ! ? \ classes of characters that will be either accepted or may define certain rejected ín a field window by using square brackets in at a given position [ ] the "Default Entry Mask" field window. Square brackets that face in be the characters the brackets accepted by the indicate that inside .]will [ indicate that the window. Square brackets out that face field characters inside the brackets will not be accepted by the field window: You [AEFHX..Z] accepts any oÍl the characters a, E, f, H, X, Y, or Z. "X through Z" is represented by X..Z. the field has been marked UPPER CASE in the Data Dictionary, lower to upper case before case letters will be converted testing for acceptance.) If ]13579[ will that accept is, any printing character EXCEPT the odd digits digit, space, letters or punctuation. any even You may also indicate the characters that will positi-on and./or adjacentmaskpositions within the parentheses in the input string: (1O)A accepts ten alpha (or (2)[YN] accepts two left is The arid displayed > "Y" or "N" space) be accepted at. field window a by single usíng characters strokes, but can be uSed to indicate right angle brackets in the field window after eack- keystroke: no other how each characters. character indicates that keystrokes accepted into the field will under the cursor and the cursor will then move to the right. a'opear < The SENSIBLE indicates SOLUTIONtm that keystrokes accepted into the field Reference will 2s18 right side of the field window and then leftward as other characters are entered -the sanie way that pocket calculator display appear at the will much ' works. ' move a You can even mix these last two input sophisticated entry display. For example, input mask: mask if you characters specified to achieve the followinC a <#######>.### the operator's screen would first accept up to 7 digits from right to left. in the "units" part of a number When the units part is full, OR the operator types a period, the field window will then accept up to three decimal digit key strokes and display them from left to right. You may absolutely specify whether required ! by using or not an entry by the computer an exclamation point in the input is string: operator mask indicates that characters after the "!" MUST be entered into the field. The input routine not permit you to move the cursor out of the field will window until these characters have been filled with keystrokes. You may mark within specify that the input ? a field rriask window string: entry be optional by using a question indicates that the character positions after the "?" may Under this condition an ENTER unfilled. left program command automatically in "empty" positions with a will appropriate space or some other character. In the case of numeric type fields, for example, the field window would be filled with trailing The "?" character zeros. in an input mask is the regular default value of an input mask. That is, be character positions may normally left unfilled in a field window. be fill , The SENSIBLE SOLUTIONtw Reference 2.19 Both window of the input mask ínput characters "!" and"?" example: For definition. !#==/?#É#-###t mask may be mixed within field a The area accepts a telephone number like 206/555-1212. code an is required but the last 7 digits are optional; Eb'TER program command not permit the user to exit will the field until the fírst 3 digits have been entered. use the backslash character "\" to force the following character in This option will allow the operator to enter to be taken literally. mask characters special characters like that are identical to the input do not need parentheses. Non-maskinq characters to be forced with a This lets you format a field without the need for backslash character. special parsinq or computation. For example: You may a mask backslash indicates that the next character in the is to be taken literally as a "forced" character. \ \(<###\) >!###-#### Part \ü-<##### mask a mask that allows entry of a telephone number in the The parentheses and dash are "(123) 456-7890." form The area code and appear automatically. "forced" is 7 or but the the number must be digits optional last An ENTER statement entered. in a program will not let leave the field window until they are the operator typed. is The 78". part numberand such as "Part #AThe "forced" appears automatically. is digits portion of the field is right-justified within the last positions of the field to sort correctly on its numeric value. accepts "Part #" a 5 F: íe1d Lístíng For Fije the cursor is residing in the lower portion of the Data Díctionary you can then jump to another screen by pressing screen, FIELD INFORMATION, The second screen of ENTFLE.RUN out a Iesc] {jj8 will allow you to print Simply a report of all field definitions associated with a specified file. A message enter 'the data-file name andpress the IreturiÜ key. will appear Once The SENSIBLE SOLUTIONtññ Reference 2.20 of the report -- the at the bottom of your screen requesting the destination and a 116 Choose one of the three options the CRT, or the disk. The be include of the produced. report will report will field all information from the Data Dictionary screen for the particular f.i.le that you specify: printer, column Field Fiéld Name Description Type Size Decimal (Y/N) Key Offset Case Only Required On Entry (Y/N) Default Entry Mask Upper 'CR' return the cursor to the screen press [ESC] [q]· To Specía1 There are which. The you FIELD Consíderatíons a few special should always INFORMATION When Using portion The Data of the Data Dictionary Dictionary considerations concernin';; the Data Dictionary of be aware: files should be erased from the THE DATA DICTIONARY. disk. -- Deleted IF IT IS -- Location-changed fíles niust be moved to forget to nove both the FILENAME.MS and -- Newly-defined files must be INITIALIZED before a program can be the data file sets all of the field compiled. INITIALIZING "offsets" (defines the location of the fields within the record) for the Data Dictionary. -- Re-defined files must be RESTRUCTURED to accommodate the changes in field definitions. If the fields have not changed in length or type, but the key-fields have been changed, you must INITIALIZE and then REKEY the file. SENSIBLE STILL SOLUTICWtm IN their DO NOT ERASE new FILENAME.KS drive. files. Reference A Do FILE not 2.21 -— the length you have modified If field, you must use menu selection or the mask definition of any 3, "Screen Paintíng" to re-load the file into SENSCRN.COM (screen painting module) and then resave the screen format. All SENSIBLE SOLUTION programs that data files must be re-compiled since the access the modified compiler stores information about the data structure in the compiled program. you have changed the file names, you must code before compiling. modify the source first If For more information concerning section of this reference manual, The SENSIBLE SO'LUTIONtxñ the Data Dictionary refer to the which covers data structures. Reference fourth 2w2? LANGUAGE COMMANDS Table of Contents Enter = . . . . . . (equals). . . Expression Location . Portion. . Trim . . . Fill Actual . . . If. Go. . . . . . . . . . . . . . . Save . rec. . . . . . . . . . . . . . . . . . . . . . . . . . . · . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * . . . . . . . > * . . . . . . . . . . . . . . . . . . . . . . . . . P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¶ . - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.22 3.24 3.26 3.28 . . . . . . . . . . . . . . . . . . . . . 3.30 3.31 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.20 3.21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.40 . . . . . . . . . . . . . . . . . . . . . . V . . . . . . . 3.42 group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q . . . . . . . . 4 a . * 0 . . . . . Record number. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 3.5 3.9 3.12 3.15 3.16 3.17 3.18 3.19 . Buffer . 3.1 . Delete rec. Clear . 3.32 3.34 3.35 3.37 Return Mount . . (test condition) goTo. . (test condition) goSub . Duplicate key check. . . Record not active check. goTo . . goSub. . Goto save The . . (active) Net . . justify.Records. total . . . length. length . Max . . SENSIBLE SOLUTIONtm Reference 3.44 3.45 3.47 3.i Find. . . . . Exact. . Generic. . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . g 0 . . 0 . p p p . . . · · · · . . . . . . . . . , . . . . . . . . . Related. Fírst Last . . . . . . . . . . . . . . . Next Previous. Prínt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 . 3 At · · · · · · 0 * p . . . . . . . Error. Format line #. 3 . . Wídth =. . . . . . . Línes =* . . . . . . Max lines =. . . 3 . Blank lines. . . O . vertical Tab to line Page eject . . . . . print Control chrs . box. ¢ 3 * * # . 0 . Tra> 3.49 . 3e52 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.53 3.54 3.56 3.57 . . . . . . .'. . . . . . . . . . . . . . . . . . . . 3 2 . O . . . . . . . . . . . . . . . . . . 3.59 · o p * · p q * '. · 3 . * · · 0 3 0 s · s 0 0 3e60 . . . . . . * . . . . . . . . . . . . . . . . . . . . D . . . . . . . . . . . . . . . . . . 3.62 3.63 3.64 3.65 3.66 3.67 3.68 3.69 3.7'0 . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 . . . . . . . . . O » . 3 . . . 3 h e Q . . . . . . . . . . . . . . . . 0 . . . . . . . 2 . . . . . . . . . . . . . 0 . 0 . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . ." . . . . . . . . . . . . . . . . . » D . . 3 » @ . . . * . . . e 3 . . . . . * . . . 0 . . . . . . . . . . S 4 S e # $ + e . 3J71 3.'72 · · Q · · · o · 0 3 i e . . o . . . g . . . . 9 . . 3 0 o . s 8 0 Execute · * » P * O Q · O * D 3 0 · · · * 3 · . * 0 0 a O 8 > · * s 0 e 0 3 0 3 p o * ó Cp p 0 0 · · · o · 0 · · b a * 0 o q & O S eg g . . . . . . . . . . . . . . . . . 0 . S . . . W . a S o76 J76 3o77 3 0 « g O . . S V P S * S . e * a S O . * . O . g G a 0 . 3.78 s @ 3 0 , , , * , 0 * * * * * 0 0 e # & 0 % $ & * 3 * w P 8 3 0 * 3 O O . 8 O D · & · * 8 a C * 0 @ e 0 CP · · 0 . . . . . . . . . . . . . . . & . . . . . . . » . . J79 3»80 3v81 . . . . . . . . . . . . . . . . . . . . . . . . . 3.83 file file Com Run ! (remark) Lock0 7 $ o » Screen * o . lj g fíle by Record fíle All records Unlock* ¥ · Screen File The 7 SENSIBLE g · 3 » 3 3 · 8 3 · · · 0 · · & · 0 S e * e 0 · · > · · · Q · * 9 » # * 0 g · · · 0 S e · · » e > » . ¥ · 0 b e * · · · P 3 P P 7 3 r> a 0 8 O · * G S S & · P » V · · 9 * P 3 · O 0 SOLUTICWtm Reference 3 3 3 *85 3Á35 3 ñ36 3 3.ii + Ent-er + PURPOSE: This has command been read is used to enter data from the terminal from the disk. or from a record that USAGE: [RETURN] IEJ cjr pressing Select ENTER bv pressing highlighted. After the selection you will see the word displayed on your screen. a prompt of 15 asterisks is by when the option "enter" followed *************** Type the name of the field that is to receive the dat.a. The EDITOR will consult the Data Dictionary to verify that the field you named exists. If does not, a message to that af fect will be displayed on your screen, and ít the EDITOR will wait for you to enter an existing field name. After entering the field name, you have the option to define a mask for the mask defines the manner in which data will be entered from the field. This The masking techniques command when used executed. an keyboard enter is as as width, the of data allow entry well withiri field will left or right automatic formatt íng, "f orced" character entry, ar.á character-by-character (Masking i s classes. validation against "inclusion" orData"exclusion" Dictionary in the section on "Data explained in the discussion of the The Structures.") default- standards are right to left data entry for numeric fields and left to right data entry for alphanumeric fields. A 32 character on your screen that will wide prompt will be displayed contain the default entry mask as defined in the Data Dictionary. the prompt line is empty then no entry mask was previously specified in theIf Data Dictionary definition mask for that field. In either case, you may elect to override the default mask. for this one particvla:wi.! user entry by simply Your new definition specifying a new entry apply for this entry change the Data Dictionary definition of this field not only; it will enter c i- throughout Next the passwor& The your program. EDITOR SENSIBLE If will ask you ii! you wish to designate you answer "yes", dat: a entered into this SOLUTlolgtIn this field field from Reference 3 . 1 as a the keyboard will not be displayed on the screen. want the program to branch to a help screen for the field you have line in your program that you can give the label of the command displays the help screen. Subsequently, this help screen will always appear when the [?} key is pressed. you have multiple help screens in your program, you will need to reset the help screen labels appropriately. If you named, If you elect. to set a branch to a help override a TRAP command for help screen. If screen, will temporarily this This asked for a label to branch to on an "up arrow." the should go flow feature will allow you to control where program if do here, a enter an [up key. not label arrow] operator presses If you You can also set program flow wíll branch to the previous "enter" command. (See TRAP command.) Now the EDITOR a separate TRAP for up or clown arrow. ask you By responding "yes", the new you wish to save thís command. will command line if will be inserted ínto your program. Recc>rd number discussion) fields (see "R" type fielá in the Data Dictionary ENTER command use an to an you case. special interestíng provide If automatically do a search for reference an "R" type fíeld, your program will keyB the specified record immediately after the user presses the [RETURN] do a search for a blank, the a record number system field is will left If (zero) record number which has the effect of clearing the screen and memory buffers for this particular file0 Once created, the command line in your source code file will look like one of Ehe following lines: You will also be O (MASK VALUES) Enter (FIELD) mask Enter (FIELD) password type Enter (FIELD) mask Enter (FIELD) mask (MASK VALUES) Only those subsets of the The SENSIBLE SOLUTIONtm (MASK VALUES) command that password type on help on you up gosub on help (LABEL) LABEL arrow goto selected gosub will LABEL be displayeCL Reference 332 " To wríte an ENTER command: REQUIRED entry: OPTIONAL entries: FIELD NAME LABEL MASK PASSWORD GOSUB ON The SENSIBLE SOLUTIONtm UP TYPE HELP SCREEN ARROW GOTO Reference 3.3 * — — PURPOSE: The "equals" store option in it might a "equals" allows you specified field. look like this: this When command Once and or calculation field, value, command a using new written, line a 1=(FIELD2)+(FIELD3) FIELD FIELD3. to define ís executed, FIELD1 will become equal 'to plus FIELD2 USAGE: This is activated by pressing {=] or pressing [RETURN] when the of 15 asterisks. field is highlighted. The EDITORwill display a prompt results Enter the name of the field into which the new calculation are to be moved. Next the following subset of options will appear on your terminal: command Expression Location Portíon Trim Net (active) records total Records These options will be explained in Fill detail Actual length on the following Max length justify pages. Kk C The SENSIBLE SOLUTIONtm Reference 3.4 + + Expressíon + + USAGE: you wish calculation, If to data from move one field to another or perform math a this "Expression" subset. You should note this one specíal case: a value into an "R" type If you move system an immediate (record number) the perform search to find field, will the record associated with t-he vaíue. This particular feature ís unique to record number fields. use If you wish to move the value stored in FIELD2 into the expression FIELD1=(FIELD2), perform the following I) 2) Select the FIELD1 moved) Enter be This = (equals) (the name option of the by Select the Expression option [RETURN]) "Expression" and 4) Fill will appear in your program line -- as indicated by steps: [=j field into which the 3) in the Expression pressing FIELD1 by pressing [E) new (or value is to highlight (FIELD2) as: FIELD1=(FIELD2) and then move the results of that you want to perform a math calculation [E) The calculation into FIELD1, the key. press editor wíll then display a prompt line wherevou can enter the expression. Here is an example of how an Expressíon type ccnnmaí"íd line might appear in your program: If FIELD1=(F1ELD2)+<1O>*(F1ELD3) The SENSIBLE SOLUTION performs math caículations by startíng at the left SENSIBLE SOLUTION side of the expression and then workingto the right. math expressions frcnn math expressions found in syntax differ slightly languages such as BASIC or Pascal. The SENSIBLE SOLUTIONtm Reference 3.5 There are four operators + addition used in the - subtraction SENSIBLE multiplication * The convention used in the Expression manípulated are as follows: ( [ < )'s J's >'s must must must be be be used used used SOLUTION / Language: divisíon line to define the type of data to around field names around alphanumeric values around numeric values -- literal be strings Addíng together two alphanumeric values (strings) provides a concatenated +[SKI] [WEAR] SKIWEAR. example, adding results For result. in -The SENSIBLE any command Expression" inclusion of SOLUTION of one-dimensional arrays in Both the "If" and "Equal Arrays are indicatedby the ín the expression line. Language supports an expression that has commands an ARRAYS ~~ the use line. have this capability. ampersand ( & ) The SENSIBLE SOLUTION A utilízes a flexible means of accessing arrays. value stored in a field ís used as an array counter to indicate which element of an array of símilarly-defined fields is to be accessed. array of in alphabetic The length. An by fields is allocated by assigning as many field names as desired sequence within the same file, all with the same data type and SENSIBLE SOLUTION organizes fields within a file ín ASCII order field name. Assigning the names in sequence insures that the elements of One the array are contiguous. important If the names of array may not be access the fields conÜguous, the data correctly. point: order, fall inSOLUTION do not and SENSIBLE the elements of the will not be able to the first particular element of the array is accessed by specifying The system begins element of the array followed by an array counter value. at the first element of the array then steps down through the buffer, by the length in bytes of the first element, until reaches the desired element. A it Thís allows the programmer to regard a subsection of an array as array in itself simply by specifying the "first" array element as a the middle of the array. to is the programmer's responsibility hand The system happily arrays are accessed in a valid manner. will It The SENSIBLE SOLUTIONtm a valid field in see you Reference 3.6 that the 13th element of a 12-elenient array of the following field. -- which is probably a meaningless chunk a field, not a numeric array counter must be a variable stored inaÍ"ways separated from the constant. In the expression Tine, the counter is( & ). first array element field name by an ampersand The and the field name follows the the array counter precedes the ampersand, then this will indicate that the value of the array element is to For example, expression, MONTHLYSALESO1 is the in the following The total value of a 12-element array of sales-by-month. element of first If ampersand, be read. (Tm: ALsAIjEs)+(mNTH)&(mNTHLYsALEso1) equal to The value retrieved from correspond to the value stored in the array "MONTHLYSALESO1". "TOTALSALES" plus MONTHLYSALESnn the array position specified by "MONTH". i-s will the ampersand is the first character in the expressi-on line, and the If that the array element is to would i.ndicate follows counter array it,Forthis be assigned MONTH from to 12 and a value. example, incrementing 1 repeatedly executing the command = &(MONTH)<0> MONTHLYSALESOI would clear Arrays may the also be both read MONTHLY SALESO1 adds a by the constant counter, table MONTHLYSALESnn to zero. written to in the and same expression: = service to the sales-by-month charge "MONTH". array value pointed to indicates that the FIELD the ampersand is to the left of the counter, sign is the array. to the left of the =(equals) 'If the ampersand is to the right of the counter, indicates that the next FIELD NAME in the expression line is an array@ For example: If it NAME it FIELD1 = &(COUNTER)<0> ampersand array FIELD1 = (COUNTER)&(FIELD2) SENSIBLE SOLÜTIONtIn left left of of the counter the equal sign --(FIELD1) rightof the counter -is right of the equal sign (FIELD2) ampersand array The is Reference 3.7 To write an EQUALS EXPRESSION REQUTRED entries: OPTIONAL entry: ccmmand: FIELD NAME EXPRESSION Fe The SENSIBLE LABEL SOLUTIONtm Reference 3.8 + Locatíon + USAGE: the location of a particular character or this command to determine The value can be a constant (literal) value within or a variable. a field. destination The location back passed be specified a to within the field will examined, a being in the found the is value character not field field. (O)If or be returned to the destination field. zero will Use or With this option you rnay do an in-string search for a single character comma and pass partial value. For instance, you could search a field for a You could also the location information back to the destination field. and pass back the beginning search for the value"1234" the string within location within the field. EXAMPLE: Let's create the following report its location: FIELDNAME1 Here new = command the Iocatíon of , line to search withín FIELDNAME2 is the layout of the screen display you line in your program: FIELDNAME1 FIELDNAME2 =1ocation of 2) Select the "equals" option your destination field Name will field for by pressing [FIELDNAME1] a comma startíng at chr see , start at chr wíthín I) a as and 1 you create the 001 1=)· then press [RETURN]. Usually you will want to specify a temporary memory storage field. Instead of storing the value on the disk, temporary memory fields value are used to retain information within a program; usually thememory These temporary program execution. is changed during defined within the Data Dictionary and usually fields must be "dummy" coinci-de with a data file named b4EMOPYeNS/.KS. The SENSIBLE SOLUTIONtm Reference 3.9 3) Press [L] display for the command Locatíon 5) will *************** of Fíeíd Constant 4) subset"Location" and the screen Specify the type of value for which you are searching. to search for a constant value or press If) to search stored in another field. Since we are searching for will specify "Constant." Press [C] for a value a comma, Enter the value of the constant to be found in this case would be [,] and then press [RETURN]3 "F" you-- had selected (Field) on the prior option, you would enter the name of the field containing the value for which you are searching. it If 6) the prompt Now line will wíthín Enter the I) we Next the field to EDITOR be display: *************** searched -- [FIELDNAME2] andpress [RETURN). will request: start at chr??? Fíe1d Constant Specífy 8) that this is a constant value by pressing [C]. Enter the position within the fíeld at whích you want the search Since we want to search the entire string, we to begin. will enter a [I] and press [RETURNÑ [F] (Field) you had selected If you would enter the FIELD NAME storing the character position number at which 9) The Enter The [y] or press completed program FIELDNAME1 SENSIBLE you = [RETURN] to 'your save the search. line you have just written. line will look like this: the locatíon SOLUTIONtm want to begin of , wíthín FIELDNAME2 startíng at chr 1 Reference 3.10 To wríte REQUIRED an EQUALS LOCATION entries: command: DESTINATION FIELD NAME FOR CONSTANT OR FIELD VALUE TO BE SEARCHED NAME SEARCHED TO BE FIELD FIELD TO BEGIN SEARCH POSITION CHARACTER NUMBER -- OPTIONAL The entry: SENSIBLE -- LABEL SOLUTIONtnl Reference 3.11 J + Portion + USAGE: This command is used to parse a field and extract a portion of it. The porti-on extracted will. be loaded into the specified destination field. The command retreives a substring of a field and moves that substring to the áesti-nation field. EXAMPLE: FIELDNAME1 Here = portíon of FIELDNAME2 from for FIELDNAME4 chars create this new line in your FIELDNAME3 is the layout of the screen display as you portíon of FIELDNAME2 num of program: FIELDNAME1 start at = pos FIELDNAME3 I) Select the "equals" 2) Name 3) Select the subset option the destination option for FIELDNAME4 [=]· pressing by chars field -- [FIELD1]. [p] (Portion) and you will then see portíon of *************** on 4) your screen. Enter the name of the [FIELDNAME2]. 5) You need will now begin. will search The SENSIBLE SOLUTIONtm field to specify This can from which to extract the substrinc the character position from which the a constant or a field. If a field be Reference 3.12 is control. name chosen the v,í: Z-üo The EDLTCR w j- ii in the field now display can be altered under program start at pos*************** Fíe1d Constant requests that you choose whether this is a field value or a is a field, you rnust you specify that this location constant. If Make in this define the field in your program. your selection; [ F] case, · press and which i s the becjinming position of the na me the field [F1ELDNAME3]. Note that you want to retrieve. substring which number i s the byte position of the th e start.ing character The f i.rst character of any field is substring. beginning of the had chosen [C} (Constant) name the character 1. you position If position \7ithin the field at. which you will begin your extraction. 6 ) Xow 7 ) how many characters to extract. Once again thi" Next, specify a a be could constant field. If a field narne is chosen, the or In our altered under program control. value in the field can be example we will use a field so the EDITOR will now display: *************** where you must enter the name of the field containing the value equal to the number of characters to be extracted. 8 ) If you designate the length constant, enter the number of [RETURN] 9 ) of your desired characters in the as a substring and press string . Press {y] or [RETURNJ to save your new command line. considered as ASCII usinq the portion command, all data types may i be beginning The "day" s a substring portion of a dat: e, for example, strings. 2 characters long* at position 4 (rnm/dd/yy) which is When 'rhe sensible SOLUT í-OíÑt-.rrL Reference 3. 13 . To wíte REQUIRED an EQUALS PORTION entries: command: DESTINATION FIELD NAME FIELD TO BE PARSED TO POSITION BEGIN EXTRACTING NUMBER OF CHARACTERS TO EXTRACT -- OPTIONAL The entry: SENSIBLE CONSTANT OR FIELD CONSTANT OR FIELD -- LABEL SOLUTIONtm Reference 3.14 , + + Trim + + USAGE: This command allows you to trim the leading or trailing blanks from a field. may want to move the field being trimmed to a temporary memory Trim the spaces from the temporary memory field. This will leave by the "trim" commaná. you do not move the your original field unchanged If a memory trimming blanks the from to cause any field, field field will This would record saved back to the data file to be offset improperly. .result in garbled field values when the record is viewed on screen. Note! You field. EXAMPLE: FIELDNAME FIELDNAME = CUS.NAME spaces = traí1íng trim you are interested in sending a form letter to each OF your Obviously customers addressing thern by their first name. you will need {8 CUS.NAME a name hold characters), to Montague space in your like field but your customer's name is Chuck {5 characters) you'll need a way to trim the last three spaces provided in your name field or you'll have a salutation line that looks like this: Suppose if instead is "Leading" There To wríte REQUIRED OPTIONAL The like this: of ' Dear Chuck Dear Chuck, to solve this problem; or "Trailing" blanks. a command an EQUALS TRIM entry: entry: SENSIBLE , it works by allowing you to " command: FIELD NAME SPECIFY LEADING OR TRAILING -' LABEL SC)LUTIONtñi trim Reference 3.15 + + Fí11 + + El USAGE: this Use specified command to character. fill the leading or trailing blanks in a field with a . EXAMPLE: fieldname This will aallow command traili-nq blanks in field. = fíll you to leading specify a chrs wíth fill character For leading or are printing checks and do not want to leave blanks in front of the dollar amount. You could use th'e"Fill" option to place any character you that you wish as leading characters in your dollar amount field. specified an asterisk as the character, the value may be printed out like Suppose you If this: *******575.55 To write an EQUALS FILL command: REQUIRED entries: FIELD NAME SPECIFY LEADING OR TRAILING CHARACTER TO FILL WITH OPTIONAL entry: LABEL The SENSIBLE SOLUTIONtm Reference 3.16 + + length Actual + + . USAGE: command to check the number of significar.t characters in a field destination to a "pecified field. You should to send that information note, however, that spaces are considered to be sign.ificarit characters. Consequently, you may need to trim trailing or leading spaces prior to length" command line. an "Actual writing Use and this the fieldbeing checked to a temporary memory the temporary memory field and then check the from field. leave your original field unchanged by the "actual command. will do not rnove the you "trim" field to a memory field, trimming If blanks from the field will cause any record saved back to the data file to be This would result in garbled fieldvalues when the offset improperly. on viewed record is screen. rnay want to Trim the spaces This length." Note! You move EXAMPLE: FIELDNAME FIELDNAME = = trim spaces actual traí1íng CUS.NAME length of field with a defined length of 30 characters in it that is 17 characters long, the integer 17 will the destination field. If you a name To have write REQUIRED an a name EQUALS ACTUAL entries: MUST LENGTH command: FOLLOW DESTINATION FIELD TO BE OPTIONAL The entry: SENSIBLE and you ha.ve be passed to EQUALS TRIM FIELD NAME AN COMMAND CHECKED LABEL SOLUTIONtñi Reference 3.17 . + + length Max + + U USAGE: This command will pass length of a specified a value to a field. destination field equal to the maximum EXAMPLE: FIELDNAME If you have back will =ss a To wrít: e an REQUIRED OPTIONAL The EQUALS entries: entry: SENSIBLE length of f ie1d CUS .NAME field 'that will hold thirty characters, this 30 to your specified destination field. CUS.NAI'4E the = maximum command number MAX LENGTH command: DESTINATION FIELD TO BE FIELD NAME CHECKED LABEL SOL[jTION"tm Reference ® 3. 18 + justífy + USAGE: Use You this can command to the significant justifyjustify, or center left justify, right characters within the field. the significant characters. j EXAMPLE: justífy ctjs.name= A name field as of 30 follows appear this example.) characters, with the name SMITH, the with different justifications. left justified right justified centered Within a record, a string field right justified. To wríte REQUIRED OPTIONAL The an EQIJALS JUSTIFY entries: entry: SENSIBLE left WILLIAM in it, would (*'s equal blanks in WILLIAltF*************** smith, ****************smith, william ********SMITH, field is normally WILLIAM******** left justified and a numeric ccmnand: FIELD NAME SPECIFY JUSTIFY -- LEFT, RIGHT, OR CENTER LABEL SOLUTIONtm Reference 3.19 + total Records + USAGE: this Use command a spec.ified include any file will to assign a value equal to the total number of records in The number of records to a destination field. returned deleted records in the file. ExmpLE: FIELDNAME To wríte an = EQUALS total nuniber TC)CLAL RECORDS REQUIRED entries: DESTINATION FILE NAME OPTIONAL entry: LABEL The SENSIBLE SOLUTIONtrrl of records ín FILENAME command: FIELD NAME Reference 332C + Net (actíve) records + USAGE: data files, records exist in one of two different from a file a record has been deleted deleted. states -- active or simply flagged as deleted or inactive. is is not physically erased; Deleted records are then reused by SENSIBLE SOLUTION as they are needed. With SOLUTION SENSIBLE it The is command RECORDS NET ACTIVE number of active records in number of .records returned records will be excluded. it If to assign a value, equal to the total The to a specified destination field. include only active records; deleted used file, will EXAMPLE: FIELDNAME To wríte an = tot num of actíve EQUALS NET ACTIVE RECORDS REQUIRED entries: DESTINATION FILE NAME OPTIONAL entry: LABEL FIELD records in FILENAME comnand: NAME . The SENSIBLE SOLUTIONtm Reference 3.21 + If + PURPOSE: this Ijse command with arrays this to make command. a logical comparison fields. of two You may use USAGE: When in you a menu select like 1 command, the the one below: If 2 < the conditions 3 <= = Record Dup1ícate key check first. The 6 options are symbols 4 for which 5 => not actíve representing you can 6 <> > test appear check the Eollowing: I) less than less than or equal to equal to equal to or greater than greater than less than or greater than 2) 3) 4) 5) 6) After' enter you select the name one of the of the options from field being tested: if After entering the field name, to enter either the field name 1 through 6 you will be prompted to *************** an expression you wish to compare line will or be a provided literal for you value3 (test condítíon) ***************************************************************** if The SENSIBLE FIELD1 SOLUTIONtm Reference "A22 Regarding the expression (equal) command: ( [ < You can Once can also you GOTO líne, field to a math calculation with this command. have GOSUB. entered the expression Make your selection will divert. You FIELD1 FIELD2 goSub sample conventíons command apply here as in the will in the expression line line, and see (condítíon and if FIELD1 < specífíed (FIELD2) go(to)(sub) LABEL gosub LABEL \ SENSIBLE SOLUTIONtIn you you are asked the branch is a then enter the line label to which the following prompts on the screen: line wight be: íf The = )'s around fíe1d names J's around alphanumeric Literals >'s around numeríc Literals íf A same compare a use arrays or program flow goTo the Reference 3.23 —+ If (test condítíon) goTo " ------- If If If If If If + Less Than Goto Less Than or Equal Goto Equal Goto Greater Than or Equal Goto Greater Than Goto Not Equal Goto , PURPOSE: These The commands compare the value of a field to the value of an expression. test is: FIELD (test) EXPRESSION. If the test is true, program control is transferred unconditionally to the specified line label. Otherwise, program control "falls through" to the command following the test. USAGE: is Here layout of the screen display you a command: FIELDNAME1 íf FIELDNAME2 Enter the name expr"ession. of (condítíon specífíed) field which is to be Enter the argument for the expression calculation, or an array element. Enter the GOTO "target" test is true. The SENSIBLE SOLUTIONtrrl line label will where compared line. see goto with This can the program you create as the LABEL the value of the calc be a will literal, field, branch to if Reference 3.24 the \ To wríte REQUIRED an IF entries: (TEST) GOTO command: TEST CONDITION FIELD TO BE TESTED FIELD EXPRESSION TO TEST AGAINST BRANCH GOTO OPTION TO COMMAND LABEL BRANCHED -- NAME -- OPTIONAL entry: LABEL . The SENSIBLE SOLUTIONtm Reference 3.25 If condítíon) (test ------- If goSub Than Gosub Than or Equal Gosub Equal Gosub Greater Than or Equal Gosub Greater Than Gosub Not Equal Gosub Less Less If If If If If PURPOSE: These commands compare the value of a field to 'the value of an expression. the value the of the expression match the specified field line Label If called as a subroutine. and -is Otherwise, program control "falls through" to the command following the test. USAGE: Here is command a Layout Line: of 'the screen FIELDNAME1 íf F1ELDNAME2 (conditíon dis.play you will specífíed) see gosub as you create the LABEL Enter the name of the field which ís to be compared with the value of the calc expression. ,Next, enter the argument for the expression line. This can be a literal, field, calculation, or an array element. Finally, enter the GOSUB "target" line label (where the program will branch to the test is A "RETURN" The if truej SENSIBLE command line SOLUTIONtIn must be placed at the end of a subroutine. Reference 3.26 To write REQUIRED an (TEST) IF entries: command: GOSUB TEST CONDITION FIELD TO BE TESTED FIELD EXPRESSION TO TEST AGAINST BRANCH GOSUB OPTION COMMAND LABEL BRANCHED TO -- NAME -- OPTIONAL entry: LABEL EXAMPLES: íf F1ELD1 = (FIELD2) gosub goto LABEL or LABEL or íf FIELD1 = (FIELD2)+<10> gosub goto LABEL or LABEL or íf FIEIJD1 = (counter)&(FIELD2) gosub goto LABEL or LABEL FIELD2 is an array and the counter isÑset to a value representing element of the array you want to compare. FIELD1 can also be an array the command would look like: where íf FIELD1 = &(counter1)(counter2)&(FIELD2) gosub goto the and LABEL or LABEL This command would compare the element of the (FIELD1) array, as defined (counter1), to the element of (FIELD2) array as defined by (counter2). by e íf FTELD1 = &(counter1)(counter2)&(FIELD2)+<5> This command line would compare an element with the element of the (FIELD1) array. The SENSIBLE SOLUTIONtm of the (FIELD2) array, Reference plus 3.27 5, + + If Duplícate check key + + g PURPOSE: a key field value in an existing to determíne will acheck a field value already value entered by the matches user. file existing in the file matches the value entered by the user, then program Otherwise, control control will be transferred to a specified line label. the duplicate key check. "fall-s through" to the command followíng if command This data If E USAGE: is Here layout of the screen display you a command: íf dupíícate key exísts for will see KEY FIELDNAME as goto write the you LABEL test ís to be made3 Enter" This is the "target" line label to which control the Goto label. be passed the value already exists .in the key field. if First, If a name the duplicate key A will be presses This The and A displayed [RETURN] command operator therefore duplicate The SENSIBLE against key which the is found, the record already message exísts wíth value entered at the bottom of the operator's screen. If the operator label. specified the flow branch to program will used entry to prevent multiple message the an error receive field will cannot be checked. is usually key will. check will SOLUTIONtññ if never trigger a file cjf keys is not into a a key file3 field trap. Reference 3028 To wríte REQUIRED OPTIONAL an IF entries: entry: KEY EXISTS command: KEY FIELD NAME COMMAND LABEL BRANCHED DUPLICATE TO LABEL * The SENSIBLE SOLUTIONtm Reference 3.29 + + If Record not actíve check + +· PURPOSE: With SENSIBLE SOLUTION data states -- active or deleted. is not physically erased; Del-eted records are then files,a it reused If is by records exist- in one of two different record has been deleted from a file it. simply flagged as deleted or inactive. SENSIBLE SOLUTION as they are needed. This command tests the "current récord" to see is the current record number has been cleared (is zero), or a "find active. .record" is unsuccessful, program control will pass to a specified line label. Otherwise, control "falls through" to the command following the "test. if it still If USAGE: Here is command Name the a layout of the screen Line in your program: file display you íf record not actíve to be fíle FILENAME will see goto as you crea.te LABEL tested for an active current recorcL Enter the Goto label. This is the"target" line label to which control. passed if the "current record" is not active. To wríte REQUIRED an IF RECORD entries: NOT ACTIVE FILE COMMAND OPTIONAL The entry: SENSIBLE the GOTO comnand: NAME LABEL TO BRANCH TO LABEL SOI,UTIONtm Reference 3Á30 is + + Go + + PURPOSE: GO is used to divert program control to a new label in the program. USAGE: The GO command is highlighted. The GO command group is activated group by pressing [g) or [RETURN] when the field is comprised of four options: goTo LABEL goSub Goto LABEL save group Return G - The SENSIBLE SOLUTIONtm Reference 3.31 + Go goTo + . PURPOSE: This command will allow you to branch.program control to a specifíed label. IJSAGE: When you seleCt [RETURN] you goTo by see pressing will [T] or Enter 'the command line you will beU asked: go label to which you want program control to Líne depending on the value of the to this question you can you answer"yes" control to one of several dífferent transfers the value of a field. If the field value is maxírnurn, specified control wíll be passed to a When If you answer "yes" the on and EDITOR pressing ********** goto Now highlighting the option will fíeld? yes t.o divert. no create a command line that depending on program lines a less than 1, or exceeds specified "goto" líne label. ask: the value of *************** value wíll be tested. Enter the name of the field whose If the field value is 1, control will be transferred to the command immediately followíng the the value is 2, the second command will be executed, and so orc goTo. Be sure that you have a value in the field before performing the goto If command. the maximum number of goto's that you wish to use in this the value of the field exceeds this maximum value (or If be less than passed the to is I), control will line label specified as your target label. Next, command it This The enter line. command SENSIBLE if is generally used in SOLUTIONtm menu.prc)gramsQ However, it may be Reference 3.32 used within a program to specified field. do The ?rogrammer to selectively on the value of a conditionalof branching based function "condítional goTo" is to allow the branch to another program líne. EXAMPLES: a sample rnenu START A non-menu program -- enter Ne1.O.1 goto line on value of N.1.O.1 execute .RUN FILE 1 execute .RUN FILE 2 execute .RUN FILE 3 program START maximum g'otos 03 if error goto START -- enter N.1.O.1 inask [I 3 5] goto line on value of N.1.O.1 1> (accepts only 1,3, or 5 values) gotos 05 error goto START maximum FIELD = goto NEXT STEP FIELD = NEXT STEP (contínue with if goto To wríte a GOTO the next command line in your program) conunand: REQUIRED entry: LABEL OPTIONAL entries: TRANSFER VALUE MAXIMUM GOTOS LABEL OF COMMAND LINE BRANCHED TO FIELD * . The SENSIBLE SOLUTIONtm Reference 3.33 Go goSub PURPOSE: This com mand transfers program control to a specified line label but. " marks " Return" Lts place" control back can transfer com mand so that a subroutine By using a gosub áomrnanCi, you can temporarily branch to to the next command. ín your program and then return to your origínal command path. a subroutíne * USAGE: W hen you select the option pressirg [RETU RN] the screen goSub will [S] by pressing show: it or highlightíng and ********** gosub DIT O R is askíng for the label of the "target" Line. E EachO Rtíme you does is .insert a command line into your program, the first thing the DIT lineQ as a label This line label opportunity acts the to that offer youWhen R asks you to name the gosub a write command, the EDITO you target. target line label for program control to branch to. Enter this label and ?r= [RETURN]» The E return from goto com mand. the gosub. To a Y gosub (subroutine) you must ou will be returned to the use the " Return" next sequential co com mand, not a mand following m of the next sequential you execute a gosub command, the location When the Return in your program is loaded ínto a stack register. is used to poínt to is executed, the address at the top of the stack the command to return to. When com nand corrunand regíster The stack subroutines To wrí'te a 20 GOSTJB deepo can hold entry: COMMAND OPTIONAL entry: LABEL SENSIBLE to 2 O pointers. This allows for nested comnand: REQUIRED The up SOLUTIONtm LINE LABEL TO BRANCH 'ro Reference 3 . 34 + + Go Goto save group +· + PURPOSE: This command is commonly used to trigger a "save record" action for a group without reqiúring the user to press of data files under program control, [ S] This com rnand can al-so be used to request a [ESC] (save record). and updates to response froin the operator before performíng calculations has the saving. records Suppose all of the input operator prior to and update the make calculations the to information program necessary for to file-s. the operator has rnade an entry error, he has the oppórtuníty If the All of the instead, correct but, to informatíon save the error. not calculations are done after the operator confirms the save, not while the operator is entering the information. USAGE: "SAVE this record? (Y/N)" to be Using this command will cause the message displayed on the operator's screen; only a single keystroke will be accepted to upper-case. If for an answer. The keystroke is automatically converted to the line label specified by the the answer ís Y, control is transferred control is passed to the com rriand following the last command; otherwise, RECORD?" This "SAVE question will bypass executed " rnount screen" com mand. C O N FIRM E rnand this corrtmaná line. WITH following SAV immediately lines com any · W it hen you write and pressing the com mand " G oto save group" [RETU RN], the screen will show: goto save WWP Enter the line label to which control "SAVE this record? (Y/N)" is Ye by pressing [g ) or highlíghtirig ********** will be transferred if the answ er to CONFIRM commands normally ask the "SAVE?" question for each command. you have a group of savesTheinvolving several different files, If "Goto save group" command can the multiple requests can become tedious. eliminate this problem by asking the " SA V E ? " question once; subsequent requests for confirmation will be suppressed until a corrímand other than a "save" is encountered. SAVE The WITH SENSIBLE SOLUTIONtm Reference 3 . 35 To wríte a GOTO SAVE GROUP REQUIRED entry: COMMAND OPTIONAL entry: LABEL command: LINE LABEL TO BRANCH TO . . . The SENSIBLE SOLUTIONtm Reference 3 . 36 + Go Return + K PURPOSE: This command is used to mark the end of control back to the com mand im mediately subroutine . subroutine and to transfer program following the Gosub that called the a USAGE: Return displayed A To wríte com mand if An error message must end every Gosub routine. you encounter a Return without first having executed a will be GosütÁ a RETURN ccmmand: REQUIRED entry: NONE OPTIONAL entry: LABEL t The SENSIBLE SOLUTIONtIn Reference 3 .37 + + Mount + t PURPOSE: This command will display a SENSIBLE SOLUTION screen file (f.ilename.SCCk Use2 the " Mount" com matad to display both report formats and screen formats& The number of screens that can be mounted is only limited by the amount of available memory. L 7 USAGE: W hen you select pressing [RETURN) , the option Mount by pressing the screen will show: Screen format [ M or highlíghtíng ] it and Reporter format format" by pressing [S], the DIT r will If you selecthich"Screen you must enter the name of the screen to be field in provide a displayecL Mtzltiple screens may be used in a single program and the screens may be standard "Screen formats" or " Reporter formats'C This allows you to print rnií1tip1e detail lines on the screen or interactively input data through one or more screens and then print out reports -- all with one programj E O " w mount a " Reporter format" screen by pressing [ RJ , you must The of the Reporter format. EDITOR will then ask you to Select. one of these four where the prínt out ís to be sent. you choose to If enter the na me iáentífy options : Ask at run time prínter Crt Dísk you select "Ask at run time", a message will be displayed If operators screen .requesting them to choose where the report output RT, or the Disk. sent -- either to the Printer, the on should the be C 'If you select "Dis,k", you will be asked to name the file to which you want C arria ge returns will be autom atically the program to send the output. You can use this option to send added to the end of each format line. data to the disk that can then be used as input for word processing or spread command. sheets. See the PRI'NT trñe senSible SOLUTIONtiñ Reference 3 é38 EXAMPLE: mount report format prínt FILENAME on ask at run time you must you are sending control characters to the printer or terminal, device is no output certain to have the output device defined. If then the operator must determine where the assigned (Ask at run time), control characters will be sent by his selection. If be a Reporter format screen is If control characters will be sent estab1isMed The same To wríte REQUIRED and re-established format screen can be a MOUNT entry: not MO UN TED, the system assumes that all DKection of output can be to the terminal. format screens. by mounting and re-mounting remounted i-n a single program. command: SCREEN OR REPORTER REPORTER format OF DIRECTION PRINT for OPTIONAL entry: FILENAME LABEL FORMAT NAME only OUT -- --ASK OR AT RUN DISK, TIME, PRINTER, CRT, for "print to disk" option a O The SENSIBLE SOLUTIONtm Reference 3 .39 e Save rec PURPOSE: Use this command to save the record in a a specified file. USAGE: selecting After and the "Save record" option by pressing [sj or highlighting ít pressing [RETURN], you will be asked to name the file to which you want. R the recorá saved. Next, the EDITO will display on the screen: Confírm YES NO You have the option of forcing the user to confirm the record. you choose "yes", the user will see If screen: SAVE default answer is "yes." the program will pass control " Mount screen" command (the The that they want to save on their this message this record? (Y/N) user Ifto the the shouíd answer the question "río," first " Enter" com mand following 'the first input field on the screen)* On the other hand, you specify that you do not want confirmation from the if the T his record confirm ), (no will be saved without a request. user provídes Now the "automatic" EDITOR will data update without ask you operator intervention. to specify: Clear buffer YES NO the memory buffer will be cleared After a record is saved, all fields displayed of this record are cleared to zero or blanks in internal buffers, fields are cleared, and the record number will be set to zero. ES, both the screen and you answer If "save" each command is executed. after Y option, you can also enter the line label to to branch if the user does not wish 'to save the screen you will seé: you select the "confirm" If which you want program' flow record. The On SENSIBLE SOLUTIONtñi Reference 3 .40 íf no save then goto ********** . C ontrol. goto label will allow you to control program flow. command line command going the instead of line, to labeled pass the to will When following the " Mount screen" command. you execute a search for a record and update that record, saving it back in the file will overwrite the old record. If there was no record in the buffer (you are creating a new one), by saving it, it will append this new record to the data file. Specifying a Choosing N O means that buffers and screen display are not cleared of data, The option to not clear the current record number remains unchanged. but buffers would be used when you not only wish to save data in ( a fíle, D also want the data available for further processing, such as a FIN next [N] · record) [ESC] and is system determines what is happening at the time a "save rec" command a value greater than zero executed by checking the number of the record. If (O) exists in the record number field, the system recognizes that you are Otherwise, it updating an existing record and writes it in that. positíon. recognizes the record as a new one and eíther overwrites the first deleted record in the file or appends the new record onto the end of the file. The EXAMPLES: rec ín rec ín save save To wríte a SAVE REQUIRED entry: OPTIONAL entries The SENSIBLE RECORD fije fije command: DESTINATION : conf írm/clear no confírm/no (FILENAME) (FILENAME) clear buffer " FILE NAME CONFIRM OR NO CONFIRM CLEAR BUFFER COMMAND LINE LABEL TO LABEL SOL[jTIONtm buff er GOTO IF NO SAVE Reference 3 .41 + + Delete rec + + PURPOSE: This com maná USAGE : delete is used to delete rec ín fí1e FILENAME the DELETE After selecting want which to delete you Confírm a RECO a record confírm RD record. No conf írm from if option The no specified a delete enter the file. then goto name LABEL of the editor will ask: Delete all file from records he will generate a message sub- option " Confirm" to the operator asking The default answer is N O. "REMOVE this record? (Y/N)". If the user to the first " Entry" com maná following answers N O, control is transferred the " Mount screen"command. answers Y ES, the current record If the user the record buffer and will be removed from the data file. In addition, The "current record number" for this data terminal display will be cleared. file will be reset to zero. T you select the "confirm " Ifwhich flow you want program this record? message. number" "current record be is reset to zero, operator entries new entries. will considered the operator w ants to delete follo If m oáífy be existíng records, they wíll required to perform a " Find" first. The an message will get operator error if they attempt to delete a record when the "current record number" is zero. Since the " option, you can enter the command line label to N C) to a " REMO VE to branch if the user responds winC a delete rec ín fijLe FILENAME no confírm Specifying the sub-option " N o confirm" will delete the record without the buffers and 'the operator's screen display th e operat.or; cleared, and the "current record number" will be reset to zero. The SENSIBLE SOLUTIONtm Reference asking will 3 .42 be This by this com rnand. be in avoided should data deletion is provided ote that "automatic" command is very dangerous, for obvious reasons, is not absolutely necessary. programs where N and it rec ín delete " D elete Thus, SENSINIT.COM). Actually, the com mand sets the ,KS to zero. T he sub-option it fije all FILENAME recs file (see initializ e th all records" ill deleted. been have records all appear that will the "number of records", a value maintained in e w will is completed, this progra m control command rec" "delete the following the in line the next program return to as T usually be used in uTility programs such his com mand line. will and the month's-end cleanup like. file, To wríte a DELETE REQUIRED entry: OPTIONAL entries RECORDS hen command: FILENAME : W CONTAINING CONFIRM CONFIRM ALL RECORDS COMMAND LINE LABEL RECORD TO DELETE NO The SENSIBLE SOLUTIONtm LABEL TO BRANCH TO Reference 3 .43 + CLear + \ PURPOSE: This command is used to either clear the values displayed on the operator's screen (clear the buffer) or to clear the current record number from memory3 USAGE: W hen you select the Clear option by pressing pressing [RETU RN], the following options and [C] will the option or highlighting appear on your screen: clear Buffer These The options SENSIBLE will be SOLUTIONtIn explained Record i-n detail on the following pages. Reference 3 q44 \ + + Clear Buffer + + PURPOSE: "Clear buffer" is used to clear the screen and memory buffer of records that T his command clears the record active. buffer for the are currently specified data file, sets the "current record number" to zero, and empties the field windows on the terminal display. USAGE: cLear buffer ín fíle FILENAME After selecting this option, enter the name of the data file you wish to D This clear. ata on the screen and in the file buffer will be cleared. command can be used to insure that data will not be left on-display' or in "save" or " áelete". of an accidental against the possibility buffers, It is also used to clear specific files out of a screen where there are m ultiple files bein g dísplaye d. The all [C] ) executed by the operator will clear clear fields" optíon ( {ESC] used in the program unless a trap is set to clear only file buffers " specified files. A T RAP be set for an operator can initiatíng a "clear screen" from the in the program a trap is set, you can branch to a subroutine keyboard. If This would be used where you have control over which buffers are cleared. where multiple files are being displayed in a screen and you w ant only (e.g., You have a header recorá on the screen and are certain ones cleared. You might want to using values from it to find related transaction records. clear the transactíon records but not the header record.) information For more The SENSIBLE see SOLUTIONtm the section on TRAP command for "clear". Reference 3 .45 + Clear Record nuniber + PURPOSE: This command will clear the current the record will remain in memory. record number from memory. The data in USAGE: clear After selecting this to the record number record number option, enter the you wish to clear. in name fíle FILENAME of the data file corresponding If you are reading records with locks, this corn mand has the function of unlocking the record. This allows you to retain the information in the record yet make it available to other users in the system. sually this applies to a shared syste m file that rnany application progra ms to obtain information. Fields like date, company name, invoice numbers, etc., would typically be used by a number of application programs in an accounting system; this information is usually kept in a one record file called a "syste rri " file. U use Since this record must be available to each application, record in locked and then clear the record number field available to other users. you can read the -- thus making it If you are updating information in this record, your program will will need to reread the record with a lock into memory, update it, save it back to the disk, and then clear the record number to unlock it again. second function performed by clearing the record number affects saving the When the system saves a record, record. the record number field it checks does, to see if a value exists. one the will rewrite the record to save the dísk on top of the old If record with the same number. exists If noto value in the record number field, the save will append the record the end of the data file. A The SENSIBLE SOLUTIONtm Reference 3 .47 should be cautious about clearing the .record number trying to update and save the same record. Y ou To wrúíte a CLEAR RECORD REQUIRED entry: FILE OPTIONAL entry: LABEL The SENSIBLE SOLUTIONtm NUMBER IN FILE C(mi'"1'P·¶4' field when you are - NAME Reference 3 .48 + + Fínd + + PURPOSE: The "Find" com mand allows you to specify different techniques by which With the options available, records will be retrieved from data files. you have very flexible, powerful, and fast search capabilities . OPERATION: All " Finds" ( whether executed as com mands from within a .R U N file, or triggered from the flash menu during entry to a field) operate in the same way: This may be a local FILETRAP target is marked for possible use. D command), the the (specified ín current FIN global filetrap, filetrap disabled. or none if trapping is currently I) The If the find is a NEXT or PREVIOUS, the "last key accessed" is looked up. If there is no "last key accessed" SENSIBLE warns "Must SEARCH before doing NEX T/P REV" and either execution continues with the next command in the .RUN file (with FIN D commands), or the flash nienu is redisplayed ( with en TE R corn mands). 2) If the find is on a key fíe1d (not a record number), the FILE INFORMATION SECTOR (physical record #0 of the .KS file) is locked in a multi-user This prevents anyone else from doing any finds, syste m. saves or deletes while you are lookinq up your key. If another user bas the FILE INFORMATION SECTOR locked already, your prograrr. waits until it can achíeve a lock. You cannot escape frorn thís wait loop. 3) 4 ) The "f ind" is performed. 5) The FILE INFORMATION SECTOR Typically, the entire is unlocked. lock/find/unlock cycle takes less than a second on a hard-disk system, contend so you will seldom for use of the FILE INFORMATION SECTOR. System When a Operatíon find is succesful, file, and this for this The SENSIBLE SOLUTIONtm Fo11owíng a Successful the found key is marked as the file is flagged as Fínd the "last key accesseá" "last key file accessed". Reference 3 .49 Subsequent m will enu) Then N E X T/P for key is read from the the looked-up record 1 from the keyboard (i.e. the search criteria. from searches R E V this use .MS file. Now an the ENTRY flash system Attempts to lock this record. If another user has this is clisplayed. The user record locked already, a message "top-of-screen" may ESCAPE to (first command after the last-executed M OUNT command), or w alt until the existing will the user waits, the m essage lock is released. If gained. is his lock as as soon clear . number ís This lock will be held until I) the record 3 ) 2 ) unsuccessful an deleted, is the record cleared, N file. find is attempted, or 4) the user exits the .RU 2 3 record to see if it is flagged Inspects the looked-up This should not happen with a keyfield as "deleted". lookup but might happen if the lookup is done by record A record clears all fields to spaces "deleted" number. " current record number" and m arks as zero. . . Displays on the current screen the fields in the record that was found. trap the RELATE If perform a specified is set D G OSU B and a successful and then return to of the contents "find" occurs, the system will the next line in the progarm U N file (with FIN d Executíon continues with the next com mand in the .R When the "find" was initiated through keyboard entry from the commands). R commands). m the flash m enu is redisplayed (with EN TE enu, flash Operation System When a 1 2 The . O Followíng an Unsuccessful find is unsuccessful, the system Clears the "last key accessed" (if the find PREVIOUS). NEXT or If T RAP a " F " Fínd was SOLUTIONtiñ a (file error) is set, the system continues leaving program execution from the specified line label, any current record untouched (i.e. a record looked earlier find) . an SENSIBLE not up on Reference ÍR50 3 . If the fínd failed by encountering a "beginning of keys" the current record will or " end of keys" condition, remain untouched; otherwise, the record CON TENTS are unchanged but the record N U MBE R is cleared. This releases the lock on the record and makes subsequent saves "new" saves rather than "replace" saves. Execution continues with the next com mand in the .R U N file ( with FIN d When the "find" commands). was initiated through keyboard entry from the flash m enu, the flash m enu is redisplayed (with EN TE R com mands). USAGE: This command can be activated by pressing field is highlíghted. The following subset of options Exact These The options SENSIBLE will Generic be SOLUTIONtm will Related explained [F] presUng or on First Last on RN] when your terminal: appear in detaíl [ RETU Next Previous the following pages. Reference 3 .51 the + + Find Exact + + PURPOSE: This com mand field specifie and whatever d. will search for The fielás a record exactly matching the value in the associated record will be read into the memory buffer are on the screen will be displayed. USAGE: fínd exact rec usíng fíeld FIELDNAME on error goto LABEL value must. be present Name the field on which the search is to be done. in the field before this com mand is executed by your program A Then, specify program control Line a subroutine label designating to which you w ant An error diverted in the event of an unsuccessful search@ message will be displayed ifbe the specified field is not. an index-key field. An error message displayed if an exact match is not found and will also The an "on error goto" label is not 'used in your program. operator must [ RETU ] processing. key RN press the to continue a The label specified in this com mand will override is specified, the TRAP would command. If no inlabel on T RAP commands. (File Error) the section "F" To wríte a FIND EXACT RECORD REQUIRED entries: FIELDNAME OPTIONAL entries: COMMAND a T RAP "F" be activateCL (F'ile Error) See T RAP command: ON LABEL WHICH TO TO BRANCH SEARCH TO LABEL > The SENSIBLE SOLUTIONtíñ Reference 3 o52 + + Fínd Generic " + + PURPOSE: This command is similar to "find record by exact field" except that if an exact match is not found, the search returns the next hígher sequential the file. For example, a search on "SMI" might return "SMI", record in"SMOOCH" "SMITH", or "ZOOLOGICAL SOCIETY", dependingon which was the "nextThe associated record will be read into the hígher neighbor" in the index. memory buffer and the appropriate field windows on the screen will be filled wíth data. USAGE: fínd generic rec using fíe1d t F FIELDNAME on error goto LABEL N na me the field on First, which to search. ext, specify a Line label designating a subroutine where you want program control to branch to in the An error message event of an unsuccessful search. will be displayed if the specified field is not an index-key field. no record equal to or higher If OF FILE ENCOUNTERED message than the specified value is found, will an END be displayed. "F" (F: üe Error) will be activated only by an program flow will branch to the goto label set in the an "on error goto" label has been specified, it See T RAP "F" (Hie Error) in the section on label. A TRAP To wríte a FIND REQUIRED entries: OPTIONAL entries: GENERIC If will couunand: RECORD FIELDNAME COMMAND EN D OF FILE condition; T RAP command Line. override the T R AP T RAP com mands. ON LABEL WHICH TO TO BRANCH SEARCH TO LABEL S- . The SENSIBLE SC)LUTIONtíñ Reference 3 .53 + + Fínd Related + + PURPOSE: This command will locate a "related" data record -- one for which the value The of a specified field exactly matches that of the search field. associated record will be read into the memory buffer and the appropriate field windows on the screen will be filled wíth data. Thís command is most often entering data . used to locate data in A "RELATED RECORD" find works like Note! of any local or global filetrap), except for files an "EXACT" one thing: when the operator is find (including trigger "related" fínd sets the "last key accessed" for the related This means that the not change the "last key file accessed". will work, but "FIND NEXT/PREV" "FIND NEXT/PREV in related file" coin from the keyboard will look up on the PRIMAR Y file, not on the related file. successful A but file mand does USAGE: fínd rec using fíe1d FIELDNAME related fíe1d FIELDNAME on error goto LABEL The value of this field is the value to Begin by entering the field name. searched for in the other file. not be a key but it must be a It beneedpresent A in thís field before the a value must not constant. field command line is executed. be ext, must N name be a the field on which the search is to be conducted. key field and must be in the file being searched. T his field a subroutíne where you want Finally, specify a Line label designating An program control to branch to in the event of an unsuccessful search. be a is message displayed designated the not key-field. will field error if An displayed if a related record is not found. T he error message will be operator must press the [ RET U R N ] key to continue processing. multiple related data files, you can set up the " R " you are accessing G OSU B to a subroutine which does related record searches TRAP to trigger a When The SENSIBLE SOLUTIONtñt Reference 3a54 whenever etc.) is of the "search" functions initiated by the operator. one , ( find Find, N ext, find Beginning TJe heed! have set an " R" ( Relates) T RAP, be careful not to have take you out of the' RELATES subroutine and circumvent your File This will finally result in the "return" command of the RELATES subroutine. FULL" error. a "STACK If you Error trap "F" ( File Error) will be activated if set and program flow will branch to the goto label set in the T RAP command line. If an "on error will override the T RAP goto" label has been specified in the com mand, it goto label. The T RAP " R" "F" (File Error) wríte a FIND RELATED REQUIRED entries : FIELDNAME FIELDNAME OPTIONAL entries : COMMAND See To TRAP and ( Relates) in the section on T RAP commands. command: RECORD CONTAINING VALUE TO BE SEARCHED LABEL TO BRANCH TO FIND TO LABEL 4 The SENSIBLE SOLUTIONtm Reference 3.55 + + Fínd + Fírst Last + PURPOSE: the These two commands find the lowest and híghest index key values for and buffer the The into read is record memory associated specified. field the field windows on the screen will be filled with the appropriate data. USAGE: FIELDNAME fínd fírst rec usíng fíeld FIELDNAME usíng field fínd last rec on on error goto LABEL error goto LABEL by entering the name of the field on which to search. If the specifíed to the message an error field, will be displayed index-key an is not field c1i': be played m also An message execution. will error operator during progra past the beginning or end to the operator when an attempt is made R to Usearch [ ET R N ] and then continue. The operator must press of the file. Begin Line label to branch to in the event of an subroutine goto" label is specified in an "on error unsuccessful operator search. If wi1l labeled com mand line and the transfer to thís manner, program control The label specified be in this com mand will m essage prínted. no error will (F: the is specified, label no úe Error) command. override a T RAP "F" If See TRAP "F" (F: ile Error) in the section on TRAP TR AP would be activated. N ext, enter commands To wríte a . a FIND FIRST or LAST REQUIRED entries: FIELDNAME OPTIONAL entries: COMMAND The SENSIBLE command: RECORD ON LABEL WHICH TO TO BRANCH SEARCH TO LABEL SOLUTIONtm Reference 3 ..56 + + Find Next Previous + + PURPOSE: These commands wi71 locate the data record following or preceding the This associated record will then be read into the current data record. memory buffer and the appropriate field windows on the screen will be filled with data . USAGE: "Next" commands com rnands or "Previous" to provide "previous" record. a point must be preceded by any of the other FIN D of reference for m ove merit to the "next" or fínd next rec in fíle FILENAME on error goto LABEL fínd prevíous rec ín fí1e FILENAME on error goto LABEL Enter the name of the FILE in which the next/previous record is to be D The located. command will allow you to search sequentially through a FIN file , by the specified key field, in ascending or descendínq order. A "Previous" search from the beginning record will djqplay an ENCO u nte red A "Next" search BEGINNING OF FILE error message. from the last record gives ENCOUNTERED END OF FILE. N ext, enter the label of a subroutine to transfer program control to ín the event of an unsuccessful search. If an "on error goto" label has been specified, progra rrt flow will transfer to the labeled com mand line and no error message will be printed. The label specified in this command will override a T RAP "F" (File Error) corn rnand. If no label is specified, the TRAP See TRAP would be activated. "F" (File Error) in the section on TRAP commands . " marks "Previous" and " N ext" searches are dependent on an earlier FIN d which place" from which the search will be conducted. There are four conditions under which a "Previous" or "N ext" search will fail: % a 1 ) "Next" The other 2 ) The FIN D or "Previous" com mands, so command was not preceded place mark has been set. During program execution you have deleted the record the original FIND. This clears the place marker. SENSIBLE SOLUTIONtm by any of the no called in by Reference 3 .57 3 ) you clear If are about to arker executed m . the record number ( which tells the system that you save this as a new record) you will lose your place when the save is executed -- but not until the save is * 4 ) During program execution you have changed the value ín the key field on whích the search was initiated and then saved the record back to the file. This clears the place marker. of the above conditions occur during program execution, this error N will be displayed: Must SEARCH before doing NEXT/PREV. ote that the "Must SEARCH" warning does not trigger a TRAP "F" (File Error). any If message To wríte a FIND REQUIRED entries: OPTIONAL entries: NEXT or PREVIOUS TO FILENAME COMMAND comnand: RECORD SEARCH LABEL TO BRANCH TO LABEL 0 The SENSIBLE SOLUTIONtñi Reference 3 o58 + + Print + + .. PURPOSE: Th: Ís com mand When or disk. At Error vertical These The on the terminal is used to print information screen, printer, selected, the following subset of functions is displayed: Format line to line Tab options SENSIBLE will be # W idth = Lines = M ax. lines = Blank lines print Control chrs ject explained in detail on the following pages¢ SOLUTIC)Ntíñ Page e boX Referenc"e 3 .59 + Prínt . + At + + PURPOSE: This command will allow you to print a "format" line or a "message" line on A message line is a constant (usually a stríng of characters) the terminal. while a format line is a specified line from a reporter format screen: in The information other words, a variable or changing line. in the format be altered under program control. líne can, of course, USAGE: This com mand command . must follow a " mount report format" com mand. See the " Mount" Specify the row and column location where you want to print the message on the terminaL These can be constants or field names. If you use field names, the values can be altered under program control which allows you to change the print position. you print at column If displayed at the bottom of will be zero zero, ro w zero zero, the message your screen and the operator must press [RETU RN] and continue. This allows you to stop processing, to to clear the message be sure that your message Any other column and row values yjj1i is noticed. Y and on the screen in that location ou processing is not stopped. prínt m ust move blanks ínto the displayed area to clear the message from the screen when using a location other than column zero zero, row zero zero. EXAMPLES: Message line -~ THIS ] , may -right bracket, Only the positions (including be printed to the terminal. space literal for the end of The The SENSIBLE SOLUTIONtm IS A MESSAGE] used to indicate the end of the line> spaces) placed to the left of the ] wj11 The system also checks for the last nona line if the ] isn't useCL be Reference 3 o60 line -- Format mount print report format at col 01 row SEEIT ROWHOLD print on format crt line #02 The format line " Print at" option allows the progra ni m er to create multiple output lines on the screen at a specified row/column location. In the example above, reporter data from line number 2 of the reporter format screen SEEIT will be printed on the screen at column number 1. Other lines in the program would be used to increment RO W H OLD so that the report will print out down the screen, one line after the other. line number portion of the "Print at" corn rriand line must always reference the last "mounted" reporter format screen in the program. The To wríte REQUIRED a PRINT entries AT command: : COLUMN LOCATION LOCATION MESSAGE LINE OR ROW OPTIONAL entries : COLUMN FORMAT LOCATION--FIELD: LOCATION--FIELD: LABEL ROW LINE NUMBER FIELD NAME FIELD NAME ( (for format line for format line) e The SENSIBLE SOLUTIONtm Reference 3 .61 ) + + Prírrt Error + + > PURPOSE: The this com mand to print an error message at the bottom of the screen. R ET U R N ] [ program must press with the in order continue to operator program. flow will transfer to the labeled com rnand specified. Use USAGE: Standard error messages are contained in the data file E r RFLE.MS. Enter the number of the error message you want to print. A list of the system error is províded In the Appendix The number of this reference manual. messages of the error message is the record number. Enter the label of the corrimarid line you want to branch to after the message is printed. A utility program is provided that allows the system designer to add his own messages to this data file. To add messages RFILE, execute to the error by typing "SENSIBLE ERRENT.RUN program ERRENT" the operating system E R the level, or by selecting "Main Menu I) Execute A SENSIBLE The record number ER REN T. specifying the program using ER RENT. a new message creates user and For occasional errors to ERRFLE, butinstead To wríte REQUIRED a PRINT and use warnings, the designer should PRINT -- at col 00 row 00 SOLUTIO N is displayed add new (MESSAGE). not Program" when the messages ERROR comnand: entries: ERROR COMMAND OPTIONAL at entry: MESSAGE LABEL NUMBER TO BRANCH TO LABEL t The SENSIBLE SOLUTIONtíñ Reference .3 s62 + + Print Format Line # + + PURPOSE: This command allows SCREEN PAINTING. with NOTE! down print on a to you print the 127th column of a If the format screen will be line 255 wide. columns a reporter format line that created was format line contains a "," the next line This gives you the optíon to appended. USAGE: After selecting this format line can number or the field you nam e a field, If control. The option, specify w hích form at líne is to be printed. field or a constant. Enter either the format line where you have loaded the format line you want. the value in the field can be altered under program be a name N ote! , " the If the 127th position of a format line contains a comma " That is, next line down on the format screen will be appended to that line. the next line becomes characters 127 through 255. This gives you the option to print a single line that is 255 characters long. This corn mand command . To write must a PRINT follow FORMAT REQUIRED entry: FORMAT OPTIONAL entry: LABEL The SENSIBLE SOLUTIONtñi a " mount report format" command. See " Mount" the command: LINE NUMBER OR FIELD NAME Reference 3 .63 1 + + Prínt Width = + + PURPOSE: this Use command to specify the width in characters of the print line. USAGE: in a After choosingThe this option, specifyusedthe number of characters you want default settíng by the system is whatever has been print lin e See SENSETUP entered during the installation in the Installation procedure. The maximum anual. number of characters that you may print in a line is 255 . M . To 'wríte a PRINT WIDTH = command: REQUIRED entry: NUMBER OPTIONAL entry: LABEL The SENSIBLE SOLUTIONtm OF CHARACTERS WANTED IN PRINT LINE Reference 3 .64 + + Prínt Lines = + + PURPOSE: This is command each on page. used to specify the number of lines that you wish to print USAGE: ill Enter th e number of printable lines. Report type progra ms w automatically page advance when this number of lines has been printed on the page. The default value used by the system is whatever has been specified See SENSETUP Manual. in the Installation during the installation procedure. You must page If no To write set a TRAP "P" (PAGE advance is desired, a PRINT LINES entry: NUMBER OPTIONAL entry: LABEL SENSIBLE SOLUTIONtxi to a enable the automatic page advance. trap. = coumand: REQUIRED The BREAK) do no set OR PRINTABLE LINES Reference 3 .65 + + Prínt Max Lines = + + PURPOSE: Use this com maná used to entered is breaks @ to specify the total number of lines per page. The number calculate the amount of paper to advance between page l USAGE: number of lines available on the page. The default value Enter the maximum duríng the system has been entered used by the system is whatever .in the Installation SENSETUP See Manual. procedure. installation To wríte a PRINT MAX LINES = command: REQUIRED entry: MAXIMUM LINES OPTIONAL entry: LABEL The SENSIBLE SOLUTIONtíñ DESIRED PER PAGE Reference 3 .66 + + Print Blank Unes + + PURPOSE: Executing this command will immediately specified number of línes. advance the paper in the printer the USAGE: Enter the number of blank lines you want the paper to advance between lines . To wríte a PRINT BLANK LINES REQUIRED entry: NUMBER OPTIONAL entry: LABEL The SENSIBLE SOLUTIONtm OF print command: LINES DESIRED BETWEEN PRINT LINES Reference 3.67 + + + prínt vertícal Tab to líne + PURPOSE: Executing this com rnand will immediately the specified line number. the paper in the advance printer to USAGE: Enter the To wríte number to whích you want the paper .Line a PRINT VERTICAL REQUIRED entry: LINE OPTIONAL entry: LABEL The SENSIBLE SOLUTIONtrn TAB TO LINE NUMBER TO .in the printer to advancec comnand: WHICH PRINTER MUST ADVANCE PAPER Reference 3 .68 + + Print Page + e ject + PURPOSE: when executed, this command will immediately force a page advance. USAGE: this command to force a page advance under program control. The system will automatically page advance, based on the number of lines the user has said are to be printed on each page, but the user can also force an advance wherever necessary. Use For reports sent to the terminal, you should add this command to your "end This will have the effect of of file" routine before exitíng the progra m. locking the screen display until the user presses the [RETU RN] key. Without would this com mand, the program exit im mediately and the user would not have the opportunity to view the information. To write a PRINT PAGE EJECT REQUIRED entry: NONE OPTIONAL entry: LABEL The SENSIBLE SOLUTIONtm comnand siIupIy select the optíon: Reference 3 .69 + + ' + Prínt prírrt Control chrs + PURPOSE: Many terminals and prínters are capable of producing unique displays such as T his video, half intensity, compressed print, boldface, etc 0 . reverse control characters to the command will allow you to send the appropriate printer or termínal to activate such f eatures. USAGE: the control character sequence you wish to send to the terminal or The control character sequences must be created in SEN SET UP. See SENSETUP in the Installation There are 32 unique sequences available. Specify printer. Manual . For example, you might use this com mand to change the font on the printer, character prínt line, or send a control character direct it to utilize a 255 O CR wand or Bar Code reader has been attached to the terminal where an The direction of the control characters is dependent upon the currently This is set by "MOUN TIN G" a reporter format output device. identified aná specifying where the output is to be directed (termína1, printer, screen no format has been mounted, direction is always to the or disk.) If a format is mounted and no direction terminal. set (user defines at run If be option. a time) the direction selected result theof You may user will screens as often as you wish to re-identify the output rein ount reporter devíce For To » more write REQUIRED information, a PRINT entry: see the "Mount" CONTROL CHARACTERS SPECIFY CONTROL command. command: CHARACTER STRING TO BE SENT TO TERMINAL OR OPTIONAL The entry: SENSIBLE SCREEN LABEL SOLUTIONMñ Reference 3 .70 + + Print box + + PURPOSE: This command depth. allows you to draw boxes the screen with specified on width and USAGE: W hen you select this option you are asked "AT" w hat location you wish to These print the box. Enter the row and column locations. can be identified be passed as constants, a field. can values the from user selects a or If field value, the values can be changed under program control. You must also enter: Depth = This can be the value in the field idth = This can be the value in the field W Clear/Draw display. a constant or field name. If a field name be altered under program control. a constant or can be altered -- Specify if you with this capabilíty, the values then fed to the parameters of this To wríte REQUIRED a PRINT entries: BOX is used, is used, can of field want name. If a field name under program control. a box printed or removed be stored in fields can calculations to draw bar charts on the screen. command command: OR LOCATION--CONSTANT FTELDNAME OR FIELDNAME LOCATION--CONSTANT OR DEPTH--CONSTANT FIELDNAME OR FIELDNAME WIDTH--CONSTANT SPECIFY DRAW OR CLEAR BOX COLUMN ROW OPTIONAL The entry: SENSIBLE LABEL SOLUTIONtrn from Reference 3 .71 + + Trap + Goto' s: + Save Delete Clear Exit jump file buffer Screen File error Locks Up arrow down Arrow Gosub's: Help Relates Page break PURPOSE: command is one of the most important commands in The SENSIBLE SOLUTION. It controls program flow when conditions "outside" the program occur, such as the user pressing a control key or the occurance of an error N condition. othing "happens" when the command is executed; instead, the command sets up what will happen when the specified condition occurs later during progra m execution. The TRAP When This command sets a T RAP for a specified condition. that conditionbe m m, during execution control of the progra will occurs progra later A " .R eturn " transferred to the line label specified ín the TRAP comhand. com maná must follow at the end of the subroutine called by Gosub traps. USAGE: and Three of the T RAP commands, relates, page break, and help are GOSUBS, command must execute a " RETU RN" after completing the commands the program Any search triggers which are triggered. the " R" (relates) T RAP. W hen the subroutine is called (usually to retrieve search is completed, the "relates" appropriate records fro in related data files) . Finally, command execution Y m ust Oíl continue from the point where the search was done. return to The SENSIBLE SOLUTIONtm Reference 3.72 think of these activities might T RAPS as "get more information and continue" . The other groups are G O T Os; they transfer control unconditionally to the Save, delete, clear screen, file error, jump screen, exit, target label. locks, up arrow, and down arrow, are "finish and go on to something else" activities. TRAPS be may the progra m turned on or off, or ignored, and be can changed anywhere in . Ifwillindividual override labels to branch to on error conditions, they ( execution time. e.g., You have set a O " File 2 1. You have error" trap branch to LABEL "Find record" commands. ríe of them has an "on error goto LABEL 2." The other has no error label branch. The first "Find" will branch to "LABEL 2" on any error. The second "Find" will branch to "LABEL 1" as identified by the Global TRAP. W be have com mands the T RAP at hen another used. program is run, To create a T RAP Letter to indicate command one of the all GOTO group [S] when [ESC] f R} is pressed. when [ ESC} [C] is pressed. when [ESC] [q] is pressed. jUmp Fíle -- Screen -Error -- Triggered when SENSIBLE is pressed. [j] is pressed. Triggered when any file error (End f File, Begixlning Of File, etc.) during execution of O Triggered occurs when a user has been Locked . be used on programs -- that to user computer The single [ESC] the program. Locks a will -- Triggered -Clear file buffer -- Triggered Exit -Triggered Delete L the defaults [ESC] d F and when Save j off Triggered S E are turned line in your program begin by enteríng following T RAP types: -- C T RAPS SOLUTIONtÁi requests a record or file This particular com mand is that will be run on multiTRAP systems. "L" (Locks) m ust Reference 3 .73 always be used in conjunction with either file by Record" or "LOCK file All records." UP DOWN ARROW -H H élp Screen R Relates The options G -- OSUB IG N O for the * TRAP (HELP) {ESC] [?] is pressed. find don e Default t Goto or sub No action on this function is non-existent. Setting to ignore causes the TRAP to be will drop through to the next sequential . DEFAULT conditions SENSIBLE wheri are: will means the will occur: File error -The -- triggered when the counter field equals the "LIN ES =" and "MAX specified by the commands The =". default values are set during the installation process with SENSETUP. particular ignored command triggered RAP means that the TRAP occur. and the program flow RE group G OSUB values LIN ES -- Ignore * GOSUEI G OSU B triggered when any kind of search ( Find, Beginning record, find N ext record, etc. ) is by the operator or under program control. -- Break Page K Triggered when the [DOWN ARRO W] key is pressetL Used to keep the operator from jumping ahead on the You can set a trap for screen where inappropriate. down arrow and direct the system to a specified input field or else force the cursor to stay in the current input field window. -- p O C Used Triggered when the [UP AR RO WJ key is pressed. to keep the operator from backing up the screen w here You can inappropríate. set a trap for up and direct a specified the input to system arrow field or else force the cursor to stay in the current input field window. -- ARROW "L SOLUTIONtm trap is unspecified. Error message default The following displayed ( press user Reference 3 . 74 [RETURN] to continue) [ESC] Quit [ESC] Clear Fíe1ds Screen ALI others --- SENSIBLE Clears all currently opened the terminal screen and No -- runs MENU.RUN file buffers action Setting a T RAP to the default value causes the standard system default to occur. This will print out the standard messages where W appropriate. here there are no defaults, such error as up arrow and down arrow, no action takes place and program flow will drop through to the next sequential command. * GOTO refers to the label of the command to which program flow this Trap is activated. Setting to a label causes program flow to branch to the specified label when the trap is activated. For example, if you wish to branch to a help screen for a field you have named, you can give the label of the com mand in your Subsequently, this help screen program that displays the help screen. will always appear when the I?) key is pressed. If you have multiple help screens in your progra m , you must set the help screen labels You can also disable any previously appropriately. set help screens by inserting a T RAP command for H ELP and setting the option to ignore. or GOSUB when will branch To write REQUIRED OPTIONAL a TRAP command: entries: entries: DEFINE WHAT TO TRAP SPECIFY OPTION--IGNORE, COMMAND LABEL TO BRANCH DEFAULT, OR GOTO OR SUB TO LABEL The SENSIBLE SOLUTIONtm Reference 3.75 + Execute Com fí1e + PURPOSE: Using the execute (fílenarne.COM). .COM com maná file. you write a com mand line to "execute Corn file" will allow the user to chain to an executable 'may This command USAGE: This command GOSUB stack, is not It inítiatecL exits and possible SOLUTIO N, closes files, clears the any open data then executes a specified program file (filenarne.C O M ). to pass com mand-line argum ents to the program being SENSIBLE Specify the file name but not Enter the name of the program to be executed. M. This the extension (type) -- fQr example, SEN SIBLE, not SENSTBLE.CO command SOL UTION Menu program is used within the SENSIBLE to execute each of rrtay also be 'used the different language modulesQ to invoke "alien" It ms, as operating-system uti1itiesD such progra The SENSIBLE SOLUTIONtw Reference 3.76 + + Execute Run fí1e + + PURPOSE: Using this (filename.R SENSIBLE clears the program. command ). U N SOLUTION GOSUB line to "execute Run file" you may write a command command Thís will allow you to chaín to an executable program. "execute Run file" closes any open data files, SOLUTION stack, and then initiates the specified SENSIBLE USAGE: Enter the name of the program to extemíon). be U .R N The progra command To wríte only -- do not use does an EXECUTE ccmnand: REQUIRED entry: .COM OPTIONAL entry: LABEL The (name the That is, one not "mark its place" in the calling program. cannot G O S U B to another, then return and follo w íts sequential line order. command m executed SENSIBLE SOLUTIONtm or .RUN FILE NAME Reference 3 .77 t + + ! ( remark ) + + PURPOSE: Use the Remark com niand The Remark reference. program. to add command. remarks to the source code file for program will have no effect orí the execution of the USAGE: Enter w hatever rem ark you wish w herever portions of your source code file. To wri.te w ant to identify the various a REMARK: REQUIRED entry: ENTER WHATEVER OPTIONAL entry: LABEL The you SENSIBLE SOLUTIONtiá REMARK YOU WISH ' Reference 3 .78 + Lock + PURPOSE: The in a Lock data will allow you to lock the screen, data command file. file, or records USAGE: hen you select the option Lock by pressing [ L] or highlíghting pressing [RETU RN], the following options will appear on your screen: W Screen These The options SENSIBLE will be SOLUTIONtm fí1e by explained fíle All Record in detaíl on it records the following pages . Reference 3 .79 and + + Lock Screen + + PURPOSE: This command will lock the screen with the existing data being displayed and is typically used when will not refresh with subsequent data retrieval. It a specific a is through looking match and the a program paging file for records being paged might be confusing to the operator. USAGE: This command should be set 'just prior to the "find" the command "Unlock screen" record .information. "find" is accomplished, with the current To write a LOCK SCREEN Crv'""m REQUIRED entry: NONE OPTIONAL entry: LABEL '"Al simply select com wand. Once this optíon: 6 G The SENSIBLE SOLUTIONtiñ the will refresh the screen Reference 3 .80 + + Lock fí1e by Record + + PURPOSE: This command will lock the record being read, making it unavailable for a read from another program. "Lock file by Record" was designed to maintain data integrity on a multi-user computer system. If you are writing programs that will be used in a multi-user environment. -·'-- a situation where more than one user may be attempting to access the sanie data file at the same time use this command in your programs. -- always If the system has been installed as a single-user system (see SEN 3E"i'[jP in Installation Manual), this com mand will be ignored at run-time. USAGE: This command should be set at the beginning of your source program for every Frorn individual file in which you want to lock records. then on, any time that your SENSIBLE SOLUTION program reads that file will test to see the record is already locked; if not, this "Lock file byit Record" com mandif wi71 lock out any other user requesting the record. lock fí1e (FILENAME) by record íf fí1e locked goto (LABEL) To create a "lock file by record" corn mand line, begi-n by entering the name of the file that will be read. Next you will have. the option to enter the command line label to which program flow will branch if your program tries to access a file that has been Locked by another user. If ' the desired record is locked, access that record and will be record has been released. Ifwill thebe "lock the user requesting stopped from further will not be it processing able to until the file by record" is not used .in a uíüi.: i -L|ser program, no test and saves to check for locked records, arid all rÉ,ia / pair. Fields withín position; they are not delimited by is a non-delimited, fixed-length-field in ASCII form. No nulls or "control in particular, a record does bynot end solely a record are defined their commas or quotes. All disk I/O is done in blocks of 128 bytes; if nece£: 3ary,128. the physical Any unused record size is rounded up to the next larger Inultj?le of bytes in the Last block are filled wit.h blanks ASCII decimal 32) and ( The SENSIBLE SOLUTIONtm Reference 4.1 record-locking problems This blocking prevents "cross-boundary," ignored. in multi-user systems. the Data Dictionary by field name, data field in a record is defined in(numeric type only), and index-key status. places decimal width, field The order by field name. Fields are stored in the record in alphabeticaldetermined of the by each width starting position ("offset") for field is the fields preceding it in field-name order. Example: a data file CUSTOMER.MS has the following fields: Each type, FíeLd Name CUST.NAME CUST.DATE CUST.PHONE CUST.BILL Type Síze Alpha Date Alpha Numeric 20 6 12 10 record wídth Total = 80 2 1 ' 2 Key? Y Value N y 08/26/83 909/555-1212 N 1024.45 definition filled): LUKE 3 specified above would look. like this 4 O...V....O....V....O....V....O....V....O....V....O 1024.45 SKYWALKER, = 48 using the blank data record (bytds 128-48 A Decimals 30585SKYWALKER, LUKE 5 —— 909/555-1212 ------------CUST.PHONE CUST.NAME ------CUST.DATE ——————————CUST.BILL Any time a concerning deleted records. fínal point should be made here pad the entire record SOLUTION SENSIBLE a from deleted is will file, This record of blanks is then automatically re-used by with blanks. SOLUTION on a "last deleted, SENSIBLE fírst to be re-used basis." A record The SENSIBLE SOLUTIONtíñ Reference 4.2 IITYPES FIELD The a SENSIBLE types will handle(date),different (numeric), (overlay), 5 SOLUTION (alphabetic), N O D of and field definitions (record). R -- alphabetic type field will store printing character ASCII data from ASCII decimal 32 to ASCII decimal 126. Entries shorter than the full field width are blank-filled on the Alpha: An right. Numeríc: Numeric ASCII data, including appropriate. decímal point justified with the correct -123.000, not just -123). Date: ASCII if will and embedded stored right(e.g. places Dates can be entered in American short julian number. mm/dd/yy or mm/dd/yyyy; form, or dates may be entered in European short or long form, dd/mm/yy ora to dd/rrtm/yyyy. All date forms are converted internally "days This allows addition ("What is since base date" form. the date 10 days after 3/10/83?"), subtraction ("How many and sorting by date. days between 12/31/80 and 3/15/81?"), or long To you must the type of date that use SENSETUP.COM An . O specífy overlay field other several diagram below: Overlay: 9 ——_____"+"__"_"____+ B A field (see field field field C SOLUTIONtm or all Let's D +""""""""" field E ^ F: use, of a portion look at the 50 35 + 20 T-----Overlay SENSIBLE want your system to Installatíon Manual). you the is a field that combines fields into one field. ^ The minus sign be Numbers number decimal of leading íeld---Reference 4.3 characters spans two this example the overlay field of have to use all of and do D. You not fields -- field field Notice that jn our example the fields to create an overlay. the overlay begins at location 23 and ends at location that and 44 when, begin at location 20 and in fact,50. fields end 17 In C C D at location To create an overlay field that would match our example, begin by specifying "O" in the "Type" field window of the The cursor Data move into the next Dictionary screen. willspecify where the length of you "Size," should window, field The 17 characters. the overlay case, in this field -and wíndow, "Decimal," skip fi.eld the next cursor will then move to "Offset." At this field window you must type in the location of the beginning of the overlay field -- be23. a Finally, specify whether or not the overlay field will field. other smaller Overlay fíelds can not only be used to combine be used can also a they to break fields into larger field, apart one very large field into two or more smaller and more manageable overlay type fields. For example, since your i.s 80 wide you may have probably only characters terminal considerable difficulty creatíng a program that will accept a 255 character input field -- the maximum allowable size of a field. However, by using overlay fields you can break the desired field into four smaller overlay type fields consigting of three fields of 80 characters and one field of 15 characters. Data can then be' entered into the four overlay smaller fields 255and they will be automatically combíned one large character field. into The subject of overlay fields brings up an interesting problem. Since overlay fields will require that two or more each other ín a particular order, you may begin adjoin fields of data control the position SOLUTION to wonder how you can easily Remember that the SENSIBLE fields withín a record. code order so that arranges all fields in alphabetícal/ASCII precede the location field names that begin with an "A" would of field names that begin with a "EL" etc.. With this in mind, the most obvious solution to the problem is to adapt a field naming convention that will enable you to arrange the fíelds within the record as you like. The Data Dictionary provides a field window called"Field recommend that Description" to help identify the field. key We The SENSIBLE SOLUTIONtñí Reference 4.4 use this instead of the field narrte to identify the field. doing this, you can use more abstract names for fields and of the fields. thus concentrate on manipulating the position Overlay fields are one'of the more powerful features of the overlay SOLUTION. You can go so far as to create SENSIBLE ad overlay of infinitum. fields, fields of overlay fields, However, there are some restrictions to using overlay fields that you should keep in mind: you By -- is It field -- You impossible because R to overlay an type fields have "R type" a zero (record) offset. should not overlay a portion of a date field. the entire speaking you must overlay Generally SOLUTION The SENSIBLE a date. is field maintains the date internally as an 3 digit number representing the number of days from january 1st., A.D. 0000. if it record type field is a field that acts as a record pointer Any time that a value ís placed in the "R" within a file. SOLUTION SENSIBLE immediately find and type field, will matches whose number value. that In this the record retrieve "R" type field always behaves like a key field sense an because it forces a search and retrieve operation. Record: A the field does not actually take up physical space on However, always has a zero "Offset" value. the disk, add data an an"R" to type exísting you file, you must field INITIALIZE and REKEY the file just as you would with any field that occupies physical disk space. Because if it load If youfield, type Before we internal a record you will number that does not get a SENSIBLE SOLUTION exist into an "R" disk read error. the use of we should discuss this section on field types, SENSIBLE SOLUTION As you know, views all variables. fields -- fields that occupy a physical space in disk memory. though, programmers need to use temporary variables to store leave memory as variables Frequently, These kinds of variables things like accumulators or counters. will never With the SENSIBLE SOLUTION you can requíre permanent storage on the disk. The do this by creating a special data we call MEMORY.MS/.KS. that file actual disk file will consist of only one empty record subdivided into.. all The SENSIBLE SOLUTIONtm Reference 4.5 of the field (variable) definitions that you may require. must, never actually wri.te to this file on the disk, and INITIALIZED be created disk other any like just file. -The anything you not have to be called MEMORY. You can call fileThe does important thing is that you should create a file that .is strictly like. And, use reserved for holding temporary variables. just for that one special temporary variable file. purpose -- don't ever save a record in this it we Although nonetheless, it it ALTERING III A DATA STRUCTURE SOLUTION program is structure of fields and records in a SENSIBLE make changes in the Data you controlled by the Data Dictionary. If utilized by a SENSIBLE SOLUTION Dictionary to a record or field definition program, you will have to follow several specific procedures to maíntain a The usable data structure. tíme that you change a fíe1d defínítíon, every SENSIBLE SOLUTION program that: accesses that fíe1d must be re—compíled by usíng maín menu selectíon 6, Changing a field definition "Compíle A Source Code Fí1e" (SENSCOMP.COM). on the would include any change that you make to the following field windows ': Data Dictionary Type," "Size," "Decimal," "Offset, or "Key". screen: Any the programs that access that field have already been used to generate data files, you must perform a specific procedure to maintain the validity of your data files. not follow the correct procedure, your data If you docorrupted and the data essentially lost. Look file(s) may become hopelessly and applies to determine which of set at the logic chart below conditions We make back-up recommend you that strongly your particular situation. any of the following data files and re-name them before performing procedures. If The SENSIBLE SOLUTIONtm Reference 4.6 "Líve" No Data In Data Fííes Data Data Fíles In + + You have Síze, Offset changed Type, Decimal, or of a non-key RESTRUCTURE COMPILE INITIALIZE COMPILE fíeld + have changed Síze, Key (Y/N), or added a new You RESTRUCTURE REKEY COMPILE INITIALIZE fíeld COMPILE Procedure INITIALIZE COMPILE REKEY RESTRUCTURE Menu 5 6 Selection # Descríptñon Fije Inítía1íze Compí1e Rekey A A Data Code A Source Data Filie Restructure A Data 7 8 + + + Fije Fí1e Program SENSCOMP.COM SENSCOMP.COM SENSRKEY.COM SENSRSTC.COM IV TRANSLATING FOREIGN DATA SOLUTION to manipulate data from another use SENSIBLE If you wouldyoulikemustto insure database, that the data is in a format that SENSIBLE SOLUTION can read. with the a database is not compatible In other words, be required SENSIBLE SOLUTION database, you translate the data to into will To do this, you SOLUTION need to record structure. the SENSIBLE will write a program in a language other than SENSIBLE SOLUTION such as BASIC, Pascal, Assembler, etc.. if Transformíng To The move Foreígn data from SENSIBLE an SC)LUTIONtiñ Files Into SENSIBLE SOLUTION Format: SOLUTION, outside application to SENSIBLE you rnust Reference 4.7 enter the appropriate and REKEY filenameMS, procedure: Step 1 in the Data Dictionary, create field definitions Use the following filename.KS. to construct file the fieldenterspecifications them in the Define your -- Decimal, Key) main and (Field Data name, Dictionary. Maintenance," Size, Type, You may use 2, "Data Dictionary selection or create a maintenance of of program all your target fields with main file menu 3, "Screen Painting" and main menu 9, "Program Generator." The to inspect the newlyfile maintenance program will allow you Remember that the Data transported data file for accuracy. Dictionary will automatically arrange the fields within the record in alphabetical field-name order. This order cannot be overridden. Step 2 Step 3 menu the.fielá definitions directly through the Data If you entered -- Dictionary, remember to INITIALIZE the data file. If you use the second method, Generator," the data "Screen Painting" and "Program files will be automatically INITIALIZED. Either method will create an "empty" pair of files -- filename.MS/.KS. be replacedby the file you are about -- Erase filename.MS, it will to generate. Step 4 Do not erase filename.KS. BASIC, Pascal or an appropriate a new filename.MS with -- Generate The data must be of the correct "Size" (width) for other program. by the each field and ín the position within the byrecord specified name). Data (alphabetical Dictionary field field order should note that the physical bytes and no larger than the"unused" bytes, any, Fill not end with a / pair. You of 128 if record size must be a multiple bytes (12 128-byte blocks). with blanks. The record should 1536 in Gregorian format (mm/dd/yy, dd/mm/yy, etc.) cannot be directly into a date-type field. To convert a date from Gregorian format to julían format (the internal form), you must character the Gregorian string (mm/dd/yy, etc.) to an or alpha field. Next, write a SENSIBLE SOLUTION program that moves The SENSIBLE the alpha field to a new "D" type (date) field". SOLUTION the conversion perform to internal julian form will Dates moved 8 innove 10 automatically. Step 5 Step 6 The -- REKEY the data -- Both of the SENSIBLE SOLUTIONtm fíle. files, filename.MS and .KS, are now valid SENSIBLE Reference 4.8 data files. You rnay now write SENSIBLE required. to perform any further transformations SOLUTION SOLUTION programs Into Other Formats: Information contained in SENSIBLE SOLUTION data files may also be accessible 10, "Inquire," or by writing a By using main menu by alien applications. special report generating SENSIBLE SOLUTION program, you can translate your current data structure into a form that is easily accessable. "Inquire" is an an ad-hoc "quick query" facilíty that generates a listing of The records selected some for or all fields from a single data file. be by may controlled conditional testing of the contents. listing Transformíng SENSIBLE is also an easy It control the output SOLUTION Fijes matter to write a SENSIBLE format to create delimiters, program that will headings, footings, etc. as SOLUTION like. Using either the "Inquire" program or a special report generating program printer as specified in the limit you to the maximum width of your line will The maximum allowable width of system installation program, SENSETUP.COM. You rriay, send however, any SENSIBLE SOLUTION report is 255 characters. larger data sets in multiple-line groups. The "Inquire" program andCRTa of a data file to the report generating program can send a print out The disk file is a "printscreen, the line printer, or to a disk file. / image" end of each that includes pairs the at line plus page file you breaks and headings. Whichever method you choose, fields blanks. including leading or trailing and so on from with blanks, delimiters, The SENSIBLE SOLUTIONtm will It is within always be sent full-width, your responsibility to deal the alien application. Reference 4.9 MULTI-USER Record Locking and V CONSIDERATIONS Fí1e Lockíng: version of SENSIBLE SOLUTION supports both file locking and multi-user This means that the language, and all programs written in record lockinC. The SENSIBLE SOLUTION has com?lete multi-user íangaage, the capabilities. a type single user type system or as a multi-user can be purchased as either To Cet multi-user capabilities from SENSIBLE SOLUTION you must system. have purchased the multi-user version and you must have specified multi-user setup when the system was installed. with SEFSETUP.COú! (see the Instailtion Manual). The file locking "owns" the When is invoked in a filename.RUN program, one user essentially some other user particular file that is being accessed. display If in use" a terminal that user's access the to file, tries "file will usually File locking is access the file. can successfully messaCe until employed in a it program when a global update on a data file is being done. For example, in an accounting application such as posting to the general Leáqer, you should lock the file durinc programmer will usually employ to be printed on the screen This helps eliminate any out situation. "hangs up." terminal their A thoughtful a message cause operation. the posting in the program that will user encounters a lock a anxiety user might feel when a trap when any Record locking works much the same as file locking except that only one program updates a record is locked at any one time. your filenarne.RUK If record, you must assume that some other user will attempt to access that Do not risk corru?ting the record. Lock the record at the same time. Since a record cari be updated in such record that is Coing to be updated. a short time, you probably can dispense with a lock out trap aná"file in use" message. SENSFREE: and are using any of the language main menu selections (SENS*.COM) code such (filename.SRR) as a accessing a file source are currently file be locked out or a screen format file {filenarrte.SCC), all other users will The intrudinC user of that file until the file is saved back on the disk. message on their terminal. displayed see a "file in use" will If you you Sometimes you The SE3'SIBLE will unavoidably SOLUTIONtñi end up making a "disorderly exit" from Reference 4.1C a SENSCTRL/SENSETUP may not be the same RECFLE specified in RECFLE.MS. Herein lies the potential for problems. Is SENSIBLE really looking at the SENSETUP Data Dictionary that you should set the indicates? Ideally, FLDFLE) (RECFLE and as specified in of the Data locatíon Dictionary files SENSCTRL/RECFLE.MS, That way, when so that RECFLE always points to itself. SENSETUP Data Dictionary, the you run again to determine the location of the specified drive location will in fact contain the Data Dictionary you are looking for. data fíles review, SENSIBLE needs to know the current location of the and RECFLE.MS locations from those gets that will be accessed. gets It Don't risk causínq confusion for the location of RECFLE.MS from SENSCTRL. yourself or other users: To it (RECFLE/FLDFLE), as Set the dríve .location of the Data Dictíonary defíned by SENSETUP, and the drive locatíon specífíed ín RECFLE.MS for fínding RECFLE and FLDFLE to the same location. Q The SENSIBLE SOLUTIONtm Reference 4.12 data and a colon, file,SOLUTION data SENSIBLE filename.KS. You do not the files have Remember, that all file. in pairs consisting of filename.MS.KS. and specify the file extensions, or name come to of the data .MS the specified disk drive for the .MS and .KS files and, re-prompt the requested file pair can not be found or accessed, will SENSALOC When the two located, you for the name. are will files file of their size report their current size and then print out a projection and 300%. 200%, the file pair is extended by 25%, 50%, 100% (doubled), Next, choose ask extend you wish you enlarge the to to file. will If You can extend the from 1% the file, SENSALOC will ask by how much. file 999%. to Simply type in the percentage you want. Éxtending a file by 999°, a by increase size factor eleven. of will its SENSALOC if will scan it if it if Next, and SENSALOC will you how much free disk space will be required One tell Answer "Y" to pre-allocate the ask you for approval. size. file caveat is in order here; before you pre—a11oca'te a fí1e, you must be certaín Failure to that the file ís closed and no users are attemptíng to open it. take this precaution could cause the data already in the file to be seriously corrupted. Two final bepoints. can enlarged is still just the discussion above, is obvious that before a contain some data. A Ok file enlarged by file first 200% a Ok So you are creating a brand new file and file. be size, want to pre-allocate sure that you first create sorne base data its the size increase. that SENSALOC can use as a foundation for calculating a you need, you can run SENSALOC over and over again to create preIf be limited by, You only allocated file of whatever size you desire. will the available space on your disk drive. MULTI.SYS On it From it must if DPC/OS-like O/S'S: Some - and Network O/S) Mmmost, operating systems (specifically DPC/OS, a MULTI.SYS. SENSIBLE special system information file called utilize accesses this file to determine the current file status of the operating system. For SENSIBLE to run on a DPC/OS-like operating system, MULTI.SYS be present on the same drive location must as SENSIBLE. The SENSIBLE SOLUTIONtm Reference 4.13 ' data and a colon, file,SOLUTION data SENSIBLE filename.KS. You do not the files have name come that all file. Remember, and filename.MS of consisting pairs in .KS. of the data to specify file the extensions, .MS or and, scan files the specified disk drive for the MS and will re-prompt the requested file pair can not be found or accessed, will it if SENSALOC When the two located, name. the are will you for files file of their size ir report their current size and then print out a projection and 200%, the file pair is extended by 25%, 50%, 100% (doubled), you choose to extend Next, it will ask if you wish to enlarge the file. If You can extend the from the file, SENSALOC will ask by how much. file Extendi-ng a file by Simply type in the percentage you want. to 999%. 999% will increase its size by a factor of' eleven. Next, SENSALOC will tell you how much free disk space will be required and One ask you for approval. Answer "Y" to pre-allocate the file size. a fije, you must be certain caveat is in order here; before you pre-allocate Failure to that the file ís closed and no users are attempting to open it. could cause the áata already take this precaution in the file to be seriously corrupted. .KS SENSALOC ' 3C)Ó%. 1% above, From the discussion is obvious tfüít before a final bepoints. it must enlarged by some data. can contain enlarged file file first it 200% is Ok So new brand a file and if youthatareyoucreating still just its file. want sorne base data size, be sure create to pre-allocate first foundation the size increase. that SENSALOC can use as calculating for and SENSALOC again can need, to create preover you run over If you be lirnit;ed You by, only allocated file of whatever size you desire. will Two A Ok a a a the available space on your disk drive. A MULTI.SYS On DPC/OS-1íke O/S'S: \ Xmmost, and Network O/S) systems {specifically DPC/OS, a SE7·'SIBLE MULTI.SYS. system special information called utilize file determine operating the current file status of the accesses this file to For SENSIBLE system. to run on a DPC/OS-like operating system, MULTI.SYS be present on the same drive location must as SENSIBLE. Some ' operating i The SENSIBLE SOLUTIONtIn Reference 4.13 0 The SENSIBLE SOLUTION Language SYSTEM SPECIFICATIONS Maximum Maximum Maximum Maximum Maximum Maximum Maximum Maximum O/S Limitea: Size........................ O/S Limited 08U¥g.e. File Data Size............ Unlimited of Files........... 16,777,216 Records Data of File per 1,000 of Data Fields per Record............................. 26,496 Data Record..... Bytes Program Data Number Number Number . File per 16 of Open Files in a Program........ 10 P....©... of Indexes (Keys) per Data File Record...... Number Record Index) (This includes One pre-Defined 160 . Maximum Number of Keys per Screen or program 72 Maximum Length of Key Field 255 F: Maximum Length of a Single íeld .CO..... Stored Number Range: +99,999,999,999.9999 Maximum . . Minimum... - 9,999,999,999.9999 4 Decimal place precision.... (Computations are done to 5 decimal place precision, then rounded to the precision of the target field.) 255 ** Maximum Nurnber of Accessed fields per program 2,000 Maximum Number of Command Lines per program 300 Maximum Number of Command Line Labels per Program.. 20 Maximum Number Subroutines of Nested (GOSUB)................. Maximum Length of Reporter Print Lírie Printer L: üñited 60 Maximum Number of Report Format Lines.... 255 ...... Maximum Fields Screen/Report on a (fields) ForInat...................... 15 Maximum Length of Field (Variable) Name Number Number .......................... * ** The O/S An Limited means limited array is considered as SENSIBLE SOLUTIONtm by a the dísk capacity single field. and operating system. Appendix 5.1 The SENSIBLE SOLUTION COMPLETE Language FILE LIST . CP/M CP/M-86 MS-DOS .RUN ENTFLE .RUN ERRENT .KS ERRFLE .MS ERRFLE .KS FLDFLE .MS FLDFLE MAILLIST.KS I4AILL1ST.MS MAILLIST.RUN MAILLIST.SCC MAILLIST.SRR FLOPMENTJ.RUN MENU .RUN MENU .SCC MENU .SRR .KS RECFLE .MS RECFLE SENSCTRL.!YIS SENSCYD .COM SENSCOMP.COM SENSCRN .COM SENSETUP.COM SENSGEN .COM SENSIBLE.COM SENSIP'IT.COM SENSINQR.COM SENSRKEY.COM SENSRSTC.COM SENSFREE.COM TERMDEFS.MS ENTFLE .RUN .RUN ERRENT ERRFLE .KS .MS ERRFLE FLDFLE .KS .MS FLDFLE MAILLIST.KS PIAILLIST.MS MAILLIST.RUN MAILLIST.SCC F'ÍAILLIST.SRR FLOPMENU.RUN MENU .RUN MENU .SCC MENU .SRR RECFLE .KS .NIS RECFLE SENSCTRL.MS SENSCMD .CMD SENSCOMP.CMD SENSCRN .CMI) SENSETUP.CMD SENSGEN .CMD SENSIBLE.CMD SENSINIT.CMD SENSINQR.CMD SENSRKEY.CMD SENSRSTC.CMD SENSFREE.CMD TERMDEFS.MS .RUN ENTFLE .RUN ERRENT .KS ERRFLE .MS ERRFLE .KS FLDFLE .MS FLDFLE MAILLIST.KS MAILLIST.MS MAILLIST.RUN MAILLIST.SCC The SENSIBLE SOLUTIONtm ' UILLIST.SRR FLOPMENU.RUN MENU .RTJÑ .SCC .SRR .KS RECFLE .MS RECFLE SENSCTRL.MS SENSCMD .EXE SENSCOMP.EXE SENSCRN .EXE SENSETUP.EXE SENSGEN .EXE SENSIBLE.EXE SENSINIT.EXE SENSINQR.EXE SENSRKEY.EXE SENSRSTC.EXE SENSFREE.EXE SENSMAIN.EXE TERMDEF'S.MS MENU MENU Appendix 5a2 The SENSIBLE SOLUTION FILE File extensions created filename.SCC filename.LST filename.SRR filename.RUN filename.MS filename.KS filename.IQ Operating System text Command Compiled EXTENSIONS by The SENSIBLE SOLUTION Language: layout source file of screen layout file source code file file file Key file (for the .MS file) Inquire format file command Master data file filename.EXE filename.CMD SENSIBLE used Screen A filename.COM The and Language SOLUTIONtm extensíons used by Compiled executable Compiled exec of the following: right margin, cannot Field would overlap right margin SENSIBLE spec for this been have file 31 report printer width defined in is not in selected ——— Dictionary Data has exceed definítion Dictionary Data been updated, the specifications Dictionary Please re-enter 30 42 The conflicts with 20 move + - * / right Appendix 5.7 Cannot 44 Field is already 45 Field would overlay 46 Screen 47 --- 48 --- 49 _"_ 50 --- 51 Too 52 More 53 Too many branch labels defined 54 Duplicate branch label defined 55 Branch 56 Too 57 --""" ----File 58 59 60 61 The field at cursor position 43 no remove, file many than another field on screen not found 255 .RUN fields referenced ín file .RUN file not defined screens to compile has no records has no keys 62 File 63 File not found in 64 Field 6.5 Memory SENSIBLE the screen elsewhere files referenced in label many on Data Dictionary not found in tjata Dictionary exhausted, SOLUTIONtm cannot continue Appendix 5.8 66 End of program without reached RETURN or GOTO 67 68 69 found delete 70 Key 71 Must find 72 Find reached beginning of 73 Find reached end 74 Exact match 75 Keyfile 76 Duplicate 77 Related record not 78 Field is not 79 --- 80 Invalid 81 Arithmetic 82 Arithmetic 83 Attempt to divide 84 Invalid 85 Mask 86 87 88 The ----not on (BEGIN/END/FIND) record a of before doing NEXT/PREV keys keys not found corrupted, key please rekey already exists found a key, cannot search array reference field, data invalid data invalid overflow during calculation, result too by wide for zero, data invalid date field width Field is not type 'A', cannot justify length exceeds ----- SENSIBLE SOLUTIONtIn Appendix 5.9 89 --- 90 More 91 RETURN 92 .RUN 93 .RUN 94 than file file Internal 95 Multi-user 96 MULTI.SYS 97 Demo 98 _"_ 99 --- SENSIBLE nested GOSUBS without O'Hanlon The 20 GOSUB invalid contains command, please recompile not found error, Computer access please contact your dealer or Systems at (206) 885-2502 unsuccessful not found version, SOLUTIONtm 150 record " limit exceeded Appendix 5.10 MENU.SCC J)' ' . The SENSIBLE SOLUTION Version 2.0 Language MAIN I) 2) 3) 4) 5) 6) 7) 8) 9) 10) . I II It'" . ## MENU Execute A SENSIBLE SOLUTION Maintenance Data Dictíonary Screen Painting source code Editor A Data Fíle Compile Code Source Rekey A Data Restructure a Data File Program Generator program Initíalize File Inqui-re Enter You Choice From Options Above ii" , Field name N.2.0.1 File MEMORY e The SENSIBLE SOLUTIONtIn Size 2 Col Row Key ()22 17 N . Appendix 5.11 ' B MENU.SRR 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 remark goto MENU START SENSIBLE ENTFLE SENSCRN SENSCMD SENSINIT SENSCOMP SENSRKEY SENSRSTC SENSGEN SENSINQR MAIN MENU PROGRAM FOR SENSIBLE SOLUTION LANGUAGE MENU remark remark remark mount PORTIONS COPYRIGHT 1983 H^HANLON VX.XX ###### ABOVE COPYRIGHT NOTICE O'HANLON MAY NOT BE SYSTEMS, COMPUTER ALTERED OR REMOVED SMENU screen N.2.0.1 = <0> enter N.2.0.1 goto line on value of N.2»0.1 execute .Com file SENSIBLE execute .Run file ENTFLE execute .Com file SENSCRN execute .Com file SENSCMD execute .Com file SENSINIT SENSCOMP execute .Com file SENSRKEY .Com execute file execute .Com file SENSRSTC SENSGEN .Com execute file .Com execute file SENSINQR maximum gotos 10 if error 4 The SENSIBLE SOL[jTIONtm INC. Appendix 5N2 goto START G ARRAY.SCC ' áÉY«g#:= zFtÁmK?... . -vK '.. g & s. f¥i l +. PR: . ' ' " '" "" " ' * ' " ""'" ' í¿ai';^ I ARRAY +"—~~~——~+ automatically create array element entries you allow to will Data Dictionary. Enter the name of the first in the (field definitions) number elements you wish to create, and the first that of the element, array add elements number. element You can to an existing array by indicating element program This with. will check for duplicate entries. which to begin the data file after adding the new array You must INITIALIZE or RESTRUCTURE elements. This program + Array Name: File Name: Field Type: Fielci size: Decimals: Field FLD.FILE FLD.TYPE FLD.SIZE FLD.DEC FLD.FLD.NAME FLD.FF.NAME ''.' The SOLUTIONtm eWÁlta&4Él&'l)¶¥ Field nante S.12.1 N.3.0.1 S.3.1 SENSIBLE File -E y Col Size MEMORY 012 MEMORY 3 MEMORY 3 FLDFLE FLDFLE FLDFLE FLDFLE FLDFLE FLDFLE 8 1 3 1 15 23 016 052 071 052 052 052 052 016 052 4.\ , ' ' Row ******** * ### # File: *********************** F'ield *************** Name: Begin With: ### of Uements: Number ************ . . -' " ·' ">(5. .t n "..." " ¿ IK, ,..g.s-s Key 13 N 13 N 13 N 15 N 16 N 17 N 18 20 20 N N Y Appendix 5.13 *** ARRAY.SRR e 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0023 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 The V ARRAY ELEMENTS (FIELD WILL AUTOMATICALLY CREATE THIS PROGRAM INFORMATION (FLDFLE). DEFINITIONS) IN THE DATA DICTIONARY--FIELD TO THE RETIJRN DATA DICTIONARY--FILE AFTER EXECUTING THIS PROGRAM, THE NAME OF THE DATA FILE. INFORMATION (RECFLE) AND ENTER ARRAY screen NAME ARRAY ENTER USER {12 CHAR.) S.12.1 USER ENTER ÉÉ OF ELEMENTS IN ARRAY remark remark remark remark mount remark START enter remark enter N.3.0.1 remark ENTER BEGINNING <### mask S.3.1 FLD.FILE FLD.TYPE FLD.SIZE FLD.DEC USER enter enter enter enter enter N.3.0.2 remark S.3.1 = remark S.12.1 SAVE.GRP = PAD (S.3»1) WITH fill O'S FOR 001, 002, leading chrs with SIGNIFICANT = trim spaces ONLY # ELEMENT CHARACTERS 003, ETC.. O IN FIELD WILL BE MOVED. trailing CONCATENATED CREATE KEY OF FILENAME PLUS FIELDNAME. remark FLD.FF.NAME (FLD.FILE)+(S.12.1)+(S.3A) = NOT ALREADY EXIST remark VERIFY THAT FIELD DOES FLD.FF.NAME on error goto CONTINUE find exact rec using DUPLICATE goto remark CREATE FIELDNAME FLD.FLD.NAME = (S.12.1)+(S.3.1) FLDFLE no confirm no clear buffer save rec in NUMBER SQ WILL APPEND TO END THAT NEXT SAVE remark CLEAR RECORD FLDFLE clear record number in AND FOR TOTAL. NEXT ELEMENT remark INCREMENT THE COUNTERS field CONTINUE / file file N.3.0.2 N.3.0.3 = (N.3.0.2)+<1> = (N.3.0.3)+<1> ARE remark CREATED? TEST COUNTER. ALL ELEMENTS N.3.0.3 = (N.3.0.1) goto CLEAR MOVE COUNTER TO remark STRING FIELD FOR CONCATENATION> S.3.1 = (N.3.0.2) KITH ZEROS7 PAD remark LEADING CHARACTERS O with chrs leading S.3.1 = goto SAVE.GRP if fill SENSIBLE SOL[jTIONtm Appendix 5o14 OF FILE. e t 0041 0042 0043 0044 0045 CLEAR DUPLICATE TO ENTER THE NEXT ARRAY. remark CLEAR SCREEN clear buffer in file MEMORY clear buffer in file FLDFLE AND remark IF DUPLICATE ARRAY ENTERED, PRINT MESSAGE 000 00 THIS ARRAY ELEMENT row message print at col RE-ENTER 0046 0047 0048 NAME clear buffer clear buffer goto START OR in in BEG. file file CLEAR SCREEN. ALREAbY EXISTS. # MEMORY FLDFLE . The SENSIBLE SOLUTIONtm Appendix 5.15 Introductíon advanced The SOLUTION Language SENSIBLE business applications a highly programming makes frequent access language; to disk drives and uses some of the more sophisticated of your display terminal. In order to perform properly the SENSIBLE SOLUTION must know exactly which "control codes" ccjmmunication. use your display terminal and it E3y following erríbed or have done quickly and to is capabilities for printer in this Installation Manual able you will be the instructions SOLUTION. Once you "install" this information in the SENSIBLE this, the input/output portion of SENSIBLE SOLUTION will run fault-free on your computer system. computer hardware system is easy. "Installinq" SENSIBLE SOLUTION on your the next four sections of this manual carefully and follow all of the instructions. The actual installation process -- running SENSETUP -- will Read only take Get to running" The you about ten minutes. work and you'll on your machine! SENSIBLE SOLUTIONtm soon have The SENSIBLE SOLUTION Languaqe "up Installation and 1 The SENSIBLE Requirements System The are the basic followingSENSIBLE SOLUTION operatíon (I) RAM TurbcjDOS, Memory: (a) CP/M, (b) (C) CP/M-86 MS-DOS (d) MP/M-86 rí/STAR, PC-DOS, SENSIBLE (free greater requirements): installation and user SOLUTION area requires exclusive MP/M CP/NET. RAM of 48k operating TPA or system memory of 48k RAM TPA (DEC Computer requires 96k) 128k 128k (Victor Computer requires 256k) 128k (PC-DOS) SENSIBLE SOLUTION requires mass storage capability Storage: each with at least 320k bytes of at least two floppy Disk Drives, disk) usable (floppy capacity formatting» storage after increase Adáitionai drives, disk capacity, or hard disks will Hará disks are recommended. system performance. Mass (4) Termína1: of the following CRT (a) (b) (c) (d) (e) The for the MP/M, MS-DOS SENSIBLE SOLUTION requires a CP/M, Operatíng System: Most compatible operating which hardware system. or similar, such system SOLUTION. an operating supports run SENSIBLE will MP/M, Examples MS-DOS, of these operating systems are: CP/M, MmmCST, (3) (S) requirements software: system of DPC/OS, (2) SOLUTION Prínter: following (a) (b) SENSIBLE SENSIBLE minimum requires requirements: SOLUTION a CRT (Video) terminal ANSI compatible by 8C (columns) 24 (lines) Display: Direct Cursor Addressing (absolute) Clear to End of Line Clear Screen ASCII Screen serial type or SENSIBLE SOLUTION a requires minimum requirements: ASCII type 8C) column or more (e.g. 255 column SOLUTIONtm printer with compressed the print) Installation 2 Pre-lnstal1ation Instructions 1. and return Please out the User License Agreement to your Dealer Card must Systems, Your signed Registration Inc. or O'Hanlon Computer be on file with O'HadLon in order to preserve your warranty. 2. Make 3. The SENSIBLE (CP/M, system and either The fill it diskettes. copies of your original SENSIBLE SOLUTION operating system manual for the correct your computer's SOLUTION Never use the original SENSIBLE copying procedure. as "working" diskettes. SOLUTION CP/M-86, is for SENSIBLE SOLUTIONtm a Language MP/M, single Refer to diskette diskettes a specific operating is forTurboDOS, DPC/OS, as supplied MP/M-86, MS-DOS, or multi-user operatíng etc) system. Installatiorí 3 SENSIBLE SOLUTION Fíle Extensíons fílename.SCC Screen format files files fílename.SRR Source code fílename.RUN Compiled fílename.MS Master data fílenariie.KS Key fi-lename.COM Compiled executable SENSIBLE SOLUTION program files (pseudo code) file file (for the .MS file) programs (machine code) C . The SENSIBLE SOLU1'IONtm Installation 4 Supplied wíth Fijes The SENSIBLE List Demonstration (The Mail F4AILLIST.RUN MAILLIST.KS MAILLIST.MS MAILLIST.SCC EAILLIST.SRR (The SENSIBLE FLQPMENU.RUN MENU .RUN MENU .SCC MENU .SRR (The System .KS ERRFLE ERRFLE .MS Module) SOLUTION SENSIBLE key file data file screen format file source code file SOLUTION (The Temporary .MS MEMORY .KS Main Menu Language program Module) (for floppy disk systems) (for hard disk systems) Error Module) Message (The Data Dictionary .KS FLDFLE .MS FLDFLE .KS RECFLE .MS RECFLE MEMORY Lanquage SOLUTION Module) Memory Variable Files) (The System SENSCTRL.MS TERKIDEFS.MS Definition Files) (Ttte System SENSETUP.COM Confiquration/lnsta11ation program) · ¢ The SENSIBLE SOLUTIONtm Inst.allation 5 (Multi-User SENSFREE.COM (Tíie SENSIBLE SENSIBLE.COM .RUN ENTFLE SENSCRN .COM SENSCMD Utility) SOLTJTION Language Main Menu Programs) language executive program maintenance program data dictionary screen painting program source code editor program file initialization program compiler program key file re-key programprogram data file restructure automatic program generator program quick report generator program .COM SENSINIT.COM SENSCOMP.COM SENSRKEY.COM SENSRSTC.COM SENSGEN .COM SENSINQR.COM f The SENSIBLE SOI3UTIONtra Installation 6 lnstaIIation Instructions two involves Installing the SENSIBLE SOLUTION Language on your system on drive locations transferring the procedures: the proper {I.) files to and and system system (2.) running setting the appropríate attributes your SENSETUP.CO!4. the terminal/printer/system are installation program, Iftheyou menu using a floppy disk system, you will also have to {3.) re-name programs. following instructions reference we will make frequent to certain ".COM". end with the extension This that particular file name file extension unique to the CP/M operating system. is If you purchased the CP/M-86 you should note that those files version of The SENSIBLE SOLUTION, you purchased the Similarly, will be named with the extension ".CMD". MS-DOS version of The SENSIBLE SOLUTION, those files will be named with the extension ".EXE". In the names if be coraputer system rnust single-user/floppy-disk a or a singleCP/M"86, be CP/M, MS-DOS must rnulti-user/harda user/hard-disk or or for Each one of these three types disk for MP/M, MP/M-like, of or MP/M-86. Use one of systems require its own particular installation procedure. will the 3 following sets of instructions that applies to your system. Your it I SINGLE-USER/FLOPPY-DISKETTE CP/M and MS-DOS 1. IE make you have not already done so, SOLUTION This diskettes. copy of the diskettes using the disk distribution hardware manufacturer. 2. We 'A' qíí 3. The INSTALLATION working copies of your can be copy utility that the floppy drives are designated is the default (logged on) drive, and that 320X bytes of disk storage. assume done 'A' each by making provided and drive '!3', has SENSIBLE linage an by your that drive a minimum bootable program diskette with the necessary operating system (PIP, COPY, STAT, etc.). Test the boot (the computer's coldutilities See your computer's before doing arlythinC else. start instructions) Create SENSIBLE a SOLUTIONtm Installation 7 operating system manual. of the necessary SENSIBLE SOLUTION Language files Copy (using labeled "Íjisk 1" and "Disk 2". áískettes cjf the files from Disk 1 onto a diskette that will be and all of the files from Disk 2 onto a diskette that drive 'B'. All 4. Disk Disk 1 .RUN ENTFLE ERRFLE .MS .KS ERRFLE .MS FLDFLE .KS FLDFLE FLOPMENU.RUN MAILLIST.RUN MAILLIST.SRR MAILLIST.SCC NIAILLIST.MS MAILLIST.KS MEMORY will PIP used will be on COPY) two used in or in drive be all 'A' 2 ERRENT .RUN SENSCMD .COM SENSCOMP.COM SENSCRN .COM SENSFREE.COM SENSGEN .COM SENSINIT.COM SENSRKEY.COM SENSRSTC.COM .PIS MEMORY ' 5. .KS .RUN .SRR MENU .SCC RECFLE .MS .KS RECFLE SENSCTRL.MS SENSETUP.COM SENSIBLE.COM SENSINQR.COM TERMDEFS.MS SENSMAIN.EXE MENU MENU Run the terminal áetails, Manual. 6. (used on MS-DOS systems) SENSETUP.COM to configure your display installation program and to system parameters. For set various printer 'SENSETUP' section of this Installation in the following and see SENSIBLE SOLUTION is run immediately time that executes a main menu of the "MENU.RUN" language. up bring the called to program The proper menu program for a floppy-diskette installationandsuch as this must be This program is on drive 'A' i-s called "FLOPMENU.RUN". Re-name re-named. the following two files with your operatíng system it Any it The SENSIBLE SOLUTIONtm Installation 8 re-name command, Re-name Re-name 7. "REN": MENU.RUN as HARDMENU.RUN FLOPMENU.RUN as MENU.RUN SENSIBLE followed by a carriage return and SENSIBLE SOLUTION Language. At appear on your screen indicating a that and has a 150 record data imposed on SOLUTION on you SENSIBLE the 150 record and we Systems O'Hanlon Computer give you a remove the data This from your language. Type limit limit called "serialization." you're ready to begin this stage a message will this is demonstration version using the it. limit will In order to remove telephone software, special code that will unlocking process is Before Systems software to get your calling O'Hanlon Computer SOLUTION of SENSIBLE serialized, make sure that you have the versionWhen you want you that O'Hanlon, single-user multi-user. call or --with a representative you instructions. will talk serialization for be You rriust you while terminal at your computer talk to the The representative representative. will ask you to give your name and address or your company's name and address and the number of operators that your system will be licensed for. After the serialization, this SENSIBLE information appear on your screen every time that will SOLUTION is run. II SINGLE-USER/HARD-DISK CP/M, CP/M-86, 1. and make you have not already done so, SOLUTION diskettes. This copy of the diskettes using the disk If Use utility provided to transfer all of the utilitys Disk system's hard onto SENSIBLE SOLUTION distribution files 3. The the PIP or from Disk the terminal Run SENSIBLE COPY 1 and working copies of your SENSIBLE image an by your hardware manufacturer. 2. INSTALLATION MS-DOS 2 your can be copy done by making disk. your display program SENSETUP.COM to configure installation and For printer and to set various system parameters. SOLUTIONtm Installation 9 details, 'SENSETUP' see Manual. 4. in the following section of this Installation SENSIBLE followed by a carriage return and you're ready to begin SENSIBLE SOLUTION Language. using the stage a message At version demonstration on a that appear your screen imposed on and has a 150 record In order to remove the 150 record SOLUTION software, telephone O'Hanlon on you SENSIBLE and we Computer Systems remove give you a special code that Type limit will limit from your language. "serialization." the data will this this is indicating data-limit it. This unlocking will is called process Systems software O'Hanlon Computer to get your calling SOLUTION make serialized, sure that you have the version of SENSIBLE When want OWanlon, you you single-user multi-user. call or that -- with a representative serialization instructions. talk for you will be must You you while at your computer terminal talk to the The representative ask you to give your name and representative. wíll of operators name and address and the number aádress or your company's be licensed for. After the serialization, this that your system will SENSIBLE information appear on your screen every time that will SOLUTION is run. Before III MULTI-USER/HARD-DISK INSTALLATION MP/M-type and DPC/OS-type MmmOST, MP/M-86, CP/NET, n/STAR, (TurboDOS, 1. you If SOLUTION have not already copy of the diskettes haráware manufacturer. 2. The so, make Thís using the disk working copies of your SENSIBLE image can be done by making an by copy utility provided your to transfer all of the SENSIBLE SOLUTION files from need You will to onto your system's hard disk. how manual system on complete instructions for refer to your operating Some multi-user ycmr activity. files must be set example, for multi-user operating require that you set all of the systems, for will SENSIBLE SOLUTION main menu files (SENS*.COM, etc.) to "read/only" and "system". Use the 1 Dísk 3. done distribution diskettes. etc.) Run the SENSIBLE PIP and utility Disk 2 installation program SOLUTIONtm SENSETUP.COM to configure your Installation display 10 and' terminal details, For system parameters. to set various section of this Installation in the following first inenu option of SENSETUP, "Define systemis will allow you specify whether or not your system Specify multi-user. printer and 'SENSETUP' see The Manual. installation" multi-user. SENSCTRL.MS, communication which among codes, If other things contains your display terminal's is created by the installation beprogram used types of display terminals are to different to move a unique copy of SENSCTRL.MS, for will need each SENSETUP.COM. on your system, you each type of terminal, onto user area. considerations Additional multi-user are discussed in under the section "Data Structures". the Reference Manual 4. SENSIBLE followed by a carriage return and you're ready to begin the SENSIBLE SOLUTION Language. At stage a message version a demonstration that appear on your screen indicating imposed and has a 150 record on In order to remove the 150 record SOLUTION software, telephone O'Hanlon on you SENSIBLE and we Computer Systems remove give you a special code that Type using data-limit limit will the data limit from your language. "serialization." will this this is it. This unlocking will is µrocess called Systems software O'Hanlon Computer to get your SOLUTION have SENSIBLE version you the of that sure When you call O'Hanlon, want multi-user. single-user or --with a representative you will for serialization instructions. talk be You must while you at your computer terminal talk to the The representatíve will, ask you to give your name and representative. name and address and the number of operators address or your company's After the serialization, that your system will be licensed for. this SENSIBLE on information your screen every time that will appear SOLUTION is run. Before serialized, you that calling make 0 The SENSIBLE SCjLUTIC)Ntra Installation 11 SENSETUP The Dísp1ay Terminal and Prírrter Installatíon program Module the SENSIBLE SOLUTION Run-Tíme codes terminal that your display uses. SENSIBLE SOLUTION must know some of the parameters that In addition, your employs the wídth of the the number of lines per printed page, The used to embed or SENSETUP page, program required information in the run-time portion of SENSIBLE SOLUTIQF'. The must SENSIBLE "know" printer etc.. SOLUTION and Language the exact input/output like this "install" is loading all of the files that comprise the run-time you have finished After be you of the language into portion your computer's disk storage, will type Fíxm the system level ready to perform the installation procedure. the fíle name SENSETUP: SENSETUP A> The following menu will SENSIBLE appear [RETURN] on your display SOLUTION(tm) Setup screen: Program —————— I) Define installation printer terminal definitions 2) Define 3) Define 4) Save {ESC] to system abort without update Your choice: The SwNSIBLE SOLUTIONtm In3taílation 12 DEFINE THE SYSTEM INSTALLATION: Choose selection number terminal keyboard your pressing "1" your screen: on "any character" template marker "alphabetic" template marker "numeric" template marker "user-defined" template marker "decimal point" character Short (MM/DD/YY) date format or Long (MM/DD/YYYY) US (DD/MM/YY) (MM/DD/YY) date style or European Data Dictionary drive) drive ("@" = currently-logged 2=DPC/OS 1=MP/M, File locking -- 0=none, * A # ? . S U @ O Enable TRACER? REQUIRE [ENTER] Y N (otherwise, ==> Press the portion definitions change list), by on installation," list will appear definitions for this installation -- System This "Define system the following 1, and on "enter "M" key all inputs? go" when and field full) to modify these, any the fielá the definition, key to accept. accept the current You may wish. on this lines four first file locking and tracer SENSETUP allow you to either them as SENSIBLE SOLUTION or to change window prompts (represented by the location of the Data Dictionary, and the carriage return requirement. of of will other you consider whether to a to If the present type the letter '9I". line program will first on the of the system cursor will be positioned definition list and the change want in the character simply you type to current definition. it, If Most users will be want you to appear for that kind of prompt. satisfied with the current definition displayed in the left column of the list. If : want you to accept this definition, press the RETURN] key and the cursor will advance to the next line on the list. When this any definition, modify list first appears of the system on your screen, definitions listed. The you want you want chanqe and nearly all programs SENSIBLE SOLUTION Language written in the called language will make frequent use of preformatted screen displays SOLUTION programs As you run SENSIBLE "templates." these templates will be composed The templates are usually of verbiage, displayed on your screen. The The SENSIBLE SOLUTIONtIn .uInstaílatiQtU.1.3?': -2Á" lines or graphic character lines, and field windows. Every time the appears in a blank field window to await an entry by you, a line of cursor characters the exact width of the field will be displayed. This is called a "prompt." In addition to the length of the field, the prompt characters indicate the actual type of data that displayed in the field window will from the keyboard, must be entered into the field window -- any character alphabetícal characters only, numeric characters only, or any user-defined The character. first four lines of this definition list will allow you to either accept the current definítion of prompt characters or to redefine the prompt characters. dotted fi-fth line on the list will allow you to specify the character want to use as a "decimal point". You will probably want to use "period" or the centered "dot" usually found on a numeric key pad. The that you a either seventh lines on the list, will allow you to specify the type of date format you want to use. First specify the long or short format -- a two dígit year versus a four digit year -- and then specify the common U.S. format or the European date style. The síxth and to specify the disk drive eíghth line on the will allow you of the Data Dictionary, which locatíon of RECFLE.MS/.KS. listRECFLE is part maintains the definitions of all files and fields used by the system. One functíon of RECFLE is tO maintaín the actual disk drive location of all data Thus, you specify the drive location of RECFLE files used by the system. and RECFLE specifies Accepting the current the locatíon of the data files. simply instruct SENSIBLE definítion on this list, the "@" sign, will SOLUTION to look for RECFLE on the currently logged-on drive. You are given the option a new drive location of specifying for a specific The files that comprise the Data Dictionary, RECFLE and FLDFLE, can reason. become very large. the case with your system, you may need to this is If conserve space by placing the Data Dictionary on a different disk drive. Use this list option to specify that drive location. The ' next item on the list will allow you to specify whether or not you want to use file locking on your system. you have a single-user system, you will have to consult answer with a "O". your system is multi-user If your system's operating system manual to determine the type of file locking CP/NET, TurboDOS, a.nd n-Star system your computer uses. all emulate the MP,/M operating DPC/OS. MmmOST emulates system. The If SENSIBLE SOLUTION has a debugging mode of operation that will allow you execute to programs one line at a time. you want this capability on "enable TRACER?". accept the current. value for the question: your s;g't.em, The If The SENSIBLE SOLUTIONtrlI Installation 14 to specify whether or not the last item on the list will allow you be required to press the [RETURN] key after operator will filling a field window For example, data into a 5 character you are entering with data. long field window such as zip Code and you have specified "N" on the list, the program will continue execution imineáiately after the fifth character is Under entered. this condition you would not be required to use [RETURÑ in the typing after fifth character. The if these standard definitions as all youto have toanydo keyto accept on your keyboard except the "M" key. press this list is with have finished this system definition routine the Setup Program shown When Menu Remember, on you will reappear on your screen. DEFINE THE PRINTER: Choose appear on selection"number your screen: Printer printer," and the following menu will size I) Page List Control Your "Define definitions for this installation-- 2) Any "2", other key séquences exíts printer definition choice: "Page Begin by selecting option "1", size," 60and either accept the currently132 (66 max. "lines per page, printed lines per page, set parameters columns reflect your printer's per page) or specify new ones that will When you specifications. are finished with this procedure the Printer Definition Menu will appear again. SOLUTION Language called "Print Control a command in The SENSIBLE With this command you can use the full capabilities of your printer and video display by instructing them to print in bold face type, reverse video, special graphic character ínode, double width print, "Print etc.. control can recognize any one of 32 different predefined Control chrs" and then relay chis sequence Option sequences to the printer or terminal. "2" of the. Printer Defini'ti'on Menu wíll allüw you to' define these conttol' soLuHóÑ," you wish to utilize this capability oF"SÉNSTBLE sequences.There chrs." is if The sensible SoLUTroNtm Installation 15 -·7 - —: option displayed on your screen. fol-low the instructions you may redefine the List Control though, that which involves re-running SENSETUP, any time that you wish. If skip you may wish to time user of the SENSIBLE SOLUTION, first as the need arisem "2" for now and define control sequences DEFINE THE TERMINAL: select. option You should Sequences , you are a The "2" and remember, Menu is Program terminal." This "Define on the Setup embed terminal's display you allow of to your all will control codes within the run-time portion of SENSIBLE SOLUTION. third option procedure input/output the terminal installation procedure varies slightly depending uponMS-DOS system an you are using. you operating that are installing If SOLUTION, an the SENSETTJP version of SENSIBLE program will display additíonal are 'iou screen at the start of the terminal setup rQutir!e0 If CP/M, SOLUTION, CP/M-86, version of SENSIBLE using this or a multi-user aáditíonal screen, which is-discussed below, will not be displayed. The The MS-DOS Select screen: Version option "3" Of and I/O style definition Current I/O style in A) El) C) Select SENSETUP: t.he following message will be displayed your on menu use is A) Terminal style IBM PC style TI PC style style by letter, or [ENTER] to keep current style. procedz: re for the IBM PC computer or a TI PC insta.llati-on Select either option "B" computer is very simpleg and press the [RETURNJ key. You will or "C", whichever is appropriate, The (Texas The terminal SENSIBLE IrLstr\j.merLts) S()LU?-"IONtzñ I:ístallat;ion 16 Next, select opt"ionimmediately be returned to the Setup Program Menu. in specified fr'on that menu to save the definitions that you have options 1, 2, and 3. After you have saved the IB24 or TI definitions, you will be completely finished with the installation of SENSIBLE 4 SOLUTION. selected option "A" frorn the MS-DOS procedure Ciescribed above or you CP/M-E16, are using an operating system other than YS-DOS (such as CP/¥, and MP/M, Setup Menu Program with proceed option "3" from the etc.), select From this point on, the terminal following terminal installation procedure. systems: setup procedure is the same for all operating If you Terminal definition-menu Current terminal -- use in use is TERMINALNAME (Y different terminal? or N) you want name is sF.o'wn on your screen or to specify a no terminal If if SOLUTION, SENSIBLE answer "Y" to the question. terminal definition for list of predefined terminal setups will be displayed on your screerc A) B) C) D) TeleVideo 925 TeleVideo 950 Hazeltíne Esprit KayPro 10 new A III etc. Select terminal by letter, [ENTER] to continue, or enter "O" to define a new terminal 'Iesc] 'tcj restart list particular terminal is shown on the list, all you have to do to All of the definitions letter. install is type the appropriate you After displayed iton ycúr screen are Stored in a file named TEEMDEF.MS. Yenu Modificat"ior. Terminal the terminal, desired indicate the definition, m-ll be di-splayed: If your " The sensible SQLUTIONtm r ·" ' ' " K .·T'nS!ta/lildÉ'iór: ' '"GZ "T " Terminal Current Modification terminal Menu is l' Graphics Mode ON L) Graphics Mode OFF M) Cursor ON N) Cursor OFF O) Insert screen line P) Delete screen line Q) Box-drawing characters R) Field-editing characters S) TEST terminal DEFINITICN . [ESC] to modification terminal exit K) Terminal Name Screen size Cursor Positioning Clear Screen Clear to End of Screen Clear to End of Line Background Foreground I) Reverse video J) Normal Video A) B) C) D) E) F) G) H) : - - ' ' "TEST and proceed 'Í'ERMINAL DEFINITION," through the "S", SENSETUP on displayed t.w"t your current your screen. instructions will does not yield the correct terminal setup. the procedure results, test If may have either specified the wrong terminal From the list or the exact you I"f you áCt pass the test, terminal you are using.does not match the list. Simply type however, you are nearly finíshed with the installation process. "Save A message "4" from the Setup Program Menu, definitions." in option be save thís you asking current on displayed want to your screen will You are now complptely finished with the terminal definition -- answer "Y". installation procedure. option Choose if you will have are not among the norm and your terminal is not listed, ""3" "Define a9ain, some ext.ra work. First try selecting option and make te'rminal on the selected you the correct sure terminal," list.to If go or a similar terminal is not listed, you will have your terminal through the following proceáure to configure your terminal. If to you do "Y" to the following Answer Terminal , Current -The use SENSIBLE definition terminal in screen menu k 'use is different terminal? SOLUTIOMm me"sagé; TERMINALNAME (Y or N) Installatiori 18 ' The list of predefined terrn.inals prompt with a "O" : following will and appear should then you . . ., After the following prompt, define aná press [ENTER] : enter the name of the [ESC] new to . terminal , . V Select terminal by letter, [ENTER] to continue, or enter "O" to define a new terminal the answer list restart you wish to 7 .' : "l Terminal namer :, u . . .. . . · '-' .' P . , and You the cursor will have to specify the screen size of your terminal SENSETUP positioning hierarchy (row/column or column/row) . Next, will ask uses a variety you of questions about the control codes that your terminal ,w·ill be up to you to glean the correct control codes for communicati-ga.. ? " The 032 033 034 035 036 037 ÉÜ8 039 040 041 042 043 ' '20' 2 1' 22 23 24 ' b 26 ·' , , 2c 2d · 2F 30 ,11 ' ' 32 33 134. ' 050 051 052 053 054 %5 O$7 060 jj¿j ' 062 063' '.'LYÁ 'd ' : h f 102 103 g ' ' h b ij " 'k : ' l ' m OÓ"1'OÚ11 35 36 ' '1G1 '.-e '· ÓO'1Ó11-O1 001.10000 00110001 oó1',1oó1o oc11oó11 OÓ11ÓlOO "ü65 ' qo11o-1o1 '0'6g""-'0'0'1'1Ó'1l0 054 061Í · óó1'·1'o1,11 055 "37 1)7'0 '0o111ó'oo "38 056 ' '.0.5'7 "0Ó'1Í'1'o01 chi 39 ' jjÓÍ1'101o 0"72 058 '"3a ój73ú"-· 00'i11b11 q59 - 3b · Qc"i jj·74" ,0{30 1'1'1qo 3c-· ·3íj-"6'75 '.00111"101 061 6;76"00'111110 062 " Íj77'-'0011'1111 '0·63--j3f "Señsíbw ' o p ' ' t "w . ·' x y z { l } " : íjel 104 105 106 1 07 108 109 111 112 60' 61 6z 63 64' 65 140 14-i Éii6 Ú6 i4Z í43 144 145 14 i 150 G9 i5i 6a 6b 6C 6D 152 153 154 155 157 160 161 162 6-É '70 7Í '72 114 rs u v · hex 67 68 ' '1 1 3 ·q ". . '096 jjcñ '- 098 -0"99 "' 'loó a b e ' 00101OÍ1 00101100 " , . "' "00j01001 OO1O1Ú0 ' -. 'DEC oct binary —-»^+b&6&Üum6—4~"T"~w~~~~— . , -... 00100000 00100001 oo1coo10 00100011 00100100 OQ100Üj1' 00ióQ110 0G10Óy111 00101000 040 041 042 043 ü44' {)45 046 o,n 27 28 29 2a Zb -Cííár . . 1ÍÉ3 13 1"63 116 74 15 16 164 165 166 16') 170 1'7Í 1Ú 11 8 u19 '77 ' 78 t$j 7a .120 121. 122 i-23 -1'24 " .125 - 126 '.1"27 7É3 ' " " 7c 7d 7e '7f 'SOLUTIONtm - Ü2 173. 174' 175 17"6 17) 01100000 01100001 o11cco1o o11ogo11 01100100 01100101 01100110 0-1100111 o11ó1ooo 01101001 01101010 O1Üj1O11 cii9Uo0 01101101 Q1Í'Ó1111 011í0000 C111goo1 01110010 01110011 01110100 01i10101 ó1í1011o (]"11'í0111 01111.000 'ol·11'1001 '011-11010 01111011 oÍ1111oo 01i1'i,á01 "oí111"11o 01111.111 -"Ínstallation — 24
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.4 Linearized : No Has XFA : No XMP Toolkit : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19 Modify Date : 2016:06:21 10:45:48-07:00 Create Date : 2016:06:21 10:45:48-07:00 Metadata Date : 2016:06:21 10:45:48-07:00 Format : application/pdf Document ID : uuid:8e86910c-55f7-264f-b111-675ed43e2e0f Instance ID : uuid:d5d96c2e-50b1-804b-a262-24d738b99ab8 Page Layout : SinglePage Page Count : 374EXIF Metadata provided by EXIF.tools