`-bYTEXTeKC�:P�q$e�!�mPOINTEReKN�:�q$e�!�m
                                                                                        0 ##INDEX##                                                                              0 ================================================================                       0                                                                                        0 <Index>                                                                                2                                                                                        0 <Copyright>                                                                          568                                                                                        0 <Introduction>                                                                       601                                                                                        0 <Dos xBase>                                                                          647      <.DBF Files>                                                                    659      <Index Files>                                                                   760      <Relations>                                                                     852                                                                                        0 <Composition>                                                                        969                                                                                        0 <How to use nB>                                                                     1184                                                                                        0 <Status Line>                                                                       1225                                                                                        0 <The Dot Line>                                                                      1294                                                                                        0 <The menu system>                                                                   1323      <Menu File>                                                                    1409           <File - New .Dbf>                                                         1498           <File - Modify .Dbf structure>                                            1618           <File - Open .Dbf>                                                        1639           <File - New .Ntx / New Tag>                                               1667           <File - Open Index>                                                       1702           <File - Select>                                                           1718           <File - Display structure>                                                1731           <File - Close active Alias>                                               1736           <File - Close all Aliases>                                                1746           <File - Order List Rebuild>                                               1755           <File - Order Set Focus>                                                  1765           <File - Order List Clear>                                                 1771           <File - Set Relation>                                                     1780           <File - Clear Relation>                                                   1799           <File - Show actual RDD default>                                          1809           <File - Set default RDD>                                                  1817      <Menu Edit>                                                                    1826           <Edit - View>                                                             1860           <Edit - Edit/Browse>                                                      1887           <Edit - Replace>                                                          1934           <Edit - Recall>                                                           1963           <Edit - Delete>                                                           1987           <Edit - Pack>                                                             2010      <Menu Report>                                                                  2023           <Report - New Label>                                                      2068           <Report - Modify Label>                                                   2139           <Report - Label Form>                                                     2150           <Report - New Report>                                                     2171           <Report - Modify Report>                                                  2280           <Report - Report Form>                                                    2292           <Report - Create/Modify/Print Text>                                       2313      <Menu Htf>                                                                     2324           <Htf - Open Help Text File>                                               2352           <Htf - New Help Text File>                                                2362           <Htf - New HTML File>                                                     2405      <Menu Macro>                                                                   2433           <Macro - Start Recording>                                                 2470           <Macro - Save Recording>                                                  2481           <Macro - Erase Recording>                                                 2491           <Macro - Edit Recording>                                                  2501           <Macro - Macro compilation>                                               2512           <Macro - Load + Execute Macro>                                            2523      <Menu Info>                                                                    2538           <Info - About>                                                               0           <Info - Manual browse>                                                       0           <Info - [F1] help>                                                           0           <Info - [F3] Alias info>                                                     0           <Info - [F5] Set output to>                                                  0           <Info - [F8] Dot Line Calculator>                                            0      <Menu Doc>                                                                     2571           <Doc - New>                                                               2614           <Doc - Open>                                                              2623           <Doc - Save>                                                              2632           <Doc - Save as>                                                           2641           <Doc - Set output to>                                                     2650           <Doc - Print as it is>                                                    2659           <Doc - Print with RPT() once>                                             2669           <Doc - Print with RPT() std>                                              2679           <Doc - Exit DOC()>                                                        2690                                                                                        0 <The Text Editor Doc()>                                                             2700                                                                                        0 <The Help Text File>                                                                2770                                                                                        0 <Macro>                                                                             2819      <Macro statements>                                                             2836           <Procedure>                                                               2852           <Do Procedure>                                                            2882           <Begin Sequence>                                                          2897           <Do Case>                                                                 2917           <While>                                                                   2942           <If>                                                                      2962      <Variable declaration>                                                         2975      <Macro structure>                                                              3000      <Macro comments>                                                               3070      <Macro long lines split>                                                       3089      <The macro recorder>                                                           3100                                                                                        0 <Data Types>                                                                        3122      <Character>                                                                    3144      <Memo>                                                                         3257      <Date>                                                                         3294      <Numeric>                                                                      3369      <Logical>                                                                      3463      <NIL>                                                                          3498      <Array>                                                                        3544      <Code Block>   <Operators>                                                     3667                                                                                        0 <Delimiters>                                                                        3872                                                                                        0 <Code Blocks>                                                                       3891                                                                                        0 <Standard functions>                                                                3941      <AADD()>                                                                       3947      <ABS()>                                                                        3962      <ACLONE()>                                                                     3974      <ACOPY()>                                                                      3985      <ADEL()>                                                                       4015      <ALERT()>                                                                      4107      <ALIAS()>                                                                      4129      <AFILL()>                                                                      4059      <AINS()>                                                                       4088      <ALERT()>                                                                      4107      <ALIAS()>                                                                      4129      <ALLTRIM()>                                                                    4141      <ARRAY()>                                                                      4151      <ASC()>                                                                        4162      <ASCAN()>                                                                      4174      <ASIZE()>                                                                      4205      <ASORT()>                                                                      4222      <AT()>                                                                         4253      <ATAIL()>                                                                      4270      <BIN2I()>                                                                      4284      <BIN2L()>                                                                      4298      <BIN2W()>                                                                      4312      <BOF()>                                                                        4326      <CDOW()>                                                                       4339      <CHR()>                                                                        4353      <CMONTH()>                                                                     4365      <COL()>                                                                        4379      <COLORSELECT()>                                                                4390      <CTOD()>                                                                       4402      <CURDIR()>                                                                     4419      <DATE()>                                                                       4434      <DAY()>                                                                        4441      <DBAPPEND()>                                                                   4450      <DBCLEARFILTER()>                                                              4464      <DBCLEARINDEX()>                                                               4472      <DBCLEARRELATION()>                                                            4479      <DBCLOSEALL()>                                                                 4487      <DBCLOSEAREA()>                                                                4499      <DBCOMMIT()>                                                                   4506      <DBCOMMITALL()>                                                                4519      <DBCREATE()>                                                                   4528      <DBCREATEINDEX()>                                                              4556      <DBDELETE()>                                                                   4968      <DBEVAL()>                                                                     4588      <DBFILTER()>                                                                   4625      <DBGOBOTTOM()>                                                                 4634      <DBGOTO()>                                                                     4641      <DBGOTOP()>                                                                    4654      <DBRECALL()>                                                                   4662      <DBREINDEX()>                                                                  4670      <DBRELATION()>                                                                 4678      <DBRLOCK()>                                                                    4691      <DBRLOCKLIST()>                                                                4704      <DBRSELECT()>                                                                  4712      <DBRUNLOCK()>                                                                  4726      <DBSEEK()>                                                                     4737      <DBSELECTAREA()>                                                               4755      <DBSETDRIVER()>                                                                4773      <DBSETFILTER()>                                                                4784      <DBSETINDEX()>                                                                 4806      <DBSETORDER()>                                                                 4825      <DBSETRELATION()>                                                              4837      <DBSKIP()>                                                                     4860      <DBSTRUCT()>                                                                   4878      <DBUNLOCK()>                                                                   4895      <DBUNLOCKALL()>                                                                4904      <DBUSEAREA()>                                                                  4913      <DESCEND()>                                                                    4978      <DEVOUT()>                                                                     4990      <DEVOUTPICT()>                                                                 5006      <DEVPOS()>                                                                     5025      <DIRECTORY()>                                                                  5038      <DISKSPACE()>                                                                  5072      <DISPBOX()>                                                                    5085      <DISPOUT()>                                                                    5112      <DOW()>                                                                        5132      <DTOC()>                                                                       5145      <DTOS()>                                                                       5159      <EMPTY()>                                                                      5172      <EOF()>                                                                        5188      <EVAL()>                                                                       5202      <EXP()>                                                                        5221      <FCLOSE()>                                                                     5234      <FCOUNT()>                                                                     5249      <FCREATE()>                                                                    5260      <FERASE()>                                                                     5283      <FERROR()>                                                                     5297      <FIELDBLOCk()>                                                                 5326      <FIELDGET()>                                                                   5339      <FIELDNAME()>                                                                  5351      <FIELDPOS()>                                                                   5365      <FIELDPUT()>                                                                   5380      <FIELDWBLOCK()>                                                                5399      <FILE()>                                                                       5417      <FLOCK()>                                                                      5430      <FOPEN()>                                                                      5440      <FOUND()>                                                                      5468      <FREAD()>                                                                      5476      <FREADSTR()>                                                                   5502      <FRENAME()>                                                                    5526      <FSEEK()>                                                                      5546      <FWRITE()>                                                                     5582      <GETENV()>                                                                     5605      <HARDCR()>                                                                     5623      <HEADER()>                                                                     5638      <I2BIN()>                                                                      5647      <IF()>                                                                         5660      <INDEXEXT()>                                                                   5678      <INDEXKEY()>                                                                   5688      <INDEXORD()>                                                                   5704      <INKEY()>                                                                      5718      <INT()>                                                                        5906      <ISALPHA()>                                                                    5920      <ISCOLOR()>                                                                    5930      <ISDIGIT()>                                                                    5938      <ISLOWER()>                                                                    5949      <ISPRINTER()>                                                                  5960      <ISUPPER()>                                                                    5968      <L2BIN()>                                                                      5978      <LASTKEY()>                                                                    5991      <LASTREC()>                                                                    6003      <LEFT()>                                                                       6013      <LEN()>                                                                        6028      <LOG()>                                                                        6042      <LOWER()>                                                                      6054      <LTRIM()>                                                                      6064      <LUPDATE()>                                                                    6076      <MAX()>                                                                        6086      <MAXCOL()>                                                                     6100      <MAXROW()>                                                                     6110      <MEMOEDIT()>                                                                   6118      <MEMOLINE()>                                                                   6214      <MEMOREAD()>                                                                   6255      <MEMORY()>                                                                     6267      <MEMOTRAN()>                                                                   6286      <MEMOWRIT()>                                                                   6309      <MEMVARBLOCK()>                                                                6330      <MIN()>                                                                        6344      <MLCOUNT()>                                                                    6358      <MLCTOPOS()>                                                                   6384      <MLPOS()>                                                                      6409      <MONTH()>                                                                      6433      <MPOSTOLC()>                                                                   6443      <NETERR()>                                                                     6473      <NEXTKEY()>                                                                    6502      <NOSNOW()>                                                                     6518      <ORDBAGEXT()>                                                                  6530      <ORDBAGNAME()>                                                                 6539      <ORDCREATE()>                                                                  6554      <ORDDESTROY()>                                                                 6584      <ORDFOR()>                                                                     6599      <ORDKEY()>                                                                     6621      <ORDLISTADD()>                                                                 6640      <ORDLISTCLEAR()>                                                               6663      <ORDLISTREBUILD()>                                                             6671      <ORDNAME()>                                                                    6679      <ORDNUMBER()>                                                                  6695      <ORDSETFOCUS()>                                                                6709      <OS()>                                                                         6728      <OUTERR()>                                                                     6735      <OUTSTD()>                                                                     6752      <PAD?()>                                                                       6766      <PCOL()>                                                                       6787      <PROW()>                                                                       6798      <QOUT()>                                                                       6809      <RAT()>                                                                        6830      <RDDLIST()>                                                                    6845      <RDDNAME()>                                                                    6858      <RDDSETDEFAULT()>                                                              6866      <READINSERT()>                                                                 6880      <READMODAL()>                                                                  6893      <READVAR()>                                                                    6909      <RECNO()>                                                                      6918      <RECSIZE()>                                                                    6935      <REPLICATE()>                                                                  6946      <RIGHT()>                                                                      6983      <RLOCK()>                                                                      6998      <ROUND()>                                                                      7014      <ROW()>                                                                        7032      <RTRIM()>                                                                      7039      <SAVESCREEN()>                                                                 7053      <SCROLL()>                                                                     7067      <SECONDS()>                                                                    7102      <SELECT()>                                                                     7112      <SET()>                                                                        7122      <SETBLINK()>                                                                   7153      <SETCANCEL()>                                                                  7165      <SETCOLOR()>                                                                   7178      <SETCURSOR()>                                                                  7187      <SETKEY()>                                                                     7202      <SETMODE()>                                                                    7218      <SETPOS()>                                                                     7234      <SETPRC()>                                                                     7249      <SOUNDEX()>                                                                    7263      <SPACE()>                                                                      7273      <SQRT()>                                                                       7283      <STR()>                                                                        7294      <STRTRAN()>                                                                    7312      <STUFF()>                                                                      7336      <SUBSTR()>                                                                     7355      <TIME()>                                                                       7381      <TONE()>                                                                       7393      <TRANSFORM()>                                                                  7409      <TYPE()>                                                                       7425      <UPDATED()>                                                                    7454      <UPPER()>                                                                      7462      <USED()>                                                                       7473      <VAL()>                                                                        7481      <VALTYPE()>                                                                    7496      <YEAR()>                                                                       7522                                                                                        0 <nB functions>                                                                      7534      <ACCEPT()>                                                                     7540      <ACHOICE()>                                                                    7550      <ACHOICEWINDOW()>                                                              7595      <ALERTBOX()>                                                                   7631      <ATB()>                                                                        7655      <BUTTON()>                                                                     7743      <BCOMPILE()>                                                                   7735      <COLORARRAY()>                                                                 7767      <COORDINATE()>                                                                 7779      <COPYFILE()>                                                                   7809      <DBAPP()>                                                                      7823      <DBCLOSE()>                                                                    7867      <DBCONTINUE()>                                                                 7876      <DBCOPY()>                                                                     7883      <DBCOPYSTRUCT()>                                                               7926      <DBCOPYXSTRUCT()>                                                              7941      <DBDELIM()>                                                                    7955      <DBISTATUS()>                                                                  7999      <DBISTRUCTURE()>                                                               8007      <DBJOIN()>                                                                     8015      <DBLABELFORM()>                                                                8042      <DBLIST()>                                                                     8087      <DBLOCATE()>                                                                   8130      <DBOLDCREATE()>                                                                8165      <DBPACK()>                                                                     8195      <DBSDF()>                                                                      8204      <DBSORT()>                                                                     8246      <DBTOTAL()>                                                                    8279      <DBUPDATE()>                                                                   8320      <DBZAP()>                                                                      8348      <DISPBOXCOLOR()>                                                               8356      <DISPBOXSHADOW()>                                                              8372      <DIR()>                                                                        8396      <DOC()>                                                                        8426      <DOTLINE()>                                                                    8440      <DTEMONTH()>                                                                   8449      <DTEWEEK()>                                                                    8461      <EX()>                                                                         8477      <GET()>                                                                        8488      <GVADD()>                                                                      8527      <GVDEFAULT()>                                                                  8543      <GVFILEDIR()>                                                                  8560      <GVFILEEXIST()>                                                                8575      <GVFILEEXTENTION()>                                                            8591      <GVSUBST()>                                                                    8605      <HTF()>                                                                        8621      <ISFILE()>                                                                     8633      <ISWILD()>                                                                     8646      <ISMEMVAR()>                                                                   8657      <ISCONSOLEON()>                                                                8667      <ISPRINTERON()>                                                                8675      <KEYBOARD()>                                                                   8687      <LISTWINDOW()>                                                                 8694      <MEMOWINDOW()>                                                                 8718      <MEMPUBLIC()>                                                                  8749      <MEMRELEASE()>                                                                 8761      <MEMRESTORE()>                                                                 8775      <MEMSAVE()>                                                                    8790      <MENUPROMPT()>                                                                 8808      <MENUTO()>                                                                     8833      <MESSAGELINE()>                                                                8845      <MOUSESCRSAVE()>                                                               8865      <MOUSESCRRESTORE()>                                                            8878      <PICCHRMAX()>                                                                  8893      <QUIT()>                                                                       8908      <READ()>                                                                       8915      <RF()>                                                                         8937      <RPT()>                                                                        8991      <RPTMANY()>                                                                    9002      <RPTTRANSLATE()>                                                               9018      <RUN()>                                                                        9026      <SAY()>                                                                        9034      <SETCOLORSTANDARD()>                                                           9057      <SETFUNCTION()>                                                                9082      <SETMOUSE()>                                                                   9095      <SETOUTPUT()>                                                                  9106      <SETRPTEJECT()>                                                                9163      <SETRPTLINES()>                                                                9177      <SETVERB()>                                                                    9188           <SETVERB("EXACT")>                                                        9243           <SETVERB("FIXED")>                                                        9263           <SETVERB("DECIMALS")>                                                     9277           <SETVERB("DATEFORMAT")>                                                   9287           <SETVERB("EPOCH")>                                                        9307           <SETVERB("PATH")>                                                         9317           <SETVERB("DEFAULT")>                                                      9328           <SETVERB("EXCLUSIVE")>                                                    9336           <SETVERB("SOFTSEEK")>                                                     9346           <SETVERB("UNIQUE")>                                                       9358           <SETVERB("DELETED")>                                                      9373           <SETVERB("CANCEL")>                                                       9385           <SETVERB("TYPEAHEAD")>                                                    9395           <SETVERB("COLOR")>                                                        9405           <SETVERB("CURSOR")>                                                       9465           <SETVERB("CONSOLE")>                                                      9474           <SETVERB("ALTERNATE")>                                                    9484           <SETVERB("ALTFILE")>                                                      9496           <SETVERB("DEVICE")>                                                       9510           <SETVERB("EXTRA")>                                                        9522           <SETVERB("EXTRAFILE")>                                                    9534           <SETVERB("PRINTER")>                                                      9548           <SETVERB("PRINTFILE")>                                                    9558           <SETVERB("MARGIN")>                                                       9567           <SETVERB("BELL")>                                                         9577           <SETVERB("CONFIRM")>                                                      9587           <SETVERB("ESCAPE")>                                                       9597           <SETVERB("INSERT")>                                                       9609           <SETVERB("EXIT")>                                                         9619           <SETVERB("INTENSITY")>                                                    9632           <SETVERB("SCOREBOARD")>                                                   9645           <SETVERB("DELIMITERS")>                                                   9656           <SETVERB("DELIMCHARS")>                                                   9671           <SETVERB("WRAP")>                                                         9681           <SETVERB("MESSAGE")>                                                      9692           <SETVERB("MCENTER")>                                                      9702      <STRADDEXTENTION()>                                                            9712      <STRCUTEXTENTION()>                                                            9726      <STRDRIVE()>                                                                   9737      <STREXTENTION()>                                                               9748      <STRFILE()>                                                                    9759      <STRFILEFIND()>                                                                9769      <STRGETLEN()>                                                                  9785      <STRLISTASARRAY()>                                                             9797      <STROCCURS()>                                                                  9810      <STRPARENT()>                                                                  9823      <STRPATH()>                                                                    9832      <STRTEMPPATH()>                                                                9841      <STRXTOSTRING()>                                                               9849      <TB()>                                                                         9862      <TEXT()>                                                                       9957      <TGLINSERT()>                                                                  9964      <TIMEX2N()>                                                                    9971      <TIMEN2H()>                                                                    9986      <TIMEN2M()>                                                                    9998      <TIMEN2S()>                                                                   10010      <TRUESETKEY()>                                                                10023      <WAITFILEEVAL()>                                                              10030      <WAITFOR()>                                                                   10048      <WAITPROGRESS()>                                                              10056                                                                                        0 <Normal command substitution>                                                      10066      <?>                                                                           10073      <@BOX>                                                                        10084      <@TO>                                                                         10093      <@GET>                                                                        10117      <@SAY>                                                                        10132      <APPEND>                                                                      10150      <CLEAR>                                                                       10157      <CLOSE>                                                                       10181      <COMMIT>                                                                      10204      <COUNT>                                                                       10211      <DEFAULT>                                                                     10227      <DELETE>                                                                      10234      <EJECT>                                                                       10258      <ERASE>                                                                       10265      <FIND>                                                                        10272      <GO>                                                                          10279      <INDEX ON>                                                                    10294      <READ>                                                                        10310      <RECALL>                                                                      10323      <REINDEX>                                                                     10343      <RENAME>                                                                      10354      <REPLACE>                                                                     10361      <RESTORE>                                                                     10383      <SAVE>                                                                        10390      <SEEK>                                                                        10397      <SELECT>                                                                      10404      <SET>                                                                         10411      <SKIP>                                                                        10611      <STORE>                                                                       10618      <SUM>                                                                         10624      <UNLOCK>                                                                      10642      <USE>                                                                         10653                                                                                        0 <nB command substitution functions>                                                10677      <GET>                                                                         10683      <SAY>                                                                         10701      <APPEND FROM>                                                                 10711      <CONTINUE>                                                                    10750      <COPY>                                                                        10757      <CREATE>                                                                      10810      <JOIN>                                                                        10822      <KEYBOARD>                                                                    10831      <LABEL FORM>                                                                  10838      <LIST>                                                                        10854      <LOCATE>                                                                      10871      <PACK>                                                                        10880      <PUBLIC>                                                                      10887      <QUIT>                                                                        10894      <RELEASE>                                                                     10901      <REPORT FORM>                                                                 10908      <RESTORE FROM>                                                                10927      <RUN>                                                                         10934      <SAVE TO>                                                                     10940      <SET FUNCTION>                                                                10948      <SORT>                                                                        10955      <TOTAL>                                                                       10969      <UPDATE>                                                                      10982      <ZAP>                                                                         10997                                                                                        0 <RPT - the nB print function>                                                      11004      <RPT - memvars and fields>                                                    11011                                                                                        0 <RPT - commands>                                                                   11027      <*COMMAND>                                                                    11036      <*DBSKIP>                                                                     11048      <*FOOT>                                                                       11055      <*IF>                                                                         11078      <*INSERT>                                                                     11089      <*HEAD>                                                                       11066      <*LPP>                                                                        11104      <*NEED>                                                                       11112      <*PA>                                                                         11120      <*REM>                                                                        11127      <*WHILE>                                                                      11134                                                                                        0 <RPT - examples>                                                                   11145      <Page definition>                                                             11152      <Header and footer>                                                           11207      <Code insertion>                                                              11272                                                                                        0 <How can I>                                                                        11340      <create a UDF function>                                                       11346      <create a big code block>                                                     11358      <create a virus>                                                              11380      <protect myself from viruses>                                                 11389                                                                                        0 <The source files>                                                                 11396                                                                                        0 <Aknoledgments>                                                                    11420                                                                                        0 <Known problems>                                                                   11436                                                                                        0 <nB history>                                                                       11459                                                                                        0 <How to contact the author>                                                        11497                                                                                        0 ##COPYRIGHT##                                                                          0 ================================================================                       0                                                                                        0 nB (nano Base)                                                                         0                                                                                        0 Copyright (c) 1996-1997   Daniele Giacomini                                            0                                                                                        0 This program is  free software;  you can  redistribute it  and/or                      0 modify it under the  terms of the GNU  General Public License  as                      0 published by the  Free Software Foundation;  either version 2  of                      0 the License, or (at your option) any later version.                                    0                                                                                        0 This program is distributed in the  hope that it will be  useful,                      0 but WITHOUT ANY  WARRANTY; without even  the implied warranty  of                      0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  GNU                      0 General Public License for more details.                                               0                                                                                        0 You should have received a copy of the GNU General Public License                      0 along with  this program;  if not,  write  to the  Free  Software                      0 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                              0                                                                                        0 Send your  comments, suggestions,  bug reports  and english  text                      0 corrections to:                                                                        0                                                                                        0 Daniele Giacomini                                                                      0 Via Turati, 15                                                                         0 I-31100 Treviso                                                                        0 Italy                                                                                  0                                                                                        0 daniele@tv.shineline.it                                                                0                                                                                        0                                                           <Index>                      2                                                                                        0 ##INTRODUCTION##                                                                       0 ================================================================                       0                                                                                        0 First of all, I am sorry for my bad English.                                           0                                                                                        0 nB ("nano Base": "n"  = "nano" = 10**(-9)  = "very little") is  a                      0 little DOS  xBase written  in CA-Clipper  5.2  that can  help  to                      0 access .DBF file created with different standards. nB can  access                      0 files created with Fox Pro 2, dBASE IV, dBASE III, dBASE III PLUS                      0 and CA-Clipper.                                                                        0                                                                                        0 nB is:                                                                                 0                                                                                        0 *    a dot command interpreter,                                                        0                                                                                        0 *    a menu driven xBase,                                                              0                                                                                        0 *    a xBase program interpreter,                                                      0                                                                                        0 nB may be useful because:                                                              0                                                                                        0 *    it is Freeware and contains the source code;                                      0                                                                                        0 *    it is a all in one utility;                                                       0                                                                                        0 *    with nB, a  commercial compiler is  no more  needed to  make                      0      simple programs:                                                                  0                                                                                        0      *    it can  compile some  simple  xBase programs  and  then                      0           execute them,                                                                0                                                                                        0      *    may functions  are  added to  the  standard  CA-Clipper                      0           language.                                                                    0                                                                                        0 nB is compiled in  two versions: a  small one to  be used on  old                      0 computers (x86 with  640K ram), and  a second one  to be used  on                      0 better computers, at least 286 (or better) with 2M ram.                                0                                                                                        0 nB has many level  of use. If you  want to make complex  programs                      0 with nB, you need to know how the CA-Clipper programming language                      0 works. This manual is  already very big, but  it isn't enough  to                      0 understand all  the possibility  of nB.  A  good book  about  CA-                      0 Clipper will help you in the right direction.                                          0                                                                                        0                                                           <Index>                      2                                                                                        0 ##DOS XBASE##                                                                          0 ================================================================                       0                                                                                        0 This  chapter  (Dos  xBase)  is   a  breaf  description  of   the                      0 functionality of a tipical Dos xBase and can be ignored form  the                      0 people who well know how work Clipper and/or dBase.                                    0                                                                                        0 The first purpose of a xBase  program is to handle data inside  a                      0 .DBF file. These  files may  be indexed  with the  help of  index                      0 files and more .DBF files may be linked with a relation to obtain                      0 something like a relational database.                                                  0                                                                                        0 ##.DBF FILES##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 .DBF files are files organised in a table structure:                                   0                                                                                        0 ----------------------------                                                           0 | field1 | field2 | field3 |  record1                                                  0 ----------------------------                                                           0 |        |        |        |  record2                                                  0 ----------------------------                                                           0 |        |        |        |  record3                                                  0 ----------------------------                                                           0 |        |        |        |  record4                                                  0 ----------------------------                                                           0 |        |        |        |  record5                                                  0 ----------------------------                                                           0 |        |        |        |  record6                                                  0 ----------------------------                                                           0                                                                                        0 The lines of this table are  records and the columns are  fields.                      0 Records are numbered starting from the first that is number 1.                         0                                                                                        0 Columns are defined  as fields  and fields  are distinguished  by                      0 name and these names are saved inside the .DBF file.                                   0                                                                                        0 Every field (column) can contain only one specified kind of  data                      0 with a specified dimention:                                                            0                                                                                        0 *    C    character      originally the maximum dimension was 254                      0                          characters, minimum is 1;                                     0                                                                                        0 *    N    numeric        a numeric  field that  can contain  also                      0                          sign and decimal values;                                      0                                                                                        0 *    D    date           a field dedicated to date information;                        0                                                                                        0 *    L    logic          a filed that  may contain  only "T"  for                      0                          True or "F" for False used as a  boolean                      0                          variable;                                                     0                                                                                        0 *    M    memo           a character  field  with  no  predefined                      0                          dimension, not allocated directly inside                      0                          the  .DBF,  but  inside  a  .DBT   file,                      0                          automatically linked.                                         0                                                                                        0 No other field type is available for a typical xBase .DBF file.                        0                                                                                        0 To access the  data contained inside  a .DBF  file the  following                      0 list of action may be followed:                                                        0                                                                                        0 *    Open a .DBF file inside the current area, where these  areas                      0      are something like file handlers.                                                 0      <DBSELECTAREA()>                                                               4755      <DBUSEAREA()>                                                                  4913                                                                                        0 *    After the .DBF  file is opened,  it referenced  only by  the                      0      ALIAS name that usually correspond to the original  filename                      0      without extention.                                                                0      <ALIAS()>                                                                      4129                                                                                        0 *    Move the record pointer to the desired location.                                  0      <DBGOTO()>                                                                     4641                                                                                        0 *    Lock the current record to avoid access from other users.                         0      <DBRLOCK()>                                                                    4691                                                                                        0 *    Do some editing with the  data contained inside the  current                      0      record using the field names like they were variables.                            0                                                                                        0 *    Relese the lock.                                                                  0      <DBRUNLOCK()>                                                                  4726                                                                                        0 *    Move the record pointer to another desired location.                              0      <DBGOTO()>                                                                     4641                                                                                        0 *    Lock the current record to avoid access from other users.                         0      <DBRLOCK()>                                                                    4691                                                                                        0 *    [...]                                                                             0                                                                                        0 *    Close the ALIAS.                                                                  0      <DBCLOSEAREA()>                                                                4499                                                                                        0 Before you go further, you have to understand that:                                    0                                                                                        0 *    A .DBF file  is opened using  a free WORK  AREA that may  be                      0      associated to the concept of the file handler.                                    0                                                                                        0 *    The .DBF file  is opened with  a ALIAS name  that permit  to                      0      open the  same .DBF  file more  times when  using  different                      0      ALIAS names                                                                       0                                                                                        0 *    After the .DBF file  is opened, we don't  speek any more  of                      0      file, but ALIAS.                                                                  0                                                                                        0 *    If the  WORK AREA  "n" is  used  from the  ALIAS  "myAlias",                      0      speeking of WORK AREA "n" or of ALIAS "myAlias" is the  same                      0      thing.                                                                            0      <DBSELECTAREA()>                                                               4755      <SELECT()>                                                                     7112                                                                                        0 ##INDEX FILES##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 .DBF files are  organised with record  number, that  is, you  can                      0 reach a specific  record and  not a  specific information  unless                      0 that you scan record by record.                                                        0                                                                                        0 To obtain to "see"  a .DBF file  somehow logically ordered  (when                      0 phisically it is not), index files are used.                                           0                                                                                        0 A index file, also called INDEX BAG, is a file that contains  one                      0 or more indexes                                                                        0                                                                                        0 Indexes are rules by which a .DBF file may be seen ordered.                            0                                                                                        0 A typical index file may contain only one index.                                       0                                                                                        0 A index file may have the following extention:                                         0                                                                                        0 .NDX   single index      dBase III and dBase III plus;                                 0                                                                                        0 .NTX   single index      Clipper;                                                      0                                                                                        0 .MBX   multiple index    dBase IV;                                                     0                                                                                        0 .CDX   multiple index    FoxPro.                                                       0                                                                                        0      Every index file may be  used only in association  with                           0      the .DBF  for what  it was  made. The  problem is  that                           0      normally there is no way to avoid errors when the  user                           0      try to associate  the right  .DBF file  with the  wrong                           0      index.                                                                            0                                                                                        0 To access the  data contained inside  a .DBF  file the  following                      0 list of action may be followed:                                                        0                                                                                        0 *    Open a .DBF file.                                                                 0      <DBUSEAREA()>                                                                  4913                                                                                        0 *    Open a index file.                                                                0      <ORDLISTADD()>                                                                 6640                                                                                        0 *    Select a particular order.                                                        0      <ORDSETFOCUS()>                                                                6709                                                                                        0 *    Search for a key or move  the record pointer on a  different                      0      way.                                                                              0      <DBSEEK()>                                                                     4737      <FOUND()>                                                                      5468      <DBGOTOP()>                                                                    4654      <DBGOBOTTOM()>                                                                 4634      <DBSKIP()>                                                                     4860      <BOF()>                                                                        4326      <EOF()>                                                                        5188                                                                                        0 *    Lock the current record to avoid access from other users.                         0      <DBRLOCK()>                                                                    4691                                                                                        0 *    Do some editing with the  data contained inside the  current                      0      record using the field names like they were variables.                            0                                                                                        0 *    Relese the lock.                                                                  0      <DBRUNLOCK()>                                                                  4726                                                                                        0 *    Move the record pointer to another desired location.                              0                                                                                        0 *    Lock the current record to avoid access from other users.                         0                                                                                        0 *    [...]                                                                             0                                                                                        0 *    Close the ALIAS.                                                                  0      <DBCLOSEAREA()>                                                                4499                                                                                        0 Before you go further, you have to understand that:                                    0                                                                                        0 *    As orders are contained inside  a INDEX BAG file  phisically                      0      distinguished form the .DBF file, it may happen that a  .DBF                      0      file is wrongly opened and edited without the index. In this                      0      case, the INDEX BAG  is not updated and  when the INDEX  BAG                      0      will be opened, the records  contained inside the .DBF  file                      0      may not correspond.                                                               0                                                                                        0 *    For the  same reason,  an inproper  program termination  may                      0      result in an uncomplete data update. That is: .DBF file  may                      0      be allright, INDEG BAG not.                                                       0                                                                                        0 *    This is why xBase  programs are "weak" relational  databases                      0      or they are not relational databases at all.                                      0                                                                                        0 *    When troubles occurs, indexes must be rebuild.                                    0      <ORDLISTREBUILD()>                                                             6671                                                                                        0 ##RELATIONS##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 Many .DBF files with indexes  may be opened simultaneously.  Data                      0 contained  inside  more  .DBF  files  may  be  somehow  connected                      0 together. See the example.                                                             0                                                                                        0 ------------------------------------------                                             0 | Date | Time IN | Time OUT | Employee # |                                             0 ------------------------------------------                                             0 | xxxx | xxxxxxx | xxxxxxxx |      01    | -------->|                                  0 ------------------------------------------          |                                  0 | yyyy | yyyyyyy | yyyyyyyy |      02    |          |                                  0 ------------------------------------------          |                                  0 | zzzz | zzzzzzz | zzzzzzzz |      01    | -------->|                                  0 ------------------------------------------          |                                  0 [...]                                               |                                  0                                                     |                                  0          |<-----------------------------------------|                                  0          |                                                                             0          |                                                                             0          |        ----------------------------------------                             0          |        | Employee # | Name    | Address |.....|                             0          |        ----------------------------------------                             0          |------->|   01       | aaaaaaa | aaaaaaa |.....|                             0                   ----------------------------------------                             0                   |   02       | bbbbbbb | bbbbbbb |.....|                             0                   ----------------------------------------                             0                   |   03       | ccccccc | ccccccc |.....|                             0                   ----------------------------------------                             0                                                                                        0 The first .DBF file contains some data that refers to an Employee                      0 number that may appear repeated on more records.                                       0                                                                                        0 Emplyee informations  are stored  inside another  .DBF file  that                      0 contains only one record for every employee.                                           0                                                                                        0 Establising a relation from  the first .DBF  file to the  second,                      0 moving the record  pointer of the  first .DBF file,  that is  the                      0 first ALIAS, the record pointer of  the second, the CHILD  ALIAS,                      0 is moved automatically to the record containing the right data.                        0                                                                                        0 The relation is an expression that  should result in a number  if                      0 the CHILD Alias is opened without index, or in a valid index  key                      0 if the CHILD Alias is opened with an index.                                            0                                                                                        0 To relate two  .DBF files  the following  list of  action may  be                      0 followed:                                                                              0                                                                                        0 *    Open the first .DBF file.                                                         0      <DBUSEAREA()>                                                                  4913                                                                                        0 *    Open a index file for the first Alias.                                            0      <ORDLISTADD()>                                                                 6640                                                                                        0 *    Select a particular order.                                                        0      <ORDSETFOCUS()>                                                                6709                                                                                        0 *    Open the second .DBF file.                                                        0      <DBUSEAREA()>                                                                  4913                                                                                        0 *    Open a index file for the second Alias.                                           0      <ORDLISTADD()>                                                                 6640                                                                                        0 *    Select a particular order.                                                        0      <ORDSETFOCUS()>                                                                6709                                                                                        0 *    Select the first Alias.                                                           0      <DBSELECTAREA()>                                                               4755                                                                                        0 *    Define a relation form the first Alias and the second Alias:                      0      the CHILD alias.                                                                  0      <DBSETRELATION()>                                                              4837      <DBRELATION()>                                                                 4678                                                                                        0 *    Search for a  key or move  the record pointer  of the  first                      0      Alias (don't care about the Child Alias).                                         0      <DBSEEK()>                                                                     4737      <FOUND()>                                                                      5468      <DBGOTOP()>                                                                    4654      <DBGOBOTTOM()>                                                                 4634      <DBSKIP()>                                                                     4860      <BOF()>                                                                        4326      <EOF()>                                                                        5188                                                                                        0 *    Lock the current record to avoid access from other users.                         0      <DBRLOCK()>                                                                    4691                                                                                        0 *    If data contained  inside the Child  Alias should be  edited                      0      (usually it doesn't happen), lock the current record of  the                      0      Child Alias.                                                                      0                                                                                        0 *    Do some editing with the  data contained inside the  current                      0      record using the field names like they were variables.                            0                                                                                        0 *    Relese the lock  (also with the  Child Alias if  a lock  was                      0      made).                                                                            0      <DBRUNLOCK()>                                                                  4726                                                                                        0 *    Move the record pointer to another desired location.                              0                                                                                        0 *    Lock the current record to avoid access from other users.                         0                                                                                        0 *    [...]                                                                             0                                                                                        0 *    Release the relation.                                                             0      <DBCLEARRELATION()>                                                            4479                                                                                        0 *    Close the Child Alias.                                                            0      <DBCLOSEAREA()>                                                                4499                                                                                        0 *    Close the first Alias.                                                            0      <DBCLOSEAREA()>                                                                4499                                                                                        0 As may be  seen, relations are  not saved inside  files, but  are                      0 obtained with lines of code.                                                           0                                                                                        0 ##COMPOSITION##                                                                        0 ================================================================                       0                                                                                        0 nB is composed from  the following files, where  "xx" is the  the                      0 version code.                                                                          0                                                                                        0 NBASExx1.ZIP   EXEs for small PCs                                                      0 NBASExx2.ZIP   Runtime EXEs for small PCs                                              0                                                                                        0 NBASExx3.ZIP   EXEs for 286 with 2M+                                                   0                                                                                        0 NBASExx4.ZIP   DOCs                                                                    0                                                                                        0 NBASExx5.ZIP   EXAMPLEs                                                                0                                                                                        0 NBASExx6.ZIP   SRCs for version 96.06.16                                               0                                                                                        0 NBASExx7.ZIP   SRCs for the current version                                            0                                                                                        0 Every archive file contains:                                                           0                                                                                        0 COPYING.TXT    GNU General Public Licence  version 2 in Dos  text                      0                format.                                                                 0                                                                                        0 README.TXT     the readme file.                                                        0                                                                                        0 FILE_ID.DIZ    definition.                                                             0                                                                                        0 The file NBASExx1.ZIP contains also the following files.                               0                                                                                        0 NB.EXE         the  executable  program  for  DBFNTX  and  DBFNDX                      0                files, linked with RTLINK.                                              0                                                                                        0 NB.HLP         this manual in "Help Text File" format.                                 0                                                                                        0 The file NBASExx2.ZIP contains also the following files.                               0                                                                                        0 NB.EXE         the run-time to execute macro programs for  DBFNTX                      0                and DBFNDX files handling, linked with RTLINK.                          0                                                                                        0 The file NBASExx3.ZIP contains also the following files.                               0                                                                                        0 NB.EXE         the executable program for DBFCDX, DBFMDX,  DBFNDX                      0                and DBFNTX files, linked with EXOSPACE.                                 0                                                                                        0 NB.HLP         this manual in "Help Text File" format.                                 0                                                                                        0 The file NBASExx4.ZIP contains also the following files.                               0                                                                                        0 NB.PRN         this manual in printed text format.                                     0                                                                                        0 NB.RTF         this manual in RTF format.                                              0                                                                                        0 NB.TXT         this manual in ASCII text format.                                       0                                                                                        0 NB.HTM         this manual in HTML format.                                             0                                                                                        0 The file NBASExx5.ZIP contains also the following files.                               0                                                                                        0 _ADDRESS.DBF   an example database file.                                               0                                                                                        0 _ADDRESS.NTX   index file associated to _ADDRESS.DBF.                                  0                                                                                        0 _ADDRESS.LBL   a label  form file  used to  print data  contained                      0                inside _ADDRESS.DBF.                                                    0                                                                                        0 _ADDRESS.FRM   a report form  file used to  print data  contained                      0                inside _ADDRESS.DBF.                                                    0                                                                                        0 _ADDRESS.RPT   a RPT  text  file  used to  print  data  contained                      0                inside _ADDRESS.DBF.                                                    0 _MAINMNU.&     a macro  program source  example  of a  menu  that                      0                executes some others macro programs. This  example                      0                is made to demonstrate how nB can execute directly                      0                a soruce code without  compiling it. This  example                      0                is made only to taste it: it is very slow and only                      0                a speady machine can give the idea of it.                               0                                                                                        0 0MAINMNU.&     a macro  program source  example  of a  menu  that                      0                executes some  others macro  programs. It  is  the                      0                same as _MAINMNU.&  but it  is made  to start  the                      0                execution of the compliled macros.                                      0                                                                                        0 0MAINMNU.NB    compiled macro program 0MAINMNU.&                                       0                                                                                        0 0MAINMNU.BAT   a batch file to show how  to run the execution  of                      0                0MAINMNU.NB                                                             0                                                                                        0 1ADDRESS.&     a macro program source example for handling a .DBF                      0                file containig addresses in various ways.                               0                                                                                        0 1ADDRESS.NB    compiled macro 1ADDRESS.&.                                              0                                                                                        0 2ADDRESS.&     a macro program source example for handling a .DBF                      0                file containig addresses in various ways: a little                      0                bit more complicated than 1ADDRESS.&.                                   0                                                                                        0 2ADDRESS.NB    compiled macro 2ADDRESS.&.                                              0                                                                                        0 3ADDRESS.&     a macro program source example for handling a .DBF                      0                file containig addresses in various ways: a little                      0                bit more complicated than 2ADDRESS.&.                                   0                                                                                        0 3ADDRESS.NB    compiled macro 3ADDRESS.&.                                              0                                                                                        0 4ADDRESS.&     a macro program source example for handling a .DBF                      0                file containig addresses in various ways: a little                      0                bit more complicated than 3ADDRESS.&.                                   0                                                                                        0 4ADDRESS.NB    compiled macro 4ADDRESS.&.                                              0                                                                                        0 ABIORITM.&     a macro program source example for calculating the                      0                personal bio wave.                                                      0                                                                                        0 ABIORITM.NB    compiled macro ABIORITM.&.                                              0                                                                                        0 _STUDENT.DBF   a  .DBF  file  used  inside  the  BSTUDENT   macro                      0                example.                                                                0                                                                                        0 _STUDENT.NTX   index file used for _STUDENT.DBF.                                       0                                                                                        0 _STUDSTD.DBF   a  .DBF  file  used  inside  the  BSTUDENT   macro                      0                example.                                                                0                                                                                        0 _STUDENT.RPT   a RPT  text  file  used to  print  data  contained                      0                inside _STUDENT.DBF.                                                    0                                                                                        0 _STUDSTD.RPT   a RPT  text  file  used to  print  data  contained                      0                inside _STUDSTD.DBF.                                                    0                                                                                        0 BSTUDENT.&     a  macro  program  source  example  for   students                      0                evaluation:  a  description   about  students   is                      0                obtained linking other standard descriptions.                           0                                                                                        0 BSTUDENT.NB    compiled macro BSTUDENT.&.                                              0 CBATMAKE.&     a macro program source example to generate a batch                      0                file to be used to back up an entire hard disk.                         0                                                                                        0 CBATMAKE.NB    compiled macro CBATMAKE.&.                                              0                                                                                        0 BROWSE.&       a  macro  program  source  example  to  start   an                      0                automatic browse.                                                       0                                                                                        0 BROWSE.NB      compiled macro BROWSE.&.                                                0                                                                                        0 BROWSE.BAT     batch file to start a .DBF browse with the  BROWSE                      0                macro program.                                                          0                                                                                        0 MENU.&         a macro program source example for a Dos menu.                          0                                                                                        0 MENU.NB        compiled macro MENU.&.                                                  0                                                                                        0 MENU.BAT       batch file to use the MENU macro.                                       0                                                                                        0 The file NBASExx6.ZIP contains  also the following files:  source                      0 code for the version 96.06.16.                                                         0                                                                                        0 NB.PRG         the main source file for version 96.06.16.                              0                                                                                        0 NB_REQ.PRG     the source file conatinig links to all the                              0                standard functions.                                                     0                                                                                        0 NB.LNK         link file for compilation.                                              0                                                                                        0 NB_NRMAL.RMK   rmake file to compile with RTLink.                                      0                                                                                        0 NB_EXOSP.RMK   rmake file to compile with Exospace.                                    0                                                                                        0 NB_RUNTI.RMK   rmake file to compile with RTLink defining RUNTIME                      0                to obtain a small nB runtime version.                                   0                                                                                        0 MACRO.LNK      link file to compile and link a macro.                                  0                                                                                        0 MACRO.RMK      rmake file to compile and link a macro.                                 0                                                                                        0 The file NBASExx7.ZIP contains  also the following files:  source                      0 code for the current version.                                                          0                                                                                        0 NB.PRG         the main source file.                                                   0                                                                                        0 REQUEST.PRG    the source  file conatinig  links to  all the  CA-                      0                Clipper functions.                                                      0                                                                                        0 STANDARD.PRG   the source file for standard functions.                                 0                                                                                        0 EXTRA.PRG      the source file for other standard functions.                           0                                                                                        0 STANDARD.CH    general include  file that  subtitues all  include                      0                file   normally    used   for    normal    Clipper                      0                compilations.                                                           0                                                                                        0 NB.CH          include file specific for nB.                                           0                                                                                        0 NB.LNK         link file for compilation.                                              0                                                                                        0 NB_RUNTI.LNK   link file for runtime compilation.                                      0                                                                                        0 NB_NRMAL.RMK   rmake file to compile with RTLink.                                      0                                                                                        0 NB_EXOSP.RMK   rmake file to compile with Exospace.                                    0                                                                                        0 NB_RUNTI.RMK   rmake file to compile with RTLink defining RUNTIME                      0                to obtain a small nB runtime version.                                   0                                                                                        0 MACRO.CH       include file to compile and link a macro.                               0                                                                                        0 MACRO.LNK      link file to compile and link a macro.                                  0                                                                                        0 MACRO.RMK      rmake file to compile and link a macro.                                 0                                                                                        0 CLIPMOUSE.ZIP  a simple Freeware library for mouse support  under                      0                Clipper (c) 1992 Martin Brousseau.                                      0                                                                                        0                                                           <Index>                      2                                                                                        0 ##HOW TO USE nB##                                                                      0 ================================================================                       0                                                                                        0 nB normal syntax is:                                                                   0                                                                                        0 nB [<nB_parameters>] [<macro_filename>] [<macro_parameters>]                           0                                                                                        0 To run nB, just type the word "NB" and press [Enter] to  execute.                      0 It will run in command mode, this means that it will look like an                      0 old xBASE command prompt.                                                              0                                                                                        0 To run  the program  as a  macro interpreter,  type the  word  NB                      0 followed from  the macro  file name  with extention  (no  default                      0 extention is supposed). If parameters are given, after the  macro                      0 file name, these will be  available inside the public  variables:                      0 c_Par1, c_Par2, ..., c_Par9. c_Par0  will contain the macro  file                      0 name (see the macro file  BROWSE.&). nB will terminate  execution                      0 when the macro terminates.                                                             0                                                                                        0 These parameters are available for nB:                                                 0                                                                                        0 -c   Suppress the copyright notice. It  is usefull when using  nB                      0      for macro interpretation.                                                         0                                                                                        0 -w   Suppress the "Wait-Wheel" if not desired. It is the  "Wheel"                      0      that appears  at top-left  when a  macro is  interpreted  or                      0      other long elaborarions are executed.                                             0                                                                                        0 -?   Shows a short help.                                                               0                                                                                        0                                                                                        0                                                                                        0 nB macro "compilation" syntax is:                                                      0                                                                                        0 nB -m <source_macro_filename> [<destination_macro_filename>]                           0                                                                                        0 With   the    -m    parameter,   nB    "compiles"    the    ascii                      0 <source_macro_filename> into <destination_macro_filename>.                             0                                                                                        0                                                           <Index>                      2                                                                                        0 ##STATUS LINE##                                                                        0 ================================================================                       0                                                                                        0 nB shows a "status  line" at the  top of the  screen when the  nB                      0 command prompt  or  the menu  system  is active.  It  shows  some                      0 important informations.                                                                0                                                                                        0 | |DBFNTX    ||*|  1|ADDRESS   |     1/     4|ADDRESS.NTX |                            0  |  |          |  |    |             |      |                                          0  |  |          |  |    |             |      |                                          0  |  |          |  |    |             |    Last record (7).                             0  |  |          |  |    |             |                                                 0  |  |          |  |    |           Record pointer position (6).                        0  |  |          |  |    |                                                               0  |  |          |  |   Active Alias (5).                                                0  |  |          |  |                                                                    0  |  |          |  Current Work Area (4)                                                0  |  |          |                                                                       0  |  |          Deleted record appearence (3)                                           0  |  |                                                                                  0  |  Actual default database driver (2).                                                0  |                                                                                     0  Macro recorder indicator (1).                                                         0                                                                                        0                                                                                        0 |     1/     4|ADDRESS.NTX |  1|ADDRESS   |                                            0                 |             |   |                                                    0                 |             |   |                                                    0                 |             |  Order Tag Name (10)                                   0                 |             |                                                        0                 |           Order number (9)                                           0                 |                                                                      0                Order Bag name (8)                                                      0                                                                                        0 (1)  This is  the place  for the  macro recorder  indicator.  The                      0      symbol used is "&".                                                               0      BLANK - means that the macro recorder is OFF;                                     0      & blink - means that the macro recorder is ON;                                    0      & - means that the macro recorder is PAUSED.                                      0                                                                                        0 (2)  The  name  of  the  default  database  driver.  It  is   not                      0      necessarily the database driver for the active Alias; it  is                      0      only the  database driver  that will  be used  for the  next                      0      open/create operation.                                                            0                                                                                        0 (3)  An asterisk (*) at this position indicates that SET  DELETED                      0      is OFF. This  means that deleted  records are not  filtered.                      0      When a BLANK is  in this place, SET  DELETED is ON, so  that                      0      deleted records are filtered.                                                     0                                                                                        0 (4)  The active work area number, that is, the area of the active                      0      Alias.                                                                            0                                                                                        0 (5)  The active  Alias name.  Note that  the  Alias name  is  not                      0      necessarily equal to the .DBF file name.                                          0                                                                                        0 (6)  The actual record pointer position for the active Alias.                          0                                                                                        0 (7)  The number of records contained inside the active Alias.                          0                                                                                        0 (8)  The Order Bag name; that is the index file name.                                  0                                                                                        0 (9)  The order number.                                                                 0                                                                                        0 (10) The order tag (name). When  DBFNTX database driver is  used,                      0      it correspond to the Order Bag name.                                              0                                                                                        0                                                           <Index>                      2                                                                                        0 ##THE DOT LINE##                                                                       0 ================================================================                       0                                                                                        0 Starting nB without parameters, the dot line appears.                                  0 This is the  place where  commands in  form of  functions may  be                      0 written and executed like a old xBase.                                                 0                                                                                        0 The functions written inside the  command line that don't  result                      0 in an error, are saved inside  a history list. This history  list                      0 may be recalled with [F2] and then the selected history line  may                      0 be reused (eventually  edited). Key  [up]/[down] may  be used  to                      0 scroll inside the history list without showing the all list  with                      0 [F2].                                                                                  0                                                                                        0 [Enter] is used to tell nB to execute the written function.                            0                                                                                        0 As the dot line is not an easy way to use such a program, a  menu                      0 is available pressing  [F10] or [Alt]+[M].  The [F10] key  starts                      0 the ASSIST() menu.  This menu may  be started  also entering  the                      0 name of the function: "ASSIST()".                                                      0                                                                                        0 nB includes  a simple  built-in text  editor:  DOC(). It  may  be                      0 started from the  dot line entering  "DOT()". No  special key  is                      0 dedicated to start this function.                                                      0                                                                                        0                                                 <The Menu System>                   1323                                           <The Text Editor Doc()>                   2700                                                           <Index>                      2                                                                                        0 ##THE MENU SYSTEM##                                                                    0 ================================================================                       0                                                                                        0 The nB menu  system appears  differently depending  on the  place                      0 where it is  "called". When  available, the  menu system  appears                      0 pressing [Alt]+[M] or [F10].                                                           0                                                                                        0 The Menu system is organised into:                                                     0                                                                                        0 *    Horizontal menu,                                                                  0                                                                                        0 *    Vertical menu,                                                                    0                                                                                        0 *    Pop-up menu.                                                                      0                                                                                        0                                                                                        0                                                                                        0 The  horizontal   menu   contains  selectable   items   organised                      0 horizontally:                                                                          0                                                                                        0      One Two Three Four Five                                                           0                                                                                        0                                                                                        0                                                                                        0 *    The cursor may be moved on a different position using  arrow                      0      keys [Left]/[Right].                                                              0                                                                                        0 *    [Esc] terminates the menu.                                                        0                                                                                        0 *    [Enter] opens a vertical menu.                                                    0                                                                                        0                                                                                        0                                                                                        0 The vertical menu contains selectable items organised vertically:                      0                                                                                        0                                                                                        0       One Two Three Four Five                                                          0      ------------                                                                      0      |First     |                                                                      0      |Second    |                                                                      0      |Third     |                                                                      0      ------------                                                                      0                                                                                        0 *    The cursor may be moved on a different position using  arrow                      0      keys [Up]/[Down].                                                                 0                                                                                        0 *    The arrow keys [Left]/[Right] change the Vertical menu.                           0                                                                                        0 *    [Esc] closes the vertical the menu.                                               0                                                                                        0 *    [Enter] starts the selected menu function.                                        0                                                                                        0                                                                                        0                                                                                        0 The vertical menu contains selectable items organised vertically:                      0                                                                                        0                                                                                        0       One Two Three Four Five                                                          0      ------------                                                                      0      |First     |                                                                      0      |Second   >|---------------                                                       0      |Third     |Sub function 1|                                                       0      -----------|Sub function 2|                                                       0                 ----------------                                                       0                                                                                        0 *    The cursor may be moved on a different position using  arrow                      0      keys [Up]/[Down].                                                                 0                                                                                        0 *    [Esc] closes the pop-up the menu.                                                 0                                                                                        0 *    [Enter] starts the selected menu function.                                        0                                                                                        0                                                                                        0                                                                                        0 It follows the menu system description.                                                0                                                                                        0                                                           <Index>                      2                                                 <The Menu System>                   1323                                                       <Menu File>                   1409                                                       <Menu Edit>                   1826                                                     <Menu Report>                   2023                                                        <Menu Htf>                   2324                                                      <Menu Macro>                   2433                                                       <Menu Info>                   2538                                                        <Menu Doc>                   2571                                                                                        0 ##MENU FILE##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 The menu File contains important function on .DBF file,  indexes,                      0 relations and Replaceable database drivers.                                            0                                                                                        0 For database  files  are  considered  two  aspects:  the  fisical                      0 aspect, and the  logical Alias. When  a .DBF file  is opened,  it                      0 becames a Alias.                                                                       0                                                                                        0 Indexes are considered as index files and index orders.                                0                                                                                        0 Here is a brief menu function description.                                             0                                                                                        0 CHANGE DIRECTORY              changes  the   actual   drive   and                      0                               directory.                                               0                                                                                        0 FILE .DBF                     contains a  pop-up  menu  for  .DBF                      0                               operations.                                              0                                                                                        0 New .DBF                      creates a new .DBF file.                                 0                                                                                        0 Modify .DBF structure         modifies a .DBF file structure.                          0                                                                                        0 Open .DBF                     opens a .DBF file.                                       0                                                                                        0 FILE .NTX                     contains a pop-up menu for phisical                      0                               indexes operations.                                      0                                                                                        0 New .NTX / new TAG            creates a new index  file or a  new                      0                               order.                                                   0                                                                                        0 Open a .NTX file              opens an index.                                          0                                                                                        0 ALIAS                         contains a pop-up menu for  logical                      0                               databases (Alias) operations.                            0                                                                                        0 Select                        selects an Alias or a new area from                      0                               the available ones.                                      0                                                                                        0 Display structure             displays    the    active     Alias                      0                               structure.                                               0                                                                                        0 Close active Alias            closes the active Alias (the  Alias                      0                               of the actual area).                                     0                                                                                        0 Close all Aliases             close  all   Aliases  (all   active                      0                               areas).                                                  0                                                                                        0 ORDER                         contains a pop-up menu for  logical                      0                               indexes (orders).                                        0                                                                                        0 Order list rebuild            makes a reindex.                                         0                                                                                        0 Order set focus               selects an order  from the list  of                      0                               available ones.                                          0                                                                                        0 Order list clear              closes all  indexes  associated  to                      0                               the active Alias.                                        0                                                                                        0 RELATION                      contains   a   pop-up   menu    for                      0                               relations   (links    with    other                      0                               Aliases).                                                0                                                                                        0 Set relation                  creates a new relation.                                  0                                                                                        0 Clear relation                releases  all   relation  for   the                      0                               active Alias.                                            0                                                                                        0 RDD DEFAULT                   contains   a   pop-up   menu    for                      0                               Replaceable     Database     Driver                      0                               defaults.                                                0                                                                                        0 Show actual RDD default       shows the active database driver.                        0                                                                                        0 Set defauld RDD               changes the default database driver                      0                               showing  the  list  of   availables                      0                               ones.                                                    0                                                                                        0                                                           <Index>                      2                                                 <The Menu System>                   1323                                                       <Menu File>                   1409                                                       <Menu Edit>                   1826                                                     <Menu Report>                   2023                                                        <Menu Htf>                   2324                                                      <Menu Macro>                   2433                                                       <Menu Info>                   2538                                                        <Menu Doc>                   2571                                                                                        0 ##FILE - NEW .DBF##                                                                    0 ................................................................                       0                                                                                        0 A .DBF file  is a  table where  columns, called  Fields, must  be                      0 specified and  lines,  called  records,  are  added,  edited  and                      0 deleted by the program.                                                                0                                                                                        0 Field caracteristics are:                                                              0                                                                                        0 NAME      the field name must be unique inside the same file,  it                      0           is composed of letters, number and underscore (_),  but                      0           it must  start  with  a  letter  and  it  is  not  case                      0           sensitive.                                                                   0                                                                                        0 TYPE      the field type  determinates the  type of  data it  can                      0           hold.                                                                        0                                                                                        0 LENGTH    is the  field total  length in  characters; it  doesn't                      0           matter of the type of data.                                                  0                                                                                        0 DECIMAL   is the length  of positions after  decimal point.  This                      0           information is  used normally  for numeric  fields.  In                      0           this case, take note that the DECIMAL length, toogether                      0           with the  decimal point,  will subtract  space for  the                      0           interger part of  the number from  the total LENGTH  of                      0           the filed.                                                                   0                                                                                        0 Field Types:                                                                           0                                                                                        0 C Character    it is a text field long LENGTH characters.                              0                                                                                        0 N Numeric      it is a numeric field long LENGTH characters  with                      0                DECIMAL characters  for  decimal  positions.  Note                      0                that if LENGHT is 4 and  DECIMAL is 0 (zero),  the                      0                field may conatain integers from -999 to 9999; but                      0                if LENGTH  is  4  and DECIMAL  1,  the  field  may                      0                contain numbers from  -9.9 to  99.9: two  position                      0                for  the  interger  part,  one  position  for  the                      0                decimal point and one position for decimal.                             0                                                                                        0 D Date         it is a  date field: it  contains only dates;  the                      0                length  should   not  be   specified  as   it   is                      0                automatically 8.                                                        0                                                                                        0 L Logic        it is a logical (boolean) field: it contains  only                      0                TRUE,  represented  by  "Y"  or  "T",  or   FALSE,                      0                represented by "N" or "F". The lenngth should  not                      0                be specified as it is automatically 1.                                  0                                                                                        0 M Memo         it is a character field with unknown dimention. It                      0                is  recorded  into  a  parallel  file  with   .DBT                      0                extention. The original  .DBF file  holds a  space                      0                for a pointer inside the .DBT file. The length  of                      0                a Memo field is  automatically 10 and is  referred                      0                to the memo pointer.                                                    0                                                                                        0 After the function "NEW .DBF" is selected, a table for the  field                      0 specifications appears.                                                                0                                                                                        0 +--------------------------------+                                                     0 |    Database file structure     |                                                     0 |                                |                                                     0 | Field Name Type Length Decimal |                                                     0 |--------------------------------|                                                     0 |           |    |     0|      0 |                                                     0 |           |    |      |        |                                                     0 |           |    |      |        |                                                     0 |           |    |      |        |                                                     0 |           |    |      |        |                                                     0 |           |    |      |        |                                                     0 |           |    |      |        |                                                     0                                                                                        0 To navigate and to edit the tabel use the following keys:                              0                                                                                        0 [Up]/[Down]/[Left][Right]     move the cursor  one position  (up,                      0                               down, left or right);                                    0                                                                                        0 [PgUp]                        move to previous screen page;                            0                                                                                        0 [PgDn]                        move to next screen page;                                0                                                                                        0 [Ctrl]+[PgUp]                 move to top of table;                                    0                                                                                        0 [Ctrl]+[PgDn]                 move to bottom of table;                                 0                                                                                        0 [Ctrl]+[Home]                 move to first column;                                    0                                                                                        0 [Ctrl]+[End]                  move to last column;                                     0                                                                                        0 [Ctrl]+[Enter]                append a new empty line;                                 0                                                                                        0 [Ctrl]+[F1]                   delete (cut) the  current line  and                      0                               save a copy into the "clipboard";                        0                                                                                        0 [Ctrl]+[F2]                   copy current  line into  the  table                      0                               "clipboard";                                             0                                                                                        0 [Ctrl]+[F3]                   insert (paste) the  content of  the                      0                               "clipboard"    in    the    current                      0                               position;                                                0                                                                                        0 [Enter]                       start  editing   in   the   current                      0                               position;                                                0                                                                                        0 [Esc]                         terminate;                                               0                                                                                        0 [...]                         any other  key will  be written  in                      0                               the current position.                                    0                                                                                        0 When the editing is terminated, press [Esc] and a dialog box will                      0 ask for the file name and the RDD.                                                     0                                                                                        0 xBase files (.DBF) are not all  equal, this way, when a new  .DBF                      0 file si created, the RDD (Replaceable Database Driver) is  asked.                      0 The normal RDD is DBFNTX, the one used by CA-Clipper.                                  0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - MODIFY .DBF STRUCTURE##                                                       0 ................................................................                       0                                                                                        0 The modification of a .DBF file structure is a delicate matter if                      0 it contains data.                                                                      0                                                                                        0 In fact, it  is a  data transfer  from a  source .DBF  file to  a                      0 destination .DBF file with a  different structure. This way,  the                      0 destination .DBF will  be updated only  for the  fields with  the                      0 same name of the source one.  The position may be different,  but                      0 names cannot be changed (not so easyly).                                               0                                                                                        0 Mistakes may be dangerous, so, before doing it, it is  recommened                      0 a backup copy of the origina .DBF file.                                                0                                                                                        0 See also <File - New .Dbf> for more informations.                                   1498                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - OPEN .DBF##                                                                   0 ................................................................                       0                                                                                        0 When a .DBF file  is opend, it becames  a Alias, a logical  file,                      0 pleced inside  a work  area. The  same .DBF  file may  be  opened                      0 inside different areas with different Alias names.                                     0                                                                                        0 The required information to open the file are:                                         0                                                                                        0 FILENAME  the phisical file name.                                                      0                                                                                        0 ALIAS     the  alias   name.   If  not   assigned,   it   becames                      0           automatically the same of FILENAME without extention.                        0                                                                                        0 RDD       the Replaceable  Database Driver  to use  to access  to                      0           this file.                                                                   0                                                                                        0 SHARED    a logical  value:  TRUE means  that  the file  will  be                      0           accessible to other users, FALSE means use exclusive.                        0                                                                                        0 READ ONLY a logical value: TRUE means that the file will be  only                      0           readable and  no modification  will be  allowed,  FALSE                      0           means that no restriction on editing will be made.                           0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - NEW .NTX / NEW TAG##                                                          0 ................................................................                       0                                                                                        0 If the active area is used we have an active Alias. In this  case                      0 a index may  be created. The  index is a  way to  see the  active                      0 Alias ordered without changing the phisical position of records.                       0                                                                                        0 There are two words to understand: ORDER and INDEX-BAG. The index                      0 bag is  the file  that contains  the  information on  the  record                      0 ordering, the order is the rule followed to order the records.  A                      0 index bag  may  contains one  or  more orders  depending  on  the                      0 Replaceable Database Driver in use.                                                    0                                                                                        0 Typical .NTX file are index bag containing only one order.                             0                                                                                        0 Depending on the RDD in use the following field may be filled.                         0                                                                                        0 INDEX FILENAME      this is the name of the index bag.                                 0                                                                                        0 KEY EXPRESSION      the expression that defines the rule for  the                      0                     record ordering.                                                   0                                                                                        0 ORDER NAME          this is the nane to  give to the order  (tag)                      0                     when the  RDD permits  to  have a  index  bag                      0                     containing more than one order. In the  other                      0                     case, the index  bag name  correspond to  the                      0                     order name.                                                        0                                                                                        0 FOR EXPRESSION      a FOR  condition  to  filter  records  before                      0                     indexing.                                                          0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - OPEN INDEX##                                                                  0 ................................................................                       0                                                                                        0 If a  index file  already exists,  it can  be associated  to  the                      0 active Alias simply opening it.                                                        0                                                                                        0      Take note that the system is not able to verify if  the                           0      index belong the  active Alias and  if it is  not so  a                           0      error will result.                                                                0                                                                                        0 INDEX NAME     is the name of the index bag file to open.                              0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - SELECT##                                                                      0 ................................................................                       0                                                                                        0 Only one  may be  the active  Alias and  with this  function  the                      0 active Alias may be changed choosing from the list of used aread.                      0                                                                                        0                                                                                        0 Selecting the area number zero, no Alias is active.                                    0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - DISPLAY STRUCTURE##                                                           0 ................................................................                       0                                                                                        0 With this function the active Alias structure may be viewed.                           0                                                                                        0 ##FILE - CLOSE ACTIVE ALIAS##                                                          0 ................................................................                       0                                                                                        0 Selecting this function the active Alias is closed. That is:  the                      0 .DBF file and evenutual indexes are closed.                                            0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - CLOSE ALL ALIASES##                                                           0 ................................................................                       0                                                                                        0 With this function all Aliases are closed.                                             0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - ORDER LIST REBUILD##                                                          0 ................................................................                       0                                                                                        0 This function rebuild  the indexes opened  and associated to  the                      0 active Alias.                                                                          0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - ORDER SET FOCUS##                                                             0 ................................................................                       0                                                                                        0 This function permits to change  the active order selecting  form                      0 the ones opened and associated to the active Alias.                                    0                                                                                        0 ##FILE - ORDER LIST CLEAR##                                                            0 ................................................................                       0                                                                                        0 This function closes all orders associated to the active Alias.                        0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - SET RELATION##                                                                0 ................................................................                       0                                                                                        0 This function permits to establish a relation between a Alias and                      0 a Child Alias showing as a reslut a unique database.                                   0                                                                                        0 CHILD          is the Alias name to connect to the active Alias.                       0                                                                                        0 EXPRESSION     is the relation expression  that specify the  rule                      0                for the relation. The value of this expression  is                      0                the key to access the  Child Alias: if this  Child                      0                Alias is accessed  without index, it  must be  the                      0                record number, if this Child Alias is accessed via                      0                index, it must be a valid index key.                                    0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - CLEAR RELATION##                                                              0 ................................................................                       0                                                                                        0 This function  eliminates any  relation that  originate form  the                      0 active Alias.                                                                          0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##FILE - SHOW ACTUAL RDD DEFAULT##                                                     0 ................................................................                       0                                                                                        0 It simply shows the actual Replaceable Database Driver.                                0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2 ##FILE - SET DEFAULT RDD##                                                             0 ................................................................                       0                                                                                        0 Select a new default Replaceable Database Driver.                                      0                                                                                        0                                                       <Menu File>                   1409                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MENU EDIT##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 The menu Edit contains functions to  access data from the  active                      0 Alias (the actual area).                                                               0                                                                                        0 VIEW           browse the active  Alias with eventual  relations,                      0                without the possibility to modify it.                                   0                                                                                        0 EDIT/BROWSE    browse the active Alias with eventual relations.                        0                                                                                        0 REPLACE        interactive replace on the active Alias.                                0                                                                                        0 RECALL         interactive recall of  previously deleted  records                      0                on the active Alias.                                                    0                                                                                        0 DELETE         interactive delete of records on the active Alias.                      0                                                                                        0                                                                                        0 PACK           packs the  active  Alias eliminating  the  deleted                      0                records on the active Alias. Note that the  active                      0                Alias must be opened in exclusive mode (not shared                      0                and not read only ).                                                    0                                                                                        0                                                           <Index>                      2                                                 <The Menu System>                   1323                                                       <Menu File>                   1409                                                       <Menu Edit>                   1826                                                     <Menu Report>                   2023                                                        <Menu Htf>                   2324                                                      <Menu Macro>                   2433                                                       <Menu Info>                   2538                                                        <Menu Doc>                   2571                                                                                        0 ##EDIT - VIEW##                                                                        0 ................................................................                       0                                                                                        0 This function permits you to view the active Alias with  eventual                      0 relations as a table.                                                                  0                                                                                        0 No edit is allowed.                                                                    0                                                                                        0 To navigate the table use the following keys.                                          0                                                                                        0 [Enter]             start field editing.                                               0                                                                                        0 [PgUp]              show previous screen page.                                         0                                                                                        0 [PgDn]              show next screen page.                                             0                                                                                        0 [Ctrl]+[PgUp]       show top of Alias.                                                 0                                                                                        0 [Ctrl]+[PgDn]       show bottom of file.                                               0                                                                                        0 [Ctrl]+[Home]       show the first column.                                             0 [Ctrl]+[End]        show last column.                                                  0                                                                                        0                                                       <Menu Edit>                   1826                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##EDIT - EDIT/BROWSE##                                                                 0 ................................................................                       0                                                                                        0 This function permits you to edit the active Alias with  eventual                      0 relations as a table.                                                                  0                                                                                        0 To navigate and edit the table use the following keys.                                 0                                                                                        0 [Enter]             start field editing.                                               0                                                                                        0 [PgUp]              show previous screen page.                                         0                                                                                        0 [PgDn]              show next screen page.                                             0                                                                                        0 [Ctrl]+[PgUp]       show top of Alias.                                                 0                                                                                        0 [Ctrl]+[PgDn]       show bottom of file.                                               0                                                                                        0 [Ctrl]+[Home]       show the first column.                                             0                                                                                        0 [Ctrl]+[End]        show last column.                                                  0                                                                                        0 [Ctrl]+[Enter]      append a new empty record.                                         0                                                                                        0 [Ctrl]+[F2]         copy the current record.                                           0                                                                                        0 [Ctrl]+[F3]         append and paste a record.                                         0                                                                                        0 [Ctrl]+[F4]         paste a previously copyed record, overwriting                      0                     the content of the current one.                                    0                                                                                        0 [Ctrl]+[Y]          delete or recall the current record.                               0                                                                                        0 [Ctrl]+[Del]        delete or recall the current record.                               0                                                                                        0 When a memo field is edited:                                                           0                                                                                        0 [Esc]               cancel and close the memo window.                                  0                                                                                        0 [Ctrl]+[Y]          line delete."                                                      0                                                                                        0 [Ctrl]+[W]          save and close the memo window                                     0                                                                                        0                                                       <Menu Edit>                   1826                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##EDIT - REPLACE##                                                                     0 ................................................................                       0                                                                                        0 The content of a Field of  the active Alias may be replaced  with                      0 an expression.                                                                         0                                                                                        0 The required data is:                                                                  0                                                                                        0 FIELD TO REPLACE              the Field name to be replaced.                           0                                                                                        0 NEW VALUE EXPRESSION          the expression that obtain the  new                      0                               value for the selected Field.                            0                                                                                        0 WHILE EXPRESSION              the WHILE condition expression: the                      0                               replacement  continue  until   this                      0                               expression   results   True.    The                      0                               constant ".T." is ever True and  is                      0                               the default.                                             0                                                                                        0 FOR EXPRESSION                the FOR  condition expression:  the                      0                               replacement is made for all records                      0                               that  satisfy  the  condition.  The                      0                               constant ".T." is ever True and  is                      0                               the default.                                             0                                                                                        0                                                       <Menu Edit>                   1826                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##EDIT - RECALL##                                                                      0 ................................................................                       0                                                                                        0 The records signed for deletion (deleted but still there), may be                      0 recalled (undeleted).                                                                  0                                                                                        0 The required data is:                                                                  0                                                                                        0 WHILE EXPRESSION              the WHILE condition expression: the                      0                               record recall  continue until  this                      0                               expression   results   True.    The                      0                               constant ".T." is ever True and  is                      0                               the default.                                             0                                                                                        0 FOR EXPRESSION                the FOR  condition expression:  the                      0                               record  recall  is  made  for   all                      0                               records that satisfy the condition.                      0                               The constant ".T." is ever True and                      0                               is the default.                                          0                                                                                        0                                                       <Menu Edit>                   1826                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##EDIT - DELETE##                                                                      0 ................................................................                       0                                                                                        0 Deletes (sign for deletion)  a group of  record depending on  the                      0 required conditions.                                                                   0                                                                                        0 The required data is:                                                                  0                                                                                        0 WHILE EXPRESSION              the WHILE condition expression: the                      0                               record deletion continue until this                      0                               expression   results   True.    The                      0                               constant ".T." is ever True and  is                      0                               the default.                                             0                                                                                        0 FOR EXPRESSION                the FOR  condition expression:  the                      0                               record deletion  is  made  for  all                      0                               records that satisfy the condition.                      0                               The constant ".T." is ever True and                      0                               is the default.                                          0                                                                                        0                                                       <Menu Edit>                   1826                                                 <The Menu System>                   1323                                                           <Index>                      2 ##EDIT - PACK##                                                                        0 ................................................................                       0                                                                                        0 This function  eliminates definitely  records previously  deleted                      0 (signed for deletion).                                                                 0                                                                                        0 It may work  only if  the active  Alias was  opened in  exclusive                      0 mode.                                                                                  0                                                                                        0                                                       <Menu Edit>                   1826                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MENU REPORT##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 The menu Report  contains functions for  data report (print).  In                      0 particular, label files .LBL and report file .RPT may be  created                      0 and used for printing. There is  also another way to print,  with                      0 the RPT() system that is available inside the nB internal  editor                      0 DOC().                                                                                 0                                                                                        0 DBGOTOP()                     moves the  record pointer  for  the                      0                               active Alias at  the first  logical                      0                               record.                                                  0                                                                                        0 NEW LABEL                     creates  a  new  label  form   file                      0                               (.LBL).                                                  0                                                                                        0 MODIFY LABEL                  modifies a label form file (.LBL).                       0                                                                                        0 LABEL FORM                    prints  labels  using  the   active                      0                               Alias.                                                   0                                                                                        0 NEW REPORT                    creates  a  new  report  form  file                      0                               (.FRM).                                                  0                                                                                        0 MODIFY REPORT                 modifies a report form file (.FRM).                      0                                                                                        0                                                                                        0 REPORT FORM                   prints a  report using  the  active                      0                               Alias.                                                   0                                                                                        0 CREATE/MODIFY/PRINT TEXT      activates the  function DOC()  that                      0                               is a text  editor with the  ability                      0                               to include Fields, form the  active                      0                               Alias.                                                   0                                                                                        0                                                           <Index>                      2                                                 <The Menu System>                   1323                                                       <Menu File>                   1409                                                       <Menu Edit>                   1826                                                     <Menu Report>                   2023                                                        <Menu Htf>                   2324                                                      <Menu Macro>                   2433                                                       <Menu Info>                   2538                                                        <Menu Doc>                   2571                                                                                        0 ##REPORT - NEW LABEL##                                                                 0 ................................................................                       0                                                                                        0 With this function  can be created  a standard  label file  (.LBL                      0 under the dBaseIII standard).                                                          0                                                                                        0 Labels may be printed in more than one column and can contain  16                      0 lines maximum.                                                                         0                                                                                        0 he label data is the following.                                                        0                                                                                        0 REMARK    a label remark that will not be printed.                                     0                                                                                        0 HEIGHT    the label vertical dimension.                                                0                                                                                        0 WIDTH     the label horizontal dimension.                                              0                                                                                        0 MARGIN    the left margin in characters.                                               0                                                                                        0 LINES     the vertical spacing between labels.                                         0                                                                                        0 SPACES    the horizzontal spacing between labels in characters.                        0                                                                                        0 ACROSS    the number of label columns.                                                 0                                                                                        0 LINE 1    The first line inside labels.                                                0                                                                                        0 ...                                                                                    0                                                                                        0 LINE 16   The 16th line inside labels.                                                 0                                                                                        0 The number of lines  inside the lables depend  on the HEIGHT  and                      0 the maximum value is 16.                                                               0                                                                                        0 The  label  lines  can  contain  constant  string  and/or  string                      0 expressions.                                                                           0                                                                                        0 See the example below.                                                                 0                                                                                        0                                                                                        0   Margin                                                                               0 <-->                                                                                   0     XXXXXXX|XXXXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XXXXXXX|XXXXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XXXX Height XXXX    <--- Width ---->    XXXXXXXXXXXXXXXX                           0     XXXXXXX|XXXXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XXXXXXX|XXXXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0                            |                                                           0                            | Lines      <-->                                           0                            |              Spaces                                       0     XX Line 1 XXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XX Line 2 XXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XX Line 3 XXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XX Line 4 XXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XX Line 5 XXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0                                                                                        0                                                                                        0                                                                                        0     XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0     XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXX                           0             |                   |                   |                                  0             |                   |                   |                                  0             |                   |                   |                                  0             +---------------- Across ---------------+                                  0                                                                                        0                                                     <Menu Report>                   2023                                                 <The Menu System>                   1323                                                           <Index>                      2 ##REPORT - MODIFY LABEL##                                                              0 ................................................................                       0                                                                                        0 This function permits you to modify a label file.                                      0                                                                                        0 See <Report - New Label> for more informations.                                     2068                                                                                        0                                                     <Menu Report>                   2023                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##REPORT - LABEL FORM##                                                                0 ................................................................                       0                                                                                        0 This function permits you to print labels with the data  provided                      0 by the active Alias: one lable each record.                                            0                                                                                        0 The following data is required.                                                        0                                                                                        0 LABEL FILENAME      the label filename.                                                0                                                                                        0 WHILE               the WHILE condition: the lable printing  goes                      0                     on as long as this condition remain True.                          0                                                                                        0 FOR                 the FOR condition: only the records from  the                      0                     active Alias that  satisfy the condition  are                      0                     used for the label print.                                          0                                                                                        0                                                     <Menu Report>                   2023                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##REPORT - NEW REPORT##                                                                0 ................................................................                       0                                                                                        0 This function permits you to create  a standard report form  file                      0 (.FRM under the dBaseIII standard).                                                    0                                                                                        0 The informations  to create  a .FRM  file  are divided  into  two                      0 parts:                                                                                 0                                                                                        0 *    the head and groups,                                                              0                                                                                        0 *    * the columns.                                                                    0                                                                                        0 The  first  part:  head   and  groups,  requires  the   folliwing                      0 informations:                                                                          0                                                                                        0 PAGE WIDTH                    the page width in characters.                            0                                                                                        0 LINES PER PAGE                the usable lines per per page.                           0                                                                                        0 LEFT MARGIN                   the left margin in characters.                           0                                                                                        0 DOUBLE SPACED?                double spaced print, yes or no.                          0                                                                                        0 PAGE EJECT BEFORE PRINT?      form feed before print, yes or no.                       0                                                                                        0 PAGE EJECT AFTER PRINT?       form feed after print, yes or no.                        0                                                                                        0 PLAIN PAGE?                   plain page, yes or no.                                   0                                                                                        0 PAGE HEADER                   the page header,  max 4 lines  (the                      0                               separation between one line and the                      0                               other   is   obtained   writing   a                      0                               semicolon, ";").                                         0                                                                                        0 GROUP HEADER                  the group title.                                         0                                                                                        0 GROUP EXPRESSION              the  group   expression  (when   it                      0                               changes, the group changes)                              0                                                                                        0 SUMMARY REPORT ONLY?          only totals and no columns, yes  or                      0                               no.                                                      0                                                                                        0 PAGE EJECT AFTER GROUP?       form feed when  the group  changes,                      0                               yes or no.                                               0                                                                                        0 SUB GROUP HEADER              sub group title.                                         0                                                                                        0 SUB GROUP EXPRESSION          the sub group expression.                                0                                                                                        0 The second  part: columns,  requires the  folliwing  informations                      0 structured in table form:                                                              0                                                                                        0 COLUMN HEADER       column head  description  (it can  contain  4                      0                     lines separated with a semicolon).                                 0                                                                                        0 CONTENT             the column expression.                                             0                                                                                        0 WIDTH               the column witdth.                                                 0                                                                                        0 DEC.                the decimal lengh for numeric columns.                             0                                                                                        0 TOTALS              totals to be calculated,  yes or no  (usefull                      0                     only for numeric columns).                                         0                                                                                        0 To navigate and to edit the tabel use the following keys:                              0                                                                                        0 [Up]/[Down]/[Left][Right]     move the cursor  one position  (up,                      0                               down, left or right);                                    0                                                                                        0 [PgUp]                        move to previous screen page;                            0                                                                                        0 [PgDn]                        move to next screen page;                                0                                                                                        0 [Ctrl]+[PgUp]                 move to top of table;                                    0                                                                                        0 [Ctrl]+[PgDn]                 move to bottom of table;                                 0                                                                                        0 [Ctrl]+[Home]                 move to first column;                                    0                                                                                        0 [Ctrl]+[End]                  move to last column;                                     0                                                                                        0 [Ctrl]+[Enter]                append a new empty line;                                 0                                                                                        0 [Ctrl]+[F1]                   delete (cut) the  current line  and                      0                               save a copy into the "clipboard";                        0                                                                                        0 [Ctrl]+[F2]                   copy current  line into  the  table                      0                               "clipboard";                                             0                                                                                        0 [Ctrl]+[F3]                   insert (paste) the  content of  the                      0                               "clipboard"    in    the    current                      0                               position;                                                0                                                                                        0 [Enter]                       start  editing   in   the   current                      0                               position;                                                0                                                                                        0 [Esc]                         terminate;                                               0                                                                                        0 [...]                         any other  key will  be written  in                      0                               the current position.                                    0                                                                                        0 When the editing is terminated, press [Esc] and a dialog box will                      0 ask for the name to give to the report form file.                                      0                                                                                        0                                                     <Menu Report>                   2023                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##REPORT - MODIFY REPORT##                                                             0 ................................................................                       0                                                                                        0 This function permits you to modify  a standard report form  file                      0 (.FRM under the dBaseIII standard).                                                    0                                                                                        0 For more information see <Report - New Report>.                                     2171                                                                                        0                                                     <Menu Report>                   2023                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##REPORT - REPORT FORM##                                                               0 ................................................................                       0                                                                                        0 This function permits you  to print a report  form with the  data                      0 provided by the active Alias.                                                          0                                                                                        0 The following data is required.                                                        0                                                                                        0 REPORT FORM FILENAME     the label filename.                                           0                                                                                        0 WHILE               the WHILE condition:  the form printing  goes                      0                     on as long as this condition remain True.                          0                                                                                        0 FOR                 the FOR condition: only the records from  the                      0                     active Alias that  satisfy the condition  are                      0                     used for the report form print.                                    0                                                                                        0                                                     <Menu Report>                   2023                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##REPORT - CREATE/MODIFY/PRINT TEXT##                                                  0 ................................................................                       0                                                                                        0 This function activates the text editor.                                               0                                                                                        0 See <Menu Doc> for more informations.                                               2571                                                                                        0                                                     <Menu Report>                   2023                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MENU HTF##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 The menu  Htf helps  on creating  and  accessing the  "Help  Text                      0 Files". This name, help text file, is just the name that I  gived                      0 to it.                                                                                 0                                                                                        0 A text (Ascii) file prepared like this manual may be  transformed                      0 into a "Help Text File" that is a simple text with pointers.                           0 OPEN HELP TEXT FILE opens and browse a "help text file" (.DBF).                        0                                                                                        0 NEW HELP TEXT FILE  generates a new "help text file" (.DBF)  from                      0                     a Ascii file source.                                               0                                                                                        0 NEW HELP TEXT FILE  generates  a  new  HTML  from  a  Ascii  file                      0                     source.                                                            0                                                                                        0                                              <The Help Text File>                   2770                                                           <Index>                      2                                                 <The Menu System>                   1323                                                       <Menu File>                   1409                                                       <Menu Edit>                   1826                                                     <Menu Report>                   2023                                                        <Menu Htf>                   2324                                                      <Menu Macro>                   2433                                                       <Menu Info>                   2538                                                        <Menu Doc>                   2571                                                                                        0 ##HTF - OPEN HELP TEXT FILE##                                                          0 ................................................................                       0                                                                                        0 This function permits to open a Help Text File and browse it. The                      0 Help Text File name is required.                                                       0                                                                                        0                                                        <Menu Htf>                   2324                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##HTF - NEW HELP TEXT FILE##                                                           0 ................................................................                       0                                                                                        0 This function permits to create a new "Help Text File" that is  a                      0 help file under the nB style.                                                          0                                                                                        0 The source is an Ascii file  where three kind of information  are                      0 available: Normal text, Indexes and pointers.                                          0                                                                                        0 Indexes and  Pointers are  word or  phrases delimited  with  user                      0 defined  delimiters;  indexes  are  placed  inside  the  text  to                      0 indicate an  argument, pointers  are placed  inside the  text  to                      0 indicate a reference to indexes.                                                       0                                                                                        0 Inside this manual, indexes are delimited with ## and ##, so  the                      0 titles are here indexes; pointers are delimited with < and >.                       2376                                                                                        0 Only one index per line is allowed, only one pointer per line  is                      0 allowed.                                                                               0                                                                                        0 The Delimiters used  do identify  indexes and  pointers are  user                      0 defined; the _start_ identifyer symbol can be equal to the  _end_                      0 identifyer symbol. The  symbols used for  indexes cannot be  used                      0 for the pointers.                                                                      0                                                                                        0 So, the informations riquired are:                                                     0                                                                                        0 SOURCE TEXT FILENAME     the filename of the text source file.                         0                                                                                        0 DESTINATION FILENAME     the filename  of  the  destination  Help                      0                          Text File (suggested .HLP extention).                         0                                                                                        0 INDEX START CODE         the index start symbol; suggested ##.                         0                                                                                        0 INDEX END CODE           the index end symbol; suggested ##.                           0 POINTER START CODE       the pointer start symbol; suggested <.                        0                                                                                        0 POINTER END CODE         the pointer end symbol; suggested >.                          0                                                                                        0                                                        <Menu Htf>                   2324                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##HTF - NEW HTML FILE##                                                                0 ................................................................                       0                                                                                        0 This function permits to create a new HTML file form a text  file                      0 formatted to obtain a HTF file (See: <htf - new help text file>).                   2362                                                                                        0                                                                                        0 The informations required are:                                                         0                                                                                        0 SOURCE TEXT FILENAME     the filename of the text source file.                         0                                                                                        0 DESTINATION FILENAME     the filename  of  the  destination  Help                      0                          Text File (suggested .HLP extention).                         0                                                                                        0 INDEX START CODE         the index start symbol; suggested ##.                         0                                                                                        0 INDEX END CODE           the index end symbol; suggested ##.                           0                                                                                        0 POINTER START CODE       the pointer start symbol; suggested <.                        0                                                                                        0 POINTER END CODE         the pointer end symbol; suggested >.                          0                                                                                        0 HTML TITLE               the title for the html page.                                  0                                                                                        0                                                        <Menu Htf>                   2324                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MENU MACRO##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 The menu Macro helps on creating  macros (programs) with a  macro                      0 recorder, a macro "compiler" and a macro executor.                                     0                                                                                        0 START|PAUSE RECORDING         starts or pause the macro recorder.                      0                                                                                        0                                                                                        0 SAVE RECORDING                save recorded macro on a macro file                      0                               (Ascii).                                                 0                                                                                        0 ERASE RECORDING               erase the actual recording session.                      0                                                                                        0                                                                                        0 EDIT RECORDING                edits the actual recording.                              0                                                                                        0 MACRO "COMPILATION"           compiles  a  Ascii  macro  into   a                      0                               compiled file.                                           0                                                                                        0 LOAD + EXECUTE MACRO          loads a macro file and executes it:                      0                               it  doesn't  matter  if  it  is   a                      0                               "compiled" macro or a Ascii  macro.                      0                               The  difference  is  the  execution                      0                               speed.                                                   0                                                                                        0                                                           <Macro>                   2819                                                           <Index>                      2                                                 <The Menu System>                   1323                                                       <Menu File>                   1409                                                       <Menu Edit>                   1826                                                     <Menu Report>                   2023                                                        <Menu Htf>                   2324                                                      <Menu Macro>                   2433                                                       <Menu Info>                   2538                                                        <Menu Doc>                   2571                                                                                        0 ##MACRO - START RECORDING##                                                            0 ................................................................                       0                                                                                        0 This function simply  starts or  pause the  macro recording.  The                      0 menu items  that end  with "&",  may be  recorded by  this  macro                      0 recorder.                                                                              0                                                                                        0                                                      <Menu Macro>                   2433                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MACRO - SAVE RECORDING##                                                             0 ................................................................                       0                                                                                        0 A recorded macro may be saved into a ASCII file that may be later                      0 modifyed or simply used as it is. The filename is requested.                           0                                                                                        0                                                      <Menu Macro>                   2433                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MACRO - ERASE RECORDING##                                                            0 ................................................................                       0                                                                                        0 While recording  or when  the macro  recorder  is paused,  it  is                      0 possible to erase all previous recording with this function.                           0                                                                                        0                                                      <Menu Macro>                   2433                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MACRO - EDIT RECORDING##                                                             0 ................................................................                       0                                                                                        0 While recording  or when  the macro  recorder  is paused,  it  is                      0 possible to edit all previous recording, for example adding  more                      0 comments or simply to see what the recorder does.                                      0                                                                                        0                                                      <Menu Macro>                   2433                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MACRO - MACRO COMPILATION##                                                          0 ................................................................                       0                                                                                        0 A macro file (a  program) contained inside a  ASCII file, may  be                      0 compiled into a different file format to speed up execution.  The                      0 source filename and the destination filename are requested.                            0                                                                                        0                                                      <Menu Macro>                   2433                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MACRO - LOAD + EXECUTE MACRO##                                                       0 ................................................................                       0                                                                                        0 A macro  file (a  program)  in ASCII  form  or compiled,  may  be                      0 executed.                                                                              0                                                                                        0 A macro file may require some parameters.                                              0                                                                                        0 This function  asks  for the  macro  filename to  start  and  the                      0 possible parameter to pass to it.                                                      0                                                                                        0                                                      <Menu Macro>                   2433                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##MENU INFO##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 The menu Info is the information menu.                                                 0                                                                                        0 ABOUT                         a brief copyright notice.                                0                                                                                        0 MANUAL BROWSE                 starts the browse of NB.HLP, the nB                      0                               Help Text  File  manual  if  it  is                      0                               present in the current directory or                      0                               it is found  in the  PATH (the  Dos                      0                               SET PATH).                                               0                                                                                        0 [F1] HELP                     [F1] reminder.                                           0                                                                                        0 [F3] ALIAS INFO               [F3] reminder.  It  shows  all  the                      0                               available information on the active                      0                               Alias.                                                   0                                                                                        0 [F5] SET OUTPUT TO            [F5]  reminder.   It  defines   the                      0                               output peripheral or file.                               0                                                                                        0                                                       <Copyright>                    568                                                           <Index>                      2                                                 <The Menu System>                   1323                                                       <Menu File>                   1409                                                       <Menu Edit>                   1826                                                     <Menu Report>                   2023                                                        <Menu Htf>                   2324                                                      <Menu Macro>                   2433                                                       <Menu Info>                   2538                                                        <Menu Doc>                   2571                                                                                        0 ##MENU DOC##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 This menu actually appears only inside the DOC() function, the nB                      0 text editor.                                                                           0                                                                                        0 NEW                           empties the work area.                                   0                                                                                        0 OPEN                          opens a new text file.                                   0                                                                                        0 SAVE                          saves the text file in use.                              0                                                                                        0 SAVE AS                       saves the file with a new name.                          0                                                                                        0 SET OUTPUT TO                 changes the  output  peripheral  or                      0                               file.                                                    0                                                                                        0 PRINT AS IT IS                prints  the   text   file   without                      0                               transforming   the   variables   or                      0                               executing print commands.                                0 PRINT WITH RPT() ONCE         prints the text  using Memvars  and                      0                               Fields from  the actual  record  on                      0                               the  active  Alias:  it  calls  the                      0                               RPT() functions.                                         0                                                                                        0 PRINT WITH RPT() STD          prints the text  using all  logical                      0                               records in  the  active  Alias:  it                      0                               calls the RPT() functions.                               0                                                                                        0 EXIT                          terminates the Doc() execution.                          0                                                                                        0                                     <RPT - the nB print function>                  11004                                           <The Text Editor DOC()>                   2700                                                           <Index>                      2                                                 <The Menu System>                   1323                                                       <Menu File>                   1409                                                       <Menu Edit>                   1826                                                     <Menu Report>                   2023                                                        <Menu Htf>                   2324                                                      <Menu Macro>                   2433                                                       <Menu Info>                   2538                                                        <Menu Doc>                   2571                                                                                        0 ##DOC - NEW##                                                                          0 ................................................................                       0                                                                                        0 It starts the editing of a new empty text.                                             0                                                                                        0                                                        <Menu Doc>                   2571                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##DOC - OPEN##                                                                         0 ................................................................                       0                                                                                        0 It opens for editing a new textfile.                                                   0                                                                                        0                                                        <Menu Doc>                   2571                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##DOC - SAVE##                                                                         0 ................................................................                       0                                                                                        0 It saves the text file under editing.                                                  0                                                                                        0                                                        <Menu Doc>                   2571                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##DOC - SAVE AS##                                                                      0 ................................................................                       0                                                                                        0 It saves the text file under editing asking for a new name.                            0                                                                                        0                                                        <Menu Doc>                   2571                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##DOC - SET OUTPUT TO##                                                                0 ................................................................                       0                                                                                        0 It permits to change the  default output peripheral: the  default                      0 is the screen.                                                                         0                                                        <Menu Doc>                   2571                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##DOC - PRINT AS IT IS##                                                               0 ................................................................                       0                                                                                        0 It prints on the output pheriperal the content of the text as  it                      0 is.                                                                                    0                                                                                        0                                                        <Menu Doc>                   2571                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##DOC - PRINT WITH RPT() ONCE##                                                        0 ................................................................                       0                                                                                        0 It prints on the output pheriperal  the content of the text  only                      0 once replacing possible text variables.                                                0                                                                                        0                                                        <Menu Doc>                   2571                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##DOC - PRINT WITH RPT() STD##                                                         0 ................................................................                       0                                                                                        0 It prints  on  the output  pheriperal  the content  of  the  text                      0 repeating this print for every record contained inside the acrive                      0 Alias.                                                                                 0                                                                                        0                                                        <Menu Doc>                   2571                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##DOC - EXIT DOC()##                                                                   0 ................................................................                       0                                                                                        0 Termitates the  use  of  DOC()  the  text/document  editing/print                      0 function.                                                                              0                                                                                        0                                                        <Menu Doc>                   2571                                                 <The Menu System>                   1323                                                           <Index>                      2                                                                                        0 ##THE TEXT EDITOR DOC()##                                                              0 ================================================================                       0                                                                                        0 The function  Doc() activates  a simple  text editor  usefull  to                      0 build some simple reports.                                                             0                                                                                        0 Inside this  function  a  menu  is  available  and  is  activated                      0 pressing [Alt]+[M] or  [F10]. The Doc()  menu is part  of the  nB                      0 menu system.                                                                           0                                                                                        0 DOC() may handle text files of a torical maximum of 64K.                               0                                                                                        0 DOC() may be particularily usefull to create formatted text  with                      0 variables identified by CHR(174) and CHR(175) delimiters: when an                      0 active Alias exists, [F2] gives a list of insertable fields.                           0                                                                                        0 [Esc]                         Exit DOC().                                              0                                                                                        0 [F1]                          Call the help.                                           0 [F2]                          Field list.                                              0                                                                                        0 [up] / [Ctrl]+[E]             Line up.                                                 0                                                                                        0 [down] / [Ctrl]+[X]           Line down.                                               0                                                                                        0 [left] / [Ctrl]+[S]           Character left.                                          0                                                                                        0 [right] / [Ctrl]+[D]          Character right.                                         0                                                                                        0 [Ctrl]+[right] / [Ctrl]+[A]   Word left.                                               0                                                                                        0 [Ctrl]+[left] / [Ctrl]+[F]    Word right.                                              0                                                                                        0 [Home]                        Line start.                                              0                                                                                        0 [End]                         Line end.                                                0                                                                                        0 [Ctrl]+[Home]                 Top window.                                              0                                                                                        0 [Ctrl]+[End]                  Bottom window.                                           0                                                                                        0 [PgUp]                        Previous window.                                         0                                                                                        0 [PgDn]                        Next window.                                             0                                                                                        0 [Ctrl]+[PgUp]                 Document start.                                          0                                                                                        0 [Ctrl]+[PgDn]                 End document.                                            0                                                                                        0 [Del]                         Delete character (right).                                0                                                                                        0 [Backspace]                   Delete character Left.                                   0                                                                                        0 [Tab]                         Insert tab.                                              0                                                                                        0 [Ins]                         Toggle insert/overwrite.                                 0                                                                                        0 [Enter]                       Next line.                                               0                                                                                        0 [Ctrl]+[Y]                    Delete line.                                             0                                                                                        0 [Ctrl]+[T]                    Delete word right.                                       0                                                                                        0 [F10] / [Alt]+[M]             DOC() menu.                                              0                                                                                        0                                                 <The menu system>                   1323                                                        <Menu Doc>                   2571                                     <RPT - the nB print function>                  11004                                                           <Index>                      2                                                                                        0 ##THE HELP TEXT FILE##                                                                 0 ================================================================                       0                                                                                        0 nB provides a basic hypertext system to build simple help  files.                      0 A source text file  with "indexes" and  "pointers" to indexes  is                      0 translated into a "help text file" (a .DBF file); then, this file                      0 is browsed by nB.                                                                      0                                                                                        0 The source file can have a  maximum line width of 80  characters;                      0 each line can temrinate with CR or CR+LF.                                              0                                                                                        0 "Indexes" are  string  delimited  by  index  delimiters  (default                      0 "##"); "pointers"  are  string delimited  by  pointer  delimiters                      0 (default "<" and ">") and refers to indexes.                                           0                                                                                        0 Inside a text, indexes must be  unique; pointers can be  repeated                      0 anywhere. A text can contain a maximum of 4000 indexes.                                0                                                                                        0 Inside this manual, titles  are delimited with  "##" as they  are                      0 indexes; strings delimited with "<" and ">" identify a  reference                      0 to a title with the same string.                                                       0                                                                                        0 To browse a previously created Help Text File, use the  following                      0 keys:                                                                                  0                                                                                        0 [Esc]               Exit.                                                              0                                                                                        0 [UpArrow]           Move cursor up.                                                    0                                                                                        0 [DownArrow]         Move cursor down.                                                  0                                                                                        0 [PgUp]              Move cursor PageUp.                                                0                                                                                        0 [PgDn]              Move cursor Pagedown.                                              0                                                                                        0 [Ctrl]+[PgUp]       Move cursor Top.                                                   0                                                                                        0 [Ctrl]+[PgDn]       Move cursor Bottom.                                                0                                                                                        0 [Enter]             Select a reference (pointer).                                      0                                                                                        0 [<-]                Go to previous selected reference (pointer).                       0                                                                                        0 [->]                Go to next selected reference (pointer).                           0                                                                                        0 [Shift]+[F3]        Search for a new pattern.                                          0                                                                                        0 [F3]                Repeat previous search.                                            0                                                                                        0 ##MACRO##                                                                              0 ================================================================                       0                                                                                        0 nB can execute  (run) macro  files. There  may be  three kind  of                      0 macro files:                                                                           0                                                                                        0 *         ascii (usually with .& extention),                                           0                                                                                        0 *         "compiled" (usually with .NB extention),                                     0                                                                                        0 *         EXE files (compiled with CA-Clipper and linked).                             0                                                                                        0 "Compiled" macro files are executed faster then the ascii  source                      0 files.                                                                                 0                                                                                        0 EXE macro files are the fastest.                                                       0                                                                                        0 ##MACRO STATEMENTS##                                                                   0 ----------------------------------------------------------------                       0                                                                                        0 The statemens recognised from nB are very similar to  CA-Clipper,                      0 with some restrictions.                                                                0                                                                                        0 Note that:                                                                             0                                                                                        0 *    The FOR statement is not included;                                                0                                                                                        0 *    there is no function declaration;                                                 0                                                                                        0 *    procedure calls cannot transfer variables;                                        0                                                                                        0 *    only public variables are allowed.                                                0                                                                                        0 ##PROCEDURE##                                                                          0 ................................................................                       0                                                                                        0 Procedures are the basic building blocks of a nB macro.                                0                                                                                        0 Procedures are visible only inside the current macro file.                             0                                                                                        0 The procedure structure is as follows:                                                 0                                                                                        0 PROCEDURE <procedure name>                                                             0      <statements>...                                                                   0      [RETURN]                                                                          0      <statements>...                                                                   0 ENDPROCEDURE                                                                           0                                                                                        0 A  procedure  definition  begins  with  a  PROCEDURE  declaration                      0 followed with the <procedure name> and ends with ENDPROCEDURE.                         0                                                                                        0 Inside the PROCEDURE  - ENDPROCEDURE declaration  are placed  the                      0 executable <statements> which are executed when the procedure  is                      0 called.                                                                                0                                                                                        0 Inside the  PROCEDURE  -  ENDPROCEDURE  declaration,  the  RETURN                      0 statement may  appear. In  this  case, encountering  this  RETURN                      0 statement, the procedure execution  is immediatly terminated  and                      0 control is passed to the statement following the calling one.                          0                                                                                        0 The procedure definition do not permit to receive parameters from                      0 the calling statement.                                                                 0                                                                                        0 ##DO PROCEDURE##                                                                       0 ................................................................                       0                                                                                        0 There is only one way to call a procedure:                                             0                                                                                        0 DO PROCEDURE <procedure name>                                                          0                                                                                        0 When the statement  DO PROCEDURE is  encountered, the control  is                      0 passed to the begin of the called PROCEDURE. After the  PROCEDURE                      0 execution, the control is returned to the statement following  DO                      0 PROCEDURE.                                                                             0                                                                                        0 The procedure  call  do not  permit  to send  parameters  to  the                      0 procedure.                                                                             0                                                                                        0 ##BEGIN SEQUENCE##                                                                     0 ................................................................                       0                                                                                        0 The BEGIN SEQUENCE - END structure  permits to define a  sequence                      0 of operation that may be broken.                                                       0                                                                                        0 Inside nB, this control structure is useful only because there is                      0 the possibility to break the execution and pass control over  the                      0 end of it.                                                                             0                                                                                        0 This way, encountering BREAK means: "go to end".                                       0                                                                                        0 BEGIN SEQUENCE                                                                         0      <statements>...                                                                   0      [BREAK]                                                                           0      <statements>...                                                                   0 END                                                                                    0                                                                                        0 Inside nB, error exeption handling is not supported.                                   0                                                                                        0 ##DO CASE##                                                                            0 ................................................................                       0                                                                                        0 This is a control structure where only the statements following a                      0 True CASE condition are executed.                                                      0                                                                                        0 When the DO  CASE statement  is encountered,  the following  CASE                      0 statements are tested.  The first time  that a condition  returns                      0 True, the  CASE's  statemens are  executed  and then  control  is                      0 passed over the END case.                                                              0                                                                                        0 That is: only one CASE is taken into consideration.                                    0                                                                                        0 If no condition  is True, the  statemens following OTHERWISE  are                      0 executed.                                                                              0                                                                                        0 DO CASE                                                                                0 CASE <lCondition1>                                                                     0      <statements>...                                                                   0 [CASE <lCondition2>]                                                                   0      <statements>...                                                                   0 [OTHERWISE]                                                                            0      <statements>...                                                                   0 END                                                                                    0                                                                                        0 ##WHILE##                                                                              0 ................................................................                       0                                                                                        0 The structure WHILE -  END defines a loop  based on a  condition:                      0 the loop is repeated until the condition is True.                                      0                                                                                        0 The loop  execution may  be broken  with the  EXIT statement:  it                      0 transfer control after the END while.                                                  0                                                                                        0 The LOOP statement may be use to repeat the loop: it transfer the                      0 control to the beginninf of the loop.                                                  0                                                                                        0 WHILE <lCondition>                                                                     0      <statements>...                                                                   0      [EXIT]                                                                            0      <statements>...                                                                   0      [LOOP]                                                                            0      <statements>...                                                                   0 END                                                                                    0                                                                                        0 ##IF##                                                                                 0 ................................................................                       0                                                                                        0 The IF - END  control structure executes a  section of code if  a                      0 specified condition  is  True.  The structure  can  also  specify                      0 alternative code to execute if the condition is False.                                 0                                                                                        0 IF <lCondition1>                                                                       0      <statements>...                                                                   0 [ELSE]                                                                                 0      <statements>...                                                                   0 END                                                                                    0                                                                                        0 ##VARIABLE DECLARATION##                                                               0 ----------------------------------------------------------------                       0                                                                                        0 Inside nB, variables are created using a specific function:                            0                                                                                        0 MEMPUBLIC( <cVarName> )                                                                0                                                                                        0 For example,                                                                           0                                                                                        0 MEMPUBLIC( "Name" )                                                                    0                                                                                        0 creates the variable Name.                                                             0                                                                                        0 The scope of the created variable  is global and there is no  way                      0 to restrict the visibility of it.                                                      0                                                                                        0 When a variable is no more needed or desired, it can be released:                      0                                                                                        0                                                                                        0 MEMRELEASE( "cVarName" )                                                               0                                                                                        0 The variable declaration do not defines the variable type.  Every                      0 variable may receive  any kind  of data;  that is  that the  type                      0 depends on the type of data contained.                                                 0                                                                                        0 ##MACRO STRUCTURE##                                                                    0 ----------------------------------------------------------------                       0                                                                                        0 A nB  macro  must  be  organised as  follow.  There  may  be  two                      0 situations: Macros with procedures and macros without procedures.                      0                                                                                        0                                                                                        0 Macro with procedures:                                                                 0                                                                                        0      PROCEDURE <procedure name1>                                                       0           <statements>...                                                              0           [RETURN]                                                                     0           <statements>...                                                              0      ENDPROCEDURE                                                                      0      PROCEDURE <procedure name2>                                                       0           <statements>...                                                              0           [RETURN]                                                                     0           <statements>...                                                              0      ENDPROCEDURE                                                                      0      PROCEDURE <procedure name3>                                                       0           <statements>...                                                              0           [RETURN]                                                                     0           <statements>...                                                              0      ENDPROCEDURE                                                                      0      ...                                                                               0      ...                                                                               0      DO PROCEDURE <procedure name nth>                                                 0                                                                                        0 Macro without procedures:                                                              0                                                                                        0      <statements>...                                                                   0      <statements>...                                                                   0      <statements>...                                                                   0      <statements>...                                                                   0      <statements>...                                                                   0      <statements>...                                                                   0      <statements>...                                                                   0                                                                                        0 nB Macros may be  compiled with CA-Clipper. To  do so, the  first                      0 structure example must be changed as follows:                                          0                                                                                        0      #INCLUDE MACRO.CH                                                                 0                                                                                        0      DO PROCEDURE <procedure name nth>                                                 0      ...                                                                               0      PROCEDURE <procedure name1>                                                       0           <statements>...                                                              0           [RETURN]                                                                     0           <statements>...                                                              0      ENDPROCEDURE                                                                      0      PROCEDURE <procedure name2>                                                       0           <statements>...                                                              0           [RETURN]                                                                     0           <statements>...                                                              0      ENDPROCEDURE                                                                      0      PROCEDURE <procedure name3>                                                       0           <statements>...                                                              0           [RETURN]                                                                     0           <statements>...                                                              0      ENDPROCEDURE                                                                      0      ...                                                                               0      ...                                                                               0                                                                                        0 To compile a macro  with CA-Clipper, the macro  file name can  be                      0 changed into MACRO.PRG and                                                             0                                                                                        0      RTLINK MACRO.RMK [Enter]                                                          0                                                                                        0 should be started.                                                                     0                                                                                        0 ##MACRO COMMENTS##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 A nB  Macro  source file  can  contain comments.  only  the  "//"                      0 comment is  recognised! This  way: *  and /*...*/  will  generate                      0 errors!                                                                                0                                                                                        0      ATTENTION: to simplify the macro interpretation,  lines                           0      such as this:                                                                     0                                                                                        0      qqout( "You can't do that // you can't do that!" )                                0                                                                                        0      will generate  an error  as the  interpreter will  read                           0      only:                                                                             0                                                                                        0      qqout( "You can't do that                                                         0                                                                                        0      Sorry!                                                                            0                                                                                        0 ##MACRO LONG LINES SPLIT##                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Inside  a  nB  macro,  long  lines  may  be  splitted  using  ";"                      0 (semicolon).                                                                           0                                                                                        0 *         Lines can only be splitted and not joined!                                   0                                                                                        0 *         A resulting  command line  cannot be  longher then  254                      0           characters.                                                                  0                                                                                        0 ##THE MACRO RECORDER##                                                                 0 ----------------------------------------------------------------                       0                                                                                        0 Inside the functions  ASSIST() and DOC()  is available the  Macro                      0 recorder menu.                                                                         0                                                                                        0 When a macro recording is started, a "&" appears on the left side                      0 of the status bar. It it  blinks, the recording is active, if  it                      0 is stable, the recording is paused.                                                    0                                                                                        0 The macro recording  is not exactly  a step-by-step recording  of                      0 all action taken, but a translation (as good as posible) of  what                      0 you have done.                                                                         0                                                                                        0 The macro recorder is able to record only the menu functions that                      0 terminates with the "&"  symbol and all what  is inserted at  the                      0 dot command line.                                                                      0                                                                                        0 The  macro  recording  can  be  viewed  and  edited  during   the                      0 recording. The macro recording can be  saved into a text file  (a                      0 macro file).                                                                           0                                                                                        0 ##DATA TYPES##                                                                         0 ================================================================                       0                                                                                        0 The data types supportd in the nB macro language are the same  as                      0 CA-Clipper:                                                                            0                                                                                        0 *    Array                                                                             0                                                                                        0 *    Character                                                                         0                                                                                        0 *    Code Block                                                                        0                                                                                        0 *    Numeric                                                                           0                                                                                        0 *    Date                                                                              0                                                                                        0 *    Logical                                                                           0                                                                                        0 *    Memo                                                                              0                                                                                        0 *    NIL                                                                               0                                                                                        0 ##CHARACTER##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 The character data type identifies  character strings of a  fixed                      0 length.  The  character  set  corresponds  to:  CHR(32)   through                      0 CHR(255) and the null character, CHR(0).                                               0                                                                                        0 Valid character strings consist of zero or more characters with a                      0 teorical maximum of 65535 characters. The real maximum  dimention                      0 depends on the available memory.                                                       0                                                                                        0 Character string constants are formed by enclosing a valid string                      0 of characters within  a designed  pair of  delimiters. There  are                      0 three possible delimiter pairs:                                                        0                                                                                        0 *    two single quotes   'string constant'                                             0                                                                                        0 *    two double quotes   "string constant"                                             0                                                                                        0 *    left and right square brackets     [string constant]                              0                                                                                        0 These three different kind of delimiters are available to resolve                      0 some possible problems:                                                                0                                                                                        0 I don't want it               ->   "I don't want it"                                   0                                                                                        0 She said, "I love hin"        ->   'She said, "I love hin"'                            0                                                                                        0 He said, "I don't want it"    ->   [He said, "I don't want it"]                        0 The following table shows all operations available inside nB  for                      0 character data  types.  These  operations  act  on  one  or  more                      0 character  expressions  and  the  result  is  not  necessarily  a                      0 character data type.                                                                   0                                                                                        0 +              Concatenate.                                                            0                                                                                        0 -              Concatenate without intervening spaces.                                 0                                                                                        0 ==             Compare for exact equity.                                               0                                                                                        0 !=, <>, #      Compare for inequity.                                                   0                                                                                        0 <              Compare for sorts before                                                0                                                                                        0 <=             Compare for sorts before or same as.                                    0                                                                                        0 >              Compare for sorts after.                                                0                                                                                        0 >=             Compare for sorts after or same as.                                     0                                                                                        0 :=             In line assign.                                                         0                                                                                        0 $              Test for substring existance.                                           0                                                                                        0 ALLTRIM()      Remove leading and trailing spaces.                                     0                                                                                        0 ASC()          Convert to numeric ASCII code equivalent.                               0                                                                                        0 AT()           Locate substring position.                                              0                                                                                        0 CTOD()         Convert to date.                                                        0                                                                                        0 DESCEND()      Convert to complemented form.                                           0                                                                                        0 EMPTY()        Test for null or blank string.                                          0                                                                                        0 ISALPHA()      Test for initial letter.                                                0                                                                                        0 ISDIGIT()      Test for initial digit.                                                 0                                                                                        0 ISLOWER()      Test for initial lowercase letter.                                      0                                                                                        0 ISUPPER()      Test for initial uppercase letter.                                      0                                                                                        0 LEFT()         Extract substring form the left.                                        0                                                                                        0 LEN()          Compute string lenght in characters.                                    0                                                                                        0 LOWER()        Convert letters to lowercase.                                           0                                                                                        0 LTRIM()        Remove leading spaces.                                                  0                                                                                        0 PADC()         Pad with leading and trailing spaces.                                   0                                                                                        0 PADL()         Pad with leading spaces.                                                0                                                                                        0 PADR()         Pad with trailing spaces.                                               0                                                                                        0 RAT()          Locate substring position starting from the right.                      0                                                                                        0                                                                                        0 RIGHT()        Extract substring form the right.                                       0                                                                                        0 RTRIM()        Remove trailing spaces.                                                 0                                                                                        0 SOUNDEX()      Convert to soundex equivalent.                                          0                                                                                        0 SPACE()        Create a blank string of a defined length.                              0                                                                                        0 STRTRAN()      Search and replace substring.                                           0                                                                                        0 STUFF()        Replace substring.                                                      0                                                                                        0 SUBSTR()       Extract substring.                                                      0                                                                                        0 TRANSFORM()    Convert to formatted string.                                            0                                                                                        0 UPPER()        Convert letters to uppercase                                            0                                                                                        0 VAL()          Convert to numeric.                                                     0                                                                                        0 VALTYPE()      Evaluates data type directly.                                           0                                                                                        0 ##MEMO##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 The memo data type is used to represent variable length character                      0 data that can only exist in the form of a database field.                              0                                                                                        0 Memo fields are not stored inside  the main database file  (.DBF)                      0 but inside a separate file (.DBT).                                                     0                                                                                        0 A memo field can contain up to 65535 charaters, that is the  same                      0 maximum  dimension  of  character  fields.  In  fact,  originally                      0 xBases,  couldn't  have   character  string   longher  than   254                      0 chacarters.                                                                            0                                                                                        0 As here memo fields are very  similar to long character  strings,                      0 you may forget that there is a difference.                                             0                                                                                        0 All the operations that may be applyed to character strings,  may                      0 be used  with memo  fields; the  following functions  may be  use                      0 epecially for memo fields or long character strings.                                   0                                                                                        0 HARDCR()       Replace soft with hard carriage returns.                                0                                                                                        0 MEMOEDIT()     Edit contents.                                                          0                                                                                        0 MEMOLINE()     Extract a line of a text.                                               0                                                                                        0 MEMOREAD()     Read form a disk text file.                                             0                                                                                        0 MEMOTRAN()     Repace soft and hard carriage returns.                                  0                                                                                        0 MEMOWRIT()     Write to disk text file.                                                0                                                                                        0 MLCOUNT()      Count lines.                                                            0                                                                                        0 MLPOS()        Compute position.                                                       0                                                                                        0 ##DATE##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 The date data type is used to represent calendar dates.                                0                                                                                        0 Supported dates are  from 0100.01.01  to 2999.12.31  and null  or                      0 blank date.                                                                            0                                                                                        0 The    appearence    of    a    date    is    controlled     from                      0 SETVERB("DATEFORMAT"). The  default is  "dd/mm/yyyy" and  it  may                      0 easyly   changed   for    example   with    SETVERB("DATEFORMAT",                      0 "MM/DD/YYYY") to the US standard.                                                      0                                                                                        0 There is  no  way to  represent  date constants;  these  must  be                      0 replaced with  the  CTOD()  function. For  example  if  the  date                      0 11/11/1995 is to be written, the right way is:                                         0                                                                                        0 CTOD( "11/11/1995" )                                                                   0                                                                                        0 The character string  "11/11/1995" must respect  the date  format                      0 defined as before explained.                                                           0                                                                                        0 The function CTOD() will accept only valid dates, and null dates:                      0                                                                                        0                                                                                        0 CTOD( "" )                                                                             0                                                                                        0 A null date is ever less than any other valid date.                                    0                                                                                        0 The following table shows all operations available inside nB  for                      0 date data  types.  These  operations act  on  one  or  more  date                      0 expressions and the  result is not  necessarily a character  data                      0 type.                                                                                  0                                                                                        0 +              Add a number of days to a date.                                         0                                                                                        0 -              Subtract days to a date.                                                0                                                                                        0 ==             Compare for equity.                                                     0                                                                                        0 !=, <>, #      Compare for inequity.                                                   0                                                                                        0 <              Compare for earlier                                                     0                                                                                        0 <=             Compare for earlier or same as.                                         0                                                                                        0 >              Compare for later.                                                      0                                                                                        0 >=             Compare for later or same as.                                           0                                                                                        0 :=             In line assign.                                                         0                                                                                        0 CDOW()         Compute day of week name.                                               0                                                                                        0 CMONTH()       Compute month name.                                                     0                                                                                        0 DAY()          Extract day number.                                                     0                                                                                        0 DESCEND()      Convert to complemented form.                                           0                                                                                        0 DOW()          Compute day of week.                                                    0                                                                                        0 DTOC()         Convert  to  character  string  with  the   format                      0                defined with SETVERB( "DATEFORMAT" ).                                   0                                                                                        0 DOTOS()        Convert to  character  string  in  sorting  format                      0                (YYYYMMDD).                                                             0                                                                                        0 EMPTY()        Test for null date.                                                     0                                                                                        0 MONTH()        Extract month number.                                                   0                                                                                        0 VALTYPE()      Evaluates data type directly.                                           0 YEAR()         Extract entire year number, including century.                          0                                                                                        0 ##NUMERIC##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 The numeric data type identifies real number. The teorical  range                      0 is form 10^-308 to 10^308 but the numeric precision is guaranteed                      0 up to 16 significant digits, and  formatting a numeric value  for                      0 display is guaranteed up  to a lenght of  32 (30 digits, a  sign,                      0 and a decimal point). That is: numbers longher than 32 bytes  may                      0 be  displayed  as  asterisks,  and  digits  other  nhen  most  16                      0 significant ones are sisplayed as zeroes.                                              0                                                                                        0 Numeric constants are  written without  delimites. The  following                      0 are valid constant numbers:                                                            0                                                                                        0 12345                                                                                  0                                                                                        0 12345.678                                                                              0                                                                                        0 -156                                                                                   0                                                                                        0 +1256.789                                                                              0                                                                                        0 -.789                                                                                  0                                                                                        0 If a numeric  constant is  delimited like  character strings,  it                      0 becames a character string.                                                            0                                                                                        0 The following table shows all operations available inside nB  for                      0 numeric data types. These operations act  on one or more  numeric                      0 expressions and  the result  is not  necessarily a  numeric  data                      0 type.                                                                                  0                                                                                        0 +              Add or Unary Positive.                                                  0                                                                                        0 -              Subtract or Unary Negative.                                             0                                                                                        0 *              Multipy.                                                                0                                                                                        0 /              Divide.                                                                 0                                                                                        0 %              Modulus.                                                                0                                                                                        0 ^, **          Exponentiate.                                                           0                                                                                        0 ==             Compare for equity.                                                     0                                                                                        0 !=, <>, #      Compare for inequity.                                                   0                                                                                        0 <              Compare for less than.                                                  0                                                                                        0 <=             Compare for less than or equal.                                         0                                                                                        0 >              Compare for greater than.                                               0                                                                                        0 >=             Compare for greater than or equal.                                      0                                                                                        0 :=             In line assign.                                                         0                                                                                        0 ABS()          Compute absolute value.                                                 0                                                                                        0 CHR()          Convert to ASCII character equivalent.                                  0                                                                                        0 DESCEND()      Convert to complemented form.                                           0                                                                                        0 EMPTY()        Test for zero.                                                          0                                                                                        0 EXP()          Exponentiate with e as the base.                                        0                                                                                        0 INT()          Convert to integer.                                                     0                                                                                        0 LOG()          Compute natural logarithm.                                              0                                                                                        0 MAX()          Compute maximum.                                                        0                                                                                        0 MIN()          Compute minimun.                                                        0                                                                                        0 ROUND()        Round up or down()                                                      0                                                                                        0 SQRT()         Compute square root.                                                    0                                                                                        0 STR()          Convert to character.                                                   0                                                                                        0 TRANSFORM()    Convert to formatted string.                                            0                                                                                        0 VALTYPE()      Evaluates data type directly.                                           0                                                                                        0 Number  uppearence  may  be  affected  by  SETVERB("FIXED")   and                      0 consequently by SETVERB("DECIMALS"). If SETVERB("FIXED") is True,                      0 numbers are displayed with a  fixed decimal position. The  number                      0 of decimal positions is defined by SETVERB("DECIMALS"). For  that                      0 reason,   the    default    is    SETVERB("FIXED",    .F.)    and                      0 SETVERB("DECIMALS", 2), that is,  no fixed decimal position,  but                      0 if they will be activated, the default is two decimal digits.                          0                                                                                        0 ##LOGICAL##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 The logical data type identifies Boolean values.                                       0                                                                                        0 Logical constants are:                                                                 0                                                                                        0 .T.       True.                                                                        0                                                                                        0 .F.       False.                                                                       0                                                                                        0 When editing a logical field, inputs may be:                                           0                                                                                        0 y, Y, t, T     for True                                                                0                                                                                        0 n, N, f, F     for False                                                               0                                                                                        0 The following table shows all operations available inside nB  for                      0 logical data types. These operations act  on one or more  logical                      0 expressions and  the result  is not  necessarily a  logical  data                      0 type.                                                                                  0                                                                                        0 .AND.          And.                                                                    0                                                                                        0 .OR.           Or.                                                                     0                                                                                        0 .NOT. or !     Negate.                                                                 0                                                                                        0 ==             Compare for equity.                                                     0                                                                                        0 !=, <>, or #   Compare for inequity.                                                   0                                                                                        0 Comparing two logical  values, False  (.F.) is  always less  than                      0 True (.T.).                                                                            0                                                                                        0 ##NIL##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 NIL is not  properly a data  type, it represent  the value of  an                      0 uninitialised valiable.                                                                0                                                                                        0 Inside nB (like what it happens inside CA-Clipper), variables are                      0 not declared  with the  data type  that they  will contain.  This                      0 means that a variable can contain  any kind of data. In fact,  nB                      0 variables are pointer to data and a pointer to "nothing" is NIL.                       0                                                                                        0 NIL may be used as constant for assignment or comparing purpose:                       0                                                                                        0 NIL                                                                                    0                                                                                        0 Fields (database fields) cannot contain NIL.                                           0                                                                                        0 The following table shows all operations available inside nB  for                      0 the NIL data  type. Except  for these  operations, attempting  to                      0 operate on a NIL results in a runtime error.                                           0                                                                                        0 ==             Compare for equity.                                                     0                                                                                        0 !=, <>, #      Compare for inequity.                                                   0                                                                                        0 <              Compare for less than.                                                  0                                                                                        0 <=             Compare for less than or equal.                                         0                                                                                        0 >              Compare for greater than.                                               0                                                                                        0 >=             Compare for greater than or equal.                                      0                                                                                        0 :=             In line assign.                                                         0                                                                                        0 EMPTY()        Test for NIL.                                                           0                                                                                        0 VALTYPE()      Evaluates data type directly.                                           0                                                                                        0 For the purpose  of comparison,  NIL is  the only  value that  is                      0 equal to NIL. All other values are greater than NIL.                                   0                                                                                        0 Variables are created inside  nB with MEMPUBLIC(). This  function                      0 creates variables which will be automatically initialised to NIL.                      0                                                                                        0                                                                                        0 ##ARRAY##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 The array data type identifies a collection of related data items                      0 that share the same name. Each  value in an array is referred  to                      0 as an element.                                                                         0                                                                                        0 Array elements  can be  of any  data type  except memo  (memo  is                      0 available only  inside database  fields). For  example the  first                      0 element can be a character string, the second a number, the third                      0 a date and so on. Arrays can contain other arrays and code blocks                      0 as elements.                                                                           0                                                                                        0 The variable containing  the array does  not contains the  entire                      0 array, but the reference to it.                                                        0                                                                                        0      When the NIL  type was described,  it was cleared  that                           0      variables doesn't contains  real data,  but pointer  to                           0      data. But this  happens in a  transparent way, that  is                           0      that when the  a variable is  assigned to another  (for                           0      example A := B)  the variable receiving the  assignment                           0      will receive  a pointer  to a  new copy  of the  source                           0      data. This is not the same with arrays: assigning to  a                           0      variable an  array,  will  assign to  that  variable  a                           0      pointer to the same source array and not to a new  copy                           0      of it.                                                                            0                                                                                        0 If arrays are to  be duplicated, the ACLONE()  function is to  be                      0 used.                                                                                  0                                                                                        0 An array constant may be expressed  using curly brackets {}.  See                      0 the examples below.                                                                    0                                                                                        0 A := { "first element", "second element", "third element" }                            0                                                                                        0 With this example,  the variable A  contain the  reference to  an                      0 array with three element containig character string.                                   0                                                                                        0 A[1] == "first element"                                                                0                                                                                        0 A[2] == "second element"                                                               0                                                                                        0 A[3] == "third element"                                                                0                                                                                        0 Arrays may  contain  also no  element:  empty array  and  may  be                      0 expressed as:                                                                          0                                                                                        0 {}                                                                                     0                                                                                        0 The array element is identifyed by a number enclosed with  square                      0 brackets, following the variable name containing the reference to                      0 the array. The first array element is one.                                             0                                                                                        0 If an array contains arrays, we obtain a multidimentional  array.                      0 For example:                                                                           0                                                                                        0 A := { { 1, 2 }, { 3, 4 }, { 5, 6 } }                                                  0                                                                                        0 is equivalent to the following table.                                                  0                                                                                        0 1         2                                                                            0                                                                                        0 3         4                                                                            0                                                                                        0 5         6                                                                            0                                                                                        0 With this  example, the  variable A  contain the  reference to  a                      0 bidimentional array containing numbers.                                                0                                                                                        0 A[1,1] or A[1][1] contains 1                                                           0                                                                                        0 A[1,2] or A[1][2] contains 2                                                           0                                                                                        0 A[2,1] or A[2][1] contains 3                                                           0                                                                                        0 and so on.                                                                             0                                                                                        0 As arrays may  contain mixed  data, it is  the user  who have  to                      0 handel correctly the element numbers. For example:                                     0                                                                                        0 A := { "hello", { 3, 4 }, 1234 }                                                       0                                                                                        0 A[1] == "hello"                                                                        0                                                                                        0 A[2] == reference to { 3, 4 }                                                          0                                                                                        0 A[3] == 1234                                                                           0                                                                                        0 A[2,1] or A[2][1] contains 3                                                           0                                                                                        0 A[2,2] or A[2][2] contains 4                                                           0                                                                                        0 A[1,1] is an error!                                                                    0                                                                                        0 The following table shows all operations available inside nB  for                      0 arrays.                                                                                0                                                                                        0 :=             In line assign.                                                         0                                                                                        0 AADD()         Add dinamically an element to an array.                                 0                                                                                        0 ACLONE()       Create a copy of an array.                                              0                                                                                        0 ACOPY()        Copy element by element an array to another.                            0                                                                                        0 ADEL()         Delete one element inside an array.                                     0                                                                                        0 AFILL()        Fill all array elements with a value.                                   0                                                                                        0 AINS()         Insert an element inside an array.                                      0                                                                                        0 ARRAY()        Creates an array of empty elements.                                     0                                                                                        0 ASCAN()        Scan the array elements.                                                0                                                                                        0 ASIZE()        Resize an array.                                                        0                                                                                        0 ASORT()        Sort the array elements.                                                0                                                                                        0 EMPTY()        Test for no elements.                                                   0                                                                                        0 VALTYPE()      Evaluates data type directly.                                           0                                                                                        0 ##CODE BLOCK##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 The code block data type identifies  a small piece of  executable                      0 program code.                                                                          0                                                                                        0 A code block  is something like  a little  user defined  function                      0 where only a sequence of functions or assignments may appear:  no                      0 loops, no IF ELSE END.                                                                 0                                                                                        0 A code  block  may  receive argument  and  retun  a  value  after                      0 execution, just like a function.                                                       0                                                                                        0 The syntax is:                                                                         0                                                                                        0 { | [<argument list>] | <exp list> }                                                   0                                                                                        0 That is:  the <argument  list> is  optional; the  <exp list>  may                      0 contain one or more expressions separated with a comma.                                0                                                                                        0 For example,  calling  the following  code  block will  give  the                      0 string "hello world" as reslut.                                                        0                                                                                        0 { || "hello world" }                                                                   0 The following code  block require a  numeric argument an  returns                      0 the number passed as argument incremented:                                             0                                                                                        0 { | n | n+1 }                                                                          0                                                                                        0 The following  code  block  requires two  numeric  arguments  and                      0 returns the sum of the two square radix:                                               0                                                                                        0 { | nFirst, nSecond | SQRT(nFirst) + SQRT(nSecond) }                                   0                                                                                        0 But code blocks may contains more  expressions and the result  of                      0 the execution  of  the code  block  is  the result  of  the  last                      0 expression.                                                                            0                                                                                        0 The following code block executes in sequence some functions  and                      0 give ever "hello world" as a result.                                                   0                                                                                        0 { | a, b | functionOne(a), functionTwo(b), "hello world" }                             0                                                                                        0 To start the execution of a code block a function is used: EVAL()                      0                                                                                        0                                                                                        0 For example, a  code block  is assigned  to a  variable and  then                      0 executed.                                                                              0                                                                                        0 B := { || "hello world" }                                                              0                                                                                        0 EVAL( B ) == "hello world"                                                             0                                                                                        0 Another example with a parameter.                                                      0                                                                                        0 B := { | n | n+1 }                                                                     0                                                                                        0 EVAL( B, 1 ) == 2                                                                      0                                                                                        0 Another example with two parameters.                                                   0                                                                                        0 B := { | nFirst, nSecond | SQRT(nFirst) + SQRT(nSecond) }                              0                                                                                        0 EVAL( B, 2, 4 ) == 20                                                                  0                                                                                        0 And so on.                                                                             0                                                                                        0 The following table shows some operations available inside nB for                      0 code blocks: many functions use code blocks as argument.                               0                                                                                        0 :=             In line assign.                                                         0                                                                                        0 AEVAL()        Evaluate (execute) a code  block for each  element                      0                in an array.                                                            0                                                                                        0 BCOMPILE()     Convert (compile) a character  string into a  code                      0                block.                                                                  0                                                                                        0 DBEVAL()       Evaluate (execute) a code block for each record in                      0                the active Alias.                                                       0                                                                                        0 EVAL()         Evaluate a code block once.                                             0                                                                                        0 VALTYPE()      Evaluates data type directly.                                           0                                                                                        0 ##OPERATORS##                                                                          0 ================================================================                       0                                                                                        0 Here is  a  list  with  a  brief  description  of  the  operators                      0 available inside nB.                                                                   0                                                                                        0 <cString1> $ <cString2>                                                                0                                                                                        0 Substring comparison.                                                                  0 If <cString1> is contained inside <cString2> the result is true                        0 (.T.).                                                                                 0                                                                                        0 <nNumber1> % <nNumber2>                                                                0                                                                                        0 Modulus.                                                                               0 The result is the remainder of <nNumber1> divided by <nNuber2>.                        0                                                                                        0 ()                                                                                     0                                                                                        0 Function or grouping indicator.                                                        0                                                                                        0 <nNumber1> * <nNumber2>                                                                0                                                                                        0 Multiplication.                                                                        0                                                                                        0 <nNumber1> ** <nNumber2>                                                               0 <nNumber1> ^ <nNumber2>                                                                0                                                                                        0 Exponentiation.                                                                        0                                                                                        0 <nNumber1> + <nNumber2>                                                                0 <dDate> + <nNumber>                                                                    0                                                                                        0 Addition, unary positive.                                                              0                                                                                        0 <cString1> + <cString2>                                                                0                                                                                        0 String concatenation.                                                                  0 The result is the a string beguinning with the content fo                              0 <cString1> and following with the content of <cString2>.                               0                                                                                        0 <nNumber1> - <nNumber2>                                                                0 <dDate1> - <dDate2>                                                                    0 <dDate> - <nNumber>                                                                    0                                                                                        0 Subtraction, unary negative.                                                           0                                                                                        0 <cString1> - <cString2>                                                                0                                                                                        0 String concatenation.                                                                  0 The result is a string containing <cString1> after trimming                            0 trailing blanks and <cString2>.                                                        0                                                                                        0 <idAlias>-><idField>                                                                   0 FIELD-><idVar>                                                                         0 MEMVAR-><idVar>                                                                        0                                                                                        0 Alias assignment.                                                                      0 The alias operator implicitly SELECTs the <idAlias> before                             0 evaluating <idField>. When the evaluation is complete, the                             0 original work area is SELECTed again.                                                  0                                                                                        0 <lCondition1> .AND. <lCondition2>                                                      0                                                                                        0 Logical AND.                                                                           0                                                                                        0 .NOT. <lCondition>                                                                     0                                                                                        0 Logical NOT.                                                                           0                                                                                        0 <lCondition1> .OR. <lCondition2>                                                       0                                                                                        0 Logical OR.                                                                            0                                                                                        0 <nNumber1> / <nNumber2>                                                                0                                                                                        0 Division.                                                                              0                                                                                        0 <object>:<message>[(argument list)]                                                    0                                                                                        0 Send.                                                                                  0                                                                                        0 <idVar> := <exp>                                                                       0                                                                                        0 Inline assign.                                                                         0                                                                                        0 <exp1> <= <exp2>                                                                       0                                                                                        0 Less than or equal.                                                                    0                                                                                        0 <exp1> <> <exp2>                                                                       0                                                                                        0 Not equal.                                                                             0                                                                                        0 <exp1> = <exp2>                                                                        0                                                                                        0 Equal.                                                                                 0                                                                                        0 <exp1> == <exp2>                                                                       0                                                                                        0 Exactly equal.                                                                         0                                                                                        0 <exp1> > <exp2>                                                                        0                                                                                        0 Greater than.                                                                          0                                                                                        0 <exp1> >= <exp2>                                                                       0                                                                                        0 Greater than or equal.                                                                 0                                                                                        0 @<idVar>                                                                               0                                                                                        0 Pass-by-reference.                                                                     0                                                                                        0 []                                                                                     0 <aArray>[<nSubscript>, ...]                                                            0 <aArray>[<nSubscript1>][<nSubscript2>] ...                                             0                                                                                        0 Array element indicator.                                                               0                                                                                        0 ##DELIMITERS##                                                                         0 ================================================================                       0                                                                                        0 Here is the delimiter list recognised from nB.                                         0                                                                                        0 { <exp list> }                                                                         0                                                                                        0 Literal array delimiters.                                                              0                                                                                        0 { |<param list>| <exp list> }                                                          0                                                                                        0 Code block delimiters.                                                                 0                                                                                        0 "<cString>"                                                                            0 '<cString>'                                                                            0 [<cString>]                                                                            0                                                                                        0 String delimiters.                                                                     0                                                                                        0 ##CODE BLOCKS##                                                                        0 ================================================================                       0                                                                                        0 A code block is a sequence of function, assignments and  constant                      0 like the following:                                                                    0                                                                                        0      sqrt(10)                                                                          0      nResult := 10 * nIndex                                                            0                                                                                        0 Suppose that the above sequence of  operations has a meaning  for                      0 you. We  want  to  create  a  box  containing  this  sequence  of                      0 operation. This box is contained inside a variable:                                    0                                                                                        0      bBlackBox := { || sqrt(10), nResult := 10 * nIndex }                              0                                                                                        0 Note the comma used as separator.                                                      0                                                                                        0 Now <bBlackBox>  contains  the  small sequence  seen  before.  To                      0 execute this sequence, the function EVAL() is used:                                    0                                                                                        0      EVAL(bBlackBox)                                                                   0                                                                                        0 The execution of the code block gives a result: the value of  the                      0 last operation contained inside the code  block. In this case  it                      0 is the result of 10*nIndex. For that reason, if the execution  of                      0 the code block must give a fixed result, it can terminate with  a                      0 constant.                                                                              0                                                                                        0 A code block may receive parameters working like a function.  Try                      0 to imagine that we need to do the following.                                           0                                                                                        0      function multiply( nVar1, nVar2 )                                                 0           return nVar * nVar2                                                          0      endfunction                                                                       0                                                                                        0 A code block that does the same is:                                                    0                                                                                        0      bMultiply := { | nVar1, nVar2 | nVar1 * nVar2 }                                   0                                                                                        0 To evaluate it, for example trying to multiply 10 * 5:                                 0                                                                                        0      nResult := EVAL( bMultiply, 10, 5 )                                               0                                                                                        0 and <nResult> will contain 50.                                                         0                                                                                        0                                                      <code block>                   3667                                                          <eval()>                   5202                                                         <aeval()>                   4033                                                        <dbeval()>                   4588                                                                                        0 ##STANDARD FUNCTIONS##                                                                 0 ================================================================                       0                                                                                        0 With nB  All  CA-Clipper standard  functions  may be  used.  Here                      0 follows a short description.                                                           0                                                                                        0 ##AADD()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Array ADD                                                                              0                                                                                        0 AADD(<aTarget>, <expValue>) --> Value                                                  0                                                                                        0 <aTarget>           is the array to add a new element to.                              0                                                                                        0 <expValue>          is the value assigned to the new element.                          0                                                                                        0 It increases the actual  length of the target  array by one.  The                      0 newly created array  element is assigned  the value specified  by                      0 <expValue>.                                                                            0                                                                                        0 ##ABS()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 ABSolute                                                                               0                                                                                        0 ABS(<nExp>) --> nPositive                                                              0                                                                                        0 <nExp>    is the numeric expression to evaluate.                                       0                                                                                        0 ABS() returns a  number representing  the absolute  value of  its                      0 argument.                                                                              0                                                                                        0 ##ACLONE()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 Array CLONE                                                                            0                                                                                        0 ACLONE(<aSource>) --> aDuplicate                                                       0                                                                                        0 <aSource>           is the array to duplicate.                                         0                                                                                        0 ACLONE() returns a duplicate of <aSource>.                                             0                                                                                        0 ##ACOPY()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Array COPY                                                                             0                                                                                        0 ACOPY(<aSource>, <aTarget>,                                                            0      [<nStart>], [<nCount>], [<nTargetPos>]) --> aTarget                               0                                                                                        0 <aSource>           is the array to copy elements from.                                0                                                                                        0 <aTarget>           is the array to copy elements to.                                  0                                                                                        0 <nStart>            is  the  starting  element  position  in  the                      0                     <aSource>  array.  If   not  specified,   the                      0                     default value is one.                                              0                                                                                        0 <nCount>            is the number  of elements to  copy from  the                      0                     <aSource> array  beginning  at  the  <nStart>                      0                     position. If <nCount>  is not specified,  all                      0                     elements  in  <aSource>  beginning  with  the                      0                     starting element are copied.                                       0                                                                                        0 <nTargetPos>        is  the  starting  element  position  in  the                      0                     <aTarget>  array  to  receive  elements  from                      0                     <aSource>.  If  not  specified,  the  default                      0                     value is one.                                                      0                                                                                        0 ACOPY() is  an  array  function that  copies  elements  from  the                      0 <aSource> array to the <aTarget> array. The <aTarget> array  must                      0 already exist and be large enough to hold the copied elements.                         0 ##ADEL()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Array DELete                                                                           0                                                                                        0 ADEL(<aTarget>, <nPosition>) --> aTarget                                               0                                                                                        0 <aTarget>           is the array to delete an element from.                            0                                                                                        0 <nPosition>         is the position of  the target array  element                      0                     to delete.                                                         0                                                                                        0 ADEL() is  an array  function that  deletes  an element  from  an                      0 array. The contents of the specified  array element is lost,  and                      0 all elements  from that  position to  the end  of the  array  are                      0 shifted up one  element. The last  element in  the array  becomes                      0 NIL.                                                                                   0                                                                                        0 ##AEVAL()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Array EVALuation                                                                       0                                                                                        0 AEVAL(<aArray>, <bBlock>,                                                              0      [<nStart>], [<nCount>]) --> aArray                                                0                                                                                        0 <aArray>  is the array to be evaluated.                                                0                                                                                        0 <bBlock>  is  a   code  block   to  execute   for  each   element                      0           encountered.                                                                 0                                                                                        0 <nStart>  is the starting element. If not specified, the  default                      0           is element one.                                                              0                                                                                        0 <nCount>  is the number of elements to process from <nStart>.  If                      0           not specified, the default is  all elements to the  end                      0           of the array.                                                                0                                                                                        0 AEVAL() is an array function that evaluates a code block once for                      0 each element  of an  array, passing  the  element value  and  the                      0 element index as block parameters. The return value of the  block                      0 is ignored. All elements in <aArray> are processed unless  either                      0 the <nStart> or the <nCount> argument is specified.                                    0                                                                                        0 ##AFILL()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Array FILL                                                                             0                                                                                        0 AFILL(<aTarget>, <expValue>,                                                           0      [<nStart>], [<nCount>]) --> aTarget                                               0                                                                                        0 <aTarget>           is the array to fill.                                              0                                                                                        0 <expValue>          is the value to place in each array  element.                      0                     It can  be an  expression of  any valid  data                      0                     type.                                                              0                                                                                        0 <nStart>            is the position of the first element to fill.                      0                     If this  argument  is  omitted,  the  default                      0                     value is one.                                                      0                                                                                        0 <nCount>            is the number  of elements  to fill  starting                      0                     with element  <nStart>. If  this argument  is                      0                     omitted,  elements   are  filled   from   the                      0                     starting element position to  the end of  the                      0                     array.                                                             0                                                                                        0 AFILL() is an array function that fills the specified array  with                      0 a single value of any data type (including an array, code  block,                      0 or NIL)  by assigning  <expValue> to  each array  element in  the                      0 specified range.                                                                       0                                                                                        0 ##AINS()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Array INSert                                                                           0                                                                                        0 AINS(<aTarget>, <nPosition>) --> aTarget                                               0                                                                                        0 <aTarget>           is the array into which a new element will be                      0                     inserted.                                                          0                                                                                        0 <nPosition>         is the position at which the new element will                      0                     be inserted.                                                       0                                                                                        0 AINS() is an  array function that  inserts a new  element into  a                      0 specified array.  The newly  inserted element  is NIL  data  type                      0 until a new  value is assigned  to it. After  the insertion,  the                      0 last element in the  array is discarded,  and all elements  after                      0 the new element are shifted down one position.                                         0                                                                                        0 ##ALERT()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 ALERT( <cMessage>, [<aOptions>] ) --> nChoice                                          0                                                                                        0 <cMessage>          is the message  text displayed, centered,  in                      0                     the alert box. If the message contains one or                      0                     more   semicolons,   the   text   after   the                      0                     semicolons is centered on succeeding lines in                      0                     the dialog box.                                                    0                                                                                        0 <aOptions>          defines a list of up to 4 possible  responses                      0                     to the dialog box.                                                 0                                                                                        0 ALERT() returns  a  numeric  value indicating  which  option  was                      0 chosen. If the Esc  key is pressed, the  value returned is  zero.                      0 The ALERT() function creates a simple modal dialog. The user  can                      0 respond by  moving a  highlight bar  and pressing  the Return  or                      0 SpaceBar keys, or by pressing the key corresponding to the  first                      0 letter of the  option. If <aOptions>  is not  supplied, a  single                      0 "Ok" option is presented.                                                              0                                                                                        0 ##ALIAS()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 ALIAS([<nWorkArea>]) --> cAlias                                                        0                                                                                        0 <nWorkArea>    is any work area number.                                                0                                                                                        0 ALIAS() returns  the  alias  of the  specified  work  area  as  a                      0 character string. If <nWorkArea> is  not specified, the alias  of                      0 the current work area is returned.  If there is no database  file                      0 in USE for the specified work area, ALIAS() returns a null string                      0 ("").                                                                                  0 ##ALLTRIM()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 ALLTRIM(<cString>) --> cTrimmedString                                                  0                                                                                        0 <cString>           is the character expression to trim.                               0                                                                                        0 ALLTRIM() returns a  character string with  leading and  trailing                      0 spaces removed.                                                                        0                                                                                        0 ##ARRAY()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 ARRAY(<nElements> [, <nElements>...]) --> aArray                                       0                                                                                        0 <nElements>         is the number  of elements  in the  specified                      0                     dimension.                                                         0                                                                                        0 ARRAY() is an array function that returns an uninitialized  array                      0 with the specified number of elements and dimensions.                                  0                                                                                        0 ##ASC()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 ASCii                                                                                  0                                                                                        0 ASC(<cExp>) --> nCode                                                                  0                                                                                        0 <cExp>    is the character expression to convert to a number.                          0                                                                                        0 ASC() returns an integer  numeric value in the  range of zero  to                      0 255, representing the ASCII value of <cExp>.                                           0                                                                                        0 ##ASCAN()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Array SCAN                                                                             0                                                                                        0 ASCAN(<aTarget>, <expSearch>,                                                          0      [<nStart>], [<nCount>]) --> nStoppedAt                                            0                                                                                        0 <aTarget>           is the array to scan.                                              0                                                                                        0 <expSearch>         is either a  simple value to  scan for, or  a                      0                     code block. If <expSearch> is a simple  value                      0                     it  can  be  character,  date,  logical,   or                      0                     numeric type.                                                      0                                                                                        0 <nStart>            is the starting element of the scan. If  this                      0                     argument  is  not   specified,  the   default                      0                     starting position is one.                                          0                                                                                        0 <nCount>            is the number  of elements to  scan from  the                      0                     starting position.  If this  argument is  not                      0                     specified, all  elements  from  the  starting                      0                     element to the end of the array are scanned.                       0                                                                                        0 ASCAN() returns a numeric  value representing the array  position                      0 of the last element  scanned. If <expSearch>  is a simple  value,                      0 ASCAN() returns the  position of the  first matching element,  or                      0 zero if a  match is not  found. If <expSearch>  is a code  block,                      0 ASCAN() returns  the  position of  the  element where  the  block                      0 returned true (.T.).                                                                   0                                                                                        0 ##ASIZE()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Array SIZE                                                                             0                                                                                        0 ASIZE(<aTarget>, <nLength>) --> aTarget                                                0                                                                                        0 <aTarget>           is the array to grow or shrink.                                    0                                                                                        0 <nLength>           is the new size of the array.                                      0                                                                                        0 ASIZE() is an array  function that changes  the actual length  of                      0 the <aTarget>  array. The  array is  shortened or  lengthened  to                      0 match the specified length. If  the array is shortened,  elements                      0 at the end of the array are lost. If the array is lengthened, new                      0 elements are added to the end of the array and assigned NIL.                           0                                                                                        0 ##ASORT()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Array SORT                                                                             0                                                                                        0 ASORT(<aTarget>, [<nStart>],                                                           0      [<nCount>], [<bOrder>]) --> aTarget                                               0                                                                                        0 <aTarget>           is the array to sort.                                              0                                                                                        0 <nStart>            is the  first element  of  the sort.  If  not                      0                     specified, the default  starting position  is                      0                     one.                                                               0                                                                                        0 <nCount>            is the  number of  elements to  sort. If  not                      0                     specified,  all   elements   in   the   array                      0                     beginning  with  the  starting  element   are                      0                     sorted.                                                            0                                                                                        0 <bOrder>            is an optional code  block used to  determine                      0                     sorting order. If not specified, the  default                      0                     order is ascending.                                                0                                                                                        0 ASORT() is an array function that  sorts all or part of an  array                      0 containing elements of a single data type. Data types that can be                      0 sorted include  character, date,  logical,  and numeric.  If  the                      0 <bOrder>  argument  is  not  specified,  the  default  order   is                      0 ascending. Each time  the block is  evaluated, two elements  from                      0 the target array are passed as  block parameters. The block  must                      0 return true (.T.) if the elements are in sorted order.                                 0                                                                                        0 ##AT()##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 AT(<cSearch>, <cTarget>) --> nPosition                                                 0                                                                                        0 <cSearch>           is  the  character  substring  for  which  to                      0                     search.                                                            0                                                                                        0 <cTarget>           is the character string to search.                                 0                                                                                        0 AT() returns  the position  of the  first instance  of  <cSearch>                      0 within <cTarget> as an integer numeric value. If <cSearch> is not                      0 found, AT() returns zero.                                                              0                                                                                        0 AT() is a character  function used to  determine the position  of                      0 the first  occurrence of  a  character substring  within  another                      0 string.                                                                                0 ##ATAIL()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Array TAIL                                                                             0                                                                                        0 ATAIL(<aArray>) --> Element                                                            0                                                                                        0 <aArray>  is the array.                                                                0                                                                                        0 ATAIL() is an  array function that  returns the highest  numbered                      0 element of an array. It can be used in applications as  shorthand                      0 for <aArray>[LEN(<aArray>)]  when you  need  to obtain  the  last                      0 element of an array.                                                                   0                                                                                        0 ##BIN2I()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 BINary to Integer                                                                      0                                                                                        0 BIN2I(<cSignedInt>) --> nNumber                                                        0                                                                                        0 <cSignedInt>        is a character string in the form of a 16-bit                      0                     signed integer number--least significant byte                      0                     first.                                                             0                                                                                        0 BIN2I() returns an integer obtained converting the first two byte                      0 contained inside <cSignedInt>.                                                         0                                                                                        0 ##BIN2L()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 BINary to Large                                                                        0                                                                                        0 BIN2L(<cSignedInt>) --> nNumber                                                        0                                                                                        0 <cSignedInt>        is a character string in the form of a 32-bit                      0                     signed integer number--least significant byte                      0                     first.                                                             0                                                                                        0 BIN2L()  returns  an  integer   obtained  from  the  first   tour                      0 characters contained in <cSignedInt>.                                                  0                                                                                        0 ##BIN2W()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 BINary to Word                                                                         0                                                                                        0 BIN2W(<cUnsignedInt>) --> nNumber                                                      0                                                                                        0 <cUnsignedInt>      is a character string in the form of a 16-bit                      0                     unsigned  integer  number--least  significant                      0                     byte first.                                                        0                                                                                        0 BIN2W() returns an integer obtained from the first two characters                      0 contained in <cSignedInt>.                                                             0                                                                                        0 ##BOF()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 Begin Of File                                                                          0                                                                                        0 BOF() --> lBoundary                                                                    0                                                                                        0 BOF() returns true (.T.) after an attempt to SKIP backward beyond                      0 the first  logical  record  in a  database  file;  otherwise,  it                      0 returns false (.F.).  If there is  no database file  open in  the                      0 current work  area, BOF()  returns false  (.F.). If  the  current                      0 database file contains no records, BOF() returns true (.T.).                           0                                                                                        0 ##CDOW()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Character Day Of Week                                                                  0                                                                                        0 CDOW(<dExp>) --> cDayName                                                              0                                                                                        0 <dExp>    is the date value to convert.                                                0                                                                                        0 CDOW() returns the  name of the  day of the  week as a  character                      0 string. The first letter is uppercase and the rest of the  string                      0 is lowercase. For a null date value, CDOW() returns a null string                      0 ("").                                                                                  0                                                                                        0 ##CHR()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 CHaRacter                                                                              0                                                                                        0 CHR(<nCode>) --> cChar                                                                 0                                                                                        0 <nCode>   is an ASCII code in the range of zero to 255.                                0                                                                                        0 CHR() returns  a  single  character value  whose  ASCII  code  is                      0 specified by <nCode>.                                                                  0                                                                                        0 ##CMONTH()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 Character MONTH                                                                        0                                                                                        0 CMONTH(<dDate>) --> cMonth                                                             0                                                                                        0 <dDate>   is the date value to convert.                                                0                                                                                        0 CMONTH() returns the name of the month as a character string from                      0 a date value with the first letter uppercase and the rest of  the                      0 string lowercase. For a null date value, CMONTH() returns a  null                      0 string ("").                                                                           0                                                                                        0 ##COL()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 COLumn                                                                                 0                                                                                        0 COL() --> nCol                                                                         0                                                                                        0 COL() is  a  screen  function that  returns  the  current  column                      0 position of the cursor. The value  of COL() changes whenever  the                      0 cursor position changes on the screen.                                                 0                                                                                        0 ##COLORSELECT()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 COLORSELECT(<nColorIndex>) --> NIL                                                     0                                                                                        0 <nColorIndex>       is a  number  corresponding  to  the  oridnal                      0                     positions  in  the  current  list  of   color                      0                     attributes, as set by SETCOLOR().                                  0                                                                                        0 COLORSELECT() activates the specified color pair from the current                      0 list of color attributes (established by SETCOLOR()).                                  0                                                                                        0 ##CTOD()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Character To Date                                                                      0                                                                                        0 CTOD(<cDate>) --> dDate                                                                0                                                                                        0 <cDate>   is   a   character   string   consisting   of   numbers                      0           representing the month, day, and year separated by  any                      0           character other than a number. The month, day, and year                      0           digits must  be specified  in accordance  with the  SET                      0           DATE format. If the  century digits are not  specified,                      0           the century is determined by the rules of SET EPOCH.                         0                                                                                        0 CTOD() returns a  date value.  If <cDate>  is not  a valid  date,                      0 CTOD() returns an empty date.                                                          0                                                                                        0 ##CURDIR()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 CURrent DIRectory                                                                      0                                                                                        0 CURDIR([<cDrivespec>]) --> cDirectory                                                  0                                                                                        0 <cDrivespec>        specifies the  letter of  the disk  drive  to                      0                     query. If not specified,  the default is  the                      0                     current DOS drive.                                                 0                                                                                        0 CURDIR() returns the current DOS directory of the drive specified                      0 by <cDrivespec> as a character  string without either leading  or                      0 trailing backslash (\) characters.                                                     0                                                                                        0 ##DATE()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 DATE() --> dSystemDate                                                                 0                                                                                        0 DATE() returns the system date as a date value.                                        0                                                                                        0 ##DAY()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 DAY(<dDate>) --> nDay                                                                  0                                                                                        0 <dDate>   is a date value to convert.                                                  0                                                                                        0 DAY() returns the day number from <dDate>.                                             0                                                                                        0 ##DBAPPEND()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBAPPEND([<lReleaseRecLocks>]) --> NIL                                                 0                                                                                        0 <lReleaseRecLocks>  is a logical  data type that  if true  (.T.),                      0                     clears all pending record locks, then appends                      0                     the next  record.  If  <lReleaseRecLocks>  is                      0                     false (.F.),  all  pending record  locks  are                      0                     maintained and the new record is added to the                      0                     end of the  Lock List. The  default value  of                      0                     <lReleaseRecLocks> is true (.T.).                                  0                                                                                        0 DBAPPEND() adds a new empty record to the active Alias.                                0 ##DBCLEARFILTER()##                                                                    0 ----------------------------------------------------------------                       0                                                                                        0 DBCLEARFILTER() --> NIL                                                                0                                                                                        0 DBCLEARFILTER() clears the logical filter condition, if any,  for                      0 the current work area.                                                                 0                                                                                        0 ##DBCLEARINDEX()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 DBCLEARINDEX() --> NIL                                                                 0                                                                                        0 DBCLEARINDEX() closes any active indexes for the active Alias.                         0                                                                                        0 ##DBCLEARRELATION()##                                                                  0 ----------------------------------------------------------------                       0                                                                                        0 DBCLEARRELATION() --> NIL                                                              0                                                                                        0 DBCLEARRELATION() clears  any  active relations  for  the  active                      0 Alias.                                                                                 0                                                                                        0 ##DBCLOSEALL()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 DBCLOSEALL() --> NIL                                                                   0                                                                                        0 DBCLOSEALL() releases all  occupied work  areas from  use. It  is                      0 equivalent to calling DBCLOSEAREA() on every occupied work area.                       0                                                                                        0      Attention:  DBCLOSEALL()  cannot   be  used  inside   a                           0      "compiled" macro as this will stop the macro execution.                           0      In substitution, DBCLOSE() should be used.                                        0                                                                                        0 ##DBCLOSEAREA()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 DBCLOSEAREA() --> NIL                                                                  0                                                                                        0 DBCLOSEAREA() releases the current work area from use.                                 0                                                                                        0 ##DBCOMMIT()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBCOMMIT() --> NIL                                                                     0                                                                                        0 DBCOMMIT() causes  all updates  to the  current work  area to  be                      0 written to  disk.  All updated  database  and index  buffers  are                      0 written to  DOS  and a  DOS  COMMIT  request is  issued  for  the                      0 database (.dbf) file and any index files associated with the work                      0 area. Inside  a network  environment, DBCOMMIT()  makes  database                      0 updates visible  to other  processes. To  insure data  integrity,                      0 issue DBCOMMIT() before an UNLOCK operation.                                           0                                                                                        0 ##DBCOMMITALL()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 DBCOMMITALL() --> NIL                                                                  0                                                                                        0 DBCOMMITALL() causes all pending updates to all work areas to  be                      0 written to disk. It is equivalent to calling DBCOMMIT() for every                      0 occupied work area.                                                                    0                                                                                        0 ##DBCREATE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBCREATE(<cDatabase>, <aStruct>, [<cDriver>]) --> NIL                                  0                                                                                        0 <cDatabase>         is the name of the new database file, with an                      0                     optional drive and directory, specified as  a                      0                     character string.  If  specified  without  an                      0                     extension (.dbf) is assumed.                                       0                                                                                        0 <aStruct>           is an array  that contains  the structure  of                      0                     <cDatabase> as a series of subarrays, one per                      0                     field. Each subarray contains the  definition                      0                     of  each  field's  attributes  and  has   the                      0                     following structure:                                               0                     <aStruct[n][1]>     cName                                          0                     <aStruct[n][2]>     cType                                          0                     <aStruct[n][3]>     nLength                                        0                     <aStruct[n][4]>     nDecimals                                      0                                                                                        0 <cDriver>           specifies  the  replaceable  database  driver                      0                     (RDD) to  use  to process  the  current  work                      0                     area. <cDriver> is name of the RDD  specified                      0                     as a character expression.                                         0                                                                                        0 DBCREATE() is a  database function that  creates a database  file                      0 from an array containing the structure of the file.                                    0                                                                                        0 ##DBCREATEINDEX()##                                                                    0 ----------------------------------------------------------------                       0                                                                                        0 DBCREATEINDEX(<cIndexName>, <cKeyExpr>, <bKeyExpr>, [<lUnique>])                       0      --> NIL                                                                           0                                                                                        0 <cIndexName>        is  a  character  value  that  specifies  the                      0                     filename of the index file (order bag) to  be                      0                     created.                                                           0                                                                                        0 <cKeyExpr>          is a character value that expresses the index                      0                     key expression in textual form.                                    0                                                                                        0 <bKeyExpr>          is a code block that expresses the index  key                      0                     expression in executable form.                                     0                                                                                        0 <lUnique>           is an optional  logical value that  specifies                      0                     whether a unique index  is to be created.  If                      0                     <lUnique>  is  omitted,  the  current  global                      0                     _SET_UNIQUE setting is used.                                       0                                                                                        0 DBCREATEINDEX() creates an  index for  the active  Alias. If  the                      0 Alias has active indexes, they are closed.                                             0                                                                                        0 ##DBDELETE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBDELETE() --> NIL                                                                     0                                                                                        0 DBDELETE() marks  the  current  record as  deleted  (*).  Records                      0 marked for deletion can be filtered using SET DELETED or  removed                      0 from the file using the PACK command.                                                  0 ##DBEVAL()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DB EVALuate                                                                            0                                                                                        0 DBEVAL(<bBlock>,                                                                       0      [<bForCondition>],                                                                0      [<bWhileCondition>],                                                              0      [<nNextRecords>],                                                                 0      [<nRecord>],                                                                      0      [<lRest>]) --> NIL                                                                0                                                                                        0 <bBlock>            is a code  block to execute  for each  record                      0                     processed.                                                         0                                                                                        0 <bForCondition>     the FOR condition expressed as code block.                         0                                                                                        0 <bWhileCondition>   the WHILE condition expressed as code block.                       0                                                                                        0 <nNextRecords>      is an  optional  number  that  specifies  the                      0                     number of  records to  process starting  with                      0                     the current  record. It  is the  same as  the                      0                     NEXT clause.                                                       0                                                                                        0 <nRecord>           is an optional record  number to process.  If                      0                     this argument is specified, <bBlock> will  be                      0                     evaluated  for  the  specified  record.  This                      0                     argument is the same as the RECORD clause.                         0                                                                                        0 <lRest>             is an optional logical value that  determines                      0                     whether the scope of DBEVAL() is all records,                      0                     or, starting  with  the current  record,  all                      0                     records to the end of file.                                        0                                                                                        0 DBEVAL() is a database function that evaluates a single block for                      0 each record within the active Alias.                                                   0                                                                                        0 ##DBFILTER()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBFILTER() --> cFilter                                                                 0                                                                                        0 BFILTER() returns  the filter  condition defined  in the  current                      0 work area  as a  character string.  If no  FILTER has  been  SET,                      0 DBFILTER() returns a null string ("").                                                 0                                                                                        0 ##DBGOBOTTOM()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 DBGOBOTTOM() --> NIL                                                                   0                                                                                        0 DBGOBOTTOM() moves to last logical record in the active Alias.                         0                                                                                        0 ##DBGOTO()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DBGOTO(<nRecordNumber>) --> NIL                                                        0                                                                                        0 <nRecordNumber>     is a numeric value that specifies the  record                      0                     number of the desired record.                                      0                                                                                        0 DBGOTO() moves  to the  record whose  record number  is equal  to                      0 <nRecordNumber>. If  no  such record  exists,  the work  area  is                      0 positioned to LASTREC() + 1 and both EOF() and BOF() return  true                      0 (.T.).                                                                                 0                                                                                        0 ##DBGOTOP()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 DBGOTOP() --> NIL                                                                      0                                                                                        0 DBGOTOP() moves to the first logical  record in the current  work                      0 area.                                                                                  0                                                                                        0 ##DBRECALL()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBRECALL() --> NIL                                                                     0                                                                                        0 DBRECALL() causes the current  record to be  reinstated if it  is                      0 marked for deletion.                                                                   0                                                                                        0 ##DBREINDEX()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 DBREINDEX() --> NIL                                                                    0                                                                                        0 DBREINDEX() rebuilds  all  active  indexes  associated  with  the                      0 active Alias.                                                                          0                                                                                        0 ##DBRELATION()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 DBRELATION(<nRelation>) --> cLinkExp                                                   0                                                                                        0 <nRelation>         is the position  of the  desired relation  in                      0                     the list of activr Alias relations.                                0                                                                                        0 DBRELATION() returns a  character string  containing the  linking                      0 expression of the relation specified by <nRelation>. If there  is                      0 no RELATION  SET for  <nRelation>,  DBRELATION() returns  a  null                      0 string ("").                                                                           0                                                                                        0 ##DBRLOCK()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 DB Record LOCK                                                                         0                                                                                        0 DBRLOCK([<nRecNo>]) --> lSuccess                                                       0                                                                                        0 <nRecNo>       is the record number to be locked. The default  is                      0                the current record.                                                     0                                                                                        0 DBRLOCK() is a database function that locks the record identified                      0 by <nRecNo> or the current record.                                                     0                                                                                        0 ##DBRLOCKLIST()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 DBRLOCKLIST() --> aRecordLocks                                                         0                                                                                        0 DBRLOCKLIST() returns  a  one-dimensional  array  of  the  locked                      0 records in the active Alias.                                                           0                                                                                        0 ##DBRSELECT()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 DB Relation SELECT                                                                     0                                                                                        0 DBRSELECT(<nRelation>) --> nWorkArea                                                   0                                                                                        0 <nRelation>         is the position  of the  desired relation  in                      0                     the list of current work area relations.                           0                                                                                        0 DBRSELECT()  returns  the  work  area  number  of  the   relation                      0 specified by <nRelation> as an integer numeric value. If there is                      0 no RELATION SET for <nRelation>, DBRSELECT() returns zero.                             0                                                                                        0 ##DBRUNLOCK()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 DBRUNLOCK([<nRecNo>]) --> NIL                                                          0                                                                                        0 <nRecNo>       is the record number  to be unlocked. The  default                      0                is all previously locked records.                                       0                                                                                        0 DBRUNLOCK() is  a  database  function  that  unlocks  the  record                      0 identified by <nRecNo> or all locked records.                                          0                                                                                        0 ##DBSEEK()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DBSEEK(<expKey>, [<lSoftSeek>]) --> lFound                                             0                                                                                        0 <expKey>            is a value of any type that specifies the key                      0                     value associated with the desired record.                          0                                                                                        0 <lSoftSeek>         is an optional  logical value that  specifies                      0                     whether a soft seek is to be performed.  This                      0                     determines how the work area is positioned if                      0                     the specified  key  value is  not  found.  If                      0                     <lSoftSeek> is  omitted, the  current  global                      0                     _SET_SOFTSEEK setting is used.                                     0                                                                                        0 DBSEEK() returns true (.T.) if the specified key value was found;                      0 otherwise, it returns false (.F.).                                                     0                                                                                        0 ##DBSELECTAREA()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 DBSELECTAREA(<nArea> | <cAlias>) --> NIL                                               0                                                                                        0 <nArea>             is a  numeric  value between  zero  and  250,                      0                     inclusive, that specifies the work area being                      0                     selected.                                                          0                                                                                        0 <cAlias>            is a character value that specifies the alias                      0                     of  a  currently  occupied  work  area  being                      0                     selected.                                                          0                                                                                        0 DBSELECTAREA() causes  the  specified  work area  to  become  the                      0 current work area. All subsequent database operations will  apply                      0 to  this  work  area  unless  another  work  area  is  explicitly                      0 specified for an operation.                                                            0                                                                                        0 ##DBSETDRIVER()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 DBSETDRIVER([<cDriver>]) --> cCurrentDriver                                            0                                                                                        0 <cDriver>           is an optional character value that specifies                      0                     the name of the  database driver that  should                      0                     be used to activate and manage new work areas                      0                     when no driver is explicitly specified.                            0 DBSETDRIVER() returns the name of the current default driver.                          0                                                                                        0 ##DBSETFILTER()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 DBSETFILTER(<bCondition>, [<cCondition>]) --> NIL                                      0                                                                                        0 <bCondition>        is a  code block  that expresses  the  filter                      0                     condition in executable form.                                      0                                                                                        0 <cCondition>        is  a  character  value  that  expresses  the                      0                     filter  condition   in   textual   form.   If                      0                     <cCondition> is  omitted,  the  DBSETFILTER()                      0                     function will return an empty string for  the                      0                     work area.                                                         0                                                                                        0 DBSETFILTER() sets  a logical  filter condition  for the  current                      0 work area. When a  filter is set, records  which do not meet  the                      0 filter condition  are not  logically visible.  That is,  database                      0 operations which act on logical  records will not consider  these                      0 records.  The   filter  expression   supplied  to   DBSETFILTER()                      0 evaluates to true (.T.)  if the current  record meets the  filter                      0 condition; otherwise, it should evaluate to false (.F.).                               0                                                                                        0 ##DBSETINDEX()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 DBSETINDEX(<cOrderBagName>) --> NIL                                                    0                                                                                        0 <cOrderBagName>     is  a  character  value  that  specifies  the                      0                     filename of the index file (index bag) to  be                      0                     opened.                                                            0                                                                                        0 DBSETINDEX() is a database function that adds the contents of  an                      0 Order Bag  into the  Order List  of the  current work  area.  Any                      0 Orders already  associated  with the  work  area continue  to  be                      0 active.  If  the  newly  opened  Order  Bag  is  the  only  Order                      0 associated with the work area, it becomes the controlling  Order;                      0 otherwise, the controlling Order remains unchanged. If the  Order                      0 Bag contains more than one Order,  and there are no other  Orders                      0 associated with the work area, the  first Order in the new  Order                      0 Bag becomes the controlling Order.                                                     0                                                                                        0 ##DBSETORDER()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 DBSETORDER(<nOrderNum>) --> NIL                                                        0                                                                                        0 <nOrderNum>         is a numeric  value that  specifies which  of                      0                     the active indexes is  to be the  controlling                      0                     index.                                                             0                                                                                        0 DBSETORDER() controls which of  the active Alias' active  indexes                      0 is the controlling index.                                                              0                                                                                        0 ##DBSETRELATION()##                                                                    0 ----------------------------------------------------------------                       0                                                                                        0 DBSETRELATION(<nArea> | <cAlias>, <bExpr>, [<cExpr>]) --> NIL                          0                                                                                        0 <nArea>   is a numeric value that specifies the work area  number                      0           of the child work area.                                                      0                                                                                        0 <cAlias>  is a character  value that specifies  the alias of  the                      0           child work area.                                                             0                                                                                        0 <bExpr>   is  a  code   block  that   expresses  the   relational                      0           expression in executable form.                                               0                                                                                        0 <cExpr>   is an  optional  character  value  that  expresses  the                      0           relational expression in  textual form.  If <cExpr>  is                      0           omitted, the  DBRELATION()  function returns  an  empty                      0           string for the relation.                                                     0                                                                                        0 DBSETRELATION() relates  the work  area specified  by <nArea>  or                      0 <cAlias> (the child  work area), to  the current  work area  (the                      0 parent work area). Any existing relations remain active.                               0                                                                                        0 ##DBSKIP()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DBSKIP([<nRecords>]) --> NIL                                                           0                                                                                        0 <nRecords>          is the  number of  logical records  to  move,                      0                     relative to  the current  record. A  positive                      0                     value means to skip  forward, and a  negative                      0                     value means to  skip backward. If  <nRecords>                      0                     is omitted, a value of 1 is assumed.                               0                                                                                        0 DBSKIP() moves either forward or backward relative to the current                      0 record.  Attempting  to  skip  forward  beyond  the  last  record                      0 positions the work area to LASTREC()  + 1 and EOF() returns  true                      0 (.T.). Attempting  to  skip  backward  beyond  the  first  record                      0 positions the work  area to the  first record  and BOF()  returns                      0 true (.T.).                                                                            0                                                                                        0 ##DBSTRUCT()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBSTRUCT() --> aStruct                                                                 0                                                                                        0 DBSTRUCT() returns the structure of the current database file  in                      0 an array whose  length is equal  to the number  of fields in  the                      0 database file. Each element of the array is a subarray containing                      0 information for  one  field.  The subarrays  have  the  following                      0 format:                                                                                0 <aStruct[n][1]>     cName                                                              0 <aStruct[n][2]>     cType                                                              0 <aStruct[n][3]>     nLength                                                            0 <aStruct[n][4]>     nDecimals                                                          0 If there is  no database file  in USE in  the current work  area,                      0 DBSTRUCT() returns an empty array ({}).                                                0                                                                                        0 ##DBUNLOCK()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBUNLOCK() --> NIL                                                                     0                                                                                        0 DBUNLOCK() releases  any record  or file  locks obtained  by  the                      0 current process for  the current  work area.  DBUNLOCK() is  only                      0 meaningful on a shared database in a network environment.                              0                                                                                        0 ##DBUNLOCKALL()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 DBUNLOCKALL() --> NIL                                                                  0                                                                                        0 DBUNLOCKALL() releases any record or  file locks obtained by  the                      0 current  process  for  any  work  area.  DBUNLOCKALL()  is   only                      0 meaningful on a shared database in a network environment.                              0                                                                                        0 ##DBUSEAREA()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 DBUSEAREA( [<lNewArea>], [<cDriver>], <cName>, [<xcAlias>],                            0      [<lShared>], [<lReadonly>]) --> NIL                                               0                                                                                        0 <lNewArea>          is an optional logical value. A value of true                      0                     (.T.) selects the lowest numbered  unoccupied                      0                     work area as the current work area before the                      0                     use operation. If  <lNewArea> is false  (.F.)                      0                     or omitted, the current work area is used; if                      0                     the work  area  is  occupied,  it  is  closed                      0                     first.                                                             0                                                                                        0 <cDriver>           is an optional  character value. If  present,                      0                     it specifies the name of the database  driver                      0                     which  will   service  the   work  area.   If                      0                     <cDriver> is  omitted,  the  current  default                      0                     driver is used.                                                    0                                                                                        0 <cName>             specifies the  name  of the  database  (.dbf)                      0                     file to be opened.                                                 0                                                                                        0 <xcAlias>           is an optional  character value. If  present,                      0                     it specifies the alias to be associated  with                      0                     the work area.  The alias  must constitute  a                      0                     valid identifier.  A valid  <xcAlias> may  be                      0                     any legal  identifier  (i.e., it  must  begin                      0                     with an alphabetic character and may  contain                      0                     numeric  or  alphabetic  characters  and  the                      0                     underscore).  If  <xcAlias>  is  omitted,   a                      0                     default alias is constructed from <cName>.                         0                                                                                        0 <lShared>           is an optional logical value. If present,  it                      0                     specifies whether  the database  (.dbf)  file                      0                     should be accessible to other processes on  a                      0                     network. A value of true (.T.) specifies that                      0                     other processes should  be allowed access;  a                      0                     value  of  false  (.F.)  specifies  that  the                      0                     current process is to have exclusive  access.                      0                     If <lShared> is  omitted, the current  global                      0                     _SET_EXCLUSIVE  setting  determines   whether                      0                     shared access is allowed.                                          0                                                                                        0 <lReadonly>         is an optional  logical value that  specifies                      0                     whether  updates   to  the   work  area   are                      0                     prohibited. A value  of true (.T.)  prohibits                      0                     updates;  a  value  of  false  (.F.)  permits                      0                     updates. A value of  true (.T.) also  permits                      0                     read-only access  to the  specified  database                      0                     (.dbf) file. If  <lReadonly> is omitted,  the                      0                     default value is false (.F.).                                      0                                                                                        0 DBUSEAREA() opens the specified database (.dbf).                                       0                                                                                        0 ##DBDELETE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DELETED() --> lDeleted                                                                 0                                                                                        0 DELETED() returns true (.T.) if the current record is marked  for                      0 deletion; otherwise,  it  returns false  (.F.).  If there  is  no                      0 database file in USE in the current work area, DELETED()  returns                      0 false (.F.).                                                                           0                                                                                        0 ##DESCEND()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 DESCEND(<exp>) --> ValueInverted                                                       0                                                                                        0 <exp>     is any valid expression of character, date, logical, or                      0           numeric type.                                                                0                                                                                        0 DESCEND() returns an inverted expression of the same data type as                      0 the <exp>,  except for  dates which  return  a numeric  value.  A                      0 DESCEND() of CHR(0) always returns CHR(0).                                             0                                                                                        0 ##DEVOUT()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DEVice OUTput                                                                          0                                                                                        0 DEVOUT(<exp>, [<cColorString>]) --> NIL                                                0                                                                                        0 <exp>               is the value to display.                                           0                                                                                        0 <cColorString>      is an  optional  argument  that  defines  the                      0                     display color of <exp>.                                            0                                                                                        0 DEVOUT() is a full-screen display function that writes the  value                      0 of a  single expression  to the  current  device at  the  current                      0 cursor or printhead position.                                                          0                                                                                        0 ##DEVOUTPICT()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 DEVice OUTput PICTure                                                                  0                                                                                        0 DEVOUTPICT(<exp>, <cPicture>, [<cColorString>]) --> NIL                                0                                                                                        0 <exp>               is the value to display.                                           0                                                                                        0 <cPicture>          defines  the  formatting   control  for   the                      0                     display of <exp>.                                                  0                                                                                        0 <cColorString>      is an  optional  argument  that  defines  the                      0                     display color of <exp>.                                            0                                                                                        0 DEVOUTPICT() is a  full-screen display function  that writes  the                      0 value of a single expression to the current device at the current                      0 cursor or printhead position.                                                          0                                                                                        0 ##DEVPOS()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DEVice POSition                                                                        0                                                                                        0 DEVPOS(<nRow>, <nCol>) --> NIL                                                         0                                                                                        0 <nRow>, <nCol>      are the new row  and column positions of  the                      0                     cursor or printhead.                                               0                                                                                        0 DEVPOS() is  an environment  function that  moves the  screen  or                      0 printhead depending on the current DEVICE.                                             0                                                                                        0 ##DIRECTORY()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 DIRECTORY(<cDirSpec>, [<cAttributes>]) --> aDirectory                                  0                                                                                        0 <cDirSpec>          identifies  the  drive,  directory  and  file                      0                     specification  for   the  directory   search.                      0                     Wildcards   are   allowed    in   the    file                      0                     specification. If <cDirSpec> is omitted,  the                      0                     default value is *.*.                                              0                                                                                        0 <cAttributes>       specifies inclusion  of  files  with  special                      0                     attributes  in   the  returned   information.                      0                     <cAttributes> is a  string containing one  or                      0                     more of the following characters:                                  0                     H    Include hidden files                                          0                     S    Include system files                                          0                     D    Include directories                                           0                     V    Search for the DOS volume label only                          0                     Normal  files  are  always  included  in  the                      0                     search, unless you specify V.                                      0                                                                                        0 DIRECTORY() returns  an array  of subarrays,  with each  subarray                      0 containing information about each  file matching <cDirSpec>.  The                      0 subarray has the following structure:                                                  0 <aDirectory[N][1]>  cName                                                              0 <aDirectory[N][2]>  cSize                                                              0 <aDirectory[N][3]>  dDate                                                              0 <aDirectory[N][4]>  cTime                                                              0 <aDirectory[N][5]>  cAttributes                                                        0 If no files are found matching <cDirSpec> or if <cDirSpec> is  an                      0 illegal path or file specification, DIRECTORY() returns an  empty                      0 ({}) array.                                                                            0                                                                                        0 ##DISKSPACE()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 DISKSPACE([<nDrive>]) --> nBytes                                                       0                                                                                        0 <nDrive>  is the number of the drive to query, where one is drive                      0           A, two  is B,  three  is C,  etc.  The default  is  the                      0           current DOS drive if  <nDrive> is omitted or  specified                      0           as zero.                                                                     0                                                                                        0 DISKSPACE() returns the  number of bytes  of empty  space on  the                      0 specified disk drive as an integer numeric value.                                      0                                                                                        0 ##DISPBOX()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 DISPlay BOX                                                                            0                                                                                        0 DISPBOX(<nTop>, <nLeft>, <nBottom>, <nRight>,                                          0      [<cnBoxString>], [<cColorString>]) --> NIL                                        0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>                                                   0                     define the coordinates of the box.                                 0                                                                                        0 <cnBoxString>       is a  numeric  or character  expression  that                      0                     defines the border characters of the box.  If                      0                     specified as a numeric expression, a value of                      0                     1 displays a single-line box and a value of 2                      0                     displays a double-line box. All other numeric                      0                     values  display   a   single-line   box.   If                      0                     <cnBoxString> is a  character expression,  it                      0                     specifies  the  characters  to  be  used   in                      0                     drawing the box.  This is a  string of  eight                      0                     border characters and a fill character.                            0 <cColorString>      defines the display color of the box that  is                      0                     drawn.                                                             0                                                                                        0 DISPBOX() is a screen function that draws a box at the  specified                      0 display coordinates in the specified color.                                            0                                                                                        0 ##DISPOUT()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 DISPlay OUT                                                                            0                                                                                        0 DISPOUT(<exp>, [<cColorString>]) --> NIL                                               0                                                                                        0 <exp>               is the value to display.                                           0                                                                                        0 <cColorString>      is an  optional  argument  that  defines  the                      0                     display color of <exp>.                                            0                                                                                        0 <cColorString>      is  a  character  expression  containing  the                      0                     standard color setting.                                            0                                                                                        0 DISPOUT() is a simple output function that writes the value of  a                      0 single expression to the display at the current cursor  position.                      0 This function ignores the SET DEVICE setting; output always  goes                      0 to the screen.                                                                         0                                                                                        0 ##DOW()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 Day Of Week                                                                            0                                                                                        0 DOW(<dDate>) --> nDay                                                                  0                                                                                        0 <dDate>   is a date value to convert.                                                  0                                                                                        0 DOW() returns the day  of the week as  a number between zero  and                      0 seven. The first day of the week is one (Sunday) and the last day                      0 is seven (Saturday). If <dDate> is empty, DOW() returns zero.                          0                                                                                        0 ##DTOC()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Dat TO Character                                                                       0                                                                                        0 DTOC(<dDate>) --> cDate                                                                0                                                                                        0 <dDate>        is the date value to convert.                                           0                                                                                        0 DTOC() returns a character string representation of a date value.                      0 The return value is formatted in the current date format. A  null                      0 date returns a string  of spaces equal in  length to the  current                      0 date format.                                                                           0                                                                                        0 ##DTOS()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Dat TO Sort                                                                            0                                                                                        0 DTOS(<dDate>) --> cDate                                                                0                                                                                        0 <dDate>        is the date value to convert.                                           0                                                                                        0 DTOS() returns a  character string eight  characters long in  the                      0 form, yyyymmdd. When  <dDate> is a  null date (CTOD("")),  DTOS()                      0 returns a string of eight spaces.                                                      0                                                                                        0 ##EMPTY()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 EMPTY(<exp>) --> lEmpty                                                                0                                                                                        0 <exp>     is an expression of any data type.                                           0                                                                                        0 EMPTY() returns true (.T.) if the expression results in an  empty                      0 value; otherwise, it returns false (.F.):                                              0 Array               {}                                                                 0 Character/Memo      Spaces, tabs, CR/LF, or ""                                         0 Numeric             0                                                                  0 Date                CTOD("")                                                           0 Logical             .F.                                                                0 NIL                 NIL                                                                0                                                                                        0 ##EOF()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 End Of File                                                                            0                                                                                        0 EOF() --> lBoundary                                                                    0                                                                                        0 EOF() returns true  (.T.) when  an attempt  is made  to move  the                      0 record pointer beyond the last logical record in a database file;                      0 otherwise, it returns false (.F.). If  there is no database  file                      0 open in the current work area, EOF() returns false (.F.). If  the                      0 current database  file contains  no records,  EOF() returns  true                      0 (.T.).                                                                                 0                                                                                        0 ##EVAL()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 code block EVALuation                                                                  0                                                                                        0 EVAL(<bBlock>, [<BlockArg list>]) --> LastBlockValue                                   0                                                                                        0 <bBlock>            is the code block to evaluate.                                     0                                                                                        0 <BlockArg list>     is a list  of arguments to  send to the  code                      0                     block before it is evaluated.                                      0                                                                                        0 To execute or evaluate a code  block, call EVAL() with the  block                      0 value and  any parameters.  The parameters  are supplied  to  the                      0 block when  it  is executed.  Code  blocks  may be  a  series  of                      0 expressions separated by commas. When a code block is  evaluated,                      0 the returned value  is the value  of the last  expression in  the                      0 block.                                                                                 0                                                                                        0 ##EXP()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 EXPonent                                                                               0                                                                                        0 EXP(<nExponent>) --> nAntilogarithm                                                    0                                                                                        0 <nExponent>         is the natural logarithm for which a  numeric                      0                     value is to be calculated.                                         0                                                                                        0 EXP() returns a numeric value that  is equivalent to the value  e                      0 raised to the specified power.                                                         0                                                                                        0 ##FCLOSE()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 File CLOSE                                                                             0                                                                                        0 FCLOSE(<nHandle>) --> lError                                                           0                                                                                        0 <nHandle>           is the file  handle obtained previously  from                      0                     FOPEN() or FCREATE().                                              0                                                                                        0 FCLOSE() is a  low-level file function  that closes binary  files                      0 and forces the associated DOS buffers  to be written to disk.  If                      0 the operation fails, FCLOSE()  returns false (.F.). FERROR()  can                      0 then be used to determine the reason for the failure.                                  0                                                                                        0 ##FCOUNT()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 Field COUNT                                                                            0                                                                                        0 FCOUNT() --> nFields                                                                   0                                                                                        0 FCOUNT() returns the number of fields in the database file in the                      0 active Alias as an integer numeric value. If there is no database                      0 file open, FCOUNT() returns zero.                                                      0                                                                                        0 ##FCREATE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 Field CREATE                                                                           0                                                                                        0 FCREATE(<cFile>, [<nAttribute>]) --> nHandle                                           0                                                                                        0 <cFile>             is the name  of the  file to  create. If  the                      0                     file already exists, its length is  truncated                      0                     to zero without warning.                                           0                                                                                        0 <nAttribute>        is the  binary  file attribute,  the  default                      0                     value is zero.                                                     0                     <nAttribute> = 0    Normal (default)                               0                     <nAttribute> = 1    Read-only                                      0                     <nAttribute> = 2    Hidden                                         0                     <nAttribute> = 4    System                                         0                                                                                        0 FCREATE() returns the DOS  file handle number  of the new  binary                      0 file in  the  range  of  zero to  65,535.  If  an  error  occurs,                      0 FCREATE() returns -1  and FERROR() is  set to  indicate an  error                      0 code.                                                                                  0                                                                                        0 ##FERASE()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 File ERASE                                                                             0                                                                                        0 FERASE(<cFile>) --> nSuccess                                                           0                                                                                        0 <cFile>   is the name (with  or without path) of  the file to  be                      0           deleted from disk.                                                           0                                                                                        0 FERASE() is a file  function that deletes  a specified file  from                      0 disk. FERASE() returns -1 if the  operation fails and zero if  it                      0 succeeds.                                                                              0                                                                                        0 ##FERROR()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 File ERROR                                                                             0                                                                                        0 FERROR() --> nErrorCode                                                                0                                                                                        0 FERROR() returns the DOS error from the last file operation as an                      0 integer numeric value.  If there  is no  error, FERROR()  returns                      0 zero.                                                                                  0 <nErrorCode> = 0    Successful                                                         0 <nErrorCode> = 2    File not found                                                     0 <nErrorCode> = 3    Path not found                                                     0 <nErrorCode> = 4    Too many files open                                                0 <nErrorCode> = 5    Access denied                                                      0 <nErrorCode> = 6    Invalid handle                                                     0 <nErrorCode> = 8    Insufficient memory                                                0 <nErrorCode> = 15   Invalid drive specified                                            0 <nErrorCode> = 19   Attempted to write to a write-protected disk                       0 <nErrorCode> = 21   Drive not ready                                                    0 <nErrorCode> = 23   Data CRC error                                                     0 <nErrorCode> = 29   Write fault                                                        0 <nErrorCode> = 30   Read fault                                                         0 <nErrorCode> = 32   Sharing violation                                                  0 <nErrorCode> = 33   Lock Violation                                                     0                                                                                        0 FERROR() is a low-level file function that indicates a DOS  error                      0 after a file function is used.                                                         0                                                                                        0 ##FIELDBLOCK()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 FIELDBLOCK(<cFieldName>) --> bFieldBlock                                               0                                                                                        0 <cFieldName>        is the name of the field to which the set-get                      0                     block will refer.                                                  0                                                                                        0 FIELDBLOCK() returns  a code  block  that, when  evaluated,  sets                      0 (assigns) or gets (retrieves)  the value of  the given field.  If                      0 <cFieldName>  does   not  exist   in  the   current  work   area,                      0 FIELDBLOCK() returns NIL.                                                              0                                                                                        0 ##FIELDGET()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 FIELDGET(<nField>) --> ValueField                                                      0                                                                                        0 <nField>            is the ordinal position  of the field in  the                      0                     record structure for the current work area.                        0                                                                                        0 FIELDGET() returns the value of the specified field. If  <nField>                      0 does not correspond to the position  of any field in the  current                      0 database file, FIELDGET() returns NIL.                                                 0                                                                                        0 ##FIELDNAME()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 FIELDNAME(<nPosition>) --> cFieldName                                                  0                                                                                        0 <nPosition>         is the position  of a field  in the  database                      0                     file structure.                                                    0                                                                                        0 FIELDNAME()  returns  the  name  of  the  specified  field  as  a                      0 character string.  If  <nPosition>  does  not  correspond  to  an                      0 existing field in  the current database  file or  if no  database                      0 file is open in the current work area, FIELDNAME() returns a null                      0 string ("").                                                                           0                                                                                        0 ##FIELDPOS()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 FIELD POSition                                                                         0                                                                                        0 FIELDPOS(<cFieldName>) --> nFieldPos                                                   0                                                                                        0 <cFieldName>        is the  name of  a field  in the  current  or                      0                     specified work area.                                               0                                                                                        0 FIELDPOS() returns the position of the specified field within the                      0 list of  fields associated  with the  current or  specified  work                      0 area. If the current  work area has no  field with the  specified                      0 name, FIELDPOS() returns zero.                                                         0                                                                                        0 ##FIELDPUT()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 FIELDPUT(<nField>, <expAssign>) --> ValueAssigned                                      0                                                                                        0 <nField>            is the ordinal position  of the field in  the                      0                     current database file.                                             0                                                                                        0 <expAssign>         is the value  to assign to  the given  field.                      0                     The data type of  this expression must  match                      0                     the  data  type   of  the  designated   field                      0                     variable.                                                          0                                                                                        0 FIELDPUT() is a database function that assigns <expAssign> to the                      0 field at ordinal position <nField> in the current work area. This                      0 function allows  you  to set  the  value  of a  field  using  its                      0 position within the database file structure rather than its field                      0 name.                                                                                  0                                                                                        0 ##FIELDWBLOCK()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 FIELD Work area BLOCK                                                                  0                                                                                        0 FIELDWBLOCK(<cFieldName>, <nWorkArea>) --> bFieldWBlock                                0                                                                                        0 <cFieldName>        is the  name  of  the field  specified  as  a                      0                     character string.                                                  0                                                                                        0 <nWorkArea>         is the  work  area  number  where  the  field                      0                     resides specified as a numeric value.                              0                                                                                        0 FIELDWBLOCK() returns  a code  block that,  when evaluated,  sets                      0 (assigns) or gets  (retrieves) the value  of <cFieldName> in  the                      0 work area  designated by  <nWorkArea>. If  <cFieldName> does  not                      0 exist in the specified work area, FIELDWBLOCK() returns NIL.                           0                                                                                        0 ##FILE()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 FILE(<cFilespec>) --> lExists                                                          0                                                                                        0 <cFilespec>         is in the current default directory and path.                      0                     It is a standard file specification that  can                      0                     include the wildcard  characters *  and ?  as                      0                     well as a drive and path reference.                                0                                                                                        0 FILE() returns  true (.T.)  if  there is  a  match for  any  file                      0 matching the  <cFilespec> pattern;  otherwise, it  returns  false                      0 (.F.).                                                                                 0 ##FLOCK()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 File LOCK                                                                              0                                                                                        0 FLOCK() --> lSuccess                                                                   0                                                                                        0 FLOCK() tries to lock the active Alias and returns true (.T.)  if                      0 it succeeds; otherwise, it returns false (.F.).                                        0                                                                                        0 ##FOPEN()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 File OPEN                                                                              0                                                                                        0 FOPEN(<cFile>, [<nMode>]) --> nHandle                                                  0                                                                                        0 <cFile>   is the name of the file  to open including the path  if                      0           there is one.                                                                0                                                                                        0 <nMode>   is the  requested  DOS  open mode  indicating  how  the                      0           opened file  is  to  be  accessed.  The  open  mode  is                      0           composed of the sum of two elements: the Open mode  and                      0           the Sharing mode.                                                            0           Open mode:                                                                   0                0    Open for reading (default)                                         0                1    Open for writing                                                   0                2    Open for reading or writing                                        0           Sharing Mode:                                                                0                0    Compatibility mode (default)                                       0                16   Exclusive use                                                      0                32   Prevent others from writing                                        0                48   Prevent others from reading                                        0                64   Allow others to read or write                                      0                                                                                        0 FOPEN() returns the file handle of  the opened file in the  range                      0 of zero to 65,535. If an error occurs, FOPEN() returns -1.                             0                                                                                        0 ##FOUND()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 FOUND() --> lSuccess                                                                   0                                                                                        0 FOUND() returns  true  (.T.)  if  the  last  search  command  was                      0 successful; otherwise, it returns false (.F.).                                         0                                                                                        0 ##FREAD()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 File READ                                                                              0                                                                                        0 FREAD(<nHandle>, @<cBufferVar>, <nBytes>) --> nBytes                                   0                                                                                        0 <nHandle>           is the  file  handle obtained  from  FOPEN(),                      0                     FCREATE(), or predefined by DOS.                                   0                                                                                        0 <cBufferVar>        is the name  of an  existing and  initialized                      0                     character variable  used to  store data  read                      0                     from the specified file.  The length of  this                      0                     variable must  be greater  than or  equal  to                      0                     <nBytes>.  <cBufferVar>  must  be  passed  by                      0                     reference and, therefore, must be prefaced by                      0                     the pass-by-reference operator (@).                                0                                                                                        0 <nBytes>            is the  number  of  bytes to  read  into  the                      0                     buffer.                                                            0                                                                                        0 FREAD() tries  to  read <nBytes>  of  the binary  file  <nHandle>                      0 inside <cBufferVar>. It returns the number of bytes  successfully                      0 read as  an  integer numeric  value.  A return  value  less  than                      0 <nBytes> or zero indicates end of file or some other read error.                       0                                                                                        0 ##FREADSTR()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 File READ STRing                                                                       0                                                                                        0 FREADSTR(<nHandle>, <nBytes>) --> cString                                              0                                                                                        0 <nHandle>           is the  file  handle obtained  from  FOPEN(),                      0                     FCREATE(), or predefined by DOS.                                   0                                                                                        0 <nBytes>            is the number of bytes to read, beginning  at                      0                     the current DOS file pointer position.                             0                                                                                        0 FREADSTR() returns a character string up to 65,535 (64K) bytes. A                      0 null return  value  ("")  indicates an  error  or  end  of  file.                      0 FREADSTR() is  a low-level  file function  that reads  characters                      0 from an  open binary  file beginning  with the  current DOS  file                      0 pointer position. Characters are read up  to <nBytes> or until  a                      0 null character (CHR(0)) is  encountered. All characters are  read                      0 including control characters except for CHR(0). The file  pointer                      0 is then moved forward <nBytes>. If  <nBytes> is greater than  the                      0 number of bytes from the pointer position to the end of the file,                      0 the file pointer is positioned to the last byte in the file.                           0                                                                                        0 ##FRENAME()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 File RENANE                                                                            0                                                                                        0 FRENAME(<cOldFile>, <cNewFile>) --> nSuccess                                           0                                                                                        0 <cOldFile>          is the name of the file to rename,  including                      0                     the file  extension.  A drive  letter  and/or                      0                     path name may also be included as part of the                      0                     filename.                                                          0                                                                                        0 <cNewFile>          is the new  name of the  file, including  the                      0                     file extension.  A drive  letter and/or  path                      0                     name may  also be  included  as part  of  the                      0                     name.                                                              0                                                                                        0 FRENAME() returns  -1  if the  operation  fails and  zero  if  it                      0 succeeds.                                                                              0                                                                                        0 ##FSEEK()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 File SEEK                                                                              0                                                                                        0 FSEEK(<nHandle>, <nOffset>, [<nOrigin>]) --> nPosition                                 0                                                                                        0 <nHandle>           is the  file  handle obtained  from  FOPEN(),                      0                     FCREATE(), or predefined by DOS.                                   0                                                                                        0 <nOffset>           is the  number  of  bytes to  move  the  file                      0                     pointer  from   the   position   defined   by                      0                     <nOrigin>. It can be  a positive or  negative                      0                     number. A positive  number moves the  pointer                      0                     forward, and  a  negative  number  moves  the                      0                     pointer backward in the file.                                      0                                                                                        0 <nOrigin>           defines the  starting  location of  the  file                      0                     pointer  before  FSEEK()  is  executed.   The                      0                     default  value  is  zero,  representing   the                      0                     beginning of file. If <nOrigin> is the end of                      0                     file, <nOffset> must be zero or negative.                          0                     <nOrigin> = 0  Seek from beginning of file                         0                     <nOrigin> = 1  Seek from the current                               0                                    pointer position                                    0                     <nOrigin> = 2  Seek from end of file                               0                                                                                        0 FSEEK() returns the new position of the file pointer relative  to                      0 the beginning of file (position 0)  as an integer numeric  value.                      0 This value is without regard to the original position of the file                      0 pointer. FSEEK() is a low-level file function that moves the file                      0 pointer forward  or  backward  in an  open  binary  file  without                      0 actually  reading  the  contents  of  the  specified  file.   The                      0 beginning  position  and   offset  are   specified  as   function                      0 arguments, and the new file position is returned.                                      0                                                                                        0 ##FWRITE()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 File WRITE                                                                             0                                                                                        0 FWRITE(<nHandle>, <cBuffer>, [<nBytes>]) --> nBytesWritten                             0                                                                                        0 <nHandle> is the file handle obtained from FOPEN(), FCREATE(), or                      0           predefined by DOS.                                                           0                                                                                        0 <cBuffer> is the character string to write to the specified file.                      0                                                                                        0                                                                                        0 <nBytes>  indicates the number of bytes to write beginning at the                      0           current file pointer position.  If omitted, the  entire                      0           content of <cBuffer> is written.                                             0                                                                                        0 FWRITE() returns  the  number  of bytes  written  as  an  integer                      0 numeric value. If the  value returned is  equal to <nBytes>,  the                      0 operation was  successful.  If  the return  value  is  less  than                      0 <nBytes> or zero, either  the disk is full  or another error  has                      0 occurred.                                                                              0                                                                                        0 ##GETENV()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 GET ENVironment                                                                        0                                                                                        0 GETENV(<cEnvironmentVariable>) --> cString                                             0                                                                                        0 <cEnvironmentVariable>        is the name of the DOS  environment                      0                               variable.  When   specifying   this                      0                               argument,   you    can   use    any                      0                               combination of upper and  lowercase                      0                               letters;  GETENV()  is  not   case-                      0                               sensitive.                                               0                                                                                        0 GETENV() returns the  contents of the  specified DOS  environment                      0 variable as a character string. If the variable cannot be  found,                      0 GETENV() returns a null string ("").                                                   0                                                                                        0 ##HARDCR()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 HARD Carriage Return                                                                   0                                                                                        0 HARDCR(<cString>) --> cConvertedString                                                 0                                                                                        0 <cString>           is the  character  string or  memo  field  to                      0                     convert.                                                           0                                                                                        0 HARDCR() is  a  memo function  that  replaces all  soft  carriage                      0 returns (CHR(141)) with  hard carriage returns  (CHR(13)). It  is                      0 used to display long character strings and memo fields containing                      0 soft carriage returns with console commands.                                           0                                                                                        0 ##HEADER()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 HEADER() --> nBytes                                                                    0                                                                                        0 HEADER() returns the number of bytes in the header of the current                      0 database file as an integer numeric value. If no database file is                      0 in use, HEADER() returns a zero (0).                                                   0                                                                                        0 ##I2BIN()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Integer to BINary                                                                      0                                                                                        0 I2BIN(<nInteger>) --> cBinaryInteger                                                   0                                                                                        0 <nInteger>     is an integer  numeric value  to convert.  Decimal                      0                digits are truncated.                                                   0                                                                                        0 I2BIN() returns a two-byte  character string containing a  16-bit                      0 binary integer.                                                                        0                                                                                        0 ##IF()##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 [I]IF(<lCondition>, <expTrue>, <expFalse>) --> Value                                   0                                                                                        0 <lCondition>   is a logical expression to be evaluated.                                0                                                                                        0 <expTrue>      is the value, a condition-expression, of any  data                      0                type, returned if <lCondition> is true (.T.).                           0                                                                                        0 <expFalse>     is the  value,  of  any  date  type,  returned  if                      0                <lCondition> is  false (.F.).  This argument  need                      0                not be the same data type as <expTrue>.                                 0                                                                                        0 IF()  returns  the  evaluation   of  <expTrue>  if   <lCondition>                      0 evaluates to true (.T.) and <expFalse>  if it evaluates to  false                      0 (.F.).                                                                                 0                                                                                        0 ##INDEXEXT()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 INDEX EXTention                                                                        0                                                                                        0 INDEXEXT() --> cExtension                                                              0                                                                                        0 INDEXEXT()  returns   the  default   index  file   extension   by                      0 determining which database driver is currently linked.                                 0                                                                                        0 ##INDEXKEY()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 INDEXKEY(<nOrder>) --> cKeyExp                                                         0                                                                                        0 <nOrder>       is the ordinal position of  the index in the  list                      0                of index files opened  by the last USE...INDEX  or                      0                SET INDEX TO command for the current work area.  A                      0                zero  value  specifies   the  controlling   index,                      0                without regard to its actual position in the list.                      0                                                                                        0                                                                                        0 INDEXKEY() returns the key expression of the specified index as a                      0 character string. If  there is no  corresponding index  or if  no                      0 database file is open, INDEXKEY() returns a null string ("").                          0                                                                                        0 ##INDEXORD()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 INDEX ORDer                                                                            0                                                                                        0 INDEXORD() --> nOrder                                                                  0                                                                                        0 INDEXORD() returns an integer  numeric value. The value  returned                      0 is equal to the position of the controlling index in the list  of                      0 open indexes for the current work area. A value of zero indicates                      0 that there is no controlling index and records are being accessed                      0 in natural order. If  no database file  is open, INDEXORD()  will                      0 also return a zero.                                                                    0                                                                                        0 ##INKEY()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 INput KEY                                                                              0                                                                                        0 INKEY([<nSeconds>]) --> nInkeyCode                                                     0                                                                                        0 <nSeconds>     specifies the number of seconds INKEY() waits  for                      0                a  keypress.  You   can  specify   the  value   in                      0                increments as  small  as one-tenth  of  a  second.                      0                Specifying zero halts the  program until a key  is                      0                pressed. If  <nSeconds> is  omitted, INKEY()  does                      0                not wait for a keypress.                                                0                                                                                        0 INKEY() returns  an  integer  numeric  value  from  -39  to  386,                      0 identifying the key  extracted from the  keyboard buffer. If  the                      0 keyboard buffer is empty,  INKEY() returns zero. INKEY()  returns                      0 values for all  ASCII characters,  function, Alt-function,  Ctrl-                      0 function, Alt-letter, and Ctrl-letter key combinations.                                0                                                                                        0 <nInkeyCode> =   5     [Up arrow], [Ctrl]+E                                            0 <nInkeyCode> =  24     [Down arrow], [Ctrl]+X                                          0 <nInkeyCode> =  19     [Left arrow], [Ctrl]+S                                          0 <nInkeyCode> =   4     [Right arrow], [Ctrl]+D                                         0 <nInkeyCode> =   1     [Home], [Ctrl]+A                                                0 <nInkeyCode> =   6     [End], [Ctrl]+F                                                 0 <nInkeyCode> =  18     [PgUp], [Ctrl]+R                                                0 <nInkeyCode> =   3     [PgDn], [Ctrl]+C                                                0 <nInkeyCode> = 397     [Ctrl]+[Up arrow]                                               0 <nInkeyCode> = 401     [Ctrl]+[Down arrow]                                             0 <nInkeyCode> =  26     [Ctrl]+[Left arrow], [Ctrl]+Z                                   0 <nInkeyCode> =   2     [Ctrl]+[Right arrow], [Ctrl]+B                                  0 <nInkeyCode> =  29     [Ctrl]+[Home], [Ctrl]+]                                         0 <nInkeyCode> =  23     [Ctrl]+[End], [Ctrl]+W                                          0 <nInkeyCode> =  31     [Ctrl]+[PgUp], [Ctrl]+Hyphen                                    0 <nInkeyCode> =  30     [Ctrl]+[PgDn], [Ctrl]+^                                         0 <nInkeyCode> = 408     [Alt]+[Up arrow]                                                0 <nInkeyCode> = 416     [Alt]+[Down arrow]                                              0 <nInkeyCode> = 411     [Alt]+[Left arrow]                                              0 <nInkeyCode> = 413     [Alt]+[Right arrow]                                             0 <nInkeyCode> = 407     [Alt]+[Home]                                                    0 <nInkeyCode> = 415     [Alt]+[End]                                                     0 <nInkeyCode> = 409     [Alt]+[PgUp]                                                    0 <nInkeyCode> = 417     [Alt]+[PgDn]                                                    0 <nInkeyCode> =  13     [Enter], [Ctrl]+M                                               0 <nInkeyCode> =  32     Space bar                                                       0 <nInkeyCode> =  27     Esc, [Ctrl]+[                                                   0 <nInkeyCode> =  10     [Ctrl]+[Enter]                                                  0 <nInkeyCode> = 379     [Ctrl]+Print Screen                                             0 <nInkeyCode> = 309     [Ctrl]+?                                                        0 <nInkeyCode> = 284     [Alt]+[Enter]                                                   0 <nInkeyCode> = 387     [Alt]+Equals                                                    0 <nInkeyCode> = 257     [Alt]+Esc                                                       0 <nInkeyCode> = 422     Keypad [Alt]+[Enter]                                            0 <nInkeyCode> = 399     Keypad [Ctrl]+5                                                 0 <nInkeyCode> = 405     Keypad [Ctrl]+/                                                 0 <nInkeyCode> = 406     Keypad [Ctrl]+*                                                 0 <nInkeyCode> = 398     Keypad [Ctrl]+-                                                 0 <nInkeyCode> = 400     Keypad [Ctrl]++                                                 0 <nInkeyCode> =   5     Keypad [Alt]+5                                                  0 <nInkeyCode> = 420     Keypad [Alt]+/                                                  0 <nInkeyCode> = 311     Keypad [Alt]+*                                                  0 <nInkeyCode> = 330     Keypad [Alt]+-                                                  0 <nInkeyCode> = 334     Keypad [Alt]++                                                  0 <nInkeyCode> =  22     [Ins], [Ctrl]+V                                                 0 <nInkeyCode> =   7     [Del], [Ctrl]+G                                                 0 <nInkeyCode> =   8     [Backspace], [Ctrl]+H                                           0 <nInkeyCode> =   9     [Tab], [Ctrl]+I                                                 0 <nInkeyCode> = 271     [Shift]+[Tab]                                                   0 <nInkeyCode> = 402     [Ctrl]+[Ins]                                                    0 <nInkeyCode> = 403     [Ctrl]+[Del]                                                    0 <nInkeyCode> = 127     [Ctrl]+[Backspace]                                              0 <nInkeyCode> = 404     [Ctrl]+[Tab]                                                    0 <nInkeyCode> = 418     [Alt]+[Ins]                                                     0 <nInkeyCode> = 419     [Alt]+[Del]                                                     0 <nInkeyCode> = 270     [Alt]+[Backspace]                                               0 <nInkeyCode> = 421     [Alt]+[Tab]                                                     0 <nInkeyCode> =   1     [Ctrl]+A, [Home]                                                0 <nInkeyCode> =   2     [Ctrl]+B, [Ctrl]+[Right arrow]                                  0 <nInkeyCode> =   3     [Ctrl]+C, [PgDn], [Ctrl]+[ScrollLock]                           0 <nInkeyCode> =   4     [Ctrl]+D, [Right arrow]                                         0 <nInkeyCode> =   5     [Ctrl]+E, [Up arrow]                                            0 <nInkeyCode> =   6     [Ctrl]+F, [End]                                                 0 <nInkeyCode> =   7     [Ctrl]+G, [Del]                                                 0 <nInkeyCode> =   8     [Ctrl]+H, [Backspace]                                           0 <nInkeyCode> =   9     [Ctrl]+I, [Tab]                                                 0 <nInkeyCode> =  10     [Ctrl]+J                                                        0 <nInkeyCode> =  11     [Ctrl]+K                                                        0 <nInkeyCode> =  12     [Ctrl]+L                                                        0 <nInkeyCode> =  13     [Ctrl]+M, Return                                                0 <nInkeyCode> =  14     [Ctrl]+N                                                        0 <nInkeyCode> =  15     [Ctrl]+O                                                        0 <nInkeyCode> =  16     [Ctrl]+P                                                        0 <nInkeyCode> =  17     [Ctrl]+Q                                                        0 <nInkeyCode> =  18     [Ctrl]+R, [PgUp]                                                0 <nInkeyCode> =  19     [Ctrl]+S, [Left arrow]                                          0 <nInkeyCode> =  20     [Ctrl]+T                                                        0 <nInkeyCode> =  21     [Ctrl]+U                                                        0 <nInkeyCode> =  22     [Ctrl]+V, [Ins]                                                 0 <nInkeyCode> =  23     [Ctrl]+W, [Ctrl]+[End]                                          0 <nInkeyCode> =  24     [Ctrl]+X, [Down arrow]                                          0 <nInkeyCode> =  25     [Ctrl]+Y                                                        0 <nInkeyCode> =  26     [Ctrl]+Z, [Ctrl]+[Left arrow]                                   0 <nInkeyCode> = 286     [Alt]+A                                                         0 <nInkeyCode> = 304     [Alt]+B                                                         0 <nInkeyCode> = 302     [Alt]+C                                                         0 <nInkeyCode> = 288     [Alt]+D                                                         0 <nInkeyCode> = 274     [Alt]+E                                                         0 <nInkeyCode> = 289     [Alt]+F                                                         0 <nInkeyCode> = 290     [Alt]+G                                                         0 <nInkeyCode> = 291     [Alt]+H                                                         0 <nInkeyCode> = 279     [Alt]+I                                                         0 <nInkeyCode> = 292     [Alt]+J                                                         0 <nInkeyCode> = 293     [Alt]+K                                                         0 <nInkeyCode> = 294     [Alt]+L                                                         0 <nInkeyCode> = 306     [Alt]+M                                                         0 <nInkeyCode> = 305     [Alt]+N                                                         0 <nInkeyCode> = 280     [Alt]+O                                                         0 <nInkeyCode> = 281     [Alt]+P                                                         0 <nInkeyCode> = 272     [Alt]+Q                                                         0 <nInkeyCode> = 275     [Alt]+R                                                         0 <nInkeyCode> = 287     [Alt]+S                                                         0 <nInkeyCode> = 276     [Alt]+T                                                         0 <nInkeyCode> = 278     [Alt]+U                                                         0 <nInkeyCode> = 303     [Alt]+V                                                         0 <nInkeyCode> = 273     [Alt]+W                                                         0 <nInkeyCode> = 301     [Alt]+X                                                         0 <nInkeyCode> = 277     [Alt]+Y                                                         0 <nInkeyCode> = 300     [Alt]+Z                                                         0 <nInkeyCode> = 376     [Alt]+1                                                         0 <nInkeyCode> = 377     [Alt]+2                                                         0 <nInkeyCode> = 378     [Alt]+3                                                         0 <nInkeyCode> = 379     [Alt]+4                                                         0 <nInkeyCode> = 380     [Alt]+5                                                         0 <nInkeyCode> = 381     [Alt]+6                                                         0 <nInkeyCode> = 382     [Alt]+7                                                         0 <nInkeyCode> = 383     [Alt]+8                                                         0 <nInkeyCode> = 384     [Alt]+9                                                         0 <nInkeyCode> = 385     [Alt]+0                                                         0 <nInkeyCode> =  28     F1, [Ctrl]+[Backslash]                                          0 <nInkeyCode> =  -1     F2                                                              0 <nInkeyCode> =  -2     F3                                                              0 <nInkeyCode> =  -3     F4                                                              0 <nInkeyCode> =  -4     F5                                                              0 <nInkeyCode> =  -5     F6                                                              0 <nInkeyCode> =  -6     F7                                                              0 <nInkeyCode> =  -7     F8                                                              0 <nInkeyCode> =  -8     F9                                                              0 <nInkeyCode> =  -9     F10                                                             0 <nInkeyCode> = -40     F11                                                             0 <nInkeyCode> = -41     F12                                                             0 <nInkeyCode> = -20     [Ctrl]+F1                                                       0 <nInkeyCode> = -21     [Ctrl]+F2                                                       0 <nInkeyCode> = -22     [Ctrl]+F4                                                       0 <nInkeyCode> = -23     [Ctrl]+F3                                                       0 <nInkeyCode> = -24     [Ctrl]+F5                                                       0 <nInkeyCode> = -25     [Ctrl]+F6                                                       0 <nInkeyCode> = -26     [Ctrl]+F7                                                       0 <nInkeyCode> = -27     [Ctrl]+F8                                                       0 <nInkeyCode> = -28     [Ctrl]+F9                                                       0 <nInkeyCode> = -29     [Ctrl]+F10                                                      0 <nInkeyCode> = -44     [Ctrl]+F11                                                      0 <nInkeyCode> = -45     [Ctrl]+F12                                                      0 <nInkeyCode> = -30     [Alt]+F1                                                        0 <nInkeyCode> = -31     [Alt]+F2                                                        0 <nInkeyCode> = -32     [Alt]+F3                                                        0 <nInkeyCode> = -33     [Alt]+F4                                                        0 <nInkeyCode> = -34     [Alt]+F5                                                        0 <nInkeyCode> = -35     [Alt]+F6                                                        0 <nInkeyCode> = -36     [Alt]+F7                                                        0 <nInkeyCode> = -37     [Alt]+F8                                                        0 <nInkeyCode> = -38     [Alt]+F9                                                        0 <nInkeyCode> = -39     [Alt]+F10                                                       0 <nInkeyCode> = -46     [Alt]+F11                                                       0 <nInkeyCode> = -47     [Alt]+F12                                                       0 <nInkeyCode> = -10     [Shift]+F1                                                      0 <nInkeyCode> = -11     [Shift]+F2                                                      0 <nInkeyCode> = -12     [Shift]+F3                                                      0 <nInkeyCode> = -13     [Shift]+F4                                                      0 <nInkeyCode> = -14     [Shift]+F5                                                      0 <nInkeyCode> = -15     [Shift]+F6                                                      0 <nInkeyCode> = -16     [Shift]+F7                                                      0 <nInkeyCode> = -17     [Shift]+F8                                                      0 <nInkeyCode> = -18     [Shift]+F9                                                      0 <nInkeyCode> = -19     [Shift]+F10                                                     0 <nInkeyCode> = -42     [Shift]+F11                                                     0 <nInkeyCode> = -43     [Shift]+F12                                                     0                                                                                        0 ##INT()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 INTeger                                                                                0                                                                                        0 INT(<nExp>) --> nInteger                                                               0                                                                                        0 <nExp>         is a numeric expression to convert to an integer.                       0                                                                                        0 INT() is a numeric function that  converts a numeric value to  an                      0 integer by  truncating all  digits to  the right  of the  decimal                      0 point. INT() is useful in operations where the decimal portion of                      0 a number is not needed.                                                                0                                                                                        0 ##ISALPHA()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 ISALPHA(<cString>) --> lBoolean                                                        0                                                                                        0 <cString>      is the character string to examine.                                     0                                                                                        0 ISALPHA() returns true (.T.) if the first character in  <cString>                      0 is alphabetic; otherwise, it returns false (.F.).                                      0                                                                                        0 ##ISCOLOR()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 ISCOLOR() | ISCOLOUR() --> lBoolean                                                    0                                                                                        0 ISCOLOR() returns true (.T.)  if there is  a color graphics  card                      0 installed; otherwise, it returns false (.F.).                                          0                                                                                        0 ##ISDIGIT()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 ISDIGIT(<cString>) --> lBoolean                                                        0                                                                                        0 <cString>      is the character string to examine.                                     0                                                                                        0 ISDIGIT() returns  true  (.T.)  if the  first  character  of  the                      0 character string is a digit between zero and nine; otherwise,  it                      0 returns false (.F.).                                                                   0                                                                                        0 ##ISLOWER()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 ISLOWER(<cString>) --> lBoolean                                                        0                                                                                        0 <cString>      is the character string to examine.                                     0                                                                                        0 ISLOWER() returns  true  (.T.)  if the  first  character  of  the                      0 character string  is a  lowercase letter;  otherwise, it  returns                      0 false (.F.).                                                                           0                                                                                        0 ##ISPRINTER()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 ISPRINTER() --> lReady                                                                 0                                                                                        0 ISPRINTER() returns true  (.T.) if LPT1  is ready; otherwise,  it                      0 returns false (.F.).                                                                   0                                                                                        0 ##ISUPPER()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 ISUPPER(<cString>) --> lBoolean                                                        0                                                                                        0 <cString>      is the character string to examine.                                     0                                                                                        0 ISUPPER() returns  true  (.T.)  if  the  first  character  is  an                      0 uppercase letter; otherwise, it returns false (.F.).                                   0                                                                                        0 ##L2BIN()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Long to BINary                                                                         0                                                                                        0 L2BIN(<nExp>) --> cBinaryInteger                                                       0                                                                                        0 <nExp>         is the numeric  value to  convert. Decimal  digits                      0                are truncated.                                                          0                                                                                        0 L2BIN() returns a four-byte character  string formatted as a  32-                      0 bit binary integer.                                                                    0                                                                                        0 ##LASTKEY()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 LASTKEY() --> nInkeyCode                                                               0                                                                                        0 LASTKEY() is a keyboard function  that reports the INKEY()  value                      0 of the last key fetched from  the keyboard buffer by the  INKEY()                      0 function, or a  wait state. LASTKEY()  retains its current  value                      0 until another key is fetched from the keyboard buffer.                                 0                                                                                        0 See also:      <inkey()>                                                            5718                                                                                        0 ##LASTREC()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 LAST RECord                                                                            0                                                                                        0 LASTREC() --> nRecords                                                                 0                                                                                        0 LASTREC() returns the  number of physical  records in the  active                      0 Alias as an integer numeric value.                                                     0                                                                                        0 ##LEFT()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 LEFT(<cString>, <nCount>) --> cSubString                                               0                                                                                        0 <cString>      is  a  character  string  from  which  to  extract                      0                characters.                                                             0                                                                                        0 <nCount>       is the number of characters to extract.                                 0                                                                                        0 LEFT() returns the leftmost <nCount> characters of <cString> as a                      0 character string. If <nCount> is negative or zero, LEFT() returns                      0 a null string (""). If <nCount> is larger than the length of  the                      0 character string, LEFT() returns the entire string.                                    0                                                                                        0 ##LEN()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 LENgth                                                                                 0                                                                                        0 LEN(<cString> | <aTarget>) --> nCount                                                  0                                                                                        0 <cString>      is the character string to count.                                       0                                                                                        0 <aTarget>      is the array to count.                                                  0                                                                                        0 LEN() returns the length of a  character string or the number  of                      0 elements in an array as an integer numeric value.                                      0                                                                                        0 ##LOG()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 LOG(<nExp>) --> nNaturalLog                                                            0                                                                                        0 <nExp>         is a numeric value greater than zero to convert to                      0                its natural logarithm.                                                  0                                                                                        0 LOG() returns the natural logarithm as a numeric value. If <nExp>                      0 is less than or equal to  zero, LOG() returns a numeric  overflow                      0 (displayed as a row of asterisks).                                                     0                                                                                        0 ##LOWER()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 LOWER(<cString>) --> cLowerString                                                      0                                                                                        0 <cString>      is a character string to convert to lowercase.                          0                                                                                        0 LOWER()        returns a copy  of <cString>  with all  alphabetic                      0                characters converted to lowercase.                                      0                                                                                        0 ##LTRIM()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Left TRIM                                                                              0                                                                                        0 LTRIM(<cString>) --> cTrimString                                                       0                                                                                        0 <cString>      is the character  string to  copy without  leading                      0                spaces.                                                                 0                                                                                        0 LTRIM() returns  a  copy of  <cString>  with the  leading  spaces                      0 removed.                                                                               0 ##LUPDATE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 Last UPDATE                                                                            0                                                                                        0 LUPDATE() --> dModification                                                            0                                                                                        0 LUPDATE() returns the date  of last change  to the open  database                      0 file in the current work area.                                                         0                                                                                        0 ##MAX()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 MAX(<nExp1>, <nExp2>) --> nLarger                                                      0                                                                                        0 MAX(<dExp1>, <dExp2>) --> dLarger                                                      0                                                                                        0 <nExp1>, nExp2>     are the numeric values to compare.                                 0                                                                                        0 <dExp1>,<dExp2>     are the date values to compare.                                    0                                                                                        0 MAX() returns the larger of the two arguments. The value returned                      0 is the same type as the arguments.                                                     0                                                                                        0 ##MAXCOL()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 MAX COLumn                                                                             0                                                                                        0 MAXCOL() --> nColumn                                                                   0                                                                                        0 MAXCOL() returns  the  column  number of  the  rightmost  visible                      0 column for display purposes.                                                           0                                                                                        0 ##MAXROW()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 MAXROW() --> nRow                                                                      0                                                                                        0 MAXROW() returns the row number of the bottommost visible row for                      0 display purposes.                                                                      0                                                                                        0 ##MEMOEDIT()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 MEMOEDIT([<cString>],                                                                  0      [<nTop>], [<nLeft>],                                                              0      [<nBottom>], [<nRight>],                                                          0      [<lEditMode>],                                                                    0      [<cUserFunction>],                                                                0      [<nLineLength>],                                                                  0      [<nTabSize>],                                                                     0      [<nTextBufferRow>],                                                               0      [<nTextBufferColumn>],                                                            0      [<nWindowRow>],                                                                   0      [<nWindowColumn>]) --> cTextBuffer                                                0                                                                                        0 <cString>                     is the  character  string  or  memo                      0                               field to  copy  to  the  MEMOEDIT()                      0                               text buffer.                                             0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>                                                   0                               are window coordinates. The default                      0                               coordinates are 0, 0, MAXROW(), and                      0                               MAXCOL().                                                0                                                                                        0 <lEditMode>                   determines whether the text  buffer                      0                               can be edited or merely  displayed.                      0                               If not specified, the default value                      0                               is true (.T.).                                           0                                                                                        0 <cUserFunction>               is  the  name  of  a   user-defined                      0                               function  that  executes  when  the                      0                               user presses a  key not  recognized                      0                               by MEMOEDIT() and when no keys  are                      0                               pending in the keyboard buffer.                          0                                                                                        0 <nLineLength>                 determines  the  length  of   lines                      0                               displayed in the MEMOEDIT() window.                      0                               If   a   line   is   greater   than                      0                               <nLineLength>, it  is word  wrapped                      0                               to the next line in the  MEMOEDIT()                      0                               window. The default line length  is                      0                               (<nRight> - <nLeft>).                                    0                                                                                        0 <nTabSize>                    determines  the  size   of  a   tab                      0                               character to insert  when the  user                      0                               presses Tab. The default is four.                        0                                                                                        0 <nTextBufferRow>, <nTextBufferColumn>                                                  0                               define the display position of  the                      0                               cursor within the text buffer  when                      0                               MEMOEDIT()       is        invoked.                      0                               <nTextBufferRow>  begins  with  one                      0                               and <nTextBufferColumn> begins with                      0                               zero. Default is  the beginning  of                      0                               MEMOEDIT() window.                                       0                                                                                        0 <nWindowRow>, <nWindowColumn> define the initial position of  the                      0                               cursor   within   the    MEMOEDIT()                      0                               window. Row  and  column  positions                      0                               begin with zero. If these arguments                      0                               are  not  specified,  the   initial                      0                               window position is row zero and the                      0                               current cursor column position.                          0                                                                                        0 MEMOEDIT() is a user interface  and general purpose text  editing                      0 function that  edits  memo  fields and  long  character  strings.                      0 Editing occurs within a  specified window region placed  anywhere                      0 on the screen.                                                                         0                                                                                        0 [Uparrow]/[Ctrl]+E            Move up one line                                         0 [Dnarrow]/[Ctrl]+X            Move down one line                                       0 [Leftarrow]/[Ctrl]+S          Move left one character                                  0 [Rightarrow]/[Ctrl]+D         Move right one character                                 0 [Ctrl]-[Leftarrow]/[Ctrl]+A   Move left one word                                       0 [Ctrl]-[Rightarrow]/[Ctrl]+F  Move right one word                                      0 [Home]                        Move to beginning of current line                        0 [End]                         Move to end of current line                              0 [Ctrl]+[Home]                 Move to beginning                                        0                               of current window                                        0 [Ctrl]+[End]                  Move to end of current window                            0 [PgUp]                        Move to previous edit window                             0 [PgDn]                        Move to next edit window                                 0 [Ctrl]+[PgUp]                 Move to beginning of memo                                0 [Ctrl]+[PgDn]                 Move to end of memo                                      0 [Return]                      Move to beginning of next line                           0 [Delete]                      Delete character at cursor                               0 [Backspace]                   Delete character to left of cursor                       0 [Tab]                         Insert tab character or spaces                           0 Printable characters          Insert character                                         0 [Ctrl]+Y                      Delete the current line                                  0 [Ctrl]+T                      Delete word right                                        0 [Ctrl]+B                      Reform paragraph                                         0 [Ctrl]+V/[Ins]                Toggle insert mode                                       0 [Ctrl]+W                      Finish editing with save                                 0 [Esc]                         Abort edit and return original                           0                                                                                        0 ##MEMOLINE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 MEMOLINE(<cString>,                                                                    0      [<nLineLength>],                                                                  0      [<nLineNumber>],                                                                  0      [<nTabSize>],                                                                     0      [<lWrap>]) --> cLine                                                              0                                                                                        0 <cString>           is the memo  field or  character string  from                      0                     which to extract a line of text.                                   0                                                                                        0 <nLineLength>       specifies the number  of characters per  line                      0                     and can  be  between  four and  254.  If  not                      0                     specified, the default line length is 79.                          0                                                                                        0 <nLineNumber>       is  the  line  number  to  extract.  If   not                      0                     specified, the default value is one.                               0                                                                                        0 <nTabSize>          defines the tab size.  If not specified,  the                      0                     default value is four.                                             0                                                                                        0 <lWrap>             toggles word wrap on and off. Specifying true                      0                     (.T.)  toggles  word  wrap  on;  false  (.F.)                      0                     toggles it off. If not specified, the default                      0                     value is true (.T.).                                               0                                                                                        0 MEMOLINE() returns the line of text specified by <nLineNumber> in                      0 <cString> as a character string. If the line has fewer characters                      0 than the  indicated  length,  the return  value  is  padded  with                      0 blanks. If the line  number is greater than  the total number  of                      0 lines in <cString>,  MEMOLINE() returns  a null  string ("").  If                      0 <lWrap> is true (.T.)  and the indicated  line length breaks  the                      0 line in the middle of a word,  that word is not included as  part                      0 of the return  value but shows  up at the  beginning of the  next                      0 line extracted  with  MEMOLINE().  If  <lWrap>  is  false  (.F.),                      0 MEMOLINE() returns only the number of characters specified by the                      0 line length. The  next line extracted  by MEMOLINE() begins  with                      0 the character following  the next hard  carriage return, and  all                      0 intervening characters are not processed.                                              0                                                                                        0 ##MEMOREAD()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 MEMOREAD(<cFile>) --> cString                                                          0                                                                                        0 <cFile>        is the name of the file to read from disk. It must                      0                include an  extension if  there  is one,  and  can                      0                optionally include a path.                                              0                                                                                        0 MEMOREAD() returns the  contents of a  text file  as a  character                      0 string.                                                                                0                                                                                        0 ##MEMORY()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 MEMORY(<nExp>) --> nKbytes                                                             0                                                                                        0 <nExp>    is a numeric  value that determines  the type of  value                      0           MEMORY() returns.                                                            0                                                                                        0 MEMORY() returns an integer numeric value representing the amount                      0 of memory available.                                                                   0                                                                                        0 MEMORY(0) -->  Estimated  total  space  available  for  character                      0                values                                                                  0                                                                                        0 MEMORY(1) -->  Largest contiguous block  available for  character                      0                values                                                                  0                                                                                        0 MEMORY(2) -->  Area available for RUN commands                                         0                                                                                        0 ##MEMOTRAN()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 MEMO TRANslate                                                                         0                                                                                        0 MEMOTRAN(<cString>,                                                                    0      [<cReplaceHardCR>],                                                               0      [<cReplaceSoftCR>]) --> cNewString                                                0                                                                                        0 <cString>           is the  character  string or  memo  field  to                      0                     search.                                                            0                                                                                        0 <cReplaceHardCR>    is the character to  replace a hard  carriage                      0                     return/linefeed pair with. If not  specified,                      0                     the default value is a semicolon (;).                              0                                                                                        0 <cReplaceSoftCR>    is the character to  replace a soft  carriage                      0                     return/linefeed pair with. If not  specified,                      0                     the default value is a space.                                      0                                                                                        0 MEMOTRAN()  returns  a  copy  of  <cString>  with  the  specified                      0 carriage return/linefeed pairs replaced.                                               0                                                                                        0 ##MEMOWRIT()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 MEMO WRITe                                                                             0                                                                                        0 MEMOWRIT(<cFile>, <cString>) --> lSuccess                                              0                                                                                        0 <cFile>        is the name of the target disk file including  the                      0                file  extension  and   optional  path  and   drive                      0                designator.                                                             0                                                                                        0 <cString>      is the character string or memo field to write  to                      0                <cFile>.                                                                0                                                                                        0 MEMOWRIT() is a memo function that  writes a character string  or                      0 memo field to a disk file. If a path is not specified, MEMOWRIT()                      0 writes <cFile> to the current DOS  directory and not the  current                      0 DEFAULT directory. If <cFile> already exists, it is  overwritten.                      0 MEMOWRIT()  returns  true  (.T.)  if  the  writing  operation  is                      0 successful; otherwise, it returns false (.F.).                                         0                                                                                        0 ##MEMVARBLOCK()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 MEMVARBLOCK(<cMemvarName>) --> bMemvarBlock                                            0                                                                                        0 <cMemvarName>       is the name  of the variable  referred to  by                      0                     the set-get block,  specified as a  character                      0                     string.                                                            0                                                                                        0 MEMVARBLOCK() returns  a  code  block that  when  evaluated  sets                      0 (assigns) or  gets  (retrieves) the  value  of the  given  memory                      0 variable. If <cMemvarName> does not exist, MEMVARBLOCK()  returns                      0 NIL.                                                                                   0                                                                                        0 ##MIN()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 MIN(<nExp1>, <nExp2>) --> nSmaller                                                     0                                                                                        0 MIN(<dExp1>, <dExp2>) --> dSmaller                                                     0                                                                                        0 <nExp1>, <nExp2>    are the numeric values to compare.                                 0                                                                                        0 <dExp1>, <dExp2>    are the date values to compare.                                    0                                                                                        0 MIN() returns  the  smaller  of  the  two  arguments.  The  value                      0 returned is the same data type as the arguments.                                       0                                                                                        0 ##MLCOUNT()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 Memo Line COUNT                                                                        0                                                                                        0 MLCOUNT(<cString>, [<nLineLength>],                                                    0      [<nTabSize>], [<lWrap>]) --> nLines                                               0                                                                                        0 <cString>      is the character string or memo field to count.                         0                                                                                        0 <nLineLength>  specifies the number  of characters  per line  and                      0                can range from four to 254. If not specified,  the                      0                default line length is 79.                                              0                                                                                        0 <nTabSize>     defines  the  tab  size.  If  not  specified,  the                      0                default value is four.                                                  0                                                                                        0 <lWrap>        toggles word  wrap  on and  off.  Specifying  true                      0                (.T.) toggles word wrap on; false (.F.) toggles it                      0                off. If not specified,  the default value is  true                      0                (.T.).                                                                  0                                                                                        0 MLCOUNT() returns the number of  lines in <cString> depending  on                      0 the <nLineLength>, the <nTabSize>,  and whether word wrapping  is                      0 on or off.                                                                             0                                                                                        0 ##MLCTOPOS()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 Memo Line Column TO POSition                                                           0                                                                                        0 MLCTOPOS(<cText>, <nWidth>, <nLine>,                                                   0      <nCol>, [<nTabSize>], [<lWrap>]) --> nPosition                                    0                                                                                        0 <cText>        is the text string to scan.                                             0                                                                                        0 <nWidth>       is the line length formatting width.                                    0                                                                                        0 <nLine>        is the line number counting from 1.                                     0                                                                                        0 <nCol>         is the column number counting from 0.                                   0                                                                                        0 <nTabSize>     is the number of columns between tab stops. If not                      0                specified, the default is 4.                                            0                                                                                        0 <lWrap>        is the  word  wrap  flag. If  not  specified,  the                      0                default is true (.T.).                                                  0                                                                                        0 MLCTOPOS() returns the byte position within <cText> counting from                      0 1.                                                                                     0                                                                                        0 ##MLPOS()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Memo Line POSition                                                                     0                                                                                        0 MLPOS(<cString>, <nLineLength>,                                                        0      <nLine>, [<nTabSize>], [<lWrap>]) --> nPosition                                   0                                                                                        0 <cString>           is a character string or memo field.                               0                                                                                        0 <nLineLength>       specifies the number of characters per line.                       0                                                                                        0 <nLine>             specifies the line number.                                         0                                                                                        0 <nTabSize>          defines the tab size. The default is four.                         0                                                                                        0 <lWrap>             toggles word wrap on and off. Specifying true                      0                     (.T.) toggles word wrap  on, and false  (.F.)                      0                     toggles it off. The default is true (.T.).                         0                                                                                        0 MLPOS() returns the character position of <nLine> in <cString> as                      0 an integer numeric value. If <nLine>  is greater than the  number                      0 of lines in <cString>, MLPOS() returns the length of <cString>.                        0                                                                                        0 ##MONTH()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 MONTH(<dDate>) --> nMonth                                                              0                                                                                        0 <dDate>        is the date value to convert.                                           0                                                                                        0 MONTH() returns an integer numeric value in the range of zero  to                      0 12. Specifying a null date (CTOD("")) returns zero.                                    0                                                                                        0 ##MPOSTOLC()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 Memo POSition TO Line Column                                                           0                                                                                        0 MPOSTOLC(<cText>, <nWidth>, <nPos>,                                                    0      [<nTabSize>], [<lWrap>]) --> aLineColumn                                          0                                                                                        0 <cText>        is a text string.                                                       0                                                                                        0 <nWidth>       is the length of the formatted line.                                    0                                                                                        0 <nPos>         is the  byte position  within text  counting  from                      0                one.                                                                    0                                                                                        0 <nTabSize>     is the number of columns between tab stops. If not                      0                specified, the default is four.                                         0                                                                                        0 <lWrap>        is the  word  wrap  flag. If  not  specified,  the                      0                default is true (.T.).                                                  0                                                                                        0 MPOSTOLC() returns an  array containing the  line and the  column                      0 values for the specified byte  position, <nPos>. MPOSTOLC() is  a                      0 memo function  that  determines  the formatted  line  and  column                      0 corresponding to a particular byte position within <cText>.  Note                      0 that the line number returned is one-relative, the column  number                      0 is zero-relative. This is  compatible with MEMOEDIT(). <nPos>  is                      0 one-relative, compatible  with  AT(),  RAT(),  and  other  string                      0 functions.                                                                             0                                                                                        0 ##NETERR()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 NRT ERRor                                                                              0                                                                                        0 NETERR([<lNewError>]) --> lError                                                       0                                                                                        0 <lNewError>    if specified sets the  value returned by  NETERR()                      0                to the specified status. <lNewError> can be either                      0                true (.T.) or false  (.F.). Setting NETERR() to  a                      0                specified value allows  the runtime error  handler                      0                to  control  the  way  certain  file  errors   are                      0                handled.                                                                0                                                                                        0 NETERR() returns true (.T.) if a  USE or APPEND BLANK fails.  The                      0 initial value of NETERR() is false (.F.). If the current  process                      0 is not running under a network operating system, NETERR()  always                      0 returns false (.F.).                                                                   0                                                                                        0 ##NETNAME()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 NETNAME() --> cWorkstationName                                                         0                                                                                        0 NETNAME() returns the workstation  identification as a  character                      0 string  up  to  15  characters  in  length.  If  the  workstation                      0 identification was never set or the application is not  operating                      0 under the IBM PC Network, it returns a null string ("").                               0                                                                                        0 ##NEXTKEY()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 NEXTKEY() --> nInkeyCode                                                               0                                                                                        0 NEXTKEY() returns an  integer numeric value  ranging from -39  to                      0 386. If the keyboard buffer is empty, NEXTKEY() returns zero.  If                      0 SET TYPEAHEAD is zero,  NEXTKEY() always returns zero.  NEXTKEY()                      0 is like  the INKEY()  function, but  differs in  one  fundamental                      0 respect. INKEY() removes the pending key from the keyboard buffer                      0 and updates LASTKEY() with  the value of  the key. NEXTKEY(),  by                      0 contrast, reads, but does  not remove the  key from the  keyboard                      0 buffer and does not update LASTKEY().                                                  0                                                                                        0 See also:      <inkey()>                                                            5718                                                                                        0 ##NOSNOW()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 NOSNOW(<lToggle>) --> NIL                                                              0                                                                                        0 <lToggle>      is a logical value that toggles the current  state                      0                of snow suppression. A value of true (.T.) enables                      0                the snow suppression  on, while a  value of  false                      0                (.F.) disables snow suppression.                                        0                                                                                        0 NOSNOW() is used to suppress snow on CGA monitors.                                     0                                                                                        0 ##ORDBAGEXT()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 ORDBAGEXT() --> cBagExt                                                                0                                                                                        0 ORDBAGEXT() returns a  character expression that  is the  default                      0 Order  Bag  extension  of  the  current  work  area.  cBagExt  is                      0 determined by the RDD active in the current work area.                                 0                                                                                        0 ##ORDBAGNAME()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 ORDBAGNAME(<nOrder> | <cOrderName>) --> cOrderBagName                                  0                                                                                        0 <nOrder>       is an integer that identifies the position in  the                      0                Order List  of the  target Order  whose Order  Bag                      0                name is sought.                                                         0                                                                                        0 <cOrderName>   is a character string that represents the name  of                      0                the target Order whose Order Bag name is sought.                        0                                                                                        0 ORDBAGNAME() returns a  character string, the  Order Bag name  of                      0 the specific Order.                                                                    0                                                                                        0 ##ORDCREATE()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 ORDCREATE(<cOrderBagName>,[<cOrderName>], <cExpKey>, [<bExpKey>],                      0      [<lUnique>]) --> NIL                                                              0                                                                                        0 <cOrderBagName>     is the name of a disk file containing one  or                      0                     more Orders.                                                       0                                                                                        0 <cOrderName>        is the name of the Order to be created.                            0                                                                                        0 <cExpKey>           is an expression that  returns the key  value                      0                     to place in the Order for each record in  the                      0                     current work area. The maximum length of  the                      0                     index key  expression  is determined  by  the                      0                     database driver.                                                   0                                                                                        0 <bExpKey>           is a code block that evaluates to a key value                      0                     that is placed in  the Order for each  record                      0                     in the current work area.                                          0                                                                                        0 <lUnique>           specifies whether  a unique  Order is  to  be                      0                     created.  Default  is   the  current   global                      0                     _SET_UNIQUE setting.                                               0                                                                                        0 ORDCREATE() is an Order management function that creates an Order                      0 in the current  work area. It  works like DBCREATEINDEX()  except                      0 that it lets you create Orders  in RDDs that recognize  multiple-                      0 Order Bags.                                                                            0                                                                                        0 ##ORDDESTROY()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 ORDDESTROY(<cOrderName> [, <cOrderBagName> ]) --> NIL                                  0                                                                                        0 <cOrderName>        is the name of the  Order to be removed  from                      0                     the current or specified work area.                                0                                                                                        0 <cOrderBagName>     is the name of a disk file containing one  or                      0                     more Orders.                                                       0                                                                                        0 ORDDESTROY() is  an  Order  management function  that  removes  a                      0 specified Order  from multiple-Order  Bags. ORDDESTROY()  is  not                      0 supported for DBFNDX and DBFNTX.                                                       0                                                                                        0 ##ORDFOR()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 ORDFOR(<cOrderName> | <nOrder> [, <cOrderBagName>]) --> cForExp                        0                                                                                        0 <cOrderName>        is  the  name  of  the  target  Order,  whose                      0                     cForExp is sought.                                                 0                                                                                        0 <nOrder>            is an integer that identifies the position in                      0                     the Order  List  of the  target  Order  whose                      0                     cForExp is sought.                                                 0                                                                                        0 <cOrderBagName>     is the name of an Order Bag containing one or                      0                     more Orders.                                                       0                                                                                        0 ORDFOR() returns a character expression, cForExp, that represents                      0 the FOR condition of  the specified Order. If  the Order was  not                      0 created using the FOR  clause the return value  will be an  empty                      0 string ("").  If the  database driver  does not  support the  FOR                      0 condition, it may either return an empty string ("") or raise  an                      0 "unsupported function" error, depending on the driver.                                 0                                                                                        0 ##ORDKEY()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 ORDKEY(<cOrderName> | <nOrder> [, <cOrderBagName>]) --> cExpKey                        0                                                                                        0 <cOrderName>        is the name of  an Order, a logical  ordering                      0                     of a database.                                                     0                                                                                        0 <nOrder>            is an integer that identifies the position in                      0                     the Order  List  of the  target  Order  whose                      0                     cExpKey is sought.                                                 0                                                                                        0 <cOrderBagName>     is the name of a disk file containing one  or                      0                     more Orders.                                                       0                                                                                        0 ORDKEY() is an Order management function that returns a character                      0 expression, cExpKey, that  represents the key  expression of  the                      0 specified Order.                                                                       0                                                                                        0 ##ORDLISTADD()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 ORDLISTADD(<cOrderBagName> [, <cOrderName>]) --> NIL                                   0                                                                                        0 <cOrderBagName>     is the name of a disk file containing one  or                      0                     more Orders.                                                       0                                                                                        0 <cOrderName>        the name of the specific Order from the Order                      0                     Bag to  be added  to the  Order List  of  the                      0                     current work  area.  If you  do  not  specify                      0                     <cOrderName>, all orders in the Order Bag are                      0                     added to the Order  List of the current  work                      0                     area.                                                              0                                                                                        0 ORDLISTADD() is  an  Order  management  function  that  adds  the                      0 contents of an Order Bag , or a single Order in an Order Bag,  to                      0 the Order List. Any Orders already associated with the work  area                      0 continue to be active. If the newly opened Order Bag contains the                      0 only  Order  associated  with  the  work  area,  it  becomes  the                      0 controlling  Order;  otherwise,  the  controlling  Order  remains                      0 unchanged.                                                                             0                                                                                        0 ##ORDLISTCLEAR()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 ORDLISTCLEAR() --> NIL                                                                 0                                                                                        0 ORDLISTCLEAR() is an Order  management function that removes  all                      0 Orders from the Order List for the current work area.                                  0                                                                                        0 ##ORDLISTREBUILD()##                                                                   0 ----------------------------------------------------------------                       0                                                                                        0 ORDLISTREBUILD() --> NIL                                                               0                                                                                        0 ORDLISTREBUILD() is an  Order management  function that  rebuilds                      0 all the orders in the current Order List.                                              0                                                                                        0 ##ORDNAME()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 ORDNAME(<nOrder>[,<cOrderBagName>]) --> cOrderName                                     0                                                                                        0 <nOrder>            is an integer that identifies the position in                      0                     the Order  List  of the  target  Order  whose                      0                     database name is sought.                                           0                                                                                        0 <cOrderBagName>     is the name of a disk file containing one  or                      0                     more Orders.                                                       0                                                                                        0 ORDNAME() returns the name of the specified Order in the  current                      0 Order List or the  specified Order Bag if  opened in the  Current                      0 Order list.                                                                            0                                                                                        0 ##ORDNUMBER()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 ORDNUMBER(<cOrderName> [, <cOrderBagName>]) --> nOrderNo                               0                                                                                        0 <cOrderName>        the name of the specific Order whose position                      0                     in the Order List is sought.                                       0                                                                                        0 <cOrderBagName>     is the name of a disk file containing one  or                      0                     more Orders.                                                       0                                                                                        0 ORDNUMBER() returns  nOrderNo,  an integer  that  represents  the                      0 position of the specified Order in the Order List.                                     0                                                                                        0 ##ORDSETFOCUS()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 ORDSETFOCUS([<cOrderName> | <nOrder>] [,<cOrderBagName>])                              0      --> cPrevOrderNameInFocus                                                         0                                                                                        0 <cOrderName>        is the name of the selected Order, a  logical                      0                     ordering of a database.                                            0                                                                                        0 <nOrder>            is a number representing the position in  the                      0                     Order List of the selected Order.                                  0                                                                                        0 <cOrderBagName>     is the name of a disk file containing one  or                      0                     more Orders.                                                       0                                                                                        0 ORDSETFOCUS() is an  Order management function  that returns  the                      0 Order Name of the previous controlling Order and optionally  sets                      0 the focus to an new Order.                                                             0                                                                                        0 ##OS()##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 OS() --> cOsName                                                                       0                                                                                        0 OS() returns the operating system name as a character string.                          0                                                                                        0 ##OUTERR()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 OUTput ERRor                                                                           0                                                                                        0 OUTERR(<exp list>) --> NIL                                                             0                                                                                        0 <exp list>     is a list of values to display and can consist  of                      0                any combination of data types including memo.                           0                                                                                        0 OUTERR() is identical to  OUTSTD() except that  it writes to  the                      0 standard error  device rather  than the  standard output  device.                      0 Output sent to the standard error device bypasses the console and                      0 output devices as well  as any DOS  redirection. It is  typically                      0 used to log error  messages in a manner  that will not  interfere                      0 with the standard screen or printer output.                                            0                                                                                        0 ##OUTSTD()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 OUTput STanDard                                                                        0                                                                                        0 OUTSTD(<exp list>) --> NIL                                                             0                                                                                        0 <exp list>     is a list of values to display and can consist  of                      0                any combination of data types including memo.                           0                                                                                        0 OUTSTD() is a  simple output function  similar to QOUT(),  except                      0 that it writes to  the STDOUT device (instead  of to the  console                      0 output stream).                                                                        0                                                                                        0 ##PAD?()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 PADL(<exp>, <nLength>, [<cFillChar>]) --> cPaddedString                                0 PADC(<exp>, <nLength>, [<cFillChar>]) --> cPaddedString                                0 PADR(<exp>, <nLength>, [<cFillChar>]) --> cPaddedString                                0                                                                                        0 <exp>          is a character, numeric, or date value to pad with                      0                a fill character.                                                       0                                                                                        0 <nLength>      is the length of the character string to return.                        0                                                                                        0 <cFillChar>    is  the  character  to  pad  <exp>  with.  If  not                      0                specified, the default is a space character.                            0                                                                                        0 PADC(), PADL(),  and  PADR()  are character  functions  that  pad                      0 character, date,  and numeric  values with  a fill  character  to                      0 create a  new  character string  of  a specified  length.  PADC()                      0 centers <exp> within <nLength> adding fill characters to the left                      0 and right sides; PADL()  adds fill characters  on the left  side;                      0 and PADR() adds fill characters on the right side.                                     0 ##PCOL()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Printed COLumn                                                                         0                                                                                        0 PCOL() --> nColumn                                                                     0                                                                                        0 PCOL() returns  an integer  numeric value  representing the  last                      0 printed column position, plus one. The beginning column  position                      0 is zero.                                                                               0                                                                                        0 ##PROW()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 Printed ROW                                                                            0                                                                                        0 PROW() --> nRow                                                                        0                                                                                        0 PROW() returns  an  integer  numeric value  that  represents  the                      0 number of the current line sent to the printer. The beginning row                      0 position is zero.                                                                      0                                                                                        0 ##QOUT()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 QOUT([<exp list>]) --> NIL                                                             0                                                                                        0 QQOUT([<exp list>]) --> NIL                                                            0                                                                                        0 <exp list>     is a comma-separated list  of expressions (of  any                      0                data type other than array or block) to display to                      0                the console.  If  no  argument  is  specified  and                      0                QOUT() is  specified, a  carriage  return/linefeed                      0                pair is displayed. If QQOUT() is specified without                      0                arguments, nothing displays.                                            0                                                                                        0 QOUT() and  QQOUT()  are  console  functions.  They  display  the                      0 results of one or more expressions to the console. QOUT() outputs                      0 carriage return  and linefeed  characters before  displaying  the                      0 results of <exp list>. QQOUT() displays the results of <exp list>                      0 at the current ROW() and COL() position. When QOUT() and  QQOUT()                      0 display to the console, ROW() and COL() are updated.                                   0                                                                                        0 ##RAT()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 Right AT                                                                               0                                                                                        0 RAT(<cSearch>, <cTarget>) --> nPosition                                                0                                                                                        0 <cSearch>      is the character string to locate.                                      0                                                                                        0 <cTarget>      is the character string to search.                                      0                                                                                        0 RAT() returns the  position of <cSearch>  within <cTarget> as  an                      0 integer numeric value,  starting the  search from  the right.  If                      0 <cSearch> is not found, RAT() returns zero.                                            0                                                                                        0 ##RDDLIST()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 RDDLIST([<nRDDType>]) --> aRDDList                                                     0                                                                                        0 <nRDDType>     is an integer that represents the type of the  RDD                      0                you wish to list.                                                       0                <nRDDType> = 1   Full RDD implementation                                0                <nRDDType> = 2   Import/Export only driver.                             0                                                                                        0 RDDLIST() returns  a  one-dimensional  array  of  the  RDD  names                      0 registered with the application as <nRDDType>.                                         0                                                                                        0 ##RDDNAME()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 RDDNAME() --> cRDDName                                                                 0                                                                                        0 RDDNAME() returns a  character string,  cRDDName, the  registered                      0 name of the active RDD in the current or specified work area.                          0                                                                                        0 ##RDDSETDEFAULT()##                                                                    0 ----------------------------------------------------------------                       0                                                                                        0 RDDSETDEFAULT([<cNewDefaultRDD>]) --> cPreviousDefaultRDD                              0                                                                                        0 <cNewDefaultRDD>    is a character  string, the name  of the  RDD                      0                     that is to be made the new default RDD in the                      0                     application.                                                       0                                                                                        0 RDDSETDEFAULT() is an RDD function that sets or returns the  name                      0 of the  previous default  RDD driver  and, optionally,  sets  the                      0 current driver to the new RDD driver specified by cNewDefaultRDD.                      0                                                                                        0                                                                                        0 ##READINSERT()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 READINSERT([<lToggle>]) --> lCurrentMode                                               0                                                                                        0 <lToggle>      toggles the  insert mode  on  or off.  True  (.T.)                      0                turns insert on,  while false  (.F.) turns  insert                      0                off. The default is false (.F.) or the last  user-                      0                selected mode in READ or MEMOEDIT().                                    0                                                                                        0 READINSERT() returns the current insert  mode state as a  logical                      0 value.                                                                                 0                                                                                        0 ##READMODAL()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 READMODAL(<aGetList>) --> NIL                                                          0                                                                                        0 <aGetList>     is an array  containing a list  of Get objects  to                      0                edit.                                                                   0                                                                                        0 READMODAL() is like the READ command,  but takes a GetList  array                      0 as an argument and does not  reinitialize the GetList array  when                      0 it terminates. The GET system is implemented using a public array                      0 called GetList. Each time an @...GET command executes, it creates                      0 a Get object and adds to the currently visible GetList array. The                      0 standard READ command is preprocessed into a call to  READMODAL()                      0 using the GetList array as its argument.                                               0                                                                                        0 ##READVAR()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 READVAR() --> cVarName                                                                 0                                                                                        0 READVAR() returns the  name of the  variable associated with  the                      0 current Get object or the variable being assigned by the  current                      0 MENU TO command as an uppercase character string.                                      0                                                                                        0 ##RECNO()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 RECord Number                                                                          0                                                                                        0 RECNO() --> nRecord                                                                    0                                                                                        0 RECNO() returns the current record  number as an integer  numeric                      0 value. If  the  work area  contains  a database  file  with  zero                      0 records, RECNO() returns  one, BOF() and  EOF() both return  true                      0 (.T.), and LASTREC() returns zero. If the record pointer is moved                      0 past the last  record, RECNO() returns  LASTREC() +  1 and  EOF()                      0 returns true (.T.).  If an  attempt is  made to  move before  the                      0 first record,  RECNO() returns  the record  number of  the  first                      0 logical record in the database file and BOF() returns true (.T.).                      0 If no database file is open, RECNO() will return a zero.                               0                                                                                        0 ##RECSIZE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 RECord SIZE                                                                            0                                                                                        0 RECSIZE() --> nBytes                                                                   0                                                                                        0 RECSIZE() returns,  as a  numeric value,  the record  length,  in                      0 bytes, of  the  database file  open  in the  current  work  area.                      0 RECSIZE() returns zero if no database file is open.                                    0                                                                                        0 ##REPLICATE()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 REPLICATE(<cString>, <nCount>) --> cRepeatedString                                     0                                                                                        0 <cString>      is the character string to repeat.                                      0                                                                                        0 <nCount>       is the number of times to repeat <cString>.                             0                                                                                        0 REPLICATE() returns a character string. Specifying a zero as  the                      0 <nCount> argument returns a null string ("").                                          0                                                                                        0 ##RESTSCREEN()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 RESTore SCREEN                                                                         0                                                                                        0 RESTSCREEN([<nTop>], [<nLeft>],                                                        0      [<nBottom>], [<nRight>], <cScreen>) --> NIL                                       0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>                                                   0                               define  the   coordinates  of   the                      0                               screen  information  contained   in                      0                               <cScreen>.  If  the  <cScreen>  was                      0                               saved   without   coordinates    to                      0                               preserve  the  entire  screen,   no                      0                               screen  coordinates  are  necessary                      0                               with RESTSCREEN().                                       0                                                                                        0 <cScreen>                     is a  character  string  containing                      0                               the saved screen region.                                 0                                                                                        0 RESTSCREEN() is a screen function that redisplays a screen region                      0 saved with SAVESCREEN().  The target screen  location may be  the                      0 same as or different than the  original location when the  screen                      0 region was saved.                                                                      0                                                                                        0 ##RIGHT()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 RIGHT(<cString>, <nCount>) --> cSubString                                              0                                                                                        0 <cString>      is the  character  string from  which  to  extract                      0                characters.                                                             0                                                                                        0 <nCount>       is the number of characters to extract.                                 0                                                                                        0 RIGHT() returns the rightmost  <nCount> characters of  <cString>.                      0 If <nCount>  is zero,  RIGHT() returns  a  null string  ("").  If                      0 <nCount> is negative or larger than  the length of the  character                      0 string, RIGHT() returns <cString>.                                                     0                                                                                        0 ##RLOCK()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Record LOCK                                                                            0                                                                                        0 RLOCK() --> lSuccess                                                                   0                                                                                        0 RLOCK() is  a network  function that  locks the  current  record,                      0 preventing other users from updating the record until the lock is                      0 released. RLOCK() provides  a shared lock,  allowing other  users                      0 read-only access to  the locked  record while  allowing only  the                      0 current user to modify  it. A record  lock remains until  another                      0 record is locked,  an UNLOCK  is executed,  the current  database                      0 file is  closed,  or an  FLOCK()  is  obtained   on  the  current                      0 database file.                                                                         0                                                                                        0 ##ROUND()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 ROUND(<nNumber>, <nDecimals>) --> nRounded                                             0                                                                                        0 <nNumber>      is the numeric value to round.                                          0                                                                                        0 <nDecimals>    defines the number  of decimal  places to  retain.                      0                Specifying a  negative  <nDecimals>  value  rounds                      0                whole number digits.                                                    0                                                                                        0 ROUND() is a numeric function that rounds <nNumber> to the number                      0 of places specified by <nDecimals>. Specifying a zero or negative                      0 value  for  <nDecimals>  allows  rounding  of  whole  numbers.  A                      0 negative <nDecimals> indicates the number  of digits to the  left                      0 of the  decimal point  to round.  Digits  between five  to  nine,                      0 inclusive, are rounded up. Digits below five are rounded down.                         0                                                                                        0 ##ROW()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 ROW() --> nRow                                                                         0                                                                                        0 ROW() returns  the  cursor row  position  as an  integer  numeric                      0 value. The range of the return value is zero to MAXROW().                              0 ##RTRIM()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 Right TRIM                                                                             0                                                                                        0 [R]TRIM(<cString>) --> cTrimString                                                     0                                                                                        0 <cString>      is the character string  to copy without  trailing                      0                spaces.                                                                 0                                                                                        0 RTRIM() returns  a copy  of <cString>  with the  trailing  spaces                      0 removed. If  <cString>  is a  null  string ("")  or  all  spaces,                      0 RTRIM() returns a null string ("").                                                    0                                                                                        0 ##SAVESCREEN()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 SAVESCREEN([<nTop>], [<nLeft>],                                                        0      [<nBottom>], [<nRight>]) --> cScreen                                              0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>                                                   0                               define  the   coordinates  of   the                      0                               screen region to  save. Default  is                      0                               the entire screen.                                       0                                                                                        0 SAVESCREEN() returns the specified  screen region as a  character                      0 string.                                                                                0                                                                                        0 ##SCROLL()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 SCROLL([<nTop>], [<nLeft>],                                                            0      [<nBottom>], [<nRight>], [<nVert>] [<nHoriz>]) --> NIL                            0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>                                                   0                     define the scroll region coordinates.                              0                                                                                        0 <nVert>             defines  the  number   of  rows  to   scroll,                      0                     vertically. A positive  value scrolls up  the                      0                     specified number  of rows.  A negative  value                      0                     scrolls down the specified number of rows.  A                      0                     value of zero disables vertical scrolling. If                      0                     <nVert> is not specified, zero is assumed.                         0                                                                                        0 <nHoriz>            defines  the   number  of   rows  to   scroll                      0                     horizontally. A positive  value scrolls  left                      0                     the specified number  of columns. A  negative                      0                     value scrolls right  the specified number  of                      0                     columns. A value of zero disables  horizontal                      0                     scrolling. If <nHoriz> is not specified, zero                      0                     is assumed. If you supply neither <nVert>  or                      0                     <nHoriz> parameters  to  SCROLL(),  the  area                      0                     specified by the  first four parameters  will                      0                     be blanked.                                                        0                                                                                        0 SCROLL() is a screen function that scrolls a screen region up  or                      0 down a specified number  of rows. When a  screen scrolls up,  the                      0 first line of the region is erased, all other lines are moved up,                      0 and a blank line  is displayed in the  current standard color  on                      0 the bottom line of  the specified region.  If the region  scrolls                      0 down, the operation is reversed. If the screen region is scrolled                      0 more than one line, this process is repeated.                                          0                                                                                        0 ##SECONDS()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 SECONDS() --> nSeconds                                                                 0                                                                                        0 SECONDS() returns the system time as a numeric value in the  form                      0 seconds.hundredths. The numeric value  returned is the number  of                      0 seconds elapsed since  midnight, and  is based  on a  twenty-four                      0 hour clock in a range from zero to 86399.                                              0                                                                                        0 ##SELECT()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 SELECT([<cAlias>]) --> nWorkArea                                                       0                                                                                        0 <cAlias>       is the target work area alias name.                                     0                                                                                        0 SELECT() returns  the  work area  of  the specified  alias  as  a                      0 integer numeric value.                                                                 0                                                                                        0 ##SET()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 SET(<nSpecifier>, [<expNewSetting>], [<lOpenMode>])                                    0      --> CurrentSetting                                                                0                                                                                        0 <nSpecifier>        is  a  numeric  value  that  identifies   the                      0                     setting to be inspected or changed.                                0                                                                                        0 <expNewSetting>     is an optional argument that specifies a  new                      0                     value  for  the  <nSpecifier>.  The  type  of                      0                     <expNewSetting> depends on <nSpecifier>.                           0                                                                                        0 <lOpenMode>         is a logical value that indicates whether  or                      0                     not files  are opened  for some  settings.  A                      0                     value of false (.F.) means the file should be                      0                     truncated. A value  of true  (.T.) means  the                      0                     file should  be  opened in  append  mode.  In                      0                     either case, if the  file does not exist,  it                      0                     is  created.   If   this  argument   is   not                      0                     specified, the default is append mode.                             0                                                                                        0 SET() returns the current value of the specified setting.                              0                                                                                        0 Inside nB, the function SET() is not so easy to use as inside the                      0 CA-Clipper environment. This because  nB cannot support  manifest                      0 constants and a  numeric specifier  <nSpecifier> is  not easy  to                      0 manage. Instead SET() you can use SETVERB().                                           0                                                                                        0                                                       <setverb()>                   9188                                                                                        0 ##SETBLINK()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 SETBLINK([<lToggle>]) --> lCurrentSetting                                              0                                                                                        0 <lToggle>      changes the meaning of the asterisk (*)  character                      0                when it  is encountered  in a  SETCOLOR()  string.                      0                Specifying true (.T.)  sets character blinking  on                      0                and false  (.F.)  sets background  intensity.  The                      0                default is true (.T.).                                                  0                                                                                        0 SETBLINK() returns the current setting as a logical value.                             0 ##SETCANCEL()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 SETCANCEL([<lToggle>]) --> lCurrentSetting                                             0                                                                                        0 <lToggle>      changes the availability  of Alt-C and  Ctrl-Break                      0                as termination keys. Specifying true (.T.)  allows                      0                either of these keys  to terminate an  application                      0                and false (.F.) disables both keys. The default is                      0                true (.T.).                                                             0                                                                                        0 SETCANCEL() returns the current setting as a logical value.                            0                                                                                        0 ##SETCOLOR()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 SETCOLOR([<cColorString>]) --> cColorString                                            0                                                                                        0 <cColorString>      is a character  string containing  a list  of                      0                     color  attribute   settings  for   subsequent                      0                     screen painting.                                                   0                                                                                        0 ##SETCURSOR()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 SETCURSOR([<nCursorShape>]) --> nCurrentSetting                                        0                                                                                        0 <nCursorShape>      is a  number  indicating  the  shape  of  the                      0                     cursor.                                                            0                     <nCursorShape> = 0  None                                           0                     <nCursorShape> = 1  Underline                                      0                     <nCursorShape> = 2  Lower half block                               0                     <nCursorShape> = 3  Full block                                     0                     <nCursorShape> = 4  Upper half block                               0                                                                                        0 SETCURSOR() returns the current cursor shape as a numeric value.                       0                                                                                        0 ##SETKEY()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 SETKEY(<nInkeyCode>, [<bAction>]) --> bCurrentAction                                   0                                                                                        0 <nInkeyCode>   is the INKEY() value of  the key to be  associated                      0                or queried.                                                             0                                                                                        0 <bAction>      specifies  a  code  block  that  is  automatically                      0                executed whenever  the  specified key  is  pressed                      0                during a wait state.                                                    0                                                                                        0 SETKEY() returns the action  block currently associated with  the                      0 specified key,  or NIL  if the  specified  key is  not  currently                      0 associated with a block.                                                               0                                                                                        0 ##SETMODE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 SETMODE(<nRows>, <nCols>) --> lSuccess                                                 0                                                                                        0 <nRows>        is the number of rows in the desired display mode.                      0                                                                                        0                                                                                        0 <nCols>        is the number  of columns in  the desired  display                      0                mode.                                                                   0                                                                                        0 SETMODE() is an environment function that attempts to change  the                      0 mode of the  display hardware  to match  the number  of rows  and                      0 columns specified. The change in screen size is reflected in  the                      0 values returned by MAXROW() and MAXCOL().                                              0                                                                                        0 ##SETPOS()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 SET POSition                                                                           0                                                                                        0 SETPOS(<nRow>, <nCol>) --> NIL                                                         0                                                                                        0 <nRow>, <nCol>      define the new screen position of the cursor.                      0                     These values may range from 0, 0 to MAXROW(),                      0                     MAXCOL().                                                          0                                                                                        0 SETPOS() is an environment  function that moves  the cursor to  a                      0 new position on the screen. After the cursor is positioned, ROW()                      0 and COL() are updated accordingly.                                                     0                                                                                        0 ##SETPRC()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 SET Printer Row Column                                                                 0                                                                                        0 SETPRC(<nRow>, <nCol>) --> NIL                                                         0                                                                                        0 <nRow>         is the new PROW() value.                                                0                                                                                        0 <nCol>         is the new PCOL() value.                                                0                                                                                        0 SETPRC()  is a printer function that  sends control codes to  the                      0 printer without changing the tracking of the printhead position.                       0                                                                                        0 ##SOUNDEX()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 SOUNDEX(<cString>) --> cSoundexString                                                  0                                                                                        0 <cString>      is the character string to convert.                                     0                                                                                        0 SOUNDEX() returns a four-digit character string in the form A999.                      0                                                                                        0                                                                                        0 ##SPACE()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 SPACE(<nCount>) --> cSpaces                                                            0                                                                                        0 <nCount>       is the number of spaces to return.                                      0                                                                                        0 SPACE() returns a character string. If <nCount> is zero,  SPACE()                      0 returns a null string ("").                                                            0                                                                                        0 ##SQRT()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 SQRT(<nNumber>) --> nRoot                                                              0                                                                                        0 <nNumber>      is a positive number to take the square root of.                        0                                                                                        0 SQRT() returns a  numeric value calculated  to double  precision.                      0 The number of  decimal places displayed  is determined solely  by                      0 SET DECIMALS  regardless  of  SET  FIXED.  A  negative  <nNumber>                      0 returns zero.                                                                          0 ##STR()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 STRing                                                                                 0                                                                                        0 STR(<nNumber>, [<nLength>], [<nDecimals>]) --> cNumber                                 0                                                                                        0 <nNumber>      is  the  numeric  expression   to  convert  to   a                      0                character string.                                                       0                                                                                        0 <nLength>      is the length of  the character string to  return,                      0                including decimal digits, decimal point, and sign.                      0                                                                                        0                                                                                        0 <nDecimals>    is the number of decimal places to return.                              0                                                                                        0 STR() returns <nNumber> formatted as a character string.                               0                                                                                        0 ##STRTRAN()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 STRTRAN(<cString>, <cSearch>,                                                          0      [<cReplace>], [<nStart>], [<nCount>]) --> cNewString                              0                                                                                        0 <cString>      is the character string or memo field to search.                        0                                                                                        0 <cSearch>      is the sequence of characters to locate.                                0                                                                                        0 <cReplace>     is  the  sequence  of  characters  with  which  to                      0                replace  <cSearch>.  If   this  argument  is   not                      0                specified, the specified  instances of the  search                      0                argument are replaced with a null string ("").                          0                                                                                        0 <nStart>       is the first occurrence that will be replaced.  If                      0                this argument is omitted, the default is one.                           0                                                                                        0 <nCount>       is the number of  occurrences to replace. If  this                      0                argument is not specified, the default is all.                          0                                                                                        0 STRTRAN() returns  a  new  character string  with  the  specified                      0 instances of <cSearch> replaced with <cReplace>.                                       0                                                                                        0 ##STUFF()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 STUFF(<cString>, <nStart>,                                                             0      <nDelete>, <cInsert>) --> cNewString                                              0                                                                                        0 <cString>      is  the   target  character   string  into   which                      0                characters are inserted and deleted.                                    0                                                                                        0 <nStart>       is the  starting  position in  the  target  string                      0                where the insertion/deletion occurs.                                    0                                                                                        0 <nDelete>      is the number of characters to delete.                                  0                                                                                        0 <cInsert>      is the string to insert.                                                0                                                                                        0 STUFF() returns a copy of <cString> with the specified characters                      0 deleted and with <cInsert> inserted.                                                   0                                                                                        0 ##SUBSTR()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 SUB STRing                                                                             0                                                                                        0 SUBSTR(<cString>, <nStart>, [<nCount>]) --> cSubstring                                 0                                                                                        0 <cString>      is the character  string from which  to extract  a                      0                substring.                                                              0                                                                                        0 <nStart>       is the starting position in <cString>. If <nStart>                      0                is  positive,  it  is  relative  to  the  leftmost                      0                character in <cString>.  If <nStart> is  negative,                      0                it is relative to  the rightmost character in  the                      0                <cString>.                                                              0                                                                                        0 <nCount>       is  the  number  of  characters  to  extract.   If                      0                omitted, the  substring  begins  at  <nStart>  and                      0                continues to the end of the string. If <nCount> is                      0                greater  than  the   number  of  characters   from                      0                <nStart> to  the end  of <cString>,  the extra  is                      0                ignored.                                                                0                                                                                        0 SUBSTR() is a character function  that extracts a substring  from                      0 another character string or memo field.                                                0                                                                                        0 ##TIME()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 TIME() --> cTimeString                                                                 0                                                                                        0 TIME() returns the system time as a character string in the  form                      0 hh:mm:ss. hh is hours in 24-hour format, mm is minutes, and ss is                      0 seconds.                                                                               0                                                                                        0 TIME() is a time  function that displays the  system time on  the                      0 screen or prints it on a report.                                                       0                                                                                        0 ##TONE()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 TONE(<nFrequency>, <nDuration>) --> NIL                                                0                                                                                        0 <nFrequency>   is  a  positive   numeric  value  indicating   the                      0                frequency of the tone to sound.                                         0                                                                                        0 <nDuration>    is  a  positive   numeric  value  indicating   the                      0                duration of  the tone  measured in  increments  of                      0                1/18 of  a  second. For  example,  an  <nDuration>                      0                value of 18 represents one second.                                      0                                                                                        0 For both arguments, noninteger values are truncated (not rounded)                      0 to their integer portion.                                                              0                                                                                        0 ##TRANSFORM()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 TRANSFORM(<exp>, <cSayPicture>) --> cFormatString                                      0                                                                                        0 <exp>          is the value to format. This expression can be any                      0                valid data type except array, code block, and NIL.                      0                                                                                        0                                                                                        0 <cSayPicture>  is a  string of  picture and  template  characters                      0                that  describes   the  format   of  the   returned                      0                character string.                                                       0                                                                                        0 TRANSFORM() converts  <exp> to  a formatted  character string  as                      0 defined by <cSayPicture>.                                                              0                                                                                        0 ##TYPE()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 TYPE(<cExp>) --> cType                                                                 0                                                                                        0 <cExp>         is a  character expression  whose  type is  to  be                      0                determined. <cExp> can be a field, with or without                      0                the alias,  a private  or public  variable, or  an                      0                expression of any type.                                                 0                                                                                        0 TYPE() returns one of the following characters:                                        0      A    Array                                                                        0      B    Block                                                                        0      C    Character                                                                    0      D    Date                                                                         0      L    Logical                                                                      0      M    Memo                                                                         0      N    Numeric                                                                      0      O    Object                                                                       0      U    NIL, local, or static                                                        0      UE   Error syntactical                                                            0      UI   Error indeterminate                                                          0                                                                                        0 TYPE() is  a  system  function  that  returns  the  type  of  the                      0 specified expression. TYPE() is like VALTYPE() but uses the macro                      0 operator (&) to determine the type of the argument. VALTYPE(), by                      0 contrast, evaluates an expression and determines the data type of                      0 the return value.                                                                      0                                                                                        0 ##UPDATED()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 UPDATED() --> lChange                                                                  0                                                                                        0 UPDATED() returns  true  (.T.) if  data  in  a GET  is  added  or                      0 changed; otherwise, it returns false (.F.).                                            0                                                                                        0 ##UPPER()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 UPPER(<cString>) --> cUpperString                                                      0                                                                                        0 <cString>      is the character string to convert.                                     0                                                                                        0 UPPER()  returns  a  copy  of  <cString>  with  all  alphabetical                      0 characters converted to  uppercase. All  other characters  remain                      0 the same as in the original string.                                                    0                                                                                        0 ##USED()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 USED() --> lDbfOpen                                                                    0                                                                                        0 USED() returns true (.T.) if there  is a database file in USE  in                      0 the current work area; otherwise, it returns false (.F.).                              0                                                                                        0 ##VAL()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 VALue                                                                                  0                                                                                        0 VAL(<cNumber>) --> nNumber                                                             0                                                                                        0 <cNumber>      is the character expression to convert.                                 0                                                                                        0 VAL()  is  a  character  conversion  function  that  converts   a                      0 character string containing  numeric digits to  a numeric  value.                      0 When VAL() is  executed, it  evaluates <cNumber>  until a  second                      0 decimal point, the first non-numeric character, or the end of the                      0 expression is encountered.                                                             0                                                                                        0 ##VALTYPE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 VALue TYPE                                                                             0                                                                                        0 VALTYPE(<exp>) --> cType                                                               0                                                                                        0 <exp>          is an expression of any type.                                           0                                                                                        0 VALTYPE() returns a single  character representing the data  type                      0 returned  by  <exp>.  VALTYPE()  returns  one  of  the  following                      0 characters:                                                                            0      A    Array                                                                        0      B    Block                                                                        0      C    Character                                                                    0      D    Date                                                                         0      L    Logical                                                                      0      M    Memo                                                                         0      N    Numeric                                                                      0      O    Object                                                                       0      U    NIL                                                                          0                                                                                        0 VALTYPE() is  a system  function that  takes a  single  argument,                      0 evaluates it, and returns a  one character string describing  the                      0 data type of the return value.                                                         0                                                                                        0 ##YEAR()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 YEAR(<dDate>) --> nYear                                                                0                                                                                        0 <dDate>   is the date value to convert.                                                0                                                                                        0 YEAR() returns the year of the specified date value including the                      0 century digits as a four-digit numeric value. The value  returned                      0 is not affected by the current DATE or CENTURY format. Specifying                      0 a null date (CTOD("")) returns zero.                                                   0                                                                                        0 ##nB FUNCTIONS##                                                                       0 ================================================================                       0                                                                                        0 Some functions made into nB are available for macro use. Not  all                      0 available functions are here documented.                                               0                                                                                        0 ##ACCEPT()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 ACCEPT( <Field>, [<cMessage>], [<cHeader>] ) --> updatedField|NIL                      0                                                                                        0                                                                                        0 It is  a prompt  function that  shows <cMessage>  asking to  type                      0 something into <Field>.  It returns the  updated data  or NIL  if                      0 [Esc] was pressed. The string <cHeader> is showed centered at the                      0 top window.                                                                            0 ##ACHOICE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 ACHOICE(<nTop>, <nLeft>, <nBottom>, <nRight>,                                          0      <acMenuItems>,                                                                    0      [<alSelectableItems>],                                                            0      [<nInitialItem>],                                                                 0      [<lButtons> | <aButtons>]) --> nPosition                                          0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>                                                   0                     are the window coordinates.                                        0                                                                                        0 <acMenuItems>       is an array of  character strings to  display                      0                     as the menu items.                                                 0                                                                                        0 <alSelectableItems> is a parallel  array of  logical values  (one                      0                     element for each item in <acMenuItems>)  that                      0                     specify the selectable  menu items.  Elements                      0                     can be logical  values or character  strings.                      0                     If the element is  a character string, it  is                      0                     evaluated as a macro expression which  should                      0                     evaluate to a logical  data type. A value  of                      0                     false (.F.) means that the corresponding menu                      0                     item is not  available, and a  value of  true                      0                     (.T.) means that it is available. By default,                      0                     all menu items are available for selection.                        0                                                                                        0 <nInitialItem>      is the position in the <acMenuItems> array of                      0                     the item that  will be  highlighted when  the                      0                     menu is initially displayed.                                       0                                                                                        0 <lButtons>          if  True  means  that  default  buttons  will                      0                     appear.                                                            0                                                                                        0 <aButtons>          is an array of buttons.                                            0                                                                                        0 aButtons[n][1] N,   the nth button row position;                                       0 aButtons[n][2] N,   the nth button column position;                                    0 aButtons[n][3] C,   the nth button text;                                               0 aButtons[n][4] B,   the nth button code block.                                         0                                                                                        0 ACHOICE() returns the numeric position in the <acMenuItems> array                      0 of the  menu  item selected.  If  no choice  is  made,  ACHOICE()                      0 returns zero.                                                                          0                                                                                        0 ##ACHOICEWINDOW()##                                                                    0 ----------------------------------------------------------------                       0                                                                                        0 ACHOICEWINDOW( <acMenuItems>, [<cDescription>],                                        0      <nTop>, <nLeft>, <nBottom>, <nRight>,                                             0      [<alSelectableItems>],                                                            0      [<nInitialItem>] ) --> nPosition                                                  0                                                                                        0 <acMenuItems>       is an array of  character strings to  display                      0                     as the menu items.                                                 0                                                                                        0 <cDescription>      is a header to be shown at the top of window.                      0                                                                                        0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>                                                   0                     are the window coordinates.                                        0                                                                                        0 <alSelectableItems> is a parallel  array of  logical values  (one                      0                     element for each item in <acMenuItems>)  that                      0                     specify the selectable  menu items.  Elements                      0                     can be logical  values or character  strings.                      0                     If the element is  a character string, it  is                      0                     evaluated as a macro expression which  should                      0                     evaluate to a logical  data type. A value  of                      0                     false (.F.) means that the corresponding menu                      0                     item is not  available, and a  value of  true                      0                     (.T.) means that it is available. By default,                      0                     all menu items are available for selection.                        0                                                                                        0 <nInitialItem>      is the position in the <acMenuItems> array of                      0                     the item that  will be  highlighted when  the                      0                     menu is initially displayed.                                       0                                                                                        0 ACHOICEWINDOW() calls ACHOICE() with  a window border around  the                      0 ACHOICE() screen area.                                                                 0                                                                                        0 ##ALERTBOX()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 ALERTBOX( <cMessage>, [<aOptions>] ) --> nChoice                                       0                                                                                        0 <cMessage>          is the message  text displayed, centered,  in                      0                     the alert box. If the message contains one or                      0                     more   semicolons,   the   text   after   the                      0                     semicolons is centered on succeeding lines in                      0                     the dialog box.                                                    0                                                                                        0 <aOptions>          defines a list of up to 4 possible  responses                      0                     to the dialog box.                                                 0                                                                                        0 ALERTBOX() returns a  numeric value indicating  which option  was                      0 chosen. If the [Esc] key is pressed, the value returned is  zero.                      0 The ALERTBOX() function creates a  simple modal dialog. The  user                      0 can respond by moving a highlight bar and pressing the Return  or                      0 SpaceBar keys, or by pressing the key corresponding to the  first                      0 letter of the  option. If <aOptions>  is not  supplied, a  single                      0 "Ok" option is presented.                                                              0                                                                                        0 ALERTBOX() is similar to ALERT() but it accept mouse imput.                            0                                                                                        0 ##ATB()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 ATB( [<nTop>], [<nLeft>], [<nBottom>], [<nRight>],                                     0      <aArray>, [<nSubscript>],                                                         0      [<acColSayPic>],                                                                  0      [<acColTopSep>], [<acColBodySep>], [<acColBotSep>],                               0      [<acColHead>], [<acColFoot>],                                                     0      [<abColValid>],                                                                   0      [<abColMsg>],                                                                     0      [<cColor>], [<abColColors>],                                                      0      [<lModify>],                                                                      0      [<lButtons> | <aButtons>] ) --> NIL                                               0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>                                                   0                               defines  the   screen  area   where                      0                               browse have to take place.                               0                                                                                        0 <aArray>                      bidimentional array to be browsed.                       0                                                                                        0 <nSubscript>                  starting array position.                                 0                                                                                        0 <acColSayPic>                 is the picture array.                                    0                                                                                        0 <acColTopSep>                 is  the   top   separation   array:                      0                               default is chr(194)+chr(196).                            0                                                                                        0 <acColBodySep>                is  the   body  sepatation   array:                      0                               default is chr(179).                                     0                                                                                        0 <acColBotSep>                 is  the  bottom  separation  array:                      0                               default is chr(193)+chr(196).                            0                                                                                        0 <acColHead>                   is  the  header  array  for   every                      0                               column.                                                  0                                                                                        0 <acColFoot>                   is  the  footer  array  for   every                      0                               column.                                                  0                                                                                        0 <abColValid>                  is  the   validation   array   that                      0                               specify when  a field  is  properly                      0                               filled.  The   condition  must   be                      0                               specifyed in code block format.                          0                                                                                        0 <abColMsg>                    is the message  array that  permits                      0                               to show information  at the  bottom                      0                               of browse area.  The array must  be                      0                               composed with  code  blocks  whitch                      0                               result with a character string.                          0                                                                                        0 <cColor>                      is the  color  string:  it  may  be                      0                               longer than the usal 5 elements.                         0                                                                                        0 <abColColors>                 is  the  color  code  block  array.                      0                               The code block receive as parameter                      0                               the  value  contained  inside   the                      0                               field  and  must  return  an  array                      0                               containing   two   numbers:    they                      0                               correspond to the two color  couple                      0                               from <cColor>.                                           0                                                                                        0 <lModify>                     indicates whether  the  browse  can                      0                               modify data.                                             0                                                                                        0 <lButtons>                    if  True,   default   buttons   are                      0                               displayed.                                               0                                                                                        0 <aButtons>                    array of buttons.                                        0                                                                                        0 aButtons[n][1] N,   the nth button row position;                                       0 aButtons[n][2] N,   the nth button column position;                                    0 aButtons[n][3] C,   the nth button text;                                               0 aButtons[n][4] B,   the nth button code block.                                         0                                                                                        0 This function starts  the browse of  a bidimentional array.  Only                      0 arrays containing monodimentional array containing the same  kind                      0 of editable data are allowed.                                                          0                                                                                        0 At the moment the function can handle a maximum of 61 columns.                         0                                                                                        0 ##BCOMPILE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 BCOMPILE( <cString> ) --> bBlock                                                       0                                                                                        0 Compiles the string <cString> and returns the code block <bBlock>                      0                                                                                        0                                                                                        0 ##BUTTON()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 BUTTON( @<aButtons>,                                                                   0      [<nRow>], [<nCol>], [<cText>], [<cColor>],                                        0      [<bAction>] ) --> NIL                                                             0                                                                                        0 <aButtons>          the array of buttons  to be increased with  a                      0                     new button array.                                                  0                                                                                        0 <nRow> and <nCol>   is the row and  column starting position  for                      0                     the button string.                                                 0                                                                                        0 <cText>             is the text that make up the button.                               0                                                                                        0 <cColor>            is the color string.                                               0                                                                                        0 <bAction>           is the code block associated to the button.                        0                                                                                        0 This function adds to <aButtons> a new button array. Please  note                      0 that the button array  added is compatible  only with the  READ()                      0 funcion and not the  other function using  array of buttons:  the                      0 others do not have a color string.                                                     0                                                                                        0 ##COLORARRAY()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 COLORARRAY( <cColor> ) --> aColors                                                     0                                                                                        0 <cColors>      a color  string  to  be translated  into  a  color                      0                array.                                                                  0                                                                                        0 This function tranform  a color string  into a  color array.  The                      0 array has  as  many  elements  as  the  colors  contained  inside                      0 <cColor> string.                                                                       0                                                                                        0 ##COORDINATE()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 COORDINATE( @<nTop>, @<nLeft>], @<nBottom>, @<nRight>,                                 0      [<cHorizontal>], [<cVertical>] ) --> NIL                                          0                                                                                        0 <nTop>, <nLeft>, <nBottom> and <nRight>                                                0                     are the starting position of a window that is                      0                     to be differently aligned.                                         0                                                                                        0 <cHorozontal>       determinates the horizontal alignment:                             0                     "L"  all left;                                                     0                     "l"  middle left;                                                  0                     "C"  center;                                                       0                     "c"  center;                                                       0                     "R"  all right;                                                    0                     "r"  middle right.                                                 0                                                                                        0 <cVertical>         determinate the vertical alignment:                                0                     "T"  top;                                                          0                     "t"  up;                                                           0                     "C"  center;                                                       0                     "c"  center;                                                       0                     "B"  bottom;                                                       0                     "b"  down.                                                         0                                                                                        0 This function helps with the windows alignment recalculating  and                      0 modifying <nTop>, <nLeft>, <nBottom> and  <nRight> in the way  to                      0 obtain the desired alignment.                                                          0                                                                                        0 ##COPYFILE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 COPYFILE( <cSourceFile>, <cTargetFile>|<cDevice> ) --> NIL                             0                                                                                        0 <cSourceFile>       the source filename.                                               0                                                                                        0 <cTargetFile>       the target filename.                                               0                                                                                        0 <cDevice>           the target devicename.                                             0                                                                                        0 This function  copyes the  <cSourceFile> to  <cTargetFile> or  to                      0 <cDevice>.                                                                             0                                                                                        0 ##DBAPP()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 DBAPP( <cFileName>, [<acFields>],                                                      0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>],                                                                 0      [<nRecord>],                                                                      0      [<lRest>],                                                                        0      [<cDriver>] ) --> NIL                                                             0                                                                                        0 <cFileName>         the filename containing data to append to the                      0                     active Alias.                                                      0                                                                                        0 <acFields>          array of  fieldnames  indicating  the  fields                      0                     that should be  updated on  the active  Alias                      0                     (default is all).                                                  0                                                                                        0 <bForCondition>     a codeblock containing  the FOR condition  to                      0                     respect for the data append. Will be appended                      0                     data that makes the  evaluation of this  code                      0                     block True.                                                        0                                                                                        0 <bWhileCondition>   a codeblock containing the WHILE condition to                      0                     respect for the data append. Will be appended                      0                     data as long as  the evaluation of this  code                      0                     block is  True:  the first  time  it  becames                      0                     False, the data appending is terminated.                           0                                                                                        0 <nNextRecord>       If  used,   means   that   only   the   first                      0                     <nNextRecords> will be appended.                                   0                                                                                        0 <nRecord>           If used,  means  that that  only  the  record                      0                     <nRecord> will be appended.                                        0                                                                                        0 <lRest>             this option is not available here also if the                      0                     function saves a place for it.                                     0                                                                                        0 <cDriver>           is the optional  driver name to  use to  open                      0                     the <cFileName> file.                                              0                                                                                        0 This function is used  to append data to  the active Alias  using                      0 data from the <cFileName> file, that in this case is a .DBF file.                      0                                                                                        0                                                                                        0 ##DBCLOSE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 DBCLOSE() --> NIL                                                                      0                                                                                        0 It is  a  substitution function  of  DBCLOSEALL() to  use  inside                      0 "compiled" macros, as  a true DBCLOSEALL()  will close the  macro                      0 file too.                                                                              0                                                                                        0 ##DBCONTINUE()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 DBCONTINUE() --> NIL                                                                   0                                                                                        0 This function resumes a pending DBLOCATE().                                            0                                                                                        0 ##DBCOPY()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DBCOPY( <cFileName>, [<acFields>],                                                     0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>],                                                                 0      [<nRecord>],                                                                      0      [<lRest>],                                                                        0      [<cDriver>] ) --> NIL                                                             0                                                                                        0 <cFileName>         the target  filename for  the data  contained                      0                     inside the active Alias.                                           0                                                                                        0 <acFields>          array of  fieldnames  indicating  the  fields                      0                     that should  be used  from the  active  Alias                      0                     (default is all).                                                  0                                                                                        0 <bForCondition>     a codeblock containing  the FOR condition  to                      0                     respect for the data copy. Will be copyed the                      0                     data that makes the  evaluation of this  code                      0                     block True.                                                        0                                                                                        0 <bWhileCondition>   a codeblock containing the WHILE condition to                      0                     respect for  the data  copy. Will  be  copyed                      0                     data as long as  the evaluation of this  code                      0                     block is  True:  the first  time  it  becames                      0                     False, the data copying is terminated.                             0                                                                                        0 <nNextRecord>       if  used,   means   that   only   the   first                      0                     <nNextRecords> will be copyed.                                     0                                                                                        0 <nRecord>           if used,  means  that that  only  the  record                      0                     <nRecord> will be copyed.                                          0                                                                                        0 <lRest>             if used means that only the remaining records                      0                     inside the active Alias are copyed.                                0                                                                                        0 <cDriver>           is the optional  driver name to  use to  open                      0                     the <cFileName> file.                                              0                                                                                        0 This function is used to copy data to <cFileName> form the active                      0 Alias.                                                                                 0                                                                                        0 ##DBCOPYSTRUCT()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 DBCOPYSTRUCT( <cDatabase>, [<acFields>] ) --> NIL                                      0                                                                                        0 <cDatabase>         is a structure .DBF file that will be  filled                      0                     with structure information  about the  active                      0                     Alias.                                                             0                                                                                        0 <acFields>          is an  array  of fieldnames  that  should  be                      0                     taken into consideration.                                          0                                                                                        0 This function creates a structure .DBF file copying the structure                      0 of the active Alias.                                                                   0                                                                                        0 ##DBCOPYXSTRUCT()##                                                                    0 ----------------------------------------------------------------                       0                                                                                        0 DBCOPYXSTRUCT( <cExtendedDatabase> ) --> NIL                                           0                                                                                        0 <cExtendedDatabase> is a structure .DBF file that will be  filled                      0                     with structure information  about the  active                      0                     Alias,    accepting    extended     structure                      0                     informations.                                                      0                                                                                        0 This function creates a structure .DBF file copying the structure                      0 of the active Alias. This function accept non-standard structure,                      0 tath is, the extended structure availabel inside Clipper.                              0                                                                                        0 ##DBDELIM()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 DBDELIM( <lCopyTo>, <cFileName>, [<cDelimiter>], [<acFields>],                         0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>] ) --> NIL                                0                                                                                        0 <lCopyTo>           if True  the function  work copying  data  to                      0                     <cFileName> from the active Alias,                                 0                     if False  the  function work  appending  data                      0                     from <cFileName> to the active Alias.                              0                                                                                        0 <cFileName>         the filename containing data to append to the                      0                     active Alias or to use  as the target of  the                      0                     data copy from tha active Alias.                                   0                                                                                        0 <cDelimiter>        the delimiter string  (or character) used  to                      0                     separate fields inside <cFileName>.                                0                                                                                        0 <acFields>          array of fieldnames indicating the fields  of                      0                     the active Alias  that should  be taken  into                      0                     consideration (default is all).                                    0                                                                                        0 <bForCondition>     a codeblock containing  the FOR condition  to                      0                     respect. The operation will  be made for  all                      0                     records that respect the condition.                                0                                                                                        0 <bWhileCondition>   a codeblock containing the WHILE condition to                      0                     respect. The first time it becames False, the                      0                     operation is terminated.                                           0                                                                                        0 <nNextRecord>       if  used,   means   that   only   the   first                      0                     <nNextRecords> will be appended/copyed.                            0                                                                                        0 <nRecord>           if used,  means  that that  only  the  record                      0                     <nRecord> will be appended/copied.                                 0                                                                                        0 <lRest>             if used means that only the remaining records                      0                     will be taken into consideration.                                  0                                                                                        0 This function is used  to append data to  the active Alias  using                      0 data from the <cFileName> file or  to copy data into  <cFileName>                      0 using the active Alias as the source. <cFileName> is a  delimited                      0 ASCII file.                                                                            0 ##DBISTATUS()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 DBISTATUS() --> cDBInformations                                                        0                                                                                        0 This function returns the informations on  the active Alias in  a                      0 text form.                                                                             0                                                                                        0 ##DBISTRUCTURE()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 DBISTRUCTURE() --> cTextStructure | NIL                                                0                                                                                        0 This function  returns the  struture  information on  the  active                      0 Alias in a text form.                                                                  0                                                                                        0 ##DBJOIN()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DBJOIN( <cAlias>, <cDatabase>,                                                         0      [<acFields>], [<bForCondition>] ) --> NIL                                         0                                                                                        0 <cAlias>            the name of  the Alias to  use to merge  with                      0                     records from the active Alias.                                     0                                                                                        0 <cDatabase>         the target .DBF filename.                                          0                                                                                        0 <acFields>          the array of  fieldnames which represent  the                      0                     projection of fields  form both Aliases  into                      0                     the new  .DBF  file. If  not  specified,  all                      0                     fields  from  the   primary  work  area   are                      0                     included in the target .DBF file.                                  0                                                                                        0 This function creates  a new  database file  by merging  selected                      0 records and  fields form  two work  areas  (Aliases) based  on  a                      0 general condition. It works by making a complete pass through the                      0 secondary work area <cAlias> for each record in the primary  work                      0 area (the active Alias), evaluating the condition for each record                      0 in the  secondary work  area. When  <bForCondition> is  evaluated                      0 True, a  new  record  is created  in  the  target  database  file                      0 <cDatabase> using  the  fields  specified from  both  work  areas                      0 inside <acFields>.                                                                     0                                                                                        0 ##DBLABELFORM()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 DBLABELFORM( <cLabel>, [<lToPrinter>], [<cFile>],                                      0      [<lNoConsole>], [<bForCondition>], [<bWhileCondition>],                           0      [<nNextRecords>], [<nRecord>], [<lRest>], [<lSample>] )                           0      --> NIL                                                                           0                                                                                        0 el>                 is the  name of  the label  file (.LBL)  that                      0                     contains the label format definition.                              0                                                                                        0 rinter>             if True,  the  output is  copyed  to  printer                      0                     (LPT1).                                                            0                                                                                        0 e>                  if present, it  is the name  of a ASCII  file                      0                     where the output is copyed.                                        0                                                                                        0 onsole>             if True,  the  output  is  not  sent  to  the                      0                     console..                                                          0                                                                                        0 Condition>          a codeblock containing  the FOR condition  to                      0                     respect for  label  print. Only  the  records                      0                     contained  inside  the   active  Alias   that                      0                     respect  the  condition  will  be  used   for                      0                     labels.                                                            0                                                                                        0 leCondition>        a codeblock containing the WHILE condition to                      0                     respect for the label  print. The first  time                      0                     that the condition is False, the label  print                      0                     terminates.                                                        0                                                                                        0 tRecord>            if  used,   means   that   only   the   first                      0                     <nNextRecords> will be used.                                       0                                                                                        0 ord>                if used,  means  that that  only  the  record                      0                     <nRecord> will be used.                                            0                                                                                        0 t>                  if used means that only the remaining records                      0                     inside the active Alias will be used.                              0                                                                                        0 ple>                if True  displays  test  labels  as  rows  of                      0                     asterisks.                                                         0                                                                                        0 This function prints labels to the console.                                            0                                                                                        0 ##DBLIST()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DBLIST( [<lToDisplay>], <abListColumns>,                                               0      [<lAll>],                                                                         0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>],                                         0      [<lToPrinter>], [<cFileName>] )                                                   0                                                                                        0 isplay>             if True the printout  is sent to the  console                      0                     screen.                                                            0                                                                                        0 stColumns>          is an array of columns expressions to list.                        0                                                                                        0 >                   if True  prints  all  the  records  contained                      0                     inside the active Alias.                                           0                                                                                        0 Condition>          a codeblock containing  the FOR condition  to                      0                     respect. Only  the records  contained  inside                      0                     the active Alias  that respect the  condition                      0                     will be used for list.                                             0                                                                                        0 leCondition>        a codeblock containing the WHILE condition to                      0                     respect. The first time that the condition is                      0                     False, the list terminates.                                        0                                                                                        0 tRecord>            if  used,   means   that   only   the   first                      0                     <nNextRecords> will be used.                                       0                                                                                        0 ord>                if used,  means  that that  only  the  record                      0                     <nRecord> will be used.                                            0                                                                                        0 t>                  if used means that only the remaining records                      0                     inside the active Alias will be used.                              0                                                                                        0 rinter>             if True,  the  output is  copyed  to  printer                      0                     (LPT1).                                                            0                                                                                        0 eName>              if present, it  is the name  of a ASCII  file                      0                     where the output is copyed.                                        0                                                                                        0 This function prints a list of records to the console.                                 0                                                                                        0 ##DBLOCATE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBLOCATE( [<bForCondition>], [<bWhileCondition>],                                      0      [<nNextRecords>], [<nRecord>], [<lRest>] ) --> NIL                                0                                                                                        0 Condition>          a codeblock containing  the FOR condition  to                      0                     respect. Only  the records  contained  inside                      0                     the active Alias  that respect the  condition                      0                     will be taken into consideration.                                  0                                                                                        0 leCondition>        a codeblock containing the WHILE condition to                      0                     respect. The first time that the condition is                      0                     False, the locate terminates.                                      0                                                                                        0 tRecord>            if  used,   means   that   only   the   first                      0                     <nNextRecords> will be used.                                       0                                                                                        0 ord>                if used,  means  that that  only  the  record                      0                     <nRecord> will be used.                                            0                                                                                        0 t>                  if used means that only the remaining records                      0                     inside the active Alias will be used.                              0                                                                                        0 This function searches sequentially for the first record matching                      0 the FOR and WHILE conditions. Once  a DBLOCATE() has been  issued                      0 you can  resume  the  search  from  the  current  record  pointer                      0 position with DBCONTINUE().                                                            0                                                                                        0 The WHILE condition and  the scope (<nNextRecord>, <nRecord>  and                      0 <lRest>) apply  only  to  the  initial  DBLOCATE()  and  are  not                      0 operational for any subsequent DBCONTINUE() call.                                      0                                                                                        0                                                    <DBCONTINUE()>                   7876                                                                                        0 ##DBOLDCREATE()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 DBOLDCREATE( <cDatabase>, <cExtendedDatabase>,                                         0      [<cDriver>], [<lNew>], [<cAlias>] ) --> NIL                                       0                                                                                        0 <cDatabase>         is the name of the new database file, with an                      0                     optional drive and directory, specified as  a                      0                     character string.  If  specified  without  an                      0                     extension (.dbf) is assumed.                                       0                                                                                        0 <cExtendedDatabase> is  a  .DBF  file  containing  the  structure                      0                     information of the file to create.                                 0                                                                                        0 <cDriver>           specifies  the  replaceable  database  driver                      0                     (RDD) to  use  to process  the  current  work                      0                     area.  <cDriver>  is  the  name  of  the  RDD                      0                     specified as a character expression.                               0                                                                                        0 <lNew>              if Ture the newly created .DBF file is opened                      0                     using the next available work area making  it                      0                     the current work area (the active Alias).                          0                                                                                        0 <cAlias>            if <lNew> is set to  True, this is the  Alias                      0                     name to use to open the file.                                      0                                                                                        0 This function  is a  a old  database function  (superseeded  form                      0 DBCREATE() )  that creates  a database  file from  the  structure                      0 information contained inside a structure file.                                         0                                                                                        0 ##DBPACK()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DBPACK() --> NIL                                                                       0                                                                                        0 This function  eliminates  definetly  the  active  Alias  records                      0 previously signed for deletion. It works only if the active Alias                      0 is opened in exclusive mode.                                                           0                                                                                        0 ##DBSDF()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 DBSDF( <lCopyTo>, <cFileName>, [<acFields>],                                           0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>] ) --> NIL                                0                                                                                        0 yTo>                if True the  function works  copying data  to                      0                     <cFileName> from the active Alias,                                 0                     if False  the  function work  appending  data                      0                     from <cFileName> to the active Alias.                              0                                                                                        0 eName>              the filename containing data to append to the                      0                     active Alias or to use  as the target of  the                      0                     data copy from tha active Alias.                                   0                                                                                        0 elds>               array of fieldnames indicating the fields  of                      0                     the active Alias  that should  be taken  into                      0                     consideration (default is all).                                    0                                                                                        0 Condition>          a codeblock containing  the FOR condition  to                      0                     respect. The operation will  be made for  all                      0                     records that respect the condition.                                0                                                                                        0 leCondition>        a codeblock containing the WHILE condition to                      0                     respect. The first time it becames False, the                      0                     operation is terminated.                                           0                                                                                        0 tRecord>            if  used,   means   that   only   the   first                      0                     <nNextRecords> will be appended/copyed.                            0                                                                                        0 ord>                if used,  means  that that  only  the  record                      0                     <nRecord> will be appended/copied.                                 0                                                                                        0 t>                  if used means that only the remaining records                      0                     will be taken into consideration.                                  0                                                                                        0 This function is used  to append data to  the active Alias  using                      0 data from the <cFileName> file or  to copy data into  <cFileName>                      0 using the active Alias as the source. <cFileName> is a SDF  ASCII                      0 file.                                                                                  0                                                                                        0 ##DBSORT()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 DBSORT( <cDatabase>, [<acFields>],                                                     0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>] ) --> NIL                                0                                                                                        0 abase>              the .DBF file to create.                                           0                                                                                        0 elds>               the array of fields to be used to create  the                      0                     new sorted <cDatabase> file.                                       0                                                                                        0 Condition>          a codeblock containing  the FOR condition  to                      0                     respect. Only  the records  contained  inside                      0                     the active Alias  that respect the  condition                      0                     will be taken into consideration.                                  0                                                                                        0 leCondition>        a codeblock containing the WHILE condition to                      0                     respect. The first time that the condition is                      0                     False, the sort terminates.                                        0                                                                                        0 tRecord>            if  used,   means   that   only   the   first                      0                     <nNextRecords> inside the  active Alias  will                      0                     be used.                                                           0                                                                                        0 ord>                if used,  means  that that  only  the  record                      0                     <nRecord> will be used.                                            0                                                                                        0 t>                  if used means that only the remaining records                      0                     inside the active Alias will be used.                              0                                                                                        0 Copy the active Alias to a .DBF file in sorted order.                                  0                                                                                        0 ##DBTOTAL()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 DBTOTAL( <cDatabase>, <bKey>, [<acFields>,                                             0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest> ) --> NIL                                 0                                                                                        0 abase>              the .DBF file to create that will contain the                      0                     copy of summarised records.                                        0                                                                                        0 >                   the code  block  key expression  that  should                      0                     correspond  to  the  key  expression  of  the                      0                     active index of the active Alias.                                  0                                                                                        0 elds>               the array of fields to be used to create  the                      0                     new <cDatabase> file.                                              0                                                                                        0 Condition>          a codeblock containing  the FOR condition  to                      0                     respect. Only  the records  contained  inside                      0                     the active Alias  that respect the  condition                      0                     will be taken into consideration.                                  0                                                                                        0 leCondition>        a codeblock containing the WHILE condition to                      0                     respect. The first time that the condition is                      0                     False, the sort terminates.                                        0                                                                                        0 tRecord>            if  used,   means   that   only   the   first                      0                     <nNextRecords> inside the  active Alias  will                      0                     be used.                                                           0                                                                                        0 ord>                if used,  means  that that  only  the  record                      0                     <nRecord> will be used.                                            0                                                                                        0 t>                  if used means that only the remaining records                      0                     inside the active Alias will be used.                              0 This function summerises records by key value to a .DBF file.  It                      0 sequentially process  the  active Alias  scanning  the  specified                      0 scope of records. Records  with the same  key will be  summerised                      0 inside the destination .DBF file. The value of numeric fields  of                      0 records with the same key are added.                                                   0                                                                                        0 ##DBUPDATE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 DBUPDATE( <cAlias>, <bKey>, [<lRandom>], [<bReplacement>] )                            0                                                                                        0 as>                 is the Alias  containing data to  be used  to                      0                     update the active Alias.                                           0                                                                                        0 >                   is a code block expression using  information                      0                     form the <cAlias> to obtain a key to refer to                      0                     the active Alias.                                                  0                                                                                        0 dom>                if True, allows record in the <cAlias> to  be                      0                     in any order. In this case, the active  Alias                      0                     must be indexe with the same key as <bKey>.                        0                                                                                        0 lacement>           is the code block that will be executed  when                      0                     records  matches:  it  should  contains   the                      0                     criteria for data update.                                          0                                                                                        0 This function updates  the active  Alias with  data from  another                      0 .DBF file.                                                                             0                                                                                        0 Example:                                                                               0      dbUpdate( "INVOICE", {|| LAST}, .T.,;                                             0           {|| FIELD->TOTAL1 := INVOICE->SUM1,;                                         0           FIELD->TOTAL2 := INVOICE->SUM2 } )                                           0                                                                                        0 ##DBZAP()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 DBZAP() --> NIL                                                                        0                                                                                        0 This function erases immediatly all the records contained  inside                      0 the active Alias.                                                                      0                                                                                        0 ##DISPBOXCOLOR()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 DISPBOXCOLOR( [<nColorNumber>], [<cBaseColor>] ) --> cColor                            0                                                                                        0 <nColorNumber>      may be 1 or 2 and  are the two color used  to                      0                     create shadowed  borders. 1  is usually  used                      0                     for the left and top line; 2 is used for  the                      0                     right and bottom line.                                             0                                                                                        0 <cBaseColor>        is the starting color string. The default  is                      0                     the actual color.                                                  0                                                                                        0 This function return a color string used for DISPBOXSHADOW()  the                      0 function that create a shadowed border around a screen window.                         0                                                                                        0 ##DISPBOXSHADOW()##                                                                    0 ----------------------------------------------------------------                       0                                                                                        0 DISPBOXSHADOW( <nTop>, <nLeft>], <nBottom>, <nRight>,                                  0      [<cBoxString>], [<cColor1>], [<cColor2>] ) --> NIL                                0                                                                                        0 <nTop>, <nLeft>], <nBottom> and <nRight>                                               0                     are the screen coordinate where the box is to                      0                     be displayed.                                                      0                                                                                        0 <cBoxString>        is the box string containing the character to                      0                     use to  build the  box. Default  is a  single                      0                     line box.                                                          0                                                                                        0 <cColor1>           is the color string to  use for the left  and                      0                     top side of the box.                                               0                                                                                        0 <cColor2>           is the color string to use for the right  and                      0                     bottom side of the box.                                            0                                                                                        0 This function drows a screen box like DISPBOX() but allowing  the                      0 variation of  colors around  the border  to  simulate a  sort  of                      0 shadow.                                                                                0                                                                                        0 ##DIR()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 DIR( [<cFileSpec>], [<lDrives>], [<lDirs>], [<lFiles>],                                0      [<lNoDirReturn>], [<nSortColumn>] ) --> cPathname                                 0                                                                                        0 <cFileSpec>         the   filename   or   Pathname,   also   with                      0                     wildcards, to be searched.                                         0                                                                                        0 <lDrives>           true (.t.) means: include drives letters.                          0                                                                                        0 <lDirs>             true (.t.) means: include directory names.                         0                                                                                        0 <lFiles>            true (.t.) means: include file names.                              0                                                                                        0 <lNoRirReturn>      true (.t.)  means: do  not return  the  shown                      0                     directory if [Esc] is used to exit.                                0                                                                                        0 <nSortColumn>       the column number  to use to  sort the  list.                      0                     The columns are:                                                   0                          Name = 1,                                                     0                          Size = 2,                                                     0                          Date = 3,                                                     0                          Time = 4,                                                     0                          Attribute = 5.                                                0                     It is not possible to sort for extention.                          0                                                                                        0 It is a window function usefull to search a file or a  directory.                      0 The complete pathname of the selected file is returned.                                0                                                                                        0 ##DOC()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 DOC( [<cTextFileName> ) --> NIL                                                        0                                                                                        0 <cTextFileName>     can contain the text  file to open and  edit;                      0                     if empty,  the editing  of UNTITLED.TXT  will                      0                     start.                                                             0                                                                                        0 It is the nB Text editor usefull for small text files (less  then                      0 64K) and contains a complete menu that can be started with [F10].                      0                                                                                        0                                                                                        0      ATTENTION: doc() should not be used inside macros.                                0 ##DOTLINE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 dotLine() --> NIL                                                                      0                                                                                        0 This function is  a "dot" command  line usefull for  calculations                      0 resolution. The dot-line  content may be  passed to the  keyboard                      0 buffer.                                                                                0                                                                                        0 ##DTEMONTH()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 dteMonth( <nMonth>, <cLanguage> ) --> cMonth                                           0                                                                                        0 <nMonth>            the month number.                                                  0                                                                                        0 <cLanguage>         the language name.                                                 0                                                                                        0 This function translates the <nMonth> number into the month  name                      0 translated using the <cLanguage> language.                                             0                                                                                        0 ##DTEWEEK()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 DTEWEEK( <nWeek>, <cLanguage> ) --> cWeek                                              0                                                                                        0 <nWeek>             is  the  week  number  (1  is  sunday,  7  is                      0                     saturday) to be translated into text.                              0                                                                                        0 <cLanguage>         is the  language name  into whitch  the  week                      0                     must be  expressed. At  the moment  it  works                      0                     only for  italian,  so <cLanguage>  can  only                      0                     contain "ITALIANO".                                                0                                                                                        0 This function  translates  the week  number  into the  week  name                      0 translated using the <cLanguage> language.                                             0                                                                                        0 ##EX()##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 EX( <cFileMacro> ) --> nExitCode                                                       0                                                                                        0 Executes the  macro  file  <cFileName>.  The  extention  must  be                      0 specified.                                                                             0                                                                                        0 <cFileMacro> may be  the name  of a  "compiled" macro  or a  text                      0 macro file.                                                                            0                                                                                        0 ##GET()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 GET( @<aGetList>,                                                                      0      [<nTop>], [<nLeft>],                                                              0      { |x| iif( pcount() > 0, <Var> := x, <Var> ) }                                    0      [<cGetPicture>], [<cColorString>],                                                0      [<bPreExpression>], [<bValid>] )                                                  0                                                                                        0 List>               is the get list array that will be  increased                      0                     with this get().                                                   0                                                                                        0 > and <nLeft>       define the  starting  position  of  this  get                      0                     object on the screen.                                              0                                                                                        0                     is the  variable that  is to  be edited  with                      0                     this get. <Var> is in fact sent to the  GET()                      0                     function using a code block.                                       0                                                                                        0 Picture>            is the get picture to use for <Var>.                               0                                                                                        0 orString>           is the color string to use for the get.                            0                                                                                        0 Expression>         is a code block that will be evaluated before                      0                     the get object  will became  active. It  must                      0                     result True  to obtain  that the  get  object                      0                     became active.                                                     0                                                                                        0 id>                 is a code block that will be evaluated  after                      0                     the get object is edited. It must result True                      0                     to obtain  that  the get  object  may  become                      0                     inactive.                                                          0                                                                                        0 create screen editing masks.                                                           0                                                                                        0                                                           <SAY()>                   9034                                                        <BUTTON()>                   7743                                                          <READ()>                   8915                                                                                        0 ##GVADD()##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 GVADD( @<cField>, <cAdd> ) --> .T.                                                     0                                                                                        0  <cField>      the field to fill with more data.                                       0                                                                                        0 <cAdd>         is the  string  to  be added  to  the  content  of                      0                <cField>.                                                               0                                                                                        0 This function is to be used inside GETs for pre/post  validation,                      0 when a the content of a field should be added with more data.                          0                                                                                        0 <cField> is  returned with  the same  length as  before to  avoid                      0 troubles with current and future GETs.                                                 0                                                                                        0 ##GVDEFAULT()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 GVDEFAULT( @<cField>, <cDefault> ) --> .T.                                             0                                                                                        0 <@cField>      the field  to  check  and if  empty  correct  with                      0                <cDefault>.                                                             0                                                                                        0 <cDefault>     is  the  default  value  to  be  used  to  replace                      0                <cField>.                                                               0                                                                                        0 This function is to be used inside GETs for pre/post  validation,                      0 when a field should have a default value.                                              0                                                                                        0 <cField> is  returned with  the same  length as  before to  avoid                      0 troubles with current and future GETs.                                                 0                                                                                        0 ##GVFILEDIR()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 GVFILEDIR( @<cWildName> ) --> .T.                                                      0                                                                                        0 <cWildName>    is the file name taken from the current get to  be                      0                used for search with DIR().                                             0                                                                                        0 This function is to be used  inside GETs for pre validation:  the                      0 <cWildName> is a file name with  wild cards that can be  searched                      0 with the DIR() function after that a specific key is pressed.                          0                                                                                        0 <cWildName> is returned with the same  length as before to  avoid                      0 troubles with current and future GETs.                                                 0                                                                                        0 ##GVFILEEXIST()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 GVFILEEXIST( @<cNameToTest>, [<cExtention>] ) --> lSuccess                             0                                                                                        0 <@cNameToTest> is the file  name taken  from the  current get  to                      0                test for existance.                                                     0                                                                                        0 <cExtention>   is the normal extention of the file.                                    0                                                                                        0 This function is to be used inside GETs for post validation:  the                      0 file name have to exist.                                                               0                                                                                        0 <cNameToTest> is returned with the same length as before to avoid                      0 troubles with current and future GETs.                                                 0                                                                                        0 ##GVFILEEXTENTION()##                                                                  0 ----------------------------------------------------------------                       0                                                                                        0 GVFILEEXTENTION( @<cName>, <cExt> ) --> .T.                                            0                                                                                        0 <@cName>       the file name to be eventually corrected with file                      0                extention.                                                              0                                                                                        0 <cExt>         the file extention to use as default.                                   0                                                                                        0 This function is to use inside GETs for pre/post validation, when                      0 the content of a field should contain a file name that should  be                      0 corrected adding a default extention if not given from the user.                       0                                                                                        0 ##GVSUBST()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 GVSUBST( @<cField>, <cSubst> ) --> .T.                                                 0                                                                                        0 <@cField>      the field to be replaced with <cSubst>.                                 0                                                                                        0 <cSubst>       is the string to be used to replace the content of                      0                <cField>.                                                               0                                                                                        0 This function is to use inside GETs for pre/post validation, when                      0 the content of a field should be replaced with other data.                             0                                                                                        0 <cField> is  returned with  the same  length as  before to  avoid                      0 troubles with current and future GETs.                                                 0                                                                                        0 ##HTF()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 HTF( [<nInitialRecord>] ) --> NIL                                                      0                                                                                        0 <nInitialRecord>              is the record number where to start                      0                               the Help Text File browse.  Default                      0                               is the actual record pointer.                            0                                                                                        0 This function browse a Help Text File that must be already opened                      0 and be the active Alias.                                                               0                                                                                        0 ##ISFILE()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 ISFILE( <cName> ) --> lFileExists                                                      0                                                                                        0 <cName>                       is the file  name (with or  without                      0                               path) to be checked for existance.                       0                                                                                        0 This function returns true (.T.) if the file <cName> exists.  The                      0 difference between this function and the standard FILE() function                      0 is that ISFILE() checks for wildcards before. If <cName> contains                      0 wildcards, the result is false (.F.).                                                  0                                                                                        0 ##ISWILD()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 ISWILD( <cName> ) --> lIsWild                                                          0                                                                                        0 <cName>                       is the file  name (with or  without                      0                               path) to be  checked for  wildcards                      0                               presence.                                                0                                                                                        0 This function returns true (.T.) if <cName> contains wildcards.                        0                                                                                        0 ##ISMEMVAR()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 ISMEMVAR( <cName> ) --> lIsMemvar                                                      0                                                                                        0 <cName>                       is the name of a possible memvar.                        0                                                                                        0 This function returns  true (.T.) if  the <cName>  is a  declared                      0 Memvar.                                                                                0                                                                                        0 ##ISCONSOLEON()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 ISCONSOLEON() --> lConsoleIsOn                                                         0                                                                                        0 This function returns  true (.T.) if  the console  will show  the                      0 result of QOUT() and QQOUT().                                                          0                                                                                        0 ##ISPRINTERON()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 ISPRINTERON() --> lPrinterIsOn                                                         0                                                                                        0 This function  returns true  (.T.) if  the default  printer  will                      0 report the the result of QOUT() and QQOUT().                                           0                                                                                        0 The default  printer is  PRN  or LPT1.  If  SET ALTERNATE  TO  is                      0 configured to  send  outputs  to LPT2  or  another  printer,  the                      0 function will report false (.F.).                                                      0                                                                                        0 ##KEYBOARD()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 KEYBOARD( [<cString>] ) --> NIL                                                        0                                                                                        0 This function stuff a string into the keyboard buffer.                                 0                                                                                        0 ##LISTWINDOW()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 listWindow( <acMenuItem>, [<cDescription>],                                            0      [<nTop>], [<nLeft>], [<nBottom>], [<nRight>],                                     0      [<cColorTop>], [<cColorBody>] ) --> nPosition                                     0                                                                                        0 <acMenuItem>        is the character array containing the list of                      0                     choices.                                                           0                                                                                        0 <cDescription>      is the header to be shown at the top window.                       0                                                                                        0  <nTop>, <nLeft>, <nBottom>, <nRight>   are      the       window                      0                     coordinates.                                                       0                                                                                        0 <cColorTop>         is the  color to  use for  window header  and                      0                     footer.                                                            0                                                                                        0 <cColorBody>        is the color to use for the window body  that                      0                     is the space where the text appears.                               0                                                                                        0 This function is an similar to  achoice(), but it shows a  header                      0 and footer, and it saves the screen, acting like a window.                             0                                                                                        0 ##MEMOWINDOW()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 memoWindow( <cVar>, [<cDescription>], [<nTop>], [<nLeft>],                             0      [<nBottom>], [<nRight>], [<cColorTop>], [<cColorBody>],                           0      [<lEditMode>], [<nLineLength>], [<nTabSize>] ) --> cVar                           0                                                                                        0 <cVar>              is  the  character  field  (variable)  to  be                      0                     edited.                                                            0                                                                                        0 <cDescription>      is the header to be shown at the top window.                       0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>    are      the       window                      0                     coordinates.                                                       0                                                                                        0 <cColorTop>         is the  color to  use for  window header  and                      0                     footer.                                                            0                                                                                        0 <cColorBody>        is the color to use for the window body  that                      0                     is the space where the text appears.                               0                                                                                        0 <lEditMode>         is equivalent to memoedit().                                       0                                                                                        0 <nLineLenght>       is equivalent to memoedit().                                       0                                                                                        0 <nTabSize>          is equivalent to memoedit().                                       0                                                                                        0 This function lets you easyly edit a long character field  (memo)                      0 defining automatically  a simple  window and  providing a  simple                      0 help.                                                                                  0                                                                                        0 ##MEMPUBLIC()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 MEMPUBLIC( <cMemvarName>|<acMemvarNames> ) --> NIL                                     0                                                                                        0 varName>            is the name of the PUBLIC variable to  create                      0                     (max 10 characters).                                               0                                                                                        0 mvarNames>          is an  array  of  PUBLIC  variable  names  to                      0                     create (max 10 characters).                                        0                                                                                        0 Creates a PUBLIC variables or a group of variables.                                    0 ##MEMRELEASE()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 MEMRELEASE( <cMemvarName>|<acMemvarNames> ) --> NIL                                    0                                                                                        0 varName>            is the  name of  the  PUBLIC variable  to  be                      0                     released.                                                          0                                                                                        0 mvarNames>          is an array  of PUBLIC variable  names to  be                      0                     released.                                                          0                                                                                        0 This function releases a previously created PUBLIC variables or a                      0 group of variables.                                                                    0                                                                                        0 ##MEMRESTORE()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 MEMRESTORE( <cMemFileName>, [<lAdditive> ) --> NIL                                     0                                                                                        0 FileName>           the memory file (.MEM) to load from disk.                          0                                                                                        0 itive>              if Ture causes  memory variables loaded  from                      0                     the memory fiel to  be added to the  existing                      0                     pool  of  memory  variables.  If  False,  the                      0                     existing memory  variables are  automatically                      0                     released.                                                          0                                                                                        0 Retrive memory variables form a memory file (.MEM).                                    0                                                                                        0 ##MEMSAVE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 MEMSAVE( <cMemFileName>, [<cSkeleton>], [<lLike>] ) --> NIL                            0                                                                                        0 FileName>           the memory file (.MEM) where public variables                      0                     should be saved.                                                   0                                                                                        0 leton>              the skeleton  mask for  defining a  group  of                      0                     variables. Whildcard characters may be  used:                      0                     _*_ and _?_.                                                       0                                                                                        0 e>                  if   True,   the   variables   grouped   with                      0                     <cSkeleton> are  saved, else  only the  other                      0                     variables are saved.                                               0                                                                                        0 Saves memory variables to a memory file (.MEM).                                        0                                                                                        0 ##MENUPROMPT()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 MENUPROMPT( @<aoGet>,                                                                  0      [<nRow>], [<nCol>],                                                               0      [<cPrompt>], [<bBlock>] ) --> NIL                                                 0                                                                                        0 <aoGet>                       is an array of get objects where  a                      0                               new get is  added by  MENUPROMPT().                      0                               These gets are read only.                                0                                                                                        0 [<nRow>] and [<nCol>]         are the  screen  coordinates  where                      0                               the menu prompt will appear.                             0                                                                                        0 [<cPrompt>]                   is the menu prompt string.                               0                                                                                        0 [<bBlock>]                    is the code  block to execute  when                      0                               the cursor is  on the current  menu                      0                               prompt. It is usually a code  block                      0                               that shows a  message somewhere  on                      0                               the screen.                                              0                                                                                        0 This founction shuld substitute the @...PROMPT command and handle                      0 the mouse.                                                                             0                                                                                        0 ##MENUTO()##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 MENUTO( <aoGet>, <nPos> ) --> nChoice                                                  0                                                                                        0 <aoGet>        array of get objects.                                                   0                                                                                        0 <nPos>         starting position to be edited.                                         0                                                                                        0 Like MENU  TO. It  returns the  selected menu  item created  with                      0 MENUPROMPT(). It supports the mouse.                                                   0                                                                                        0 ##MESSAGELINE()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 MESSAGELINE( [<cMessage>], [<cColor>], [<nPosTop>], [<nPosLeft>]                       0      )                                                                                 0      --> NIL                                                                           0                                                                                        0 <aMessage>                    the message to be displayed.                             0                                                                                        0 <cColor>                      the color string.                                        0                                                                                        0 <nPosTop> and <nPosLeft>      the  starting  position  where  the                      0                               string message whould appear on the                      0                               screen.    Default    values    are                      0                               resplectly ROW() and COL().                              0                                                                                        0 MESSAGELINE() is a function that display a message on the  screen                      0 on the selected position.  If <cMessage> is  NIL, the message  is                      0 eliminated from screen restoring the previous screen content.                          0                                                                                        0 ##MOUSESCRSAVE()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 MOUSESCRSAVE( [<nTop>], [<nLeft>], [<nBottom>], [<nRight>] )                           0      --> cSavedScreen                                                                  0                                                                                        0 <nTop>, <nLeft>, <nBottom> and <nRight>                                                0                               are  the  screen  coordinates  that                      0                               will be to save the screen.                              0                                                                                        0 This function  works  line SAVESCREEN()  but  it hide  the  mouse                      0 cursor before a screen save is made.                                                   0                                                                                        0 ##MOUSESCRRESTORE()##                                                                  0 ----------------------------------------------------------------                       0                                                                                        0 MOUSESCRRESTORE( [<nTop>], [<nLeft>], [<nBottom>], [<nRight>],                         0      [<cScreen>] ) --> cSavedScreen                                                    0                                                                                        0 <nTop>, <nLeft>, <nBottom> and <nRight>                                                0                               are the  screen  coordinates  where                      0                               the saved screen will be restored.                       0                                                                                        0 <cScreen>                     is the previously  saved screen  to                      0                               restore.                                                 0 This function  works  line RESTSCREEN()  but  it hide  the  mouse                      0 cursor before a screen restore is made.                                                0                                                                                        0 ##PICCHRMAX()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 PICCHRMAX( [<nCol>], [<nMaxCol>] ) --> cPictureString                                  0                                                                                        0 <nCol>              is the starting  position on  the screen  for                      0                     the get field.                                                     0                                                                                        0 <nMaxCol>           is the end position on the screen of the  get                      0                     field.                                                             0                                                                                        0 This function is usefull when a character field is to be used  on                      0 a get object. The  generated picture will be  the of the  maximum                      0 possible extention, eventually with scroll.                                            0                                                                                        0 ##QUIT()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 QUIT() --> NIL                                                                         0                                                                                        0 Terminates program execution.                                                          0                                                                                        0 ##READ()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 READ( <aoGet>, [<nPos>], [<aButtons>], [<lReadOnly>] )                                 0      --> lUpdated                                                                      0                                                                                        0 <aoGet>             is the array of get objects.                                       0                                                                                        0 <nPos>              is the starting position.                                          0                                                                                        0 <aButtons>          is the array of buttons.                                           0                                                                                        0 <lReadOnly>         if True, get fields  cannot be modifyed;  the                      0                     default value is False.                                            0                                                                                        0 This function is made to substitute the READMODAL() allowing  the                      0 use of the mouse. The array  <aButtons> is made with the help  of                      0 the function BUTTON().                                                                 0                                                                                        0                                                         see also:                      0                                                        <BUTTON()>                   7743                                                                                        0 ##RF()##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 RF( <cFRMName>,                                                                        0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNext>], [<nRecord>], [<lRest>], [<lPlain>],                                    0      [<cbHeading>], [<lBeforeEject>], [<lSummary>],                                    0      [<lDate>], [<acExtra>] ) --> NIL                                                  0                                                                                        0 <cFRMName>          the form  (.FRM) file  to  use to  print  the                      0                     active Alias.                                                      0                                                                                        0 <bForCondition>     code block for the FOR condition.                                  0                                                                                        0 <bWhileCondition>   code block for the WHILE condition.                                0                                                                                        0 <nNext>             see REPORT FORM.                                                   0 <nRecord>           see REPORT FORM                                                    0                                                                                        0 <lRest>             see REPORT FORM                                                    0                                                                                        0 <lPlain>            if true (.T.),  force the print  in a  simple                      0                     way.                                                               0                                                                                        0 <cbHeading>         additional header in character or code  block                      0                     form. If  a code  block  is sent,  the  final                      0                     result must be a character string.                                 0                                                                                        0 <lBeforeEject>      if true (.T.), force  a form feed before  the                      0                     print.                                                             0                                                                                        0 <lSummary>          if true (.T.), force a summary print only.                         0                                                                                        0 <lDate>             if false (.F.), force the print without  date                      0                     at the top of page.                                                0                                                                                        0 <acExtra>           a  character  array  that  may  be  used  for                      0                     translating  standard  printed  report   form                      0                     words and  to  add  vertical  and  horizontal                      0                     separations. The default value of acExtra is:                      0                                                                                        0                     acExtra[1]     "Page No."                                          0                     acExtra[2]     "** Subtotal **"                                    0                     acExtra[3]     "* Subsubtotal *"                                   0                     acExtra[4]     "*** Total ***"                                     0                     acExtra[5]     " "   vertical column                               0                                          separation                                    0                     axExtra[6]     ""    horizontal                                    0                                          separation: no                                0                                          separation.                                   0                                                                                        0 This function does the same work  of REPORT FORM or  __ReportForm                      0 or dbReportForm, but it prints where qout() and qqout() print.                         0                                                                                        0 ##RPT()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 RPT( <cText> ) --> NIL                                                                 0                                                                                        0 This function prints the text contained into <cText> using  print                      0 commands.  This  function  accepts  other  parameters  here   not                      0 described, as they  are not  to be  used for  macro purpose.  The                      0 printing is  made  using  QOUT() and  QQOUT(),  this  way  it  is                      0 sensible to the "alternate" file definition.                                           0                                                                                        0 ##RPTMANY()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 RPTMANY( <cText>, [<bWhileCondition>], [<bForCondition>] )                             0      --> NIL                                                                           0                                                                                        0 This function prints the text contained into <cText> many  times:                      0 one for every record contained into the active Alias.                                  0                                                                                        0 <cText>             is the text to be printed.                                         0                                                                                        0 <bWhileCondition>   is a  code block  for  a WHILE  condition  to                      0                     respect for the records to print.                                  0                                                                                        0 <bForCondition>     is a  code  block  for  a  FOR  condition  to                      0                     respect for the records to print.                                  0 ##RPTTRANSLATE()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 RPTTRANSLATE( <cText> ) --> cTranslatedText                                            0                                                                                        0 This function translates  once <cText>  replacing variables  with                      0 memvars or Fields.                                                                     0                                                                                        0 ##RUN()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 RUN( <cCommand> ) --> NIL                                                              0                                                                                        0 This function start execution of <cCommand> in a DOS session.  It                      0 works only if there is enough available memory.                                        0                                                                                        0 ##SAY()##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 SAY( <nTop>, <nLeft>, <Expr>,                                                          0      [<cSayPicture>], [<cColorString>] ) --> NIL                                       0                                                                                        0 > and <nLeft>       define the  starting position  on the  screen                      0                     where the <Expr> should be displayed.                              0                                                                                        0 >                   is an  expression  that will  be  solved  and                      0                     displayed.                                                         0                                                                                        0 Picture>            is the picture to use to display <Expr>.                           0                                                                                        0 orString>           is the color string to use.                                        0                                                                                        0 This function displays the result of <Expr> on the screen on  the                      0 desired position.                                                                      0                                                                                        0                                                           <GET()>                   8488                                                        <BUTTON()>                   7743                                                          <READ()>                   8915                                                                                        0 ##SETCOLORSTANDARD()##                                                                 0 ----------------------------------------------------------------                       0                                                                                        0 SETCOLORSTANDARD( [<nColor>], [<cColor>|<acColor>] )                                   0      --> cPreviousColor|acPreviousColor                                                0                                                                                        0 <nColor>       is the color  number to  take into  consideration:                      0                0    All colors                                                         0                1    Base                                                               0                2    Menu                                                               0                3    Head                                                               0                4    Body (Say - Get)                                                   0                5    Button (Mouse buttons)                                             0                6    Message                                                            0                7    Alert                                                              0                                                                                        0 <cColor>       the color string to be associated with <nColor>.                        0                                                                                        0 <acColor>      it the color array                                                      0                                                                                        0 This function is a way to  handle colors inside the  application.                      0 The  functions  that  display  something  use  a  default   color                      0 depending on what  they does. These  colors may  be changed  with                      0 SETCOLORSTANDARD(), all toogether or only one.                                         0                                                                                        0 ##SETFUNCTION()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 SETFUNCTION( <nFunctionKey>, <cString> ) --> NIL                                       0                                                                                        0 ctionKey>           the  number  of  the  function  key  (  1=F1,                      0                     12=F12) to be assigned.                                            0                                                                                        0 ing>                the character string.                                              0                                                                                        0 This function  assigns  a  character string  to  a  function  key                      0 (obsolete).                                                                            0                                                                                        0 ##SETMOUSE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 SETMOUSE( [<lShow>] )--> lPrevious                                                     0                                                                                        0 <lShow>        True shows the mouse cursor, False hide the  mouse                      0                cursor, NIL reports only the status.                                    0                                                                                        0 This function is  made to  show, hide  or report  only the  mouse                      0 cursor status.                                                                         0                                                                                        0 ##SETOUTPUT()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 SETOUTPUT( [<cPeriperal>|<aPeripheral>] )                                              0      --> aPrevious_Output_Peripherals                                                  0                                                                                        0 <cPeripheral>       is the new output  peripheral for qout()  and                      0                     qqout() functions.                                                 0                                                                                        0 <aPeripheral>       are the new output peripherals configurations                      0                     for qout() and qqout() functions.                                  0                                                                                        0 nB is organised in the way to have only one output peripheral  at                      0 the time. This function  help to make  order inside SET  CONSOLE,                      0 SET PRINTER and SET ALTERNATE.                                                         0                                                                                        0 If <cPeripheral> contains:                                                             0                                                                                        0 "CON"               SET CONSOLE is set to ON,                                          0                     SET PRINTER is set to OFF,                                         0                     SET ALTERNATE is set to OFF;                                       0                                                                                        0 "PRN"               SET CONSOLE is set to OFF,                                         0                     SET PRINTER is set to ON,                                          0                     SET ALTERNATE is set to OFF;                                       0                                                                                        0 "LPT1"              same as "PRN"                                                      0                                                                                        0 otherwise           SET CONSOLE is set to OFF,                                         0                     SET PRINTER is set to OFF,                                         0                     SET ALTERNATE is set to ON,                                        0                     SET ALTERNATE TO is set to <cPeripheral>.                          0                                                                                        0 <aPeripheral> is organised this way:                                                   0                                                                                        0 aPeripheral[1] = _SET_CONSOLE                                                          0                                                                                        0 aPeripheral[2] = _SET_PRINTER                                                          0                                                                                        0 aPeripheral[3] = _SET_ALTERNATE                                                        0                                                                                        0 aPeripheral[4] = _SET_ALTFILE                                                          0                                                                                        0 aPeripheral[5] = _SET_EXTRA                                                            0                                                                                        0 aPeripheral[6] = _SET_EXTRAFILE                                                        0                                                                                        0 This function  is necessary  becase SET  ALTERNATE alone  is  not                      0 enough to print on the screen  when the peripheral name is  "CON"                      0 or to print on the printer  when the peripheral name is "PRN"  or                      0 "LPT1". In fact, in the first  case, ROW() and COL() will not  be                      0 updated, in  the  second case,  PROW()  and PCOL()  will  not  be                      0 updated.                                                                               0                                                                                        0 This function  returns an  array organised  in  the same  way  as                      0 <aPeripheral> is, that shows the active output configuration.                          0                                                                                        0 ##SETRPTEJECT()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 SETRPTEJECT( [<lbEject>] ) --> lPreviousEjectMode                                      0                                                                                        0 This function is  used to  set the  eject mode  after every  page                      0 print  for  RPT().   If  single   sheet  paper   is  used,   then                      0 SETRPTEJECT(.T.)   must   be    set;   for   continuous    paper,                      0 SETRPTEJECT(.F.) is correct. The default value is .F..                                 0                                                                                        0 <lbEject>           logical or codeblock,  is the  eject mode  to                      0                     set. Default is no change, the starting value                      0                     is .F.                                                             0                                                                                        0 ##SETRPTLINES()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 SETRPTLINES() --> nRemainingLines                                                      0                                                                                        0 This function is  used to report  the number  of lines  available                      0 before the completion of the page print for RPT().                                     0                                                                                        0                                                              See:                      0                                                           <RPT()>                   8991                                                                                        0 ##SETVERB()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 SETVERB( <cSpecifier>, [<xNewSetting>], [<lOpenMode>] )                                0      --> xPreviousValueSet                                                             0                                                                                        0 <cSpecifier>   a word that defines the kind of set is going to be                      0                considered.                                                             0                                                                                        0 <xNewSetting>  is the new value to set up.                                             0                                                                                        0 <lOpenMode>    used only for some kind of set.                                         0                                                                                        0 This function is analogue to SET() but it uses a character string                      0 (with <cSpecifier>) and not a number  to select the set. This  is                      0 made to make easyer the work with macros.                                              0                                                                                        0 <cSpecifier> may contain:                                                              0           "EXACT"                                                                      0           "FIXED"                                                                      0           "DECIMALS"                                                                   0           "DATEFORMAT"                                                                 0           "EPOCH"                                                                      0           "PATH"                                                                       0           "DEFAULT"                                                                    0           "EXCLUSIVE"                                                                  0           "SOFTSEEK"                                                                   0           "UNIQUE"                                                                     0           "DELETED"                                                                    0           "CANCEL"                                                                     0           "TYPEAHEAD"                                                                  0           "COLOR"                                                                      0           "CURSOR"                                                                     0           "CONSOLE"                                                                    0           "ALTERNATE"                                                                  0           "ALTFILE"                                                                    0           "DEVICE"                                                                     0           "EXTRA"                                                                      0           "EXTRAFILE"                                                                  0           "PRINTER"                                                                    0           "PRINTFILE"                                                                  0           "MARGIN"                                                                     0           "BELL"                                                                       0           "CONFIRM"                                                                    0           "ESCAPE"                                                                     0           "INSERT"                                                                     0           "EXIT"                                                                       0           "INTENSITY"                                                                  0           "SCOREBOARD"                                                                 0           "DELIMITERS"                                                                 0           "DELIMCHARS"                                                                 0           "WRAP"                                                                       0           "MESSAGE"                                                                    0           "MCENTER"                                                                    0                                                                                        0 ##SETVERB("EXACT")##                                                                   0 ................................................................                       0                                                                                        0                                                        obsolete                        0                                                                                        0 SETVERB( "EXACT", [<lExact>] ) --> lPrevious                                           0                                                                                        0 If <lExact>  is True,  it forces  exact comparison  of  character                      0 strings, including length. If it is False, character strings  are                      0 compared until the left string length  is exausted; that is  that                      0 "" (the null string) is equal to any other string.                                     0                                                                                        0      Please note  that  the  ==  operator  is  a  comparison                           0      operator for exact match and using it, SETVERB("EXACT",                           0      .F.) will not work.                                                               0                                                                                        0 The starting value is True.                                                            0                                                                                        0 The recommanded value is True.                                                         0                                                                                        0 ##SETVERB("FIXED")##                                                                   0 ................................................................                       0                                                                                        0 SETVERB( "FIXED", [<lFixed>] ) --> lPrevious                                           0                                                                                        0 If <lFixed> contains True, numeric values are displayed ever with                      0 a fixed number of decimal digits,  depending on the value set  by                      0 SETVERB("DECIMALS").                                                                   0                                                                                        0 The starting value is False.                                                           0                                                                                        0 The recommended value is  False: if you have  to display a  fixed                      0 number of decimal digits  it is better to  define a good  display                      0 picture.                                                                               0 ##SETVERB("DECIMALS")##                                                                0 ................................................................                       0                                                                                        0 SETVERB( "DECIMALS", [<nDecimals>] ) --> nPrevious                                     0                                                                                        0 <nDecimals> is the number of digits to display after the  decimal                      0 position. This set is enabled of disabled with SETVERB("FIXED").                       0                                                                                        0 The starting value is 8.                                                               0                                                                                        0 ##SETVERB("DATEFORMAT")##                                                              0 ................................................................                       0                                                                                        0 SETVERB( "DATEFORMAT", [<cDateFormat>] ) --> cPrevious                                 0                                                                                        0 <cDateFormat> is a character  expression that specifies the  date                      0 format.                                                                                0                                                                                        0 The starting value is "dd/mm/yyyy".                                                    0                                                                                        0 Some date format examples:                                                             0           AMERICAN       "mm/dd/yyyy"                                                  0           ANSI           "yyyy.mm.dd"                                                  0           BRITISH        "dd/mm/yyyy"                                                  0           FRENCH         "dd/mm/yyyy"                                                  0           GERMAN         "dd.mm.yyyy"                                                  0           ITALIAN        "dd-mm-yyyy"                                                  0           JAPAN          "yyyy/mm/dd"                                                  0           USA            "mm-dd-yyyy"                                                  0                                                                                        0 ##SETVERB("EPOCH")##                                                                   0 ................................................................                       0                                                                                        0 SETVERB( "EPOCH", [<nYear>] ) --> nPrevious                                            0                                                                                        0 <nYear> specifies the base year of  100-year period in which  all                      0 dates containing only twho year digits are assumed to fall.                            0                                                                                        0 The starting value is 1900.                                                            0                                                                                        0 ##SETVERB("PATH")##                                                                    0 ................................................................                       0                                                                                        0 SETVERB( "PATH", [<cPath>] ) --> cPrevious                                             0                                                                                        0 <cPath> identifies the paths  that nB uses  when searching for  a                      0 file not found in the current directory. The list of paths can be                      0 separated by commas or semicolons.                                                     0                                                                                        0 The starting value is "".                                                              0                                                                                        0 ##SETVERB("DEFAULT")##                                                                 0 ................................................................                       0                                                                                        0 SETVERB( "DEFAULT", [<cPath>] ) --> cPrevious                                          0                                                                                        0 <cPath> identifies the default disk drive and directory.                               0                                                                                        0 The starting value is "".                                                              0 ##SETVERB("EXCLUSIVE")##                                                               0 ................................................................                       0                                                                                        0 SETVERB( "EXCLUSIVE", [<lExclusive>] ) --> lPrevious                                   0                                                                                        0 If <lPath> is True, the default database (.DBF) file open is made                      0 in exclusive mode; in the other case, in shared mode.                                  0                                                                                        0 The starting value is True.                                                            0                                                                                        0 ##SETVERB("SOFTSEEK")##                                                                0 ................................................................                       0                                                                                        0 SETVERB( "SOFTSEEK", [<lSoftSeek>] ) --> lPrevious                                     0                                                                                        0 If <lSoftSeek> is  True, if a  DBSEEK() index  search fails,  the                      0 record pointer is moved to the next record with a higher key.  If                      0 it is False,  in case  of a  DBSEEK() index  search failure,  the                      0 record pointer is moved at EOF().                                                      0                                                                                        0 The starting value is False.                                                           0                                                                                        0 ##SETVERB("UNIQUE")##                                                                  0 ................................................................                       0                                                                                        0                                                        obsolete                        0                                                                                        0 SETVERB( "UNIQUE", [<lUnique>] ) --> lPrevious                                         0                                                                                        0 If <lUnique> is True, during creation or update of .DBF  indexes,                      0 if two or  more records  are found with  the same  key, only  the                      0 first record will be inlcuded inside the index.                                        0                                                                                        0 If <lUnique> is False, duplicated record keys are allowed.                             0                                                                                        0 The starting value is False.                                                           0                                                                                        0 ##SETVERB("DELETED")##                                                                 0 ................................................................                       0                                                                                        0 SETVERB( "DELETED", [<lDeleted>] ) --> lPrevious                                       0                                                                                        0 If <lDeleted>  is  True,  record  signed  for  deletion  are  not                      0 filtered, that is, these are still normally visible as they  were                      0 not deleted. In the other case, they hare (in most cases)  hidden                      0 to the user.                                                                           0                                                                                        0 The starting value is False.                                                           0                                                                                        0 ##SETVERB("CANCEL")##                                                                  0 ................................................................                       0                                                                                        0 SETVERB( "CANCEL", [<lCancel>] ) --> lPrevious                                         0                                                                                        0 If <lCancel>  is True,  enables [Alt]+[C]  and [Ctrl]+[Break]  as                      0 termination keys. In the other case, not.                                              0                                                                                        0 The starting value is True.                                                            0                                                                                        0 ##SETVERB("TYPEAHEAD")##                                                               0 ................................................................                       0                                                                                        0 SETVERB( "TYPEAHEAD", [<nTypeAhead>] ) --> nPrevious                                   0                                                                                        0 <nTypeAhead> is the number of keystrokes the keyboard buffer  can                      0 hold from a minimum of zero to a maximum of 4096.                                      0                                                                                        0 The starting value is 15.                                                              0                                                                                        0 ##SETVERB("COLOR")##                                                                   0 ................................................................                       0                                                                                        0 SETVERB( "TYPEAHEAD", [<cColorString>] ) --> cPrevious                                 0                                                                                        0 <nColorString> defines the normal  screen colors. There are  five                      0 couple of colors, but only three are really operative:                                 0                                                                                        0 standard            This is the  standard color  used for  screen                      0                     output.                                                            0                                                                                        0 enhanced            This is the color used for highlighted screen                      0                     output.                                                            0                                                                                        0 border              Normally unused.                                                   0                                                                                        0 background          Normally unused.                                                   0                                                                                        0 unselected          This is the color used for GET fields without                      0                     focus.                                                             0                                                                                        0 The default color string is "BG+/B,N/W,N/N,N/N,W/N" that is:                           0                                                                                        0 standard       bright Cyan on Blue                                                     0                                                                                        0 enhanced       Black on White                                                          0                                                                                        0 border         Black on Black                                                          0                                                                                        0 background     Black on Black                                                          0                                                                                        0 unselected     White on Black                                                          0                                                                                        0 The following table explains the use of letters inside the  color                      0 string. Note that  the plus sign  (+) means  high intensity,  the                      0 star (*) means blink and that + and  * can be allyed only to  the                      0 first letter inside a couple.                                                          0                                                                                        0 Color               Letter         Monocrome                                           0                                                                                        0 Black               N, Space       Black                                               0 Blue                B              Underline                                           0 Green               G              White                                               0 Cyan                BG             White                                               0 Red                 R              White                                               0 Magenta             RB             White                                               0 Brown               GR             White                                               0 White               W              White                                               0 Gray                N+             Black                                               0 Bright Blue         B+             Bright Underline                                    0 Bright Green        G+             Bright White                                        0 Bright Cyan         BG+            Bright White                                        0 Bright Red          R+             Bright White                                        0 Bright Magenta      RB+            Bright White                                        0 Bright Brown        GR+            Bright White                                        0 Bright White        W+             Bright White                                        0 Black               U              Underline                                           0 Inverse Video       I              Inverse Video                                       0 Blank               X              Blank                                               0                                                                                        0 ##SETVERB("CURSOR")##                                                                  0 ................................................................                       0                                                                                        0 SETVERB( "CURSOR", [<lCursor>] ) --> lPrevious                                         0                                                                                        0 If <lCursor> is True, the cursor is showed, else it is hidden.                         0                                                                                        0 The starting value is True.                                                            0                                                                                        0 ##SETVERB("CONSOLE")##                                                                 0 ................................................................                       0                                                                                        0 SETVERB( "CONSOLE", [<lConsole>] ) --> lPrevious                                       0                                                                                        0 If  <lConsole>  is  True,  the  output  of  console  commands  is                      0 displayed on the screen, else it is not.                                               0                                                                                        0 The starting value is True.                                                            0                                                                                        0 ##SETVERB("ALTERNATE")##                                                               0 ................................................................                       0                                                                                        0 SETVERB( "ALTERNATE", [<lAlternate>] ) --> lPrevious                                   0                                                                                        0 If <lAlternate> is True, the output  of console commands is  send                      0 also to a standard ASCII text file.                                                    0                                                                                        0 The starting value is False.                                                           0                                                                                        0                                              <setverb("altfile")>                   9496                                                                                        0 ##SETVERB("ALTFILE")##                                                                 0 ................................................................                       0                                                                                        0 SETVERB( "ALTFILE", [<cAlternateFilename>], [<lAdditive>] )                            0      --> cPrevious                                                                     0                                                                                        0 If SETVERB("ALTERNATE") is  True, the  output of  the console  is                      0 send also to <cAlternateFilename>, a standard ASCII file.                              0                                                                                        0 If <lAdditive> is True, the output is appended to the ASCII  file                      0 if it already exists, else it is erased first.                                         0                                                                                        0                                            <setverb("alternate")>                   9484                                                                                        0 ##SETVERB("DEVICE")##                                                                  0 ................................................................                       0                                                                                        0 SETVERB( "DEVICE", [<cDevice>] ) --> cPrevious                                         0                                                                                        0 <cDevice> is the name of the device where SAY() will display  its                      0 output.                                                                                0                                                                                        0 The starting value is "SCREEN", the alternative is "PRINTER".                          0                                                                                        0 The recommended value is "SCREEN".                                                     0                                                                                        0 ##SETVERB("EXTRA")##                                                                   0 ................................................................                       0                                                                                        0 SETVERB( "EXTRA", [<lExtra>] ) --> lPrevious                                           0                                                                                        0 If <lExtra> is True, the output of console commands is send  also                      0 to a standard ASCII text file.                                                         0                                                                                        0 The starting value is False.                                                           0                                                                                        0                                            <setverb("extrafile")>                   9534                                                                                        0 ##SETVERB("EXTRAFILE")##                                                               0 ................................................................                       0                                                                                        0 SETVERB( "EXTRAFILE", [<cExtraFilename>], [<lAdditive>] )                              0      --> cPrevious                                                                     0                                                                                        0 If SETVERB("EXTRA") is True,  the output of  the console is  send                      0 also to <cExtraFilename>, a standard ASCII file.                                       0                                                                                        0 If <lAdditive> is True, the output is appended to the ASCII  file                      0 if it already exists, else it is erased first.                                         0                                                                                        0                                                <setverb("extra")>                   9522                                                                                        0 ##SETVERB("PRINTER")##                                                                 0 ................................................................                       0                                                                                        0 SETVERB( "PRINTER", [<lPrinter>] ) --> lPrevious                                       0                                                                                        0 If <lPrinter> is  True, the output  of console  commands is  also                      0 printed, else it is not.                                                               0                                                                                        0 The starting value is False.                                                           0                                                                                        0 ##SETVERB("PRINTFILE")##                                                               0 ................................................................                       0                                                                                        0 SETVERB( "PRINTFILE", [<cPrintFileName>] ) --> cPrevious                               0                                                                                        0 <cPrintFileName> is the name of the printer peripheral name.                           0                                                                                        0 The starting value is "" (null string).                                                0                                                                                        0 ##SETVERB("MARGIN")##                                                                  0 ................................................................                       0                                                                                        0 SETVERB( "MARGIN", [<nPageOffset>] ) --> nPrevious                                     0                                                                                        0 <nPageOffset> is the positive  number of column to  be used as  a                      0 left margin for all printer output.                                                    0                                                                                        0 The starting value is 0.                                                               0                                                                                        0 ##SETVERB("BELL")##                                                                    0 ................................................................                       0                                                                                        0 SETVERB( "BELL", [<lBell>] ) --> lPrevious                                             0                                                                                        0 If <lBell> is  True, the sound  of the bell  is used  to get  the                      0 attention of the user when some wrong actions are made.                                0                                                                                        0 The starting value is False.                                                           0                                                                                        0 ##SETVERB("CONFIRM")##                                                                 0 ................................................................                       0                                                                                        0 SETVERB( "CONFIRM", [<lConfirm>] ) --> lPrevious                                       0                                                                                        0 If <lConfirm> is False, the GET is simply terminated typing  over                      0 the end of the get  field; in the other  case (True), the GET  is                      0 terminated only pressing an "exit key".                                                0 The starting value is True.                                                            0                                                                                        0 ##SETVERB("ESCAPE")##                                                                  0 ................................................................                       0                                                                                        0 SETVERB( "ESCAPE", [<lEscape>] ) --> lPrevious                                         0                                                                                        0 If <lEscape> is True, the [Esc] key is enabled to be a READ  exit                      0 key, in the other case not.                                                            0                                                                                        0 The starting value is True.                                                            0                                                                                        0 The recommanded value is True.                                                         0                                                                                        0 ##SETVERB("INSERT")##                                                                  0 ................................................................                       0                                                                                        0 SETVERB( "INSERT", [<lInsert>] ) --> lPrevious                                         0                                                                                        0 If <lInsert> is True, the data editing is in INSERT mode, in  the                      0 other case, it is in OVERWRITE mode.                                                   0                                                                                        0 The starting value is True.                                                            0                                                                                        0 ##SETVERB("EXIT")##                                                                    0 ................................................................                       0                                                                                        0 SETVERB( "EXIT", [<lExit>] ) --> lPrevious                                             0                                                                                        0 If <lExit> is True, [Up] and [Down]  key may be used as exit  key                      0 when the cursor is (respectively) on the first or on the last GET                      0 field. In the other case not.                                                          0                                                                                        0 The starting value is False.                                                           0                                                                                        0 The recommanded value is False.                                                        0                                                                                        0 ##SETVERB("INTENSITY")##                                                               0 ................................................................                       0                                                                                        0 SETVERB( "INTENSITY", [<lIntensity>] ) --> lPrevious                                   0                                                                                        0 If <lIntensitiy> is  True, the display  of standard and  enhanced                      0 display colors  are enabled.  In the  other case,  only  standard                      0 colors are enabled.                                                                    0                                                                                        0 The starting value is True.                                                            0                                                                                        0 The recommanded value is True.                                                         0                                                                                        0 ##SETVERB("SCOREBOARD")##                                                              0 ................................................................                       0                                                                                        0 SETVERB( "SCOREBOARD", [<lScoreboard>] ) --> lPrevious                                 0                                                                                        0 If <lScoreboard> is True, the display of messages from READ() and                      0 MEMOREAD() is allowed; in the order case not.                                          0                                                                                        0 The starting value is Fase.                                                            0                                                                                        0 The recommanded value is Fase: nB do not support scoreborad.                           0 ##SETVERB("DELIMITERS")##                                                              0 ................................................................                       0                                                                                        0 SETVERB( "DELIMITERS", [<lDelimiters>] ) --> lPrevious                                 0                                                                                        0 If <lDelimiters>  is True,  GET variables  appear on  the  screen                      0 delimited with  the delimiter  symbols. In  the other  case,  GET                      0 variables are not  delimitd this way,  but only with  the use  of                      0 different colors.                                                                      0                                                                                        0 The starting value is Fase.                                                            0                                                                                        0 The recommanded value is Fase: the use of delimiters creates  one                      0 more truble when designing a screen mask.                                              0                                                                                        0 ##SETVERB("DELIMCHARS")##                                                              0 ................................................................                       0                                                                                        0 SETVERB( "DELIMCHARS", [<cDelimterCharacters>] ) --> cPrevious                         0                                                                                        0 <cDelimterCharacters>  are  the  delimiter  characters  used   to                      0 delimit a GET field when SETVERB("DELIMITERS") is True.                                0                                                                                        0 The starting value is "::".                                                            0                                                                                        0 ##SETVERB("WRAP")##                                                                    0 ................................................................                       0                                                                                        0 SETVERB( "WRAP", [<lWrap>] ) --> lPrevious                                             0                                                                                        0 If <lWrap> is True, the wrapping of the highlight in MENUs should                      0 be active, but this option is  actually not active and all  works                      0 as it is False.                                                                        0                                                                                        0 The starting value is Fase.                                                            0                                                                                        0 ##SETVERB("MESSAGE")##                                                                 0 ................................................................                       0                                                                                        0 SETVERB( "MESSAGE", [<nMessageRow>] ) --> nPrevious                                    0                                                                                        0 <nMessageRow> is the row number where the @..PROMPT message  line                      0 should appear on the screen. This option is not supported.                             0                                                                                        0 The starting value is 0.                                                               0                                                                                        0 ##SETVERB("MCENTER")##                                                                 0 ................................................................                       0                                                                                        0 SETVERB( "MCENTER", [<lMessageCenter>] ) --> lPrevious                                 0                                                                                        0 If <lMessageCenter> is  True, the @..PROMPT  message line  should                      0 appear centered on the screen. This option is not supported.                           0                                                                                        0 The starting value is False.                                                           0                                                                                        0 ##STRADDEXTENTION()##                                                                  0 ----------------------------------------------------------------                       0                                                                                        0 STRADDEXTENTION( <cName>, <cExt> ) --> cCompleteName                                   0                                                                                        0 <cName>        the file  name  (with  or without  path)  that  is                      0                probably without extention.                                             0                                                                                        0 <cExt>         the extention that must be added to <cName> if  it                      0                has not one.                                                            0                                                                                        0 This function check <cName> for the presence of an extention.  It                      0 it has not one, <cExt> will be added.                                                  0                                                                                        0 ##STRCUTEXTENTION()##                                                                  0 ----------------------------------------------------------------                       0                                                                                        0 STRCUTEXTENTION( <cName> ) --> cName                                                   0                                                                                        0 <cName>        the file  name  (with  or without  path)  that  is                      0                probably with extention.                                                0                                                                                        0 This function check <cName> for the presence of an extention.  It                      0 it has one, the extention is removed.                                                  0                                                                                        0 ##STRDRIVE()##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 STRDRIVE( <cName> ) --> cDrive                                                         0                                                                                        0 <cName>        the file name (with or without path) that contains                      0                the drive letter.                                                       0                                                                                        0 This function tries to extract the drive letter information  from                      0 <cName>.                                                                               0                                                                                        0 ##STREXTENTION()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 STREXTENTION( <cName> ) --> cExtention                                                 0                                                                                        0 <cName>        the file name (with or without path) that contains                      0                an extention.                                                           0                                                                                        0 This function  tries to  extract the  extention information  from                      0 <cName>.                                                                               0                                                                                        0 ##STRFILE()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 STRFILE( <cName> ) --> cFileName                                                       0                                                                                        0 <cName>        the file name with or without path.                                     0                                                                                        0 This function tries to  extract the file  name without path  from                      0 <cName>.                                                                               0                                                                                        0 ##STRFILEFIND()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 STRFILEFIND( <cName>, <cPath> ) --> cFileName                                          0                                                                                        0 <cName>        the file name or pathname containing the file name                      0                to search inside the <cPath> list.                                      0                                                                                        0 <cPath>        a list  of paths  separated with  semicolon  (just                      0                like Dos does), where <cFile> should be searched.                       0                                                                                        0                                                                                        0 If your file is to be found on different possible positions, this                      0 function search  the first  place where  the  file is  found  and                      0 returns a valid pathname to that file.                                                 0                                                                                        0 ##STRGETLEN()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 STRGETLEN( <xExpr>, <cPicture> ) --> nFieldLenght                                      0                                                                                        0 <xExpr>   a generic expression.                                                        0                                                                                        0 <cPicture>     the picture string.                                                     0                                                                                        0 This function returns the lenght of field when using <xExpr> with                      0 <cPicture>.                                                                            0                                                                                        0 ##STRLISTASARRAY()##                                                                   0 ----------------------------------------------------------------                       0                                                                                        0 STRLISTASARRAY( <cList>, [<cDelimiter>] ) --> aList                                    0                                                                                        0 <cList>   a character  string containing  a list  separated  with                      0           <cDelimiter>.                                                                0                                                                                        0 <cDelimiter>   the  delimiter  used  to  separate  the   elements                      0           contained inside the list.                                                   0                                                                                        0 This function transform a character string list into an array.                         0                                                                                        0 ##STROCCURS()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 STROCCURS( <cSearch>, <cTarget> ) --> nOccurrence                                      0                                                                                        0 <cSearch>      the search string to find inside <cTarget>.                             0                                                                                        0 <cTarget>      the string  to be  searched  for the  presence  of                      0                <cSearch>.                                                              0                                                                                        0 This function returns the number of occurrence that <cSearch>  is                      0 contained inside <cTarget>.                                                            0                                                                                        0 ##STRPARENT()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 STRPARENT( <cName> ) --> cParentPath                                                   0                                                                                        0 <cName>        the pathname.                                                           0                                                                                        0 This function tries to return a parent path from <cName>.                              0                                                                                        0 ##STRPATH()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 STRPATH( <cName> ) --> cPath                                                           0                                                                                        0 <cName>        the pathname.                                                           0                                                                                        0 This function tries to extract the path from <cName>.                                  0                                                                                        0 ##STRTEMPPATH()##                                                                      0 ----------------------------------------------------------------                       0                                                                                        0 STRTEMPPATH() --> cTempPath                                                            0                                                                                        0 This function  returns a  temporary path  searching for  possible                      0 definitions inside the environmental variables.                                        0                                                                                        0 ##STRXTOSTRING()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 STRXTOSTRING( <xVar>, [<cType>] ) --> cTrasformed_to_string                            0                                                                                        0 <xVar>         is the  data  of any  type  to be  converted  into                      0                string.                                                                 0                                                                                        0 <cType>        is the type of the data contained inside <xVar>.                        0                                                                                        0 This function returns <xVar> transformed into a character string.                      0                                                                                        0                                                                                        0 ##TB()##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 TB( [<nTop>], [<nLeft>], [<nBottom>], [<nRight>],                                      0      [<acCol>], [<acColSayPic>],                                                       0      [<acColTopSep>], [<acColBodySep>], [<acColBotSep>],                               0      [<acColHead>], [<acColFoot>],                                                     0      [<alColCalc>],                                                                    0      [<abColValid>],                                                                   0      [<abColMsg>],                                                                     0      [<cColor>], [<abColColors>],                                                      0      [<nFreeze>],                                                                      0      [<lModify>],                                                                      0      [<lAppend>],                                                                      0      [<lDelete>],                                                                      0      [<lButtons> | <aButtons>] ) --> NIL                                               0                                                                                        0 <nTop>, <nLeft>, <nBottom>, <nRight>                                                   0                               defines  the   screen  area   where                      0                               browse have to take place.                               0                                                                                        0 <acCol>                       is the columns array to be included                      0                               into the browse.                                         0                                                                                        0 <acColSayPic>                 is the picture array.                                    0                                                                                        0 <acColTopSep>                 is  the   top   separation   array:                      0                               default is chr(194)+chr(196).                            0                                                                                        0 <acColBodySep>                is  the   body  sepatation   array:                      0                               default is chr(179).                                     0                                                                                        0 <acColBotSep>                 is  the  bottom  separation  array:                      0                               default is chr(193)+chr(196).                            0                                                                                        0 <acColHead>                   is  the  header  array  for   every                      0                               column.                                                  0                                                                                        0 <acColFoot>                   is  the  footer  array  for   every                      0                               column.                                                  0                                                                                        0 <alColCalc>                   is  the  array  that  identify  the                      0                               calculated column  (not  editable).                      0                               True (.T.) means calculated.                             0                                                                                        0 <abColValid>                  is  the   validation   array   that                      0                               specify when  a field  is  properly                      0                               filled.  The   condition  must   be                      0                               specifyed in code block format.                          0                                                                                        0 <abColMsg>                    is the message  array that  permits                      0                               to show information  at the  bottom                      0                               of browse area.  The array must  be                      0                               composed with  code  blocks  whitch                      0                               result with a character string.                          0                                                                                        0 <cColor>                      is the  color  string:  it  may  be                      0                               longer than the usal 5 elements.                         0                                                                                        0 <abColColors>                 is  the  color  code  block  array.                      0                               The code block receive as parameter                      0                               the  value  contained  inside   the                      0                               field  and  must  return  an  array                      0                               containing   two   numbers:    they                      0                               correspond to the two color  couple                      0                               from <cColor>.                                           0                                                                                        0 <nFreeze>                     indicates the number of columens to                      0                               be left frozen on the left side.                         0                                                                                        0 <lModify>                     indicates whether  the  browse  can                      0                               modify data.                                             0                                                                                        0 <lDelete>                     indicates whether  the  browse  can                      0                               delete and recall records.                               0                                                                                        0 <lButtons>                    if  True,   default   buttons   are                      0                               displayed.                                               0                                                                                        0 <aButtons>                    array of buttons.                                        0                                                                                        0 aButtons[n][1] N,   the nth button row position;                                       0 aButtons[n][2] N,   the nth button column position;                                    0 aButtons[n][3] C,   the nth button text;                                               0 aButtons[n][4] B,   the nth button code block.                                         0                                                                                        0 This function, called  without parameters, starts  the browse  of                      0 the active Alias,  and if relations  are established, the  browse                      0 includes also related data.                                                            0                                                                                        0      Please note  that due  to  an unresolved  problem,  the                           0      field names  contained  inside  <acCol>  should  better                           0      contain also  the alias  (ALIAS->FIELD_NAME). See  also                           0      the examples.                                                                     0                                                                                        0 ##TEXT()##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 TEXT( <cText> ) --> NIL                                                                0                                                                                        0 Shows the text contained into <cText>.                                                 0                                                                                        0 ##TGLINSERT()##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 TGLINSERT() --> NIL                                                                    0                                                                                        0 Toggle the global insert mode and the cursor shape.                                    0                                                                                        0 ##TIMEX2N()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 TIMEX2N( [<nHH>], [<nMM>], [<nSS>] ) --> nTime                                         0                                                                                        0 <nHH>     is the number of hours.                                                      0                                                                                        0 <nMM>     is the number of minuts.                                                     0                                                                                        0 <nSS>     is the number of seconds.                                                    0                                                                                        0 This function  calculate  the  "time number"  that  is  a  number                      0 represanting days  and/or portion  of a  day: 1  is 1  day or  24                      0 hours, 0.5 is 12 hours, and so on.                                                     0                                                                                        0 ##TIMEN2H()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 TIMEN2H( <nTime> ) --> nHours                                                          0                                                                                        0 <nTime>        is the "time number" that is a number represanting                      0                days and/or portion  of a day:  1 is 1  day or  24                      0                hours, 0.5 is 12 hours, and so on.                                      0                                                                                        0 This function  returns  the  integer number  of  hours  conatined                      0 inside <nTime>.                                                                        0                                                                                        0 ##TIMEN2M()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 TIMEN2M( <nTime> ) --> nMinutes                                                        0                                                                                        0 <nTime>        is the "time number" that is a number represanting                      0                days and/or portion  of a day:  1 is 1  day or  24                      0                hours, 0.5 is 12 hours, and so on.                                      0                                                                                        0 This function  returns the  integer number  of minutes  conatined                      0 inside <nTime> after subtracting the hours.                                            0                                                                                        0 ##TIMEN2S()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 TIMEN2S( <nTime> ) --> nSeconds                                                        0                                                                                        0 <nTime>        is the "time number" that is a number represanting                      0                days and/or portion  of a day:  1 is 1  day or  24                      0                hours, 0.5 is 12 hours, and so on.                                      0                                                                                        0 This function  returns  the  number  of  seconds  (with  evenutal                      0 decimals) conatined inside  <nTime> after  subtracting the  hours                      0 and the minutes.                                                                       0                                                                                        0 ##TRUESETKEY()##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 TRUESETLEY( <nInkeyCode>, <bAction> ) --> .T.                                          0                                                                                        0 This function is equivalent to SETKEY() but it returns ever .T.                        0                                                                                        0 ##WAITFILEEVAL()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 WAITFILEEVAL( <lClose> ) --> .T.                                                       0                                                                                        0 Shows a wait bar calling WAITPROGRESS() for operation on  records                      0 of a database.                                                                         0                                                                                        0 If  there   is   no   index   active,   it   is   equivalent   to                      0 WAITPROGRES(RECNO()/LASTREC()).                                                        0                                                                                        0 if an index is active, this cannot work, so an increment for each                      0 call is made: WAITPROGRES((nIncrement++)/LASTREC()).                                   0                                                                                        0 This function  must  be  closed  calling  it  with  the  <lClose>                      0 parameter to true (.T.). This  way, internal counters are  closed                      0 and WAITPROGRESS() is closed too.                                                      0                                                                                        0 ##WAITFOR()##                                                                          0 ----------------------------------------------------------------                       0                                                                                        0 WAITFOR( [<cMessage>] ) --> NIL                                                        0                                                                                        0 Shows <cMessage> until  it is called  again. The  wait window  is                      0 closed when called without parameter or with NIL.                                      0                                                                                        0 ##WAITPROGRESS()##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 WAITPROGRESS( [<nPercent>] ) --> .T.                                                   0                                                                                        0 Shows a  wait  bar on  the  screen  top depending  on  the  value                      0 contained into <nPercent>. <nPercent> starts form 0 and ends to 1                      0 (100%). If a value  of one or  more, or NIL  is passed, the  wait                      0 window is closed.                                                                      0                                                                                        0 ##NORMAL COMMAND SUBSTITUTION##                                                        0 ================================================================                       0                                                                                        0 CA-Clipper works only with  functions and commands are  converted                      0 into fuction using  the STD.CH. Here  are described some  command                      0 replacement that can be used also with nB macroes.                                     0                                                                                        0 ##?##                                                                                  0 ----------------------------------------------------------------                       0                                                                                        0 ? [<exp list>]                                                                         0                                                                                        0 qout([<exp list>])                                                                     0                                                                                        0 ?? [<exp list>]                                                                        0                                                                                        0 qqout([<exp list>])                                                                    0                                                                                        0 ##@BOX##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 @ <nTop>, <nLeft>, <nBottom>, <nRight> BOX <cnBoxString>                               0      [COLOR <cColorString>]                                                            0                                                                                        0 dispbox(<nTop>, <nLeft>, <nBottom>, <nRight>,                                          0      [<cnBoxString>], [<cColorString>])                                                0                                                                                        0 ##@TO##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 @ <nTop>, <nLeft> TO <nBottom>, <nRight>                                               0      DOUBLE                                                                            0      [COLOR <cColorString>]                                                            0                                                                                        0 dispbox(<nTop>, <nLeft>, <nBottom>, <nRight>,                                          0      2 [,<cColorString>])                                                              0                                                                                        0 @ <nTop>, <nLeft> TO <nBottom>, <nRight>                                               0      [COLOR <cColorString>]                                                            0                                                                                        0 dispbox(<nTop>, <nLeft>, <nBottom>, <nRight>,                                          0      1 [,<cColorString>])                                                              0                                                                                        0 @ <nTop>, <nLeft>                                                                      0      CLEAR [TO <nBottom>, <nRight>]                                                    0                                                                                        0 scroll([<nTop>], [<nLeft>],                                                            0      [<nBottom>, <nRight>])                                                            0                                                                                        0 setpos(<nRow>, <nCol>)                                                                 0                                                                                        0 ##@GET##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 @ <nTop>, <nLeft> GET <Var>                                                            0      [PICTURE <cGetPicture>]                                                           0      [COLOR <cColorString>]                                                            0      [WHEN <lPreExpression>]                                                           0      [VALID <lPostExpression>]                                                         0                                                                                        0 setpos(<nTop>, <nLeft>)                                                                0      aadd( GetList, _GET_( <Var>, "<Var>", <cGetPicture>,                              0           [{|| <lPostExpression>}],                                                    0           [{|| <lPreExpression>}] ):display() )                                        0      atail(GetList):colorDisp(<cColorString>)                                          0                                                                                        0 ##@SAY##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 @ <nTop>, <nLeft> SAY <exp>                                                            0      [COLOR <cColorString>]                                                            0                                                                                        0 devpos(<nTop>, <nLeft>)                                                                0                                                                                        0 devout(<exp> [, <cColorString>])                                                       0                                                                                        0 @ <nTop>, <nLeft> SAY <exp>                                                            0      PICTURE <cSayPicture>                                                             0      [COLOR <cColorString>]                                                            0                                                                                        0 devpos(<nTop>, <nLeft>)                                                                0                                                                                        0 devoutpic(<exp>, <cSayPicture>, [<cColorString>])                                      0                                                                                        0 ##APPEND##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 APPEND BLANK                                                                           0                                                                                        0 dbappend()                                                                             0                                                                                        0 ##CLEAR##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 CLEAR GETS                                                                             0                                                                                        0 ReadKill(.T.)                                                                          0                                                                                        0 GetList := {}                                                                          0                                                                                        0 CLEAR SCREEN | CLS                                                                     0                                                                                        0 Scroll()                                                                               0                                                                                        0 SetPos(0,0)                                                                            0 CLEAR                                                                                  0                                                                                        0 Scroll()                                                                               0                                                                                        0 SetPos(0,0)                                                                            0                                                                                        0 ReadKill(.T.)                                                                          0                                                                                        0 GetList := {}                                                                          0                                                                                        0 ##CLOSE##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 CLOSE                                                                                  0                                                                                        0 dbCloseArea()                                                                          0                                                                                        0 CLOSE <idAlias>                                                                        0                                                                                        0 <idAlias>->( dbCloseArea() )                                                           0                                                                                        0 CLOSE ALTERNATE                                                                        0                                                                                        0 Set(19, "")                                                                            0                                                                                        0 CLOSE DATABASES                                                                        0                                                                                        0 dbCloseAll()                                                                           0                                                                                        0 CLOSE INDEXES                                                                          0                                                                                        0 dbClearIndex()                                                                         0                                                                                        0 ##COMMIT##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 COMMIT                                                                                 0                                                                                        0 dbCommitAll()                                                                          0                                                                                        0 ##COUNT##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 COUNT TO <idVar>                                                                       0      [FOR <lForCondition>]                                                             0      [WHILE <lWhileCondition>]                                                         0      [NEXT <nNextRecords>]                                                             0      [RECORD <nRecord>]                                                                0      [REST]                                                                            0      [ALL]                                                                             0                                                                                        0 dbeval( {|| <idVar> := <idVar> +1 },                                                   0      {|| <lForCondition> },                                                            0      {|| <lWhileCondition> },                                                          0      <nNextRecords>, <nRecord>, <lRest> )                                              0                                                                                        0 ##DEFAULT##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 DEFAULT <xVar> TO <xDefaultValue>                                                      0                                                                                        0 DEFAULT( @<xVar>, <xDefaultValue> ) --> xVar                                           0                                                                                        0 ##DELETE##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 DELETE                                                                                 0                                                                                        0 dbDelete()                                                                             0                                                                                        0 DELETE                                                                                 0      [FOR <lForCondition>]                                                             0      [WHILE <lWhileCondition>]                                                         0      [NEXT <nNextRecords>]                                                             0      [RECORD <nRecord>]                                                                0      [REST]                                                                            0      [ALL]                                                                             0                                                                                        0 dbeval( {|| dbDelete()},                                                               0      {|| <lForCondition> },                                                            0      {|| <lWhileCondition> },                                                          0      <nNextRecords>, <nRecord>, <lRest> )                                              0                                                                                        0 DELETE FILE <xcFile>                                                                   0                                                                                        0 ferase( <cFile> )                                                                      0                                                                                        0 ##EJECT##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 EJECT                                                                                  0                                                                                        0 qqout( chr(13) )                                                                       0                                                                                        0 ##ERASE##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 ERASE <xcFile>                                                                         0                                                                                        0 ferase( <cFile> )                                                                      0                                                                                        0 ##FIND##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 FIND <xcSearchString>                                                                  0                                                                                        0 dbSeek( <cSearchString> )                                                              0                                                                                        0 ##GO##                                                                                 0 ----------------------------------------------------------------                       0                                                                                        0 GO[TO] <nRecord>                                                                       0                                                                                        0 dbgoto(nRecord)                                                                        0                                                                                        0 GO[TO] BOTTOM                                                                          0                                                                                        0 dbGoBottom()                                                                           0                                                                                        0 GO[TO] TOP                                                                             0                                                                                        0 dbgotop()                                                                              0                                                                                        0 ##INDEX ON##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 INDEX ON <expKey> TO <xcIndexName> [UNIQUE]                                            0      [FOR <lForCondition>]                                                             0      [WHILE <lWhileCondition>]                                                         0      [[EVAL <lEvalCondition>] [EVERY <nRecords>]]                                      0      [ASCENDING|DESCENDING]                                                            0                                                                                        0 ordCondSet( [<cForCondition>],                                                         0      [<bForCondition>],, [<bWhileCondition>],                                          0      [<bEvalCondition>], [<nRecords>],                                                 0      RECNO(),,,, <lDescending> )                                                       0                                                                                        0 ordCreate( <cIndexName>,, <cExpKey>, <bExpKey>, <lUnique> )                            0                                                                                        0 ##READ##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 READ                                                                                   0                                                                                        0 ReadModal(GetList)                                                                     0                                                                                        0 GetList := {}                                                                          0                                                                                        0 READ SAVE                                                                              0                                                                                        0 ReadModal(GetList)                                                                     0                                                                                        0 ##RECALL##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 RECALL                                                                                 0                                                                                        0 dbRecall()                                                                             0                                                                                        0 RECALL                                                                                 0      [FOR <lForCondition>]                                                             0      [WHILE <lWhileCondition>]                                                         0      [NEXT <nNextRecords>]                                                             0      [RECORD <nRecord>]                                                                0      [REST]                                                                            0      [ALL]                                                                             0                                                                                        0 dbeval( {|| dbRecall()},                                                               0      {|| <lForCondition> },                                                            0      {|| <lWhileCondition> },                                                          0      <nNextRecords>, <nRecord>, <lRest> )                                              0                                                                                        0 ##REINDEX##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 REINDEX                                                                                0      [EVAL <lEvalCondition>]                                                           0      [EVERY <nRecords>]                                                                0                                                                                        0 ordCondSet(,,,, [<bEvalCondition>], [<nRecords>],,,,,,,)                               0                                                                                        0 ordListRebuild()                                                                       0                                                                                        0 ##RENAME##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 RENAME <xcOldFile> TO <xcNewFile>                                                      0                                                                                        0 frename( <cOldFile>, <cNewFile> )                                                      0                                                                                        0 ##REPLACE##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 REPLACE <idField1> WITH <exp1>                                                         0      [, <idField2> WITH <exp2>...]                                                     0      [FOR <lForCondition>]                                                             0      [WHILE <lWhileCondition>]                                                         0      [NEXT <nNextRecords>]                                                             0      [RECORD <nRecord>]                                                                0      [REST]                                                                            0      [ALL]                                                                             0                                                                                        0 dbeval( {|| <idField1> := <exp1>                                                       0      [, <idField2> := <exp2>...]},                                                     0      {|| <lForCondition> },                                                            0      {|| <lWhileCondition> },                                                          0      <nNextRecords>, <nRecord>, <lRest> )                                              0                                                                                        0 REPLACE <idField1> WITH <exp1>                                                         0                                                                                        0 <idField1> := <exp1>                                                                   0                                                                                        0 ##RESTORE##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 RESTORE SCREEN FROM <cScreen>                                                          0                                                                                        0 restscreen( 0, 0, Maxrow(), Maxcol(), <cScreen> )                                      0                                                                                        0 ##SAVE##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 SAVE SCREEN TO <cScreen>                                                               0                                                                                        0 <cScreen> := savescreen( 0, 0, maxrow(), maxcol() )                                    0                                                                                        0 ##SEEK##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 SEEK <expSearch> [SOFTSEEK]                                                            0                                                                                        0 dbSeek( <expSearch> [, <lSoftSeek>] )                                                  0                                                                                        0 ##SELECT##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 SELECT <xnWorkArea> | <idAlias>                                                        0                                                                                        0 dbSelectArea( <nWorkArea> | <cIdAlias> )                                               0                                                                                        0 ##SET##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 SET ALTERNATE TO <xcFile> [ADDITIVE]                                                   0                                                                                        0 Set( 19, <cFile>, lAdditive )                                                          0                                                                                        0 SET ALTERNATE ON | OFF | <xlToggle>                                                    0                                                                                        0 Set( 18, "ON" | "OFF" | <lToggle> )                                                    0                                                                                        0 SET BELL  ON | OFF | <xlToggle>                                                        0                                                                                        0 Set( 26, "ON" | "OFF" | <lToggle> )                                                    0                                                                                        0 SET COLOR | COLOUR TO (cColorString)                                                   0                                                                                        0 SetColor( cColorString )                                                               0                                                                                        0 SET CONFIRM ON | OFF | <xlToggle>                                                      0                                                                                        0 Set( 27, "ON" | "OFF" | <lToggle> )                                                    0                                                                                        0 SET CONSOLE ON | OFF | <xlToggle>                                                      0                                                                                        0 Set( 17, "ON" | "OFF" | <lToggle> )                                                    0                                                                                        0 SET CURSOR ON | OFF | <xlToggle>                                                       0                                                                                        0 SetCursor( 1 | 0 | iif( <lToggle>, 1, 0 ) )                                            0                                                                                        0 SET DATE FORMAT [TO] <cDateFormat>                                                     0                                                                                        0 Set( 4, <cDateFormat> )                                                                0                                                                                        0 SET DECIMALS TO                                                                        0                                                                                        0 Set( 3, 0 )                                                                            0                                                                                        0 SET DECIMALS TO <nDecimals>                                                            0                                                                                        0 Set( 3, <nDecimals> )                                                                  0                                                                                        0 SET DEFAULT TO                                                                         0                                                                                        0 Set( 7, "" )                                                                           0                                                                                        0 SET DEFAULT TO <xcPathspec>                                                            0                                                                                        0 Set( 7, <cPathspec> )                                                                  0                                                                                        0 SET DELETED ON | OFF | <xlToggle>                                                      0                                                                                        0 Set( 11, "ON" | "OFF" | <lToggle> )                                                    0                                                                                        0 SET DELIMITERS ON | OFF | <xlToggle>                                                   0                                                                                        0 Set( 33, "ON" | "OFF" | <lToggle> )                                                    0                                                                                        0 SET DELIMITERS TO [DEFAULT]                                                            0                                                                                        0 Set( 34, "::" )                                                                        0                                                                                        0 SET DELIMITERS TO <cDelimiters>                                                        0                                                                                        0 Set( 34, <cDelimiters> )                                                               0                                                                                        0 SET DEVICE TO SCREEN | PRINTER                                                         0                                                                                        0 Set( 20, "SCREEN" | "PRINTER" )                                                        0                                                                                        0 SET EPOCH TO <nYear>                                                                   0                                                                                        0 Set( 5, <nYear> )                                                                      0                                                                                        0 SET ESCAPE ON | OFF | <xlToggle>                                                       0                                                                                        0 Set( 28, "ON" | "OFF" | <lToggle> )                                                    0                                                                                        0 SET EXACT ON | OFF | <xlToggle>                                                        0                                                                                        0 Set( 1, "ON" | "OFF" | <lToggle> )                                                     0 SET EXCLUSIVE ON | OFF | <xlToggle>                                                    0                                                                                        0 Set( 8, "ON" | "OFF" | <lToggle> )                                                     0                                                                                        0 SET FILTER TO                                                                          0                                                                                        0 dbclearfilter()                                                                        0                                                                                        0 SET FILTER TO <lCondition>                                                             0                                                                                        0 dbsetfilter( <bCondition>, <cCondition> )                                              0                                                                                        0 SET FIXED ON | OFF | <xlToggle>                                                        0                                                                                        0 Set( 2, "ON" | "OFF" | <lToggle> )                                                     0                                                                                        0 SET INDEX TO [<xcIndex> [, <xcIndex1>... ] ]                                           0                                                                                        0 ordListClear()                                                                         0                                                                                        0 ordListAdd( cIndex )                                                                   0                                                                                        0 ordListAdd( cIndex1 )                                                                  0                                                                                        0 ...                                                                                    0                                                                                        0 SET INTENSITY ON | OFF | xlToggle                                                      0                                                                                        0 Set( 31, "ON" | "OFF" | lToggle )                                                      0                                                                                        0 SET KEY <nInkeyCode> [TO]                                                              0                                                                                        0 SetKey( <nInkeyCode>, NIL )                                                            0                                                                                        0 SET KEY <nInkeyCode> TO [<idProcedure>]                                                0                                                                                        0 SetKey( <nInkeyCode>, { |p, l, v| idProcedure(p, l, v)} )                              0                                                                                        0 SET MARGIN TO                                                                          0                                                                                        0 Set( 25, 0 )                                                                           0                                                                                        0 SET MARGIN TO [<nPageOffset>]                                                          0                                                                                        0 Set( 25, <nPageOffset> )                                                               0                                                                                        0 SET MESSAGE TO                                                                         0                                                                                        0 Set( 36, 0 )                                                                           0                                                                                        0 Set( 37, .F. )                                                                         0                                                                                        0 SET MESSAGE TO [<nRow> [CENTER | CENTRE]]                                              0                                                                                        0 Set( 36, nRow )                                                                        0                                                                                        0 Set( 37, lCenter )                                                                     0                                                                                        0 SET ORDER TO [<nIndex>]                                                                0                                                                                        0 ordSetFocus( <nIndex> )                                                                0                                                                                        0 SET PATH TO                                                                            0                                                                                        0 Set( 6, "" )                                                                           0                                                                                        0 SET PATH TO [<xcPathspec> [, <cPathspec1>... ] ]                                       0                                                                                        0 Set( 6, <cPathspec> [, <cPathspec1>... ] )                                             0                                                                                        0 SET PRINTER ON | OFF | xlToggle                                                        0                                                                                        0 Set( 23, "ON" | "OFF" | lToggle )                                                      0                                                                                        0 SET PRINTER TO                                                                         0                                                                                        0 Set( 24, "" )                                                                          0                                                                                        0 SET PRINTER TO [<xcDevice>|<xcFile> [ADDITIVE]]                                        0                                                                                        0 Set( 24, <cDevice>|<cFile>, lAdditive )                                                0                                                                                        0 SET RELATION TO                                                                        0                                                                                        0 dbclearrelation()                                                                      0                                                                                        0 SET RELATION TO [<expKey1> INTO <xcAlias1>]                                            0      [, [TO] <expKey2> INTO <xcAlias2>...]                                             0      [ADDITIVE]                                                                        0                                                                                        0 if !lAdditive                                                                          0      dbClearRel()                                                                      0 end                                                                                    0                                                                                        0 dbSetRelation( <cAlias1>, <{|| expKey1}, ["<expKey1>"] )                               0                                                                                        0 dbSetRelation( <cAlias2>, <{|| expKey2}, ["<expKey1>"] )                               0                                                                                        0 SET SCOREBOARD ON | OFF | xlToggle                                                     0                                                                                        0 Set( 32, "ON" | "OFF" | lToggle )                                                      0                                                                                        0 SET SOFTSEEK ON | OFF | xlToggle                                                       0                                                                                        0 Set( 9, "ON" | "OFF" | lToggle )                                                       0                                                                                        0 SET TYPEAHEAD TO <nKeyboardSise>                                                       0                                                                                        0 Set( 14, <nKeyboardSise> )                                                             0                                                                                        0 SET UNIQUE ON | OFF | xlToggle                                                         0                                                                                        0 Set( 10, "ON" | "OFF" | lToggle )                                                      0                                                                                        0 SET WRAP ON | OFF | xlToggle                                                           0                                                                                        0 Set( 35, "ON" | "OFF" | lToggle )                                                      0                                                                                        0 ##SKIP##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 SKIP [<nRecords> [ALIAS <idAlias>|<nWorkArea>]                                         0                                                                                        0 [<idAlias>|<nWorkArea> -> ]( dbSkip([<nRecords>]) )                                    0                                                                                        0 ##STORE##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 STORE <value> TO <variable>                                                            0 <variable> := <value>                                                                  0                                                                                        0 ##SUM##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 SUM <nExp1> [, <nExp2>...]                                                             0      TO <idVar1> [, <idVar2>...]                                                       0      [FOR <lForCondition>]                                                             0      [WHILE <lWhileCondition>]                                                         0      [NEXT <nNextRecords>]                                                             0      [RECORD <nRecord>]                                                                0      [REST]                                                                            0      [ALL]                                                                             0                                                                                        0 dbeval( {|| <idVar1> := <idVar1> + <nExp1>                                             0      [, <idVar2> := <idVar2> + <nExp2>...] },                                          0      {|| <lForCondition> },                                                            0      {|| <lWhileCondition> },                                                          0      <nNextRecords>, <nRecord>, <lRest> )                                              0                                                                                        0 ##UNLOCK##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 UNLOCK                                                                                 0                                                                                        0 dbUnlock()                                                                             0                                                                                        0 UNLOCK ALL                                                                             0                                                                                        0 dbUnlockAll()                                                                          0                                                                                        0 ##USE##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 USE                                                                                    0                                                                                        0 dbclosearea()                                                                          0                                                                                        0 USE [<xcDatabase>                                                                      0      [INDEX <xcIndex1> [, <xcIndex2>...]                                               0      [ALIAS <xcAlias>]                                                                 0      [EXCLUSIVE|SHARED]                                                                0      [NEW] [READONLY]                                                                  0      [VIA <cDriver>]]                                                                  0                                                                                        0 dbUseArea( [<lNewArea>], [<cDriver>],                                                  0      <cDatabase>, [<cAlias>],                                                          0      [<lShared>], [<lReadOnly>] )                                                      0                                                                                        0 [dbSetIndex( <cIndex1> )]                                                              0                                                                                        0 [dbSetIndex( <cIndex2> )]                                                              0                                                                                        0 ...                                                                                    0                                                                                        0 ##nB COMMAND SUBSTITUTION FUNCTIONS##                                                  0 ================================================================                       0                                                                                        0 Inside nB there are many functions  made only in substitution  to                      0 other CA-Clipper commands.                                                             0                                                                                        0 ##GET##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 @ <nTop>, <nLeft> GET <Var>                                                            0      [PICTURE <cGetPicture>]                                                           0      [COLOR <cColorString>]                                                            0      [WHEN <lPreExpression>]                                                           0      [VALID <lPostExpression>]                                                         0                                                                                        0 Get( @<aGetList>,                                                                      0      [<nTop>], [<nLeft>],                                                              0      { |x| iif( pcount() > 0, <Var> := x, <Var> ) }                                    0      [<cGetPicture>], [<cColorString>],                                                0      [<bPreExpression>], [<bValid>] )                                                  0                                                                                        0 <aGetList>     is the get list array that will be increased  with                      0                this get().                                                             0                                                                                        0 ##SAY##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 @ <nTop>, <nLeft> SAY <exp>                                                            0      PICTURE <cSayPicture>                                                             0      [COLOR <cColorString>]                                                            0                                                                                        0 Say( <nTop>, <nLeft>, <cVar>, [<cSayPicture>], [<cColorString>] )                      0                                                                                        0                                                                                        0 ##APPEND FROM##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 APPEND FROM <xcFile>                                                                   0      [FIELDS <idField list>                                                            0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0      [VIA <xcDriver>]                                                                  0                                                                                        0 dbApp( <cFileName>, [<acFields>],                                                      0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>],                                                                 0      [<nRecord>],                                                                      0      [<lRest>],                                                                        0      [<cDriver>] )                                                                     0                                                                                        0 APPEND FROM <xcFile>                                                                   0      [FIELDS <idField list>                                                            0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0      DELIMITED <xcDelimiter>                                                           0                                                                                        0 dbDelim( .f., <cFileName>, [<cDelimiter>], [<acFields>],                               0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>] )                                        0                                                                                        0 APPEND FROM <xcFile>                                                                   0      [FIELDS <idField list>                                                            0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0      SDF                                                                               0                                                                                        0 dbSDF( .f., <cFileName>, [<acFields>],                                                 0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>] )                                        0                                                                                        0 ##CONTINUE##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 CONTINUE                                                                               0                                                                                        0 dbContinue()                                                                           0                                                                                        0 ##COPY##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 COPY FILE <xcSourceFile> TO <xcTargetFile>|<xcDevice>                                  0                                                                                        0 CopyFile( <cSourceFile>, <cTargetFile>|<cDevice> )                                     0                                                                                        0 COPY STRUCTURE [FIELDS <idField list>]                                                 0      TO <xcDatabase>                                                                   0                                                                                        0 dbCopyStruct( <cDatabase>, [<acFields>] )                                              0                                                                                        0 COPY STRUCTURE EXTENDED                                                                0      TO <xcExtendedDatabase>                                                           0                                                                                        0 dbCopyXStruct( <cExtendedDatabase> )                                                   0                                                                                        0 COPY TO <xcFile>                                                                       0      [FIELDS <idField list>                                                            0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0      [VIA <xcDriver>]                                                                  0                                                                                        0 dbCopy( <cFileName>, [<acFields>],                                                     0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>],                                                                 0      [<nRecord>],                                                                      0      [<lRest>],                                                                        0      [<cDriver>] )                                                                     0                                                                                        0 COPY TO <xcFile>                                                                       0      [FIELDS <idField list>                                                            0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0      DELIMITED <xcDelimiter>                                                           0                                                                                        0 dbDelim( .t., <cFileName>, [<cDelimiter>], [<acFields>],                               0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>] )                                        0                                                                                        0 COPY TO <xcFile>                                                                       0      [FIELDS <idField list>                                                            0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0      SDF                                                                               0                                                                                        0 dbSDF( .t., <cFileName>, [<acFields>],                                                 0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>] )                                        0                                                                                        0 ##CREATE##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 CREATE <xcDatabase>                                                                    0      FROM <xcExtendedDatabase>                                                         0      [NEW]                                                                             0      [ALIAS <cAlias>]                                                                  0      [VIA <cDriver>]                                                                   0                                                                                        0 dbOldCreate( <cDatabase>, <cExtendedDatabase>,                                         0      [<cDriver>], [<lNew>], [<cAlias>] )                                               0                                                                                        0 ##JOIN##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 JOIN WITH <xcAlias> TO <xcDatabase>                                                    0      [FOR <lCondition>] [FIELDS <idField list>]                                        0                                                                                        0 dbJoin( <cAlias>, <cDatabase>,                                                         0      [<acFields>], [<bForCondition>] )                                                 0                                                                                        0 ##KEYBOARD##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 KEYBOARD <cString>                                                                     0                                                                                        0 Keyboard( [<cString>] ) --> NIL                                                        0                                                                                        0 ##LABEL FORM##                                                                         0 ----------------------------------------------------------------                       0                                                                                        0 LABEL FORM <xcLabel>                                                                   0      [TO PRINTER]                                                                      0      [TO FILE <xcFile>]                                                                0      [NOCONSOLE]                                                                       0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0      [SAMPLE]                                                                          0                                                                                        0 dbLabelForm( <cLabel>, [<lToPrinter>], [<cFile>],                                      0      [<lNoConsole>], [<bForCondition>], [<bWhileCondition>],                           0      [<nNextRecords>], [<nRecord>], [<lRest>], [<lSample>] )                           0                                                                                        0 ##LIST##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 LIST <exp list>                                                                        0      [TO PRINTER]                                                                      0      [TO FILE <xcFile>]                                                                0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0      [OFF]                                                                             0                                                                                        0 dbList( [<lToDisplay>], <abListColumns>,                                               0      [<lAll>],                                                                         0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>],                                         0      [<lToPrinter>], [<cFileName>] )                                                   0                                                                                        0 ##LOCATE##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 LOCATE [<scope>] FOR <lCondition>                                                      0      [WHILE <lCondition>                                                               0                                                                                        0 dbLocate( [<bForCondition>], [<bWhileCondition>],                                      0      [<nNextRecords>], [<nRecord>], [<lRest>] )                                        0                                                                                        0 ##PACK##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 PACK                                                                                   0                                                                                        0 dbPack()                                                                               0                                                                                        0 ##PUBLIC##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 PUBLIC <idMemvar>                                                                      0                                                                                        0 MemPublic( <cMemvarName>|<acMemvarNames> )                                             0                                                                                        0 ##QUIT##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 QUIT                                                                                   0                                                                                        0 Quit()                                                                                 0                                                                                        0 ##RELEASE##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 RELEASE <idMemvar>                                                                     0                                                                                        0 MemRelease( <cMemvarName>|<acMemvarNames> )                                            0                                                                                        0 ##REPORT FORM##                                                                        0 ----------------------------------------------------------------                       0                                                                                        0 REPORT FORM <xcReport>                                                                 0      [TO PRINTER]                                                                      0      [TO FILE <xcFile>]                                                                0      [NOCONSOLE]                                                                       0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0      [PLAIN | HEADING <cHeading>]                                                      0      [NOEJECT] [SUMMARY]                                                               0                                                                                        0 RF( <cForm>,                                                                           0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNext>], [<nRecord>], [<lRest>], [<lPlain>],                                    0      [<cbHeading>], [<lBeforeEject>], [<lSummary>],                                    0      [<lDate>], [<acExtra>] ) --> NIL                                                  0                                                                                        0 ##RESTORE FROM##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 RESTORE FROM <xcMemFile> [ADDITIVE]                                                    0                                                                                        0 MemRestore( <cMemFileName>, [<lAdditive> )                                             0                                                                                        0 ##RUN##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 RUN <xcCommandLine>                                                                    0                                                                                        0 Run( <cCommand> )                                                                      0 ##SAVE TO##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 SAVE TO <xcMemFile>                                                                    0      [ALL [LIKE|EXCEPT <skeleton>]]                                                    0                                                                                        0 MemSave( <cMemFileName>, [<cSkeleton>], [<lLike>] )                                    0                                                                                        0 ##SET FUNCTION##                                                                       0 ----------------------------------------------------------------                       0                                                                                        0 SET FUNCTION <nFunctionKey> TO <cString>                                               0                                                                                        0 SetFunction( <nFunctionKey>, <cString> )                                               0                                                                                        0 ##SORT##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 SORT TO <xcDatabase>                                                                   0      ON <idField1> [/[A|D][C]]                                                         0      [, <idField2> [/[A|D][C]] ...]                                                    0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0                                                                                        0 dbSort( <cDatabase>, [<acFields>],                                                     0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest>] )                                        0                                                                                        0 ##TOTAL##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 TOTAL ON <expKey>                                                                      0      [FIELDS <idField list>] TO <xcDatabase>                                           0      [<scope>]                                                                         0      [WHILE <lCondition>]                                                              0      [FOR <lCondition>]                                                                0                                                                                        0 dbTotal( <cDatabase>, <bKey>, [<acFields>,                                             0      [<bForCondition>], [<bWhileCondition>],                                           0      [<nNextRecords>], [<nRecord>], [<lRest> )                                         0                                                                                        0 ##UPDATE##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 UPDATE FROM <xcAlias>                                                                  0      ON <expKey> [RANDOM]                                                              0      REPLACE <idField1> WITH <exp>                                                     0      [, <idField2> WITH <exp> ...]                                                     0                                                                                        0 dbUpdate( <cAlias>, <bKey>, [<lRandom>], [<bReplacement>] )                            0                                                                                        0 Example:                                                                               0      dbUpdate( "INVOICE", {|| LAST}, .T.,;                                             0           {|| FIELD->TOTAL1 := INVOICE->SUM1,;                                         0           FIELD->TOTAL2 := INVOICE->SUM2 } )                                           0                                                                                        0 ##ZAP##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 ZAP                                                                                    0                                                                                        0 dbZap()                                                                                0                                                                                        0 ##RPT - THE nB PRINT FUNCTION##                                                        0 ================================================================                       0                                                                                        0 The function RPT() helps to print ASCII file containing  Memvars,                      0 Fields and print  commands. RPT()  is accessible  from the  DOC()                      0 menu.                                                                                  0                                                                                        0 ##RPT - MEMVARS AND FIELDS##                                                           0 ----------------------------------------------------------------                       0                                                                                        0 As usual  with standard  word processors,  variables are  written                      0 delimited with "<" (Alt+174) and ">" (Alt+175).                                        0                                                                                        0 Inside  these  delimiters  can  find  place  character   Memvars,                      0 character Fields and functions giving a character result.                              0                                                                                        0 The RPT()  function  generates  a public  variable  n_Lines  that                      0 contains the available lines inside the actual sheet. Every  time                      0 a line is  written, this value  is reduced, until  a new page  is                      0 reached and then it will start  again from the maximum value.  It                      0 is usefull  to read  this variable  to  determinate if  there  is                      0 enough space or it is better to change page.                                           0                                                                                        0 ##RPT - COMMANDS##                                                                     0 ================================================================                       0                                                                                        0 The function RPT() recognise some print commands. These  commands                      0 starts with the  asterisk (*) simbol.  This means that  "*" is  a                      0 print command prefix.                                                                  0                                                                                        0 It follows the command sintax.                                                         0                                                                                        0 ##*COMMAND##                                                                           0 ----------------------------------------------------------------                       0                                                                                        0 *COMMAND                                                                               0      <cStatement>                                                                      0      <cStatement>                                                                      0      .........                                                                         0 *END                                                                                   0                                                                                        0 The lines contained inside *COMMAND - *END are executed with the                       0 nB macro interpreter.                                                                  0                                                                                        0 ##*DBSKIP##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 *DBSKIP [<nSkip>]                                                                      0                                                                                        0 It Executes a dbskip() on the active Alias.                                            0                                                                                        0 ##*FOOT##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 *FOOT                                                                                  0      <cFooter>                                                                         0      <cFooter>                                                                         0      ......                                                                            0 *END                                                                                   0                                                                                        0 The lines contained inside *FOOT - *END are printed each time  at                      0 the bottom of pages.                                                                   0 ##*HEAD##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 *HEAD                                                                                  0      <cHeader>                                                                         0      <cHeader>                                                                         0      ......                                                                            0 *END                                                                                   0                                                                                        0 The lines contained inside *HEAD - *END are printed each time at                       0 the top of pages.                                                                      0                                                                                        0 ##*IF##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 *IF <lCondition>                                                                       0      ........                                                                          0      ........                                                                          0 *END                                                                                   0                                                                                        0 If the condition <lCondition> is true, the lines contained inside                      0 *IF - *END are printed.                                                                0                                                                                        0 ##*INSERT##                                                                            0 ----------------------------------------------------------------                       0                                                                                        0 *INSERT <cFileName>                                                                    0                                                                                        0 Includes the text contained into the file <cFileName>.                                 0                                                                                        0 ##*LEFT##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 *LEFT <nLeftBorder>                                                                    0                                                                                        0 The <nLeftBorder> is the number of  column to be left blank as  a                      0 left border.                                                                           0                                                                                        0 ##*LPP##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 *LPP <nLinesPerPage>                                                                   0                                                                                        0 It  determinates  the  page  length  expressed  in  lines.  After                      0 printing the <nLinesPerPage>th line, a form feed is sent.                              0                                                                                        0 ##*NEED##                                                                              0 ----------------------------------------------------------------                       0                                                                                        0 *NEED <nLinesNeeded>                                                                   0                                                                                        0 If the available lines are less then <nLinesNeeded>, the follwing                      0 text will be printed on the next page.                                                 0                                                                                        0 ##*PA##                                                                                0 ----------------------------------------------------------------                       0                                                                                        0 *PA                                                                                    0                                                                                        0 Jumps to a new page.                                                                   0                                                                                        0 ##*REM##                                                                               0 ----------------------------------------------------------------                       0                                                                                        0 *REM | *COMMENT [<comment_line>]                                                       0                                                                                        0 It adds a comment that will not be printed.                                            0                                                                                        0 ##*WHILE##                                                                             0 ----------------------------------------------------------------                       0                                                                                        0 *WHILE <lCondition>                                                                    0      ......                                                                            0      ......                                                                            0 *END                                                                                   0                                                                                        0 The lines contained inside *WHILE - *END are printed as long as                        0 <lCondition> is true.                                                                  0                                                                                        0 ##RPT - EXAMPLES##                                                                     0 ================================================================                       0                                                                                        0 It follows some  example of  text to  be printed  with the  RPT()                      0 function. Example's lines are numbered. Line numbers must not  be                      0 part of a real RPT text files.                                                         0                                                                                        0 ##PAGE DEFINITION##                                                                    0 ----------------------------------------------------------------                       0                                                                                        0 Margins are defined with *HEAD, *FOOT and *LEFT commands. In  the                      0 following example is defined:                                                          0                                                                                        0      Top            2 lines;                                                           0                                                                                        0      Bottom         2 lines;                                                           0                                                                                        0      Left           10 characters.                                                     0                                                                                        0 The right margin is not defined as it depends on the lines length                      0 that will be printed.                                                                  0                                                                                        0 The only considered page dimention is the height, *LPP (lines per                      0 page):                                                                                 0                                                                                        0      Page height    66 lines.                                                          0                                                                                        0 Here starts the example:                                                               0                                                                                        0      001  *lpp 66                                                                      0                                                                                        0      002  *head                                                                        0                                                                                        0      003                                                                               0                                                                                        0      004                                                                               0                                                                                        0      005  *end                                                                         0                                                                                        0      006  *foot                                                                        0                                                                                        0      007                                                                               0                                                                                        0      008                                                                               0                                                                                        0      009  *end                                                                         0                                                                                        0      010  *left 10                                                                     0                                                                                        0      011  ... text text text                                                           0      012  ... test text text                                                           0                                                                                        0      ...                                                                               0                                                                                        0 At line 001 is defined the page  height in lines. At line 002  is                      0 defined the header;  it contains two  empty lines  (003 and  004)                      0 whitch will be  printed at  the top of  every page.  At line  006                      0 starts the footer definition that  contains two empty lines  (007                      0 and 008) that will be printed at  the end of every page. At  line                      0 010 is defined the space on the left that will be added to  every                      0 line printed. From line 011 starts the normal text.                                    0                                                                                        0 ##HEADER AND FOOTER##                                                                  0 ----------------------------------------------------------------                       0                                                                                        0 The commands  *HEAD and  *FOOT are  used to  define the  top  and                      0 bottom border if they  contains empty lines,  it these lines  are                      0 not empty, they became real head and foot.                                             0                                                                                        0 The dimentions are as it follows:                                                      0                                                                                        0      Top            6 lines (should be one inch);                                      0                                                                                        0      Bottom         6 lines;                                                           0                                                                                        0      Left           10 characters (should be an inch).                                 0                                                                                        0      Page height    66 lines (should be 11 inch).                                      0                                                                                        0 At position 0.5 inch (after 3 lines) a one line header appears.                        0                                                                                        0      001  *lpp 66                                                                      0                                                                                        0      002  *head                                                                        0                                                                                        0      003                                                                               0                                                                                        0      004                                                                               0                                                                                        0      005                                                                               0                                                                                        0      006  ------------------- MYFILE.TXT -------------------                           0                                                                                        0                                                                                        0      007                                                                               0                                                                                        0      008                                                                               0                                                                                        0      009  *end                                                                         0                                                                                        0      010  *foot                                                                        0                                                                                        0      011                                                                               0                                                                                        0      012                                                                               0                                                                                        0      013                                                                               0                                                                                        0      014                                                                               0                                                                                        0      015                                                                               0                                                                                        0      016                                                                               0                                                                                        0      017  *end                                                                         0                                                                                        0      018  *left 10                                                                     0                                                                                        0      019  ... text text text                                                           0                                                                                        0      020  ... test text text                                                           0                                                                                        0      ...                                                                               0                                                                                        0 At line 006 (the fourth header  line) a text appears. It will  be                      0 printed on every page at the absolute fourth page line.                                0                                                                                        0 ##CODE INSERTION##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 Peaces of code can be inserted inside *COMMAND - *END. It can  be                      0 usefull to make complicated reports.                                                   0                                                                                        0 The following example declares a  public variable used to  number                      0 pages.                                                                                 0                                                                                        0      001  *command                                                                     0                                                                                        0      002  mempublic("PageNo")                                                          0                                                                                        0      003  PageNo := 0                                                                  0                                                                                        0      004  *end                                                                         0                                                                                        0      005  *lpp 66                                                                      0                                                                                        0      006  *head                                                                        0                                                                                        0      007  *command                                                                     0                                                                                        0      008  PageNo := PageNo +1                                                          0                                                                                        0      009  *end                                                                         0                                                                                        0      010                                                                               0                                                                                        0      011                                                                               0                                                                                        0      012  *end                                                                         0                                                                                        0      013  *foot                                                                        0                                                                                        0      014                                                                               0                                                                                        0      015                                Page <PageNo>                                  0                                                                                        0      016                                                                               0                                                                                        0      017  *end                                                                         0                                                                                        0      018  *left 10                                                                     0                                                                                        0      019  ... text text text                                                           0                                                                                        0      020  ... test text text                                                           0                                                                                        0      ...                                                                               0                                                                                        0 At line 001 starts a *COMMAND definition: lines 002 and 003  will                      0 be interpreted from the funtion  EX(), the nB interpreter.  These                      0 lines define  a public  variable and  initialize  it at  0.  This                      0 variable will be use to count pages.                                                   0                                                                                        0 At line 007, inside the  header (nested), start another  *COMMAND                      0 definition that contains an increment for the "PageNo"  variable.                      0 As the header is read and "executed" for every new page, and that                      0 before the footer, the variable  "PageNo" will contain the  right                      0 page number.                                                                           0                                                                                        0 At line 015, inside the footer, a reference to "PageNo"  appears.                      0 Here will be printed the page number.                                                  0                                                                                        0 A more complicated example  can be found  in ADDRESS.TXT the  RPT                      0 text file used for the ADDRESS.& macro examples.                                       0                                                                                        0 ##HOW CAN I##                                                                          0 ================================================================                       0                                                                                        0 nB is a little bit complicated as it may do many things. Here are                      0 some examples.                                                                         0                                                                                        0 ##CREATE A UDF FUNCTION##                                                              0 ----------------------------------------------------------------                       0                                                                                        0 UDF means  User  Defined  Function. Inside  nB  there  isn't  the                      0 possibility to  create functions,  but there  is an  alternative:                      0 code blocks.                                                                           0                                                                                        0                                                      <code block>                   3667                                                     <code blocks>                   3891                                                          <eval()>                   5202                                                        <aeval()>                    4033                                                                                        0 ##CREATE A BIG CODE BLOCK##                                                            0 ----------------------------------------------------------------                       0                                                                                        0 A code block cannot be longer  than 254 characters, as any  other                      0 instruction inside nB.                                                                 0                                                                                        0 So, there is no way to make a bigger code block, but a code block                      0 can call another code block, and so on. For example:                                   0                                                                                        0      mempublic( { "first", "second", "third" } )                                       0      first := {|| eval( second, "hello" ) }                                            0      second := {|x| eval( third, x ) }                                                 0      third := {|x| alertbox( x ) }                                                     0      eval( first )                                                                     0                                                                                        0 This stupid example simply will show the alert box containing the                      0 word "hello".                                                                          0                                                                                        0                                                      <code block>                   3667                                                     <code blocks>                   3891                                                          <eval()>                   5202                                                                                        0 ##CREATE A VIRUS##                                                                     0 ----------------------------------------------------------------                       0                                                                                        0 I HOPE that  NO ONE  will loose time  creating a  virus that  can                      0 attach a nB macro program. In fact there is no protection against                      0 this problem.  A compiled  macro is  simply a  .DBF file  with  a                      0 different extention (I used .NB). So you can just read a compiled                      0 macro program as a database file.                                                      0                                                                                        0 ##PROTECT MYSELF FROM VIRUSES##                                                        0 ----------------------------------------------------------------                       0                                                                                        0 There is no tecnical protection  against macro program virues.  I                      0 just think  that nB  will not  be so  famous to  inspire a  virus                      0 writer for nB's macro program files.                                                   0                                                                                        0 ##THE SOURCE FILES##                                                                   0 ================================================================                       0                                                                                        0 The nB source is composed of four files:                                               0                                                                                        0 NB.PRG         The main source file containing essentially the nB                      0                menu.                                                                   0                                                                                        0 REQUEST.PRG    Contains  a  link   to  all  CA-Clipper   standard                      0                functions.                                                              0                                                                                        0 STANDARD.PRG   Contains the most important standard functions.                         0                                                                                        0 EXTRA.PRG      Contains  some  extra   function  not   absolutely                      0                necessary duriing macro execution.                                      0                                                                                        0 The file REQUEST.PRG source file generates some warnings  because                      0 not all functions listed there are directly called form nB. Don't                      0 warry about that warning message.                                                      0                                                                                        0 Different  .RMK  (rmake)  files   are  included  to  compile   nB                      0 differently, including/exluding some  program parts, for  example                      0 to obtain a runtime executor.                                                          0                                                                                        0 ##AKNOLEDGMENTS##                                                                      0 ================================================================                       0                                                                                        0 nB is  written  in  CA-Clipper 5.2.  CA-Clipper  is  produced  by                      0 Computer Associates and Computer Associates has no  resposibility                      0 on nB.                                                                                 0                                                                                        0 Some peaces of the CA-Clipper standard functions description  are                      0 taken from the CA-Clipper documentation.                                               0                                                                                        0 The function RF() is a modification of the source of the original                      0 __ReportForm() used by CA-Clipper.                                                     0                                                                                        0 I would like to thank all who  have tryed and will try nB.  Every                      0 e-mail about that is very important to me.                                             0                                                                                        0 ##KNOWN PROBLEMS##                                                                     0 ================================================================                       0                                                                                        0 There are some known unresolved problems inside nB. I am sorry.                        0                                                                                        0 *    nB  Macros  may  be  contained  inside  ascii  files  or   a                      0      "compiled" .dbf file. In the  second case, when nB  executes                      0      the macro, a work area (the last available one) is used,  so                      0      it should  not be  closed or  the  macro execution  will  be                      0      stopped. A dbcloseall() will stop execution of the macro. In                      0      substitution of dbcloseall(), DBCLOSE() should be used.                           0                                                                                        0 *    To simplify the macro interpretation, lines such as this:                         0      qqout( "You can't do that // you can't do that!" )                                0      will generate an error as the interpreter will read only:                         0      qqout( "You can't do that                                                         0                                                                                        0 *    nB works good also if you  have a screen configuration  that                      0      permits you to show  more than the usual  80 columns and  25                      0      lines, but the library used to handle the mouse is not  able                      0      to work outside the 80x25 area. But if nB runs under Windows                      0      inside a window, it works.                                                        0                                                                                        0 ##nB HISTORY##                                                                         0 ================================================================                       0                                                                                        0 z.exe 1995.03.18 to 1996.02.01                                                         0                                                                                        0      The result of an hobby project to create a .DBF, .NTX,  .LBL                      0      and .FRM  utility  with  a simplified  macro  ability.  This                      0      program was distributed only in Italy.                                            0                                                                                        0 nBase 1996.01.15                                                                       0                                                                                        0      The first version of a new  hobby project to create a  macro                      0      interpreter                                                                       0                                                                                        0 nB 1996.02.28                                                                          0                                                                                        0      This is the first release of  nB. nB is the result of  nBase                      0      and z.exe.                                                                        0                                                                                        0 nB 1996.06.16                                                                          0                                                                                        0      nB becomes "GNU-GPL" and the source is included.                                  0                                                                                        0 nB 1997.01                                                                             0                                                                                        0      Mouse support: many standard functions are rewritten.                             0                                                                                        0      TB() is modified: now more parameter are available.                               0                                                                                        0      Bidimensional arrays may  be directly edited  with ATB(),  a                      0      Tbrowse function for arrays.                                                      0                                                                                        0      More functions are availables.                                                    0                                                                                        0      Other minor changes.                                                              0                                                                                        0      Other minor bug corrections.                                                      0                                                                                        0 ##HOW TO CONTACT THE AUTHOR##                                                          0 ================================================================                       0                                                                                        0 If you like the program, I will be happy to know it, for  example                      0 receiving a e-mail where you say something like:                                       0                                                                                        0                          "I use nB".                                                   0                                                                                        0 Will you tell me if you like this work?                                                0                                                                                        0 Comments, suggestions, bug reports  and english text  corrections                      0 are welcome (and needed) to make a better nB.                                          0                                                                                        0 Write to:                     Daniele Giacomini                                        0                               Via Turati, 15                                           0                               I-31100 Treviso                                          0                               Italy                                                    0                                                                                        0 Send your e-mail to:          daniele@tv.shineline.it                                  0                                                                                        0 The latest about nB may be found at:                                                   0                                                                                        0      http://www.geocities.com/SiliconValley/7737/nanobase.html                         0                                                                                        0