home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1995 September / Image.iso / visualob / install / cavo / std.ud_ / std.ud
Encoding:
Text File  |  1994-12-18  |  29.7 KB  |  1,091 lines

  1. ****************************************************************************
  2. *
  3. *   STD.UDC
  4. *
  5. *   CA-Visual Objects Standard UDCs
  6. *
  7. *   Copyright (C) 1991, 1992, 1993  Computer Associates
  8. *
  9. *
  10. *   COMMENTS:
  11. *
  12. *   -   UDC_STD.NEF is required for #error/#warn facility
  13. *
  14. *   -   Sequence is important, e.g. DELETED has to follow DELETE in the
  15. *   UDC file, otherwise DELETE is assumed to be a shortform of DELETED
  16. *   same with READ , READONLY
  17. *
  18. ****************************************************************************
  19.  
  20.  
  21.  NOTE   <*x*>   =>
  22.  
  23.  ASSERT <exp>   => #ifdef _assert;; ;
  24.     if !(<exp>) ;; ;
  25.     MessageBox(0,  String2psz(<$exp$>), ;
  26.     String2psz("Failed in " + RTrim(__ENTITY)+ ", " +NTRIM(__LINE)), 48);; ;
  27.     endif;; #endif
  28.  
  29.  SET PROCLINE ON    => ~"PROCLINE+"
  30.  SET PROCLINE OFF   => ~"PROCLINE-"
  31.  
  32.  SET PROCNAME ON    => ~"PROCNAME+"
  33.  SET PROCNAME OFF   => ~"PROCNAME-"
  34.  
  35. ***
  36. *  Basic statement synonyms
  37. *
  38.  
  39.  STORE <value> TO <var1> [, <varN> ]   => <var1> := [ <varN> := ] <value>
  40.  
  41.  DEFAULT <var1> TO <value1> [, <varN>  TO <valueN>] => ;
  42.      DEFAULT(@<var1>, <value1>);
  43.  [;; DEFAULT(@<varN>, <valueN>)]
  44.  
  45. ***
  46. *  Compatibility
  47. *
  48.  SET PROCEDURE TO   =>  #warn  54001, "SET PROCEDURE TO"
  49.  SET PROCEDURE TO <f> =>#error 54011, <$f$>
  50.  
  51.  SET EXACT OFF      =>  #warn  54001, "SET EXACT"
  52.  SET EXACT   <*x*>  =>  #error 54010
  53.  
  54.  ANNOUNCE <prc1> [, <prcN>] =>  #warn  54001, "ANNOUNCE"
  55.  
  56.  REQUEST  <prc1> [, <prcN>]   =>   IIF(.F.,.F.,NIL) ;
  57.        [;; IIF(.F., .F., NIL)]
  58.  
  59.  EXTERNAL <prc1> [, <prcN>]   =>   IIF(.F.,<%prc1%>(),NIL) ;
  60.        [;; IIF(.F.,<%prcN%>(),NIL)]
  61.  
  62.  INIT PROCEDURE <*x*> =>#error 54012
  63.  
  64. ***
  65. *  DOS file commands
  66. *
  67.  
  68.  ERASE </file/>     => FERASE(<(file)>)
  69.  DELETE FILE </file/>       => FERASE(<(file)>)
  70.  RENAME </oldFile/> TO </newFile/>  => FRENAME(<(oldFile)>, <(newFile)>)
  71.  
  72.  
  73.  DIR        => DIR()
  74.  DIR (<exp1> [,<exp2>]) => DIR(<exp1> [,<exp2>])
  75.  DIR <*x*>  => DIR(<$x$>)
  76.  
  77. ***
  78. *  Process
  79. *
  80.  
  81.  CANCEL     => _QUIT()
  82.  QUIT       => _QUIT()
  83.  
  84.  RUN (<c>)  => _RUN(<c>)
  85.  RUN = <xpr>    => (run := <xpr>)
  86.  RUN := <xpr>   => (run := <xpr>)
  87.  RUN <*cmd*>    => _RUN(<#cmd#>)
  88.  
  89.  
  90.  
  91. ***
  92. *  System SETs
  93. *
  94.  
  95.  SET PATH TO        => SETPATH("")
  96.  SET PATH TO <*pathlist*>=> SETPATH(<#pathlist#>)   // use ",", not ";"
  97.  
  98.  SET DEFAULT TO </path/>=> SETDEFAULT(<(path)>)
  99.  SET DEFAULT TO     => SETDEFAULT("")
  100.  
  101.  SET DECIMALS TO <x>    => SETDECIMAL(<x>)
  102.  SET DECIMALS TO    => SETDECIMAL(0)
  103.  
  104.  SET DIGITS TO <x>  => SETDIGIT(<x>)
  105.  SET DIGITS TO      => SETDIGIT(10)
  106.  
  107.  SET FIXED ON       => SETFIXED(.T.)
  108.  SET FIXED OFF      => SETFIXED(.F.)
  109.  SET FIXED <x>      => SETFIXED(_OnOff(<x>))
  110.  
  111.  SET DIGITFIXED ON  => SETDIGITFIXED (.T.)
  112.  SET DIGITFIXED OFF => SETDIGITFIXED (.F.)
  113.  SET DIGITFIXED <x> => SETDIGITFIXED (_OnOff(<x>))
  114.  
  115.  SET UNIQUE ON      => SETUNIQUE(.T.)
  116.  SET UNIQUE OFF     => SETUNIQUE(.F.)
  117.  SET UNIQUE <x>     => SETUNIQUE(_OnOff(<x>))
  118.  
  119.  SET SOFTSEEK ON    => SETSOFTSEEK(.T.)
  120.  SET SOFTSEEK OFF   => SETSOFTSEEK(.F.)
  121.  SET SOFTSEEK <x>   => SETSOFTSEEK(_OnOff(<x>))
  122.  
  123.  SET DELETED ON     => SETDELETED(.T.)
  124.  SET DELETED OFF    => SETDELETED(.F.)
  125.  
  126.  SET DELETED <x>    => SETDELETED(_OnOff(<x>))
  127.  
  128.  SET EXCLUSIVE ON   => SETEXCLUSIVE(.T.)
  129.  SET EXCLUSIVE OFF  => SETEXCLUSIVE(.F.)
  130.  SET EXCLUSIVE <x>  => SETEXCLUSIVE(_OnOff(<x>))
  131.  
  132.  SET ANSI ON        => SETANSI(.T.)
  133.  SET ANSI OFF       => SETANSI(.F.)
  134.  SET ANSI <x>       => SETANSI(_OnOff(<x>))
  135.  
  136.  SET YIELD ON       => SETYIELD(.T.)
  137.  SET YIELD OFF      => SETYIELD(.F.)
  138.  SET YIELD <x>      => SETYIELD(_OnOff(<x>))
  139.  
  140.  
  141. ***
  142. *  New RDD settings
  143. *
  144.  
  145.  SET OPTIMIZE ON    => RDDInfo(_SET_OPTIMIZE, .T.)
  146.  SET OPTIMIZE OFF   => RDDInfo(_SET_OPTIMIZE, .F.)
  147.  SET OPTIMIZE <x>   => RDDInfo( _SET_OPTIMIZE, _OnOff(<x>) )
  148.  
  149.  
  150.  SET MEMOBLOCKSIZE TO <x>   => RDDInfo(_SET_MEMOBLOCKSIZE, <x>)
  151.  SET MEMOBLOCKSIZE TO       => RDDInfo(_SET_MEMOBLOCKSIZE, 512)
  152.  
  153.  SET DEFAULTRDD TO <x>      => RDDInfo(_SET_DEFAULTRDD, <x>)
  154.  SET DEFAULTRDD TO          => RDDInfo(_SET_DEFAULTRDD, "DBFNTX")
  155.  
  156.  SET MEMOEXT    TO <x>      => RDDInfo(_SET_MEMOEXT, <x>)
  157.  SET MEMOEXT    TO          => RDDInfo(_SET_MEMOEXT, ".DBT")
  158.  
  159.  SET AUTOORDER  TO <x>      => RDDInfo(_SET_AUTOORDER, <x>)
  160.  SET AUTOORDER  TO          => RDDInfo(_SET_AUTOORDER, 0)
  161.  
  162.  SET AUTOOPEN ON    => RDDInfo(_SET_AUTOOPEN, .T.)
  163.  SET AUTOOPEN OFF   => RDDInfo(_SET_AUTOOPEN, .F.)
  164.  SET AUTOOPEN <x>   => RDDInfo(_SET_AUTOOPEN, _OnOff(<x>) )
  165.  
  166.  SET HPLOCKING ON   => RDDInfo(_SET_HPLOCKING, .T.)
  167.  SET HPLOCKING OFF  => RDDInfo(_SET_HPLOCKING, .F.)
  168.  SET HPLOCKING <x>  => RDDInfo(_SET_HPLOCKING, _OnOff(<x>) )
  169.  
  170.  SET NEWINDEXLOCK ON        => RDDInfo(_SET_NEWINDEXLOCK, .T.)
  171.  SET NEWINDEXLOCK OFF       => RDDInfo(_SET_NEWINDEXLOCK, .F.)
  172.  SET NEWINDEXLOCK <x>       => RDDInfo( _SET_NEWINDEXLOCK, _OnOff(<x>) )
  173.  
  174.  SET AUTOSHARE ON   => RDDInfo(_SET_AUTOSHARE, .T.)
  175.  SET AUTOSHARE OFF  => RDDInfo(_SET_AUTOSHARE, .F.)
  176.  SET AUTOSHARE <x>  => RDDInfo(_SET_AUTOSHARE, _OnOff(<x>) )
  177.  
  178.  SET STRICTREAD ON  => RDDInfo(_SET_STRICTREAD, .T.)
  179.  SET STRICTREAD OFF => RDDInfo(_SET_STRICTREAD, .F.)
  180.  SET STRICTREAD <x> => RDDInfo(_SET_STRICTREAD, _OnOff(<x>) )
  181.  
  182.  SET CONVERSION ON  => RDDInfo(_SET_CONVERSION, .T.)
  183.  SET CONVERSION OFF => RDDInfo(_SET_CONVERSION, .F.)
  184.  SET CONVERSION <x> => RDDInfo( _SET_CONVERSION, _OnOff(<x>) )
  185.  
  186.  
  187. ***
  188. *  Date format SETs
  189. *
  190.  
  191.  SET CENTURY ON     => SETCENTURY(.T.)
  192.  SET CENTURY OFF    => SETCENTURY(.F.)
  193.  
  194.  SET CENTURY <x>    => SETCENTURY(_OnOff(<x>))
  195.  
  196.  SET EPOCH TO <year>        => SETEPOCH(<year>)
  197.  SET EPOCH TO       => SETEPOCH(1900)
  198.  
  199.  SET DATE [TO] <country>    => SETDATECOUNTRY(<country>)
  200.  
  201.  SET DATE FORMAT [TO] <c>   => SETDATEFORMAT(<c>)
  202.  
  203.  
  204.  
  205. ***
  206. *   New SETs for international stuff
  207. *
  208.  
  209. SET INTERNATIONAL TO <id> => SetInternational(#<id>)
  210.  
  211. SET COLLATION TO <id> => SetCollation(#<id>)
  212.  
  213.  
  214.  
  215. ***
  216. *  MEMVAR variables
  217. *
  218.  
  219.  CLEAR MEMORY       => #ifincl terminal ;; ;
  220.     _MCLEAR() ;; ;
  221.     _initTermPublics() ;; ;
  222.     #else ;; ;
  223.     _MCLEAR() ;; ;
  224.     #endif
  225.  
  226.  RELEASE ALL        => #ifincl terminal ;; ;
  227.     _MRELEASE("*", .t.) ;; ;
  228.     _initTermPublics() ;; ;
  229.     #else ;; ;
  230.     _MRELEASE("*", .t.) ;; ;
  231.     #endif
  232.  
  233.  RELEASE ALL LIKE   <*skel*>    => _MRELEASE(<skel>, .t.)
  234.  RELEASE ALL EXCEPT <*skel*>    => _MRELEASE(<skel>, .f.)
  235.  RELEASE <var1> [, <varN> ] => _MXRELEASE(#<var1> [, #<varN> ])
  236.  
  237.  SAVE ALL LIKE <skel> TO </file/>   ;
  238.       => _MSave(<(file)>, <(skel)>, .t.)
  239.  
  240.  SAVE TO </file/> ALL LIKE <*skel*> ;
  241.       => _MSave(<(file)>, <(skel)>, .t.)
  242.  
  243.  SAVE ALL EXCEPT <skel> TO </file/> ;
  244.       => _MSave(<(file)>, <(skel)>, .f.)
  245.  
  246.  SAVE TO </file/> ALL EXCEPT <*skel*>       ;
  247.       => _MSave(<(file)>, <(skel)>, .f.)
  248.  
  249.  SAVE [TO </file/>] [ALL]       ;
  250.       => _MSave(<(file)>, "*", .t.)
  251.  
  252.  
  253. ***
  254. * Terminal UDC
  255.  
  256.  
  257.  CLEAR ALL  => DBCloseAll();; ;
  258.        __SetFormat(NIL);; ;
  259.        SetAltFile("");; ;
  260.        SetAlternate(.f.);; ;
  261.        _MClear() ;; ;
  262.        _initTermPublics()
  263.  
  264.  CLOSE FORMAT       => __SetFormat(NIL)
  265.  
  266.  CLOSE ALTERNATE    => SetAltFile("");; SetAlternate(.f.)
  267.  
  268.  TYPE </file/>      => TYPEFILE(<(file)>)
  269.  
  270.  TYPE </file/> TO PRINTER   => TYPEFILE(<(file)>);; ;
  271.        COPYFILE(<(file)> , "PRN")
  272.  
  273.  TYPE </file/> TO FILE </dest/> => TYPEFILE(<(file)>);; ;
  274.        COPYFILE(<(file)> , <(dest)>)
  275.  
  276.  COPY FILE </src/> TO </dest/>  => COPYFILE(<(src)>, <(dest)>)
  277.  
  278.  SET WRAP ON        => SETWRAP(.T.)
  279.  SET WRAP OFF       => SETWRAP(.F.)
  280.  
  281.  SET WRAP <x>       => SETWRAP(_OnOff(<x>))
  282.  
  283.  SET CONFIRM ON     => SETCONFIRM(.T.)
  284.  SET CONFIRM OFF    => SETCONFIRM(.F.)
  285.  SET CONFIRM <x>    => SETCONFIRM(_OnOff(<x>))
  286.  
  287.  SET SCROLLBREAK ON => SETSCROLLBREAK(.T.)
  288.  SET SCROLLBREAK OFF    => SETSCROLLBREAK(.F.)
  289.  SET SCROLLBREAK <x>    => SETSCROLLBREAK(_OnOff(<x>))
  290.  
  291.  SET BELL ON        => SETBELL(.T.)
  292.  SET BELL OFF       => SETBELL(.F.)
  293.  SET BELL <x>       => SETBELL(_OnOff(<x>))
  294.  
  295.  SET SCOREBOARD ON  => SETSCOREBOARD(.T.)
  296.  SET SCOREBOARD OFF => SETSCOREBOARD(.F.)
  297.  SET SCOREBOARD <x> => SETSCOREBOARD(_OnOff(<x>))
  298.  
  299.  SET MESSAGE TO <n> [<cent: CENTER,CENTRE>] => ;
  300.     setmessage(<n>);; ;
  301.     setmCenter(<.cent.>)
  302.  
  303.  SET MESSAGE TO     => setmessage(0);; ;
  304.     setmCenter(.f.)
  305.  
  306.  SET CONSOLE ON     => SETCONSOLE(.T.)
  307.  SET CONSOLE OFF    => SETCONSOLE(.F.)
  308.  SET CONSOLE <x>    => SETCONSOLE(_OnOff(<x>))
  309.  
  310.  SET CANCEL ON      => SETCANCEL(.T.)
  311.  SET CANCEL OFF     => SETCANCEL(.F.)
  312.  SET CANCEL <x>     => SETCANCEL(_OnOff(<x>))
  313.  
  314.  SET TYPEAHEAD TO <n>   => settypeahead(<n>)
  315.  
  316.  SET ALTERNATE ON   => SETALTERNATE(.T.)
  317.  SET ALTERNATE OFF  => SETALTERNATE(.F.)
  318.  SET ALTERNATE <x>  => SETALTERNATE(_OnOff(<x>))
  319.  SET ALTERNATE TO   => setalternate(.f.,"")
  320.  SET ALTERNATE TO </file/> [<add: ADDITIVE>]    ;
  321.     => Setalternate(.t.,<(file)>, <.add.> )
  322.  
  323.  SET PRINTER ON     => SETPRINTER(.T.)
  324.  SET PRINTER OFF    => SETPRINTER(.F.)
  325.  SET PRINTER <x>    => SETPRINTER(_OnOff(<x>))
  326.  SET PRINTER TO     => Setprinter(.F.,"")
  327.  SET PRINTER TO </file/> [<add: ADDITIVE>]  ;
  328.     => Setprinter(.T.,<(file)>, <.add.> )
  329.  
  330.  SET DEVICE TO SCREEN   => Setdevice("SCREEN" )
  331.  SET DEVICE TO PRINTER  => Setdevice("PRINTER" )
  332.  
  333.  SET ESCAPE ON      => SETESCAPE(.T.)
  334.  SET ESCAPE OFF     => SETESCAPE(.F.)
  335.  SET ESCAPE <x>     => SETESCAPE(_OnOff(<x>))
  336.  
  337.  SET INTENSITY ON   => SETINTENSITY(.T.)
  338.  SET INTENSITY OFF  => SETINTENSITY(.F.)
  339.  SET INTENSITY <x>  => SETINTENSITY(_OnOff(<x>))
  340.  
  341.  SET DELIMITERS ON  => SETDELIMITERS(.T.)
  342.  SET DELIMITERS OFF => SETDELIMITERS(.F.)
  343.  SET DELIMITERS <x> => SETDELIMITERS(_OnOff(<x>))
  344.  SET DELIMITERS TO <c>      => Setdelimchars( <c> )
  345.  SET DELIMITERS TO DEFAULT  => Setdelimchars( "::" )
  346.  SET DELIMITERS TO  => Setdelimchars( "::" )
  347.  
  348.  SET FORMAT TO <prc>    =>  __SetFormat( {|| <%prc%>()} )
  349.  
  350.  SET MARGIN TO <x>  => setmargin(<x>)
  351.  SET MARGIN TO      => setmargin(0)
  352.  
  353.  
  354.  SET COLOR TO [<*col*>] => setcolor(<#col>)
  355.  
  356.  SET COLOUR TO <*col*>  => setcolor(<#col>)
  357.  
  358.  CLS        => cls()
  359.  CLEAR SCREEN       => cls()
  360.  CLEAR      => cls()
  361.  
  362.  SET CURSOR ON      => SETCURSOR(1)
  363.  SET CURSOR OFF     => SETCURSOR(0)
  364.  SET CURSOR <x>     => SETCURSOR(if(_OnOff(<x>),1,0))
  365.  
  366.  
  367.  @ <row>,<col>      => Scroll(<row>,<col>,<row>);; ;
  368.     SetPos(<row>,<col>)
  369.  
  370.  @ <top>,<left> CLEAR   => Scroll(<top>,<left>);; ;
  371.     SetPos(<top>,<left>)
  372.  
  373.  @ <top>,<left> CLEAR TO <bottom>,<right> => ;
  374.     Scroll(<top>,<left>,<bottom>,<right>);; ;
  375.     SetPos(<top>,<left>)
  376.  
  377.  @ <t>,<l>,<b>,<r> BOX <str> [COLOR <color>] => ;
  378.     DispBox(<t>,<l>,<b>,<r>,<str>[,<color>])
  379.  
  380.  @ <t>,<l> TO <b>,<r> DOUBLE [COLOR <color>] => ;
  381.     DispBox(<t>,<l>,<b>,<r>,2,[<color>])
  382.  
  383.  @ <t>,<l> TO <b>,<r> [COLOR <color>] => ;
  384.     DispBox(<t>,<l>,<b>,<r>,1,[<color>])
  385.  
  386.  @ <y>,<x> SAY <xpr> [PICTURE <pic>][COLOR <col>] => ;
  387.     DEVPOS(<y>,<x>);;DevOutPict(<xpr>,<pic>[,<col>])
  388.  
  389.  @ <y>,<x> SAY <xpr> [COLOR <col>] => DEVPOS(<y>,<x>);
  390.     DevOut(<xpr>[,<col>])
  391.  
  392.  @ <y>,<x> GET <var> [PICTURE <pic>] [WHENBLOCK <when>] ;
  393.     [SEND <msg>] [COLOR <col>] RANGE <lo>,<hi> =>;
  394.     SetPos(<y>,<x>);; ;
  395.     AADD(Getlist,_GET_(<var>,<#var>,<pic>,;
  396.     {|_x_|_RangeCheck(<var>,<lo>,<hi>)},<{when}>,;
  397.     {|_x_|iif(_x_==NIL,<var>,<var>:=_x_)},<col>));
  398.     [ ;; ATail(getlist):<msg>]
  399.  
  400.  @ <y>,<x> GET <var> [PICTURE <pic>] [VALIDBLOCK <valid>] ;
  401.     [WHENBLOCK <when>] [COLOR <col>] [SEND <msg>] =>;
  402.     SetPos(<y>,<x>);; ;
  403.     AADD(Getlist,_GET_(<var>,<#var>,<pic>,;
  404.     <{valid}>,<{when}>,;
  405.     {|_x_|iif(_x_==NIL,<var>,<var>:=_x_)},<col>));
  406.     [ ;; ATail(getlist):<msg>]
  407.  
  408.  @ <y>,<x> SAY <str> [PICTURE <pic1>] [COLOR <col>] GET <var> [PICTURE <pic>] ;
  409.     [VALIDBLOCK <valid>] [WHENBLOCK <when>] [COLOR <col2>] [SEND <msg>] =>;
  410.     DevPos(<y>,<x>);; ;
  411.     DevOutPict(<str>,<pic1>,<col>);; ;
  412.     SetPos(row(),col()+1);; ;
  413.     AADD(Getlist,_GET_(<var>,<#var>,<pic>,;
  414.     <{valid}>,<{when}>,;
  415.     {|_x_|iif(_x_==NIL,<var>,<var>:=_x_)},<col2>)) ;
  416.     [;; ATail(getlist):<msg>]
  417.  
  418.  @ <y>,<x> SAY <str> [PICTURE <pic1>] [COLOR <col>] GET <var> [PICTURE <pic>] ;
  419.     RANGE <lo>,<hi> [WHENBLOCK <when>] [COLOR <col2>] [SEND <msg>] =>;
  420.     DevPos(<y>,<x>);; ;
  421.     DevOutPict(<str>,<pic1>,<col>);; ;
  422.     SetPos(row(),col()+1);; ;
  423.     AADD(Getlist,_GET_(<var>,<#var>,<pic>,;
  424.     {|_x_|_RangeCheck(<var>,<lo>,<hi>)},<{when}>,;
  425.     {|_x_|iif(_x_==NIL,<var>,<var>:=_x_)},<col2>)) ;
  426.     [;; ATail(getlist):<msg>]
  427.  
  428.  
  429.  // same as above set, but without whenblock/validblock
  430.  @ <y>,<x> GET <var> [PICTURE <pic>] [WHEN <when>] ;
  431.     [SEND <msg>] [COLOR <col>] RANGE <lo>,<hi> =>;
  432.     SetPos(<y>,<x>);; ;
  433.     AADD(Getlist,_GET_(<var>,<#var>,<pic>,;
  434.     {|_x_|_RangeCheck(<var>,<lo>,<hi>)},<{when}>,;
  435.     {|_x_|iif(_x_==NIL,<var>,<var>:=_x_)},<col>));
  436.     [ ;; ATail(getlist):<msg>]
  437.  
  438.  
  439.  @ <y>,<x> GET <var> [PICTURE <pic>] [VALID <valid>] ;
  440.     [WHEN <when>] [COLOR <col>] [SEND <msg>] =>;
  441.     SetPos(<y>,<x>);; ;
  442.     AADD(Getlist,_GET_(<var>,<#var>,<pic>,;
  443.     <{valid}>,<{when}>,;
  444.     {|_x_|iif(_x_==NIL,<var>,<var>:=_x_)},<col>));
  445.     [ ;; ATail(getlist):<msg>]
  446.  
  447.  
  448.  @ <y>,<x> SAY <str> [PICTURE <pic1>] [COLOR <col>] GET <var> [PICTURE <pic>] ;
  449.     [VALID <valid>] [WHEN <when>] [COLOR <col2>] [SEND <msg>] =>;
  450.     DevPos(<y>,<x>);; ;
  451.     DevOutPict(<str>,<pic1>,<col>);; ;
  452.     SetPos(row(),col()+1);; ;
  453.     AADD(Getlist,_GET_(<var>,<#var>,<pic>,;
  454.     <{valid}>,<{when}>,;
  455.     {|_x_|iif(_x_==NIL,<var>,<var>:=_x_)},<col2>)) ;
  456.     [;; ATail(getlist):<msg>]
  457.  
  458.  
  459.  @ <y>,<x> SAY <str> [PICTURE <pic1>] [COLOR <col>] GET <var> [PICTURE <pic>] ;
  460.     RANGE <lo>,<hi> [WHEN <when>] [COLOR <col2>] [SEND <msg>] =>;
  461.     DevPos(<y>,<x>);; ;
  462.     DevOutPict(<str>,<pic1>,<col>);; ;
  463.     SetPos(row(),col()+1);; ;
  464.     AADD(Getlist,_GET_(<var>,<#var>,<pic>,;
  465.     {|_x_|_RangeCheck(<var>,<lo>,<hi>)},<{when}>,;
  466.     {|_x_|iif(_x_==NIL,<var>,<var>:=_x_)},<col2>)) ;
  467.     [;; ATail(getlist):<msg>]
  468.  
  469.  
  470.  
  471.  READ SAVE  => readmodal(getlist)
  472.  
  473.  READ       => readmodal(getlist);; ;
  474.     _initTermPublics()
  475.  
  476.  CLEAR GETS => _initTermPublics()
  477.  
  478.  @ <y>,<x> PROMPT <pmt> [MESSAGE <msg>] => __AtPrompt(<y>,<x>,<pmt>,<msg>)
  479.  
  480.  MENU TO <v>        => <v>:=__MenuTo(<#v>,<v>)
  481.  
  482.  SAVE SCREEN        => __XSaveScreen()
  483.  
  484.  SAVE SCREEN TO <v> => <v>:=__XSaveScreenBuffered()
  485.  
  486.  WAIT [<c>] => _wait(<c>)
  487.  
  488.  WAIT [<c>] TO <v>  => <v>:=_wait(<c>)
  489.  
  490.  ACCEPT [<c>] TO <v>    => <v>:=_Accept(<c>)
  491.  
  492.  INPUT [<c>] TO <v> => <v>:=_Input(<c>)
  493.  
  494.  KEYBOARD <c>       => keyboard(<c>)
  495.  
  496.  CLEAR TYPEAHEAD    => keyboard()
  497.  
  498.  SET KEY <n> TO <prc>   => setkey(<n>,{|a,b,c| <%prc%>(a,b,c)})
  499.  
  500.  SET KEY <n> TO     => setkey(<n>,NIL)
  501.  
  502.  SET FUNCTION <n> [TO] [<str>]  => __setFunction(<n>,<str>)
  503.  SET FUNCTION <n> [TO]  => __setFunction(<n>)
  504.  
  505.  EJECT      => eject()
  506.  
  507.  REPORT FORM <frm> [HEADING <heading>] [<plain: PLAIN>] [<noeject: NOEJECT>] ;
  508.     [<summ: SUMMARY>] [<nocon: NOCONSOLE>] [<prnt: TO PRINTER>] ;
  509.     [TO FILE </toFile/>] [FOR <fr>] [WHILE <whle>] [NEXT <nxt>];
  510.     [RECORD <rec>] [<rst:REST>] [ALL]        => ;
  511.     __ReportForm(   ;
  512.     <(frm)>, <.prnt.>, <(toFile)>, <.nocon.>, ;
  513.     <{fr}>, <{whle}>, <nxt>, <rec>, <.rst.>,;
  514.     <.plain.>, <heading>, ;
  515.     <.noeject.>, <.summ.> ;
  516.     )
  517.  
  518.  LABEL FORM <lbl> [<smple: SAMPLE>] [<nocon: NOCONSOLE>] ;
  519.      [<prnt: TO PRINTER>] [TO FILE </toFile)/] [FOR <fr>]   ;
  520.      [WHILE <whle>] [NEXT <nxt>] [RECORD <rec>] [<rst:REST>] [ALL] =>;
  521.      __LabelForm(   ;
  522.      <(lbl)>, <.prnt.>, <(toFile)>, <.nocon.>,  ;
  523.      <{fr}>, <{whle}>, <nxt>, <rec>, <.rst.>, ;
  524.      <.smple.>  ;
  525.      )
  526.  
  527. * ADDITIONAL FUNCTION SET
  528.  
  529.  ADD MENU <aMenu> TO <var>  => <var>:=CRTAddMenu(<aMenu>)
  530.  
  531.  REMOVE MENU <v>    => CRTDeleteMenu(<v>)
  532.  
  533.  SET WINDOWTITLE TO <v>     => CRTSetCaption(<v>)
  534.  
  535.  @ <y>,<x> TO <dy>,<dx> ADD BUTTON <txt> STYLE <style> KEY <key> TO <v>=>;
  536.     <v>:=_CRTAddButton(<key>,<txt>,;
  537.     <y>,<x>,<dy>,<dx>,<style>)
  538.  
  539.  REMOVE BUTTON <v>  => CRTRemoveButton(<v>)
  540.  
  541.  INIT QUEUE TO <v>  => CRTSetQ(<v>)
  542.  
  543.  RESIZE QUEUE TO <v>        => CRTResizeQ(<v>)
  544.  
  545.  DESTROY QUEUE      => CRTDestroyQ()
  546.  
  547.  ZAP QUEUE      => CRTZAPQ()
  548.  
  549.  ERASE QUEUE ELEMENT <v>    => CRTEraseQElement(<v>)
  550.  
  551.  FLUSH QUEUE        => CRTFlushQ()
  552.  
  553.  @ <y>,<x> LINETO <dy>,<dx> STYLE <style> PENWIDTH <width> COLOR <color> =>;
  554.     CRTLine(<y>,<x>,<dy>,<dx>,<style>,<width>,<color>)
  555.  
  556.  @ <y>,<x> RECTANGLE TO <dy>,<dx> STYLE <style> PENWIDTH <width> COLOR <color> BRUSH <brush> =>;
  557.       CRTRectangle(<y>,<x>,<dy>,<dx>,<style>,<width>,<color>,<brush>)
  558.  
  559.  @ <y>,<x> ROUNDRECTANGLE TO <dy>,<dx> BOW <bow> STYLE <style> PENWIDTH <width> COLOR <color> BRUSH <brush> =>;
  560.       CRTRoundRect(<y>,<x>,<dy>,<dx>,<bow>,<style>,<width>,<color>,<brush>)
  561.  
  562.  @ <y>,<x> CHORD TO <dy>,<dx> START <sy>,<sx> END <ey>,<ex> STYLE <style> PENWIDTH <width> COLOR <color> BRUSH <brush> =>;
  563.       CRTChord(<y>,<x>,<dy>,<dx>,<sy>,<sx>,<ey>,<ex>,<style>,<width>,<color>,<brush>)
  564.  
  565.  @ <y>,<x> ARC TO <dy>,<dx> START <sy>,<sx> END <ey>,<ex> STYLE <style> PENWIDTH <width> COLOR <color> =>;
  566.     CRTarc(<y>,<x>,<dy>,<dx>,<sy>,<sx>,<ey>,<ex>,<style>,<width>,<color>)
  567.  
  568.  @ <y>,<x> ELLIPSE TO <dy>,<dx> STYLE <style> PENWIDTH <width> COLOR <color> BRUSH <brush> =>;
  569.       CRTEllipse(<y>,<x>,<dy>,<dx>,<style>,<width>,<color>,<brush>)
  570.  
  571.  @ <y>,<x> PIE TO <dy>,<dx> START <sy>,<sx> END <ey>,<ex> STYLE <style> PENWIDTH <width> COLOR <color> BRUSH <brush> =>;
  572.       CRTPie(<y>,<x>,<dy>,<dx>,<sy>,<sx>,<ey>,<ex>,<style>,<width>,<color>,<brush>)
  573.  
  574.  @ <y>,<x> FLOOD BOUND <bcol> BRUSH <brcol> => CRTFlood(<y>,<x>,<bcol>,<brcol>)
  575.  
  576.  @ <y>,<x> GET PIXEL TO <v> => <v>:=CRTGetPixel(<y>,<x>)
  577.  
  578.  @ <y>,<x>SET PIXEL TO <color>  => CRTSetPixel(<y>,<x>,<color>)
  579.  
  580.  @ <y>,<x> SAY <txt> WITH FONT <font> PARMLIST <list,...> =>;
  581.     CRTWriteFont(<list>,<font>,<y>,<x>,<txt>)
  582.  
  583.  ADD EVENT <cBlock> TRUE  TO <v>  => <v>:=EventAdd(<{cBlock}>,.T.)
  584.  ADD EVENT <cBlock> FALSE TO <v>  => <v>:=EventAdd(<{cBlock}>,.F.)
  585.  
  586.  REMOVE EVENT <v>   => EventDel(<v>)
  587.  
  588. ***
  589. *  DML UDCs
  590. *
  591.  
  592.  APPEND BLANK       => DBAppend(.T.)
  593.  
  594.  APPEND  [FROM </src/>]         ;
  595.      [FIELDS <list,...>]        ;
  596.      [FOR <fo>]         ;
  597.      [WHILE <wh>]       ;
  598.      [NEXT <nx>]        ;
  599.      [RECORD <rec>]     ;
  600.      [<rs:REST>]        ;
  601.      [VIA <rdd>]        ;
  602.      [ALL]      ;
  603.     ;
  604.       => DBAPP(<(src)>, { <(list)> }, <{fo}>, <{wh}>, <nx>, ;
  605.     <rec>, <.rs.>, <rdd>)
  606.  
  607.  
  608.  APPEND  [FROM </src/>] [DELIMITED [WITH <*dlm*>]]  ;
  609.      [FIELDS <list,...>]        ;
  610.      [FOR <fo>]         ;
  611.      [WHILE <wh>]       ;
  612.      [NEXT <nx>]        ;
  613.      [RECORD <rec>]     ;
  614.      [<rs:REST>]        ;
  615.      [ALL]      ;
  616.     ;
  617.       => DBAPPDELIM(<(src)>, <dlm>, { <(list)> }, <{fo}>, <{wh}>,     ;
  618.     <nx>, <rec>, <.rs.>)
  619.  
  620.  
  621.  
  622.  APPEND  [FROM </src/>] [SDF]           ;
  623.      [FIELDS <list,...>]        ;
  624.      [FOR <fo>]         ;
  625.      [WHILE <wh>]       ;
  626.      [NEXT <nx>]        ;
  627.      [RECORD <rec>]     ;
  628.      [<rs:REST>]        ;
  629.      [ALL]      ;
  630.     ;
  631.       => DBAPPSDF(<(src)>, { <(list)> }, <{fo}>, <{wh}>, <nx>,      ;
  632.     <rec>, <.rs.>)
  633.  
  634.  
  635.  AVERAGE <fld1> [,<fldn>] [TO <var1> [,<varn>]]         ;
  636.      [FOR <fo>]         ;
  637.      [WHILE <wh>]       ;
  638.      [NEXT <nx>]        ;
  639.      [RECORD <rec>]     ;
  640.      [<rs:REST>]        ;
  641.      [ALL]      ;
  642.         ;
  643.     => __DBAvg(0)    ;;     ;
  644.        <var1> [:= <varn>]  := 0  ;;     ;
  645.        DBEVAL( {|| <var1>:=<var1>+<fld1> [,<varn>:=<varn>+<fldn>], __DBAvg(1)}, ;
  646.        <{fo}>, <{wh}>, <nx>, <rec>, <.rs.> )         ;; ;
  647.        <var1> := <var1>/__DBAvg(2) [;; <varn> := <varn>/__DBAvg(2)]
  648.  
  649.  
  650.  
  651.  CLOSE      => DBCloseArea()
  652.  
  653.  CLOSE ALL  => DBCloseAll()    ;;          ;
  654.        SELECT(1)
  655.  
  656.  
  657.  CLOSE DATABASES    => DBCloseAll()
  658.  
  659.  CLOSE INDEXES      => DBCLEARINDEX()
  660.  
  661.  CLOSE <alias>      => <alias>->( DBCloseArea() )
  662.  
  663.  COMMIT     => DBCommit()
  664.  
  665.  COMMIT ALL => DBCommitAll()
  666.  
  667.  CONTINUE   => DBContinue()
  668.  
  669.  
  670.  COPY    [TO </dest/>]          ;
  671.      [FIELDS <list,...>]        ;
  672.      [FOR <fo>]         ;
  673.      [WHILE <wh>]       ;
  674.      [NEXT <nx>]        ;
  675.      [RECORD <rec>]     ;
  676.      [<rs:REST>]        ;
  677.      [VIA <rdd>]        ;
  678.      [ALL]      ;
  679.     ;
  680.       => DBCOPY(<(dest)>, { <(list)> }, <{fo}>, <{wh}>, <nx>,       ;
  681.     <rec>, <.rs.>, <rdd>)
  682.  
  683.  
  684.  
  685.  COPY    [TO </dest/>] [DELIMITED [WITH <dlm>]]     ;
  686.      [FIELDS <flds,...>]        ;
  687.      [FOR <fo>]         ;
  688.      [WHILE <wh>]       ;
  689.      [NEXT <nx>]        ;
  690.      [RECORD <rec>]     ;
  691.      [<rs:REST>]        ;
  692.      [ALL]      ;
  693.     ;
  694.       => DBCOPYDELIM(<(dest)>, <dlm>, { <(flds)> }, <{fo}>, <{wh}>,   ;
  695.      <nx>, <rec>, <.rs.>)
  696.  
  697.  
  698.  
  699.  COPY    [TO </dest/>] [SDF]            ;
  700.      [FIELDS <flds,...>]        ;
  701.      [FOR <fo>]         ;
  702.      [WHILE <wh>]       ;
  703.      [NEXT <nx>]        ;
  704.      [RECORD <rec>]     ;
  705.      [<rs:REST>]        ;
  706.      [ALL]      ;
  707.     ;
  708.       => DBCOPYSDF(<(dest)>, { <(flds)> }, <{fo}>, <{wh}>, <nx>,    ;
  709.     <rec>, <.rs.>)
  710.  
  711.  
  712.  COPY [STRUCTURE] [TO </file/>] [FIELDS <flds,...>] ;
  713.     => DBCOPYSTRUCT( <(file)>, { <(flds)> } )
  714.  
  715.  
  716.  COPY [STRUCTURE] [EXTENDED] [TO </file/>]  ;
  717.     => DBCOPYXSTRUCT( <(file)> )
  718.  
  719.  
  720.  
  721.  
  722.  COUNT  [TO <var>]      ;
  723.     [FOR <fo>]          ;
  724.     [WHILE <wh>]        ;
  725.     [NEXT <nx>]         ;
  726.     [RECORD <rec>]      ;
  727.     [<rs:REST>]         ;
  728.     [ALL]       ;
  729.     ;
  730.     => <var> := 0 ;;        ;
  731.        DBEVAL( {|| <var>:=<var> + 1 }, <{fo}>, <{wh}>, <nx>, <rec>, <.rs.> )
  732.  
  733.  
  734.  CREATE </file1/>       ;
  735.     [FROM </file2/>]            ;
  736.     [VIA <rdd>]         ;
  737.     [ALIAS <a>]         ;
  738.     [<nw:NEW>]          ;
  739.     ;
  740.       => _DBCREATE( <(file1)>, <(file2)>, <rdd>, <.nw.>, <(a)> )
  741.  
  742.  
  743.  
  744.  DELETE TAG <cOrd1> [IN </file1/>] [,<cOrdN> [IN </fileN/>]]        ;
  745.     =>     ORDDESTROY(<(cOrd1)> ,<(file1)>) ;
  746.        [;; ORDDESTROY(<(cOrdN)> ,<(fileN)>)]
  747.  
  748.  
  749.  DELETE     => DBDelete()
  750.  
  751.  
  752.  DELETE         ;
  753.      [FOR <fo>]         ;
  754.      [WHILE <wh>]       ;
  755.      [NEXT <nx>]        ;
  756.      [RECORD <rec>]     ;
  757.      [<rs:REST>]        ;
  758.      [ALL]      ;
  759.     ;
  760.     => DBEVAL( {|| DBDelete()}, <{fo}>, <{wh}>, <nx>, <rec>, <.rs.> )
  761.  
  762.  
  763.  
  764.  DISPLAY [<list,...>]           ;
  765.      [<oxf:OFF>]        ;
  766.      [TO <toPrn:PRINTER>]       ;
  767.      [TO FILE </toFile/>]       ;
  768.      [FOR <fo>]         ;
  769.      [WHILE <wh>]       ;
  770.      [NEXT <nx>]        ;
  771.      [RECORD <rec>]     ;
  772.      [<rs:REST>]        ;
  773.      [<all:ALL>]        ;
  774.     ;
  775.       => DBLIST(<.oxf.>, { <{list}> }, <.all.>, <{fo}>, <{wh}>, <nx>,   ;
  776.     <rec>, <.rs.>, <.toPrn.>, <(toFile)>)
  777.  
  778.  
  779.  
  780.  
  781.  GO TOP     => DBGoTop()
  782.  GOTO TOP   => DBGoTop()
  783.  GOTO BOTTOM        => DBGoBottom()
  784.  GO BOTTOM  => DBGoBottom()
  785.  
  786.  GOTO <n>   => DBGoto(<n>)
  787.  GO <n>     => DBGoto(<n>)
  788.  
  789.  FIND <*txt*>       => DBSEEK( <(txt)> )
  790.  FIND := <xpr>      => ( find := <xpr> )
  791.  FIND = <xpr>       => ( find := <xpr> )
  792.  
  793.  
  794.  INDEX ON <key> TO </file/> [<u:UNIQUE>] ;
  795.     => DBCREATEINDEX(<(file)>,<(key)>,<{key}>,IF(<.u.>, .T., NIL))
  796.  
  797.  
  798.  INDEX ON <key>         ;
  799.      [TAG <order>]      ;
  800.      [TO </file/>]      ;
  801.      [FOR <fo>]         ;
  802.      [<all:ALL>]        ;
  803.      [WHILE <wh>]       ;
  804.      [NEXT <nx>]        ;
  805.      [RECORD <rec>]     ;
  806.      [<rs:REST>]        ;
  807.      [EVAL <ev>]        ;
  808.      [EVERY <evr>]      ;
  809.      [<u:UNIQUE>]       ;
  810.      [<asd:ASCENDING>]          ;
  811.      [<dsd:DESCENDING>]         ;
  812.      [<lCur:USECURRENT>]        ;
  813.      [<lAdd:ADDITIVE>]          ;
  814.      [<lCus:CUSTOM>]            ;
  815.      [<lNop:NOOPTIMIZE>]        ;
  816.             ;
  817.     => ORDCONDSET( <$fo$>, <{fo}>,      ;
  818.      [<.all.>],         ;
  819.      <{wh}>,            ;
  820.      <{ev}>, <evr>,     ;
  821.      RECNO(), <nx>, <rec>,      ;
  822.      [<.rs.>], [<.dsd.>],       ;
  823.      [<.lAdd.>], [<.lCur.>], [<.lCus.>], [<.lNop.>] )      ;
  824.     ;;  ;
  825.        ORDCREATE(<(file)>,<(order)>,<(key)>,<{key}>,IF(<.u.>,.T., NIL))
  826.  
  827.  
  828.  
  829.  JOIN [WITH <alias>] [TO </file/>]      ;
  830.     [FIELDS <fields,...>]       ;
  831.     [FOR <fo>]          ;
  832.     ;
  833.     => DBJOIN( <(alias)>, <(file)>,  {<(fields)>}, <{fo}>)
  834.  
  835.  
  836.  
  837.  
  838.  LOCATE  [FOR <fo>]     ;
  839.      [WHILE <wh>]       ;
  840.      [NEXT <nx>]        ;
  841.      [RECORD <rec>]     ;
  842.      [<rs:REST>]        ;
  843.      [ALL]      ;
  844.     ;
  845.       => DBLOCATE(<{fo}>, <{wh}>, <nx>, <rec>, <.rs.>)
  846.  
  847.  
  848.  
  849.  
  850.  LIST   [<list,...>]            ;
  851.      [<oxf:OFF>]        ;
  852.      [TO <toPrn:PRINTER>]       ;
  853.      [TO FILE </toFile/>]       ;
  854.      [FOR <fo>]         ;
  855.      [WHILE <wh>]       ;
  856.      [NEXT <nx>]        ;
  857.      [RECORD <rec>]     ;
  858.      [<rs:REST>]        ;
  859.      [ALL]      ;
  860.     ;
  861.       => DBLIST(<.oxf.>, { <{list}> }, .T., <{fo}>, <{wh}>, <nx>,   ;
  862.     <rec>, <.rs.>, <.toPrn.>, <(toFile)>)
  863.  
  864.  
  865.  
  866.  PACK       => DBPack()
  867.  
  868.  RECALL     => DBRecall()
  869.  
  870.  RECALL         ;
  871.      [FOR <fo>]         ;
  872.      [WHILE <wh>]       ;
  873.      [NEXT <nx>]        ;
  874.      [RECORD <rec>]     ;
  875.      [<rs:REST>]        ;
  876.      [ALL]      ;
  877.     ;
  878.     => DBEVAL( {|| DBRecall()}, <{fo}>, <{wh}>, <nx>, <rec>, <.rs.> )
  879.  
  880.  
  881.  REINDEX    => ORDLISTREBUILD()
  882.  
  883.  
  884.  REINDEX [EVAL <ev>] [EVERY <evr>]      ;
  885.     => ORDCONDSET(,,,, <{ev}>, <evr>,,,,,,,)     ;; ;
  886.        ORDLISTREBUILD()
  887.  
  888.  
  889.  REPLACE <f1> WITH <v1> [, <fN> WITH <vN> ] ;
  890.     =>    _FIELD-><f1> := <v1>      ;
  891.       [;; _FIELD-><fN> := <vN> ]
  892.  
  893.  REPLACE [<f1> WITH <v1> [, <fN> WITH <vN>] ]       ;
  894.      [FOR <fo>]         ;
  895.      [WHILE <wh>]       ;
  896.      [NEXT <nx>]        ;
  897.      [RECORD <rec>]     ;
  898.      [<rs:REST>]        ;
  899.      [ALL]      ;
  900.     ;
  901.     => DBEVAL(          ;
  902.     {|| _FIELD-><f1> := <v1> [, _FIELD-><fN> := <vN>] },    ;
  903.     <{fo}>, <{wh}>, <nx>, <rec>, <.rs.>     ;
  904.      )
  905.  
  906.  
  907.  SEEK <xValue>             ;
  908.     [<lSoft:SOFTSEEK>]             ;
  909.     [<lLast:LAST>]         ;
  910.    => DBSEEK(<xValue>, IIF(<.lSoft.>, .T., NIL), IIF(<.lLast.>,.T., NIL))
  911.  
  912.  
  913.  SELECT(<whatever>) => _SELECT(<whatever>)
  914.  SELECT <whatever>  => DBSELECTAREA(<$whatever$>)
  915.  
  916.  SET DRIVER TO <drv>    => DBSetDriver(<$drv$>)
  917.  
  918.  SET FILTER TO      => DBClearFilter()
  919.  SET FILTER TO <xpr>    => DBSetFilter(<{xpr}>, <$xpr$>)
  920.  
  921.  
  922.  SET INDEX TO [</index1/> [,</indexn/>]] [<adt:ADDITIVE>]   ;
  923.     ;
  924.     => IF !<.adt.>     ;;   ;
  925.        ORDLISTCLEAR()      ;;       ;
  926.        ENDIF           ;;   ;
  927.        ;;   ;
  928.        [;;ORDLISTADD(<(index1)>)]   ;
  929.        [;;ORDLISTADD(<(indexn)>)]
  930.  
  931.  
  932.  SET ORDER TO <xOrder> [IN </file/>]        ;
  933.     => ORDSETFOCUS( <xOrder> [,<(file)>] )
  934.  
  935.  
  936.  SET ORDER TO TAG <cOrder> [IN </file/>]    ;
  937.     => ORDSETFOCUS( <(cOrder)> [,<(file)>] )
  938.  
  939.  
  940.  SET ORDER TO       => ORDSETFOCUS(0)
  941.  
  942.  
  943.  SET RELATION TO    => DBCLEARRELATION()
  944.  
  945.  SET RELATION           ;
  946.      [<adt:ADDITIVE>]           ;
  947.      [TO <key1> INTO <alias1>] [, [TO <keyn> INTO <aliasn>]]        ;
  948.     ;
  949.     => IF !<.adt.>     ;;   ;
  950.        DBCLEARRELATION()   ;;       ;
  951.        ENDIF           ;;   ;
  952.        ;;   ;
  953.     DBSETRELATION( <(alias1)>, <{key1}>, <$key1$> ) ;
  954.     [;; DBSETRELATION( <(aliasn)>, <{keyn}>, <$keyn$> )]
  955.  
  956.  SET RELATION           ;
  957.      [<adt:ADDITIVE>]           ;
  958.      [TO <key1> INTO <alias1>] [, [TO <keyn> INTO <aliasn>]]        ;
  959.      SCOPED         ;
  960.     => IF !<.adt.>      ;;  ;
  961.     DBCLEARRELATION()       ;;  ;
  962.        ENDIF            ;;  ;
  963.             ;;  ;
  964.     OrdSetRelation( <(alias1)>, <{key1}>, <$key1$> )        ;
  965.     [;; OrdSetRelation( <(aliasn)>, <{keyn}>, <$keyn$> )]
  966.  
  967.  SET SCOPE TO           ;
  968.     =>  OrdScope(0)       ;
  969.     ;; OrdScope(1)
  970.  
  971.  SET SCOPE TO <xValue>          ;
  972.     =>  OrdScope(0, <xValue>)       ;
  973.     ;; OrdScope(1, <xValue>)
  974.  
  975.  SET SCOPE TO <xVal1>, <xVal2>          ;
  976.     =>  OrdScope(0, <xVal1>)        ;
  977.     ;; OrdScope(1, <xVal2>)
  978.  
  979.  SET SCOPETOP TO        ;
  980.     =>  OrdScope(0)
  981.  
  982.  SET SCOPETOP TO <xValue>       ;
  983.     =>  OrdScope(0, <xValue>)
  984.  
  985.  SET SCOPEBOTTOM TO     ;
  986.     =>  OrdScope(1)
  987.  
  988.  SET SCOPEBOTTOM TO <xValue>            ;
  989.     =>  OrdScope(1, <xValue>)
  990.  
  991.  SET DESCENDING ON      ;
  992.     =>  OrdDescend(,, .T.)
  993.  
  994.  SET DESCENDING OFF     ;
  995.     =>  OrdDescend(,, .F.)
  996.  
  997.  SET MEMOBLOCK TO <nSize>       ;
  998.     =>  RDDInfo(_SET_MEMOBLOCKSIZE, <nSize>)
  999.  
  1000.  
  1001.  SKIP       => DBSkip(1)
  1002.  SKIP ALIAS <a>     => <a> -> (dbSkip(1))
  1003.  
  1004.  SKIP <n>   => DBSkip(<n>)
  1005.  SKIP <n> ALIAS <a> => <a> -> (dbSkip(<n>))
  1006.  
  1007.  SORT    [TO </dest/>]          ;
  1008.      [ON <flds,...>]            ;
  1009.      [FOR <fo>]         ;
  1010.      [WHILE <wh>]       ;
  1011.      [NEXT <nx>]        ;
  1012.      [RECORD <rec>]     ;
  1013.      [<rs:REST>]        ;
  1014.      [ALL]      ;
  1015.     ;
  1016.       => DBSORT(<(dest)>, { <(flds)> }, <{fo}>, <{wh}>, <nx>,       ;
  1017.     <rec>, <.rs.>)
  1018.  
  1019.  
  1020.  SUM [<x1> [,<xn>]] TO [<v1> [,<vn>]]       ;
  1021.      [FOR <fo>]         ;
  1022.      [WHILE <wh>]       ;
  1023.      [NEXT <nx>]        ;
  1024.      [RECORD <rec>]     ;
  1025.      [<rs:REST>]        ;
  1026.      [ALL]      ;
  1027.         ;
  1028.     =><v1> := [<vn>:=] 0        ;
  1029.        ;; DBEVAL( {|| <v1>:=<v1>+<x1> [,<vn>:=<vn>+<xn>] }, <{fo}>, <{wh}>, <nx>, <rec>, <.rs.> )
  1030.  
  1031.  
  1032.  
  1033.  TOTAL   [TO </dest/>]          ;
  1034.      [ON <key>]         ;
  1035.      [FIELDS <flds,...>]        ;
  1036.      [FOR <fo>]         ;
  1037.      [WHILE <wh>]       ;
  1038.      [NEXT <nx>]        ;
  1039.      [RECORD <rec>]     ;
  1040.      [<rs:REST>]        ;
  1041.      [ALL]      ;
  1042.     ;
  1043.       => DBTOTAL(<(dest)>, <{key}>, { <(flds)> }, <{fo}>, <{wh}>, <nx>, ;
  1044.     <rec>, <.rs.>)
  1045.  
  1046.  
  1047.  UNLOCK     => DBUnlock()
  1048.  UNLOCK ALL => DBUnlockAll()
  1049.  
  1050.  
  1051.  UPDATE [FROM <alias>] [ON <key>]       ;
  1052.     [REPLACE <f1> WITH <v1>]            ;
  1053.     [<rand:RANDOM>]     ;
  1054.     ;
  1055.     => DBUPDATE(<(alias)>, <{key}>, <.rand.>, {|| _FIELD-><f1> := <v1> })
  1056.  
  1057.  
  1058.  
  1059.  USE        => DBCloseArea()
  1060.  
  1061.  USE </db/>     ;
  1062.      [VIA <rdd>]        ;
  1063.      [ALIAS <a>]        ;
  1064.      [<sh:SHARED>]      ;
  1065.      [<ex:EXCLUSIVE>]           ;
  1066.      [<ro:READONLY>]            ;
  1067.      [<nw:NEW>]         ;
  1068.      [FIELDS <flds>]            ;
  1069.      [INDEX </index1/> [,</indexn/>]]       ;
  1070.      [INHERIT FROM <rdds,...>]          ;
  1071.     ;
  1072.     => DBUSEAREA(<.nw.>, <rdd>, <(db)>, <(a)>, IF(<.sh.> .or. <.ex.>, !<.ex.>, NIL), <.ro.>, <flds>,, { <(rdds)> });
  1073.        [;;DBSETINDEX(<(index1)>)]   ;
  1074.        [;;DBSETINDEX(<(indexn)>)]
  1075.  
  1076.  
  1077.  ZAP        => DBZap()
  1078.  
  1079.  RESTORE [FROM </file/>] [<add: ADDITIVE>]  ;
  1080.       => _MRestore(<(file)>, <.add.>)
  1081.  
  1082.  RESTORE SCREEN     => __XRestScreen()
  1083.  
  1084.  RESTORE SCREEN FROM <v>    => __XRestScreenBuffered(<v>)
  1085.  
  1086.  
  1087. *
  1088. * end of file
  1089. *
  1090. * NO ^Z (eof) may be in STD.UDC!
  1091.