home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / DATABASE / DEEPLOOK.ZIP / DEEPLOOK.DOC < prev    next >
Encoding:
Text File  |  1993-05-14  |  96.2 KB  |  1,964 lines

  1. DEEPLOOK : a full-featured database management system to catalog the
  2.            files on floppy diskettes or the hard drive with the added
  3.            feature that it will automatically catalog the CONTENTS of
  4.            ZIP/LZH/ARC and other types of compressed files.
  5.  
  6.      Yes, it's yet another disk file indexer.  Especially designed to index
  7. files on your floppy diskettes, you might ask how is DEEPLOOK different
  8. from the hundreds of disk indexers already out there?  Well...
  9.  
  10.      DEEPLOOK solves the problem of finding that computer file or program
  11. you know you have but it's buried inside a COMPRESSED file archived onto a
  12. floppy disk to save room on your hard drive.  Compressed files usually have
  13. a file name extension of .ZIP, .LZH, .ARC and sometimes even .EXE.  One
  14. compressed file can contain literally hundreds programs and files.  We are
  15. going to make the assumption that if you have compressed files you know
  16. enough about compression and de-compression that further explanation in
  17. this document is not necessary.  Most of the popular compression methods in
  18. use today come with a disk file (usually ending with .DOC) which explain
  19. their methods in detail.  We refer you to those documentation files if you
  20. need more information about file compression.
  21.  
  22.  
  23.      DEEPLOOK can automatically read the contents of your compressed
  24. files (including the self-extracting EXE files), and store the list of
  25. files in an amazingly fast database so that you can later search it or
  26. generate reports to your printer or to disk files.  This means you don't
  27. have to do a lot of data entry to get the basic database started.  DEEPLOOK
  28. even has an "Auto Pilot" feature that will automatically read each file on
  29. your floppy disk or hard drive subdirectory.  If it is a compressed file it
  30. can extract the names of the files therein and add them to the database.
  31. If it is not a compressed file, it will add the file name to the database
  32. but without the compressed file storage information.  You can use the
  33. Auto Pilot feature or you can use the directory list that DEEPLOOK puts on
  34. the screen and individually select which files go into the database.
  35. There are more details about all of this later on.
  36.  
  37.      DEEPLOOK allows you to turn off the reading of compressed file contents
  38. if you'd rather not catalog the contents of compressed files.
  39.  
  40.  
  41.  
  42. The Database:
  43. -------------
  44.  
  45.      Each entry in the database has the following information:
  46.  
  47.             File Name
  48.             File Date
  49.             File Size
  50.             Disk ID       (volume label or directory name)
  51.             File Type     (Regular, Compressed, Storage or Nested)
  52.             Comment       (up to 30 characters)
  53.  
  54.             Storage File  (the ZIP or ARC file if the file is compressed)
  55.  
  56.  
  57.      If the file is stored in compressed format, it has the associated
  58. compressed file name (i.e., the ZIP or ARC file) where the file is stored
  59. and the type of storage.  This last item is left blank if the file
  60. is not stored in compressed format.  The Comment field is open for you to
  61. enter comments about different files using DEEPEDIT.  If the file is
  62. compressed and contains a comment, the compressed comment will be placed in
  63. the comment field, which you can later delete or edit.
  64.  
  65.  
  66.      About all you have to do is make sure that each disk you plan to enter
  67. into the database has a unique volume label. (See your DOS manual about how
  68. to change the volume label.)  Although DEEPLOOK checks for duplicate entry
  69. of storage file names, it does no checking for duplicate volume labels.  If
  70. you use DEEPLOOK to read files on your hard disk drive, the name of the
  71. subdirectory is used as the volume label.
  72.  
  73.  
  74.  
  75. About File Type:
  76. ----------------
  77.  
  78.       Regular : any file that is not stored inside a compressed file or is
  79.                 not a compressed storage file (ARC, ZIP, LZH, etc.)
  80.  
  81.       Compressed : any file that is stored INSIDE a storeage file (ARC, ZIP,
  82.                    LZH, etc.)
  83.  
  84.       Storage : a special storage file that contains files in a compressed
  85.                 format. Storage filenames end with the extension of ARC,
  86.                 ZIP, LZH, PAK, ARJ and sometimes EXE.
  87.  
  88.       Nested : a storage file that is contained within another storage file.
  89.                DEEPLOOK will not read the contents of a nested storage file,
  90.                but it will mark it as "nested" so you can later design a
  91.                report (using DEEPREPT) to see where all your nested storage
  92.                files are. (See details below about DEEPREPT.EXE.  Set the
  93.                search criteria to FileType = "Nested".)
  94.  
  95.  
  96.  
  97.  
  98. The Programs
  99. -------------
  100.  
  101.      There are three main programs that are used to run the DEEPLOOK
  102. database system.  (Be sure to see the list of accompanying files later in
  103. this documentation.)
  104.  
  105.          DEEPLOOK.EXE : this is the directory reader which creates
  106.                         the database and adds the file names, etc. to the
  107.                         database.
  108.  
  109.          DEEPREPT.EXE : a full-featured report generator for use with the
  110.                         DEEPLOOK database.  You can create reports with
  111.                         any field, sorted by any field(s), filtered for
  112.                         value(s) in any field.  You can print the report
  113.                         to the screen, to the printer or to disk files, as
  114.                         ASCII text files or comma-delimited files which
  115.                         can later be imported into Lotus, Reflex, dBase,
  116.                         Paradox, etc., etc.
  117.  
  118.          DEEPEDIT.EXE : this allows you to quickly search the DEEPLOOK
  119.                         database, and edit any field for any database
  120.                         entry.  Actually, you really should edit only the
  121.                         comment field, but the other fields are there to be
  122.                         seen and edited if you wish.  You can also
  123.                         bulk-delete files, such as deleting references to
  124.                         all the "READ.ME" files when it's not really
  125.                         necessary to have them in your database.
  126.  
  127.      Each of these programs is discussed in detail below.
  128.  
  129. ┌─────────┐
  130. │Hot Keys │
  131. └─────────┘
  132.  
  133.     Each of the programs in the DEEPLOOK series relies heavily upon
  134. "hot keys" to access the many program functions.  Hot keys can take two
  135. forms.  One is the use of the "Function" or F-keys.  These are the keys
  136. labeled F1, F2, etc. that are grouped at the far lefthand side of your
  137. keyboard where they belong.  (Your keyboard may have the F-keys
  138. along the top row of the keyboard, but they don't belong there.)  The other
  139. form of hot-key is a key-press combination using the Alt or the Ctrl key
  140. and one other key.  For example, in DEEPEDIT Alt-D deletes the current
  141. record from the database. (More details about this later.)  To activate
  142. this command, hold down the key labeled "Alt" and press the letter D at the
  143. same time.  To activate Ctrl-D (bulk file delete), hold down the key
  144. labeled "Ctrl" and press the letter D at the same time.  In most cases, all
  145. the active hot keys are visible to you on the screen, so you don't have to
  146. try to remember them all.  All you have to do is know how to operate them
  147. and what their actions will be.
  148.  
  149. ┌───────────────┐
  150. │ DEEPLOOK.EXE  │
  151. └───────────────┘
  152.  
  153.      DEEPLOOK is the program which reads directories and adds the names of
  154. the files therein to the DEEPLOOK database.  You've got to run this program
  155. first in order to create the DEEPLOOK database and put something in it.
  156. DEEPREPT and DEEPEDIT won't function properly unless there is some "data"
  157. in the database.
  158.  
  159.      DEEPLOOK is started by typing DEEPLOOK followed by the letter of the
  160. floppy drive you wish to use to catalog a diskette.  For example, at the
  161. DOS prompt type "DEEPLOOK a" (without the quotes) to catalog the A: drive.
  162. If you type DEEPLOOK without a following letter, DEEPLOOK will read the
  163. current hard disk drive directory.
  164.  
  165.     Usage:seage: DEEPLOOK d
  166.  
  167.           -where d is the letter of the floppy disk
  168.            drive you wish to index. Run DEEPLOOK without
  169.            d to index the current hard drive
  170.            subdirectory.
  171.  
  172.  
  173.      When DEEPLOOK begins you see a directory "pick list" showing all the
  174. files and subdirectories for the floppy diskette (or hard disk drive).
  175. The files are in capital letters of one color.  The directories (if there
  176. are any) are in lower case letters in another color.
  177.  
  178.      This list operates very much the way a "menu" operates.  You'll see a
  179. colored bar (the highlight bar) marking the first file in the list.  You
  180. use the cursor (arrow) keys to move the highlight bar up and down the list
  181. of files.  You can also use PgUp and PgDn to move the highlight bar around.
  182. You can also use the <End> key to jump to the end of the pick list and the
  183. <Home> key to jump to the top of the list.
  184.  
  185.      If there are subdirectories showing in the file list you can change to
  186. one of these by moving the highlight bar to the desired subdirectory and
  187. pressing <Enter>. A new file list of files in the chosen subdirectory will
  188. appear on the screen.
  189.  
  190.      The file list appears just the way it appears in the directory itself.
  191. You can sort the list in any of three ways.  <Alt-N> sorts the list
  192. alphabetically by file NAME.  <Alt-S> sorts the list according to the
  193. SIZE of the files.  <Alt-D> sorts the list according to the DATE of the
  194. files.  When the highlight bar is covering a file you wish to add to the
  195. database, simply press <Enter>.  This will add the file to the database and
  196. remove the file from the pick list.
  197.  
  198.      You can change the directory filter mask.  The default mask is *.*
  199. meaning that all files in the directory show in the list.  Press <Alt-M>,
  200. type in a new file mask (at the bottom of the screen) and press <Enter>.
  201. For example, you may want to have only LZH files showing.  Type *.LZH at
  202. the edit prompt.  Press <Esc> to cancel the mask edit function.
  203.  
  204.      The LOOKDEEP feature can be toggled on or off by pressing <Alt-L>.
  205. Turning LOOKDEEP off will cause any selected files to be indexed into the
  206. database, but the contents of any compressed file (ZIP, ARC, LZH, etc.)
  207. will NOT be read and indexed into the database.  Turning LOOKDEEP * ON * will
  208. allow the contents of the compressed files to be indexed into the database.
  209.  
  210.       A nice feature of DEEPLOOK is the Auto Pilot function.  With Auto
  211. Pilot on, ALL the files shown in the directory list are processed into the
  212. database.  If LOOKDEEP is ON, the contents of all compressed files will
  213. automatically be indexed into the database.  Press <Alt-A> to start Auto
  214. Pilot.  Press <Esc> to cancel Auto Pilot while it is running.
  215.      If, while Auto Pilot is running, a duplicate file name is found in the
  216. database, the name will not be added again and the contents of a compressed
  217. file will not be read again.  You must use manual selection (Auto Pilot off)
  218. in order to have the program re-read the contents of a compressed file.
  219.      DEEPLOOK will automatically terminate once all files have been
  220. processed on Auto Pilot.
  221.  
  222.      Press <F1> to see a Help screen.  Press any key to remove the help
  223. screen.
  224.  
  225.      Press <Alt-X> when you are finished using DEEPLOOK and wish to return
  226. to the DOS prompt.
  227.  
  228. Some Notes about using DEEPLOOK.EXE:
  229. ------------------------------------
  230.      While DEEPLOOK expends considerable effort to trap floppy diskette
  231. read errors, there may be times when it will just stop working in the middle
  232. of a run. Sometimes it will stop and declare a "run time error." Other times
  233. it may "hang" so that you'll have to turn the computer off and back on again
  234. to get your computer back. Although we have tried to trap these errors and
  235. at least report them to you and exit gracefully, there are still some errors
  236. we haven't been able to catch. We've had this happen on our own floppy
  237. diskettes and have no reason to believe that it won't happen on yours. You
  238. can prevent a lot of this kind of crashing by making sure that you have good
  239. and fresh floppy diskettes. Most floppy diskette errors are caused by some
  240. kind of damage to the surface of the diskette: grungy fingerprints, dried
  241. cake crumbs, scarification from writing on the diskette with a ball point
  242. pen, etc. Copy your files to new floppies every so often. Floppy diskettes
  243. were not designed to last forever. It's worth noting that if DEEPLOOK has a
  244. problem accessing your floppy diskettes, you, too, will likely have a
  245. problem reading it or copying it.
  246.  
  247.      So, given the chance for all these floppy disk errors, why would one
  248. want to use DEEPLOOK?  Because when it works, it works so well and so
  249. effortlessly for you, the user.  You can quickly and easily have an index
  250. of where ALL your files are, even those that are hidden inside a compressed
  251. file.  Of course, using DEEPLOOK to read files on your hard disk drive
  252. eliminates the risks inherent in floppy diskettes.
  253.  
  254.  
  255.  
  256. ┌───────────────┐
  257. │ DEEPEDIT.EXE  │
  258. └───────────────┘
  259.  
  260.      DEEPEDIT is the file searcher and editor which reads each record in
  261. the database and lets you view, edit, or delete records from the database.
  262. DEEPEDIT will not operate if there are no records in the database or you
  263. have not used DEEPLOOK.EXE to add records to the database.
  264.  
  265.      DEEPEDIT starts by bringing up the first record in the database in a
  266. data entry screen.  Records are sorted in alphabetical order by filename in
  267. one of the indexes that accompanies DEEPLOOK.  That is why when DEEPEDIT
  268. first starts, the record number reported may not be record # 1.  However
  269. the file name shown in the data entry screen will be the first one
  270. alphabetically in the index.
  271.  
  272.      You use <F8> to move forward to the next record.  Press <F7> to move
  273. backward to the previous record.  If you are at the very beginning of the
  274. list, you will have to press <F7> twice in order to move backward to the
  275. very end of the list.  The same is true if you are at the very end of the
  276. list; you will have to press <F8> twice to move to the beginning of the
  277. list.
  278.  
  279.      In the data entry screen you have full editing capabilities.  Use the
  280. arrow (cursor) keys or the <Tab> key to move among the 6 fields for the
  281. current record.  You can edit any field, but remember that changing file
  282. name, file size, disk id, file date or storage date may create a record
  283. that is inaccurate from what actually resides on the floppy diskette.  Most
  284. important, you have the capability to edit the Comment field.  This can be
  285. very useful in making notes about certain files to remind you of things
  286. when perusing the database.  But remember, and we will repeat this: any
  287. changes or edits you make ** HAVE TO BE SAVED ** back to the database
  288. before you move on to the next record.  Press <F10> to save the current
  289. record with its changes back to the database.
  290.  
  291.      To help you locate files quickly there are two hot keys you can use.
  292.  
  293.       Press <F6> to have the program QUICKLY search for a file name and bring
  294. it into the entry screen. In the search screen type the name of the file you
  295. are looking for and press <F10> to continue (or press <Esc> to stop the
  296. search). The search operation is not an exact match operation, but the
  297. closest it can find. The search operation starts at the beginning and stops
  298. when it finds the exact file name you specified, if it exists. More
  299. accurately, it stops when it finds the FIRST OCCURRENCECCURENCE of the file name in
  300. the event there are several occurrancesccurances of the same file name. It then
  301. retrieves the record and places it in the data entry screen. In the event
  302. that it finds no exact match, the search operation will return the file name
  303. that is CLOSEST to the one you specified. It does this rather than giving up
  304. and saying "can't find the file...". For example, you may know that you have
  305. some files in the database named "READ.ME", "README.1ST", and "README". If
  306. you enter READ as the file name for which to search, the program will
  307. retrieve the first of these.
  308.  
  309.       Press <F4> to view a scrolling LIST of the file names in the database.
  310. You use the arrow (cursor), PgUp, PgDn, End and Home keys to move about the
  311. list. You can press <F6> while the LIST is visible and search the list. What
  312. was said in the previous paragraph about searching the database applies also
  313. to searching the LIST. Press <Esc> to cancel the list and return to the data
  314. entry screen. If you press <Enter>, the file name that is HIGHLIGHTED in the
  315. LIST will be retrieved and placed in the data entry screen.
  316.  
  317.       Press <F5> to jump to a specific record by record number. Use this to
  318. quickly retrieve a specific record if you know which record number it is.
  319. The record number of the currently displayed record is shown in the bottom
  320. part of the frame around the data entry window. Press <Esc> to cancel a
  321. record number jump.  You cannot jump to a record number which doesn't exist.
  322.  
  323.       DEEPEDIT also offers some database management functions:
  324.  
  325.       Press <Alt-D> to delete the currently displayed record from the
  326. database. You'll be asked to confirm (Y/N) before the delete actually takes
  327. place.  Once a record is deleted, there's little hope of getting it back.
  328.  
  329.       Press <Ctrl-D> to BULK delete file names. For example, you may wish to
  330. delete all the READ.ME files or all the .OBJ files from your database. In
  331. the first case, enter READ.ME as the file name to delete and press <F10>.
  332. (Press <Esc> to cancel bulk deleting.) In this case all the files with a
  333. FileName of READ.ME will be deleted from the database. In the second case,
  334. type *.OBJ as the file name to delete and press <F10>. In this case all the
  335. files with names having the extension of .OBJ will be deleted from the
  336. database.
  337.  
  338.       Press <Esc> or <Alt-X> to EXIT from DEEPEDIT.
  339.  
  340.                 ┌───┐
  341. REMEMBER: Press │F10│ to save those edit changes back to the database.
  342. ========        └───┘
  343.  
  344.  
  345. ┌──────────────┐
  346. │ DEEPREPT.EXE │
  347. └──────────────┘
  348.  
  349.      Once our data has been entered, edited and stored, it is most useful to
  350. be able to retrieve selected parts of the information in the form of
  351. reports. DEEPREPT is a sophisticated menu-driven report writer which will
  352. produce tabular reports from any and all of the fields available in the
  353. DEEPLOOK database. You can sort on several different fields or you can
  354. "filter" the reports for specific field values (such as FileDate = @Today).
  355. You can create new fields in the report with calculated values based on
  356. database field results (such as if FileType = "Regular" then print "OK"). You
  357. can also define summary fields that contain counts, totals, averages,
  358. standard deviations, etc. You can produce reports that are "comma delimited"
  359. and saved to disk as a file that can later be imported into Lotus, Quatro
  360. Pro, dBase, Reflex, Paradox and any computer program that will read in
  361. comma-delimited data. We'll go into more detail what all this means and how
  362. you go about producing these reports. Any report can be sent to the screen,
  363. a printer or to a disk file. Once you create a report to your satisfaction
  364. you give it a name and store it so that it can be quickly retrieved and run
  365. in the future.
  366.  
  367.       DEEPREPT supports 21 printers, dot-matrix, laser and daisy wheel.
  368. There are 39 pre-defined formulas which can be used in reports you design.
  369.  
  370.       We have included several reports which we designed. These reports
  371. demonstrate how to use some of the powerful features in DEEPREPT. It will be
  372. well worth your time to see how these were set up and what their output
  373. looks like. Doing so will help you to learn quickly how to use DEEPREPT to
  374. its fullest capacity.
  375.  
  376.  
  377. Getting Started
  378. ---------------
  379.       DEEPREPT is fully menu driven and uses several of the function keys
  380. (F2, F10, etc.) to retrieve, create, save and print reports.
  381.  
  382.  
  383.  
  384.  
  385.       This is the full menu for DEEPREPT.   We will walk you through each of
  386. these menu options.
  387.  
  388.               ┌─────────── Main Menu ──────────┐
  389.               │                                │
  390.               │    Print Report                │
  391.               │    Select Files                │
  392.               │    Select Fields               │
  393.               │    Specify Sort Criteria       │
  394.               │    Specify Search Criteria     │
  395.               │    Create Computed Fields      │
  396.               │    Setup Report Totals         │
  397.               │    Report Options              │
  398.               ├────────────────────────────────┤
  399.               │    New Report                  │
  400.               │    Load Report                 │
  401.               │    Save Report                 │
  402.               │    More Options                │
  403.               └────────────────────────────────┘
  404.     Esc - Quit   Enter - Select Option
  405.  
  406.  
  407.       When any menu or screen is active, the available "hot keys" are always
  408. shown at the very bottom of the screen. You will soon find it very convenient
  409. to check the bottom line of the screen to see which keys are activated at any
  410. given time.
  411.  
  412.  
  413.  
  414. When DEEPREPT first starts this is all you will see of the Main Menu:
  415.  
  416.               ┌─────────── Main Menu ──────────┐
  417.               │                                │
  418.               │                                │
  419.               │                                │
  420.               │                                │
  421.               │                                │
  422.               │                                │
  423.               │                                │
  424.               │                                │
  425.               │                                │
  426.               ├────────────────────────────────┤
  427.               │ √  New Report                  │
  428.               │    Load Report                 │
  429.               │                                │
  430.               │    More Options                │
  431.               └────────────────────────────────┘
  432.     Esc - Quit   Enter - Select Option
  433.  
  434.  
  435.  At start up, you can either create a new report definition or load a previous
  436.  report definition that you saved. The DEEPLOOK shareware package comes with
  437.  several predefined reports.  They are stored in the files QUERY.DAT and
  438.  QUERY.IX. If you do not wish to use these report definitions you should
  439.  delete the files QUERY.DAT and QUERY.IX.  Use the DOS delete or erase commands
  440.  to do this at the DOS prompt. (Please refer to your DOS manual to understand
  441.  how to use DOS commands.) If the QUERY files are not available or if they
  442.  contain no saved report definitions, then "New Report" and "More Options" are
  443.  the only option you will have when DEEPREPT first starts.
  444.  
  445.       If you choose "Load Report" , a menu labeled "Load Report" appears on
  446. the screen and you choose the one you wish to load.
  447.  
  448.       (Throughout this documentation file, we will use the check mark √ to
  449. indicate which menu option we are choosing. The check mark does not appear on
  450. the DEEPREPT menu, but rather the colored selector bar.)
  451.  
  452.       If you choose "New Report" you must first indicate which type of report
  453. you wish to create.  A menu labeled "Report Type" appears on the screen:
  454.  
  455.                 ┌──────── Report Type ──────────┐
  456.                 │                               │
  457.                 │√ Tabular Report               │
  458.                 │  Comma Delimited ASCII File   │
  459.                 │  Fixed Length ASCII File      │
  460.                 └───────────────────────────────┘
  461.  
  462.     Esc - Cancel   Enter - Select Report Type
  463.  
  464.     (See "Report Types" below for a description of each of these types.)
  465.  
  466.  
  467.       You are then asked to type in a name for the report. You have up to 40
  468. characters, so you can make the name descriptive of the report. You might name
  469. a report "Storage_Files_Sorted_By_Date". Press <Esc> to cancel the naming
  470. operation. By attaching a name to a report definition you can save the report
  471. definition and recall it later.
  472.  
  473.  
  474.       Once a type of report has been selected and a name given, the Main Menu
  475. appears again with a new option:
  476.  
  477.  
  478.               ┌─────────── Main Menu ──────────┐
  479.               │                                │
  480.               │                                │
  481.               │ √  Select Files                │
  482.               │                                │
  483.               │                                │
  484.               │                                │
  485.               │                                │
  486.               │                                │
  487.               │                                │
  488.               ├────────────────────────────────┤
  489.               │    New Report                  │
  490.               │    Load Report                 │
  491.               │                                │
  492.               │    More Options                │
  493.               └────────────────────────────────┘
  494.     Esc - Quit   Enter - Select Option
  495.  
  496.  
  497.       The next option available in creating a new report definition is to
  498. select the files that will be used. Here there is only one file - called
  499. FileList.  A file selection menu will appear:
  500.  
  501.     ┌──────────────────────────┬───────────────────────────┐
  502.     │      Selected Files      │     Available Files       │
  503.     ├──────────────────────────┼───────────────────────────┤
  504.     │                          │  FileList                 │
  505.     │                          │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
  506.     │                          │                           │
  507.     │                          │                           │
  508.     └──────────────────────────┴───────────────────────────┘
  509.   F10-Continue  Enter-Remove  Tab-Switch  AltP-Primary File
  510.  
  511. Since there is only one file available in DEEPLOOK, you simply press <Enter>
  512. to select the file.  When you do, it moves to the other column, like this:
  513.  
  514.       ┌──────────────────────────┬───────────────────────────┐
  515.       │      Selected Files      │     Available Files       │
  516.       ├──────────────────────────┼───────────────────────────┤
  517.       │  FileList                │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
  518.       │                          │                           │
  519.       │                          │                           │
  520.       │                          │                           │
  521.       │                          │                           │
  522.       └──────────────────────────┴───────────────────────────┘
  523.     F10-Continue  Enter-Remove  Tab-Switch  AltP-Primary File
  524.  
  525. Since there is nothing more we can do here, press F10 to return to the Main
  526. Menu, which now is the full menu:
  527.  
  528.               ┌─────────── Main Menu ──────────┐
  529.               │                                │
  530.               │    Print Report                │
  531.               │    Select Files                │
  532.               │ √  Select Fields               │
  533.               │    Specify Sort Criteria       │
  534.               │    Specify Search Criteria     │
  535.               │    Create Computed Fields      │
  536.               │    Setup Report Totals         │
  537.               │    Report Options              │
  538.               ├────────────────────────────────┤
  539.               │    New Report                  │
  540.               │    Load Report                 │
  541.               │    Save Report                 │
  542.               │    More Options                │
  543.               └────────────────────────────────┘
  544.     Esc - Quit   Enter - Select Option
  545.  
  546.  
  547.       The next step is to select which fields will be in the report in which
  548. order.  Select the "Select Fields" option and a field selection menu appears:
  549.  
  550.  
  551.       ┌─────────────────────────────────┬────────────────────┐
  552.       │             Selected            │    Available       │
  553.       │ File     Field       Print      │ File       Field   │
  554.       ├─────────────────────────────────┼────────────────────┤
  555.       │                                 │FileList   FileName │
  556.       │                                 │FileList   FileDate │
  557.       │                                 │FileList   FileSize │
  558.       │                                 │FileList   DiskID   │
  559.       │                                 │FileList   FileType │
  560.       │                                 │FileList   Comment  │
  561.       │                                 │FileList   Storage  │
  562.       │                                 │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
  563.       │                                 │                    │
  564.       │                                 │                    │
  565.       │                                 │                    │
  566.       └─────────────────────────────────┴────────────────────┘
  567.     F10-Continue  Enter-Remove  Tab-Switch  AltM-Move  AltP-Print
  568.  
  569.       Following our example report, you move the menu cursor over each of the
  570. three fields to be in our report and press <Enter>. As you do, the field names
  571. move to the selected side of the screen:
  572.  
  573.       ┌─────────────────────────────────┬────────────────────┐
  574.       │             Selected            │    Available       │
  575.       │ File       Field     Print      │ File       Field   │
  576.       ├─────────────────────────────────┼────────────────────┤
  577.       │FileList   FileName   Always     │FileList   DiskID   │
  578.       │FileList   FileDate   Always     │FileList   FileType │
  579.       │FileList   FileSize   Always     │FileList   Comment  │
  580.       │                                 │FileList   Storage  │
  581.       │                                 │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
  582.       │                                 │                    │
  583.       │                                 │                    │
  584.       │                                 │                    │
  585.       │                                 │                    │
  586.       │                                 │                    │
  587.       │                                 │                    │
  588.       └──Columns used: 35 ──────────────┴────────────────────┘
  589.  
  590.     F10-Continue  Enter-Remove  Tab-Switch
  591.  
  592.      The menu screen also reports the number of columns used. If columns used
  593. ever exceeds 80, you are asked if you want to use compressed print (for
  594. printing to a printer only.) At this point the menu cursor bar is still in the
  595. Available side of the screen. Now Press <Tab>. The menu bar now moves to the
  596. Selected side of the screen and two new hot keys become available:
  597.  
  598.       ┌─────────────────────────────────┬────────────────────┐
  599.       │             Selected            │    Available       │
  600.       │ File       Field     Print      │ File       Field   │
  601.       ├─────────────────────────────────┼────────────────────┤
  602.       │FileList   FileName   Always     │FileList   FileType │
  603.       │FileList   FileDate   Always     │FileList   Comment  │
  604.       │FileList   FileSize   Always     │FileList   Storage  │
  605.       │FileList   DiskID     Always     │                    │
  606.       │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│                    │
  607.       │                                 │                    │
  608.       │                                 │                    │
  609.       │                                 │                    │
  610.       │                                 │                    │
  611.       └──Columns used: 45 ──────────────┴────────────────────┘
  612.  
  613.     F10-Continue  Enter-Remove  Tab-Switch  AltM-Move  AltP-Print
  614.  
  615.  
  616.       The fields are listed in order as they will appear across the page in a
  617. tabular report.  In this example, each line will show...
  618.  
  619.         FileName     FileDate     FileSize
  620.  
  621.       Use <Alt-M> to Move, or change the order of these fields. If you select
  622. one of the fields on the "selected" side of the screen (by pressing <Enter>),
  623. it will remove the field from the selected side of the screen and send it to
  624. the "Available" side of the screen.
  625.  
  626.       <Alt-P> rotates the field print column among 4 available options. The
  627. default option is "Always" meaning that the value of the field will always show
  628. in the report. The next is "Never". This means that the values in the field
  629. will never be seen in the report, but you may need to select the field for
  630. sorting or some other purpose. Third is "Unique". This only prints the field
  631. value if it is different from the preceding field value. If we had the
  632. (unlikely) situation that several files had exactly the same size, if
  633. FileSize print was set to Unique, our report would look like this:
  634.  
  635.  
  636.       MYFILE.TXT    02/11/93   4566
  637.       YOURFILE.TXT  07/16/88    "
  638.       MYFILE.DOC    03/03/91    "
  639.       EMPTY.TXT     09/08/90    "
  640.       BIGGER.DOC    01/17/91   7781
  641.  
  642. Indent/Unique prints the field value when it is unique and so is the value of
  643. the field to the left.
  644.  
  645.       Once all the fields have been selected and they are in the correct order
  646. and the field print options are satisfactory, we press <F10> to return to the
  647. Main Menu.
  648.  
  649.  
  650.  
  651.               ┌─────────── Main Menu ──────────┐
  652.               │                                │
  653.               │    Print Report                │
  654.               │    Select Files                │
  655.               │    Select Fields               │
  656.               │ √  Specify Sort Criteria       │
  657.               │    Specify Search Criteria     │
  658.               │    Create Computed Fields      │
  659.               │    Setup Report Totals         │
  660.               │    Report Options              │
  661.               ├────────────────────────────────┤
  662.               │    New Report                  │
  663.               │    Load Report                 │
  664.               │    Save Report                 │
  665.               │    More Options                │
  666.               └────────────────────────────────┘
  667.     Esc - Quit   Enter - Select Option
  668.  
  669.  
  670.       Now we want to specify the sort criteria. We then get a menu similar to
  671. the field selection menu. (NOTE: It is not necessary to specify sort criteria
  672. once fields have been selected. A report can be created and run taking records
  673. in their natural order if so desired. Usually we will want to sort.) Notice
  674. that the available fields is NOT all the fields in each record, but only those
  675. fields we selected (above) to be in the report.
  676.  
  677.  
  678.     ┌──────────────────────────────────────────────┬──────────────────────┐
  679.     │                Selected                      │       Available      │
  680.     │  File        Field       Order      Group    │  File       Field    │
  681.     ├──────────────────────────────────────────────┼──────────────────────┤
  682.     │                                              │  FileList   FileName │
  683.     │                                              │  FileList   FileDate │
  684.     │                                              │  FileList   FileSize │
  685.     │                                              │  FileList   DiskID   │
  686.     │                                              │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
  687.     │                                              │                      │
  688.     │                                              │                      │
  689.     │                                              │                      │
  690.     │                                              │                      │
  691.     └──────────────────────────────────────────────┴──────────────────────┘
  692.  
  693.    F10-Continue  Enter-Remove  Tab-Switch  AltM-Move  AltO-Order  AltG-Group
  694.  
  695.  
  696.       As with similar menus above, we select the fields on which to sort in
  697. the order in which we want them sorted. As we select them, they move to the
  698. "Selected" side of the screen. Once we have set the needed sort criteria, we
  699. press <Tab> to move the selector bar to the Selected side of the screen.
  700.  
  701.  
  702.  
  703.     ┌──────────────────────────────────────────────┬──────────────────────┐
  704.     │                Selected                      │       Available      │
  705.     │  File        Field       Order      Group    │  File       Field    │
  706.     ├──────────────────────────────────────────────┼──────────────────────┤
  707.     │  FileList   DiskID     Ascending      1      │  FileList   FileDate │
  708.     │  FileList   FileName   Ascending             │  FileList   FileSize │
  709.     │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│                      │
  710.     │                                              │                      │
  711.     │                                              │                      │
  712.     │                                              │                      │
  713.     │                                              │                      │
  714.     │                                              │                      │
  715.     │                                              │                      │
  716.     └──────────────────────────────────────────────┴──────────────────────┘
  717.  
  718.    F10-Continue  Enter-Remove  Tab-Switch  AltM-Move  AltO-Order  AltG-Group
  719.  
  720.  
  721. On this side of the screen, pressing <Enter> sends the selected field back to
  722. the "Available" side of the screen. <Alt-M> allows you to change the order of
  723. the selected fields by MOVING them around. <Alt-O> toggles the sort order
  724. between ASCENDING and DESCENDING. <Alt-G> allows you to create GROUPS and then
  725. have summations, such as group totals, etc. show in the tabular report. We
  726. will define DiskID as Group 1. This will group all the files by DiskID. This
  727. is very similar to a sample report we have provided in the QUERY file,
  728. "FilesByDiskID". This report will list all the files by file name for each
  729. disk ID and then put a footer showing the number of files and total bytes on
  730. each DiskID. We'll see how this happens later when we select Report Totals
  731. from the Main Menu.
  732.  
  733.       Just a quick note about sorting. Although we are using very fast sorting
  734. algorithms in this program, sorting is still the most time-consuming part of
  735. generating a report. Sorting starts with the first field selected, in this
  736. case DiskID. The only time it will use FileName is when it has two or more
  737. identical DiskIDs. Since it is very likely that there are numerous records in
  738. the database with identical DiskIDs, it makes sense to sort on a second key,
  739. here FileName. We could add additional sorting keys, such as FileDate. In this
  740. case it makes no sense to do so because the only time the sorting algorithm
  741. will need to look at FileDate is if it finds two or more identical FileNames
  742. on the same DiskID. That would be impossible, as DOS only allows unique
  743. filenames on one diskette or subdirectory. However, if our sorting were like
  744. this:
  745.           FileName
  746.           FileDate
  747.  
  748. it might make sense to add a third key, such as DiskID because there could
  749. be identical file names with identical dates on different diskettes (backup
  750. copies, etc.)  Notice that although we are sorting by DiskID first, DiskID is
  751. not the first column in the report. FileName is the first column and it will
  752. appear in alphabetical order, for each DiskID. To see this, load the report
  753. "FilesByDiskID" , print it and study the output.
  754.  
  755.       We press <F10> to return to the Main Menu:
  756.  
  757.  
  758.  
  759.               ┌─────────── Main Menu ──────────┐
  760.               │                                │
  761.               │    Print Report                │
  762.               │    Select Files                │
  763.               │    Select Fields               │
  764.               │    Specify Sort Criteria       │
  765.               │ √  Specify Search Criteria     │
  766.               │    Create Computed Fields      │
  767.               │    Setup Report Totals         │
  768.               │    Report Options              │
  769.               ├────────────────────────────────┤
  770.               │    New Report                  │
  771.               │    Load Report                 │
  772.               │    Save Report                 │
  773.               │    More Options                │
  774.               └────────────────────────────────┘
  775.     Esc - Quit   Enter - Select Option
  776.  
  777.  
  778.       Next we will specify search criteria. This is what is called "filtering"
  779. the database. All the records in the database are matched to some pre-defined
  780. criteria, thus filtering out unwanted records from the report and keeping only
  781. the records that meet our criteria. This is one of the areas where the real
  782. power of DEEPREPT becomes apparent. We will show you how it works and set up a
  783. sample search criteria for you, but you are here limited only by your
  784. imagination. As long as your criteria are accepted by the program (when you
  785. press <F10>) you can include the criteria in your report. Also NOTE: search
  786. criteria are not required in order to run a report. They are there for your
  787. convenience.
  788.  
  789.       Upon selecting "Specify Search Criteria" the search criteria screen pops
  790. to the surface:
  791.  
  792.  
  793.   ┌────────────────────────────────────────────────────────────────────────┐
  794.   │ File        Field           Search Criteria                            │
  795.   ├────────────────────────────────────────────────────────────────────────┤
  796.   │ FileList   FileName                                                    │
  797.   │ FileList   FileDate                                                    │
  798.   │ FileList   FileSize                                                    │
  799.   │ FileList   DiskID                                                      │
  800.   │ FileList   FileType                                                    │
  801.   │ FileList   Comment                                                     │
  802.   │ FileList   Storage                                                     │
  803.   │ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                    │
  804.   │                                                                        │
  805.   │                                                                        │
  806.   └────────────────────────────────────────────────────────────────────────┘
  807.    F10-Continue    Enter-Edit search criteria
  808.  
  809.    Notice that all the fields are available, not just the fields selected to
  810. be in the report. The first step is to move the selector bar to a field and
  811. press <Enter>.
  812.  
  813.  
  814.  
  815.   ┌────────────────────────────────────────────────────────────────────────┐
  816.   │ File        Field           Search Criteria                            │
  817.   ├────────────────────────────────────────────────────────────────────────┤
  818.   │ FileList   FileName                                                    │
  819.   │ FileList   FileDate   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
  820.   │ FileList   FileSize                                                    │
  821.   │ FileList   DiskID                                                      │
  822.   │ FileList   FileType                                                    │
  823.   │ FileList   Comment                                                     │
  824.   │ FileList   Storage                                                     │
  825.   │                                                                        │
  826.   │                                                                        │
  827.   │                                                                        │
  828.   └────────────────────────────────────────────────────────────────────────┘
  829.    Esc-Cancel  Enter-Accept Search Criteria  F2-Fields  F3-Formulas
  830.  
  831.  
  832.    Press F2 to get a list of available fields.  We'll do that and select
  833. FileList FileDate.
  834.  
  835.  
  836.   ┌────────────────────────────────────────────────────────────────────────┐
  837.   │ File        Field           Search Criteria                            │
  838.   ├────────────────────────────────────────────────────────────────────────┤
  839.   │ FileList   FileName                                                    │
  840.   │ FileList   FileDate   FileList FileDate = ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
  841.   │ FileList   FileSize                                                    │
  842.   │ FileList   DiskID                                                      │
  843.   │ FileList   FileType                                                    │
  844.   │ FileList   Comment                                                     │
  845.   │ FileList   Storage                                                     │
  846.   │                                                                        │
  847.   │                                                                        │
  848.   │                                                                        │
  849.   └────────────────────────────────────────────────────────────────────────┘
  850.    Esc-Cancel  Enter-Accept Search Criteria  F2-Fields  F3-Formulas
  851.  
  852.  
  853.       Next we'll press F3 to get a list of all the formulas available to us.
  854.  
  855.  
  856.   ┌───────────┬────────────────────────────────────────────────────────────┐
  857.   │ Formulas  │ Field           Search Criteria                            │
  858.   ├───────────┼────────────────────────────────────────────────────────────┤
  859.   │ Abs       │FileName                                                    │
  860.   │ Ave       │FileDate   FileList FileDate =                              │
  861.   │ CurrTime  │FileSize                                                    │
  862.   │ Date      │DiskID                                                      │
  863.   │  .        │FileType                                                    │
  864.   │  .        │Comment                                                     │
  865.   │  .        │Storage                                                     │
  866.   │ TimeStr   │                                                            │
  867.   │ Today     │                                                            │
  868.   │▒▒▒▒▒▒▒▒▒▒▒│                                                            │
  869.   └───────────┴────────────────────────────────────────────────────────────┘
  870.    Esc-Cancel  Enter-Select Formula
  871.  
  872.       We'll move the formula selector bar to "Today" and press <Enter>.
  873.  
  874.  
  875.   ┌────────────────────────────────────────────────────────────────────────┐
  876.   │ File        Field           Search Criteria                            │
  877.   ├────────────────────────────────────────────────────────────────────────┤
  878.   │ FileList   FileName                                                    │
  879.   │ FileList   FileDate   FileList FileDate = @Today▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│
  880.   │ FileList   FileSize                                                    │
  881.   │ FileList   DiskID                                                      │
  882.   │ FileList   FileType                                                    │
  883.   │ FileList   Comment                                                     │
  884.   │ FileList   Storage                                                     │
  885.   │                                                                        │
  886.   │                                                                        │
  887.   │                                                                        │
  888.   └────────────────────────────────────────────────────────────────────────┘
  889.    Esc-Cancel  Enter-Accept Search Criteria  F2-Fields  F3-Formulas
  890.  
  891.      Now we press <Enter> one more time to accept the search criteria.
  892.  
  893.      @Today is one of the powerful formulas available to you in DEEPREPT.
  894. @TODAY knows what date today is - it automatically picks it up from the date
  895. clock in the computer. We just load the report and run it. We DO NOT have to
  896. go into the report definition each time and write FileDate = 03/17/93. We
  897. simply wrote FileDate = @TODAY. DEEPREPT takes care of all the details of
  898. filtering out all the records in the database where FileDate is some date
  899. other than Today.
  900.  
  901.       There are 39 pre-defined formulas such as @Today available in DEEPREPT.
  902. How each is used is shown later on.
  903.  
  904.       You do not have to use F2 and F3 if you know what search criteria you
  905. wish to enter. Here are some examples of some simple search criteria you may
  906. wish to use:
  907.  
  908.   FileList FileSize > 100000 (filter out all small files from the report)
  909.   FileList FileType = "Storage" (show only names of storage files)
  910.   FileList Comment <> "" (show only file names that have a comment)
  911.  
  912.      Press <F10> to continue to the Main Menu.
  913.  
  914.  
  915.               ┌─────────── Main Menu ──────────┐
  916.               │                                │
  917.               │    Print Report                │
  918.               │    Select Files                │
  919.               │    Select Fields               │
  920.               │    Specify Sort Criteria       │
  921.               │    Specify Search Criteria     │
  922.               │ √  Create Computed Fields      │
  923.               │    Setup Report Totals         │
  924.               │    Report Options              │
  925.               ├────────────────────────────────┤
  926.               │    New Report                  │
  927.               │    Load Report                 │
  928.               │    Save Report                 │
  929.               │    More Options                │
  930.               └────────────────────────────────┘
  931.     Esc - Quit   Enter - Select Option
  932.  
  933.       Next we'll try entering a computed field. A computed field is a new
  934. field in the database that is created "on the fly" while the report is being
  935. generated. Actually the field is not in the database, but appears in the
  936. report only, but it acts as though it were a field in the database. Again, it
  937. is not necessary to create computed fields in order to print a report, but
  938. this is one of the most powerful features of DEEPREPT. In actual practice you
  939. will want to "Create Computed Fields" BEFORE you "Specify Search Criteria."
  940. That way you can specify values in the new computed fields to filter on.
  941. Creating computed fields brings up the computed field screen.
  942.  
  943.  
  944.   ┌────────────────────────────────────────────────────────────────────────┐
  945.   │ Name      Expression                                            Type   │
  946.   ├────────────────────────────────────────────────────────────────────────┤
  947.   │                                                                        │
  948.   │                                                                        │
  949.   │                                                                        │
  950.   │                                                                        │
  951.   │                                                                        │
  952.   │                                                                        │
  953.   │                                                                        │
  954.   │                                                                        │
  955.   │                                                                        │
  956.   │                                                                        │
  957.   └────────────────────────────────────────────────────────────────────────┘
  958.    F10-Continue  Enter-Edit  Ins-Add  Del-Delete
  959.  
  960.  
  961. If there were computed fields already defined we move the selector bar to the
  962. one we wish and press <Del> to delete the computed field.
  963.  
  964. We press <Ins> to add a new computed field:
  965.  
  966.   ┌────────────────────────────────────────────────────────────────────────┐
  967.   │       Type: ▒▒▒▒▒▒▒▒▒▒                                                 │
  968.   │       Name:                                                            │
  969.   │    Picture:                                                            │
  970.   │ Expression:                                                            │
  971.   └────────────────────────────────────────────────────────────────────────┘
  972.   │                                                                        │
  973.   │                                                                        │
  974.   │                                                                        │
  975.   │                                                                        │
  976.   │                                                                        │
  977.   │                                                                        │
  978.   │                                                                        │
  979.   │                                                                        │
  980.   │                                                                        │
  981.   └────────────────────────────────────────────────────────────────────────┘
  982.    Esc-Cancel  F10-Continue  F2-Field Types
  983.  
  984.    First, we must decide on what type of field we want to compute. Press <F2>
  985. to get a pick list of our available fields:
  986.  
  987.   ┌────────────────────────────────────────────────────────────────────────┐
  988.   │       Type:                                                            │
  989.   │       Name:                                                            │
  990.   │    Picture:                                                            │
  991.   │ Expression:                                                            │
  992.   └────────────────────────────────────────────────────────────────────────┘
  993.   ┌──────────────┐                                                         │
  994.   │ String       │                                                         │
  995.   │ Boolean      │                                                         │
  996.   │ Integer      │                                                         │
  997.   │ Real         │                                                         │
  998.   │ Date         │                                                         │
  999.   │ Time         │                                                         │
  1000.   │ ▒▒▒▒▒▒▒▒▒▒   │                                                         │
  1001.   ├──────────────┘                                                         │
  1002.   └────────────────────────────────────────────────────────────────────────┘
  1003.    Esc-Cancel  Enter-Select Field Type
  1004.  
  1005.        We'll discuss what each of these field types means a little later. For
  1006. now, we're going to move the selector bar to "Real" and press <Enter>.
  1007.  
  1008.  
  1009.   ┌────────────────────────────────────────────────────────────────────────┐
  1010.   │       Type: Real                                                       │
  1011.   │       Name: DaysOld                                                    │
  1012.   │    Picture: 99,999                                                     │
  1013.   │ Expression: ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒         │
  1014.   └────────────────────────────────────────────────────────────────────────┘
  1015.   │                                                                        │
  1016.   │                                                                        │
  1017.   │                                                                        │
  1018.   │                                                                        │
  1019.   │                                                                        │
  1020.   │                                                                        │
  1021.   │                                                                        │
  1022.   │                                                                        │
  1023.   │                                                                        │
  1024.   └────────────────────────────────────────────────────────────────────────┘
  1025.    Esc-Cancel  F10-Continue  F2-Field Names  F3-Formulas
  1026.  
  1027.  
  1028. We'll name the field "DaysOld" and make it's "picture" 99,999. (We'll discuss
  1029. pictures just a little later.) You can name the computed field anything you
  1030. wish in the space provided. We're now ready to write the expression for the
  1031. computed field. Now, press <F3> to get a list of the formulas:
  1032.  
  1033.  
  1034.   ┌────────────────────────────────────────────────────────────────────────┐
  1035.   │       Type: Real                                                       │
  1036.   │       Name: DaysOld                                                    │
  1037.   │    Picture: 99,999                                                     │
  1038.   │ Expression:                                                            │
  1039.   └────────────────────────────────────────────────────────────────────────┘
  1040.   ┌──────────── Formulas ───────────────────────┐                          │
  1041.   │                                             │                          │
  1042.   │ Abs        InStr      Max        Time       │                          │
  1043.   │ Ave        False      MidStr     TimeStr    │                          │
  1044.   │ CurrTime   Hour       Min        Today      │                          │
  1045.   │ Date       LeftPad    Minute     True       │                          │
  1046.   │ DateStr    LeftStr    Month      Upcase     │                          │
  1047.   │ Day        LenStr     Pad        Year       │                          │
  1048.   │ Dec        Locase     RightStr   Yes        │                          │
  1049.   │ If         Num        Second     ▒▒▒▒▒▒▒▒▒  │                          │
  1050.   │ Inc        No         Str                   │                          │
  1051.   └─────────────────────────────────────────────┴──────────────────────────┘
  1052.    Esc-Cancel  Enter-Select Formula
  1053.  
  1054.  
  1055.    We'll select Today. This places @Today in the Expression line. Next we'll
  1056. type a "minus" sign (-). Then we'll press <F2> to get a list of fields. We'll
  1057. select FileList FileDate. This places FileList FileDate next in the Expression
  1058. box.  Here, then is the Expression:
  1059.  
  1060.       @Today - FileList FileDate
  1061.  
  1062. It simply calculates the number of days between Today and the date the file
  1063. was created.  Now we press <F10> to continue.
  1064.  
  1065.   ┌────────────────────────────────────────────────────────────────────────┐
  1066.   │ Name      Expression                                            Type   │
  1067.   ├────────────────────────────────────────────────────────────────────────┤
  1068.   │ DaysOld   @Today - FileList FileDate                            Real   │
  1069.   │                                                                        │
  1070.   │                                                                        │
  1071.   │                                                                        │
  1072.   │                                                                        │
  1073.   │                                                                        │
  1074.   │                                                                        │
  1075.   │                                                                        │
  1076.   │                                                                        │
  1077.   │                                                                        │
  1078.   └────────────────────────────────────────────────────────────────────────┘
  1079.    F10-Continue  Enter-Edit  Ins-Add  Del-Delete
  1080.  
  1081. We now have our first computed field. Let's press <Ins> and create another one
  1082. that will use the first one we just created.
  1083.  
  1084.   ┌────────────────────────────────────────────────────────────────────────┐
  1085.   │       Type: ▒▒▒▒▒▒▒▒▒▒                                                 │
  1086.   │       Name:                                                            │
  1087.   │    Picture:                                                            │
  1088.   │ Expression:                                                            │
  1089.   └────────────────────────────────────────────────────────────────────────┘
  1090.   │                                                                        │
  1091.   │                                                                        │
  1092.   │                                                                        │
  1093.   │                                                                        │
  1094.   │                                                                        │
  1095.   │                                                                        │
  1096.   │                                                                        │
  1097.   │                                                                        │
  1098.   │                                                                        │
  1099.   └────────────────────────────────────────────────────────────────────────┘
  1100.    Esc-Cancel  F10-Continue  F2-Field Types
  1101.  
  1102.  
  1103.       Press <F2> to select the field type. This time we are going to select
  1104. String.  We'll name it "YearsOld" and make its picture XXXXXX.
  1105.  
  1106.  
  1107.   ┌────────────────────────────────────────────────────────────────────────┐
  1108.   │       Type: String                                                     │
  1109.   │       Name: YearsOld                                                   │
  1110.   │    Picture: XXXXXX                                                     │
  1111.   │ Expression:                                                            │
  1112.   └────────────────────────────────────────────────────────────────────────┘
  1113.   ┌──────────── Formulas ───────────────────────┐                          │
  1114.   │                                             │                          │
  1115.   │ Abs        InStr      Max        Time       │                          │
  1116.   │ Ave        False      MidStr     TimeStr    │                          │
  1117.   │ CurrTime   Hour       Min        Today      │                          │
  1118.   │ Date       LeftPad    Minute     True       │                          │
  1119.   │ DateStr    LeftStr    Month      Upcase     │                          │
  1120.   │ Day        LenStr     Pad        Year       │                          │
  1121.   │ Dec        Locase     RightStr   Yes        │                          │
  1122.   │ If         Num        Second     ▒▒▒▒▒▒▒▒▒  │                          │
  1123.   │ Inc        No         Str                   │                          │
  1124.   └─────────────────────────────────────────────┴──────────────────────────┘
  1125.    Esc-Cancel  Enter-Select Formula
  1126.  
  1127.  
  1128. Next press <F3> to get the formula list We'll select "If". This clears the
  1129. Formulas list and places "@If(" in the Expression line. You'll see that @If
  1130. ends with the left (open) parenthesis. This is a clue that we are going to
  1131. pass some "arguments" to the @If formula. Next press <F2> to get the Field
  1132. list. Notice that there is a new field at the end, DaysOld. That's the
  1133. computed field we just created, but this field does NOT have the FileList
  1134. notation before it. It's a field, alright, but not one of the fields in the
  1135. FileList database.  Let's select DaysOld.
  1136.  
  1137.   @If(DaysOld
  1138.  
  1139. Now we'll test DaysOld for a value. We'll use the "operator" > which means
  1140. "greater than". (More about operators later on.) So we type > 365.0 and press
  1141. enter:
  1142.  
  1143.   @If(DaysOld > 365.0
  1144.  
  1145. Next we add a comma and then press <F3> to get our formula list again. This
  1146. time we'll select Str, which places @Str( in the Expression line. (Notice the
  1147. left parenthesis again.)
  1148.  
  1149.   @If(DaysOld > 365.0, @Str(
  1150.  
  1151. @Str requires 2 arguments. We're going to divide the real field DaysOld by 365
  1152. and convert it to a string with the picture "999.9". That is what @Str does.
  1153. It converts a number to a string. (@Num on the other hand, converts a string
  1154. to a number.) So we'll type in DaysOld / 365, "999.9" and close the @Str
  1155. formula with a right parenthesis.
  1156.  
  1157.  @If(DaysOld > 365.0, @Str(DaysOld / 365, "999.9")
  1158.  
  1159. That is what is going to happen if DaysOld IS greater than 365 days. If
  1160. DaysOld is NOT greater than 1 year we'll just display the "null" or empty
  1161. string ("").
  1162.  
  1163. @If(DaysOld > 365.0, @Str(DaysOld / 365, "999.9"),"")
  1164.  
  1165. So what is this computed field going to do? It's going to test DaysOld to see
  1166. if DaysOld is more than 1 year's worth of days. If the file is more than 1
  1167. year old it's going to calculate how many years old it is and put that value
  1168. in the YearsOld computed field. If the file is still a "baby", it will leave
  1169. it alone and not say anything. Retrieve the report definition "AgeOfFiles" and
  1170. run it to see how this appears in the report. You may be surprised at how old
  1171. some of your files are!
  1172.  
  1173.       There are a few things to note here. At the beginning of our writing
  1174. this computed field we defined the field as having a picture of XXXXXX:
  1175.  
  1176.   ┌────────────────────────────────────────────────────────────────────────┐
  1177.   │       Type: String                                                     │
  1178.   │       Name: YearsOld                                                   │
  1179.   │    Picture: XXXXXX                                                     │
  1180.   │ Expression: @If(DaysOld > 365.0, @Str(DaysOld / 365, "999.9"),"")      │
  1181.   └────────────────────────────────────────────────────────────────────────┘
  1182.  
  1183. This allows us to have the null string show in the report as though there was
  1184. nothing there. Had we defined the picture here as 999.9 then the null string
  1185. would have showed up as 0.0 in the report which tends to clutter it up. We
  1186. defined the picture in @Str as 999.9 to force the result to be all numbers
  1187. with just one decimal place, even though most calculations here would have
  1188. yielded more than 1 decimal in the calculation of dividing DaysOld by 365.
  1189.  
  1190.       Since the @If formula is one of the more important ones, let's discuss
  1191. it here. @IF(Condition, Result1, Result2). The condition is a true or false
  1192. test. If the test passes (i.e., it is "true") then Result1 is returned. If the
  1193. test fails (i.e., it is false) then Result2 is returned to the computed field.
  1194. In our Expression we defined the test as DaysOld being greater than 365. If
  1195. the test passes, then the result of DaysOld divided by 365 is returned to the
  1196. computed field YearsOld. If the test fails (i.e., it's a "new" file) then we
  1197. are just not going to say anything.
  1198.  
  1199.  
  1200.   ┌────────────────────────────────────────────────────────────────────────┐
  1201.   │ Name      Expression                                            Type   │
  1202.   ├────────────────────────────────────────────────────────────────────────┤
  1203.   │ DaysOld   @Today - FileList FileDate                            Real   │
  1204.   │ YearsOld  @If(DaysOld > 365.0, @Str(DaysOld / 365, "999.9"),"") String │
  1205.   │                                                                        │
  1206.   │                                                                        │
  1207.   │                                                                        │
  1208.   │                                                                        │
  1209.   └────────────────────────────────────────────────────────────────────────┘
  1210.    F10-Continue  Enter-Edit  Ins-Add  Del-Delete
  1211.  
  1212.  
  1213.       New we press <F10> to return to the Main Menu:
  1214.  
  1215.  
  1216.               ┌─────────── Main Menu ──────────┐
  1217.               │                                │
  1218.               │    Print Report                │
  1219.               │    Select Files                │
  1220.               │    Select Fields               │
  1221.               │    Specify Sort Criteria       │
  1222.               │    Specify Search Criteria     │
  1223.               │    Create Computed Fields      │
  1224.               │ √  Setup Report Totals         │
  1225.               │    Report Options              │
  1226.               ├────────────────────────────────┤
  1227.               │    New Report                  │
  1228.               │    Load Report                 │
  1229.               │    Save Report                 │
  1230.               │    More Options                │
  1231.               └────────────────────────────────┘
  1232.     Esc - Quit   Enter - Select Option
  1233.  
  1234.  
  1235.       Next we'll Setup some Report Totals.
  1236.  
  1237.      ┌────────────────────────────────────────────────────┐
  1238.      │ Group     File         Field          Total Type   │
  1239.      ├────────────────────────────────────────────────────┤
  1240.      │  1       FileList     FileName                     │
  1241.      │       √  FileList     FileLength                   │
  1242.      │          FileList     FileDate                     │
  1243.      │          FileList     DiskID                       │
  1244.      │          FileList     FileType                     │
  1245.      │ Grand    FileList     FileName                     │
  1246.      │          FileList     FileLength                   │
  1247.      │          FileList     FileDate                     │
  1248.      │          FileList     DiskID                       │
  1249.      │          FileList     FileType                     │
  1250.      │          ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                │
  1251.      └────────────────────────────────────────────────────┘
  1252.      F10-Continue  Enter-Edit  Del-Delete
  1253.  
  1254.     You'll recall that we defined group 1 above as grouping on DiskID.
  1255. We'll move the selector bar to the first FileList FileLength and press
  1256. <Enter>.
  1257.  
  1258.    ┌───────────────────────────────────────────────────────────────────────┐
  1259.    │       Type:                                                           │
  1260.    │    Picture:                                                           │
  1261.    │  Condition:                                                           │
  1262.    └───────────────────────────────────────────────────────────────────────┘
  1263.      │          FileList     DiskID                       │
  1264.      │          FileList     FileType                     │
  1265.      │ Grand    FileList     FileName                     │
  1266.      │          FileList     FileLength                   │
  1267.      │          FileList     FileDate                     │
  1268.      │          FileList     DiskID                       │
  1269.      │          FileList     FileType                     │
  1270.      │          ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                │
  1271.      └────────────────────────────────────────────────────┘
  1272.      Esc-Cancel  F2-Total Type
  1273.  
  1274.    We'll press <F2> to get the list of available total types.
  1275.  
  1276.  
  1277.    ┌───────────────────────────────────────────────────────────────────────┐
  1278.    │       Type:                                                           │
  1279.    │    Picture:                                                           │
  1280.    │  Condition:                                                           │
  1281.    └───────────────────────────────────────────────────────────────────────┘
  1282.   ┌─────────────┐  │          FileList     FileLength                   │
  1283.   │ Average     │  │          FileList     FileDate                     │
  1284.   │ Count       │  │          FileList     DiskID                       │
  1285.   │ Maximum     │  │          FileList     FileType                     │
  1286.   │ Minimum     │  │          ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                │
  1287.   │ STDV        │  └────────────────────────────────────────────────────┘
  1288.   │ Summation   │
  1289.   │ ▒▒▒▒▒▒▒▒▒▒▒ │
  1290.   └─────────────┘
  1291.  
  1292.       We're going to choose Summation, which will take numerical values in
  1293. each record and sum them into a Total.
  1294.  
  1295.  
  1296.    ┌───────────────────────────────────────────────────────────────────────┐
  1297.    │       Type: Summation                                                 │
  1298.    │    Picture: 999,999,999                                               │
  1299.    │ Condition: FileList FileType="Storage" OR FileList FileType="Regular" │
  1300.    └───────────────────────────────────────────────────────────────────────┘
  1301.      │          FileList     DiskID                       │
  1302.      │          FileList     FileType                     │
  1303.      │ Grand    FileList     FileName                     │
  1304.      │          FileList     FileLength                   │
  1305.      │          FileList     FileDate                     │
  1306.      │          FileList     DiskID                       │
  1307.      │          FileList     FileType                     │
  1308.      │          ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                │
  1309.      └────────────────────────────────────────────────────┘
  1310.      Esc-Cancel  F2-Total Type
  1311.  
  1312.      We'll complete the condition as shown here. This uses the Boolean OR (see
  1313. below.) This means that the lengths of all "regular" and all "storage" files
  1314. will be summed for each DiskID and reported at the end of each DiskID's
  1315. listing in the report.  Load "FilesByDiskID" and run it to see the results.
  1316.  
  1317.       We press <F10> to continue and <F10> again to return to the Main Menu:
  1318.  
  1319.  
  1320.               ┌─────────── Main Menu ──────────┐
  1321.               │                                │
  1322.               │ √  Print Report                │
  1323.               │    Select Files                │
  1324.               │    Select Fields               │
  1325.               │    Specify Sort Criteria       │
  1326.               │    Specify Search Criteria     │
  1327.               │    Create Computed Fields      │
  1328.               │    Setup Report Totals         │
  1329.               │    Report Options              │
  1330.               ├────────────────────────────────┤
  1331.               │    New Report                  │
  1332.               │    Load Report                 │
  1333.               │    Save Report                 │
  1334.               │    More Options                │
  1335.               └────────────────────────────────┘
  1336.     Esc - Quit   Enter - Select Option
  1337.  
  1338.       We have now come to the place where we will print our report.
  1339.  
  1340.  
  1341.                    ┌─────── Print Destination ────────┐
  1342.                    │                                  │
  1343.                    │  Print Report to the Screen      │
  1344.                    │  Print Report to the Printer     │
  1345.                    │  Print Report to a File          │
  1346.                    │  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    │
  1347.                    └──────────────────────────────────┘
  1348.  
  1349.      Usually it is a good idea to print the report to the screen the first
  1350. time we design a new report so we can see what it looks like and make any
  1351. changes it it isn't doing what we expected it to do. If we choose printer, the
  1352. report will be sent to the printer we've selected (see below) or a default
  1353. printer. If we choose to send the report to a file (ASCII), we will be asked
  1354. for the name of the file.
  1355.  
  1356.       While the report is processing, we are updated as to the number of
  1357. records being read:
  1358.  
  1359.                    ┌──────────────────────────┐
  1360.                    │   Records Read..:  1187  │
  1361.                    │   Records Found.:   988  │
  1362.                    │   Records Sorted:   988  │
  1363.                    └──────────────────────────┘
  1364.  
  1365.       The report of records found will differ from the number read if we have
  1366. defined a search criteria in our report definition. The difference is the
  1367. records "filtered out" by our search criteria.
  1368.       While viewing our report on the screen, when we are finished we press
  1369. <F10> to return to the Main Menu.
  1370.  
  1371.  
  1372.               ┌─────────── Main Menu ──────────┐
  1373.               │                                │
  1374.               │    Print Report                │
  1375.               │    Select Files                │
  1376.               │    Select Fields               │
  1377.               │    Specify Sort Criteria       │
  1378.               │    Specify Search Criteria     │
  1379.               │    Create Computed Fields      │
  1380.               │    Setup Report Totals         │
  1381.               │    Report Options              │
  1382.               ├────────────────────────────────┤
  1383.               │    New Report                  │
  1384.               │    Load Report                 │
  1385.               │ √  Save Report                 │
  1386.               │    More Options                │
  1387.               └────────────────────────────────┘
  1388.     Esc - Quit   Enter - Select Option
  1389.  
  1390.       Assuming that the report is what we want, we select "Save Report" which
  1391. will save the report definition under the name we gave it at the beginning so
  1392. we can later recall it with "Load Report".
  1393.  
  1394.  
  1395.               ┌─────────── Main Menu ──────────┐
  1396.               │                                │
  1397.               │    Print Report                │
  1398.               │    Select Files                │
  1399.               │    Select Fields               │
  1400.               │    Specify Sort Criteria       │
  1401.               │    Specify Search Criteria     │
  1402.               │    Create Computed Fields      │
  1403.               │    Setup Report Totals         │
  1404.               │ √  Report Options              │
  1405.               ├────────────────────────────────┤
  1406.               │    New Report                  │
  1407.               │    Load Report                 │
  1408.               │    Save Report                 │
  1409.               │    More Options                │
  1410.               └────────────────────────────────┘
  1411.     Esc - Quit   Enter - Select Option
  1412.  
  1413.  
  1414.       When we select "Report Options" from the Main Menu we get a menu of
  1415. options:
  1416.  
  1417.                      ┌───────── Report Options ─────┐
  1418.                      │                              │
  1419.                      │  Report Width             80 │
  1420.                      │  Page Length              66 │
  1421.                      │  Left Margin               0 │
  1422.                      │  Top Margin                2 │
  1423.                      │  Bottom Margin             2 │
  1424.                      │  Compressed Print        Off │
  1425.                      │  Skip Duplicates         Off │
  1426.                      │  Groups on New Page      Off │
  1427.                      │  Report Title            On  │
  1428.                      │  Print Sort Criteria     On  │
  1429.                      │  Print Search Criteria   On  │
  1430.                      │  Column Headings         On  │
  1431.                      │    File Names            On  │
  1432.                      │  Summary Only            Off │
  1433.                      │ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒     │
  1434.                      └──────────────────────────────┘
  1435.              F10-Continue   Enter-Change option
  1436.  
  1437.  
  1438.       Most of these options are self-explanatory. Numerical values can be
  1439. edited and changed. The on/off values can be toggled between on or off. The
  1440. options Report Title, Print Sort Criteria, Print Search Criteria, Column
  1441. Headings and File Names refer to page headers which appear at the top of each
  1442. page. These are usually useful and helpful to have on the printed reports. If
  1443. you are saving the report to a disk file, you will probably want to turn off
  1444. some of these header options.
  1445.  
  1446.       Press <F10> to return to the Main Menu:
  1447.  
  1448.  
  1449.  
  1450.  
  1451.               ┌─────────── Main Menu ──────────┐
  1452.               │                                │
  1453.               │    Print Report                │
  1454.               │    Select Files                │
  1455.               │    Select Fields               │
  1456.               │    Specify Sort Criteria       │
  1457.               │    Specify Search Criteria     │
  1458.               │    Create Computed Fields      │
  1459.               │    Setup Report Totals         │
  1460.               │    Report Options              │
  1461.               ├────────────────────────────────┤
  1462.               │    New Report                  │
  1463.               │    Load Report                 │
  1464.               │    Save Report                 │
  1465.               │ √  More Options                │
  1466.               └────────────────────────────────┘
  1467.     Esc - Quit   Enter - Select Option
  1468.  
  1469.  
  1470.                    ┌────── More Options ─────┐
  1471.                    │                         │
  1472.                    │  Clear                  │
  1473.                    │  Save Report As...      │
  1474.                    │  Delete Report          │
  1475.                    │  Set Printer Type/Port  │
  1476.                    │  Set Key Range          │
  1477.                    │  View Last Report       │
  1478.                    │  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒  │
  1479.                    └─────────────────────────┘
  1480.     Esc - Cancel   Enter - Select Option
  1481.  
  1482.  
  1483.        You'll notice that this menu behaves much like the Main Menu in that
  1484. not all menu options are always available. It depends how far you have
  1485. proceeded in defining or loading a report definition what menu options are
  1486. available.
  1487.  
  1488.       "Clear" will clear the current report definition from memory so you can
  1489. start again with a new report definition.
  1490.       "Save Report As..." allows you to change the name under which the
  1491. current report definition is saved.
  1492.       "Delete Report" allows you to delete the current report definition from
  1493. the QUERY database.
  1494.       "Set Printer Type/Port" allows you to select the printer to which you
  1495. will be printing your reports.   There are 21 printers available in DEEPREPT:
  1496.  
  1497.            ┌───── Printer Selection ──────┐
  1498.            │                              │
  1499.            │    Ascii Plain Printer       │
  1500.            │    C. Itoh 8510 Prowriter    │
  1501.            │    DataProducts DP           │
  1502.            │    Diablo Compatible         │
  1503.            │    Epson FX Series           │
  1504.            │    Epson LQ Series           │
  1505.            │    Epson MX Series           │
  1506.            │    Facit 4512                │
  1507.            │    Generic Epson             │
  1508.            │    HP Desk Jet               │
  1509.            │    HP Laser Jet              │
  1510.            │    HP Laser Jet Font G       │
  1511.            │    HP Laser Jet II           │
  1512.            │    HP Laser Jet Plus         │
  1513.            │    HP Laserjet Font F        │
  1514.            │    IBM Proprinter II         │
  1515.            │    NEC 3510                  │
  1516.            │    NEC 8800                  │
  1517.            │    Panasonic KX 1093         │
  1518.            │    Star Micronic Compatible  │
  1519.            │    Toshiba P 321SL / P 341SL │
  1520.            │    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │
  1521.            └──────────────────────────────┘
  1522.  
  1523.       Once you have selected a printer, you select a port:
  1524.  
  1525.                    ┌─ Port ──┐
  1526.                    │         │
  1527.                    │  LPT1   │
  1528.                    │  LPT2   │
  1529.                    │  LPT3   │
  1530.                    │  PRN    │
  1531.                    │  ▒▒▒▒▒▒ │
  1532.                    └─────────┘
  1533.  
  1534.        Unless you know what your hardware is configured as, choose PRN as the
  1535. printer port.
  1536.  
  1537.       DEEPREPT will remember your printer and port selections by writing them
  1538. to the DEEPREPT.CFG file so that your most recent choice will become the
  1539. default printer the next time you run DEEPREPT.
  1540.  
  1541.  
  1542.       "Set Key Range" allows you to do filtering at the index key:
  1543.  
  1544.  
  1545.  
  1546.    ┌─────────────────────── Key Range Selection ─────────────────────────┐
  1547.    │ Key Name                                                            │
  1548.    ├─────────────────────────────────────────────────────────────────────┤
  1549.    │ +FileName                                                           │
  1550.    │ +StorageFile                                                        │
  1551.    │ +DiskID                                                             │
  1552.    │                                                                     │
  1553.    │                                                                     │
  1554.    │                                                                     │
  1555.    ├─────────────────────────────────────────────────────────────────────┤
  1556.    │ Name             Beginning              Ending                      │
  1557.    ├─────────────────────────────────────────────────────────────────────┤
  1558.    │ FileName         [No Value]            [No Value]                   │
  1559.    │                                                                     │
  1560.    │                                                                     │
  1561.    │                                                                     │
  1562.    │                                                                     │
  1563.    └─────────────────────────────────────────────────────────────────────┘
  1564.   F10-Continue  Enter-Edit  Tab-Switch  F2-Reset Range Value  F3-Reset Ranges
  1565.  
  1566.       Press <Tab> to move the selector bar to the bottom half of the screen
  1567. once a key has been selected. Press <Enter> to edit the beginning and ending
  1568. values for the index. For example, you might enter AMERICA.DOC for the
  1569. beginning value and FRANCE.DOC for the ending value then press <F10> to
  1570. continue. This would have the effect of filtering out any index values that
  1571. fall outside these two values. You probably have better control by entering
  1572. search criteria.
  1573.  
  1574.       "View Last Report" will do just that in the event you have printed a
  1575. report to the screen.
  1576.  
  1577.       This concludes our tour of the Main Menu and its various options. We
  1578. strongly suggest that you load some of the "canned" report definitions we have
  1579. provided in this package. Print them, edit them, revise them and see what
  1580. happens to the final output of the report. This is likely your quickest way to
  1581. learning how to use DEEPREPT.
  1582.  
  1583.  
  1584.  
  1585.  
  1586. Report Types
  1587. -------------
  1588.  
  1589.       A tabular report is a report with each record occupying one line of the
  1590. report, and each selected field in a separate column. There are page headers,
  1591. footers, column totals, etc. as defined in the report definition.
  1592.  
  1593.       Comma-delimited ASCII files are text files where, again, each record
  1594. occupies one line and each field takes only as much space as it needs and is
  1595. separated from the next field (column) by a comma. In this kind of report, the
  1596. names (or strings) are surrounded by double quotes, like "this". This kind of
  1597. report, when saved to disk as a text file, is the kind of file that can be
  1598. read by other computer programs, such as Lotus, Quattro Pro, Reflex, dBase,
  1599. FoxPro, Paradox, PC-File and many others. You use this type of report to
  1600. "export" your data to another program (which imports it). For example, suppose
  1601. you defined the fields for a comma-delimited ASCII report as:
  1602.  
  1603.                   FileName
  1604.                   FileDate
  1605.                   FileSize
  1606.  
  1607. The report that would be sent to diskette would export your data from the
  1608. DEEPLOOK database as this:
  1609.  
  1610. "MYFILE.DOC","02/11/93",12234
  1611. "YOURFILE.DOC","04/01/93",6712
  1612.  
  1613. Here each file name is surrounded by double quotes and followed by a comma,
  1614. each file date is surrounded by double quotes and followed by a comma, and
  1615. each file size is presented as it is because it is a numeric value and does
  1616. not get surrounded by quotes. Since it is the last field for each record in
  1617. this report, it is not followed by a comma.
  1618.  
  1619.       Fixed-length ASCII file reports place the field information in strict
  1620. columnar format, but without the quotes or the commas. In the example just
  1621. above, the results would be in the file as follows:
  1622.  
  1623. MYFILE.DOC    02/11/93  12234
  1624.  
  1625. YOURFILE.DOC  04/01/93   6712
  1626.  
  1627. Here each file name starts in column #1, each date starts in column #15 and
  1628. each size starts in column 25. In this case, the size of 6712 is flushed right
  1629. in the field space to allow for accurate sorting on that column if such is
  1630. desired.
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636. Pictures
  1637. --------
  1638. The @STR formula (see below) gives you a lot of ways to present numbers in a
  1639. report by passing the following picture masks and the numerical field to the
  1640. @STR formula. These same pictures can be used in defining computed fields.
  1641. Dates are handled separately.  See "Working with Dates" below.
  1642.  
  1643.    Picture         Result          Explanation
  1644.  --------------   --------------  ---------------------
  1645.   "XXXXXXXXXX"     Any character
  1646.   "!!!!!!!!!!"     Any character  Force alpha to UPPER case
  1647.   "LLLLLLLLLL"     Any character  Force alpha to LOWER case
  1648.   "xxxxxxxxxx"     Any character  Force alpha to MIXED case (proper)
  1649.   "9999999999"     Numbers and spaces only
  1650.   "##########"     Numbers, spaces, minus and period
  1651.   "B"              Boolean only    True or false
  1652.   "Y"              Yes or No only  Y or N / y or n
  1653.   "aaaaaaaaaa"     Alpha only
  1654.   "AAAAAAAAAA"     Alpha only, force upper case
  1655.   "llllllllll"     Alpha only, force lower case
  1656.  
  1657.  "EEEEEEEEEEE"      scientific notation    1.234567E+17
  1658.  "KKKK"             hexadecimal numbers    07FE        
  1659.  "c999.99"           dollar sign is fixed  $ 12.50     
  1660.  "$999.99"          dollar sign floats      $12.50     
  1661.  "999.99CC"         French francs,         123,45 F    
  1662.                     fixed (Decimal = ,)
  1663.  "$###,###.##"      ',' is discretionary,  $1,234.56
  1664.                     '$' floats
  1665.  
  1666.  
  1667.  
  1668.  
  1669. Working with Dates
  1670. ------------------
  1671.       In the DEEPLOOK system, dates are numbers (loosely a "Julian" date -
  1672. the serial number of days from a given point in time). In order to have a date
  1673. appear in a report as a date, the date field(s) will have to be converted. You
  1674. can get a standard date format, 03/17/93, by using the formula
  1675. @DATESTR(field). You can format a date into a host of other date formats by
  1676. using the @STR(field, "picture") formula. (See section on formulas just
  1677. below.) Here are the pictures available for working with dates:
  1678.  
  1679.  
  1680.               Picture                 Result
  1681.             ------------           -------------------
  1682.             "mm/dd/yy"              01/02/00
  1683.             "MM/dd/yy"               1/02/00
  1684.             "mm/dd/yyyy"            01/02/1900
  1685.             "mm-dd-yyyy"            01-02-1900
  1686.             "dd/mm/yyyy"            02/01/1900
  1687.             "DD/mm/yyyy"             2/01/1900
  1688.             "dd-nnn-yyyy"           02-Jan-1900
  1689.             "dd-NNN-yyyy"           02-JAN-1900
  1690.             "www dd nnn yyyy"       Tue 02 Jan 1900
  1691.             "WWW NNN dd yyyy"       TUE JAN 02 1900
  1692.  
  1693.      The following special characters are meaningful in date picture masks:
  1694.  
  1695.          Char            Marks location of or is replaced by
  1696.          ---------       ------------------------------------
  1697.          "m", "M"        month (date fields only)
  1698.          "d", "D"        day (date)
  1699.          "y"             year (date)
  1700.          "n", "N"        month name (date)
  1701.          "w", "W"        day of week name (date)
  1702.          "/"             '/' or SlashChar (date; semi-literal)
  1703.  
  1704.  
  1705.  
  1706. Working with Times
  1707. ------------------
  1708.  
  1709.        Picture                 Result
  1710.      ----------------       --------------
  1711.      "hh:mm:ss"              13:02:00
  1712.      "hh:mm"                 13:02
  1713.      "hh:mm te"              01:02 pm
  1714.      "hh:mmt"                01:02p
  1715.  
  1716.    Note that string representations of time are always assumed to be
  1717. in military format unless a 't' appears in the picture mask. An 'e'
  1718. (em) in the mask should always be accompanied by a corresponding
  1719. 't' (time).
  1720.  
  1721.   The following special characters are meaningful in time picture masks:
  1722.  
  1723.      Char            Marks location of or is replaced by
  1724.    --------------   ---------------------------------------------------
  1725.      "h", "H"        hours (time fields only)
  1726.      "m", "M"        minutes (time)
  1727.      "s", "S"        seconds (time)
  1728.      ":"             ":" or ColonChar (date; semi-literal)
  1729.      "e"             "m" or "M" (time; case depends on UpCaseTime)
  1730.      "t"             "p", "P", "a", "A" (time;  ditto )
  1731.  
  1732.  
  1733.  
  1734. Computed Field Types
  1735. ---------------------
  1736. String - a "string" is a string of characters, usually alphabetic, but can
  1737.          include numbers, punctuation, etc. Strings are interpreted literally
  1738.          and CANNOT be used in calculations (such as totals, etc.) without
  1739.          converting them to numerical. The DEEPREPT @NUM function will convert
  1740.          a string to a number. 8997 is a number. 8,997 is a string using @STR
  1741.          to convert 8997 to a string an insert the comma.
  1742.  
  1743. Boolean - a Boolean is an on or off type. It can be True or False. It can be
  1744.           Yes or No.  There are no other acceptable values for a Boolean.
  1745.  
  1746. Integer - An integer is a number without the possibility of a decimal point.
  1747.           Integers CAN be used in calculations, such as totals, etc.
  1748.  
  1749. Real - A real type is a number WITH the availability of decimals.
  1750.  
  1751. Date - A date is a numerical type that can be used in calculations. The date
  1752.       of a file can be subtracted from Today to determine how many days old
  1753.       the file is.
  1754.  
  1755. Time - Time is also a numerical type.
  1756.  
  1757.  
  1758.  
  1759.  
  1760. Operators
  1761. ----------
  1762.  
  1763.           * is multiplication (integers and reals)
  1764.           - is subtraction (integers and reals)
  1765.           / is division (reals)
  1766.           DIV is division of integers
  1767.           + is addition (integers, reals and strings)
  1768.  
  1769.           NOT is logical negation
  1770.           AND is logical AND
  1771.           OR  is the inclusive or
  1772.           XOR is the exclusive or
  1773.           IN  returns true if operand is IN a set, otherwise returns false
  1774.  
  1775.           = is equal to
  1776.           <> is not equal to
  1777.           < is less than
  1778.           > is greater than
  1779.           <= is less than OR equal to
  1780.           >= is greater than OR equal to
  1781.  
  1782.  
  1783.           Some examples:
  1784.                   FileSize = 10000
  1785.                        Select the record only if the FileSize is exactly 10000
  1786.                        otherwise reject the record
  1787.  
  1788.                   FileSize >= 10000
  1789.                        Select the record if FileSize is greater than 9999
  1790.                        otherwise reject the record
  1791.  
  1792.                  FileType = "Storage" AND FileSize > 10000
  1793.                        Select the record if BOTH condtions are true
  1794.                        otherwise reject the record
  1795.  
  1796.                  FileType = "Storage" NOT FileSize > 10000
  1797.                        Select the record only if FileType is "Storage" and
  1798.                        the FileSize is NOT greater than 10000
  1799.                        otherwise reject the record
  1800.  
  1801.                  FileType = "Storage" OR FileType = "Regular"
  1802.                        Select the record if EITHER FileType is true
  1803.  
  1804.                  FileType = "Storage" XOR FileSize > 10000
  1805.                        Select the record if only ONE condition is true
  1806.  
  1807.  
  1808.  
  1809. Formulas in DEEPREPT
  1810. ---------------------
  1811.  
  1812.    @ABS(X)                Return the absolute value of X.
  1813.  
  1814.    @AVE(A, B [,C..N] )    Return the average of two or more parameters.
  1815.  
  1816.    @CURRTIME              Return the current time.
  1817.  
  1818.    @DATE(S)               Convert the date string S to a numeric date.
  1819.  
  1820.  
  1821.    @DATESTR(D)            Convert the numeric date D to a formatted
  1822.                           date string.
  1823.  
  1824.    @DAY(D)                Return the day of the month in the date D.
  1825.  
  1826.    @DEC(X [,N] )           Decrement X by one or second parameter if given.
  1827.  
  1828.    @FALSE                  Return boolean false result.
  1829.  
  1830.    @HOUR(T)               Return the hour in the time T.
  1831.  
  1832.    @IF(Condition, Result1, Result2)
  1833.                            Return Result1 if Condition is true or Result2
  1834.                            if Condition is false.
  1835.  
  1836.    @INC(X [,N] )           Increment X by one or second parameter if given.
  1837.  
  1838.    @INSTR(N, S1, S2)      Search in S1 for the sub string S2
  1839.                           starting at position N.
  1840.  
  1841.    @LEFTPAD(S, N [,C] )   Pad beginning of string S so that it is N in
  1842.                           length with default character or optional
  1843.                           third parameter C.
  1844.  
  1845.    @LEFTSTR(S, N)         Return the first N characters of the string S.
  1846.  
  1847.    @LENSTR(S)             Return the length of the string S.
  1848.  
  1849.    @LOCASE(S1 [,S2..SN] ) Convert one or more strings to lower case
  1850.                           and concatinate (join) them.
  1851.  
  1852.    @MAX(A, B [,C..N] )    Return the maximum of two or more parameters.
  1853.  
  1854.    @MIN(A, B [,C..N] )    Return the minimum of two or more parameters.
  1855.  
  1856.    @MINUTE(T)             Return the number of minutes in the Time T.
  1857.  
  1858.    @MIDSTR(S, P, N)       Copy part of the string S starting at
  1859.                           position P for N characters.
  1860.  
  1861.    @MONTH(D)              Return the month of the year in the date D.
  1862.  
  1863.    @NUM(S)                Convert the unformatted string S to a number.
  1864.  
  1865.    @PAD(S, X [, C] )      Pad end of string S so that it is N in
  1866.                           length with default character or optional
  1867.                           third parameter C.
  1868.  
  1869.    @RIGHTSTR(S, N)        Return the right N characters of the string S.
  1870.  
  1871.    @SECOND(T)             Return the number of seconds in the time T.
  1872.  
  1873.    @STR(X, P)             Convert X to a formatted string using P as
  1874.                           the picture mask.
  1875.  
  1876.    @TIME(S)               Convert the time string S to a numeric time.
  1877.  
  1878.  
  1879.    @TIMESTR(T)            Convert the numeric time T to a formatted
  1880.                           time string.
  1881.  
  1882.  
  1883.    @TODAY                 Return the current numeric date.
  1884.  
  1885.    @TRUE                   Return boolean true result.
  1886.  
  1887.  
  1888.    @UPCASE(S1 [,S2..SN])   Convert one or more strings to upper case
  1889.                            and concatinate (join) them.
  1890.  
  1891.    @YEAR(D)               Return the year in the date D.
  1892.  
  1893.  
  1894.  
  1895.  
  1896. FileList:
  1897. ----------
  1898. Here is a list of all the files that should accompany the DEEPLOOK
  1899. package.  If any of these files are missing please notify us at once.
  1900.  
  1901. These are the executable programs:
  1902.     DEEPLOOK.EXE
  1903.     DEEPEDIT.EXE
  1904.     DEEPREPT.EXE
  1905.           These files support DEEPREPT.EXE
  1906.           DEEPREPT.OVR
  1907.           DEEPREPT.CFG
  1908.           DEEPREPT.DAT
  1909.           DEEPREPT.IX
  1910.           QUERY   .DAT
  1911.           QUERY   .IX
  1912.  
  1913. These are the documentation (ASCII) files:
  1914.     DEEPLOOK.DOC
  1915.     QIKSTART.DOC
  1916.     REGISTER.DOC
  1917.  
  1918.  
  1919.  
  1920.  
  1921. APPENDIX A: Registering your shareware version of DEEPLOOK
  1922. ----------------------------------------------------------
  1923.  
  1924. DEEPLOOK is a shareware product. Shareware is a distribution method, not a
  1925. type of software.
  1926.  
  1927. Shareware is NOT free software. Shareware authors are accomplished
  1928. programmers, just like commercial authors, and the programs are of comparable
  1929. quality.
  1930.  
  1931. Shareware distribution gives users a chance to try software before buying it.
  1932. If you try a shareware program and continue using it, you are OBLIGATED to
  1933. register the software with the author. With shareware you are able to try the
  1934. software on your computer. After deciding that DEEPLOOK is a software product
  1935. that you will use, you pay for it. If you decide that DEEPLOOK is not for you,
  1936. you remove it from your hard disk drive and stop using it. Generally,
  1937. shareware software prices are BELOW comparable commercial products because
  1938. there is usually less overhead and distribution costs. The lower price is NOT
  1939. an indicator of inferior quality. Registration is also an incentive to
  1940. encourage software authors to continue producing quality professional software
  1941. at a reasonable price.
  1942.  
  1943. The DEEPLOOK programs are the complete system. It is neither "watered-down"
  1944. nor crippled in any way. It is NOT an "evaluation" copy. What you have
  1945. received is the complete functional system. It is fully professional
  1946. software.
  1947.  
  1948. When you register you become eligible for a number of things. First, is
  1949. notification of any major upgrades and/or improvements in the product that
  1950. may be produced in the future. Second, you will be our customer. While we
  1951. are always interested in how users react to our software and their
  1952. suggestions for improvements, we incline a much more sympathetic ear to the
  1953. voices of our customers.
  1954.  
  1955. Registration is $7.00 per copy that you are using.  You, and your conscience
  1956. are strongly urged to register by sending $7.00, checks payable to:
  1957.  
  1958.             John Abele
  1959.             114 Woodlawn Ave.
  1960.             Willow Grove, PA.  19090
  1961.  
  1962. Please note that you are registering DEEPLOOK (we have lots of shareware
  1963. products out there) and tell us where you obtained your copy.
  1964.