home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Product / Product.zip / visdevin.zip / FTD1OAD2.INF (.txt) next >
OS/2 Help File  |  1994-07-12  |  862KB  |  35,226 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Notices ΓòÉΓòÉΓòÉ
  3.  
  4. Note! 
  5. Before using this information and the product it supports, please read the 
  6. general information under Notices . 
  7.  
  8. First Edition (July 1994) 
  9.  
  10. This edition applies to Release 1 Modification Level 0 of IBM Visualizer 
  11. Development for OS/2 (Program Number 5622-421), and to all subsequent versions, 
  12. releases, and modifications until otherwise indicated in new editions. Consult 
  13. the latest edition of the applicable IBM system bibliography for current 
  14. information on this product. 
  15.  
  16. Order publications through your IBM representative or the IBM branch office 
  17. serving your locality. Publications are not stocked at the address given below. 
  18.  
  19. A form for readers' comments appears at the back of this publication. If the 
  20. form has been removed, address your comments to: 
  21.  
  22. IBM United Kingdom Limited
  23. Warwick Software Development Laboratory
  24. PO Box 31, Birmingham Road
  25. WARWICK
  26. United Kingdom  CV34 5JL
  27.  
  28. When you send information to IBM, you grant to IBM a non-exclusive right to use 
  29. or distribute the information in any way it believes appropriate without 
  30. incurring any obligation to you. 
  31.  
  32. (C) Copyright International Business Machines Corporation 1993,1994. All rights 
  33. reserved. 
  34. Note to U.S. Government users--Documentation related to restriced rights--Use, 
  35. duplication or disclosure is subject to restrictions set forth in GSA ADP 
  36. Schedule Contract with IBM Corp. 
  37.  
  38.  
  39. ΓòÉΓòÉΓòÉ 2. Notices ΓòÉΓòÉΓòÉ
  40.  
  41. References in this publication to IBM products, programs, or services do not 
  42. imply that IBM intends to make these available in all countries in which IBM 
  43. operates. Any reference to an IBM product, program, or service is not intended 
  44. to state or imply that only IBM's product, program, or service may be used. Any 
  45. functionally equivalent product, program, or service that does not infringe any 
  46. of IBM's intellectual property rights may be used instead of the IBM product, 
  47. program, or service. Evaluation and verification of operation in conjunction 
  48. with other products, except those expressly designated by IBM, is the user's 
  49. responsibility. 
  50.  
  51. IBM may have patents or pending patent applications covering subject matter in 
  52. this document. The furnishing of this document does not give you any license to 
  53. these patents. You can send license inquiries, in writing, to: 
  54.  
  55. IBM Corporation
  56. IBM Director of Licensing
  57. 208 Harbor Drive
  58. Stamford, Connecticut 06904-2501
  59. U.S.A.
  60.  
  61. This publication contains examples of data and screens used in daily business 
  62. operations.  They are intended only to be illustrative of the types of 
  63. functions available in Visualizer Development for OS/2 Version 1 and may 
  64. contain the names of individuals, companies, brands, and products.  All of 
  65. these names are fictitious, and any similarity to the names and addresses used 
  66. by an actual business enterprise is entirely coincidental.  Screens shown in 
  67. this publication are intended to be examples and may not be exact 
  68. representations of actual screens. 
  69.  
  70. This publication contains sample programs.  Permission is hereby granted to 
  71. copy and store the sample programs into a data processing machine and to use 
  72. the stored copies for internal study and instruction only.  No permission is 
  73. granted to use the sample programs for any other purpose. 
  74.  
  75. Trademarks 
  76.  
  77. Who should read this book 
  78.  
  79. How this book is organized 
  80.  
  81.  
  82. ΓòÉΓòÉΓòÉ 2.1. Trademarks ΓòÉΓòÉΓòÉ
  83.  
  84. The following terms, denoted by an asterisk (*), used in this publication, are 
  85. trademarks or service marks of IBM Corporation in the United States of America 
  86. or other countries: 
  87.  
  88. AS/400                                  Common User Access 
  89. CUA                                     DB2 
  90. DB2/2                                   DB2/6000 
  91. DRDA                                    Extended Services 
  92. IBM                                     Multimedia Presentation Manager/2 
  93. OS/2                                    OS/400 
  94. Presentation Manager                    SAA 
  95. SQL/DS                                  SQL/400 
  96. System/370                              Systems Application Architecture 
  97. Workplace Shell 
  98.  
  99. The following terms, denoted by a double asterisk (**), used in this 
  100. publication, are trademarks of other companies, as follows: 
  101.  
  102. Aldus                                   Aldus Corporation 
  103. cc:Mail                                 cc:Mail, Inc., a wholly owned 
  104.                                         subsidiary of Lotus Development 
  105.                                         Corporation 
  106. Compuserve                              Compuserve, Inc. 
  107. dBASE III                               Borland International, Inc. 
  108. Microsoft                               Microsoft Corporation 
  109. PC Paintbrush                           ZSoft Corporation 
  110. Q+E                                     Q+E Software, Inc. 
  111. ZSoft                                   ZSoft Corporation 
  112.  
  113.  
  114. ΓòÉΓòÉΓòÉ 2.2. Who should read this book ΓòÉΓòÉΓòÉ
  115.  
  116. This book is for professional application developers who want to use Visualizer 
  117. Development for OS/2. It contains a detailed description of Application System 
  118. Language (ASL), but is not intended to be a tutorial for nonprogrammers. 
  119.  
  120. Before using this book, you need to be familiar with the information in the 
  121. following publications: 
  122.  
  123. o IBM Visualizer Development for OS/2: Introducing, which contains a 
  124.   step-by-step guide to developing an application. 
  125.  
  126. o IBM Visualizer Development for OS/2: Using, which introduces Visualizer 
  127.   Development and ASL. It explains how to use the Menu editor, the Window 
  128.   editor, the Program editor, and the Make facility. It also provides exercises 
  129.   for practice. 
  130.  
  131. (You can find these books online in the Development Manuals folder.) 
  132.  
  133.  
  134. ΓòÉΓòÉΓòÉ 2.3. How this book is organized ΓòÉΓòÉΓòÉ
  135.  
  136. In this book, Visualizer Development for OS/2 is referred to as Visualizer 
  137. Development. 
  138.  
  139. This book documents Visualizer Development and covers the application 
  140. development environment and Application System Language that form the 
  141. application development component of Visualizer. 
  142.  
  143. The manual is organized as follows: 
  144.  
  145. o Part 1 (Language Summary) provides a quick overview of the language 
  146.   statements and objects grouped by function. 
  147.  
  148. o Part 2 (Language Reference) is an alphabetical list of all statements, 
  149.   functions, and objects with a description of their parameters, attributes, 
  150.   actions, and events. 
  151.  
  152. o Part 3 (Appendixes) contains further reference information. 
  153.  
  154. Advanced programmers can also benefit from the sample programs supplied with 
  155. the product in the Development Samples folder. 
  156.  
  157.  
  158. ΓòÉΓòÉΓòÉ 3. Application System Language summary ΓòÉΓòÉΓòÉ
  159.  
  160. This chapter summarizes the statements and functions of Application System 
  161. Language (ASL) that you can use when you create applications. Built-in objects 
  162. and statements for manipulating objects are covered in Objects and attributes . 
  163.  
  164. In this chapter, the language elements are grouped as follows: 
  165.  
  166. o Structuring programs 
  167. o Controlling programs 
  168. o Debugging programs 
  169. o Variables, arrays, and tables 
  170. o String and mathematical functions 
  171. o Operators 
  172. o Format values 
  173. o Format symbols 
  174. o Communicating with end users 
  175.  
  176. Structuring programs 
  177.  
  178. Controlling programs 
  179.  
  180. Communicating with end users 
  181.  
  182. File name and location 
  183.  
  184. Debugging programs 
  185.  
  186. Variables, arrays, and tables 
  187.  
  188. String functions 
  189.  
  190. Mathematical functions 
  191.  
  192. Operators 
  193.  
  194. Format values 
  195.  
  196. Formatting data 
  197.  
  198.  
  199. ΓòÉΓòÉΓòÉ 3.1. Structuring programs ΓòÉΓòÉΓòÉ
  200.  
  201. There are statements that specify event blocks and procedures, and statements 
  202. that specify the flow of control in these blocks. 
  203.  
  204. Specifying blocks 
  205.  
  206. Flow of control 
  207.  
  208.  
  209. ΓòÉΓòÉΓòÉ 3.1.1. Specifying blocks ΓòÉΓòÉΓòÉ
  210.  
  211. These are the statements that specify procedures and event blocks: 
  212.  
  213. ON                      Identifies the statements to be executed when an event 
  214.                         occurs 
  215.  
  216. PROCEDURE               Identifies statements to be executed as a procedure or 
  217.                         function 
  218.  
  219. RETURN                  Ends a PROCEDURE or event block 
  220.  
  221.  
  222. ΓòÉΓòÉΓòÉ 3.1.2. Flow of control ΓòÉΓòÉΓòÉ
  223.  
  224. These are the statements that specify the flow of control in event blocks and 
  225. procedures: 
  226.  
  227. CALL                    Invokes a procedure or object action 
  228.  
  229. CASE ... WHEN ... OTHERWISE ... END Processes one of several sections of code, 
  230.                         depending on the value of an expression 
  231.  
  232.                         WHEN identifies a value of a CASE expression 
  233.  
  234.                         TRUE identifies a statement to be executed if the 
  235.                         expression is true 
  236.  
  237.                         FALSE identifies a statement to be executed if the 
  238.                         expression is false 
  239.  
  240.                         NULL identifies a statement to be executed if the 
  241.                         expression has a NULL value 
  242.  
  243.                         OTHERWISE identifies a statement to be executed if no 
  244.                         WHEN condition is true 
  245.  
  246. DO...END                Enclose statements that are to be processed together. 
  247.                         The DO...END structure can be used anywhere that a 
  248.                         single statement can. 
  249.  
  250.                         LEAVE terminates a DO...END block 
  251.  
  252.                         TERMINATE ends a repeating block 
  253.  
  254.                         ITERATE starts a new iteration of a repeating block 
  255.  
  256.                         UNTIL repeats a statement until a condition is true, 
  257.                         testing the condition after executing the statement 
  258.  
  259.                         WHILE repeats a statement while a condition is true, 
  260.                         testing the condition before executing the statement 
  261.  
  262. FORGIVE                 Prevents an error in a statement from invoking the ON 
  263.                         ERROR block 
  264.  
  265. IF ... THEN ... ELSE    Tests a condition 
  266.  
  267.                         THEN identifies a statement to be executed when an IF 
  268.                         condition is true. THEN is optional 
  269.  
  270.                         ELSE identifies a statement to be executed when an IF 
  271.                         condition is false 
  272.  
  273. NOTHING                 Does nothing, useful as a place holder 
  274.  
  275.  
  276. ΓòÉΓòÉΓòÉ 3.2. Controlling programs ΓòÉΓòÉΓòÉ
  277.  
  278. There are statements that you can use to control when programs start and stop. 
  279.  
  280. Signalling programs 
  281.  
  282. Synchronizing programs 
  283.  
  284. Ctrl Break 
  285.  
  286. Events 
  287.  
  288.  
  289. ΓòÉΓòÉΓòÉ 3.2.1. Signalling programs ΓòÉΓòÉΓòÉ
  290.  
  291. The statements that signal programs are as follows: 
  292.  
  293. QUEUE PROGRAM           Signals an event to an active program. The event is 
  294.                         queued for execution until the initiating program has 
  295.                         finished and there is a wait state. 
  296.  
  297. RUN PROGRAM             Signals an event to the requested program immediately. 
  298.                         After the program has been executed, the initiating 
  299.                         program continues. 
  300.  
  301. START                   Causes another program to be loaded, and its ON START 
  302.                         block to be executed immediately. 
  303.  
  304. STOP                    Stops execution of the current program and makes it 
  305.                         inactive. 
  306.  
  307.  
  308. ΓòÉΓòÉΓòÉ 3.2.2. Synchronizing programs ΓòÉΓòÉΓòÉ
  309.  
  310. The following statements can be used to synchronize programs: 
  311.  
  312. WAIT PROGRAM            Suspends a program until another program ends (or 
  313.                         cancels the suspended state with SIGNAL PROGRAM). 
  314.  
  315. SIGNAL PROGRAM          Cancels the suspension of a calling program caused by a 
  316.                         WAIT statement. 
  317.  
  318.  
  319. ΓòÉΓòÉΓòÉ 3.2.3. Ctrl Break ΓòÉΓòÉΓòÉ
  320.  
  321. A statement and a function control the handling of Ctrl Break entered by the 
  322. user: 
  323.  
  324. BREAK                   Controls handling of a control break entered by the 
  325.                         user. 
  326.  
  327. BREAK()                 True if at least one control break is outstanding. 
  328.  
  329.  
  330. ΓòÉΓòÉΓòÉ 3.2.4. Events ΓòÉΓòÉΓòÉ
  331.  
  332. These are the events that you can use in your application: 
  333.  
  334. AB                      Selecting an item from a menu bar 
  335.  
  336. ADVISE                  Issuing an ADVISE from DDECLIENT 
  337.  
  338. BREAK                   The control break key (Ctrl+Break) 
  339.  
  340. CONTRACT                The contract (-) symbol on a folder is selected 
  341.  
  342. DATA                    Data entry in a control object, or a DDE ADVISE occurs 
  343.  
  344. DATASELECT              Selecting a row in a table editor 
  345.  
  346. DESKTOP                 A request to resize a window 
  347.  
  348. DISCARD                 An object is moved, or dropped on the shredder 
  349.  
  350. DRAG                    A graphics object has been dragged on a window 
  351.  
  352. ENTER                   The ENTER key 
  353.  
  354. ERROR                   A run-time processing error 
  355.  
  356. ESCAPE                  The ESCAPE key 
  357.  
  358. EXPAND                  The expand (+) symbol on a folder is selected 
  359.  
  360. HELP                    Selecting help 
  361.  
  362. INFORM                  Selecting a hypertext INFORM field (from HELP) 
  363.  
  364. INITIATE                A DDE conversation is initiated 
  365.  
  366. LISTDATA                Inserting or deleting a line in a list control 
  367.  
  368. LISTSCROLL              Scrolling a list control 
  369.  
  370. OPEN                    When double-clicking in a list control 
  371.  
  372. ORDER                   When order is selected in VIEWORDER 
  373.  
  374. PRINT                   An object is dropped on a printer 
  375.  
  376. PROPERTIES              Changing the desktop 
  377.  
  378. QUEUE                   A QUEUE PROGRAM statement 
  379.  
  380. QUIT                    A request to close a window or server 
  381.  
  382. SCROLL                  Moving a scroll bar on a window 
  383.  
  384. SCHEME                  Dropping a font on a window 
  385.  
  386. SELECT                  Selecting an object in a window opened by the task 
  387.  
  388. SIGNAL                  A signal from a Presentation Manager control 
  389.  
  390. SOURCE                  A DDECLIENT requesting data 
  391.  
  392. START                   A program being started as a task 
  393.  
  394. STOP                    A STOP statement 
  395.  
  396. TARGET                  A DDECLIENT delivering data 
  397.  
  398. TIMER                   A timer reaching one of its preset alarm times, or a 
  399.                         multimedia object passing a cue point. 
  400.  
  401. For a list of events and the objects that can signal them, see Events . 
  402.  
  403.  
  404. ΓòÉΓòÉΓòÉ 3.3. Communicating with end users ΓòÉΓòÉΓòÉ
  405.  
  406. The statements or functions, other than windows and controls, that you can use 
  407. to communicate with users are as follows: 
  408.  
  409. DIALOG()                Displays a message and returns a code representing the 
  410.                         push button on the message window that the user presses 
  411.  
  412. MESSAGE                 Displays a message 
  413.  
  414. ERROR                   Displays an error message 
  415.  
  416. SOUND                   Produces a sound of a specified frequency and duration 
  417.  
  418.  
  419. ΓòÉΓòÉΓòÉ 3.4. File name and location ΓòÉΓòÉΓòÉ
  420.  
  421. These functions act on file names. 
  422.  
  423. FULLPATH()              Returns the fully qualified name from a location name 
  424.                         and a file name 
  425.  
  426. LOCATION()              Returns the location from a fully qualified name 
  427.  
  428. NAME()                  Returns the file name from a fully qualified name 
  429.  
  430.  
  431. ΓòÉΓòÉΓòÉ 3.5. Debugging programs ΓòÉΓòÉΓòÉ
  432.  
  433. This statement is designed to help you debug programs: 
  434.  
  435. TRACE                   Produces a trace of statements executed in your program 
  436.  
  437. Use the user library function TRACE() for access to the trace log. 
  438.  
  439.  
  440. ΓòÉΓòÉΓòÉ 3.6. Variables, arrays, and tables ΓòÉΓòÉΓòÉ
  441.  
  442. The statements and functions that act on variables, arrays and tables are as 
  443. follows: 
  444.  
  445. ANALYZE                 Scans one or two columns in a table to analyze the data 
  446.  
  447. CLEAR                   Clears a variable, array element, or table row 
  448.  
  449. COPY                    Copies a variable, array element, or table row 
  450.  
  451. COPY                    Copies a variable, array element, or table row 
  452.  
  453. COUNT()                 Counts the occurrences of the first non-NULL data type 
  454.                         found in an array 
  455.  
  456. DATE()                  Converts a string or a number into a date. 
  457.  
  458. DECLARE                 Declares the existence of objects and variables 
  459.  
  460. DEFINE statement        Allocates an array, or specifies the number of items in 
  461.                         an array, or resizes an array 
  462.  
  463. DEFINED()               Tests whether the value of an expression is non-NULL 
  464.  
  465. DELETE                  Deletes a variable, array element, or table row 
  466.  
  467. ENTRIES()               Returns the number of entries in an array or table 
  468.  
  469. FIND()                  Returns the position of a specified value in an array 
  470.                         or table 
  471.  
  472. GATHER                  Finds the unique values in an array 
  473.  
  474. IF()                    Tests a condition and returns an expression as a result 
  475.  
  476. INDEX                   Indexes a table 
  477.  
  478. INSERT                  Inserts an element into an array, or a row into a table 
  479.  
  480. INSERT()                Inserts values into an array or table and returns the 
  481.                         index number of the inserted element or row 
  482.  
  483. LET                     Assigns a value to a variable 
  484.  
  485. MAX()                   Returns the maximum of a set of values 
  486.  
  487. MIN()                   Returns the minimum of a set of values 
  488.  
  489. NOVALUE()               Returns 1 if a variable is of datatype NULL 
  490.  
  491. NULL()                  Tests whether a single value is of data type NULL 
  492.  
  493. POINTER()               Returns a pointer that identifies a specified variable 
  494.  
  495. RENAME                  Renames a variable, array element, or table row 
  496.  
  497. RETYPE()                Evaluates an expression, giving it the data type of a 
  498.                         named variable 
  499.  
  500. ROW()                   Returns the relative position of a row in a table 
  501.  
  502. TIME()                  Converts a string or a number into a time. 
  503.  
  504. TOTAL()                 The sum of a series 
  505.  
  506. UNIQUE()                Returns a unique string 
  507.  
  508. VALUE()                 Returns the first of its arguments that is not NULL 
  509.  
  510. VERIFY()                Checks whether array elements are convertible 
  511.  
  512.  
  513. ΓòÉΓòÉΓòÉ 3.7. String functions ΓòÉΓòÉΓòÉ
  514.  
  515. The functions that act on strings are as follows. Those functions whose names 
  516. start with an extra C are for use with double byte character sets (DBCS) 
  517. instead of single byte character sets (SBCS) such as ASCII. 
  518.  
  519. Adding, deleting, overlaying and extending strings 
  520.  
  521. Characters and words in strings 
  522.  
  523. Conversions on strings 
  524.  
  525.  
  526. ΓòÉΓòÉΓòÉ 3.7.1. Adding, deleting, overlaying and extending strings ΓòÉΓòÉΓòÉ
  527.  
  528. ADDWORD()               Inserts a substring into a string 
  529.  
  530. DELWORD()               Deletes a substring from a string 
  531.  
  532. OVERLAY() COVERLAY()    Replace part of a string with another string 
  533.  
  534. FULLPATH()              Returns the fully qualified name from a location name 
  535.                         and a file name 
  536.  
  537. LOCATION()              Returns the location from a fully qualified name 
  538.  
  539. NAME()                  Returns the file name from a fully qualified name 
  540.  
  541. PAD() CPAD()            Extends a string 
  542.  
  543. STRING()                Builds a string from component parts 
  544.  
  545. TRIM()                  Removes blanks from the beginning or end of a string 
  546.  
  547.  
  548. ΓòÉΓòÉΓòÉ 3.7.2. Characters and words in strings ΓòÉΓòÉΓòÉ
  549.  
  550. CHARPOS() CCHARPOS()    The position of the first character of a word 
  551.  
  552. LENGTH() CLENGTH()      The string length in characters 
  553.  
  554. NOVALUE()               Returns 1 if a string is empty or contains only blanks 
  555.  
  556. PLENGTH()               The string length in dialog box units 
  557.  
  558. SCAN() CSCAN()          The position of a substring 
  559.  
  560. WORDPOS() CWORDPOS()    The position of word 
  561.  
  562. WORDS()                 The number of words 
  563.  
  564.  
  565. ΓòÉΓòÉΓòÉ 3.7.3. Conversions on strings ΓòÉΓòÉΓòÉ
  566.  
  567. EVALUATE()              A variable that can be evaluated by the ? operator, 
  568.                         obtained by compiling the string 
  569.  
  570. SPLIT() CSPLIT()        Part of the string 
  571.  
  572. UPPER()                 The string converted to uppercase 
  573.  
  574. CHAR()                  The numeric parameters are converted to a character 
  575.                         string. 
  576.  
  577.  
  578. ΓòÉΓòÉΓòÉ 3.8. Mathematical functions ΓòÉΓòÉΓòÉ
  579.  
  580. The mathematical functions provide for arithmetic, trigonometry, and statistics 
  581. in calculations. 
  582.  
  583. Arithmetic functions 
  584.  
  585. Statistical functions 
  586.  
  587. Trigonometric functions 
  588.  
  589. Precision 
  590.  
  591.  
  592. ΓòÉΓòÉΓòÉ 3.8.1. Arithmetic functions ΓòÉΓòÉΓòÉ
  593.  
  594. The following functions provide arithmetic calculations: 
  595.  
  596. ABS()                   An absolute value 
  597.  
  598. COMPARE()               Comparison of two values (handling NULLs) 
  599.  
  600. DIVIDE()                A quotient (result of a division) 
  601.  
  602. DURATION()              Arithmetic on dates and times 
  603.  
  604. EXP()                   An exponential 
  605.  
  606. FACTORIAL()             A factorial 
  607.  
  608. LOG()                   A logarithm to any base 
  609.  
  610. SQRT()                  A square root 
  611.  
  612. RANDOM()                A pseudo-random positive number 
  613.  
  614.  
  615. ΓòÉΓòÉΓòÉ 3.8.2. Statistical functions ΓòÉΓòÉΓòÉ
  616.  
  617. The following functions provide statistical calculations: 
  618.  
  619. STDEV(), STDSAMP()      Standard deviation for a population 
  620.  
  621. STDEV(), STDSAMP()      Standard deviation for a sample 
  622.  
  623. VARIANCE()              Variance for a population 
  624.  
  625.  
  626. ΓòÉΓòÉΓòÉ 3.8.3. Trigonometric functions ΓòÉΓòÉΓòÉ
  627.  
  628. The following functions provide trigonometric calculations: 
  629.  
  630. ASIN()                  An arcsine (returns radians) 
  631.  
  632. ASIND()                 An arcsine (returns degrees) 
  633.  
  634. ACOS()                  An arccosine (returns radians) 
  635.  
  636. ACOSD()                 An arccosine (returns degrees) 
  637.  
  638. ATAN()                  An arctangent  (returns radians) 
  639.  
  640. ATAND()                 An arctangent  (returns degrees) 
  641.  
  642. COS()                   Cosine of an angle in radians 
  643.  
  644. COSD()                  Cosine of an angle in degrees 
  645.  
  646. DEGREES()               Degrees, converted from radians 
  647.  
  648. RADIANS()               Radians, converted from degrees 
  649.  
  650. SIN()                   Sine of an angle in radians 
  651.  
  652. SIND()                  Sine of an angle in degrees 
  653.  
  654. TAN()                   Tangent of an angle in radians 
  655.  
  656. TAND()                  Tangent of an angle in degrees 
  657.  
  658.  
  659. ΓòÉΓòÉΓòÉ 3.8.4. Precision ΓòÉΓòÉΓòÉ
  660.  
  661. The following functions control precision: 
  662.  
  663. ADJUST()                Adjusts, rounds, or truncates numeric values 
  664.  
  665. PRECISION               Specifies the number of decimal places to which 
  666.                         calculations are carried out 
  667.  
  668.  
  669. ΓòÉΓòÉΓòÉ 3.9. Operators ΓòÉΓòÉΓòÉ
  670.  
  671. The following operators are available: 
  672.  
  673. Monadic operators 
  674.  
  675. Arithmetic operators 
  676.  
  677. Comparisons 
  678.  
  679. Logical operators 
  680.  
  681. String concatenation 
  682.  
  683. Assignments 
  684.  
  685. Order of operations 
  686.  
  687.  
  688. ΓòÉΓòÉΓòÉ 3.9.1. Monadic operators ΓòÉΓòÉΓòÉ
  689.  
  690. These are operators that act on the value immediately following them. They all 
  691. operate on numbers: 
  692.  
  693.  -                      Negative 
  694.  
  695.  \+                     Increment by 1 
  696.  
  697.  \-                     Decrement by 1 
  698.  
  699.  \*                     Double 
  700.  
  701.  \/                     Halve 
  702.  
  703.  \^  or \**             Square 
  704.  
  705.  \                      Logical NOT (return 0 if the operand is nonzero, 
  706.                         otherwise 1) 
  707.  
  708.  ?                      Indirect reference 
  709.  
  710. The  ?  operator uses the value following it to refer indirectly to another 
  711. data item. The operand can be a pointer value created by the POINTER() function 
  712. or the PROCEDURE() function, a character string naming the data item, or an 
  713. expression created by the EVALUATE() function. 
  714.  
  715.  
  716. ΓòÉΓòÉΓòÉ 3.9.2. Arithmetic operators ΓòÉΓòÉΓòÉ
  717.  
  718. These operators combine the value before the operator with the value after it. 
  719. They all act on numbers: 
  720.  
  721.  +                      Add 
  722.  
  723.  -                      Subtract 
  724.  
  725.  *                      Multiply 
  726.  
  727.  /                      Divide 
  728.  
  729.  %                      Percentage 
  730.  
  731.  **  or ^               Raise to a power 
  732.  
  733.  //                     Remainder after division 
  734.  
  735.                         The sign of the remainder is taken from the sign of the 
  736.                         quotient. 
  737.  
  738.  
  739. ΓòÉΓòÉΓòÉ 3.9.3. Comparisons ΓòÉΓòÉΓòÉ
  740.  
  741. These compare the value before the operator with the value after it. They 
  742. return a numeric result of 1 (true), or 0 (false). If either of the values is 
  743. NULL, they return NULL. They act on any data values. 
  744.  
  745. For comparisons that allow NULL values, and for three-way or four-way 
  746. comparisons, see the function COMPARE() . 
  747.  
  748.  <                      Less than 
  749.  
  750.  \<                     Not less than 
  751.  
  752.  <=                     Less than or equal to 
  753.  
  754.  =                      Equal to 
  755.  
  756.  \=                     Not equal to 
  757.  
  758.  >=                     Greater than or equal to 
  759.  
  760.  >                      Greater than 
  761.  
  762.  \>                     Not greater than 
  763.  
  764.  <>                     Not equal to 
  765.  
  766.  ==                     Equal to, and identical in case 
  767.  
  768.  \==                    Not equal to, or not identical in case 
  769.  
  770. The  =  operator is not case sensitive when used with SBCS strings, but is case 
  771. sensitive when used with DBCS strings. SBCS and DBCS representations of the 
  772. same character are considered different. 
  773.  
  774. Comparison operators do not treat trailing SBCS spaces as part of a string, but 
  775. they do treat trailing DBCS spaces as part of a string. 
  776.  
  777.  
  778. ΓòÉΓòÉΓòÉ 3.9.4. Logical operators ΓòÉΓòÉΓòÉ
  779.  
  780. These operators act on logical values, 1 (true) or 0 (false), and return a 
  781. result of 1 (true) or 0 (false). Any nonzero operand is treated as 1 (true). 
  782.  
  783.  &                      AND 
  784.  
  785.  |                      OR 
  786.  
  787.  \                      NOT 
  788.  
  789.  
  790. ΓòÉΓòÉΓòÉ 3.9.5. String concatenation ΓòÉΓòÉΓòÉ
  791.  
  792. This operator joins two strings, making a single string. It has two alternative 
  793. symbols: 
  794.  
  795.  ||  or ~               Concatenate strings 
  796.  
  797.  
  798. ΓòÉΓòÉΓòÉ 3.9.6. Assignments ΓòÉΓòÉΓòÉ
  799.  
  800. Assignment operators assign a value. Most also perform an operation. For 
  801. example: 
  802.  
  803.  
  804. LET x += 6
  805.  
  806. has the same effect as: 
  807.  
  808.  
  809. LET x = x+6
  810.  
  811.  =                      Assign 
  812.  
  813.  +=                     Add to 
  814.  
  815.  -=                     Subtract from 
  816.  
  817.  *=                     Multiply by 
  818.  
  819.  /=                     Divide by 
  820.  
  821.  //=                    Remainder on dividing by 
  822.  
  823.  %=                     Percentage 
  824.  
  825.  &=                     Logical AND with 
  826.  
  827.  |=                     Logical OR with 
  828.  
  829.  ||=  or ~=             Concatenate with 
  830.  
  831.  
  832. ΓòÉΓòÉΓòÉ 3.9.7. Order of operations ΓòÉΓòÉΓòÉ
  833.  
  834. Operators in an expression are evaluated in the following order of precedence: 
  835.  
  836.  **                     Power 
  837.  
  838. *, /, %, //             Multiply, Divide, Percentage, Remainder 
  839.  
  840.  +, -                   Add, Subtract 
  841.  
  842.  ||, ~                  Concatenate 
  843.  
  844.  <, <=, =, ==, >=, >, <>, \=, \==, \<, \>  Compare 
  845.  
  846.  |, &                   Logically combine 
  847.  
  848. Monadic operators are evaluated before any of these. Parentheses can be used to 
  849. override the normal order. 
  850.  
  851.  
  852. ΓòÉΓòÉΓòÉ 3.10. Format values ΓòÉΓòÉΓòÉ
  853.  
  854. These functions return format values that you can use for formatting output to 
  855. files: 
  856.  
  857. SPACE()                 Spaces required 
  858.  
  859. LINE()                  New lines required 
  860.  
  861. PAGE()                  New pages required 
  862.  
  863. POSITION()              Position 
  864.  
  865. TAB()                   Tabs required 
  866.  
  867.  
  868. ΓòÉΓòÉΓòÉ 3.11. Formatting data ΓòÉΓòÉΓòÉ
  869.  
  870. This section lists the formatting symbols that you can use to specify how items 
  871. of data are displayed. There are different sets of formatting symbols for each 
  872. of the data types NUMERIC, DATE, and TIME. 
  873.  
  874. To specify how a variable is displayed, set the value of its FORMAT attribute 
  875. to a string containing the appropriate formatting symbols. The following 
  876. statement, for example, sets the FORMAT attribute of the variable salary  to 
  877. provide a currency sign, a left-justified number that uses a thousands 
  878. separator, and two decimal places: 
  879.  
  880.  
  881. LET salary[0]'FORMAT = "╨½,<2"
  882. ! salary is displayed as ╨½22,400.00 or DM22.400,00
  883.  
  884. In formatting strings, uppercase and lowercase letters have the same effect. 
  885. This section shows letters that represent elements of the data (hours, for 
  886. example) in lowercase, and it shows letters that provide other features in 
  887. uppercase. The tables in this section represent a space character by using the 
  888. symbol for a blank:  . 
  889.  
  890. Formatting NUMERIC data 
  891.  
  892. Formatting dates 
  893.  
  894. Formatting times 
  895.  
  896.  
  897. ΓòÉΓòÉΓòÉ 3.11.1. Formatting NUMERIC data ΓòÉΓòÉΓòÉ
  898.  
  899. This section lists the symbols that you can use to specify how NUMERIC data is 
  900. displayed. 
  901.  
  902. A formatting string for NUMERIC data must contain a justification symbol such 
  903. as  <  to represent a left-justified number or a  >  to represent a 
  904. right-justified number. You can include other symbols from the following 
  905. tables. Use them in the order that they are given in the tables. 
  906.  
  907. There are four ways to indicate the sign of a number: leading  +  and -  signs, 
  908. trailing  +  and -  signs, parentheses for negatives, or  CR and DB. You can 
  909. include symbols to indicate the sign of a number in only one of these four 
  910. ways. So, for example, you can use CR  on its own or together with DB, but you 
  911. cannot use DB  to indicate positives together with parentheses to indicate 
  912. negatives. 
  913.  
  914. There are three special ways to represent the number zero: as a space, as a 0, 
  915. or as a dash. You can include symbols to represent zero in only one of these 
  916. ways. 
  917.  
  918. The default format provides a leading minus sign to indicate a negative number, 
  919. and a number of decimal places that is defined by the PLACES attribute of the 
  920. PROFILE object. If the number of decimal places is 2, for example, the default 
  921. format corresponds to the formatting string  -<2. 
  922.  
  923. These are the symbols that you can use in formatting strings for numbers: 
  924. frame=rules rules=none expand. 
  925.  
  926.  +                      A leading plus sign for positive numbers. This 
  927.                         suppresses the default minus sign for negative numbers. 
  928.  
  929.  -                      A leading minus sign for negative numbers. This is the 
  930.                         default. When used with  +, it restores the minus sign 
  931.                         for negative numbers. 
  932.  
  933.  ╨½                      A leading currency sign. This is specified by ╨½, but 
  934.                         displayed as the symbol contained in the CURRENCY 
  935.                         attribute of the PROFILE object. 
  936.  
  937.  ,                      Thousand separators. This is specified by the comma 
  938.                         symbol, but displayed as the symbol contained in the 
  939.                         THOUSEPAR attribute of the PROFILE object. 
  940.  
  941.  ( )                    Parentheses around negative numbers. 
  942.  
  943.  <                      The number, left justified. This symbol, or another 
  944.                         justification symbol such as  >, must be present. 
  945.  
  946. 0 - 9                   Zero through nine decimal places. The decimal point is 
  947.                         displayed as the symbol contained in the DECSEPAR 
  948.                         attribute of the PROFILE object. 
  949.  
  950.                        Spaces in place of the decimal point and all the 
  951.                         figures after it. 
  952.  
  953.  +                      A trailing plus sign for positive numbers. 
  954.  
  955.  -                      A trailing minus sign for negative numbers. 
  956.  
  957. DB                      A trailing debit sign DB  for positive numbers. 
  958.  
  959. CR                      A trailing credit sign CR  for negative numbers. 
  960.  
  961.  )                      Parentheses around negative numbers. 
  962.  
  963.  /                      A space to represent the number zero. 
  964.  
  965.  /0                     A zero (with no decimal point or decimal places) to 
  966.                         represent the number zero. 
  967.  
  968.  /-                     A dash to represent the number zero. 
  969.  
  970. Here are some more examples of numeric formats: 
  971.  
  972. This format             Provides numbers like this: 
  973.  <3                     -1.262  0.000  3.434 
  974.  +-<1                   -1┬╖3   0┬╖0   +3┬╖4 
  975.  (╨½<)                   (╨½1.26) ╨½0┬╖00  ╨½3┬╖43 
  976.  <0cr/-                 1CR   -    3 
  977.  
  978.  
  979. ΓòÉΓòÉΓòÉ 3.11.2. Formatting dates ΓòÉΓòÉΓòÉ
  980.  
  981. This section lists the symbols that you can use to specify how DATE data is 
  982. displayed. 
  983.  
  984. Dates can contain any of these four elements: period in the day (0-47), day, 
  985. month, year. These are indicated in the formatting string by the letters  p 
  986. for period, d  for day,  m  for month, and y  for year. 
  987.  
  988. A date format must include the month, except for these two special formats: 
  989.  
  990. d y       The day number (0-366) in the year, together with the year 
  991. y         The year alone. 
  992.  
  993. The elements of a date format must be in the order period, day, month, year, 
  994. except for these three special formats: 
  995.  
  996. y m d     For year, month, day 
  997. m d       For month, day 
  998. m d y     For month, day, year. 
  999.  
  1000. The default format is defined by the DATEFORMAT attribute of the PROFILE 
  1001. object. It might, for example, correspond to the formatting string  C d-m-yy, 
  1002. to provide dates that look like:  31-1-91. 
  1003.  
  1004. You can include the following characters in the formatting string for a date, 
  1005. in order to modify the format provided:     frame=rules rules=none expand. 
  1006.  
  1007.   . / -                A separator character between the elements. If none of 
  1008.                         these symbols is present, then the elements of the date 
  1009.                         are not separated, and have leading zeros when less 
  1010.                         than 10. 
  1011.  
  1012. C                       Two digits for period, day, and month elements, with a 
  1013.                         leading space when an element is less than 10. If the 
  1014.                         symbol C  is not present then leading spaces are 
  1015.                         suppressed from period, day, and month elements that 
  1016.                         are less than 10. 
  1017.  
  1018. yy                      Two digits for the year element, with a leading zero if 
  1019.                         necessary (2006, for example, is shown as 06 ). If the 
  1020.                         year element is specified as y, or as yyyy, then the 
  1021.                         year is shown as four digits. 
  1022.  
  1023. 0                       Leading zeros for elements that are less than 10. 
  1024.  
  1025. N                       The name of the day or month. 
  1026.  
  1027.                          Nd  provides the name of the day together with the day 
  1028.                         number.  Nm  provides the name of the month without the 
  1029.                         month number. 
  1030.  
  1031.                         The symbol N  can only appear in these positions 
  1032.                         (immediately before d  or m ). It can appear in both 
  1033.                         positions to provide the name of the day, the day 
  1034.                         number, and the name of the month. 
  1035.  
  1036.                         When N  appears, then the date separator character is 
  1037.                         suppressed. Numeric elements are then separated by 
  1038.                         spaces. 
  1039.  
  1040.                         The default day and month names are three-letter 
  1041.                         abbreviations. 
  1042.  
  1043. r                       Roman numerals for the month 
  1044.  
  1045. mm                      Full day and month names. 
  1046.  
  1047.                         If N  is not used in the formatting string, then  mm 
  1048.                         has the same effect as C. 
  1049.  
  1050. th                      An ordinal day number ( 31st, for example). 
  1051.  
  1052. S                       DBCS characters for days, day names, months, and years. 
  1053.  
  1054. ee                      DBCS short era name and year ( Hei 2, for example). 
  1055.  
  1056. eeee                    DBCS full era name and year ( Heisei 2, for example). 
  1057.  
  1058. Here are some more examples of date formats: 
  1059.  
  1060. This format             Provides dates like this: 
  1061. d y                     031-1991 
  1062.  d-m-y                  31-1-1991 
  1063. dmyy                    310191 
  1064. mmNdy                   Thursday 1 31 1991 
  1065.  
  1066. The example below shows how to change date formats 
  1067.  
  1068.  
  1069. ! salarydate has a data type of DATE and its date format
  1070. ! is "YYYY-0M-0D". The current value is the date 1993-04-28.
  1071. ! Use DATEFORMAT to change the format
  1072. LET salarydate[0]'DATEFORMAT="d-m-y"
  1073. ! salarydate will now be displayed as  28-4-1993
  1074.  
  1075.  
  1076. LET salarydate[0]'DATEFORMAT="NdNmy"
  1077. ! salarydate will now be displayed as  Wed 28 Apr 1993
  1078.  
  1079.  
  1080. ΓòÉΓòÉΓòÉ 3.11.3. Formatting times ΓòÉΓòÉΓòÉ
  1081.  
  1082. This section lists the symbols that you can use to specify how TIME data is 
  1083. displayed. 
  1084.  
  1085. Times can contain any of these four elements: hours, minutes, seconds, 
  1086. centiseconds. These are indicated in the formatting string by the letters  h 
  1087. for hours, m  for minutes,  s  for seconds, and c  for centiseconds. 
  1088.  
  1089. A time format must include at least two elements, and one of its elements must 
  1090. be minutes. 
  1091.  
  1092. The elements of a time format must be in the order hours, minutes, seconds, 
  1093. centiseconds. 
  1094.  
  1095. The default format is defined by the TIMEFORMAT attribute of the PROFILE 
  1096. object. It might, for example, correspond to the formatting string  hh:mm A, to 
  1097. provide times that look like: 
  1098.  
  1099.  
  1100. 08:56 P.M.
  1101.  
  1102. You can include the following characters in the formatting string for a time, 
  1103. in order to modify the format provided:     frame=rules rules=none expand. 
  1104.  
  1105.   , . :                Separators between the elements. The separator between 
  1106.                         hours, minutes, and seconds is defined by the TIMESEPAR 
  1107.                         attribute of the PROFILE object. The separator between 
  1108.                         seconds and centiseconds is a decimal point (defined by 
  1109.                         the DECSEPAR attribute of the PROFILE object). (The  
  1110.                         symbol indicates a blank space.) 
  1111.  
  1112.                         When there are separators between the elements, then 
  1113.                         the first element has a leading space if is less than 
  1114.                         10. 
  1115.  
  1116. mm                      A leading zero for the minutes element if it is less 
  1117.                         than 10. (This is the default unless minutes is the 
  1118.                         first element and a separator is in use.) 
  1119.  
  1120. hh mm                   A leading zero for the hours element if it is less than 
  1121.                         10. (This is the default unless hours is the first 
  1122.                         element and a separator is in use.)  hh must be used 
  1123.                         together with mm. 
  1124.  
  1125. Here are some more examples of time formats: 
  1126.  
  1127. This format             Provides times like this: 
  1128.  h m s                  20:56:30 
  1129. hma                     0856 P┬╖M┬╖ 
  1130.  h m a                   8:56 P┬╖M┬╖ 
  1131.  hh mm a                08:56 P┬╖M┬╖ 
  1132.  
  1133. The example below shows how to change time formats for displaying data. 
  1134.  
  1135.  
  1136. ! starttime has a data type of TIME and its timeformat
  1137. ! is "HH:MM:SS". The current value is the time 08:30:25
  1138. ! Use TIMEFORMAT to change the format
  1139. LET starttime[0]'TIMEFORMAT="h m a"
  1140. ! starttime will now be displayed as  8:30 A.M.
  1141.  
  1142.  
  1143. ΓòÉΓòÉΓòÉ 4. Objects and attributes ΓòÉΓòÉΓòÉ
  1144.  
  1145. This chapter contains a summary of the built-in objects which you can use for 
  1146. displaying information. For a table of the attributes of objects and data that 
  1147. can be modified by ASL, see . (Attributes that are set on OPEN then read-only 
  1148. are marked as such in the reference section.) 
  1149.  
  1150. Managing objects 
  1151.  
  1152. Summary of objects 
  1153.  
  1154. Data attributes 
  1155.  
  1156. Colors and color codes 
  1157.  
  1158. Patterns and pattern codes 
  1159.  
  1160.  
  1161. ΓòÉΓòÉΓòÉ 4.1. Managing objects ΓòÉΓòÉΓòÉ
  1162.  
  1163. These statements act on objects: 
  1164.  
  1165. Statement               Action 
  1166.  
  1167. CALL                    Calls an object action 
  1168.  
  1169. LET                     Changes one of an object's attributes 
  1170.  
  1171. MODIFY                  Allows several of an object's attributes to be changed 
  1172.                         at the same time 
  1173.  
  1174. OPEN                    Creates an instance of an object from an object class 
  1175.  
  1176. SHUT                    Closes an instance of an object 
  1177.  
  1178. See also . 
  1179.  
  1180.  
  1181. ΓòÉΓòÉΓòÉ 4.2. Summary of objects ΓòÉΓòÉΓòÉ
  1182.  
  1183. Display objects 
  1184.  
  1185. Window control objects 
  1186.  
  1187. Graphic primitive objects 
  1188.  
  1189. Objects for accessing data 
  1190.  
  1191. External objects 
  1192.  
  1193.  
  1194. ΓòÉΓòÉΓòÉ 4.2.1. Display objects ΓòÉΓòÉΓòÉ
  1195.  
  1196. These objects are used in displaying information to end users: 
  1197.  
  1198. Object                  Description 
  1199.  
  1200. DEFINE                  An object that is used as the parent object for 
  1201.                         graphics primitives (shapes, for example) 
  1202.  
  1203. FILEDLG                 The Presentation Manager(*) File dialog 
  1204.  
  1205. FOLDER                  A folder like an OS/2 Workplace Shell(*) folder. 
  1206.  
  1207. GRAPHIC                 An area in a window that you can use to display 
  1208.                         graphics 
  1209.  
  1210. IBMCHART                Application programming interface to Chart objects 
  1211.  
  1212. IBMSQLSTATEMENT         Application programming interface to SQL statement 
  1213.                         objects 
  1214.  
  1215. IBMSQLTABLE             Application programming interface to Data viewer 
  1216.                         objects 
  1217.  
  1218. IBMREPORT               Application programming interface to Report objects 
  1219.  
  1220. IBMTABLE                Application programming interface to Table Editor 
  1221.                         objects 
  1222.  
  1223. VIEWPORT                Used to display graphics metafiles 
  1224.  
  1225. WINDOW                  A window 
  1226.  
  1227.  
  1228. ΓòÉΓòÉΓòÉ 4.2.2. Window control objects ΓòÉΓòÉΓòÉ
  1229.  
  1230. These are the window control objects: 
  1231.  
  1232. Object                  Control 
  1233.  
  1234. CHECK                   Check box, to offer the user an on-off choice 
  1235.  
  1236. DROPENTRY               Drop-down entry field-a single-line edit combined with 
  1237.                         a selection list 
  1238.  
  1239. DROPLIST                A selection list. 
  1240.  
  1241. ENTRY                   Entry field (for multiline data entry) 
  1242.  
  1243. GROUP                   Frame, with or without a title 
  1244.  
  1245. LIST                    List box, for data in tabular form 
  1246.  
  1247. PUSH                    Push button, to initiate an action 
  1248.  
  1249. RADIO                   Radio button, for a multiple choice 
  1250.  
  1251. SLE                     Single-line edit field 
  1252.  
  1253. SCROLL                  Scroll bar (horizontal or vertical) 
  1254.  
  1255. TBAR                    Tool bar 
  1256.  
  1257. TEXT                    Box containing a static text string 
  1258.  
  1259. VALUE                   Value set, for a multiple choice, using text or bit 
  1260.                         maps to display the choices 
  1261.  
  1262.  
  1263. ΓòÉΓòÉΓòÉ 4.2.3. Graphic primitive objects ΓòÉΓòÉΓòÉ
  1264.  
  1265. These are the graphic primitives that can be opened on a graphic area: 
  1266.  
  1267. Object                  Provides 
  1268.  
  1269. AREA                    Area in a graphic box 
  1270.  
  1271. ARC                     Arc of a circle or ellipse 
  1272.  
  1273. ARCPOINTS               Arc of a circle or ellipse 
  1274.  
  1275. BITMAP                  Bit map 
  1276.  
  1277. CIRCLE                  Circle 
  1278.  
  1279. CURVE                   Curve 
  1280.  
  1281. DEFINE                  A graphics object 
  1282.  
  1283. ELLIPSE                 Ellipse 
  1284.  
  1285. LINE                    Line or lines 
  1286.  
  1287. OBJECT                  A group of graphic primitives 
  1288.  
  1289. OUTLINE                 Open irregular polygon 
  1290.  
  1291. POINT                   Marker symbol (or succession of marker symbols) 
  1292.  
  1293. POLYGON                 Regular polygon 
  1294.  
  1295. RECTANGLE               Rectangle 
  1296.  
  1297. SECTOR                  Sector of circle 
  1298.  
  1299. STRING                  Text string 
  1300.  
  1301.  
  1302. ΓòÉΓòÉΓòÉ 4.2.4. Objects for accessing data ΓòÉΓòÉΓòÉ
  1303.  
  1304. These objects provide access to data: 
  1305.  
  1306. Object                  Accesses 
  1307.  
  1308. AS                      AS data and specification tables on a host system (for 
  1309.                         example, a System/370(*) mainframe) 
  1310.  
  1311. AS400SESSION            Databases on AS/400(*) 
  1312.  
  1313. AS400TRANS              Tables in a database on AS/400 
  1314.  
  1315. DATASESSION             Databases in general 
  1316.  
  1317. DATATRANS               Tables in a database 
  1318.  
  1319. HLLAPI                  Host computer systems 
  1320.  
  1321. IBMDATA                 Table manipulation and access object 
  1322.  
  1323. OBJECTSTORE             Data, windows, menus and programs 
  1324.  
  1325. SQLSESSION              SQL databases, to: 
  1326.  
  1327.    o Enquire what databases are available 
  1328.    o Access a database 
  1329.    o Enquire what tables and views exist 
  1330.    o Control SQL Logical Units of Work 
  1331.    o Use commands executable by the IMMEDIATE command of the DBM 
  1332.  
  1333. SQLTRANS                Tables in SQL databases 
  1334.  
  1335. SOURCECTRL              Used with direct manipulation (drag/drop) 
  1336.  
  1337. TABLE                   User data tables 
  1338.  
  1339. TARGETCTRL              Used with direct manipulation (drag/drop) 
  1340.  
  1341. VIEWCALCS               Calculated columns in tables 
  1342.  
  1343. VIEWORDER               Ordered row interface and index to tables 
  1344.  
  1345. VIEWROWS                Multiple row interface to tables 
  1346.  
  1347. VIEWTABLES              Table access and display object 
  1348.  
  1349.  
  1350. ΓòÉΓòÉΓòÉ 4.2.5. External objects ΓòÉΓòÉΓòÉ
  1351.  
  1352. These objects provide access to external resources: 
  1353.  
  1354. Object                  Accesses 
  1355.  
  1356. CLIPBOARD               The OS/2 clipboard 
  1357.  
  1358. DDECLIENT               The DDE object for client communication 
  1359.  
  1360. DDESERVER               The DDE object for server communication 
  1361.  
  1362. FILE                    OS/2 files 
  1363.  
  1364. HELP                    The IBM Information Presentation Facility 
  1365.  
  1366. HLLAPI                  A host system using terminal or workstation emulation 
  1367.                         features 
  1368.  
  1369. LINK                    The clipboard and DDE 
  1370.  
  1371. MAIL                    A mail system that supports the simple messaging 
  1372.                         interface (SMI) functions of the vendor-independent 
  1373.                         messaging (VIM) specification 
  1374.  
  1375. MMFILE                  Multimedia files 
  1376.  
  1377. PRINTER                 Printers 
  1378.  
  1379. PROFILE                 Properties of Visualizer and OS/2 (such as the current 
  1380.                         date and time) 
  1381.  
  1382. SEND                    A mail system that supports the simple messaging 
  1383.                         interface (SMI) functions of the vendor-independent 
  1384.                         messaging (VIM) specification 
  1385.  
  1386. SMEMORY SFILE           These objects provide consistent input and output 
  1387.                         facilities (a stream) for memory and files. The objects 
  1388.                         are used with Drag/Drop, DDE, and clipboard objects. 
  1389.                         (also referred to as STREAM) 
  1390.  
  1391. SOURCECTRL              This object is used to define data rendering formats 
  1392.                         for drag/drop operations 
  1393.  
  1394. SYSTEM                  OS/2 commands, directories and files 
  1395.  
  1396. TARGETCTRL              This object defines acceptable objects and data formats 
  1397.                         for dropping (using drag/drop operations). 
  1398.  
  1399. TIMER                   Timer with programmable alarms (TIMER events) 
  1400.  
  1401.  
  1402. ΓòÉΓòÉΓòÉ 4.3. Data attributes ΓòÉΓòÉΓòÉ
  1403.  
  1404. CLASS attribute 
  1405.  
  1406. PARENT attribute 
  1407.  
  1408. Dictionary attributes 
  1409.  
  1410. Element attributes 
  1411.  
  1412.  
  1413. ΓòÉΓòÉΓòÉ 4.3.1. CLASS attribute ΓòÉΓòÉΓòÉ
  1414.  
  1415. Every open object has a read-only CLASS attribute, which provides the name of 
  1416. the object class of the object. For instance: 
  1417.  
  1418.  
  1419. OPEN SYSTEM sys
  1420. c = sys'CLASS      /* c is set to "SYSTEM" */
  1421.  
  1422. If the CLASS attribute is applied to a variable which is not an open object, a 
  1423. NULL value is returned. 
  1424.  
  1425.  
  1426. ΓòÉΓòÉΓòÉ 4.3.2. PARENT attribute ΓòÉΓòÉΓòÉ
  1427.  
  1428. Every open object has a read-only PARENT attribute, which provides a pointer to 
  1429. its parent object, if it has one. For example: 
  1430.  
  1431.  
  1432. OPEN WINDOW MyWin, ...
  1433. OPEN PUSH MyPush, MyWin, ...
  1434. LET p = MyPush'PARENT        ! p is a pointer to MyWin
  1435.  
  1436. The PARENT attribute is NULL for an object with no parent, or for a variable 
  1437. that is not an open object. 
  1438.  
  1439.  
  1440. ΓòÉΓòÉΓòÉ 4.3.3. Dictionary attributes ΓòÉΓòÉΓòÉ
  1441.  
  1442. Every variable has Dictionary attributes, which apply to all of its elements. 
  1443. You can refer to a variable's dictionary as element zero, like this: 
  1444.  
  1445.  
  1446. LET myrec[0]'TYPE="CHAR"
  1447.  
  1448. These are the Dictionary attributes that you can read and modify: 
  1449.  
  1450. Read/write attribute    Meaning 
  1451.  
  1452. TYPE                    The type of data in the variable. 
  1453.  
  1454.    NUMERIC     Integer, decimal, or floating point 
  1455.  
  1456.    CHARACTER   ASCII string 
  1457.  
  1458.    DATE        Years, months, days, and periods 
  1459.  
  1460.    TIME        Hours, minutes, seconds, and hundredths of a second 
  1461.  
  1462.    FORMAT      A formatting string 
  1463.  
  1464.    POINTER     Value created by the POINTER() function to provide indirect 
  1465.                access to a variable 
  1466.  
  1467.    NULL        No data type set 
  1468.  
  1469.    GRAPHIC     DBCS string 
  1470.  
  1471. COLOR                   Color. See  for details of colors. 
  1472.  
  1473. FORMAT                  Format specification for NUMERIC values. (See .) 
  1474.  
  1475. DATEFORMAT              Format specification for DATE values. 
  1476.  
  1477. ORDER                   Scalar indicating the relative column order in a table. 
  1478.                         The default is 0 which gives alphabetical ordering. If 
  1479.                         two or more columns have the same numbering, they are 
  1480.                         ordered alphabetically. 
  1481.  
  1482. TIMEFORMAT              Format specification for TIME values. 
  1483.  
  1484. WIDTH                   Display width of a column. 
  1485.  
  1486. These are the Dictionary attributes that you can only read: 
  1487.  
  1488. Read-only attribute     Meaning 
  1489.  
  1490. ENTRIES                 The number of elements in an array 
  1491.  
  1492. TABLE                   1 if the variable is a column of a table. 
  1493.  
  1494. KEY                     The key position if the variable is a key column of a 
  1495.                         table. 
  1496.  
  1497. MODDATE                 The date when the variable was last modified. Recorded 
  1498.                         only when a task ends. 
  1499.  
  1500. MODTIME                 The time when the variable was last modified. 
  1501.  
  1502. DIMENSIONS              One of: 
  1503.  
  1504.    0   Scalar 
  1505.    1   One-dimensional array 
  1506.    2   Two-dimensional array. 
  1507.  
  1508. LIFE                    When the variable is deleted: 
  1509.  
  1510.    TASK      Deleted when the current task ends 
  1511.    SESSION   Deleted when the session ends 
  1512.    KEPT      Kept permanently in an objectstore. 
  1513.  
  1514. ACTIVE                  1 if the variable is in use in another program. 
  1515.  
  1516. MULTS                   The total number of elements in one row of a 
  1517.                         two-dimensional array. 
  1518.  
  1519.  
  1520. ΓòÉΓòÉΓòÉ 4.3.4. Element attributes ΓòÉΓòÉΓòÉ
  1521.  
  1522. Every element has Element attributes. You can read and modify all element 
  1523. attributes except TYPE, which you can only read. 
  1524.  
  1525. Element attribute       Meaning 
  1526.  
  1527. TYPE                    The data type of the element. 
  1528.  
  1529. COLOR                   Color. 
  1530.  
  1531. FORMAT                  Format specification for NUMERIC values. 
  1532.  
  1533. DATEFORMAT              Format specification for DATE values. 
  1534.  
  1535. TIMEFORMAT              Format specification for TIME values. 
  1536.  
  1537. COUNT                   Repeat count (for FORMAT values). 
  1538.  
  1539. ELEMENT                 Element number (for POINTER values). 
  1540.  
  1541.  
  1542. ΓòÉΓòÉΓòÉ 4.4. Colors and color codes ΓòÉΓòÉΓòÉ
  1543.  
  1544. The following colors are available. Each can be entered either as a string, or 
  1545. as a code number. 
  1546.  
  1547. Color       Code and string 
  1548. Invisible    1 Invisible 
  1549. Black        2 Black 
  1550. Blue         3 Blue 
  1551. Green        4 Green 
  1552. Cyan         5 Cyan 
  1553. Red          6 Red 
  1554. Magenta      7 Magenta 
  1555. Brown        8 Brown 
  1556. White        9 White 
  1557. Gray        10 Gray 
  1558. Light blue  11 Lblue 
  1559. Light green 12 Lgreen 
  1560. Light cyan  13 Lcyan 
  1561. Light red   14 Lred 
  1562. Light magenta 15 Lmagenta 
  1563. Yellow      16 Yellow 
  1564. Bright white 17 Hiwhite 
  1565. Default dialog 18 
  1566. Default window 19 
  1567.  
  1568. The color Invisible provides the same color as the window background color. 
  1569.  
  1570. Color names can be entered in lowercase, uppercase, or any combination of the 
  1571. two. 
  1572.  
  1573.  
  1574. ΓòÉΓòÉΓòÉ 4.5. Patterns and pattern codes ΓòÉΓòÉΓòÉ
  1575.  
  1576. To specify a pattern, use a number in the range 0 - 15. The available patterns 
  1577. typically look like this: 
  1578.  
  1579.  
  1580. ΓòÉΓòÉΓòÉ 5. System variables ΓòÉΓòÉΓòÉ
  1581.  
  1582. The following variables are set by the system on entry to appropriate event 
  1583. blocks. 
  1584.  
  1585. A┬╖System┬╖Application            CHAR 
  1586.  
  1587.                                 A┬╖System┬╖Program, A┬╖System┬╖Master, and 
  1588.                                 A┬╖System┬╖Application are the task handles of 
  1589.                                 the program task that signaled the current 
  1590.                                 event, its master task, and its application 
  1591.                                 task, respectively. 
  1592.  
  1593. A┬╖System┬╖BoxNumber              NUMERIC 
  1594.  
  1595.                                 The selected element, for example a clone or 
  1596.                                 row or item within a set. 
  1597.  
  1598.                                 If several items are selected, only the first 
  1599.                                 choice is indicated. 
  1600.  
  1601. A┬╖System┬╖BoxValue               CHAR 
  1602.  
  1603.                                 The new value in an editable field. 
  1604.  
  1605. A┬╖System┬╖DataPosition           NUMERIC 
  1606.  
  1607.                                 The character position of the cursor within an 
  1608.                                 entry field. 
  1609.  
  1610. A┬╖System┬╖ErrorLine              NUMERIC 
  1611.  
  1612.                                 The line number in the main source file where 
  1613.                                 the last error occurred. If the error occurred 
  1614.                                 in an included file, this is the line number of 
  1615.                                 the @INCLUDE directive. 
  1616.  
  1617. A┬╖System┬╖ErrorModule            CHAR 
  1618.  
  1619.                                 Name of module where last error occurred 
  1620.  
  1621. A┬╖System┬╖ErrorInfo              CHAR 
  1622.  
  1623.                                 A vector of error information corresponding to 
  1624.                                 message numbers in A.System.ErrorNumber 
  1625.  
  1626. A┬╖System┬╖ErrorNumber            CHAR 
  1627.  
  1628.                                 A vector of error numbers for the last error 
  1629.  
  1630. A┬╖System┬╖Event                  CHAR 
  1631.  
  1632.                                 The current event name 
  1633.  
  1634. A┬╖System┬╖Master                 CHAR 
  1635.  
  1636.                                 A┬╖System┬╖Master is the task handle of the 
  1637.                                 master task that started the program task that 
  1638.                                 signaled the current event. 
  1639.  
  1640. A┬╖System┬╖Operation              CHAR 
  1641.  
  1642.                                 The last window sizing operation, or control 
  1643.                                 sizing operation, or direct manipulation 
  1644.                                 operation. The window sizing operations are 
  1645.                                 MIN, MAX, NORM, SIZE, and AUTOSELECT. The 
  1646.                                 control sizing operations are MOVE and SIZE. 
  1647.                                 The direct manipulation operations are MOVE, 
  1648.                                 SIZE, COPY, and AUTOREFRESH. 
  1649.  
  1650. A┬╖System┬╖Object                 POINTER 
  1651.  
  1652.                                 Pointer to the object that signaled the current 
  1653.                                 event. 
  1654.  
  1655. A┬╖System┬╖Parent                 POINTER 
  1656.  
  1657.                                 On entry to the ON START block of an ASL object 
  1658.                                 handler, this is a pointer to the parent 
  1659.                                 object. 
  1660.  
  1661. A┬╖System┬╖PositionX              NUMERIC 
  1662.  
  1663.                                 The X position where selection took place. 
  1664.                                 Units relate to the object: world co-ordinates 
  1665.                                 for graphics, dialog units for windows. 
  1666.  
  1667. A┬╖System┬╖PositionY              NUMERIC 
  1668.  
  1669.                                 The Y position where selection took place. Same 
  1670.                                 units as PositionX. 
  1671.  
  1672. A┬╖System┬╖Program                CHAR 
  1673.  
  1674.                                 A┬╖System┬╖Program is the task handle of the 
  1675.                                 program task that signaled the current event. 
  1676.  
  1677. A┬╖System┬╖Return                 UNTYPED 
  1678.  
  1679.                                 RETURN value from an event block invoked 
  1680.                                 directly with RUN PROGRAM. 
  1681.  
  1682. A┬╖System┬╖Scroll                 CHAR 
  1683.  
  1684.                                 Single character indicator of scroll direction. 
  1685.                                 One of L, R, U, D, H, or V. 
  1686.  
  1687. A┬╖System┬╖ScrollAmt              NUMERIC 
  1688.  
  1689.                                 Amount scrolled, 0 for one line. 1 for one 
  1690.                                 page. Other values indicate the slider position 
  1691.                                 on the slider scale. 
  1692.  
  1693. A┬╖System┬╖StartDS                - 
  1694.  
  1695.                                 The application objectstore object handle. The 
  1696.                                 location attribute  A┬╖System┬╖StartDS'LOCATION 
  1697.                                 is the startup location of the application. 
  1698.  
  1699. A┬╖System┬╖ThisApp                CHAR 
  1700.  
  1701.                                 Task handle of the current task's application 
  1702.                                 task. 
  1703.  
  1704. A┬╖System┬╖ThisTask               CHAR 
  1705.  
  1706.                                 Task handle of the current task. 
  1707.  
  1708. S┬╖Control┬╖Path                  CHAR 
  1709.  
  1710.                                 Location of the Visualizer system files. 
  1711.  
  1712.                                 S┬╖Control┬╖Path is equivalent to the following 
  1713.                                 code: 
  1714.  
  1715.  
  1716.                                                                 OPEN SYSTEM System
  1717.                                                                 LET S.Control.Path = System'SEARCHPATH('USERLIB.A95')
  1718.  
  1719. S┬╖System┬╖Trace                  CHAR 
  1720.  
  1721.                                 Vector containing current trace output (if 
  1722.                                 trace is on). 
  1723.  
  1724. See  for additional information on properties of the Visualizer Development and 
  1725. OS/2 environments (date, date format, time, currency symbol, and language for 
  1726. example). 
  1727.  
  1728.  
  1729. ΓòÉΓòÉΓòÉ 6. Compilation ΓòÉΓòÉΓòÉ
  1730.  
  1731. The ASL compiler includes a preprocessor, which manipulates the text of a 
  1732. program before compilation. The preprocessor allows you to compile sections of 
  1733. the program only if certain conditions are met, substitute constant values 
  1734. during compilation, and include the contents of other files. This makes it 
  1735. possible to maintain a single set of source files for applications that have a 
  1736. large proportion of common code. 
  1737.  
  1738. You control the preprocessor using preprocessor directives, which all begin 
  1739. with the @ character. These directives can occur anywhere in the program, 
  1740. provided the @ is the first non-blank character on the line. The directives 
  1741. are: 
  1742.  
  1743. @ASSERT 
  1744.  
  1745. @GLOBAL 
  1746.  
  1747. @IF ... @THEN ... @ELSE ... @END 
  1748.  
  1749. @INCLUDE 
  1750.  
  1751. The preprocessor works in the same way regardless of whether you use the 
  1752. Program editor, the Make editor, or the FTBCMP command to compile. (For an 
  1753. example of using the FTBCMP command, see the FTBCOMP.CMD in the FTB1PATH 
  1754. location.) 
  1755.  
  1756. Preprocessor expressions 
  1757.  
  1758.  
  1759. ΓòÉΓòÉΓòÉ 6.1. Preprocessor expressions ΓòÉΓòÉΓòÉ
  1760.  
  1761. Conditional compilation requires global values, which are assigned to global 
  1762. variables using the @GLOBAL directive or the  -@  parameter of FTBCMP. The 
  1763. names of global variables used in preprocessor directives take the form 
  1764. @variable. For example, a global variable for a version number might be named 
  1765. @Version. It can be set like this: 
  1766.  
  1767. @GLOBAL @Version = 3
  1768. and tested like this: 
  1769.  
  1770. @IF @Version > 2
  1771.  
  1772. The expression following @IF in the preceding example is a preprocessor 
  1773. expression. A preprocessor expression can contain global variables prefixed 
  1774. by @, constants, operators, and functions. There are more examples of 
  1775. preprocessor expressions in the descriptions of the directives. 
  1776.  
  1777. Global variables prefixed by @ can be used anywhere that a constant is allowed, 
  1778. not just in preprocessor directives. For example: 
  1779.  
  1780. DECLARE NUMERIC version = @Version
  1781. ERROR 1,"Welcome to Tympani Simulator version _", @Version
  1782.  
  1783. LET id = @Version + @Release
  1784.  
  1785. IF @Version = 2
  1786.  
  1787. Note that the values of the variables at compilation time are substituted for 
  1788. the references. If a global value is not set, NULL is used. 
  1789.  
  1790.  
  1791. ΓòÉΓòÉΓòÉ 6.1.1. @ASSERT ΓòÉΓòÉΓòÉ
  1792.  
  1793. The @ASSERT directive evaluates a preprocessor expression and produces a 
  1794. compilation error if the result is false (zero) or NULL. @ASSERT can be used to 
  1795. test whether required global variables have been set or whether the supplied 
  1796. values are valid. 
  1797.  
  1798.  
  1799. ΓòÉΓòÉΓòÉ 6.1.1.1. Format ΓòÉΓòÉΓòÉ
  1800.  
  1801. ΓöÇΓöÇ@ASSERTΓöÇΓöÇexpressionΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  1802.  
  1803. where: 
  1804.  
  1805. expression      is a preprocessor expression. 
  1806.  
  1807.  
  1808. ΓòÉΓòÉΓòÉ 6.1.1.2. Examples ΓòÉΓòÉΓòÉ
  1809.  
  1810. @GLOBAL @Version = 3
  1811. ...
  1812. @ASSERT @Version              ! No compilation error
  1813.  
  1814. @ASSERT DEFINED(@Daily) + DEFINED(@Monthly) + DEFINED(@Yearly) = 1
  1815.                               ! One and only one of these variables
  1816.                               ! must be defined to avoid an error
  1817.  
  1818.  
  1819. ΓòÉΓòÉΓòÉ 6.1.2. @GLOBAL ΓòÉΓòÉΓòÉ
  1820.  
  1821. The @GLOBAL directive sets a global variable. 
  1822.  
  1823.  
  1824. ΓòÉΓòÉΓòÉ 6.1.2.1. Format ΓòÉΓòÉΓòÉ
  1825.  
  1826. ΓöÇΓöÇ@GLOBALΓöÇΓöÇ@variableΓöÇΓöÇ = ΓöÇΓöÇexpressionΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  1827.  
  1828. where: 
  1829.  
  1830.  @variable      is the name of a global variable. 
  1831.  
  1832. expression      is a preprocessor expression. The global variable is set to the 
  1833.                 value of this expression. 
  1834.  
  1835.  
  1836. ΓòÉΓòÉΓòÉ 6.1.2.2. Comments ΓòÉΓòÉΓòÉ
  1837.  
  1838. Use @GLOBAL only once for each global variable, and put all @GLOBAL directives 
  1839. before any ASL code. Changing the value of an existing global variable may 
  1840. produce unpredictable results. Global values can also be set using the  -@ 
  1841. parameter of FTBCMP. 
  1842.  
  1843.  
  1844. ΓòÉΓòÉΓòÉ 6.1.2.3. Examples ΓòÉΓòÉΓòÉ
  1845.  
  1846. @GLOBAL @Version = 3
  1847. @GLOBAL @Yes = 1
  1848. @GLOBAL @No = \@Yes
  1849.  
  1850.  
  1851. ΓòÉΓòÉΓòÉ 6.1.3. @IF ... @THEN ... @ELSE ... @END ΓòÉΓòÉΓòÉ
  1852.  
  1853. The @IF directive, together with the @THEN, @ELSE, and @END directives, 
  1854. controls the inclusion or exclusion of ASL code in the compilation. 
  1855.  
  1856.  
  1857. ΓòÉΓòÉΓòÉ 6.1.3.1. Format ΓòÉΓòÉΓòÉ
  1858.  
  1859. ΓöÇΓöÇ@IFΓöÇΓöÇconditionΓöÇΓöÇΓö¼ΓöÇsourcelineΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  1860. Γö£ΓöÇ@THENΓöÇΓöÇsourcelineΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ           ΓööΓöÇ@THENΓöÇΓöÇDOΓöÇΓöÇblockΓöÇΓöÇ@ENDΓöÇΓöÿ 
  1861. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  1862. Γö£ΓöÇ@ELSEΓöÇΓöÇsourcelineΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ   ΓööΓöÇ@ELSEΓöÇΓöÇDOΓöÇΓöÇblockΓöÇΓöÇ@ENDΓöÇΓöÿ 
  1863.  
  1864. where: 
  1865.  
  1866. condition       is a preprocessor expression. 
  1867.  
  1868. sourceline      is a line of ASL code or a preprocessor directive. A line of 
  1869.                 ASL code need not contain a complete ASL statement; you can 
  1870.                 conditionally compile parts of statements. 
  1871.  
  1872. block           is a block of ASL statements or preprocessor directives. 
  1873.  
  1874.  
  1875. ΓòÉΓòÉΓòÉ 6.1.3.2. Comments ΓòÉΓòÉΓòÉ
  1876.  
  1877. If the condition evaluates to true (nonzero), only the code following the 
  1878. express or implied @THEN is included. If the condition evaluates to false 
  1879. (zero) or NULL, only the code following the @ELSE (if supplied) is included. 
  1880. Any code excluded by @IF is not passed to the compiler. This means that the 
  1881. code is not even checked for syntax errors. 
  1882.  
  1883. ASL code may not appear on the same line as @THEN or @ELSE. 
  1884.  
  1885.  
  1886. ΓòÉΓòÉΓòÉ 6.1.3.3. Examples ΓòÉΓòÉΓòÉ
  1887.  
  1888. ! Conditionally compile a block of statements
  1889. @IF @Version >= 3
  1890. @THEN DO
  1891.   OPEN DDESERVER myserver,
  1892.     APPLICATION="myappl",
  1893.     TOPIC="pippin"
  1894.   CALL myserver'FORMATS(myformats[0])
  1895. @END
  1896.  
  1897. ! Conditionally compile part of a statement (the value of the SIZEX
  1898. ! attribute of a window)
  1899. OPEN WINDOW mywin, SIZEX=
  1900.   @IF @SIZEX < 100
  1901.     100,
  1902.   @ELSE
  1903.     @SIZEX,
  1904.   SIZEY=@SIZEY
  1905.  
  1906. ! If @Version is not already set when the following directive is
  1907. ! processed, set it to 1 by default. Use the value in an ASL statement.
  1908. @IF NULL(@Version)
  1909.   @GLOBAL @Version = 1
  1910. DECLARE TASK NUMERIC Version = @Version
  1911.  
  1912.  
  1913. ΓòÉΓòÉΓòÉ 6.1.4. @INCLUDE ΓòÉΓòÉΓòÉ
  1914.  
  1915. The @INCLUDE directive includes the contents of a file in the compilation. 
  1916.  
  1917.  
  1918. ΓòÉΓòÉΓòÉ 6.1.4.1. Format ΓòÉΓòÉΓòÉ
  1919.  
  1920. ΓöÇΓöÇ@INCLUDEΓöÇΓöÇfileΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  1921.  
  1922. where: 
  1923.  
  1924. file            is a preprocessor expression that evaluates to a string 
  1925.                 containing the identifier of the file to be included. 
  1926.  
  1927.  
  1928. ΓòÉΓòÉΓòÉ 6.1.4.2. Comments ΓòÉΓòÉΓòÉ
  1929.  
  1930. If the file identifier does not include the location, then the compiler 
  1931. searches for the file in the following locations: 
  1932.  
  1933.  1. The current directory 
  1934.  
  1935.  2. The directories specified on the  -I  parameters or parameters of FTBCMP 
  1936.  
  1937.  3. The path specified by the FTB1PATH environment variable (set in the 
  1938.     CONFIG┬╖SYS file). 
  1939.  
  1940. To specify more than one path, you can use more than one  -I parameter with 
  1941. FTBCMP. 
  1942.  
  1943. The text of the included file is processed as if it appeared in the program at 
  1944. the point where the @INCLUDE directive appears. The included file can contain 
  1945. nested @INCLUDE directives, other directives, and ASL code. There is no 
  1946. practical limit on the level of @INCLUDE nesting. 
  1947.  
  1948. Any compilation errors generated by an included file are reported by the file 
  1949. name and the line number within the file. 
  1950.  
  1951. If the code in an included file causes a run-time error, A.System.ErrorLine 
  1952. contains the line number of the @INCLUDE directive in the main source file. 
  1953.  
  1954.  
  1955. ΓòÉΓòÉΓòÉ 6.1.4.3. Examples ΓòÉΓòÉΓòÉ
  1956.  
  1957. @INCLUDE "DDE.PGM"            ! String contains file name
  1958.  
  1959. @INCLUDE @Include             ! Variable contains file name
  1960.  
  1961. ON ERROR
  1962.   @INCLUDE "OnError.INC"      ! File contains standard code for the block
  1963.  
  1964.  
  1965. ΓòÉΓòÉΓòÉ 7. System limits ΓòÉΓòÉΓòÉ
  1966.  
  1967. The following limits are imposed by the system: 
  1968.  
  1969. System limit                            Value 
  1970.  
  1971. Significant digits in a numeric value   15 
  1972.  
  1973. Decimal places in a numeric value       40 
  1974.  
  1975. Characters in a string variable         255 
  1976.  
  1977. Characters in a literal                 253 
  1978.  
  1979. Characters in an objectstore name       20 
  1980.  
  1981. Characters in a table or group name     20 
  1982.  
  1983. Characters in a variable name (letters, numbers, or underscore only) 20 
  1984.  
  1985. Dimensions in an array                  2 
  1986.  
  1987. Elements in an array or rows in a table 64000 
  1988.  
  1989. Key columns in a table                  16 
  1990.  
  1991. Depth of nested parentheses in an expression 40 
  1992.  
  1993. Depth of nested DO blocks               40 
  1994.  
  1995. Procedures in a program                 160 
  1996.  
  1997. Depth of nested procedure calls         80 
  1998.  
  1999. Parameters to a CALL statement          20 
  2000.  
  2001. Lines in a program                      16000 
  2002.  
  2003. Maximum size of module                  64KB 
  2004.  
  2005. Concurrently active data items          16000 
  2006.  
  2007. Data items per objectstore              64000 
  2008.  
  2009. Active tasks                            180 
  2010.  
  2011. Items in a LIST object                  32767 
  2012.  
  2013. Menu editor entries (including separators) in a pull-down menu 12 
  2014.  
  2015. Stack sizes for C functions called from ASL (for C thread, and for calling 
  2016. OS/2)                                   16KB each 
  2017.  
  2018. Number of tables and objectstores open  63 
  2019.  
  2020. Note:   1KB is 1024 bytes 
  2021.  
  2022.  
  2023. ΓòÉΓòÉΓòÉ 8. How to read the syntax diagrams ΓòÉΓòÉΓòÉ
  2024.  
  2025. Throughout this book, syntax is specified with diagrams. This section describes 
  2026. how to read the syntax diagrams. 
  2027.  
  2028. o Read the syntax diagrams from left to right, from top to bottom, following 
  2029.   the path of the line. 
  2030.  
  2031.   The ΓöÇΓöÇ symbol indicates the beginning of a statement. 
  2032.  
  2033.   The ΓöÇΓöÇ symbol indicates that the statement syntax is continued on the next 
  2034.   line. 
  2035.  
  2036.   The ΓöÇΓöÇ symbol indicates that the statement syntax is continued from the 
  2037.   previous line. 
  2038.  
  2039.   The ΓöÇ symbol indicates the end of a statement. 
  2040.  
  2041. o Required items appear on the main path: 
  2042.   ΓöÇΓöÇSTATEMENTΓöÇΓöÇrequired_itemΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  2043.  
  2044. o Optional items appear below the main path: 
  2045.   ΓöÇΓöÇSTATEMENTΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  2046.   ΓööΓöÇoptional_itemΓöÇΓöÿ 
  2047.  
  2048. o If you can choose from two or more items, then they appear vertically, in a 
  2049.   stack. 
  2050.  
  2051.   If you must choose one of the items, then one item of the stack appears on 
  2052.   the main path: 
  2053.   ΓöÇΓöÇSTATEMENTΓöÇΓöÇΓö¼ΓöÇrequired_choice_1ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  2054.   ΓööΓöÇrequired_choice_2ΓöÇΓöÿ 
  2055.  
  2056.   If choosing one of the items is optional, then the entire stack appears below 
  2057.   the main path: 
  2058.   ΓöÇΓöÇSTATEMENTΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  2059.   Γö£ΓöÇoptional_choice_1ΓöÇΓöñ         ΓööΓöÇoptional_choice_2ΓöÇΓöÿ 
  2060.  
  2061.   If one of the optional items is the default, then it appears above the main 
  2062.   path. The remaining choices are shown below:         ΓöîΓöÇdefault_choice_1ΓöÇΓöÇΓöÉ 
  2063.   ΓöÇΓöÇSTATEMENTΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  2064.   Γö£ΓöÇoptional_choice_2ΓöÇΓöñ         ΓööΓöÇoptional_choice_3ΓöÇΓöÿ 
  2065.  
  2066. o An arrow returning to the left above the main line indicates an item that you 
  2067.   can repeat. Punctuation in this arrow indicates that you must insert the 
  2068.   punctuation between repeated items.         ΓöîΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ          
  2069.   Γöé 
  2070.   ΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓöÇrepeatable_itemΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  2071.  
  2072.   A repeat arrow above a stack indicates that you can make more than one choice 
  2073.   from the stacked items. (It does not mean that you can repeat a single 
  2074.   choice.)        ΓöîΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ               Γöé 
  2075.   ΓöÇΓöÇSTATEMENTΓöÇΓöÇΓöÇΓö¼ΓöÇchoice_1ΓöÇΓö¼Γö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  2076.   ΓööΓöÇchoice_2ΓöÇΓöÿ 
  2077.  
  2078. o Certain items can be used only if you have already used a previous item: 
  2079.   ΓöÇΓöÇSTATEMENTΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  2080.   ΓööΓöÇoptional_item_1ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÿ 
  2081.   ΓööΓöÇ,optional_item_2ΓöÇΓöÿ 
  2082.  
  2083.   In this example, you can choose optional item2  only if you previously 
  2084.   selected optional item1 
  2085.  
  2086. o Keywords appear in uppercase. Spell them exactly as shown. 
  2087.  
  2088. o Syntax variables appear in italics (for example, required_item ). They 
  2089.   represent names or values that you supply. 
  2090.  
  2091. o If the syntax diagram includes punctuation marks, parentheses, arithmetic 
  2092.   operators, or such symbols, then you must enter them as part of the syntax. 
  2093.  
  2094. o If the syntax diagram shows a series of optional parameters separated by 
  2095.   commas, and you do not want to specify any of the remaining optional 
  2096.   parameters, then you do not need to type the remaining commas: 
  2097.   ΓöÇΓöÇFUNCTION(option1,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  2098.   ΓööΓöÇoption2ΓöÇΓöÿ  ΓööΓöÇoption3ΓöÇΓöÿ You can type: 
  2099.  
  2100.     FUNCTION(option1)
  2101.     FUNCTION(option1,option2)
  2102.  
  2103.   instead of: 
  2104.  
  2105.     FUNCTION(option1,,)
  2106.     FUNCTION(option1,option2,)
  2107.  
  2108.  
  2109. ΓòÉΓòÉΓòÉ 9. ABS() ΓòÉΓòÉΓòÉ
  2110.  
  2111. The ABS() function returns the absolute value of a number. 
  2112.  
  2113. ΓöÇΓöÇABS(expression)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2114.  
  2115. Examples 
  2116.  
  2117. More about ABS() 
  2118.  
  2119.  
  2120. ΓòÉΓòÉΓòÉ 9.1. Examples ΓòÉΓòÉΓòÉ
  2121.  
  2122. x = ABS(12-7)                !  Result is 5
  2123. x = ABS(x-11)                !  Result is 6
  2124.  
  2125. Examples source library: 
  2126.  
  2127.  
  2128. ΓòÉΓòÉΓòÉ 9.2. More about ABS() ΓòÉΓòÉΓòÉ
  2129.  
  2130. o ABS returns the absolute value of expression, that is, it returns the numeric 
  2131.   value whether expression is positive or negative. 
  2132.  
  2133. o An error occurs if expression is nonnumeric and cannot be converted. 
  2134.  
  2135.  
  2136. ΓòÉΓòÉΓòÉ 10. ACOS(), ACOSD() ΓòÉΓòÉΓòÉ
  2137.  
  2138. The ACOS() and ACOSD() functions return the angle for a given cosine. 
  2139.  
  2140. ACOS() returns the angle in radians. ACOSD() returns the angle in degrees. 
  2141.  
  2142. ΓöÇΓöÇACOS(cosine)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2143.  
  2144. ΓöÇΓöÇACOSD(cosine)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2145.  
  2146. Examples 
  2147.  
  2148.  
  2149. ΓòÉΓòÉΓòÉ 10.1. Examples ΓòÉΓòÉΓòÉ
  2150.  
  2151. x = ACOS(0.43)               !  Result is 1.13 (radians)
  2152. x = ACOSD(0.36)              !  Result is 68.9 (degrees)
  2153.  
  2154. Examples source library: 
  2155.  
  2156.  
  2157. ΓòÉΓòÉΓòÉ 11. ADDWORD() ΓòÉΓòÉΓòÉ
  2158.  
  2159. The ADDWORD() function inserts one string into another and returns the new 
  2160. string formed. 
  2161.  
  2162.                                           ΓöîΓöÇ" "ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2163. ΓöÇΓöÇADDWORD(string1,string2,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2164.                              ΓööΓöÇnumberΓöÇΓöÿ   ΓööΓöÇseparatorΓöÇΓöÿ
  2165.  
  2166. Examples 
  2167.  
  2168. More about ADDWORD() 
  2169.  
  2170. See also: DELWORD() 
  2171.  
  2172.  
  2173. ΓòÉΓòÉΓòÉ 11.1. Examples ΓòÉΓòÉΓòÉ
  2174.  
  2175. x = ADDWORD("at the","end")
  2176.     !  Result is "at the end"
  2177. x = ADDWORD("in middle","the",1)
  2178.     !  Result is "in the middle"
  2179. x = ADDWORD("one-two-five","three-four", 2 ,"-")
  2180.     !  Result is "one-two-three-four-five"
  2181.  
  2182. Examples source library: 
  2183.  
  2184.  
  2185. ΓòÉΓòÉΓòÉ 11.2. More about ADDWORD() ΓòÉΓòÉΓòÉ
  2186.  
  2187. o ADDWORD() inserts separators between string1 and string2 to keep the 
  2188.   individual words apart. 
  2189.  
  2190.   If string2 is inserted at the start of string1, a separator is added after 
  2191.   string2. If string2 is inserted in the middle of string1, a separator is 
  2192.   added at both ends of string2. If string2 is added to the end of string1, an 
  2193.   additional separator is inserted at the start of string2. 
  2194.  
  2195.   Any surplus separators in string1 at the point of insertion are removed. No 
  2196.   separators are removed from string2. 
  2197.  
  2198. o An error is returned if the total length of the two strings is greater than 
  2199.   the maximum string length. 
  2200.  
  2201. o If number is greater than the number of words in string1, string2 is added to 
  2202.   the end of string1 without padding spaces or separators. 
  2203.  
  2204. o Parameters are converted if necessary. 
  2205.  
  2206. o If number is negative, it indicates a position relative to the end of the 
  2207.   string.  (For example,  -1 indicates the last item.) 
  2208.  
  2209. o An error is returned if number is NULL. Real numbers are truncated. 
  2210.  
  2211. o Using a string parameter of type NULL in this function produces a result of 
  2212.   NULL. 
  2213.  
  2214. o A word is defined by a combination of separators, string start and string 
  2215.   end. 
  2216.  
  2217. o If separator is omitted in a DBCS environment, an SBCS space is inserted by 
  2218.   default, although DBCS spaces are assumed to be the separators used in 
  2219.   string1. 
  2220.  
  2221. o DBCS characters cannot be used as separators. However, when an SBCS space is 
  2222.   specified as separator, both SBCS and DBCS spaces in string1 are recognized 
  2223.   as separators. 
  2224.  
  2225.  
  2226. ΓòÉΓòÉΓòÉ 12. ADJUST() ΓòÉΓòÉΓòÉ
  2227.  
  2228. The ADJUST() function adjusts, rounds, or truncates numeric values in various 
  2229. ways. 
  2230.  
  2231.                        ΓöîΓöÇ"NEAREST"ΓöÇΓöÉ   ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2232. ΓöÇΓöÇADJUST(expression,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2233.                        ΓööΓöÇtypeΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ   ΓööΓöÇpositionΓöÇΓöÿ
  2234.  
  2235. Examples 
  2236.  
  2237. See also: PRECISION 
  2238.  
  2239.  
  2240. ΓòÉΓòÉΓòÉ 12.1. Examples ΓòÉΓòÉΓòÉ
  2241.  
  2242. x = ADJUST(1234.5)                  !  Result is 1235
  2243. x = ADJUST(56.94,"Down")            !  Result is 56
  2244. x = ADJUST(56.64,"Up",1)            !  Result is 56.7
  2245. x = ADJUST(7.919,"Truncate",2)      !  Result is 7.91
  2246. x = ADJUST(12.915,"Bankers",2)      !  Result is 12.92
  2247. x = ADJUST(94.425,"B",2)            !  Result is 94.42
  2248. x = ADJUST(-56.94,'D')              !  Result is -57
  2249. x = ADJUST(-7.919,'T',2)            !  Result is -7.91
  2250. x = ADJUST(925,,-1)                 !  Result is 930
  2251.  
  2252. Examples source library: 
  2253.  
  2254.  
  2255. ΓòÉΓòÉΓòÉ 13. ANALYZE ΓòÉΓòÉΓòÉ
  2256.  
  2257. The ANALYZE statement scans one or two columns in a table, and either 
  2258. accumulates counts for given value combinations, or accumulates values from a 
  2259. third column. 
  2260.  
  2261. ΓöÇΓöÇANALYZEΓöÇΓöÇresult=col1,col1valsΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2262.                                   ΓööΓöÇ,col2,col2valsΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÿ
  2263.                                                    ΓööΓöÇ,col3sumΓöÇΓöÿ
  2264.  
  2265. Examples 
  2266.  
  2267. More about ANALYZE 
  2268.  
  2269. See also: GATHER 
  2270.  
  2271.  
  2272. ΓòÉΓòÉΓòÉ 13.1. Examples ΓòÉΓòÉΓòÉ
  2273.  
  2274. ANALYZE could be used to find the number of men and women in each department: 
  2275.  
  2276. ANALYZE crosstab = EmpData.Division, DivNames, EmpData.Sex, SexVals
  2277.  
  2278. This form of the statement would produce a two-dimensional array (called 
  2279. crosstab) containing the total number of men and women working in each 
  2280. specified department. SexVals would contain  "M" and "F" for men and women. 
  2281. Divnames would contain a list of departments. 
  2282.  
  2283. The example below uses the col3sum array. 
  2284.  
  2285. ! EMPDATA table should already exist and have entries like
  2286. ! Name   Division    Sex  AnnualSalary
  2287. ! ====== ========    ===  ============
  2288. ! Andy   Production  M    10000
  2289. ! Betty  Sales       F    15000
  2290. ! Colin  Research    M    20000
  2291. ! David  Research    M    25000
  2292. ! Elsie  Research    F    30000
  2293. ! Fred   Sales       M    35000
  2294. ! Gill   Sales       F    40000
  2295.  
  2296. OPEN TABLE EmpData,
  2297.  NAME = "EmpData",
  2298.  LOCATION = system'SEARCHPATH("EmpData")
  2299. DEFINE DivNames[0]
  2300. INSERT DivNames[1] = "Research"
  2301. INSERT DivNames[2] = "Sales"
  2302. GATHER SexVals = EmpData.Sex
  2303.  
  2304. ANALYZE Result = EmpData.Division, Divnames,
  2305.                  EmpData.Sex, SexVals,
  2306.                  EmpData.AnnualSalary
  2307.  
  2308. ! Result is a 2D matrix with one row for each selected
  2309. ! division and one column for each sex. The value in
  2310. ! each cell is the total salary for that division and sex.
  2311.  
  2312. !                    F       M
  2313. ! Research       30000   45000
  2314. ! Sales          55000   35000
  2315. ! Production         0   10000
  2316.  
  2317. Examples source library: 
  2318.  
  2319.  
  2320. ΓòÉΓòÉΓòÉ 13.2. More about ANALYZE ΓòÉΓòÉΓòÉ
  2321.  
  2322. o Where there is just one column of input, ANALYZE performs a similar function 
  2323.   to GATHER. To see all possible row values, use the GATHER statement instead 
  2324.   of ANALYZE. 
  2325.  
  2326. o col1vals and col2vals can be obtained using the GATHER statement before 
  2327.   issuing an ANALYZE statement. 
  2328.  
  2329. o col1vals and col2vals can have their values stored in any order in the array. 
  2330.  
  2331. o NULL values are ignored for accumulation. 
  2332.  
  2333.  
  2334. ΓòÉΓòÉΓòÉ 14. ARC ΓòÉΓòÉΓòÉ
  2335.  
  2336. The ARC graphics primitive object class creates an instance of an arc of an 
  2337. ellipse. 
  2338.  
  2339. Parent: DEFINE 
  2340.  
  2341. Attributes 
  2342.  
  2343. Actions: None. 
  2344.  
  2345. Events: None. 
  2346.  
  2347.  
  2348. ΓòÉΓòÉΓòÉ 14.1. Attributes ΓòÉΓòÉΓòÉ
  2349.  
  2350. CLOSINGLINE            ENCLOSED 
  2351. REFERENCE              TILT 
  2352.  
  2353. The following standard graphics attributes are also available. They are 
  2354. described in Standard graphics attributes: 
  2355.  
  2356. BOUNDED                FILLCOLOR 
  2357. LINEWIDTH              SELECTED 
  2358. COLOR                  FILLPATTERN 
  2359. MIX                    VISIBLE 
  2360. CONSTANT               LINESTYLE 
  2361. SELECTABLE 
  2362.  
  2363.  
  2364. ΓòÉΓòÉΓòÉ 14.1.1. CLOSINGLINE ΓòÉΓòÉΓòÉ
  2365.  
  2366. Arc is closed with a line joining the first point to the last: 
  2367.  
  2368. 0         Arc not closed 
  2369. 1         Arc closed 
  2370.  
  2371. Default: 0 (Not closed) 
  2372.  
  2373.  
  2374. ΓòÉΓòÉΓòÉ 14.1.2. ENCLOSED ΓòÉΓòÉΓòÉ
  2375.  
  2376. Arc is treated as a closed object which can be filled: 
  2377.  
  2378. 0         Arc not enclosed 
  2379. 1         Arc enclosed 
  2380.  
  2381. Default: 0 (Not enclosed) 
  2382.  
  2383.  
  2384. ΓòÉΓòÉΓòÉ 14.1.3. REFERENCE ΓòÉΓòÉΓòÉ
  2385.  
  2386. Vector defining the arc. This vector consists of the following elements: 
  2387.  
  2388. 1         X coordinate of the center of an ellipse 
  2389. 2         Y coordinate of the center of an ellipse 
  2390. 3         X radius of the arc 
  2391. 4         Y radius of the arc 
  2392. 5         Angle (in degrees) subtended by the arc at the center of the ellipse. 
  2393.           Measured counterclockwise from the start position angle. 
  2394. 6         Angle (in degrees) of start position of the arc, measured 
  2395.           counterclockwise from the horizontal X axis 
  2396.  
  2397. All coordinates are in world coordinate units. 
  2398.  
  2399. Set on OPEN, then read-only. 
  2400.  
  2401. Default: "" 
  2402.  
  2403.  
  2404. ΓòÉΓòÉΓòÉ 14.1.4. TILT ΓòÉΓòÉΓòÉ
  2405.  
  2406. Angle at which the arc is tilted. The angle of tilt is specified in degrees and 
  2407. is measured counterclockwise from the horizontal. 
  2408.  
  2409. Default: 0 (No tilt) 
  2410.  
  2411.  
  2412. ΓòÉΓòÉΓòÉ 15. ARCPOINTS ΓòÉΓòÉΓòÉ
  2413.  
  2414. The ARCPOINTS graphics primitive object class creates an instance of an arc of 
  2415. an ellipse. 
  2416.  
  2417. Parent: DEFINE 
  2418.  
  2419. Attributes 
  2420.  
  2421. Actions: None. 
  2422.  
  2423. Events: None. 
  2424.  
  2425.  
  2426. ΓòÉΓòÉΓòÉ 15.1. Attributes ΓòÉΓòÉΓòÉ
  2427.  
  2428. CLOSINGLINE            ENCLOSED 
  2429. REFERENCE              TILT 
  2430.  
  2431. The following standard graphics attributes are also available. They are 
  2432. described in Standard graphics attributes: 
  2433.  
  2434. BOUNDED                FILLCOLOR 
  2435. LINEWIDTH              SELECTED 
  2436. COLOR                  FILLPATTERN 
  2437. MIX                    VISIBLE 
  2438. CONSTANT               LINESTYLE 
  2439. SELECTABLE 
  2440.  
  2441.  
  2442. ΓòÉΓòÉΓòÉ 15.1.1. CLOSINGLINE ΓòÉΓòÉΓòÉ
  2443.  
  2444. Arc is closed with a line joining the first point to the last: 
  2445.  
  2446. 0         Arc not closed 
  2447. 1         Arc closed 
  2448.  
  2449. Default: 0 (Not closed) 
  2450.  
  2451.  
  2452. ΓòÉΓòÉΓòÉ 15.1.2. ENCLOSED ΓòÉΓòÉΓòÉ
  2453.  
  2454. Arc is treated as a closed object which can be filled: 
  2455.  
  2456. 0         Arc not enclosed 
  2457. 1         Arc enclosed 
  2458.  
  2459. Default: 0 (Not enclosed) 
  2460.  
  2461.  
  2462. ΓòÉΓòÉΓòÉ 15.1.3. REFERENCE ΓòÉΓòÉΓòÉ
  2463.  
  2464. Vector defining the arcpoints. This vector consists of the following elements: 
  2465.  
  2466. 1         X coordinate for the center point of the arc 
  2467. 2         Y coordinate for the center point of the arc 
  2468. 3         X radius of the arc 
  2469. 4         Y radius of the arc 
  2470. 5         X coordinate for the start point of the arc 
  2471. 6         Y coordinate for the start point of the arc 
  2472. 7         X coordinate for the end point of the arc 
  2473. 8         Y coordinate for the end point of the arc. 
  2474.  
  2475. All coordinates are in world coordinate units. 
  2476.  
  2477. The start and end points need not lie on the arc. If they do not, a line is 
  2478. extended from the center point through the start or end point until it 
  2479. intersects with the arc. 
  2480.  
  2481. Set on OPEN, then read-only. 
  2482.  
  2483. Default: "" 
  2484.  
  2485.  
  2486. ΓòÉΓòÉΓòÉ 15.1.4. TILT ΓòÉΓòÉΓòÉ
  2487.  
  2488. Angle at which the arc is tilted. The angle of tilt is specified in degrees and 
  2489. is measured counterclockwise from the horizontal. 
  2490.  
  2491. Default: 0 (No tilt) 
  2492.  
  2493.  
  2494. ΓòÉΓòÉΓòÉ 16. AREA ΓòÉΓòÉΓòÉ
  2495.  
  2496. The AREA graphics primitive object class defines an area in a graphic box. AREA 
  2497. provides a way of linking several graphic primitives into a new shape. The 
  2498. linking allows them to be treated as one primitive for purposes of coloring or 
  2499. shading (for example, for three-dimensional graphics on a pie chart). 
  2500.  
  2501. AREA differs from DEFINE in that DEFINE merely allows a group of graphic 
  2502. primitives to be moved or sized together, while AREA creates a single shape. 
  2503.  
  2504. Parent: DEFINE 
  2505.  
  2506. Attributes 
  2507.  
  2508. Actions: None. 
  2509.  
  2510. Events: None. 
  2511.  
  2512. Examples 
  2513.  
  2514. More about AREA 
  2515.  
  2516.  
  2517. ΓòÉΓòÉΓòÉ 16.1. Attributes ΓòÉΓòÉΓòÉ
  2518.  
  2519. CLOSINGLINE            ENCLOSED 
  2520. END 
  2521.  
  2522. The following standard graphics attributes are also available. They are 
  2523. described in Standard graphics attributes: 
  2524.  
  2525. BOUNDED                FILLPATTERN 
  2526. MIX                    SELECTED 
  2527. COLOR                  LINESTYLE 
  2528. SELECTABLE             VISIBLE 
  2529. FILLCOLOR              LINEWIDTH 
  2530.  
  2531.  
  2532. ΓòÉΓòÉΓòÉ 16.1.1. CLOSINGLINE ΓòÉΓòÉΓòÉ
  2533.  
  2534. Whether the area is closed with a line joining the first point to the last: 
  2535.  
  2536. 0         Area not closed 
  2537. 1         Area closed 
  2538.  
  2539. Default: 0 (Not closed) 
  2540.  
  2541.  
  2542. ΓòÉΓòÉΓòÉ 16.1.2. ENCLOSED ΓòÉΓòÉΓòÉ
  2543.  
  2544. Whether the area is treated as a closed object which can be filled: 
  2545.  
  2546. 0         Area not enclosed 
  2547. 1         Area enclosed 
  2548.  
  2549. Default: 0 (Not enclosed) 
  2550.  
  2551.  
  2552. ΓòÉΓòÉΓòÉ 16.1.3. END ΓòÉΓòÉΓòÉ
  2553.  
  2554. Whether the definition of an area is complete: 
  2555.  
  2556. 0         Definition of the area not yet complete 
  2557. 1         Definition of the area now complete 
  2558.  
  2559. Can be set on open. Cannot be queried. 
  2560.  
  2561. Default: 0 (Area object not yet complete) 
  2562.  
  2563.  
  2564. ΓòÉΓòÉΓòÉ 16.2. Examples ΓòÉΓòÉΓòÉ
  2565.  
  2566. The example below shows how to form an area from LINE and CURVE objects. 
  2567.  
  2568. OPEN AREA area1, def1,             ! open AREA object
  2569.  CLOSINGLINE=1,                    ! AREA will be closed
  2570.  ENCLOSED=1,                       ! and enclosed, the fill
  2571.  FILLCOLOR="LBLUE"                 ! color is blue
  2572.  
  2573. DEFINE ARRAY[0]                    ! define array and
  2574. INSERT ARRAY[0]=10                 ! fill with line
  2575. INSERT ARRAY[0]=10                 ! end point coordinates
  2576. INSERT ARRAY[0]=250
  2577. INSERT ARRAY[0]=10
  2578. INSERT ARRAY[0]=250
  2579. INSERT ARRAY[0]=220
  2580. INSERT ARRAY[0]=250
  2581. INSERT ARRAY[0]=220
  2582. OPEN LINE line1, def1,             ! open line on define as part
  2583.  REFERENCE=ARRAY[0]                ! of area1
  2584.  
  2585. DEFINE ARRAY[0]                    ! define array and
  2586. INSERT ARRAY[0]=200                ! fill with curve
  2587. INSERT ARRAY[0]=100                ! parameters
  2588. INSERT ARRAY[0]=125
  2589. INSERT ARRAY[0]=260
  2590. INSERT ARRAY[0]=50
  2591. INSERT ARRAY[0]=100
  2592. OPEN CURVE curve1, def1,           ! open curve on define as part
  2593.  REFERENCE = ARRAY[0]              ! of area1
  2594. LET area1'END = 1
  2595. ! Setting END means that the LINE and CURVE have now created
  2596. ! a new shape which can be manipulated as area1.
  2597.  
  2598. Examples source library: 
  2599.  
  2600.  
  2601. ΓòÉΓòÉΓòÉ 16.3. More about AREA ΓòÉΓòÉΓòÉ
  2602.  
  2603. o Before any graphics can be placed, a GRAPHIC area and a DEFINE must be opened 
  2604.   as a base for future graphic primitives. The AREA object is opened on the 
  2605.   DEFINE, then LINE objects are opened. Finally, the END attribute of the AREA 
  2606.   is set to 1. This completes the definition of the AREA object. The region 
  2607.   bounded by the lines can then be manipulated as if it were a single graphic 
  2608.   primitive. 
  2609.  
  2610. o The primitives ARC, CURVE, LINE, and SECTOR can be used to form an area. 
  2611.  
  2612.  
  2613. ΓòÉΓòÉΓòÉ 17. AS ΓòÉΓòÉΓòÉ
  2614.  
  2615. The AS object provides access to IBM Application System facilities on a host 
  2616. system. Host AS commands can be run, and data tables can be imported and 
  2617. exported. 
  2618.  
  2619. Attributes 
  2620.  
  2621. Actions 
  2622.  
  2623. Events: None. 
  2624.  
  2625. Examples 
  2626.  
  2627. More about AS 
  2628.  
  2629.  
  2630. ΓòÉΓòÉΓòÉ 17.1. Attributes ΓòÉΓòÉΓòÉ
  2631.  
  2632. ASCODE                  CODE 
  2633. CODEDETAIL              COLUMNS 
  2634. DATEMETHOD              ERRORINFO 
  2635. HOSTCODEPAGE            HOSTMESSAGE 
  2636. HOSTMSGNO               KEYED 
  2637. KEYS                    NAME 
  2638. PROCLINE                PROCNAME 
  2639. RELOBJECT               SELECT 
  2640. SERVERNAME              SERVERTYPE 
  2641. TIMEOUT                 TRACEAS 
  2642. TRACEPC                 TRACESERVER 
  2643. TYPE 
  2644.  
  2645.  
  2646. ΓòÉΓòÉΓòÉ 17.1.1. ASCODE ΓòÉΓòÉΓòÉ
  2647.  
  2648. AS start parameters (normally the application code to be connected to). (If 
  2649. ASCODE is modified, the object will attempt to end the application; if this 
  2650. fails, AS will be restarted.) 
  2651.  
  2652. Default: None 
  2653.  
  2654.  
  2655. ΓòÉΓòÉΓòÉ 17.1.2. CODE ΓòÉΓòÉΓòÉ
  2656.  
  2657. Most recent error code. 
  2658.  
  2659. Can be queried but not modified. 
  2660.  
  2661. For more information on error codes, see Application System: Client Connections 
  2662.  
  2663. Default: None 
  2664.  
  2665.  
  2666. ΓòÉΓòÉΓòÉ 17.1.3. CODEDETAIL ΓòÉΓòÉΓòÉ
  2667.  
  2668. Return code that further defines the CODE attribute. 
  2669.  
  2670. Can be queried but not modified. 
  2671.  
  2672. Default: None 
  2673.  
  2674.  
  2675. ΓòÉΓòÉΓòÉ 17.1.4. COLUMNS ΓòÉΓòÉΓòÉ
  2676.  
  2677. The COLUMNS attribute contains the total number of columns in the AS table 
  2678. specified in the NAME attribute. 
  2679.  
  2680. Can be queried but not modified 
  2681.  
  2682. Default: None 
  2683.  
  2684.  
  2685. ΓòÉΓòÉΓòÉ 17.1.5. DATEMETHOD ΓòÉΓòÉΓòÉ
  2686.  
  2687. The method used when exchanging date columns between host AS and Visualizer. 
  2688.  
  2689. Set to "ISO" (default) when exchanging date columns in ISO format. Set to 
  2690. "PRODUCT" when exchanging date columns in Visualizer format. The Visualizer 
  2691. format causes Date columns to be written to host AS as A13 format columns, with 
  2692. the Period information included in the column. 
  2693.  
  2694. Default: "ISO" 
  2695.  
  2696.  
  2697. ΓòÉΓòÉΓòÉ 17.1.6. ERRORINFO ΓòÉΓòÉΓòÉ
  2698.  
  2699. Error information returned from the AS object for specific CODE values. Return 
  2700. codes for ERRORINFO are described in IBM Visualizer for OS/2: Installing and 
  2701. Supporting Application System: Client Connections 
  2702.  
  2703. Read-only 
  2704.  
  2705. Default: None 
  2706.  
  2707.  
  2708. ΓòÉΓòÉΓòÉ 17.1.7. HOSTCODEPAGE ΓòÉΓòÉΓòÉ
  2709.  
  2710. The host code page for translating data to and from Visualizer. (HOSTCODEPAGE 
  2711. can be modified for SBCS code pages.) 
  2712.  
  2713. Default: None 
  2714.  
  2715.  
  2716. ΓòÉΓòÉΓòÉ 17.1.8. HOSTMESSAGE ΓòÉΓòÉΓòÉ
  2717.  
  2718. Latest host error message. 
  2719.  
  2720. Can be queried but not modified. 
  2721.  
  2722. Default: None 
  2723.  
  2724.  
  2725. ΓòÉΓòÉΓòÉ 17.1.9. HOSTMSGNO ΓòÉΓòÉΓòÉ
  2726.  
  2727. Latest host error message number. 
  2728.  
  2729. Can be queried but not modified. 
  2730.  
  2731. Default: None 
  2732.  
  2733.  
  2734. ΓòÉΓòÉΓòÉ 17.1.10. KEYED ΓòÉΓòÉΓòÉ
  2735.  
  2736. Indicates whether the table specified in the NAME attribute is keyed or is not 
  2737. keyed. 
  2738.  
  2739. 0         Not keyed 
  2740. 1         Keyed 
  2741.  
  2742. Read-only. 
  2743.  
  2744. Default: None 
  2745.  
  2746.  
  2747. ΓòÉΓòÉΓòÉ 17.1.11. KEYS ΓòÉΓòÉΓòÉ
  2748.  
  2749. Number of key columns on the mainframe table (only meaningful for KEYED 
  2750. tables). 
  2751.  
  2752. Can be queried but not modified. 
  2753.  
  2754. Default: None 
  2755.  
  2756.  
  2757. ΓòÉΓòÉΓòÉ 17.1.12. NAME ΓòÉΓòÉΓòÉ
  2758.  
  2759. AS name of the data or specification table. 
  2760.  
  2761. Must be specified before using actions or attributes that refer to table 
  2762. information (COLUMNS attribute or CALCOLUMNS action for example). The attribute 
  2763. must be reset before each series of calls to get a table from the mainframe, 
  2764. even if the value has not changed. 
  2765.  
  2766. Default: None (When getting a table from the mainframe, NAME can be NULL; the 
  2767. current AS IN table will then be used.) 
  2768.  
  2769.  
  2770. ΓòÉΓòÉΓòÉ 17.1.13. PROCLINE ΓòÉΓòÉΓòÉ
  2771.  
  2772. The error line number, set when an AS command issued via the AS object failed 
  2773. with an error creating or running an AS procedure. PROCLINE will be set to 0 if 
  2774. the information is not available. 
  2775.  
  2776. Can be queried but not modified. 
  2777.  
  2778. Default: None 
  2779.  
  2780.  
  2781. ΓòÉΓòÉΓòÉ 17.1.14. PROCNAME ΓòÉΓòÉΓòÉ
  2782.  
  2783. The host procedure name, set when an AS command issued via the AS object failed 
  2784. with an error creating or running an AS procedure. PROCNAME will be null if the 
  2785. information is not available. 
  2786.  
  2787. Can be queried but not modified. 
  2788.  
  2789. Default: None 
  2790.  
  2791.  
  2792. ΓòÉΓòÉΓòÉ 17.1.15. RELOBJECT ΓòÉΓòÉΓòÉ
  2793.  
  2794. Identifier for the related Visualizer TABLE object (the table must already be 
  2795. open). 
  2796.  
  2797. Must be specified before using actions or attributes related to tables. 
  2798. RELOBJECT can be reset to the handle to a new table in order to move a second 
  2799. table from AS to Visualizer without closing and reopening a new AS object. The 
  2800. attribute must be reset before each use, even if the value has not changed. 
  2801.  
  2802. Default: None 
  2803.  
  2804.  
  2805. ΓòÉΓòÉΓòÉ 17.1.16. SELECT ΓòÉΓòÉΓòÉ
  2806.  
  2807. Host AS SELECT expression to be used by the GETTABLE() Action. 
  2808.  
  2809. Default: None 
  2810.  
  2811.  
  2812. ΓòÉΓòÉΓòÉ 17.1.17. SERVERNAME ΓòÉΓòÉΓòÉ
  2813.  
  2814. Name of the host computer server. 
  2815.  
  2816. SERVERNAME points to a profile entry defined in DASPWAPI.INI (see Application 
  2817. System: Client Connections The profile will then have the server definition. If 
  2818. no profile entry exists or DASPWAPI.INI cannot be found, SERVERTYPE is used to 
  2819. determine the type of connection and SERVERNAME is used directly as the server 
  2820. alias or side information name. 
  2821.  
  2822. Set on OPEN, then read-only. 
  2823.  
  2824. Default: None 
  2825.  
  2826.  
  2827. ΓòÉΓòÉΓòÉ 17.1.18. SERVERTYPE ΓòÉΓòÉΓòÉ
  2828.  
  2829. The type of connection to be used when communicating with host AS (see 
  2830. Application System: Client Connections 
  2831.  
  2832. SRPI      Is the Server-Requester Programming Interface of OS/2 Communication 
  2833.           Manager. The SERVERNAME attribute will be used to select the SRPI 
  2834.           server alias. (SERVERNAME will point to the server details in 
  2835.           DASPWAPI.INI or be used directly if no profile can be found.) 
  2836. APPC      Uses the OS/2 Communications Manager CPI-C Side Information to route 
  2837.           requests to the host AS partner program via APPC. The SERVERNAME 
  2838.           attribute will be used to select the CPI-C side information entry. 
  2839. PWSCS     Uses the Programmable Workstation Communication Services (product 
  2840.           number 5684-138) to route requests to host AS. The SERVERNAME 
  2841.           attribute will be used to select the PWSCS side information entry. 
  2842.  
  2843. Set on OPEN, then read-only. 
  2844.  
  2845. Default: The default SERVERTYPE can be defined in DASPWAPI.INI. If there is no 
  2846. default type defined there, or DASPWAPI.INI cannot be found, the default type 
  2847. is SRPI. 
  2848.  
  2849.  
  2850. ΓòÉΓòÉΓòÉ 17.1.19. TIMEOUT ΓòÉΓòÉΓòÉ
  2851.  
  2852. Controls the action taken by the AS object when it finds that a SRPI server is 
  2853. already in use. The TIMEOUT value is numeric: 
  2854.  
  2855. 0         The AS object should not wait, but should return immediately with the 
  2856.           return code set to 9020. 
  2857.  
  2858. >0        The number of seconds to wait for the server to become available. 
  2859.  
  2860. <0        The wait is to be indefinite. 
  2861.  
  2862. Set on OPEN, then read-only. 
  2863.  
  2864. Default: 0 
  2865.  
  2866.  
  2867. ΓòÉΓòÉΓòÉ 17.1.20. TRACEAS ΓòÉΓòÉΓòÉ
  2868.  
  2869. Initiates a DIAG SRQ trace and traces to the DASAUDIT log on the host: 
  2870.  
  2871. 0         Traceas off 
  2872. 1         Traceas on 
  2873. If the TRACEAS attribute is used, it must be specified on the OPEN. 
  2874.  
  2875. Default: 0 (Off) 
  2876.  
  2877.  
  2878. ΓòÉΓòÉΓòÉ 17.1.21. TRACEPC ΓòÉΓòÉΓòÉ
  2879.  
  2880. Initiates the trace facility in the workstation environment and traces to 
  2881. DASTRACE. 
  2882.  
  2883. 0         Tracepc off 
  2884. 1         Tracepc on 
  2885.  
  2886. If the TRACEPC attribute is used, it must be specified on OPEN. 
  2887.  
  2888. Default: 0 (Off) 
  2889.  
  2890.  
  2891. ΓòÉΓòÉΓòÉ 17.1.22. TRACESERVER ΓòÉΓòÉΓòÉ
  2892.  
  2893. Initiates a function trace at the host interface: 
  2894.  
  2895. 0         Traceserver off 
  2896. 1         Traceserver on 
  2897.  
  2898. The host information is written to a host dataset. On MVS, this is DASSVLOG. On 
  2899. VM, it is DASSERV LOG A. 
  2900.  
  2901. If the TRACESERVER attribute is used, it must be specified on OPEN. 
  2902.  
  2903. Default: 0 (Off) 
  2904.  
  2905.  
  2906. ΓòÉΓòÉΓòÉ 17.1.23. TYPE ΓòÉΓòÉΓòÉ
  2907.  
  2908. The type of the named table that is being sent to AS. 
  2909.  
  2910. Set on OPEN TYPE must be DATA for GETTABLE or PUTTABLE actions. 
  2911.  
  2912. Default: "DATA" (Since DATA is the default, the attribute does not need to be 
  2913. set before each use.) 
  2914.  
  2915.  
  2916. ΓòÉΓòÉΓòÉ 17.2. Actions ΓòÉΓòÉΓòÉ
  2917.  
  2918. ATTACH                   CALCOLUMNS() 
  2919. CHECKSYNTAX()            COLUMNS() 
  2920. COMMAND()                CREATETEMP() 
  2921. CREATESVAR()             DELETESVAR() 
  2922. DETAILS()                DROP() 
  2923. ERRORTEXT                GETNEXTROW 
  2924. GETSVAR()                GETTABLE 
  2925. GOTOTOP()                KEYS() 
  2926. LISTCAT()                NOKEYS() 
  2927. PUTSVAR()                PUTTABLE() 
  2928. RESETTABLE()             SELECT() 
  2929. SETCOLUMNS()             SETKEYS() 
  2930.  
  2931.  
  2932. ΓòÉΓòÉΓòÉ 17.2.1. ATTACH ΓòÉΓòÉΓòÉ
  2933.  
  2934. ΓöÇΓöÇATTACH(attach_parameter)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2935.  
  2936. Causes the host AS to perform an ATTACH using the given parameter. This results 
  2937. in the host attaching to a CDI or DB. 
  2938.  
  2939.  
  2940. ΓòÉΓòÉΓòÉ 17.2.2. CALCOLUMNS() ΓòÉΓòÉΓòÉ
  2941.  
  2942. ΓöÇΓöÇCALCOLUMNS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2943.  
  2944. pointer identifies a vector of up to 20 expressions used to define new 
  2945. calculated columns for the current table. 
  2946.  
  2947. Each expression should take the following form: 
  2948.  
  2949.  1. The basic form of the expression should follow the syntax of the host AS 
  2950.     LET command for defining a new column.  The LET keyword should not be 
  2951.     specified.  For example: 
  2952.  
  2953.         NEWCOL = 100 * OLDCOL1 / OLDCOL2
  2954.  
  2955.  2. The new column created from Visualizer has the following default 
  2956.     attributes, depending on the attributes of the expression: 
  2957.  
  2958.    N15.      Numeric 
  2959.    A24       Alphanumeric 
  2960.    M9        Multiple Response 
  2961.    G12       Graphic 
  2962.  
  2963.  3. You can override the new column attributes. For example: 
  2964.  
  2965.         ALPHA(A10) = CONCAT(COL1,'/',COL2)
  2966.  
  2967.     sets the length of new column ALPHA to 10 (instead of the default value, 
  2968.     24). 
  2969.  4. More information on host AS and the LET command can be found in Application 
  2970.     System: Reference 
  2971.  
  2972. The result from CALCOLUMNS will be 0 if no errors were detected, or will be the 
  2973. row number of the failing expression. either the NAME attribute is changed or a 
  2974. RESETTABLE action is performed. 
  2975.  
  2976.  
  2977. ΓòÉΓòÉΓòÉ 17.2.3. CHECKSYNTAX() ΓòÉΓòÉΓòÉ
  2978.  
  2979. ΓöÇΓöÇCHECKSYNTAX(command_string,type)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2980.  
  2981. Causes host AS to syntax check  command_string as an AS command.  type is the 
  2982. type of syntax checking to be performed and must be PROCEDURE. 
  2983.  
  2984. If no errors are detected in the  command_string CHECKSYNTAX will return a 
  2985. result of 0. If errors are detected, CHECKSYNTAX will return nonzero result 
  2986. which is the offset of the error in the  command_string. The HOSTMESSAGE and 
  2987. HOSTMSGNO attributes will also be set. 
  2988.  
  2989.  
  2990. ΓòÉΓòÉΓòÉ 17.2.4. COLUMNS() ΓòÉΓòÉΓòÉ
  2991.  
  2992. ΓöÇΓöÇCOLUMNS(asnames,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  2993.                      ΓööΓöÇasltypesΓöÇΓöÿ   ΓööΓöÇaslnamesΓöÇΓöÿ
  2994.  
  2995. asnames is a pointer that identifies a vector in which the names of the columns 
  2996. of the table are returned. The names returned include the AS names of any 
  2997. columns defined with the CALCOLUMNS action. 
  2998.  
  2999. asltypes is an optional pointer that identifies a vector in which the type of 
  3000. the columns of the table are returned. The type returned is that which 
  3001. Visualizer will create for the column when the table is imported. 
  3002.  
  3003. Column types are: 
  3004.  
  3005. NUMERIC 
  3006. CHARACTER 
  3007. DATE 
  3008. TIME 
  3009. GRAPHIC 
  3010. UNKNOWN 
  3011.  
  3012. aslnames is an optional pointer to a vector in which the Visualizer names of 
  3013. the columns are returned. The Visualizer names will be different to the AS 
  3014. names if the AS name would not be valid in Visualizer. 
  3015.  
  3016. COLUMNS is not valid for a specification table. 
  3017.  
  3018.  
  3019. ΓòÉΓòÉΓòÉ 17.2.5. COMMAND() ΓòÉΓòÉΓòÉ
  3020.  
  3021.                             ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÉ
  3022. ΓöÇΓöÇCOMMAND(command_string,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3023.                             ΓööΓöÇmodeΓöÇΓöÿ
  3024.  
  3025. COMMAND allows the direct execution of an AS command, as allowed by the AS 
  3026. command interface. command_string is a valid AS command. 
  3027.  
  3028. mode is the AS command interface terminal mode, as described in Application 
  3029. System: Reference 
  3030.  
  3031. 0         AS does not use the screen. 
  3032. 1         Normal AS screen is displayed (if the host connection permits it). 
  3033.  
  3034. Default: 0 
  3035.  
  3036.  
  3037. ΓòÉΓòÉΓòÉ 17.2.6. CREATETEMP() ΓòÉΓòÉΓòÉ
  3038.  
  3039. ΓöÇΓöÇCREATETEMP(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3040.                 ΓööΓöÇtypeΓöÇΓöÿ
  3041.  
  3042. Allocates a host AS System Table and returns its name. The table will be 
  3043. deleted at the end of the host AS session if it has not been used.  However, if 
  3044. the table has been used for a PUTTABLE action, then it is necessary to issue a 
  3045. host AS PURGE command via the COMMAND action to ensure the table is deleted. 
  3046.  
  3047. type identifies the type of System Table to be created.  Valid values for type 
  3048. are DATA and PROCEDURE. If omitted, a DATA table is created. 
  3049.  
  3050.  
  3051. ΓòÉΓòÉΓòÉ 17.2.7. CREATESVAR() ΓòÉΓòÉΓòÉ
  3052.  
  3053. ΓöÇΓöÇCREATESVAR(name,typesizeΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3054.                              ΓööΓöÇ,lowsub,highsubΓöÇΓöÿ
  3055.  
  3056. (Application System Version 3.2 only) Creates an AS session variable.  The 
  3057. variable created must meet the specification of AS session variables as created 
  3058. by the AS SVARIABLES command.  More information on the SVARIABLES command can 
  3059. be found in Application System: Reference 
  3060.  
  3061. AS session variables created with CREATESVAR can be scalar or one dimensional 
  3062. arrays. The type of the variable must be set. 
  3063.  
  3064. name is the name of the AS session variable to be created. 
  3065.  
  3066. typesize should be a character string which sets the type and size of the 
  3067. session variable.  The type part is mandatory and the size part will assume a 
  3068. default value if omitted. 
  3069.  
  3070. type sets the type of the session variable and must be one of the following: 
  3071.  
  3072. A         Alphanumeric 
  3073. N         Numeric 
  3074. M         Multiple Response 
  3075. G         Graphic 
  3076.  
  3077. size is the size of the session variable or the element size for the session 
  3078. variable array. The size cannot exceed the maximum for its type. If no size is 
  3079. specified, then AS uses the default size. The default and maximum sizes are: 
  3080.  
  3081.  
  3082.  Type         Default      Maximum
  3083.  
  3084.  A            24           254
  3085.  
  3086.  N            15           15
  3087.  
  3088.  M            9            9
  3089.  
  3090.  G            12           127
  3091.  
  3092. If the session variable is numeric, you may specify the number of digits to the 
  3093. right of the decimal point by defining the size as n.d. 
  3094.  
  3095. The n is the total number of digits, and d is the number of digits to the right 
  3096. of the decimal point. The d must be less than or equal to n. If you specify n. 
  3097. any of the digits can be to the right of the decimal point. If you specify n 
  3098. without a decimal, you are defining an integer session variable. 
  3099.  
  3100. The lower and upper subscripts lowsub and highsub should either be omitted or 
  3101. should both be specified. If you specify subscripts you are telling AS that you 
  3102. are defining a session variable array. 
  3103.  
  3104. lowsub defines the low subscript for a session variable array. The minimum 
  3105. value is 1. 
  3106.  
  3107. highsub defines the high subscript for a session variable array. The maximum 
  3108. value is 32767. 
  3109.  
  3110.  
  3111. ΓòÉΓòÉΓòÉ 17.2.8. DELETESVAR() ΓòÉΓòÉΓòÉ
  3112.  
  3113. ΓöÇΓöÇDELETESVAR(name)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3114. (Application System Version 3.2 only) Deletes an AS session variable or deletes 
  3115. all AS session variables. 
  3116.  
  3117. name is the name of the AS session variable to be deleted or name is * to 
  3118. delete all session variables. 
  3119.  
  3120.  
  3121. ΓòÉΓòÉΓòÉ 17.2.9. DETAILS() ΓòÉΓòÉΓòÉ
  3122.  
  3123. ΓöÇΓöÇDETAILS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3124.  
  3125. The vector identified by pointer will be filled with details of the AS session. 
  3126. The vector contains the following information: 
  3127.  
  3128.  1. Host operating system:  MVS or VM. 
  3129.  2. TSO or VM user ID. 
  3130.  3. AS user ID. 
  3131.  4. AS application code. 
  3132.  5. SQL user ID. 
  3133.  6. Character string of one or more characters indicating specification 
  3134.     transfer support: C indicates charts, R indicates reports, N indicates 
  3135.     network. 
  3136.  7. AS version number. 
  3137.  8. AS release number. 
  3138.  9. AS modification level number. 
  3139. 10. AS Small Programming Enhancement level number. 
  3140. 11. AS Device code page number. 
  3141. 12. AS Application code page number. 
  3142. 13. Number of the Code page AS is running in. 
  3143. 14. AS National Language Support machine readable instructions codepage number. 
  3144.  
  3145. Code page information is not available with AS Version 2 Release 2. 
  3146.  
  3147.  
  3148. ΓòÉΓòÉΓòÉ 17.2.10. DROP() ΓòÉΓòÉΓòÉ
  3149.  
  3150. ΓöÇΓöÇDROP(drop_parameter)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3151.  
  3152. Causes the host AS to perform a DROP using the given parameter. This results in 
  3153. a CDI or DB being dropped. 
  3154.  
  3155.  
  3156. ΓòÉΓòÉΓòÉ 17.2.11. ERRORTEXT ΓòÉΓòÉΓòÉ
  3157.  
  3158. ΓöÇΓöÇERRORTEXT(pointer,msgno)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3159.  
  3160. Returns the AS error message text for AS message msgno. 
  3161.  
  3162. pointer identifies a vector to be filled with the text. 
  3163.  
  3164.  
  3165. ΓòÉΓòÉΓòÉ 17.2.12. GETNEXTROW ΓòÉΓòÉΓòÉ
  3166.  
  3167. ΓöÇΓöÇGETNEXTROW(row_vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3168.  
  3169. Reads the next row of data from a host AS data table and puts the values into 
  3170. the vector  row_vector. For example, if four columns were selected from the 
  3171. host AS table, four elements would be generated in  row_vector. The types and 
  3172. formats of each element will be set to correspond to the host AS data. 
  3173.  
  3174. The CODE attribute will be set to 0 if the vector is filled with data or to a 
  3175. value of 9026 if no more data is available from the host. 
  3176.  
  3177. The NAME attribute specifies the host AS table to be used. 
  3178.  
  3179. While data is being read from host AS with a series of GETNEXTROW actions, most 
  3180. other actions are prohibited. The series of GETNEXTROW actions must be 
  3181. terminated by a RESETTABLE action or by setting the NAME attribute before other 
  3182. actions can be used. The GOTOTOP action can be used within a series of 
  3183. GETNEXTROW actions to restart reading of data from the beginning of the table. 
  3184.  
  3185.  
  3186. ΓòÉΓòÉΓòÉ 17.2.13. GETSVAR() ΓòÉΓòÉΓòÉ
  3187.  
  3188.                           ΓöîΓöÇ,0ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ,0ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3189. ΓöÇΓöÇGETSVAR(pointer,nameΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3190.                           Γöé          ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ  Γöé
  3191.                           ΓööΓöÇ,lowsub,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÿ
  3192.                                      ΓööΓöÇhighsubΓöÇΓöÿ
  3193. (Application System Version 3.2 only) gets the value of an existing AS session 
  3194. variable or gets the values of a set of elements of an existing session 
  3195. variable array, and places the values in an ASL variable. 
  3196.  
  3197. The ASL variable identified by pointer is filled with the value or values of 
  3198. the AS session variable. The variable will be set to either scalar or vector 
  3199. according to the AS session variable. 
  3200.  
  3201. name is the name of the AS session variable. 
  3202.  
  3203. lowsub is the lower requested subscript for AS session variable arrays. For 
  3204. scalars, this should be omitted or should be 0. 
  3205.  
  3206. If lowsub is 0 when getting AS session variable arrays, then all elements of 
  3207. the array will be returned. 
  3208.  
  3209. highsub is the higher requested subscript for AS session variable arrays. If 
  3210. lowsub is 0, then highsub should be 0 or should be omitted. If you want to get 
  3211. just one element from a session variable array, this parameter may be omitted 
  3212. or may be made equal to lowsub. 
  3213.  
  3214.  
  3215. ΓòÉΓòÉΓòÉ 17.2.14. GETTABLE ΓòÉΓòÉΓòÉ
  3216.  
  3217. ΓöÇΓöÇGETTABLE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3218.  
  3219. The rows of data for the current table and selected columns are retrieved into 
  3220. variables identified by RELOBJECT. If no columns have been selected, all 
  3221. columns are retrieved. 
  3222.  
  3223. If NAME has a null value, GETTABLE will get the current AS IN table. 
  3224.  
  3225.  
  3226. ΓòÉΓòÉΓòÉ 17.2.15. GOTOTOP() ΓòÉΓòÉΓòÉ
  3227.  
  3228. ΓöÇΓöÇGOTOTOP()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3229.  
  3230. Will restart reading from the first row of the table (used with the GETNEXTROW 
  3231. action). 
  3232.  
  3233.  
  3234. ΓòÉΓòÉΓòÉ 17.2.16. KEYS() ΓòÉΓòÉΓòÉ
  3235.  
  3236. ΓöÇΓöÇKEYS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3237.  
  3238. pointer identifies a vector to be filled with the names of the key columns of 
  3239. the AS table. Column names are returned with a leading minus sign ( -) when the 
  3240. column is in descending key sequence. 
  3241.  
  3242.  
  3243. ΓòÉΓòÉΓòÉ 17.2.17. LISTCAT() ΓòÉΓòÉΓòÉ
  3244.  
  3245. ΓöÇΓöÇLISTCAT(pointer,location,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3246.                               ΓööΓöÇfilterΓöÇΓöÿ   ΓööΓöÇapplΓöÇΓöÿ
  3247.  
  3248. The vector identified by pointer is filled with a list of tables located in 
  3249. location. The only value currently valid for location is AS. 
  3250.  
  3251. If filter is specified, it limits the list. Valid values for filter are 
  3252. APPLICATION, CHART, DATA, IN, PROCEDURE, QUERY, QS and REPORT. 
  3253.  
  3254. APPLICATION will return a list of the Application Codes available in the 
  3255. current AS session. 
  3256.  
  3257. IN will return a list of AS tables which can be the object of the AS IN 
  3258. command. 
  3259.  
  3260. If filter is omitted, LISTCAT will return a list of DATA tables, CHART and 
  3261. REPORT specification tables. 
  3262.  
  3263. If appl is specified, the LISTCAT is run against this AS Application Code. 
  3264. Otherwise, the LISTCAT refers to the catalog of the AS application code 
  3265. identified by the ASCODE attribute. appl is ignored if the filter value is 
  3266. APPLICATION. 
  3267.  
  3268.  
  3269. ΓòÉΓòÉΓòÉ 17.2.18. NOKEYS() ΓòÉΓòÉΓòÉ
  3270.  
  3271. ΓöÇΓöÇNOKEYS()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3272.  
  3273. The table is made into an unkeyed table. 
  3274.  
  3275.  
  3276. ΓòÉΓòÉΓòÉ 17.2.19. PUTSVAR() ΓòÉΓòÉΓòÉ
  3277.  
  3278. ΓöÇΓöÇPUTSVAR(pointer,nameΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3279.                          ΓööΓöÇ,lowsubΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÿ
  3280.                                    ΓööΓöÇ,highsubΓöÇΓöÿ
  3281. (Application System Version 3.2 only) Updates the value of an existing AS 
  3282. session variable or the values of a set of elements of an existing session 
  3283. variable array from an ASL variable. 
  3284.  
  3285. The values in the ASL variable identified by pointer are used to set the value 
  3286. or values of the AS session variable. 
  3287.  
  3288. name is the name of the existing AS session variable. 
  3289.  
  3290. lowsub is the lower element to be set in the AS session variable array. For 
  3291. scalars, this should be omitted or should be 0. 
  3292.  
  3293. highsub is the higher element to be set in the AS session variable array. For 
  3294. scalars, this should be omitted or should be 0. If you want to put just one 
  3295. element to a session variable array, this parameter may be omitted or may be 
  3296. made equal to lowsub. 
  3297.  
  3298.  
  3299. ΓòÉΓòÉΓòÉ 17.2.20. PUTTABLE() ΓòÉΓòÉΓòÉ
  3300.  
  3301. ΓöÇΓöÇPUTTABLE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3302.  
  3303. The rows of data for the current table and selected columns are written from 
  3304. variables identified by RELOBJECT and the names of previously selected columns. 
  3305. If no columns have been selected, all columns are written. 
  3306.  
  3307.  
  3308. ΓòÉΓòÉΓòÉ 17.2.21. RESETTABLE() ΓòÉΓòÉΓòÉ
  3309.  
  3310. ΓöÇΓöÇRESETTABLE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3311.  
  3312. This action will cancel all calculated columns defined by calling the 
  3313. CALCOLUMNS action, all column selections made with the SETCOLUMNS action. and 
  3314. all row selections defined by calling the SELECT action for the current host 
  3315. table. 
  3316.  
  3317. Note that this will not reset the SELECT attribute. This may be reset by 
  3318. setting the attribute to an empty expression. 
  3319.  
  3320.  
  3321. ΓòÉΓòÉΓòÉ 17.2.22. SELECT() ΓòÉΓòÉΓòÉ
  3322.  
  3323. ΓöÇΓöÇSELECT(select_rows)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3324.  
  3325. select_rows identifies a vector of up to 20 expressions used to select a subset 
  3326. of rows from the current table. 
  3327.  
  3328. Each expression should take the form of the parameters of the AS SELECT 
  3329. command. 
  3330.  
  3331. The result from SELECT will be 0 if no errors were detected, or will be the row 
  3332. number of the failing expression. 
  3333.  
  3334.  
  3335. ΓòÉΓòÉΓòÉ 17.2.23. SETCOLUMNS() ΓòÉΓòÉΓòÉ
  3336.  
  3337. ΓöÇΓöÇSETCOLUMNS(pVector,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3338.                          ΓöÇ"TABLE"ΓöÇΓöñ
  3339.                         ΓööΓöÇorderΓöÇΓöÇΓöÇΓöÿ
  3340.  
  3341. pVector points to a vector which contains the names of the columns to be 
  3342. selected from a table being used with the GETTABLE or PUTTABLE action. 
  3343.  
  3344. order is an optional parameter which specifies the order in which the column 
  3345. data is to be returned on a GETTABLE action. The SETCOLUMNS information is 
  3346. reset if the NAME attribute is changed. 
  3347.  
  3348. If order is set to TABLE or is not specified, the columns will be returned in 
  3349. the same order as the host table. If order is set to VECTOR, the columns will 
  3350. be returned in the order specified in the vector pointed to by pVector. 
  3351.  
  3352.  
  3353. ΓòÉΓòÉΓòÉ 17.2.24. SETKEYS() ΓòÉΓòÉΓòÉ
  3354.  
  3355. ΓöÇΓöÇSETKEYS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3356.  
  3357. pointer identifies a vector which contains the names of the columns which are 
  3358. to become the keys of the table being written  with the PUTTABLE action. Column 
  3359. names should have a leading - (minus) when the column is sequenced in 
  3360. descending key order. 
  3361.  
  3362.  
  3363. ΓòÉΓòÉΓòÉ 17.3. Examples ΓòÉΓòÉΓòÉ
  3364.  
  3365. OPEN TABLE Temp,          ! Open Table
  3366.  NAME = "HostAS",         ! Name of Table
  3367.  LOCATION = "D:\TEMP",    ! Its location
  3368.  MODE = "WRITE"           ! We want to write to it
  3369. OPEN AS Host,             ! Open a session with AS
  3370.  SERVERNAME = "DASSERV",  ! Name defined in SRPI
  3371.  ASCODE = "DEV",          ! Application Name on Host AS
  3372.  RELOBJECT = Temp,        ! Name of TABLE handle
  3373.  TYPE = "DATA",           ! Type of objects to transfer
  3374.  HOSTCODEPAGE = 285,      ! Hostpage
  3375.  NAME = "AMACK"           ! Name of AS object to transfer
  3376. CALL Host'GETTABLE()      ! Action to get Table from AS
  3377.                           ! and transfer it to TABLE temp
  3378. SHUT Temp                 ! Shut the TABLE
  3379. SHUT Host                 ! Close AS
  3380.  
  3381. Examples source library: 
  3382.  
  3383.  
  3384. ΓòÉΓòÉΓòÉ 17.4. More about AS ΓòÉΓòÉΓòÉ
  3385.  
  3386. o If the SERVERTYPE is SRPI, the host server CMSSERV or MVSSERV, should be 
  3387.   started on the mainframe before the host AS application is started on the PC. 
  3388.  
  3389.  
  3390. ΓòÉΓòÉΓòÉ 18. AS400SESSION ΓòÉΓòÉΓòÉ
  3391.  
  3392. The AS/400 interface provides AS/400 access using PC Support. The AS400SESSION 
  3393. object represents an AS/400 session, and the associated AS400TRANS object 
  3394. represents the transfer of data to and from an AS/400 system. 
  3395.  
  3396. With the AS400SESSION object, you can develop Visualizer applications that use 
  3397. valid AS/400 commands that are passed to an AS/400 for execution. Any resulting 
  3398. messages can be passed back to the Visualizer application. 
  3399.  
  3400. Attributes 
  3401.  
  3402. Actions 
  3403.  
  3404. Events: None. 
  3405.  
  3406. More about AS400SESSION 
  3407.  
  3408. See also: AS400TRANS 
  3409.  
  3410.  
  3411. ΓòÉΓòÉΓòÉ 18.1. Attributes ΓòÉΓòÉΓòÉ
  3412.  
  3413. CODE                  CODEDETAIL 
  3414. SYSTEM                TRACELEVEL 
  3415.  
  3416.  
  3417. ΓòÉΓòÉΓòÉ 18.1.1. CODE ΓòÉΓòÉΓòÉ
  3418.  
  3419. The latest AS/400 return code from any action or change of state. Read-only. 
  3420.  
  3421. Default: 0 (If successful) 
  3422.  
  3423.  
  3424. ΓòÉΓòÉΓòÉ 18.1.2. CODEDETAIL ΓòÉΓòÉΓòÉ
  3425.  
  3426. The last relevant AS/400 error message or error code. 
  3427.  
  3428.  
  3429. ΓòÉΓòÉΓòÉ 18.1.3. SYSTEM ΓòÉΓòÉΓòÉ
  3430.  
  3431. The Partner Logical Unit (PLU) alias name for the AS/400 as defined in OS/2 
  3432. Communications Manager. The name can be up to eight characters long and can be 
  3433. queried, but must be set on open. 
  3434.  
  3435.  
  3436. ΓòÉΓòÉΓòÉ 18.1.4. TRACELEVEL ΓòÉΓòÉΓòÉ
  3437.  
  3438. Whether a trace file, called FTBAS400, is produced for diagnostic purposes. 
  3439.  
  3440. 0         Tracing off 
  3441. Nonzero   Tracing on 
  3442.  
  3443. Default: 0 (Off) 
  3444.  
  3445.  
  3446. ΓòÉΓòÉΓòÉ 18.2. Actions ΓòÉΓòÉΓòÉ
  3447.  
  3448. COMMAND() 
  3449.  
  3450.  
  3451. ΓòÉΓòÉΓòÉ 18.2.1. COMMAND() ΓòÉΓòÉΓòÉ
  3452.  
  3453. ΓöÇΓöÇCOMMAND(string,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3454.                     ΓööΓöÇvectorΓöÇΓöÿ
  3455.  
  3456. Takes a single parameter which can be any character string value, such as a 
  3457. constant, a data item, or an expression. It can also be a vector, in which case 
  3458. all elements of the vector are appended to make one command string. The string 
  3459. is passed to the AS/400 for immediate execution without any processing, 
  3460. interpretation, or modification by Visualizer and is committed implicitly. 
  3461.  
  3462. The optional vector parameter is used to hold any message that is returned from 
  3463. the AS/400 as a result of the command previously transferred. An example of 
  3464. COMMAND is shown below: 
  3465.  
  3466. ! The library must already exist
  3467. DEFINE Command[0]
  3468. INSERT Command[0] = "CRTPF FILE(LIBNAME/NEWFILE) "
  3469. INSERT Command[0] = "SRCFILE(LIBNAME/SOURCE)"
  3470. CALL Session'COMMAND(Command[0],Message[0])
  3471.     ! Pass the AS/400 command in the vector named
  3472.     ! Command to the AS/400 and place any message returned
  3473.     ! in the vector named Message.
  3474.  
  3475.  
  3476. ΓòÉΓòÉΓòÉ 18.3. More about AS400SESSION ΓòÉΓòÉΓòÉ
  3477.  
  3478. In order to retrieve data you must use a combination of the AS400SESSION object 
  3479. (to establish communications with the AS/400), and the AS400TRANS object (to 
  3480. specify the selection requests and obtain the data). 
  3481.  
  3482. Modification of data within OS/400* or SQL/400* tables can be done in one of 
  3483. two ways: 
  3484.  
  3485. o By reading data from the OS/400 or SQL/400 table into a local table, 
  3486.   modifying the data in the local table, then loading the local table to the 
  3487.   AS/400 to overwrite the previous table. 
  3488.  
  3489. o By using the Command action to send a CL command to a database on the AS/400. 
  3490.  
  3491. You may only have one AS400SESSION object open at any one time in a Visualizer 
  3492. application. Therefore concurrent access to multiple databases is not 
  3493. supported. 
  3494.  
  3495. The AS400SESSION object is the parent of any associated AS400TRANS object 
  3496. instance. If the AS400SESSION object is closed, any AS400TRANS object, which is 
  3497. dependent on the AS400SESSION, will also be closed. An AS400SESSION object can 
  3498. only be associated with one AS400TRANS object. 
  3499.  
  3500. The code below opens an AS/400 session: 
  3501.  
  3502. OPEN AS400SESSION Session, SYSTEM = "as400"
  3503.  
  3504.  
  3505. ΓòÉΓòÉΓòÉ 19. AS400TRANS ΓòÉΓòÉΓòÉ
  3506.  
  3507. The AS400TRANS object allows you to access data in an OS/400 or SQL/400 table. 
  3508. In order to open it, you must have previously opened an AS400SESSION object. 
  3509. You can only have one AS400TRANS object for each AS400SESSION object. 
  3510.  
  3511. Parent: AS400SESSION 
  3512.  
  3513. Attributes 
  3514.  
  3515. Actions 
  3516.  
  3517. Events: None. 
  3518.  
  3519. More about AS400TRANS 
  3520.  
  3521. See also: AS400SESSION 
  3522.  
  3523.  
  3524. ΓòÉΓòÉΓòÉ 19.1. Attributes ΓòÉΓòÉΓòÉ
  3525.  
  3526. CODE                  CODEDETAIL 
  3527. EOF                   GENKEYCOL 
  3528. MODE                  TABLE 
  3529.  
  3530.  
  3531. ΓòÉΓòÉΓòÉ 19.1.1. CODE ΓòÉΓòÉΓòÉ
  3532.  
  3533. The latest return code from the AS/400 as a result of any action or change of 
  3534. state. Read-only. 
  3535.  
  3536. Default: 0 (If successful) 
  3537.  
  3538.  
  3539. ΓòÉΓòÉΓòÉ 19.1.2. CODEDETAIL ΓòÉΓòÉΓòÉ
  3540.  
  3541. The latest relevant AS/400 error message, error code or associated explanatory 
  3542. information. This code sometimes provides more detail related to the error 
  3543. return in the CODE attribute. Read-only. 
  3544.  
  3545.  
  3546. ΓòÉΓòÉΓòÉ 19.1.3. EOF ΓòÉΓòÉΓòÉ
  3547.  
  3548. EOF is set to 1 (true) when a SNAPSHOT or GETNEXTROW action can fetch no more 
  3549. rows from a table. Read-only. 
  3550.  
  3551.  
  3552. ΓòÉΓòÉΓòÉ 19.1.4. GENKEYCOL ΓòÉΓòÉΓòÉ
  3553.  
  3554. A name to be used as a key sequence. If set, an extra column will be added to 
  3555. the Visualizer table generated by the SNAPSHOT action. This will be the key for 
  3556. the table. If the specified name is already used in the Visualizer table, the 
  3557. duplicate, existing column is renamed. 
  3558.  
  3559. Default: No key column 
  3560.  
  3561. trans'GENKEYCOL = "NewKS"  ! set the key sequence to NewKS
  3562.  
  3563. Note:   You cannot modify GENKEYCOL during a data transfer as the destination 
  3564.         table for the SNAPSHOT or GETNEXTROW operation has already been 
  3565.         prepared. 
  3566.  
  3567.  
  3568. ΓòÉΓòÉΓòÉ 19.1.5. MODE ΓòÉΓòÉΓòÉ
  3569.  
  3570. The direction of data transfer for this instance of the object. Must be set on 
  3571. OPEN, then read-only. 
  3572.  
  3573. "R"       Read 
  3574. "W"       Write 
  3575.  
  3576. Default: None 
  3577.  
  3578.  
  3579. ΓòÉΓòÉΓòÉ 19.1.6. TABLE ΓòÉΓòÉΓòÉ
  3580.  
  3581. The identity of the Visualizer table object to be used for the target table 
  3582. used for a read operation or for the source table used for a write operation. 
  3583. Can be modified.  For READ, this must identify an empty table with no columns 
  3584. defined. For WRITE, actions use the definition of the table and its contents. 
  3585. When the attribute is queried a pointer to the identity will be returned, NOT 
  3586. the identity itself. 
  3587.  
  3588. Note:   You cannot modify TABLE during data transfer. 
  3589.  
  3590. Default: None 
  3591.  
  3592. oldid = trans'TABLE  ! get the identity of the table object
  3593. trans'TABLE = newid  ! set the new identity
  3594.  
  3595.  
  3596. ΓòÉΓòÉΓòÉ 19.2. Actions ΓòÉΓòÉΓòÉ
  3597.  
  3598. GETNEXTROW()            GOTOTOP() 
  3599. LOAD()                  SETEXPR() 
  3600. SNAPSHOT() 
  3601.  
  3602.  
  3603. ΓòÉΓòÉΓòÉ 19.2.1. GETNEXTROW() ΓòÉΓòÉΓòÉ
  3604.  
  3605. ΓöÇΓöÇGETNEXTROW(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3606.                 ΓööΓöÇvectorΓöÇΓöÿ
  3607.  
  3608. Reads one row resulting from the current SQL SELECT expression from a table in 
  3609. an AS/400 system and places the row returned into either or both of the 
  3610. following: 
  3611.  
  3612. o An ASL vector. If the optional parameter is supplied, the values for each 
  3613.   column in the resulting row are placed sequentially in the vector. 
  3614.  
  3615. o A table specified by TABLE. The resulting row is appended to the table. 
  3616.  
  3617. After a GETNEXTROW() action, the current query remains set, and the next row 
  3618. resulting from the query becomes available for reading. If a SNAPSHOT() action 
  3619. is subsequently performed, the number of the remaining rows resulting from the 
  3620. current query and specified by the SNAPSHOT are read. GETNEXTROW() is valid 
  3621. only in READ mode after a SETEXPR action. 
  3622.  
  3623.  
  3624. ΓòÉΓòÉΓòÉ 19.2.2. GOTOTOP() ΓòÉΓòÉΓòÉ
  3625.  
  3626. ΓöÇΓöÇGOTOTOP()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3627.  
  3628. Resets the position of the cursor to the top of the table in the AS/400 system 
  3629. from which data is being retrieved, so that a subsequent GETNEXTROW() will 
  3630. deliver the first row of the table. 
  3631.  
  3632.  
  3633. ΓòÉΓòÉΓòÉ 19.2.3. LOAD() ΓòÉΓòÉΓòÉ
  3634.  
  3635. ΓöÇΓöÇLOAD()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3636.  
  3637. Transfers the Visualizer table identified in TABLE to the AS/400 system. A 
  3638. REPLACE expression must be set in SETEXPR() that includes a column list, for 
  3639. example:  REPLACE col1,col2,col3 INTO tablename. If a SELECT expression is 
  3640. used, the REPLACE keyword and column list are generated automatically when the 
  3641. SELECT expression is delimited by exclamation marks (!), for example: 
  3642.  
  3643. !SELECT * FROM QGPL/EMPDATA! INTO QGPL/EMPDATA
  3644.  
  3645. The destination table must have been previously defined on the AS/400 system so 
  3646. that the number of its columns equals that of the Visualizer table, and their 
  3647. data types are either the same or are convertible. This action is only valid in 
  3648. WRITE mode. 
  3649.  
  3650.  
  3651. ΓòÉΓòÉΓòÉ 19.2.4. SETEXPR() ΓòÉΓòÉΓòÉ
  3652.  
  3653. ΓöÇΓöÇSETEXPR(vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3654.  
  3655. Takes an input expression, which can be a scalar or vector constant or 
  3656. variable. The expression can also be a whole vector (vector[0]) consisting of 
  3657. many strings, which are concatenated for each element. This allows complex SQL 
  3658. expressions to be used for selecting data for transfer, either to or from an 
  3659. AS/400. The query is given and the result becomes available for processing. If 
  3660. an expression was previously set, it will discard that query and its associated 
  3661. resources will be freed. 
  3662.  
  3663. The code below specifies an SQL query: 
  3664.  
  3665. CALL trans'SETEXPR('SELECT * FROM LIB/STAFF(STAFF1)')
  3666.  
  3667.  
  3668. ΓòÉΓòÉΓòÉ 19.2.5. SNAPSHOT() ΓòÉΓòÉΓòÉ
  3669.  
  3670. ΓöÇΓöÇSNAPSHOT(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3671.               ΓööΓöÇnumber_of_rowsΓöÇΓöÿ
  3672.  
  3673. This statement maps the result of an SQL query into a Visualizer table. The 
  3674. mode of the object must be READ, a valid expression must have been set, and a 
  3675. valid unused Visualizer table object ID must be set in TABLE. If you specify 
  3676. number_of_rows, then that number of rows is passed into the Visualizer table. 
  3677. If you do not specify the number of rows, then all the rows are passed to the 
  3678. table. 
  3679.  
  3680. Data types map as follows: 
  3681.  
  3682. AS/400    Visualizer 
  3683. A         Character 
  3684. B         Numeric 
  3685. F         Numeric 
  3686. H         Character (no direct equivalent) 
  3687. P         Numeric 
  3688. Date      Date 
  3689. Time      Time 
  3690.  
  3691. Name conversion is done automatically. The names of the Visualizer columns 
  3692. might be changed because SQL queries do not always generate valid Visualizer 
  3693. column names. 
  3694.  
  3695. In the example below, the SQL result will be returned in the Visualizer table. 
  3696.  
  3697. ! Open AS400 Session
  3698. OPEN AS400SESSION session, SYSTEM = "AS400"
  3699. !Delete the table if it already exists
  3700. OPEN SYSTEM sys
  3701. FORGIVE
  3702.   CALL sys'DELETE("D:\TEMP\AS400.TAB")
  3703. !Open the table for write
  3704. OPEN TABLE mytab,
  3705.  NAME = "AS400.TAB",
  3706.  LOCATION = "D:\TEMP",
  3707.  MODE = "WRITE"
  3708.  
  3709. !Open AS400 for data access
  3710. OPEN AS400TRANS trans, session,
  3711.  TABLE = mytab,
  3712.  MODE = "R"
  3713.  
  3714. ! Set up SELECT statement
  3715. CALL trans'SETEXPR("SELECT * FROM MLIB/EMPDATA(EMPDATA)")
  3716.  
  3717. CALL trans'SNAPSHOT(40)  ! retrieve the first 40 rows
  3718. CALL trans'SNAPSHOT()    ! retrieve the remaining rows
  3719. SHUT mytab
  3720. SHUT session
  3721.  
  3722. A subsequent call with the same code will deliver the next forty SQL result 
  3723. rows. The new rows are appended to the end of the table. 
  3724.  
  3725. Note:   You can abort a SNAPSHOT action after the operation has started by 
  3726.         pressing Break while holding down the Ctrl key. A Ctrl+Break interrupts 
  3727.         the SNAPSHOT action, closes the current query and resets the cursor. 
  3728.  
  3729.  
  3730. ΓòÉΓòÉΓòÉ 19.3. More about AS400TRANS ΓòÉΓòÉΓòÉ
  3731.  
  3732. You can query a database on an AS/400 system and place the result into a 
  3733. Visualizer table. Applications can place data into a table and deliver the 
  3734. table objects to the AS/400 system. Applications can also use a Visualizer 
  3735. table as a template for the creation of AS/400 tables. 
  3736.  
  3737. The AS400TRANS object can have one of two modes, depending on the direction of 
  3738. the transfer. The object is controlling the transfer of data either from an SQL 
  3739. query to a Visualizer table (known as READ), or from a Visualizer table to an 
  3740. SQL base table (known as WRITE). 
  3741.  
  3742. The object provides the following function: 
  3743.  
  3744. o The ability to read a whole table. 
  3745.  
  3746. o The ability to read a number of rows (see SNAPSHOT). 
  3747.  
  3748. o Creation of AS/400 tables using Visualizer tables as a template 
  3749.  
  3750. o The ability to replace the contents of an AS/400 table with those of a 
  3751.   Visualizer table, deleting the existing AS/400 table, and replacing it with 
  3752.   the Visualizer table. 
  3753.  
  3754. The AS400SESSION object is intended to persist over long periods, while the 
  3755. AS400TRANS object is intended to be used as a disposable object (used once for 
  3756. a specific transaction and then to be discarded). 
  3757.  
  3758. The AS400SESSION object is used to control the database while AS400TRANS is 
  3759. used to exchange data. 
  3760.  
  3761. The security of data within the AS/400 databases relies on the AS/400 security. 
  3762. There is no provision for direct access to the control structures used within 
  3763. the interfaces. 
  3764.  
  3765.  
  3766. ΓòÉΓòÉΓòÉ 20. ASIN(), ASIND() ΓòÉΓòÉΓòÉ
  3767.  
  3768. The ASIN() and ASIND() functions return the angle for a given sine. 
  3769.  
  3770. The ASIN() function returns the angle in radians. The ASIND() function returns 
  3771. the angle in degrees. 
  3772.  
  3773. ΓöÇΓöÇASIN(sine)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3774.  
  3775. ΓöÇΓöÇASIND(sine)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3776.  
  3777. Examples 
  3778.  
  3779.  
  3780. ΓòÉΓòÉΓòÉ 20.1. Examples ΓòÉΓòÉΓòÉ
  3781.  
  3782. x = ASIN(0.73)               !  Result is 0.82 (radians)
  3783. x = ASIND(0.36)              !  Result is 21.1 (degrees)
  3784.  
  3785. Examples source library: 
  3786.  
  3787.  
  3788. ΓòÉΓòÉΓòÉ 21. ATAN(), ATAND() ΓòÉΓòÉΓòÉ
  3789.  
  3790. The ATAN() and ATAND() functions return the angle for a given tangent. 
  3791.  
  3792. The ATAN() function returns the angle in radians. The ATAND() function returns 
  3793. the angle in degrees. 
  3794.  
  3795. ΓöÇΓöÇATAN(tangent)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3796.  
  3797. ΓöÇΓöÇATAND(tangent)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3798.  
  3799. Examples 
  3800.  
  3801.  
  3802. ΓòÉΓòÉΓòÉ 21.1. Examples ΓòÉΓòÉΓòÉ
  3803.  
  3804. x = ATAN(1.16)               !  Result is 0.86 (radians)
  3805. x = ATAND(1.66)              !  Result is 58.93 (degrees)
  3806.  
  3807. Examples source library: 
  3808.  
  3809.  
  3810. ΓòÉΓòÉΓòÉ 22. BITMAP ΓòÉΓòÉΓòÉ
  3811.  
  3812. The BITMAP graphics primitive object class displays an instance of a bit map. 
  3813.  
  3814. Parent: DEFINE 
  3815.  
  3816. Attributes 
  3817.  
  3818. Actions: None. 
  3819.  
  3820. Events: None. 
  3821.  
  3822. Examples 
  3823.  
  3824. See also: PUSH 
  3825.  
  3826.  
  3827. ΓòÉΓòÉΓòÉ 22.1. Attributes ΓòÉΓòÉΓòÉ
  3828.  
  3829. BGCOLOR               BITMAP 
  3830. CLASSNAME             DRAGABLE 
  3831. FGCOLOR               ID 
  3832. RESOURCE              SIZEX 
  3833. SIZEY 
  3834.  
  3835. The following standard graphics attributes are also available. They are 
  3836. described in Standard graphics attributes: 
  3837.  
  3838. MIX                   SELECTED 
  3839. X                     Y 
  3840. SELECTABLE            VISIBLE 
  3841.  
  3842.  
  3843. ΓòÉΓòÉΓòÉ 22.1.1. BGCOLOR ΓòÉΓòÉΓòÉ
  3844.  
  3845. Overrides the background color specified in the bit map. 
  3846.  
  3847. Valid for monochrome bit maps only.  Integer in the range 1-19. See 
  3848. Colors and colorcodes for details of colors available. 
  3849.  
  3850. Default: Color used in the window. 
  3851.  
  3852.  
  3853. ΓòÉΓòÉΓòÉ 22.1.2. BITMAP ΓòÉΓòÉΓòÉ
  3854.  
  3855. Name of the bit map, including full path name, file name, and file extension. 
  3856. Subject to system storage resources, there is no maximum size for the bit map 
  3857. file. BITMAP and RESOURCE are mutually exclusive. Formats supported include 
  3858. PCX, TIF, GIF, and OS/2 1.3 or 2.0 BMP. 
  3859.  
  3860. Set on OPEN, then read-only. 
  3861.  
  3862. Default: "" 
  3863.  
  3864.  
  3865. ΓòÉΓòÉΓòÉ 22.1.3. CLASSNAME ΓòÉΓòÉΓòÉ
  3866.  
  3867. Name of the object class. 
  3868.  
  3869. Default: None 
  3870.  
  3871.  
  3872. ΓòÉΓòÉΓòÉ 22.1.4. DRAGABLE ΓòÉΓòÉΓòÉ
  3873.  
  3874. Whether the bit map can be dragged: 
  3875.  
  3876. 0         Bit map cannot be dragged 
  3877. 1         Bit map can be dragged. 
  3878.  
  3879. Default: 0 (Cannot be dragged) 
  3880.  
  3881.  
  3882. ΓòÉΓòÉΓòÉ 22.1.5. FGCOLOR ΓòÉΓòÉΓòÉ
  3883.  
  3884. Overrides the foreground color specified in the bit map. 
  3885.  
  3886. Valid for monochrome bit maps only.  Integer in the range 1-19. See 
  3887. Colors and colorcodes for details of colors available. 
  3888.  
  3889. Default: Color used in the window. 
  3890.  
  3891.  
  3892. ΓòÉΓòÉΓòÉ 22.1.6. ID ΓòÉΓòÉΓòÉ
  3893.  
  3894. ID number of this BITMAP from within the specified resource file. 
  3895.  
  3896. Set on OPEN, then read-only. 
  3897.  
  3898. Default: 0 
  3899.  
  3900.  
  3901. ΓòÉΓòÉΓòÉ 22.1.7. RESOURCE ΓòÉΓòÉΓòÉ
  3902.  
  3903. Name of the resource (DLL) file (and path name if needed). BITMAP and RESOURCE 
  3904. are mutually exclusive. 
  3905.  
  3906. Set on OPEN, then read-only. 
  3907.  
  3908. Default: DSS path name 
  3909.  
  3910.  
  3911. ΓòÉΓòÉΓòÉ 22.1.8. SIZEX ΓòÉΓòÉΓòÉ
  3912.  
  3913. Size, in world coordinates. 
  3914.  
  3915. Default: 0 
  3916.  
  3917.  
  3918. ΓòÉΓòÉΓòÉ 22.1.9. SIZEY ΓòÉΓòÉΓòÉ
  3919.  
  3920. Size, in world coordinates. 
  3921.  
  3922. Default: 0 
  3923.  
  3924.  
  3925. ΓòÉΓòÉΓòÉ 22.2. Examples ΓòÉΓòÉΓòÉ
  3926.  
  3927. The example belows displays the PROGRAM bit map. 
  3928.  
  3929. OPEN WINDOW sampwin,
  3930.  TITLE="Bitmap window",
  3931.  SIZEX=100, SIZEY=100
  3932. OPEN GRAPHIC graphbox, sampwin,
  3933.  SIZEX=50, SIZEY=50, X=25, Y=25,
  3934.  WCSMAXX=200, WCSMAXY=200
  3935. OPEN DEFINE def1, graphbox
  3936. OPEN BITMAP bmapi, def1,
  3937.  BITMAP="C:\DSS\PROG.BMP",
  3938.  SIZEX=200, SIZEY=200, X=0, Y=0
  3939.  
  3940. Examples source library: 
  3941.  
  3942.  
  3943. ΓòÉΓòÉΓòÉ 23. BREAK ΓòÉΓòÉΓòÉ
  3944.  
  3945. The BREAK statement gives the programmer control over the handling of a control 
  3946. break entered by an end user. 
  3947.  
  3948. ΓöÇΓöÇBREAKΓöÇΓöÇΓö¼ΓöÇENABLEΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  3949.            Γö£ΓöÇDISABLEΓöÇΓöÇΓöñ
  3950.            Γö£ΓöÇCHECKΓöÇΓöÇΓöÇΓöÇΓöñ
  3951.            Γö£ΓöÇCANCELΓöÇΓöÇΓöÇΓöñ
  3952.            ΓööΓöÇSIMULATEΓöÇΓöÿ
  3953.  
  3954. Examples 
  3955.  
  3956. More about BREAK 
  3957.  
  3958. See also: BREAK() 
  3959.  
  3960.  
  3961. ΓòÉΓòÉΓòÉ 23.1. Examples ΓòÉΓòÉΓòÉ
  3962.  
  3963. ON START
  3964. DO
  3965.   BREAK ENABLE
  3966.   ...  ! Enable interruption during startup.
  3967. END
  3968.  
  3969. ON BREAK
  3970. DO
  3971.   IF A.System.Event = "START"
  3972.   THEN STOP
  3973. END
  3974.  
  3975. ON QUEUE
  3976. DO
  3977.   ...  ! Control break is disabled by default.
  3978.   BREAK ENABLE
  3979.   ...  ! Code that is to be interruptible.
  3980.   BREAK DISABLE
  3981.   ...  ! Back to code that must not be interrupted.
  3982. END
  3983.  
  3984. Examples source library: 
  3985.  
  3986.  
  3987. ΓòÉΓòÉΓòÉ 23.2. More about BREAK ΓòÉΓòÉΓòÉ
  3988.  
  3989. o The system variable  A.System.Event is not set on entry to an ON BREAK block. 
  3990.   It continues to indicate the event which was interrupted. 
  3991.  
  3992. o A control break received during the system phase of START is controlled by 
  3993.   the BREAK state of the calling task. If it is enabled, the start is cancelled 
  3994.   and a break is signaled. If it is disabled, the program starts and the break 
  3995.   can be handled by its ON START block. 
  3996.  
  3997. o The system acknowledges receipt of the break as soon as it detects it, 
  3998.   independently of the disabled state of the ASL program. 
  3999.  
  4000. o If there is a return to the wait state without any BREAK ENABLE, the break is 
  4001.   ignored (except for the message). 
  4002.  
  4003. o The system polls for an outstanding break at certain points. The actual 
  4004.   points are not precisely defined but could be, for example, the end of an 
  4005.   iterative loop, the START statement, or after a MESSAGE statement. 
  4006.  
  4007. o The following process-intensive language items can be interrupted using 
  4008.   control break: ANALYZE, COPY, DELETE, INDEX, GATHER. 
  4009.  
  4010.  
  4011. ΓòÉΓòÉΓòÉ 24. BREAK() ΓòÉΓòÉΓòÉ
  4012.  
  4013. The BREAK() function returns 1 if at least one control break is outstanding. 
  4014.  
  4015. ΓöÇΓöÇBREAK()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4016.  
  4017. Examples 
  4018.  
  4019. More about BREAK() 
  4020.  
  4021. See also: BREAK 
  4022.  
  4023.  
  4024. ΓòÉΓòÉΓòÉ 24.1. Examples ΓòÉΓòÉΓòÉ
  4025.  
  4026. ON ENTER
  4027. DO
  4028.   DECLARE NUMERIC x
  4029.   BREAK DISABLE
  4030.   DO x = 1:1000000
  4031.     IF BREAK()
  4032.     THEN TERMINATE
  4033.   END
  4034. END
  4035.  
  4036. Examples source library: 
  4037.  
  4038.  
  4039. ΓòÉΓòÉΓòÉ 24.2. More about BREAK() ΓòÉΓòÉΓòÉ
  4040.  
  4041. o Even though control breaks by the end user are disabled to protect data 
  4042.   integrity inside a repeating DO statement, the BREAK() function allows an 
  4043.   exit at a safe and convenient point in the code. 
  4044.  
  4045.  
  4046. ΓòÉΓòÉΓòÉ 25. CALL ΓòÉΓòÉΓòÉ
  4047.  
  4048. The CALL statement calls a procedure or an object action routine. The statement 
  4049. specifies the name of the procedure or action required and any parameters to be 
  4050. passed to that routine. 
  4051.  
  4052.                                 <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4053. ΓöÇΓöÇCALLΓöÇΓöÇΓö¼ΓöÇprocedureΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ(ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö┤ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4054.           ΓööΓöÇobject'actionΓöÇΓöÿ      ΓööΓöÇparameterΓöÇΓöÿ
  4055.  
  4056. Examples 
  4057.  
  4058. More about CALL 
  4059.  
  4060. See also: LEAVE, LIBRARY ASL, LIBRARY DLL, LIBRARY REXX, LIBRARY ENTRY, 
  4061. LIBRARY LOCAL, PROCEDURE, PROCEDURE(), RETURN 
  4062.  
  4063. Also see the actions of specific objects. 
  4064.  
  4065.  
  4066. ΓòÉΓòÉΓòÉ 25.1. Examples ΓòÉΓòÉΓòÉ
  4067.  
  4068.  
  4069. CALL Reset()
  4070. CALL main_window'REFRESH()
  4071.  
  4072. p = PROCEDURE('Reset')
  4073. CALL (?p)()
  4074.  
  4075. PROCEDURE Reset  ! No parameters
  4076. DO
  4077.   CLEAR Data
  4078.   CLEAR Totals
  4079.   NewFile = "Yes"
  4080. END
  4081.  
  4082. Examples source library: 
  4083.  
  4084.  
  4085. ΓòÉΓòÉΓòÉ 25.2. More about CALL ΓòÉΓòÉΓòÉ
  4086.  
  4087. o When the requested procedure terminates, execution control is returned to the 
  4088.   statement following the CALL statement. 
  4089.  
  4090. o A procedure can be called from within another procedure. 
  4091.  
  4092. o A procedure can be called recursively. 
  4093.  
  4094. o A procedure can be defined in the same program, or it can be in a library 
  4095.   program which is identified by the LIBRARY statement. 
  4096.  
  4097. o On an indirect procedure call using a procedure pointer, the parameter list 
  4098.   parentheses are required, even if there are no parameters. Parentheses are 
  4099.   also required around the procedure reference to allow for the lower level of 
  4100.   precedence of the indirection operator  ?. 
  4101.  
  4102. o A procedure or object action can also be invoked as a function. See PROCEDURE 
  4103.   for details. 
  4104.  
  4105.  
  4106. ΓòÉΓòÉΓòÉ 26. CASE ... WHEN ... OTHERWISE ... END ΓòÉΓòÉΓòÉ
  4107.  
  4108. The CASE statement processes one of several sections of code, depending on the 
  4109. value of an expression. 
  4110.  
  4111. The WHEN statement identifies a potential value of the CASE expression. When 
  4112. the expression takes on that value, the statement or statements following the 
  4113. WHEN statement are executed. The TRUE, FALSE, and NULL statements perform the 
  4114. function of WHEN for specific values of the expression. 
  4115.  
  4116. The OTHERWISE statement can be placed as the last statement in a CASE construct 
  4117. to introduce statements to be executed if the value of the CASE expression has 
  4118. not been identified by the related WHEN clauses. 
  4119.  
  4120.             <ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4121. ΓöÇΓöÇCASEΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇWHENΓöÇΓöÇlogicalexpΓöÇΓöÇstatementlistΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4122.           Γöé      <ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  4123.           ΓööΓöÇexpΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇWHENΓöÇΓöÇmatchexpΓöÇΓö¼ΓöÇΓöÇstatementlistΓöÇΓö┤ΓöÇΓöÿ
  4124.                    Γö£ΓöÇTRUEΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4125.                    Γö£ΓöÇFALSEΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4126.                    ΓööΓöÇNULLΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4127. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇENDΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4128.    ΓööΓöÇOTHERWISEΓöÇΓöÇstatementlistΓöÇΓöÿ
  4129.  
  4130. There are three forms of the CASE statement. 
  4131.  
  4132. All three forms include several sections of code, with each section attached to 
  4133. a triggering condition. Each section of code can be a single statement or 
  4134. several statements enclosed by DO and END. 
  4135.  
  4136. In the first form of the CASE statement, each section of code is preceded by 
  4137. the keyword WHEN and a logical expression, logicalexp. The code following the 
  4138. first logical expression that is true is processed. 
  4139.  
  4140. The second form of CASE is used when one side of a logical expression is the 
  4141. same for each section. An example would be where a variable is compared with 
  4142. several possible values. Here this constant expression, exp, is compared with 
  4143. each possible matching expression, matchexp, in turn. The statementlist 
  4144. following the first matchexp that is equal to exp is processed. 
  4145.  
  4146. The third form of the CASE statement allows one of three sections of code to be 
  4147. processed. Depending on the result of the constant expression, exp, the 
  4148. statementlist following the TRUE, FALSE, or NULL keywords is processed. 
  4149.  
  4150. The OTHERWISE statement is optional. The OTHERWISE statement is used to process 
  4151. statementlist for any values in a CASE expression which are not explicitly 
  4152. identified by the preceding CASE clauses. 
  4153.  
  4154. Examples 
  4155.  
  4156. More about CASE ... WHEN ... OTHERWISE ... END 
  4157.  
  4158. See also: IF ... THEN ... ELSE, IF() 
  4159.  
  4160.  
  4161. ΓòÉΓòÉΓòÉ 26.1. Examples ΓòÉΓòÉΓòÉ
  4162.  
  4163. ON SELECT
  4164. DO
  4165.   CASE A.System.Object
  4166.     WHEN "SAVE"
  4167.       MESSAGE "FTB0001",0,"1 - Saved ..."
  4168.     WHEN "LOAD"
  4169.       MESSAGE "FTB0001",0,"1 - Loaded ..."
  4170.   END
  4171.  
  4172.   X = 9
  4173.   Y = 10
  4174.   CASE X < Y
  4175.     TRUE
  4176.       MESSAGE "FTB0001",0,"2 - True ..."
  4177.     FALSE
  4178.       MESSAGE "FTB0001",0,"2 - False ..."
  4179.     NULL
  4180.       MESSAGE "FTB0001",0,"2 - Null ..."
  4181.   END
  4182.  
  4183.   CASE
  4184.     WHEN x < y
  4185.       MESSAGE "FTB0001",0,"3 - Less ..."
  4186.     WHEN x > y
  4187.       MESSAGE "FTB0001",0,"3 - Greater ..."
  4188.     WHEN x = y
  4189.       MESSAGE "FTB0001",0,"3 - Equal ..."
  4190.   END
  4191.  
  4192.   CASE COMPARE( x, y )
  4193.     WHEN -1
  4194.       MESSAGE 'FTB0001',0,'4 - Less ...'
  4195.     WHEN 1
  4196.       MESSAGE 'FTB0001',0,'4 - Greater ...'
  4197.     OTHERWISE
  4198.       MESSAGE 'FTB0001",0,"4 - Equal ...'
  4199.   END
  4200.  
  4201.   CASE A.System.Object
  4202.     WHEN "LOAD"
  4203.       MESSAGE "FTB0001",0,"5 - Load ..."
  4204.     OTHERWISE
  4205.       MESSAGE "FTB0001",0,"5 - Otherwise"
  4206.   END
  4207.  
  4208. Examples source library: 
  4209.  
  4210.  
  4211. ΓòÉΓòÉΓòÉ 26.2. More about CASE ... WHEN ... OTHERWISE ... END ΓòÉΓòÉΓòÉ
  4212.  
  4213. o The WHEN expression is executed first and the result is compared with the 
  4214.   result of the CASE expression.  If no CASE expression is supplied, the WHEN 
  4215.   expression is checked for being true (nonzero). 
  4216.  
  4217. o Any number of WHEN statements can be defined for a single CASE statement. 
  4218.  
  4219. o Only one WHEN statement is executed for a given execution of the CASE 
  4220.   statement. The statement executed is the first for which the condition is 
  4221.   true. 
  4222.  
  4223. o All data types can be defined as suitable WHEN values. 
  4224.  
  4225. o WHEN can be followed by a simple value, or by a more complex expression which 
  4226.   includes operators. 
  4227.  
  4228. o If exp is not present, any TRUE blocks, FALSE blocks, or NULL blocks are 
  4229.   ignored. 
  4230.  
  4231. o The IF statement performs a two-way test which is equivalent to 
  4232.   CASE...TRUE...OTHERWISE...END. A three-way test which takes account of NULL 
  4233.   values is performed by CASE...TRUE...FALSE...NULL...END. 
  4234.  
  4235.  
  4236. ΓòÉΓòÉΓòÉ 27. CCHARPOS() ΓòÉΓòÉΓòÉ
  4237.  
  4238. The CCHARPOS() DBCS function returns the position, in a DBCS string, of the 
  4239. first character of a specified word in that string. 
  4240.  
  4241.                             ΓöîΓöÇ" "ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4242. ΓöÇΓöÇCCHARPOS(string,number,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4243.                             ΓööΓöÇseparatorΓöÇΓöÿ
  4244.  
  4245. More about CCHARPOS() 
  4246.  
  4247. See also: CHARPOS() 
  4248.  
  4249.  
  4250. ΓòÉΓòÉΓòÉ 27.1. More about CCHARPOS() ΓòÉΓòÉΓòÉ
  4251.  
  4252. o If string is empty or contains only separators, CCHARPOS() returns zero. 
  4253.  
  4254. o If there are fewer than number words in the string, the function returns 
  4255.   zero. 
  4256.  
  4257. o Any separator parameter must be a one-character string. DBCS characters 
  4258.   cannot be used as separators.  However, when an SBCS space is specified as 
  4259.   separator, both SBCS and DBCS spaces in the string are assumed to be spaces. 
  4260.  
  4261. o Automatic conversion of parameters is carried out if necessary. 
  4262.  
  4263. o If number is negative, it indicates a position relative to the end of the 
  4264.   string. -1 indicates the last item. 
  4265.  
  4266. o An error is returned if number is null. Real numbers are truncated. 
  4267.  
  4268. o Using a string parameter of type NULL in this function produces a result of 
  4269.   NULL. 
  4270.  
  4271. o For the CCHARPOS() function, a word is defined by a combination of separators 
  4272.   (the default is space), string start, and string end. No lexical, syntactic, 
  4273.   or semantic analysis is implied. 
  4274.  
  4275. o In most respects, CCHARPOS() behaves similarly to CHARPOS(). The difference 
  4276.   is that it treats any DBCS characters in a string as single characters rather 
  4277.   than as two bytes (as CHARPOS() does). 
  4278.  
  4279.  
  4280. ΓòÉΓòÉΓòÉ 28. CHAR() ΓòÉΓòÉΓòÉ
  4281.  
  4282. The CHAR() function provides a character string from a decimal integer value. 
  4283.  
  4284.           <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4285. ΓöÇΓöÇCHAR(ΓöÇΓöÇΓöÇdinputΓöÇΓö┤ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4286.  
  4287. Examples 
  4288.  
  4289. More about CHAR() 
  4290.  
  4291.  
  4292. ΓòÉΓòÉΓòÉ 28.1. Examples ΓòÉΓòÉΓòÉ
  4293.  
  4294. Result = CHAR(65,66)          ! Result is "AB"
  4295.  
  4296. Examples source library: 
  4297.  
  4298.  
  4299. ΓòÉΓòÉΓòÉ 28.2. More about CHAR() ΓòÉΓòÉΓòÉ
  4300.  
  4301. o CHAR can be used to create a data stream (such as a file) which is in a 
  4302.   specific internal format. 
  4303.  
  4304. o If dinput is NULL, the result is NULL. 
  4305.  
  4306.  
  4307. ΓòÉΓòÉΓòÉ 29. CHARPOS() ΓòÉΓòÉΓòÉ
  4308.  
  4309. The CHARPOS() function returns the position, in the string, of the first 
  4310. character of a specified word in that string. 
  4311.  
  4312.                            ΓöîΓöÇ" "ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4313. ΓöÇΓöÇCHARPOS(string,number,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4314.                            ΓööΓöÇseparatorΓöÇΓöÿ
  4315.  
  4316. Examples 
  4317.  
  4318. More about CHARPOS() 
  4319.  
  4320. See also: CCHARPOS() 
  4321.  
  4322.  
  4323. ΓòÉΓòÉΓòÉ 29.1. Examples ΓòÉΓòÉΓòÉ
  4324.  
  4325. x = CHARPOS('this that the other', 2 )              ! Result is 6
  4326. x = CHARPOS('one two three four', -1 )              ! Result is 15
  4327. x = CHARPOS('only four words here', 5 )             ! Result is 0
  4328. x = CHARPOS("martin*lucy*cathy*elizabeth*",3,"*")   ! Result is 13
  4329.  
  4330. Examples source library: 
  4331.  
  4332.  
  4333. ΓòÉΓòÉΓòÉ 29.2. More about CHARPOS() ΓòÉΓòÉΓòÉ
  4334.  
  4335. o If string is empty or contains only separators, CHARPOS() returns zero. 
  4336.  
  4337. o If there are fewer than number words in the string, the function returns 
  4338.   zero. 
  4339.  
  4340. o Any separator parameter must be a one-character string. DBCS characters 
  4341.   cannot be used as separators. 
  4342.  
  4343. o Automatic conversion of parameters is carried out if necessary. 
  4344.  
  4345. o If number is negative, it indicates a position relative to the end of the 
  4346.   string. -1 indicates the last item. 
  4347.  
  4348. o An error is returned if number is null. Real numbers are truncated. 
  4349.  
  4350. o Using a string parameter of type NULL in this function produces a result of 
  4351.   NULL. 
  4352.  
  4353. o For the CHARPOS() function, a word is defined by a combination of separators 
  4354.   (the default is space), string start, and string end. No lexical, syntactic, 
  4355.   or semantic analysis is implied. 
  4356.  
  4357.  
  4358. ΓòÉΓòÉΓòÉ 30. CHECK ΓòÉΓòÉΓòÉ
  4359.  
  4360. The CHECK object class creates an instance of a check box. 
  4361.  
  4362. Parent: WINDOW 
  4363.  
  4364. Attributes 
  4365.  
  4366. Actions 
  4367.  
  4368. Events 
  4369.  
  4370. Examples 
  4371.  
  4372. More about CHECK 
  4373.  
  4374.  
  4375. ΓòÉΓòÉΓòÉ 30.1. Attributes ΓòÉΓòÉΓòÉ
  4376.  
  4377. CHECKED               CLONEDIR 
  4378. CLONEGAP              CLONES 
  4379. ENABLED               EXPRESSION 
  4380. HANDLES               HELP 
  4381. ORIGIN                SIZEX 
  4382. SIZEY                 TEXT 
  4383. X                     Y 
  4384. VISIBLE 
  4385.  
  4386.  
  4387. ΓòÉΓòÉΓòÉ 30.1.1. CHECKED ΓòÉΓòÉΓòÉ
  4388.  
  4389. Whether the check box is checked: 
  4390.  
  4391. 0         Check box not checked 
  4392. 1         Check box checked 
  4393.  
  4394. Default: 0 (Not checked) 
  4395.  
  4396.  
  4397. ΓòÉΓòÉΓòÉ 30.1.2. CLONEDIR ΓòÉΓòÉΓòÉ
  4398.  
  4399. Direction in which clones are to be laid out relative to the original: 
  4400.  
  4401. 1         Down 
  4402. 2         Up 
  4403. 3         Left 
  4404. 4         Right 
  4405.  
  4406. Set on OPEN, then read-only. 
  4407.  
  4408. Default: 1 (Down) 
  4409.  
  4410.  
  4411. ΓòÉΓòÉΓòÉ 30.1.3. CLONEGAP ΓòÉΓòÉΓòÉ
  4412.  
  4413. Gap between clones, in dialog box units. 
  4414.  
  4415. Set on OPEN, then read-only. 
  4416.  
  4417. Default: 0 
  4418.  
  4419.  
  4420. ΓòÉΓòÉΓòÉ 30.1.4. CLONES ΓòÉΓòÉΓòÉ
  4421.  
  4422. Number of clones displayed. 
  4423.  
  4424. Set on OPEN, then read-only. 
  4425.  
  4426. Default: 1 
  4427.  
  4428.  
  4429. ΓòÉΓòÉΓòÉ 30.1.5. ENABLED ΓòÉΓòÉΓòÉ
  4430.  
  4431. Whether the check box is enabled: 
  4432.  
  4433. 0         Check box grayed out and not selectable 
  4434. 1         Check box enabled 
  4435.  
  4436. Default: 1 (Enabled) 
  4437.  
  4438.  
  4439. ΓòÉΓòÉΓòÉ 30.1.6. EXPRESSION ΓòÉΓòÉΓòÉ
  4440.  
  4441. Pointer to a variable, the contents of which are displayed with the check box. 
  4442.  
  4443. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  4444.  
  4445. Default: "" 
  4446.  
  4447.  
  4448. ΓòÉΓòÉΓòÉ 30.1.7. HANDLES ΓòÉΓòÉΓòÉ
  4449.  
  4450. Whether sizing handles are attached to the check box to support moving, sizing, 
  4451. and copying operations. These direct manipulation techniques follow the CUA 
  4452. guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  4453.  
  4454. 0         Handles are not displayed 
  4455. 1         Handles are displayed 
  4456.  
  4457. Default: 0 (No handles) 
  4458.  
  4459.  
  4460. ΓòÉΓòÉΓòÉ 30.1.8. HELP ΓòÉΓòÉΓòÉ
  4461.  
  4462. Resource identifier (res ID) of the full help text for this object. 
  4463.  
  4464. Default: 0 
  4465.  
  4466.  
  4467. ΓòÉΓòÉΓòÉ 30.1.9. ORIGIN ΓòÉΓòÉΓòÉ
  4468.  
  4469. The corner of the enclosing window to be taken as the origin. The position of 
  4470. the check box is measured from this point. 
  4471.  
  4472. "TL"      top left 
  4473. "TR"      top right 
  4474. "BL"      bottom left 
  4475. "BR"      bottom right 
  4476.  
  4477. Default: "BL" (Bottom left) 
  4478.  
  4479.  
  4480. ΓòÉΓòÉΓòÉ 30.1.10. SIZEX ΓòÉΓòÉΓòÉ
  4481.  
  4482. Width, in dialog box units. 
  4483.  
  4484. Default: 0 
  4485.  
  4486.  
  4487. ΓòÉΓòÉΓòÉ 30.1.11. SIZEY ΓòÉΓòÉΓòÉ
  4488.  
  4489. Height, in dialog box units. 
  4490.  
  4491. Default: 0 
  4492.  
  4493.  
  4494. ΓòÉΓòÉΓòÉ 30.1.12. TEXT ΓòÉΓòÉΓòÉ
  4495.  
  4496. Text to appear alongside the check box. Literal string. 
  4497.  
  4498. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  4499.  
  4500. Default: "" 
  4501.  
  4502.  
  4503. ΓòÉΓòÉΓòÉ 30.1.13. X ΓòÉΓòÉΓòÉ
  4504.  
  4505. Horizontal position within the window, in dialog box units. 
  4506.  
  4507. Default: 0 
  4508.  
  4509.  
  4510. ΓòÉΓòÉΓòÉ 30.1.14. Y ΓòÉΓòÉΓòÉ
  4511.  
  4512. Vertical position within the window, in dialog box units. 
  4513.  
  4514. Default: 0 
  4515.  
  4516.  
  4517. ΓòÉΓòÉΓòÉ 30.1.15. VISIBLE ΓòÉΓòÉΓòÉ
  4518.  
  4519. Whether the check box is displayed: 
  4520.  
  4521. 0         Check box not displayed 
  4522. 1         Check box displayed 
  4523.  
  4524. Default: 1 (Displayed) 
  4525.  
  4526.  
  4527. ΓòÉΓòÉΓòÉ 30.2. Actions ΓòÉΓòÉΓòÉ
  4528.  
  4529. REFRESH()            EDIT() 
  4530.  
  4531.  
  4532. ΓòÉΓòÉΓòÉ 30.2.1. REFRESH() ΓòÉΓòÉΓòÉ
  4533.  
  4534. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4535.  
  4536. Forces repainting of the check box on screen. 
  4537.  
  4538.  
  4539. ΓòÉΓòÉΓòÉ 30.2.2. EDIT() ΓòÉΓòÉΓòÉ
  4540.  
  4541. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4542.  
  4543. Enables the programmer to query whether a clipboard operation is supported and, 
  4544. if it is, to carry it out. 
  4545.  
  4546. argument is a clipboard query or a clipboard operation. 
  4547.  
  4548. The following values for argument are used to check whether particular 
  4549. clipboard operations can be supported with the check box in its current state: 
  4550.  
  4551. "Querycut" Cut to clipboard 
  4552. "Querycopy" Copy to clipboard 
  4553. "Querypaste" Paste from clipboard 
  4554. "Queryclear" Clear clipboard. 
  4555.  
  4556. Where clipboard operations are supported, the following values for argument 
  4557. direct them to be carried out: 
  4558.  
  4559. "Cut"     Cut to clipboard 
  4560. "Copy"    Copy to clipboard 
  4561. "Paste"   Paste from clipboard 
  4562. "Clear"   Clear clipboard. 
  4563.  
  4564.  
  4565. ΓòÉΓòÉΓòÉ 30.3. Events ΓòÉΓòÉΓòÉ
  4566.  
  4567. DESKTOP            SELECT 
  4568.  
  4569.  
  4570. ΓòÉΓòÉΓòÉ 30.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  4571.  
  4572. Signaled when the check box is moved, sized, or copied. A.System.Operation is 
  4573. set to "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the 
  4574. control. 
  4575.  
  4576.  
  4577. ΓòÉΓòÉΓòÉ 30.3.2. SELECT ΓòÉΓòÉΓòÉ
  4578.  
  4579. Signals the ON SELECT block. 
  4580.  
  4581. A.System.Object is set to the name of the check box. A.System.Boxnumber is set 
  4582. to the clone number of the check box selected. 
  4583.  
  4584.  
  4585. ΓòÉΓòÉΓòÉ 30.4. Examples ΓòÉΓòÉΓòÉ
  4586.  
  4587. DEFINE days[5]='Friday'            ! Every day is a Friday
  4588. OPEN check check1,win,
  4589.  X=70, Y=150, SIZEX=70, SIZEY=12,  ! position and size
  4590.  EXPRESSION="days[1]",             ! vector to use as display text
  4591.  CLONES=5, CLONEDIR=1, CLONEGAP=5  ! clone definitions
  4592.  
  4593. ! Check boxes may be individually checked, therefore attribute set
  4594. ! at individual clone level
  4595. LET check1[4]'checked=1            ! check the fourth button
  4596. LET check1[3]'enabled=0            ! gray the third button
  4597.  
  4598. Examples source library: 
  4599.  
  4600.  
  4601. ΓòÉΓòÉΓòÉ 30.5. More about CHECK ΓòÉΓòÉΓòÉ
  4602.  
  4603. o The VISIBLE and HANDLES attributes can only be modified for the entire clone 
  4604.   set, not for the individual clones. 
  4605.  
  4606. o The CLONEDIR and CLONEGAP attributes can only be set at open for the entire 
  4607.   clone set. 
  4608.  
  4609.  
  4610. ΓòÉΓòÉΓòÉ 31. CIRCLE ΓòÉΓòÉΓòÉ
  4611.  
  4612. The CIRCLE graphics primitive object class creates an instance of a circle. 
  4613.  
  4614. Parent: DEFINE 
  4615.  
  4616. Attributes 
  4617.  
  4618. Actions: None. 
  4619.  
  4620. Events: None. 
  4621.  
  4622. Examples 
  4623.  
  4624.  
  4625. ΓòÉΓòÉΓòÉ 31.1. Attributes ΓòÉΓòÉΓòÉ
  4626.  
  4627. REFERENCE 
  4628.  
  4629. The following standard graphics attributes are also available. They are 
  4630. described in Standard graphics attributes: 
  4631.  
  4632. BOUNDED                FILLCOLOR 
  4633. LINEWIDTH              SELECTED 
  4634. COLOR                  FILLPATTERN 
  4635. MIX                    VISIBLE 
  4636. CONSTANT               LINESTYLE 
  4637. SELECTABLE 
  4638.  
  4639.  
  4640. ΓòÉΓòÉΓòÉ 31.1.1. REFERENCE ΓòÉΓòÉΓòÉ
  4641.  
  4642. Vector defining the circle. This vector consists of the following elements: 
  4643.  
  4644. 1         X coordinate of the center of the circle 
  4645. 2         Y coordinate of the center of the circle 
  4646. 3         Radius of the circle. 
  4647.  
  4648. All coordinates are in world coordinate units. 
  4649.  
  4650. Set on OPEN, then read-only 
  4651.  
  4652. Default: "" 
  4653.  
  4654.  
  4655. ΓòÉΓòÉΓòÉ 31.2. Examples ΓòÉΓòÉΓòÉ
  4656.  
  4657. DEFINE array[3]
  4658. LET array[1]=200                ! x coord center of circle
  4659. LET array[2]=130                ! y coord center of circle
  4660. LET array[3]=100                ! radius
  4661.  
  4662. ! open a solid circle, colored red
  4663. OPEN CIRCLE circle1, def1,
  4664.  REFERENCE = array[0],
  4665.  COLOR ="blue",                 ! color of bounding line
  4666.  FILLCOLOR ="red",              ! color of body
  4667.  FILLPATTERN =0,                ! solid
  4668.  LINESTYLE = 0,                 ! bounding line style
  4669.  LINEWIDTH = 15,                ! bounding line width
  4670.  MIX = 0,                       ! overpaint (default)
  4671.  SELECTABLE = 0,                ! not selectable (default)
  4672.  BOUNDED = 1,                   ! bounding line required (default)
  4673.  CONSTANT = 1                   ! ref array read on open (default)
  4674.  
  4675. Examples source library: 
  4676.  
  4677.  
  4678. ΓòÉΓòÉΓòÉ 32. CLEAR ΓòÉΓòÉΓòÉ
  4679.  
  4680. The CLEAR statement removes all data values from a named variable. The result 
  4681. is a table column of NULLs, or a nontable array or scalar with zero entries. 
  4682.  
  4683. ΓöÇΓöÇCLEARΓöÇΓöÇvariablerefΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4684.  
  4685. Examples 
  4686.  
  4687. More about CLEAR 
  4688.  
  4689. See also: RENAME, DELETE 
  4690.  
  4691.  
  4692. ΓòÉΓòÉΓòÉ 32.1. Examples ΓòÉΓòÉΓòÉ
  4693.  
  4694. CLEAR Totals
  4695. CLEAR EmpData.EvalDate
  4696.  
  4697. Examples source library: 
  4698.  
  4699.  
  4700. ΓòÉΓòÉΓòÉ 32.2. More about CLEAR ΓòÉΓòÉΓòÉ
  4701.  
  4702. o The name of the variable is retained in the data dictionary, as are its 
  4703.   associated attributes. 
  4704.  
  4705. o CLEAR is not valid for the key columns of a table. CLEAR on nonkey columns 
  4706.   sets all values to NULLs rather than setting the number of entries to zero. 
  4707.   In this way, the table has columns of equal length. 
  4708.  
  4709. o If the variable is declared, CLEAR returns it to its initial state. 
  4710.  
  4711.  
  4712. ΓòÉΓòÉΓòÉ 33. CLENGTH() ΓòÉΓòÉΓòÉ
  4713.  
  4714. The CLENGTH() DBCS function returns the number of characters in a variable or 
  4715. the largest number of characters in any element from a range of elements in an 
  4716. array. It can also be used for numeric, date, and time values. 
  4717.  
  4718.                         ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4719. ΓöÇΓöÇCLENGTH(expression,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4720.                         ΓööΓöÇstartΓöÇΓöÿ   ΓööΓöÇendΓöÇΓöÿ   ΓööΓöÇsepΓöÇΓöÿ
  4721.  
  4722. Examples 
  4723.  
  4724. More about CLENGTH() 
  4725.  
  4726. See also: LENGTH() 
  4727.  
  4728.  
  4729. ΓòÉΓòÉΓòÉ 33.1. Examples ΓòÉΓòÉΓòÉ
  4730.  
  4731. String = "Γò₧╨┤y"             ! Γò₧ and ╨┤ are DBCS characters
  4732. Result = CLENGTH(String)   ! Result is 3
  4733. Result = LENGTH(String)    ! Result is 5
  4734.  
  4735. Examples source library: 
  4736.  
  4737.  
  4738. ΓòÉΓòÉΓòÉ 33.2. More about CLENGTH() ΓòÉΓòÉΓòÉ
  4739.  
  4740. o For a character value, the number of characters (including leading and 
  4741.   trailing blanks) is returned. For numeric, date, and time values, the length 
  4742.   of the character representation of the value (as defined by the FORMAT 
  4743.   attribute) is given. 
  4744.  
  4745. o DBCS characters cannot be used as separators.  However, when an SBCS space is 
  4746.   specified as separator, both SBCS and DBCS trailing spaces are excluded from 
  4747.   the count of characters. 
  4748.  
  4749. o LENGTH() counts the number of bytes in a string, but CLENGTH() counts the 
  4750.   number of characters in the string. Both functions give the same results in 
  4751.   an SBCS environment. However, if in the variable  "Γò₧bcdefghi", Γò₧ is a DBCS 
  4752.   character, then: 
  4753.  
  4754.     x = LENGTH("Γò₧bcdefghi")   ! Result is 10
  4755.     x = CLENGTH("Γò₧bcdefghi")  ! Result is 9
  4756.  
  4757.  
  4758. ΓòÉΓòÉΓòÉ 34. CLIPBOARD ΓòÉΓòÉΓòÉ
  4759.  
  4760. An instance of the CLIPBOARD object gives access to the OS/2 clipboard. 
  4761.  
  4762. The OS/2 clipboard is a place where data can be put to make it available to 
  4763. another application in the system. The OS/2 clipboard can only hold the results 
  4764. of one Cut or Copy at a time for any one data item. A COPY or CUT will empty 
  4765. the clipboard before placing data for one object. There may be data placed onto 
  4766. the clipboard (for a single item) in more than one format however. 
  4767.  
  4768. Attributes 
  4769.  
  4770. Actions 
  4771.  
  4772. Events 
  4773.  
  4774. Examples 
  4775.  
  4776. More about CLIPBOARD 
  4777.  
  4778. See also: DDECLIENT, DDESERVER, STREAM 
  4779.  
  4780.  
  4781. ΓòÉΓòÉΓòÉ 34.1. Attributes ΓòÉΓòÉΓòÉ
  4782.  
  4783. OWNER 
  4784.  
  4785.  
  4786. ΓòÉΓòÉΓòÉ 34.1.1. OWNER ΓòÉΓòÉΓòÉ
  4787.  
  4788. This Boolean attribute may be queried at any time. It returns 1 if the 
  4789. application is the clipboard owner, or 0 if it is not. 
  4790.  
  4791. Default: None 
  4792.  
  4793.  
  4794. ΓòÉΓòÉΓòÉ 34.2. Actions ΓòÉΓòÉΓòÉ
  4795.  
  4796. DELIVER()                 EMPTY() 
  4797. GET()                     LOCK() 
  4798. PUT()                     QUERYFORMATS() 
  4799. REGISTER()                REQUEST() 
  4800. SOURCE()                  STATUS() 
  4801. TARGET()                  UNLOCK() 
  4802.  
  4803.  
  4804. ΓòÉΓòÉΓòÉ 34.2.1. DELIVER() ΓòÉΓòÉΓòÉ
  4805.  
  4806.                      ΓöîΓöÇ""ΓöÇΓöÇΓöÇΓöÉ
  4807. ΓöÇΓöÇDELIVER(Formats,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4808.                      ΓööΓöÇItemΓöÇΓöÿ
  4809.  
  4810. This action informs the CLIPBOARD that the application wishes to render data. 
  4811.  
  4812. Formats is a scalar or vector that names the data formats to be rendered. 
  4813.  
  4814. Item may optionally be provided, and is a scalar that names the object for 
  4815. which data is to be rendered. This value is used to set the OBJECTNAME 
  4816. attribute of the SMEMORY delivered with a SOURCE event. It will be useful in 
  4817. cases where an application may render data for different objects according to a 
  4818. current selection. The STREAM'OBJECTNAME allows the application to understand 
  4819. the context of the SOURCE event. 
  4820.  
  4821. Only one value for Item is maintained, so the last specified value will be used 
  4822. for any subsequent SOURCE events. If Item is not specified, it is set to a zero 
  4823. length character string. 
  4824.  
  4825. A SOURCE event will be generated for every format in Formats. 
  4826.  
  4827. In order to use the DELIVER action, the client must adopt the style of opening 
  4828. a CLIPBOARD and leaving it open until such time as it is not in a position to 
  4829. render any more data, this would typically be at termination time. 
  4830.  
  4831.  
  4832. ΓòÉΓòÉΓòÉ 34.2.2. EMPTY() ΓòÉΓòÉΓòÉ
  4833.  
  4834. ΓöÇΓöÇEMPTY()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4835.  
  4836. Clears the clipboard of all data, in any data format. The clipboard must be 
  4837. locked using LOCK() before it can be emptied. 
  4838.  
  4839.  
  4840. ΓòÉΓòÉΓòÉ 34.2.3. GET() ΓòÉΓòÉΓòÉ
  4841.  
  4842.                   ΓöîΓöÇ"CF_TEXT"ΓöÇΓöÉ
  4843. ΓöÇΓöÇGET(variable,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4844.                   ΓööΓöÇformatΓöÇΓöÇΓöÇΓöÇΓöÿ
  4845.  
  4846. Returns the contents of the clipboard. 
  4847.  
  4848. When format is "CF_TEXT", GET() can be used to access text format data. The 
  4849. format parameter defaults to "CF_TEXT". 
  4850.  
  4851. When retrieving data from the clipboard with data where format is CF_LINK data, 
  4852. variable be a vector. It will be defined with three elements by the GET action, 
  4853. holding the Application, Topic, and Item values. These may be assigned to the 
  4854. APPLICATION and TOPIC attributes of a DDECLIENT object on OPEN to establish a 
  4855. DDE conversation with the application that populated the clipboard with the 
  4856. CF_LINK data. The Item value may be used as the Item parameter on various 
  4857. DDECLIENT actions. If variable is a scalar, only the Application value will be 
  4858. retrieved from the clipboard, no error will occur. 
  4859.  
  4860. The clipboard must be locked using the LOCK() action before GET() is performed. 
  4861.  
  4862. Data in the clipboard can be held in any format, but the GET and PUT actions 
  4863. are limited to three formats: 
  4864.  
  4865. o METAFILE 
  4866. o TEXT 
  4867. o LINK 
  4868. To retrieve data from the clipboard, an application must request that data in 
  4869. one of these formats. If the data does not exist on the clipboard in the format 
  4870. specified, nothing can be retrieved using CLIPBOARD. 
  4871.  
  4872. Any format can be used with the SOURCE, REGISTER, REQUEST, and DELIVER actions. 
  4873. GET, PUT, and STATUS actions are available for compatibility with programs 
  4874. written using earlier versions of Visualizer. 
  4875.  
  4876.  
  4877. ΓòÉΓòÉΓòÉ 34.2.4. LOCK() ΓòÉΓòÉΓòÉ
  4878.  
  4879. ΓöÇΓöÇLOCK()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4880.  
  4881. Gives exclusive control of the clipboard to the current application. LOCK() 
  4882. must be used before DELIVER, GET, PUT, QUEUE, REGISTER, REQUEST, SOURCE, or 
  4883. TARGET actions. The clipboard should be kept locked for as short a time as 
  4884. possible, and then freed using UNLOCK(). 
  4885.  
  4886. If the clipboard is already locked by another process, LOCK() will not return 
  4887. until it is available. 
  4888.  
  4889.  
  4890. ΓòÉΓòÉΓòÉ 34.2.5. PUT() ΓòÉΓòÉΓòÉ
  4891.  
  4892.                   ΓöîΓöÇ"CF_TEXT"ΓöÇΓöÉ
  4893. ΓöÇΓöÇPUT(variable,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4894.                   ΓööΓöÇformatΓöÇΓöÇΓöÇΓöÇΓöÿ
  4895.  
  4896. Places the data held in variable onto the clipboard. The first PUT() operation 
  4897. empties the clipboard.  Any further PUT() operations before closing the 
  4898. clipboard overwrite any existing data. 
  4899.  
  4900. format can have the values "CF_TEXT" or "CF_LINK". The format parameter 
  4901. defaults to "CF_TEXT". 
  4902.  
  4903. When format is "CF_TEXT", text format data can be placed on the clipboard using 
  4904. PUT(). To put graphics data onto the clipboard, use the GRAPHIC'CLIPBOARD 
  4905. action for the graphic object you want to save. You can also use the TARGET and 
  4906. DELIVER actions. GET, PUT, and STATUS actions are available for compatibility 
  4907. with programs written using earlier versions of Visualizer. 
  4908.  
  4909. When populating the clipboard with data where format is CF_LINK data, variable 
  4910. should be a vector with three elements holding the Application, Topic, and Item 
  4911. values for the application. The PUT action will concatenate these three values, 
  4912. inserting NULL (x'00') delimiters. If variable is a scalar, or a vector with 
  4913. less than three elements, no error will occur, but any product pasting the data 
  4914. in from the clipboard may complain with an error. If variable is a vector with 
  4915. more than three elements, the excess elements are ignored. 
  4916.  
  4917. The clipboard must be locked using the LOCK() action before a PUT() action is 
  4918. performed. 
  4919.  
  4920.  
  4921. ΓòÉΓòÉΓòÉ 34.2.6. QUERYFORMATS() ΓòÉΓòÉΓòÉ
  4922.  
  4923. ΓöÇΓöÇQUERYFORMATS(Formats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4924.  
  4925. This action may be used to obtain the data format names currently available on 
  4926. the clipboard. 
  4927.  
  4928. Formats is the name of a vector or scalar to be populated with server format 
  4929. information. If the clipboard is empty, Formats will be cleared. 
  4930.  
  4931.  
  4932. ΓòÉΓòÉΓòÉ 34.2.7. REGISTER() ΓòÉΓòÉΓòÉ
  4933.  
  4934.                       ΓöîΓöÇ""ΓöÇΓöÇΓöÇΓöÉ
  4935. ΓöÇΓöÇREGISTER(formats,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4936.                       ΓööΓöÇitemΓöÇΓöÿ
  4937.  
  4938. This action informs the CLIPBOARD that the application is capable of rendering 
  4939. data. 
  4940.  
  4941. formats is a scalar or vector that names the data formats to be registered. 
  4942.  
  4943. item may optionally be provided, and is a scalar that names the object for 
  4944. which data may be rendered. This value is used to set the OBJECTNAME attribute 
  4945. of the SMEMORY delivered with a SOURCE event. It will be useful in cases where 
  4946. an application may render data for different objects according to a current 
  4947. selection. The STREAM'OBJECTNAME allows the application to understand the 
  4948. context of the SOURCE event. 
  4949.  
  4950. Only one value for item is maintained, so the last specified value will be used 
  4951. for any subsequent SOURCE events. If item is not specified, it is set to a zero 
  4952. length character string. 
  4953.  
  4954. A SOURCE event will be generated whenever another application requests 
  4955. registered data from the clipboard. 
  4956.  
  4957.  
  4958. ΓòÉΓòÉΓòÉ 34.2.8. REQUEST() ΓòÉΓòÉΓòÉ
  4959.  
  4960. ΓöÇΓöÇREQUEST(Format)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4961.  
  4962. This action may be used to obtain data from the clipboard in the format 
  4963. specified. If the specified format is not available on the clipboard, an error 
  4964. condition is raised. 
  4965.  
  4966. The REQUEST action will result in a TARGET event via which the data is 
  4967. delivered to the client in the format specified. 
  4968.  
  4969.  
  4970. ΓòÉΓòÉΓòÉ 34.2.9. SOURCE() ΓòÉΓòÉΓòÉ
  4971.  
  4972. ΓöÇΓöÇSOURCE(pStream)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4973.  
  4974. This action synchronously obtains data from the clipboard. 
  4975.  
  4976. pStream is a pointer to an SMEMORY opened by the client. The CLIPBOARD object 
  4977. will assume that the data to be delivered is in the format specified by the 
  4978. FORMAT attribute of the SMEMORY object. If data in this format is not available 
  4979. on the clipboard, an error condition is raised. 
  4980.  
  4981. The SOURCE action will modify the MODE attribute of the STREAM depending on the 
  4982. original value of MODE when the action is taken: 
  4983.  
  4984. "READ"    MODE is set to "WRITE" prior to population with data. MODE is set to 
  4985.           "READ" after population (but prior to returning to caller) and the 
  4986.           POINT attribute is set to 0 (the caller can now read the data from 
  4987.           the STREAM). 
  4988.  
  4989. "READONLY" An error condition is raised 
  4990.  
  4991. "WRITE"   The STREAM is populated with data MODE is set to "READ" after 
  4992.           population (but prior to returning to caller) and the POINT attribute 
  4993.           is set to 0 (the caller can now read the data from the STREAM). 
  4994.  
  4995.  
  4996. ΓòÉΓòÉΓòÉ 34.2.10. STATUS() ΓòÉΓòÉΓòÉ
  4997.  
  4998. ΓöÇΓöÇSTATUS(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  4999.             ΓööΓöÇformatΓöÇΓöÿ
  5000.  
  5001. Returns "DATA" if there is data of format format on the clipboard. Returns 
  5002. "EMPTY" if there is no data of that format on the clipboard. 
  5003.  
  5004. If testing for the presence of text data, the format parameter must be 
  5005. "CF_TEXT". If testing for graphics, the format parameter must be "CF_METAFILE" 
  5006. (Otherwise, CF_LINK, CF_TEXT, or CF_METAFILE can be used.) STATUS() is retained 
  5007. for compatibility with older versions of Visualizer, use QUERYFORMATS() for new 
  5008. code. 
  5009.  
  5010. format is an optional parameter. If format is omitted, the default is 
  5011. "CF_TEXT". 
  5012.  
  5013.  
  5014. ΓòÉΓòÉΓòÉ 34.2.11. TARGET() ΓòÉΓòÉΓòÉ
  5015.  
  5016. ΓöÇΓöÇTARGET(pStream)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5017.  
  5018. This action synchronously populates the clipboard with the data. 
  5019.  
  5020. pStream is a pointer to an SMEMORY opened by the client. It must have been 
  5021. populated with data prior to calling the TARGET action. The CLIPBOARD object 
  5022. will assume that the data is in the format specified by the FORMAT attribute of 
  5023. the SMEMORY object. 
  5024.  
  5025. If the MODE attribute of the STREAM is set to "WRITE", the TARGET action will 
  5026. change MODE to "READ" before extracting the data. 
  5027.  
  5028.  
  5029. ΓòÉΓòÉΓòÉ 34.2.12. UNLOCK() ΓòÉΓòÉΓòÉ
  5030.  
  5031. ΓöÇΓöÇUNLOCK()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5032.  
  5033. Releases the clipboard for use by other applications. UNLOCK() should be used 
  5034. as soon as possible after a GET(), PUT(), or EMPTY() action. 
  5035.  
  5036.  
  5037. ΓòÉΓòÉΓòÉ 34.3. Events ΓòÉΓòÉΓòÉ
  5038.  
  5039. SOURCE(pStream)            TARGET(pStream) 
  5040. ERROR 
  5041.  
  5042.  
  5043. ΓòÉΓòÉΓòÉ 34.3.1. SOURCE(pStream) ΓòÉΓòÉΓòÉ
  5044.  
  5045. This event occurs when the DELIVER action is invoked, or when another 
  5046. application attempts to Paste in data that has been registered using the 
  5047. REGISTER action. pStream is a pointer to a STREAM object delivered with the 
  5048. event, through which the data may be rendered. The OBJECTNAME attribute of the 
  5049. STREAM will return the value passed as the Item parameter (if any) to the 
  5050. DELIVER or REGISTER action. The FORMAT attribute of the STREAM will indicate 
  5051. the required data format. The MODE attribute of the STREAM will be set to 
  5052. "WRITE". 
  5053.  
  5054. When the STREAM has been populated, its FINISHED() action should be called. 
  5055. This will trigger delivery of the data to the clipboard. If an error occurs 
  5056. populating the STREAM, the STATUS attribute of the STREAM should be set to a 
  5057. nonzero integer prior to the FINISHED() action, this will cancel the data 
  5058. delivery. The STREAM should be SHUT immediately after calling the FINISHED() 
  5059. action. 
  5060.  
  5061.  
  5062. ΓòÉΓòÉΓòÉ 34.3.2. TARGET(pStream) ΓòÉΓòÉΓòÉ
  5063.  
  5064. This event occurs when the REQUEST action is invoked. pStream is a pointer to a 
  5065. STREAM object delivered with the event, from which the supplied data may be 
  5066. extracted. The FORMAT attribute of the STREAM will indicate the data format. 
  5067. The MODE attribute of the STREAM will be set to "READONLY", and may not be 
  5068. modified. 
  5069.  
  5070. At the end of TARGET processing, the FINISHED() action of the STREAM should be 
  5071. called. If errors were encountered extracting the data, the STATUS attribute of 
  5072. the STREAM should be set to a nonzero number prior to the FINISHED() action. 
  5073. The STREAM should be SHUT immediately after calling the FINISHED() action. 
  5074.  
  5075.  
  5076. ΓòÉΓòÉΓòÉ 34.3.3. ERROR ΓòÉΓòÉΓòÉ
  5077.  
  5078. An error has occurred during CLIPBOARD processing. A.System.Object identifies 
  5079. the CLIPBOARD object. 
  5080.  
  5081.  
  5082. ΓòÉΓòÉΓòÉ 34.4. Examples ΓòÉΓòÉΓòÉ
  5083.  
  5084. Refer to the sample applications CLIPVIEW and CLIPSET for detailed examples of 
  5085. using the clipboard object. 
  5086.  
  5087. Examples source library: 
  5088.  
  5089.  
  5090. ΓòÉΓòÉΓòÉ 34.5. More about CLIPBOARD ΓòÉΓòÉΓòÉ
  5091.  
  5092. o The OWNER attribute is used to check if the application is still the owner of 
  5093.   the clipboard. If data has been REGISTERED for the clipboard, closing the 
  5094.   application will not transfer the data. The application can warn the user to 
  5095.   delay closing until the user has finished pasting data. 
  5096.  
  5097.  
  5098. ΓòÉΓòÉΓòÉ 35. COMPARE() ΓòÉΓòÉΓòÉ
  5099.  
  5100. The COMPARE() function compares two values. It handles situations where one or 
  5101. both of the values is NULL, and it provides either a three-way, or a four-way 
  5102. test. 
  5103.  
  5104.                                      ΓöîΓöÇ -1ΓöÇΓöÇΓöÇΓöÇΓöÉ
  5105. ΓöÇΓöÇCOMPARE(expression1,expression2,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5106.                                      ΓööΓöÇoptionΓöÇΓöÿ
  5107.  
  5108. Examples 
  5109.  
  5110. More about COMPARE() 
  5111.  
  5112. See also: Comparisons. 
  5113.  
  5114.  
  5115. ΓòÉΓòÉΓòÉ 35.1. Examples ΓòÉΓòÉΓòÉ
  5116.  
  5117. CASE COMPARE( x, y )
  5118.   WHEN -1
  5119.     MESSAGE 'FTB0001',0,'4 - Less ...'
  5120.   WHEN 1
  5121.     MESSAGE 'FTB0001',0,'4 - Greater ...'
  5122.   OTHERWISE
  5123.     MESSAGE 'FTB0001",0,"4 - Equal ...'
  5124. END
  5125.  
  5126. Examples source library: 
  5127.  
  5128.  
  5129. ΓòÉΓòÉΓòÉ 35.2. More about COMPARE() ΓòÉΓòÉΓòÉ
  5130.  
  5131. o expression1 and expression2 can be any data type. They are converted 
  5132.   according to ASL comparison rules. 
  5133.  
  5134. o NULL values are treated as equal, unless option is 0. 
  5135.  
  5136.  
  5137. ΓòÉΓòÉΓòÉ 36. COPY ΓòÉΓòÉΓòÉ
  5138.  
  5139. The COPY statement copies a variable. The variable copied can be either a 
  5140. scalar or an array. 
  5141.  
  5142.                            ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5143. ΓöÇΓöÇCOPYΓöÇΓöÇoldname,newname,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5144.                            ΓööΓöÇStartElementΓöÇΓöÿ   ΓööΓöÇNumberΓöÇΓöÿ
  5145.  
  5146. Examples 
  5147.  
  5148. More about COPY 
  5149.  
  5150.  
  5151. ΓòÉΓòÉΓòÉ 36.1. Examples ΓòÉΓòÉΓòÉ
  5152.  
  5153. DECLARE NUMERIC Array1[10] = 1
  5154. DECLARE NUMERIC Array2[8]
  5155. DECLARE TASK DEFINED NULL UNTYPED Array3
  5156. COPY Array1, Array2, 1, 8    ! Copy first 8 elements
  5157. COPY Array2, Array3          ! DEFINE the result and copy the data
  5158.  
  5159. COPY EmpData.Name, EmpNames  ! DEFINE the result and copy the data
  5160.  
  5161. DEFINE Names[0]
  5162. COPY EmpNames, Names         ! Target may exist but must be empty
  5163.  
  5164. DEFINE Array4[10] = 3
  5165. COPY Array4, Array5, 4, 3    ! DEFINE the result and copy 3 elements
  5166.  
  5167. Examples source library: 
  5168.  
  5169.  
  5170. ΓòÉΓòÉΓòÉ 36.2. More about COPY ΓòÉΓòÉΓòÉ
  5171.  
  5172. o The new reference should either not exist already, or (if it does exist) 
  5173.   should contain no entries. 
  5174.  
  5175. o Copying into a table column is valid only if the source variable contains the 
  5176.   same number of values as there are rows in the table. (The source can have 
  5177.   more elements than the destination if Number is used to select the same 
  5178.   number of elements as the destination. 
  5179.  
  5180.  
  5181. ΓòÉΓòÉΓòÉ 37. COPYTO ΓòÉΓòÉΓòÉ
  5182.  
  5183. The COPYTO object may be used to COPY data in a chosen format to a specified 
  5184. location. 
  5185.  
  5186. Attributes 
  5187.  
  5188. Actions: None. 
  5189.  
  5190. Events 
  5191.  
  5192.  
  5193. ΓòÉΓòÉΓòÉ 37.1. Attributes ΓòÉΓòÉΓòÉ
  5194.  
  5195. OBJECTNAME             OWNERWINDOW 
  5196. VISIBLE                ITEM 
  5197. HELP                   FORMATS 
  5198. IDENTIFIER 
  5199.  
  5200.  
  5201. ΓòÉΓòÉΓòÉ 37.1.1. OBJECTNAME ΓòÉΓòÉΓòÉ
  5202.  
  5203. If specified, OBJECTNAME must be a character string of up to 255 bytes. This 
  5204. string is used to construct the window title of the dialog. If it is not set, 
  5205. the dialog title is not modified, and will remain as Copy to. 
  5206.  
  5207. Default: None. Set on OPEN then read-only. 
  5208.  
  5209.  
  5210. ΓòÉΓòÉΓòÉ 37.1.2. OWNERWINDOW ΓòÉΓòÉΓòÉ
  5211.  
  5212. If specified, OWNERWINDOW must be a pointer to a window handle. The referenced 
  5213. window will be made the OwnerWindow of the dialog window. (See WINDOW.) 
  5214.  
  5215. Default: None. Set on Open then read-only. 
  5216.  
  5217.  
  5218. ΓòÉΓòÉΓòÉ 37.1.3. VISIBLE ΓòÉΓòÉΓòÉ
  5219.  
  5220. Setting it to 1 (true) surfaces the dialog. 
  5221.  
  5222. Default: 1 (True) 
  5223.  
  5224.  
  5225. ΓòÉΓòÉΓòÉ 37.1.4. ITEM ΓòÉΓòÉΓòÉ
  5226.  
  5227. When an SFILE is opened, the OBJECTNAME attribute of the SFILE will be 
  5228. populated with the value of ITEM. 
  5229.  
  5230. Default: "" 
  5231.  
  5232.  
  5233. ΓòÉΓòÉΓòÉ 37.1.5. HELP ΓòÉΓòÉΓòÉ
  5234.  
  5235. If specified, the HELP numeric attribute should be set on OPEN, and should hold 
  5236. the res ID for the help text for the CopyTo formats. 
  5237.  
  5238.  
  5239. ΓòÉΓòÉΓòÉ 37.1.6. FORMATS ΓòÉΓòÉΓòÉ
  5240.  
  5241. This attribute must be a pointer to a vector of format names which include all 
  5242. the formats supported by the application. 
  5243.  
  5244. Default: None Set on Open then read-only. 
  5245.  
  5246.  
  5247. ΓòÉΓòÉΓòÉ 37.1.7. IDENTIFIER ΓòÉΓòÉΓòÉ
  5248.  
  5249. If specified, IDENTIFIER used to set the initial file name for output files. 
  5250.  
  5251. Default: None Set on Open then read-only. 
  5252.  
  5253.  
  5254. ΓòÉΓòÉΓòÉ 37.2. Events ΓòÉΓòÉΓòÉ
  5255.  
  5256. QUIT              SOURCE 
  5257.  
  5258.  
  5259. ΓòÉΓòÉΓòÉ 37.2.1. QUIT ΓòÉΓòÉΓòÉ
  5260.  
  5261. Received when the user closes the COPYTO dialog. 
  5262.  
  5263.  
  5264. ΓòÉΓòÉΓòÉ 37.2.2. SOURCE ΓòÉΓòÉΓòÉ
  5265.  
  5266. The client's ON SOURCE block is called and passed a pointer to an SFILE. The 
  5267. client is expected to populate the SFILE with the relevant data. SFILE'FORMAT 
  5268. will be set to the required data format. 
  5269.  
  5270.  
  5271. ΓòÉΓòÉΓòÉ 38. COS(), COSD() ΓòÉΓòÉΓòÉ
  5272.  
  5273. The COS() and COSD() functions return the cosine of an angle. 
  5274.  
  5275. COS() returns the cosine value for an angle specified in radians. COSD() 
  5276. returns the cosine value for an angle specified in degrees. 
  5277.  
  5278. ΓöÇΓöÇCOS(angle)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5279.  
  5280. ΓöÇΓöÇCOSD(angle)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5281.  
  5282. Examples 
  5283.  
  5284.  
  5285. ΓòÉΓòÉΓòÉ 38.1. Examples ΓòÉΓòÉΓòÉ
  5286.  
  5287. x = COS(0.13)                !  Result is 0.99
  5288. x = COSD(68.9)               !  Result is 0.36
  5289.  
  5290. Examples source library: 
  5291.  
  5292.  
  5293. ΓòÉΓòÉΓòÉ 39. COUNT() ΓòÉΓòÉΓòÉ
  5294.  
  5295. The COUNT() function returns the number of occurrences of the first non-NULL 
  5296. data type encountered. 
  5297.  
  5298.            <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5299. ΓöÇΓöÇCOUNT(ΓöÇΓöÇΓöÇexpressionΓöÇΓö┤ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5300.  
  5301. Examples 
  5302.  
  5303. More about COUNT() 
  5304.  
  5305.  
  5306. ΓòÉΓòÉΓòÉ 39.1. Examples ΓòÉΓòÉΓòÉ
  5307.  
  5308. x1 = "a"
  5309. x2 = "b"
  5310. x3 = "c"
  5311. Result = COUNT(x1,x2,x3)               ! Result is 3
  5312. Result = COUNT(x1,x2,x3,x4)            ! Result is 3
  5313. DEFINE column[5]
  5314. column[1] = 1234
  5315. column[4] = 887
  5316. Result = COUNT(column)                 ! Result is 2
  5317. Result = COUNT(x1,x2,x3,column)        ! Result is 5
  5318. Result = COUNT(column,x1,x2,x3)        ! Result is 2
  5319.  
  5320. Examples source library: 
  5321.  
  5322.  
  5323. ΓòÉΓòÉΓòÉ 39.2. More about COUNT() ΓòÉΓòÉΓòÉ
  5324.  
  5325. o Numbers are automatically converted to characters while counting. Characters, 
  5326.   however, are only automatically converted to numbers when they represent 
  5327.   proper numeric values. 
  5328.  
  5329.  
  5330. ΓòÉΓòÉΓòÉ 40. COVERLAY() ΓòÉΓòÉΓòÉ
  5331.  
  5332. The COVERLAY() DBCS function returns the string it is given, with part of it 
  5333. replaced by another string. 
  5334.  
  5335. There are some slight differences between OVERLAY() and COVERLAY(). These 
  5336. differences are described below. 
  5337.  
  5338.                             ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÉ             ΓöîΓöÇ" "ΓöÇΓöÉ
  5339. ΓöÇΓöÇCOVERLAY(target,repstr,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5340.                             ΓööΓöÇnumΓöÇΓöÿ   ΓööΓöÇlenΓöÇΓöÿ   ΓööΓöÇpadΓöÇΓöÿ
  5341.  
  5342. Examples 
  5343.  
  5344. OVERLAY() and COVERLAY() 
  5345.  
  5346. More about COVERLAY() 
  5347.  
  5348. See also: ADDWORD(), DELWORD(), OVERLAY() 
  5349.  
  5350.  
  5351. ΓòÉΓòÉΓòÉ 40.1. Examples ΓòÉΓòÉΓòÉ
  5352.  
  5353. x = COVERLAY("1abc5","yz",3)  ! x is "1ayz5"
  5354. x = COVERLAY("1Γò₧bc5","yz",3)  ! x is "1Γò₧yz5" (Γò₧ is a DBCS character)
  5355. x = OVERLAY("1Γò₧bc5","yz",4)   ! x is "1Γò₧yz5"
  5356.  
  5357. Examples source library: 
  5358.  
  5359.  
  5360. ΓòÉΓòÉΓòÉ 40.2. OVERLAY() and COVERLAY() ΓòÉΓòÉΓòÉ
  5361.  
  5362. OVERLAY() is designed for use in an SBCS environment and treats each byte as a 
  5363. single character. COVERLAY() is designed for use in a DBCS environment and 
  5364. manipulates DBCS characters as two-byte pairs. number and length refer to the 
  5365. number of characters rather than the number of bytes. This can affect the 
  5366. overlaying of the target string. 
  5367.  
  5368.  
  5369. ΓòÉΓòÉΓòÉ 40.3. More about COVERLAY() ΓòÉΓòÉΓòÉ
  5370.  
  5371. o If repstr is positioned such that it exceeds or overlaps the length of 
  5372.   target, the returned string is extended automatically. However, if the length 
  5373.   of this extended string would exceed the system limit for strings, an error 
  5374.   is returned. 
  5375.  
  5376. o An error is returned if number or length is negative or NULL. Real numbers 
  5377.   are truncated. 
  5378.  
  5379. o Using a string parameter of type NULL in this function produces a result of 
  5380.   NULL. 
  5381.  
  5382. o Any pad parameter must be a one-character string.  DBCS characters cannot be 
  5383.   used as pad characters. 
  5384.  
  5385. o DBCS characters are byte pairs. This affects how COVERLAY() treats the number 
  5386.   and length parameters. 
  5387.  
  5388.  
  5389. ΓòÉΓòÉΓòÉ 41. CPAD() ΓòÉΓòÉΓòÉ
  5390.  
  5391. The CPAD() DBCS function returns a string padded up to a specified length with 
  5392. a specified character. 
  5393.  
  5394.                              ΓöîΓöÇ"L"ΓöÇΓöÇΓöÉ     ΓöîΓöÇ" "ΓöÇΓöÉ      ΓöîΓöÇ"B"ΓöÇΓöÇΓöÇΓöÉ
  5395. ΓöÇΓöÇCPAD(string,ΓöÇΓöÇlengthΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5396.                              ΓööΓöÇtypeΓöÇΓöÿ     ΓööΓöÇpadΓöÇΓöÿ      ΓööΓöÇstripΓöÇΓöÿ
  5397.  
  5398. Examples 
  5399.  
  5400. More about CPAD() 
  5401.  
  5402. See also: PAD() 
  5403.  
  5404.  
  5405. ΓòÉΓòÉΓòÉ 41.1. Examples ΓòÉΓòÉΓòÉ
  5406.  
  5407. x = CPAD( "Γò₧bc", 4,, "*" )  ! x is "*Γò₧bc" (Γò₧ is a DBCS character)
  5408. x = PAD( "Γò₧bc", 5,, "*" )   ! x is "*Γò₧bc" (Γò₧ is a DBCS character)
  5409.  
  5410. Examples source library: 
  5411.  
  5412.  
  5413. ΓòÉΓòÉΓòÉ 41.2. More about CPAD() ΓòÉΓòÉΓòÉ
  5414.  
  5415. o An error is returned if length is negative or null. Real numbers are 
  5416.   truncated. 
  5417.  
  5418. o length is detected by counting both SBCS and DBCS characters rather that 
  5419.   bytes. 
  5420.  
  5421. o Using a string parameter of type NULL in this function produces a result of 
  5422.   NULL. 
  5423.  
  5424. o If an odd number of characters are added, the right-hand end of the string 
  5425.   gains one more character than the left. 
  5426.  
  5427. o Only SBCS characters can be used as pad characters. DBCS characters cannot be 
  5428.   used. 
  5429.  
  5430. o If a space is specified for the strip parameter, both SBCS and DBCS spaces 
  5431.   are removed. 
  5432.  
  5433.  
  5434. ΓòÉΓòÉΓòÉ 42. CSCAN() ΓòÉΓòÉΓòÉ
  5435.  
  5436. The CSCAN() DBCS function scans for the presence or absence of one or more 
  5437. specified characters in a character string. Scanning can be done from the 
  5438. beginning or from the end of the string. 
  5439.  
  5440.                                     ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ                 ΓöîΓöÇ"="ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5441. ΓöÇΓöÇCSCAN(expression1,expression2,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇ
  5442.                                     ΓööΓöÇstartΓöÇΓöÿ     ΓööΓöÇendΓöÇΓöÿ     ΓööΓöÇcompareΓöÇΓöÿ
  5443.       ΓöîΓöÇ"*"ΓöÇΓöÇΓöÉ
  5444. ΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5445.       ΓööΓöÇtypeΓöÇΓöÿ
  5446.  
  5447. Examples 
  5448.  
  5449. More about CSCAN() 
  5450.  
  5451. See also: SCAN() 
  5452.  
  5453.  
  5454. ΓòÉΓòÉΓòÉ 42.1. Examples ΓòÉΓòÉΓòÉ
  5455.  
  5456. x = CSCAN( 'Γò₧╨┤y', 'Γò₧' )   ! Result is 1 (Γò₧ and ╨┤ are DBCS characters)
  5457. x = CSCAN( 'Γò₧╨┤y', '╨┤' )   ! Result is 2
  5458. x = CSCAN( 'Γò₧╨┤y', 'y' )   ! Result is 3
  5459. x = SCAN( 'Γò₧╨┤y', 'Γò₧' )   ! Result is 1
  5460. x = SCAN( 'Γò₧╨┤y', '╨┤' )   ! Result is 3
  5461. x = SCAN( 'Γò₧╨┤y', 'y' )   ! Result is 5
  5462.  
  5463. Examples source library: 
  5464.  
  5465.  
  5466. ΓòÉΓòÉΓòÉ 42.2. More about CSCAN() ΓòÉΓòÉΓòÉ
  5467.  
  5468. o The position returned is always relative to the start (left end) of 
  5469.   expression1. 
  5470.  
  5471. o If the string expression2 is not found, CSCAN() returns a result of 0. 
  5472.  
  5473. o CSCAN() manipulates DBCS characters as two-byte pairs. This can affect the 
  5474.   points in the string at which scanning starts and stops. The start and end 
  5475.   character positions are calculated by counting characters rather than bytes. 
  5476.  
  5477. o CSCAN() works on all characters in a string. In an SBCS environment it 
  5478.   behaves exactly like SCAN(), but in a DBCS environment double-byte characters 
  5479.   are treated as a single character. 
  5480.  
  5481.  
  5482. ΓòÉΓòÉΓòÉ 43. CSPLIT() ΓòÉΓòÉΓòÉ
  5483.  
  5484. The CSPLIT() DBCS function extracts part of the value of an expression. 
  5485.  
  5486.                                                 ΓöîΓöÇ" "ΓöÇΓöÇΓöÇΓöÇΓöÉ
  5487. ΓöÇΓöÇCSPLIT(expression,startpoint,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5488.                                   ΓööΓöÇlengthΓöÇΓöÿ    ΓööΓöÇfillerΓöÇΓöÿ
  5489.     ΓöîΓöÇ"L"ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5490. ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5491.     ΓööΓöÇjustifyΓöÇΓöÿ
  5492.  
  5493. Examples 
  5494.  
  5495. More about CSPLIT() 
  5496.  
  5497. See also: SPLIT() 
  5498.  
  5499.  
  5500. ΓòÉΓòÉΓòÉ 43.1. Examples ΓòÉΓòÉΓòÉ
  5501.  
  5502. String = 'Γò₧╨┤y ╤ço╤ïy'     ! Γò₧ ╨┤ ╤ç ╤ï are DBCS characters
  5503. x = CSPLIT(String,2)    ! Result is '╨┤y ╤ço╤ïy'
  5504. x = CSPLIT(String,5,3)  ! Result is '╤ço╤ï'
  5505. x = SPLIT(String,3)     ! Result is '╨┤y ╤ço╤ïy'
  5506. x = SPLIT(String,7,5)   ! Result is '╤ço╤ï'
  5507.  
  5508. Examples source library: 
  5509.  
  5510.  
  5511. ΓòÉΓòÉΓòÉ 43.2. More about CSPLIT() ΓòÉΓòÉΓòÉ
  5512.  
  5513. o startpoint and length refer to the number of characters, not the number of 
  5514.   bytes. 
  5515.  
  5516. o The value produced by CSPLIT() is assigned the appropriate data type.  Values 
  5517.   longer than the maximum system string length are reduced to that length. 
  5518.  
  5519. o No error is caused if positive, but not valid, values are given for 
  5520.   startpoint and length. The appropriate defaults are assumed instead (a 
  5521.   default of 1 is assumed for startpoint). Negative values cause an error. 
  5522.  
  5523. o CSPLIT() manipulates DBCS characters as two-byte pairs. This can affect both 
  5524.   the point in the string at which splitting starts and the length of the 
  5525.   substring split off. 
  5526.  
  5527. o Only SBCS characters can be used as filler characters with the CSPLIT() 
  5528.   function. DBCS characters cannot be used. 
  5529.  
  5530.  
  5531. ΓòÉΓòÉΓòÉ 44. CTRIM() ΓòÉΓòÉΓòÉ
  5532.  
  5533. The CTRIM() DBCS function returns a string trimmed of leading or trailing 
  5534. spaces. 
  5535.  
  5536.                   ΓöîΓöÇ"B"ΓöÇΓöÇΓöÉ
  5537. ΓöÇΓöÇCTRIM(string,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5538.                   ΓööΓöÇtypeΓöÇΓöÿ
  5539.  
  5540. Examples 
  5541.  
  5542. More about CTRIM() 
  5543.  
  5544. See also: TRIM() 
  5545.  
  5546.  
  5547. ΓòÉΓòÉΓòÉ 44.1. Examples ΓòÉΓòÉΓòÉ
  5548.  
  5549. x = CTRIM( ' Γò₧╨┤y ╤ço╤ïy  ' )  ! x is 'Γò₧╨┤y ╤ço╤ïy'
  5550.  
  5551. Examples source library: 
  5552.  
  5553.  
  5554. ΓòÉΓòÉΓòÉ 44.2. More about CTRIM() ΓòÉΓòÉΓòÉ
  5555.  
  5556. o Using a string parameter of type NULL in this function produces a result of 
  5557.   NULL. 
  5558.  
  5559. o Both SBCS and DBCS spaces are removed. 
  5560.  
  5561.  
  5562. ΓòÉΓòÉΓòÉ 45. CURVE ΓòÉΓòÉΓòÉ
  5563.  
  5564. The CURVE graphics primitive object class creates an instance of a curve. 
  5565.  
  5566. Parent: DEFINE 
  5567.  
  5568. Attributes 
  5569.  
  5570. Actions: None. 
  5571.  
  5572. Events: None. 
  5573.  
  5574. Examples 
  5575.  
  5576.  
  5577. ΓòÉΓòÉΓòÉ 45.1. Attributes ΓòÉΓòÉΓòÉ
  5578.  
  5579. CLOSINGLINE            ENCLOSED 
  5580. REFERENCE 
  5581.  
  5582. The following standard graphics attributes are also available. They are 
  5583. described in Standard graphics attributes: 
  5584.  
  5585. BOUNDED                FILLCOLOR 
  5586. LINEWIDTH              SELECTED 
  5587. COLOR                  FILLPATTERN 
  5588. MIX                    VISIBLE 
  5589. CONSTANT               LINESTYLE 
  5590. SELECTABLE 
  5591.  
  5592.  
  5593. ΓòÉΓòÉΓòÉ 45.1.1. CLOSINGLINE ΓòÉΓòÉΓòÉ
  5594.  
  5595. Area is closed with a line joining the first point to the last: 
  5596.  
  5597. 0         Curve not closed 
  5598. 1         Curve closed 
  5599.  
  5600. Default: 0 (Not closed) 
  5601.  
  5602.  
  5603. ΓòÉΓòÉΓòÉ 45.1.2. ENCLOSED ΓòÉΓòÉΓòÉ
  5604.  
  5605. Whether the curve is treated as a closed object which can be filled: 
  5606.  
  5607. 0         Curve not enclosed 
  5608. 1         Curve enclosed 
  5609.  
  5610. Default: 0 (Not enclosed) 
  5611.  
  5612.  
  5613. ΓòÉΓòÉΓòÉ 45.1.3. REFERENCE ΓòÉΓòÉΓòÉ
  5614.  
  5615. Vector defining the curve. This vector consists of the following elements: 
  5616.  
  5617. 1         X coordinate of the start point of the curve 
  5618. 2         Y coordinate of the start point of the curve 
  5619. 3         X coordinate of the apex point of the curve 
  5620. 4         Y coordinate of the apex point of the curve 
  5621. 5         X coordinate of the end point of the curve 
  5622. 6         Y coordinate of the end point of the curve. 
  5623.  
  5624. All coordinates are in world coordinate units. 
  5625.  
  5626. Set on OPEN, then read-only. 
  5627.  
  5628. Default: "" 
  5629.  
  5630.  
  5631. ΓòÉΓòÉΓòÉ 45.2. Examples ΓòÉΓòÉΓòÉ
  5632.  
  5633. ! Example of use of graphic CURVE object
  5634. ! Opens two samples, one a simple curve, the other enclosed.
  5635. DEFINE array[6]
  5636. LET array[1]=150                ! x start
  5637. LET array[2]=60                 ! y start
  5638. LET array[3]=80                 ! x apex
  5639. LET array[4]=120                ! y apex
  5640. LET array[5]=150                ! x end
  5641. LET array[6]=180                ! y end
  5642.  
  5643. OPEN CURVE curve1, def1,
  5644.  REFERENCE   = array[0],
  5645.  ENCLOSED    = 0,               ! curve not enclosable (default)
  5646.  CLOSINGLINE = 0,               ! curve not enclosed (default)
  5647.  COLOR       = 2,
  5648.  FILLCOLOR   = "Red",
  5649.  FILLPATTERN = 1,
  5650.  LINESTYLE   = 0,
  5651.  LINEWIDTH   = 1,
  5652.  CONSTANT    = 1,
  5653.  MIX         = 0,
  5654.  SELECTABLE  = 0,
  5655.  BOUNDED     = 1
  5656.  
  5657. ! open a second curve, this time enclosed
  5658. LET array[1]=250                ! x start
  5659. LET array[2]=60                 ! y start
  5660. LET array[3]=350                ! x apex
  5661. LET array[4]=120                ! y apex
  5662. LET array[5]=250                ! x end
  5663. LET array[6]=180                ! y end
  5664. OPEN CURVE curve2, def1,
  5665.  REFERENCE   = array[0],
  5666.  ENCLOSED    = 1,               ! curve enclosable
  5667.  CLOSINGLINE = 1,               ! curve enclosed
  5668.  COLOR       = 2,
  5669.  FILLCOLOR   = "Red",
  5670.  FILLPATTERN = 1,
  5671.  LINESTYLE   = 0,
  5672.  LINEWIDTH   = 1,
  5673.  CONSTANT    = 1,
  5674.  MIX         = 0,
  5675.  SELECTABLE  = 0,
  5676.  BOUNDED     = 1
  5677.  
  5678. Examples source library: 
  5679.  
  5680.  
  5681. ΓòÉΓòÉΓòÉ 46. CWORDPOS() ΓòÉΓòÉΓòÉ
  5682.  
  5683. The CWORDPOS() DBCS function returns the position of the word in a string that 
  5684. contains a specified character. 
  5685.  
  5686.                             ΓöîΓöÇ" "ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5687. ΓöÇΓöÇCWORDPOS(string,number,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5688.                             ΓööΓöÇseparatorΓöÇΓöÿ
  5689.  
  5690. Examples 
  5691.  
  5692. More about CWORDPOS() 
  5693.  
  5694. See also: WORDPOS() 
  5695.  
  5696.  
  5697. ΓòÉΓòÉΓòÉ 46.1. Examples ΓòÉΓòÉΓòÉ
  5698.  
  5699. x = CWORDPOS( 'Γò₧╨┤y ╤ço╤ïy', 5 )  ! Result is 2
  5700. x = WORDPOS( 'Γò₧╨┤y ╤ço╤ïy', 7 )   ! Result is 2
  5701.  
  5702. Examples source library: 
  5703.  
  5704.  
  5705. ΓòÉΓòÉΓòÉ 46.2. More about CWORDPOS() ΓòÉΓòÉΓòÉ
  5706.  
  5707. o A zero-length string, or a string which contains nothing but separators, 
  5708.   returns zero. 
  5709.  
  5710. o If there are fewer than number characters in string, the function returns 
  5711.   zero. 
  5712.  
  5713. o Automatic conversion of parameters is carried out if necessary. 
  5714.  
  5715. o An error is returned if number is negative or NULL. Real numbers are 
  5716.   truncated. 
  5717.  
  5718. o A string parameter of type NULL in this function produces a result of NULL. 
  5719.  
  5720. o In this function, a word is defined by a combination of separators (the 
  5721.   default is space), string start, and string end. No lexical, syntactic, or 
  5722.   semantic analysis is implied. 
  5723.  
  5724. o If the position of a separator is specified, the number of the previous word 
  5725.   is returned. 
  5726.  
  5727. o Any separator parameter used must be a string exactly one character in 
  5728.   length.  No DBCS characters can be used. However, when an SBCS space is 
  5729.   specified as separator, both SBCS and DBCS spaces in the string are assumed 
  5730.   to be spaces. 
  5731.  
  5732. o CWORDPOS() counts characters rather than bytes. In an SBCS environment, 
  5733.   WORDPOS() and CWORDPOS() always return the same value. In a DBCS environment, 
  5734.   CWORDPOS() counts DBCS characters as one while WORDPOS() counts them as two. 
  5735.   In the following example, if ╨┤ is a DBCS character: 
  5736.  
  5737.  
  5738. ΓòÉΓòÉΓòÉ 47. DATASESSION ΓòÉΓòÉΓòÉ
  5739.  
  5740. The DATASESSION object represents a connection to a database. There may be many 
  5741. DATASESSION objects open concurrently, provided that the underlying databases 
  5742. support this. 
  5743.  
  5744. The connection to the database is achieved by using an interface. The only 
  5745. interface supported is Q+E Database Library (QELIB). To use the DATASESSION 
  5746. object, you must have QELIB installed. 
  5747.  
  5748. Attributes 
  5749.  
  5750. Actions 
  5751.  
  5752. Events: None. 
  5753.  
  5754. Examples 
  5755.  
  5756. See also: AS400SESSION, AS400TRANS, DATATRANS, SQLSESSION, SQLTRANS. 
  5757.  
  5758.  
  5759. ΓòÉΓòÉΓòÉ 47.1. Attributes ΓòÉΓòÉΓòÉ
  5760.  
  5761. INTERFACE             VERSION 
  5762. CONNECT               DBNAME 
  5763. CODE                  CODEDETAIL 
  5764. REASON                TRACELEVEL 
  5765. MODRECS               AUTOCOMMIT 
  5766.  
  5767.  
  5768. ΓòÉΓòÉΓòÉ 47.1.1. INTERFACE ΓòÉΓòÉΓòÉ
  5769.  
  5770. The name of the interface used to access the database. This must be set to one 
  5771. of: 
  5772.  
  5773. "Q+E,V1"  Q+E Database Library Version 1. 
  5774. "Q+E,V2"  Q+E Database Library Version 2. 
  5775. "Q+E"     The highest supported release of Q+E Database Library, currently Q+E 
  5776.           Database Library Version 2. 
  5777.  
  5778.  
  5779. ΓòÉΓòÉΓòÉ 47.1.2. VERSION ΓòÉΓòÉΓòÉ
  5780.  
  5781. The version of the interface code, if the interface provides this information. 
  5782.  
  5783.  
  5784. ΓòÉΓòÉΓòÉ 47.1.3. CONNECT ΓòÉΓòÉΓòÉ
  5785.  
  5786. The database connection string. The content of this string depends on the 
  5787. database being connected, and on the interface being used. 
  5788.  
  5789. Mandatory. 
  5790.  
  5791.  
  5792. ΓòÉΓòÉΓòÉ 47.1.4. DBNAME ΓòÉΓòÉΓòÉ
  5793.  
  5794. The name of the default database that all subsequent SQL statements will be 
  5795. sent to. 
  5796.  
  5797. Not all database systems have this concept, so it may be mandatory, optional, 
  5798. or disallowed, depending on the CONNECT. 
  5799.  
  5800.  
  5801. ΓòÉΓòÉΓòÉ 47.1.5. CODE ΓòÉΓòÉΓòÉ
  5802.  
  5803. The interface return code from the last operation. 
  5804.  
  5805. Mainly for query. 
  5806.  
  5807.  
  5808. ΓòÉΓòÉΓòÉ 47.1.6. CODEDETAIL ΓòÉΓòÉΓòÉ
  5809.  
  5810. The return code from the database. 
  5811.  
  5812. Mainly for query. 
  5813.  
  5814.  
  5815. ΓòÉΓòÉΓòÉ 47.1.7. REASON ΓòÉΓòÉΓòÉ
  5816.  
  5817. Text that explains the most recent interface return code. Can be queried but 
  5818. not modified. 
  5819.  
  5820.  
  5821. ΓòÉΓòÉΓòÉ 47.1.8. TRACELEVEL ΓòÉΓòÉΓòÉ
  5822.  
  5823. Whether a trace file is produced for diagnostic purposes. 
  5824.  
  5825. 0         Tracing off 
  5826. Nonzero   Tracing on 
  5827.  
  5828. The name of the trace file for the Q+E interface is FTBDATQE. 
  5829.  
  5830. Default: 0 (Off) 
  5831.  
  5832.  
  5833. ΓòÉΓòÉΓòÉ 47.1.9. MODRECS ΓòÉΓòÉΓòÉ
  5834.  
  5835. The number of records modified by the last INSERT, UPDATE, or DELETE. 
  5836.  
  5837.  
  5838. ΓòÉΓòÉΓòÉ 47.1.10. AUTOCOMMIT ΓòÉΓòÉΓòÉ
  5839.  
  5840. If this is set to 1, a COMMIT() is done for open transactions when they are 
  5841. implicitly, closed, either by the start of another transaction or by the 
  5842. shutting of the object. If it is set to 0, ROLLBACK() is done instead. 
  5843.  
  5844. Default: 0 
  5845.  
  5846.  
  5847. ΓòÉΓòÉΓòÉ 47.2. Actions ΓòÉΓòÉΓòÉ
  5848.  
  5849. COMMAND()                TRANSACTION() 
  5850. COMMIT()                 ROLLBACK() 
  5851.  
  5852.  
  5853. ΓòÉΓòÉΓòÉ 47.2.1. COMMAND() ΓòÉΓòÉΓòÉ
  5854.  
  5855. ΓöÇΓöÇCOMMAND(command,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5856.                      ΓööΓöÇmessageΓöÇΓöÿ
  5857.  
  5858. Execute an arbitrary SQL command. SQL parameterised commands are not supported. 
  5859.  
  5860. command   This is a scalar, or a whole vector indicated by [0], containing the 
  5861.           command to be executed. 
  5862.  
  5863. message   This is a scalar, or a whole vector indicated by [0], which will 
  5864.           receive any messages from the command. 
  5865.  
  5866.  
  5867. ΓòÉΓòÉΓòÉ 47.2.2. TRANSACTION() ΓòÉΓòÉΓòÉ
  5868.  
  5869. ΓöÇΓöÇTRANSACTION()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5870.  
  5871. Starts a new transaction on the database connection. 
  5872.  
  5873.  
  5874. ΓòÉΓòÉΓòÉ 47.2.3. COMMIT() ΓòÉΓòÉΓòÉ
  5875.  
  5876. ΓöÇΓöÇCOMMIT()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5877.  
  5878. Commit all changes and end the transaction. 
  5879.  
  5880.  
  5881. ΓòÉΓòÉΓòÉ 47.2.4. ROLLBACK() ΓòÉΓòÉΓòÉ
  5882.  
  5883. ΓöÇΓöÇROLLBACK()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5884.  
  5885. Rollback all changes and end the transaction. 
  5886.  
  5887.  
  5888. ΓòÉΓòÉΓòÉ 47.3. Examples ΓòÉΓòÉΓòÉ
  5889.  
  5890. For examples, see DATATRANS. 
  5891.  
  5892. Examples source library: 
  5893.  
  5894.  
  5895. ΓòÉΓòÉΓòÉ 48. DATATRANS ΓòÉΓòÉΓòÉ
  5896.  
  5897. The DATATRANS object represents data transfer to or from a database which is 
  5898. being accessed through a DATASESSION object. The DATATRANS must be opened with 
  5899. a DATASESSION as its parent. 
  5900.  
  5901. Attributes 
  5902.  
  5903. Actions 
  5904.  
  5905. Events: None. 
  5906.  
  5907. Examples 
  5908.  
  5909. See also: AS400SESSION, AS400TRANS, DATASESSION, SQLSESSION, SQLTRANS. 
  5910.  
  5911.  
  5912. ΓòÉΓòÉΓòÉ 48.1. Attributes ΓòÉΓòÉΓòÉ
  5913.  
  5914. ACCESS                CODE 
  5915. CODEDETAIL            REASON 
  5916. TABLE                 COLUMNS 
  5917. GENKEYCOL             TRIM 
  5918. EOF 
  5919.  
  5920.  
  5921. ΓòÉΓòÉΓòÉ 48.1.1. ACCESS ΓòÉΓòÉΓòÉ
  5922.  
  5923. Sets the database access mode to either "SEQUENTIAL" or "RANDOM". (You can 
  5924. abbreviate these to one character.) 
  5925.  
  5926. Default "SEQUENTIAL", which limits data access to GETNEXTROW() and SNAPSHOT(). 
  5927.  
  5928.  
  5929. ΓòÉΓòÉΓòÉ 48.1.2. CODE ΓòÉΓòÉΓòÉ
  5930.  
  5931. The interface return code from the last operation. 
  5932.  
  5933.  
  5934. ΓòÉΓòÉΓòÉ 48.1.3. CODEDETAIL ΓòÉΓòÉΓòÉ
  5935.  
  5936. The return code from the database. 
  5937.  
  5938.  
  5939. ΓòÉΓòÉΓòÉ 48.1.4. REASON ΓòÉΓòÉΓòÉ
  5940.  
  5941. Text that explains the most recent interface return code. Can be queried but 
  5942. not modified. 
  5943.  
  5944.  
  5945. ΓòÉΓòÉΓòÉ 48.1.5. TABLE ΓòÉΓòÉΓòÉ
  5946.  
  5947. Associates a Product table with the transfer. 
  5948.  
  5949.  
  5950. ΓòÉΓòÉΓòÉ 48.1.6. COLUMNS ΓòÉΓòÉΓòÉ
  5951.  
  5952. The number of columns present in a SELECT statement. 
  5953.  
  5954.  
  5955. ΓòÉΓòÉΓòÉ 48.1.7. GENKEYCOL ΓòÉΓòÉΓòÉ
  5956.  
  5957. Names a column that is to be added to the table as a generated key column. The 
  5958. column contains ascending integers. 
  5959.  
  5960.  
  5961. ΓòÉΓòÉΓòÉ 48.1.8. TRIM ΓòÉΓòÉΓòÉ
  5962.  
  5963. Whether all character strings read from the database have trailing blanks 
  5964. removed. 
  5965.  
  5966. 0         Trailing blanks not removed 
  5967. 1         Trailing blanks removed 
  5968.  
  5969. Default: 0 (Trailing blanks not removed) 
  5970.  
  5971.  
  5972. ΓòÉΓòÉΓòÉ 48.1.9. EOF ΓòÉΓòÉΓòÉ
  5973.  
  5974. Set to 1 (true) if the last data retrieval resulted in End Of Fetch. 
  5975.  
  5976.  
  5977. ΓòÉΓòÉΓòÉ 48.2. Actions ΓòÉΓòÉΓòÉ
  5978.  
  5979. GOTOTOP()               SNAPSHOT() 
  5980. SETEXPR()               SQLTABLE() 
  5981. COLUMNS()               SETKEYS() 
  5982. KEYS()                  GETNEXTROW() 
  5983. GETPREVROW()            GETROW() 
  5984. LOAD() 
  5985.  
  5986.  
  5987. ΓòÉΓòÉΓòÉ 48.2.1. GOTOTOP() ΓòÉΓòÉΓòÉ
  5988.  
  5989. ΓöÇΓöÇGOTOTOP()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5990. Reset retrieval so that the next row fetched will be the first row. 
  5991.  
  5992.  
  5993. ΓòÉΓòÉΓòÉ 48.2.2. SNAPSHOT() ΓòÉΓòÉΓòÉ
  5994.  
  5995. ΓöÇΓöÇSNAPSHOT(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5996.               ΓööΓöÇcountΓöÇΓöÿ
  5997. Fetch the next sequential rows and add them to the associated Product table. 
  5998.  
  5999. count     The maximum number of rows to retrieve. If omitted, the whole table 
  6000.           is retrieved. 
  6001.  
  6002. Requires ACCESS="SEQ" 
  6003.  
  6004.  
  6005. ΓòÉΓòÉΓòÉ 48.2.3. SETEXPR() ΓòÉΓòÉΓòÉ
  6006.  
  6007. ΓöÇΓöÇSETEXPR(expression)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6008. Sets up an SQL SELECT expression which defines a query for later retrieval. 
  6009. Parameterised expressions are not supported. 
  6010.  
  6011. expr      This is a scalar, or a whole vector indicated by [0], containing the 
  6012.           SELECT expression. Vector elements are concatenated with no 
  6013.           intervening separators, so required blanks must be included in the 
  6014.           input. 
  6015.  
  6016.  
  6017. ΓòÉΓòÉΓòÉ 48.2.4. SQLTABLE() ΓòÉΓòÉΓòÉ
  6018.  
  6019. ΓöÇΓöÇSQLTABLE(sqltable)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6020.  
  6021. For LOAD(), SQLTABLE() names the table to be loaded. 
  6022.  
  6023. For GET, SQLTABLE(x) is shorthand for SETEXPR("SELECT * FROM x"). 
  6024.  
  6025. sqltable  This is a scalar naming the SQL table. 
  6026.  
  6027.  
  6028. ΓòÉΓòÉΓòÉ 48.2.5. COLUMNS() ΓòÉΓòÉΓòÉ
  6029.  
  6030. ΓöÇΓöÇCOLUMNS(names,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6031.                    ΓööΓöÇtypesΓöÇΓöÿ
  6032. The names of the columns present in a SELECT statement. 
  6033.  
  6034. The column names in a table are passed through the existing name filter to 
  6035. ensure that the set of names is suitable for a Product table. This involves: 
  6036.  
  6037. o Replacing unacceptable characters by underscores 
  6038. o Resolving duplicates by adding a unique numeric suffix 
  6039. o Supplying a default name, "SQL" plus a suffix, for any column which has no 
  6040.   name, or whose name is wholly unacceptable. 
  6041.  
  6042. names     The column names 
  6043. types     The column types 
  6044.  
  6045.  
  6046. ΓòÉΓòÉΓòÉ 48.2.6. SETKEYS() ΓòÉΓòÉΓòÉ
  6047.  
  6048. ΓöÇΓöÇSETKEYS(keyvector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6049. Identifies the columns to be used as keys when data is loaded into a Product 
  6050. table. If this is not specified, the key will be a generated key column called 
  6051. SEQKEY. 
  6052.  
  6053. keyvector A vector containing the names of the key columns, in major-to-minor 
  6054.           order. 
  6055.  
  6056.  
  6057. ΓòÉΓòÉΓòÉ 48.2.7. KEYS() ΓòÉΓòÉΓòÉ
  6058.  
  6059. ΓöÇΓöÇKEYS(keyvector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6060. Returns the columns which will be used as keys. 
  6061.  
  6062. KEYS( vector ) 
  6063.  
  6064. keyvector A vector to be filled with the names of the key columns, in 
  6065.           major-to-minor order. 
  6066.  
  6067.  
  6068. ΓòÉΓòÉΓòÉ 48.2.8. GETNEXTROW() ΓòÉΓòÉΓòÉ
  6069.  
  6070. ΓöÇΓöÇGETNEXTROW(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6071.                 ΓööΓöÇvectorΓöÇΓöÿ
  6072.  
  6073. Fetch the next sequential row and place the column elements into a vector (if 
  6074. specified), and add the row to the associated Product table (if available). 
  6075.  
  6076. vector    If specified, the column elements are placed in this vector. If it is 
  6077.           omitted, the column elements are associated with like-named columns 
  6078.           in the associated Product table and the values are used to insert a 
  6079.           new row. 
  6080.  
  6081. Requires ACCESS="SEQ". 
  6082.  
  6083.  
  6084. ΓòÉΓòÉΓòÉ 48.2.9. GETPREVROW() ΓòÉΓòÉΓòÉ
  6085.  
  6086. ΓöÇΓöÇGETPREVROW(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6087.                 ΓööΓöÇvectorΓöÇΓöÿ
  6088.  
  6089. Fetch the previous row and place the column elements into a vector (if 
  6090. specified), and add the row to the associated Product table (if available). 
  6091.  
  6092. vector    If specified, the column elements are placed in this vector. If it is 
  6093.           omitted, the column elements are associated with like-named columns 
  6094.           in the associated Product table and the values are used to insert a 
  6095.           new row. 
  6096.  
  6097. Requires ACCESS="RANDOM". 
  6098.  
  6099.  
  6100. ΓòÉΓòÉΓòÉ 48.2.10. GETROW() ΓòÉΓòÉΓòÉ
  6101.  
  6102. ΓöÇΓöÇGETROW(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,rownumber)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6103.             ΓööΓöÇvectorΓöÇΓöÿ
  6104.  
  6105. Fetch a specific row and place the column elements into a vector (if 
  6106. specified), and add the row to the associated Product table (if available). 
  6107.  
  6108. vector    If specified, the column elements are placed in this vector. If it is 
  6109.           omitted, the column elements are associated with like-named columns 
  6110.           in the associated Product table and the values are used to insert a 
  6111.           new row. 
  6112.  
  6113. rownumber The number of the row to be retrieved. 
  6114.  
  6115. Requires ACCESS="RANDOM". 
  6116.  
  6117.  
  6118. ΓòÉΓòÉΓòÉ 48.2.11. LOAD() ΓòÉΓòÉΓòÉ
  6119.  
  6120. ΓöÇΓöÇLOAD(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6121.           ΓööΓöÇfirstΓöÇΓöÿ   ΓööΓöÇlastΓöÇΓöÿ
  6122. Load rows from the associated Product table into the database. 
  6123.  
  6124. first     The index of the first row to be used. If it is omitted, processing 
  6125.           starts at the first row of the table. 
  6126.  
  6127. last      The index of the last row to be used. If it is omitted, processing 
  6128.           ends at the last row of the table. 
  6129.  
  6130.  
  6131. ΓòÉΓòÉΓòÉ 48.3. Examples ΓòÉΓòÉΓòÉ
  6132.  
  6133. Loading a table from dBase: 
  6134.  
  6135. OPEN DATASESSION sess, CONNECT="DRV=QEDBF", AUTOCOMMIT=1
  6136. OPEN TABLE       tab,  sess, NAME="..." ...
  6137. OPEN DATATRANS   tran, sess, ACCESS="Seq", TABLE=tab
  6138. CALL tran'SETEXPR( "SELECT * FROM EmpData" )
  6139. CALL tran'SNAPSHOT()
  6140. SHUT sess
  6141.  
  6142. Reading records from DB/2: 
  6143.  
  6144. OPEN DATASESSION sess,
  6145.  CONNECT="DRV=QEDB2;SRVR=...;UID=TWDUSER;PWD=Obvious",
  6146.  AUTOCOMMIT=1
  6147. OPEN DATATRANS   tran, sess, ACCESS="Seq"
  6148. CALL tran'SETEXPR( "SELECT EmployeeNo, EmployeeName FROM EmpData" )
  6149. CALL tran'GETNEXTROW(v)
  6150.  
  6151. Keyed access to Oracle: 
  6152.  
  6153. OPEN DATASESSION sess,
  6154.  CONNECT="DRV=QEORA;SRVR=...;UID=TWDUSER;PWD=Obvious",
  6155.  AUTOCOMMIT=1
  6156. OPEN DATATRANS   tran, sess, ACCESS="Random"
  6157. CALL tran'SETEXPR( "SELECT EmployeeNo, EmployeeName FROM EmpData" )
  6158. CALL tran'GETROW( v, 42 )
  6159.  
  6160. Updating SyBase SQL Server: 
  6161.  
  6162. OPEN DATASESSION sess,
  6163.  CONNECT="DRV=QESS;SRVR=...;UID=TWDUSER;PWD=Trivial",
  6164.  AUTOCOMMIT=1
  6165. CALL sess'COMMAND(
  6166.  "UPDATE Salary=Salary*2 " ||
  6167.  "IN EMPDATA " ||
  6168.  "WHERE EmployeeNo = 09852" )
  6169.  
  6170. Loading data into Oracle: 
  6171.  
  6172. OPEN DATASESSION sess,
  6173.  CONNECT="DRV=QEORA;SRVR=...;UID=TWDUSER;PWD=Obvious",
  6174.  AUTOCOMMIT=1
  6175.  
  6176. DO r = 1 : rows
  6177.   DEFINE insert[0]
  6178.   INSERT insert[0] = 'INSERT INTO EmpData ( '
  6179.   DO c = 1 : cols
  6180.     INSERT insert[0] = ColName[c] || IF(c=cols,')',',')
  6181.   END
  6182.   INSERT insert[0] = 'VALUES ( '
  6183.   DO c = 1 : cols
  6184.     INSERT insert[0] = ColVal[c,r] || IF(c=cols,')',',')
  6185.   END
  6186.   CALL sess'COMMAND( insert[0] )
  6187. END
  6188.  
  6189. Examples source library: 
  6190.  
  6191.  
  6192. ΓòÉΓòÉΓòÉ 49. DATE() ΓòÉΓòÉΓòÉ
  6193.  
  6194. The DATE() function converts a string or a number to a date value. 
  6195.  
  6196. ΓöÇΓöÇDATE(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6197.           ΓööΓöÇvariableΓöÇΓöÿ   ΓööΓöÇformatΓöÇΓöÿ
  6198.  
  6199. Examples 
  6200.  
  6201. More about DATE 
  6202.  
  6203. See also: Formatting data, PROFILE, RETYPE(), TIME() 
  6204.  
  6205.  
  6206. ΓòÉΓòÉΓòÉ 49.1. Examples ΓòÉΓòÉΓòÉ
  6207.  
  6208. ! All these are stored internally to match "25th December, 1994"
  6209. d = DATE( "12/25/94", "MDY" )
  6210. d = DATE( "25/12/94", "DMY" )
  6211. d = DATE( "25th December 1994", "YMD" )
  6212. d = DATE( "25th December 1994", "MDY" )
  6213. d = DATE( 25121994, "DMY" )
  6214. d = DATE( 251294, "DMY" )
  6215.  
  6216. ! The date can be converted according to other formats
  6217. today = DATE()              ! today's date
  6218. today'DATEFORMAT = "YYYY"   ! convert format
  6219. ThisYear = STRING(today)    ! convert to string
  6220. LastYear = ThisYear - 1     ! convert to number
  6221.  
  6222. Examples source library: 
  6223.  
  6224.  
  6225. ΓòÉΓòÉΓòÉ 49.2. More about DATE ΓòÉΓòÉΓòÉ
  6226.  
  6227. o DATE() can be used to override the default short date format used when data 
  6228.   is converted implicitly. 
  6229.  
  6230. o Examples of unambiguous data that will take precedence over the specified 
  6231.   format are: 
  6232.  
  6233.    Names     January, August, or  XII 
  6234.  
  6235.    Suffixed numbers 10th 
  6236.  
  6237.    Four-digit year numbers 1993 
  6238.  
  6239.    DBCS Date Symbols 2M or 5D 
  6240.  
  6241.  
  6242. ΓòÉΓòÉΓòÉ 50. DDECLIENT ΓòÉΓòÉΓòÉ
  6243.  
  6244. The DDECLIENT operates as a DDE client with a DDE server-enabled application. 
  6245.  
  6246. Attributes 
  6247.  
  6248. Actions 
  6249.  
  6250. Events 
  6251.  
  6252. Examples 
  6253.  
  6254. More about DDECLIENT 
  6255.  
  6256. See also: DDESERVER, STREAM 
  6257.  
  6258.  
  6259. ΓòÉΓòÉΓòÉ 50.1. Attributes ΓòÉΓòÉΓòÉ
  6260.  
  6261. APPLICATION            TOPIC 
  6262. ITEM                   TIMEOUT 
  6263. CODE                   TRACE 
  6264.  
  6265.  
  6266. ΓòÉΓòÉΓòÉ 50.1.1. APPLICATION ΓòÉΓòÉΓòÉ
  6267.  
  6268. The server application of interest. Its value may be any character string 
  6269. recognized as an active DDE server. The string is limited to 255 bytes, and 
  6270. must not contain / or \ characters. 
  6271.  
  6272. If the string APPLICATION is not valid, an error condition is raised. If there 
  6273. is not an active DDE server for the specified APPLICATION or TOPIC, the OPEN 
  6274. will fail. 
  6275.  
  6276. Default: None, APPLICATION must be set on OPEN (then read-only). 
  6277.  
  6278.  
  6279. ΓòÉΓòÉΓòÉ 50.1.2. TOPIC ΓòÉΓòÉΓòÉ
  6280.  
  6281. The server topic of interest. Its value may be any character string recognized 
  6282. as a supported topic by the server. The string is limited to 255 bytes. If 
  6283. there is not an active DDE server for the specified APPLICATION or TOPIC, the 
  6284. OPEN will fail. 
  6285.  
  6286. Default: None, TOPIC must be set on OPEN (then read-only). 
  6287.  
  6288.  
  6289. ΓòÉΓòÉΓòÉ 50.1.3. ITEM ΓòÉΓòÉΓòÉ
  6290.  
  6291. The name of a server item. It is queried on receipt of a DATA event to identify 
  6292. the item of interest that has been changed. See the ADVISE action and the DATA 
  6293. event descriptions for more details. 
  6294.  
  6295.  
  6296. ΓòÉΓòÉΓòÉ 50.1.4. TIMEOUT ΓòÉΓòÉΓòÉ
  6297.  
  6298. The timeout period (in seconds), beyond which the DDECLIENT object will 
  6299. consider that a DDE server has ceased to be responsive. The value should a 
  6300. nonnegative number (a value of zero indicates an indefinite timeout period). 
  6301.  
  6302. The value of TIMEOUT represents a minimum overall timeout since some operations 
  6303. involve multiple communications between DDE partners. The timeout period will 
  6304. apply to each communication. 
  6305.  
  6306. If Ctrl+Break is used to interrupt an application while it is waiting for a DDE 
  6307. response, the DDECLIENT object will behave as if the TIMEOUT period had 
  6308. expired. 
  6309.  
  6310. Default: 0, set on OPEN (then read-write). 
  6311.  
  6312.  
  6313. ΓòÉΓòÉΓòÉ 50.1.5. CODE ΓòÉΓòÉΓòÉ
  6314.  
  6315. This attribute may be queried to obtain the error code of the last DDECLIENT 
  6316. operation. 
  6317.  
  6318. Code is set only when the error was a DDE error. Validation errors on attribute 
  6319. modification, or calling actions, do not set CODE. 
  6320.  
  6321.  
  6322. ΓòÉΓòÉΓòÉ 50.1.6. TRACE ΓòÉΓòÉΓòÉ
  6323.  
  6324. Whether a trace file, called FTBDDE, is produced for diagnostic purposes: 
  6325.  
  6326. 0         Tracing off 
  6327. Nonzero   Tracing on 
  6328.  
  6329. Default: 0 (Off) 
  6330.  
  6331.  
  6332. ΓòÉΓòÉΓòÉ 50.2. Actions ΓòÉΓòÉΓòÉ
  6333.  
  6334. SYSTEM()                  QUERYFORMATS() 
  6335. VERIFYFORMAT()            REQUEST() 
  6336. ADVISE()                  UNADVISE() 
  6337. DELIVER()                 EXECUTE() 
  6338.  
  6339.  
  6340. ΓòÉΓòÉΓòÉ 50.2.1. SYSTEM() ΓòÉΓòÉΓòÉ
  6341.  
  6342. ΓöÇΓöÇSYSTEM(Variable,Item)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6343.  
  6344. This action is used to obtain information about the capabilities of the server. 
  6345. It relies on the server having populated the SYSTEM topic with information on 
  6346. the requested item. 
  6347.  
  6348. Note:   If no information exists for the item, Variable will be defined with 
  6349.         zero elements (if undeclared) or populated with nulls (if a scalar or 
  6350.         declared vector). 
  6351.  
  6352. If no response is received from the server within the TIMEOUT period, an error 
  6353. condition is raised. 
  6354.  
  6355. Item is provided by the caller, and must be a character string limited to 255 
  6356. bytes. Variable is the name of a vector or scalar to be populated with 
  6357. information about the item. If it is a declared vector, the dimensions of the 
  6358. vector are fixed, and any excess information will be truncated. If it is an 
  6359. undeclared vector, it will expand as required to hold all the information on 
  6360. the item. 
  6361.  
  6362.  
  6363. ΓòÉΓòÉΓòÉ 50.2.2. QUERYFORMATS() ΓòÉΓòÉΓòÉ
  6364.  
  6365. ΓöÇΓöÇQUERYFORMATS(Formats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6366.  
  6367. This action may be used to obtain information about the format capabilities of 
  6368. the server. It relies on the server having populated the FORMATS item of the 
  6369. SYSTEM topic. If no format information has been provided by the server, no 
  6370. information is returned, this is not treated as an error. 
  6371.  
  6372. If no response is received from the server within the TIMEOUT period, an error 
  6373. condition is raised. 
  6374.  
  6375. Formats is the name of a vector or scalar to be populated with server format 
  6376. information. If it is a declared vector, the dimensions of the vector are 
  6377. fixed, and any excess information will be truncated. If it is an undeclared 
  6378. vector, it will expand as required to hold all the format information. 
  6379.  
  6380.  
  6381. ΓòÉΓòÉΓòÉ 50.2.3. VERIFYFORMAT() ΓòÉΓòÉΓòÉ
  6382.  
  6383. ΓöÇΓöÇVERIFYFORMAT(Format)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6384.  
  6385. This action may be used as an alternative to QUERYFORMATS to verify that the 
  6386. server can render a specific format. It will return 1 if the format is 
  6387. available, or 0 if not. 
  6388.  
  6389. Formats will be the name of the format of interest. 
  6390.  
  6391. If no response is received from the server within the TIMEOUT period, an error 
  6392. condition is raised. 
  6393.  
  6394.  
  6395. ΓòÉΓòÉΓòÉ 50.2.4. REQUEST() ΓòÉΓòÉΓòÉ
  6396.  
  6397. ΓöÇΓöÇREQUEST(Item,Format)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6398.  
  6399. This action may be used to obtain data from the server on the item specified, 
  6400. in the format specified. This format may be known to be supported by the 
  6401. server, or may have been arrived at by looking at the server information in the 
  6402. SYSTEM topic. 
  6403.  
  6404. The REQUEST action will result in an ON TARGET event by which the data is 
  6405. delivered to the client in the format specified. 
  6406.  
  6407. If the specified item/format combination is not supported by the server, an 
  6408. error condition is raised. 
  6409.  
  6410. If no response is received from the server within the TIMEOUT period, an error 
  6411. condition is raised. 
  6412.  
  6413.  
  6414. ΓòÉΓòÉΓòÉ 50.2.5. ADVISE() ΓòÉΓòÉΓòÉ
  6415.  
  6416.                         ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6417. ΓöÇΓöÇADVISE(Item,Format,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6418.                         ΓööΓöÇImmediateΓöÇΓöÿ
  6419.  
  6420. This action may be used to register an interest in a specified item, such that 
  6421. the client is notified whenever the item is updated. The registration is 
  6422. qualified by Format so that a client can potentially receive multiple 
  6423. notifications when a single item changes. Multiple ADVISEs for the same 
  6424. item/format combination are treated as a single ADVISE. 
  6425.  
  6426. If the specified item is not supported by the server, an error condition is 
  6427. raised. If the specified format is not supported by the server, an error 
  6428. condition is raised. If no format is specified, or no format match can be made, 
  6429. an error condition is raised. If no response is received from the server within 
  6430. the TIMEOUT period, an error condition is raised. 
  6431.  
  6432. By default, the client will receive one DATA event whenever the item changes 
  6433. (regardless of the number of ADVISES for the item in different formats), at 
  6434. which point the client might issue a REQUEST action. However, if the optional 
  6435. Boolean Immediate parameter is specified as 1, the client will receive a TARGET 
  6436. event whenever the item changes. 
  6437.  
  6438.  
  6439. ΓòÉΓòÉΓòÉ 50.2.6. UNADVISE() ΓòÉΓòÉΓòÉ
  6440.  
  6441. ΓöÇΓöÇUNADVISE(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6442.               ΓööΓöÇItemΓöÇΓöÿ   ΓööΓöÇFormatΓöÇΓöÿ
  6443.  
  6444. This action removes a registration of interest for a prior ADVISE. If no 
  6445. matching advise has been issued, the UNADVISE is ignored. If Format is not 
  6446. specified, all ADVISEs for the Item are cancelled. If Item is not specified, 
  6447. all ADVISEs are cancelled. 
  6448.  
  6449. If no response is received from the server within the TIMEOUT period, an error 
  6450. condition is raised. 
  6451.  
  6452.  
  6453. ΓòÉΓòÉΓòÉ 50.2.7. DELIVER() ΓòÉΓòÉΓòÉ
  6454.  
  6455. ΓöÇΓöÇDELIVER(Item,Format)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6456.  
  6457. This action allows the client to send data to the server in a format of the 
  6458. clients choice. This action will generate a SOURCE event at the client as 
  6459. described below. 
  6460.  
  6461. Item identifies the item to be delivered, and is reflected in the OBJECTNAME 
  6462. attribute of the STREAM object passed with the SOURCE event. 
  6463.  
  6464. Format identifies the data format and is reflected in the OBJECTNAME attribute 
  6465. of the STREAM object passed with the SOURCE event. 
  6466.  
  6467. If no response is received from the server within the TIMEOUT period, an error 
  6468. condition will be raised. 
  6469.  
  6470.  
  6471. ΓòÉΓòÉΓòÉ 50.2.8. EXECUTE() ΓòÉΓòÉΓòÉ
  6472.  
  6473. ΓöÇΓöÇEXECUTE(Variable)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6474.  
  6475. This action allows the client to send a command string to the server. variable 
  6476. may be a scalar or vector. By convention, the command string will be used by 
  6477. the server according to an agreed protocol. If variable is a multi-element 
  6478. vector, the element values are concatenated for delivery to the server. 
  6479.  
  6480. When setting a value for TIMEOUT, consideration should be given to the amount 
  6481. of time a server might need to process a command sent from EXECUTE. 
  6482.  
  6483. If no response is received from the server within the TIMEOUT period, an error 
  6484. condition will be raised. 
  6485.  
  6486. If the server cannot process the command, an error condition will be raised. 
  6487.  
  6488. If the server accepts the command, but encounters an error in processing it, 
  6489. EXECUTE may return a numeric value qualifying the error. If the server is an 
  6490. instance of DDESERVER, the return value is taken from the value of the STATUS 
  6491. attribute of the STREAM, as set by the server in its ON TARGET block. 
  6492.  
  6493. The time taken by a server to process a command sent with EXECUTE is impossible 
  6494. to predict in the general case. However, a client may know how a specific 
  6495. server will behave, and may deem that a TIMEOUT value specific to EXECUTE is 
  6496. needed. This can be achieved by modifying the TIMEOUT attribute value before 
  6497. and after issuing the EXECUTE. 
  6498.  
  6499.  
  6500. ΓòÉΓòÉΓòÉ 50.3. Events ΓòÉΓòÉΓòÉ
  6501.  
  6502. DATA                       SOURCE(pStream) 
  6503. TARGET(pStream)            QUIT 
  6504. ERROR 
  6505.  
  6506.  
  6507. ΓòÉΓòÉΓòÉ 50.3.1. DATA ΓòÉΓòÉΓòÉ
  6508.  
  6509. This event occurs when the DDECLIENT has issued an ADVISE without the 
  6510. "Immediate" parameter, and the specified item has been modified. 
  6511. A.System.Object identifies the DDECLIENT object that generated the event. The 
  6512. program typically issues a REQUEST action against the DDECLIENT object to 
  6513. request that the modified data be delivered to it. 
  6514.  
  6515. Query the DDECLIENT'ITEM attribute to get the name of the changed item. 
  6516.  
  6517.  
  6518. ΓòÉΓòÉΓòÉ 50.3.2. SOURCE(pStream) ΓòÉΓòÉΓòÉ
  6519.  
  6520. This event occurs when the DELIVER action is invoked. pStream is a pointer to a 
  6521. STREAM object delivered with the event, through which the data may be rendered. 
  6522. The OBJECTNAME attribute of the STREAM object will return the value passed as 
  6523. the Item parameter to the DELIVER action. 
  6524.  
  6525. After the STREAM has been supplied with data, Call the STREAM'FINISHED() action 
  6526. to trigger delivery of the data to the server. If an error occurs while loading 
  6527. data into the stream, set the STREAM'STATUS attribute to a nonzero integer 
  6528. prior to calling the FINISHED() action to cancel the data delivery. The STREAM 
  6529. should be SHUT immediately after calling the FINISHED() action. 
  6530.  
  6531.  
  6532. ΓòÉΓòÉΓòÉ 50.3.3. TARGET(pStream) ΓòÉΓòÉΓòÉ
  6533.  
  6534. This event occurs when data arrives from a DDE server, either in response to a 
  6535. REQUEST action, or an ADVISE action with the "Immediate" parameter specified. 
  6536. pStream is a pointer to a STREAM object delivered with the event, from which 
  6537. the supplied data may be extracted. At the end of TARGET event processing, call 
  6538. the STREAM'FINISHED() action. If errors were encountered extracting the data, 
  6539. the STATUS attribute of the STREAM should be set to a nonzero number prior to 
  6540. calling FINISHED(). The STREAM should be SHUT immediately after calling 
  6541. FINISHED(). 
  6542.  
  6543.  
  6544. ΓòÉΓòÉΓòÉ 50.3.4. QUIT ΓòÉΓòÉΓòÉ
  6545.  
  6546. This event occurs when the server terminates, or no longer services the TOPIC 
  6547.  
  6548. A.System.Object identifies the DDECLIENT object. 
  6549.  
  6550.  
  6551. ΓòÉΓòÉΓòÉ 50.3.5. ERROR ΓòÉΓòÉΓòÉ
  6552.  
  6553. Error in processing data. A.System.Object identifies the DDECLIENT object. 
  6554.  
  6555.  
  6556. ΓòÉΓòÉΓòÉ 50.4. Examples ΓòÉΓòÉΓòÉ
  6557.  
  6558. See the DDEC.PRG and DDES.PRG samples supplied in the Development Samples 
  6559. folder. 
  6560.  
  6561. Examples source library: 
  6562.  
  6563.  
  6564. ΓòÉΓòÉΓòÉ 50.5. More about DDECLIENT ΓòÉΓòÉΓòÉ
  6565.  
  6566. o Both APPLICATION and TOPIC should be set on open.  If a matching active DDE 
  6567.   server is not found, an error condition will occur. 
  6568.  
  6569.  
  6570. ΓòÉΓòÉΓòÉ 51. DDESERVER ΓòÉΓòÉΓòÉ
  6571.  
  6572. The DDESERVER operates as a DDE server with a DDE client-enabled application. 
  6573.  
  6574. Attributes 
  6575.  
  6576. Actions 
  6577.  
  6578. Events 
  6579.  
  6580. Examples 
  6581.  
  6582. More about DDESERVER 
  6583.  
  6584. See also: DDECLIENT, STREAM 
  6585.  
  6586. Also refer to the OS/2 Programming Guide - Volume II 
  6587.  
  6588.  
  6589. ΓòÉΓòÉΓòÉ 51.1. Attributes ΓòÉΓòÉΓòÉ
  6590.  
  6591. APPLICATION            TOPIC 
  6592. MAXCLIENTS             CLIENTS 
  6593. CODE                   TRACE 
  6594.  
  6595.  
  6596. ΓòÉΓòÉΓòÉ 51.1.1. APPLICATION ΓòÉΓòÉΓòÉ
  6597.  
  6598. This attribute must be set at OPEN time, and subsequently queried. It 
  6599. identifies the server application name. Its value may be any character string 
  6600. up to 255 bytes long, and must not contain forward slash (/) or backward slash 
  6601. (\) characters. 
  6602.  
  6603. If an invalid string is assigned to APPLICATION, an error condition is raised. 
  6604.  
  6605.  
  6606. ΓòÉΓòÉΓòÉ 51.1.2. TOPIC ΓòÉΓòÉΓòÉ
  6607.  
  6608. This attribute must be set at OPEN time, and subsequently queried. It 
  6609. identifies the current server topic. Its value may be any character string up 
  6610. to 255 bytes long. 
  6611.  
  6612. "SYSTEM" is a reserved TOPIC name. If TOPIC is set to this value an error 
  6613. condition will result. 
  6614.  
  6615.  
  6616. ΓòÉΓòÉΓòÉ 51.1.3. MAXCLIENTS ΓòÉΓòÉΓòÉ
  6617.  
  6618. This attribute may be set at OPEN time, and subsequently queried. It may be 
  6619. used to limit the number of concurrent clients that the DDESERVER object will 
  6620. connect to. The default value is 0, indicating no limit. Any value specified 
  6621. must be a positive integer. 
  6622.  
  6623.  
  6624. ΓòÉΓòÉΓòÉ 51.1.4. CLIENTS ΓòÉΓòÉΓòÉ
  6625.  
  6626. This attribute may be queried to obtain the number of DDE clients currently in 
  6627. conversation with this DDESERVER. 
  6628.  
  6629.  
  6630. ΓòÉΓòÉΓòÉ 51.1.5. CODE ΓòÉΓòÉΓòÉ
  6631.  
  6632. This attribute may be queried to obtain the error code of the last DDESERVER 
  6633. operation. 
  6634.  
  6635. Code is set only when the error was a DDE error. Validation errors on attribute 
  6636. modification, or calling actions, do not set CODE. 
  6637.  
  6638.  
  6639. ΓòÉΓòÉΓòÉ 51.1.6. TRACE ΓòÉΓòÉΓòÉ
  6640.  
  6641. Whether a trace file, called FTBDDE, is produced for diagnostic purposes: 
  6642.  
  6643. 0         Tracing off 
  6644. Nonzero   Tracing on 
  6645.  
  6646. Default: 0 (Off) 
  6647.  
  6648.  
  6649. ΓòÉΓòÉΓòÉ 51.2. Actions ΓòÉΓòÉΓòÉ
  6650.  
  6651. SYSTEM()                  FORMATS() 
  6652. INFORM()                  QUERYADVISES() 
  6653. ADVISE() 
  6654.  
  6655.  
  6656. ΓòÉΓòÉΓòÉ 51.2.1. SYSTEM() ΓòÉΓòÉΓòÉ
  6657.  
  6658. ΓöÇΓöÇSYSTEM(Variable,Item)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6659.  
  6660. This action may be used to supply information about the capabilities of the 
  6661. server. Some products may rely on this information being available when acting 
  6662. as a client. 
  6663.  
  6664. Item is provided by the caller, and must be a character string limited to 255 
  6665. bytes. Variable is the name of a scalar or vector, or a literal, containing 
  6666. information about the item. The scalar or vector may be declared data or 
  6667. undeclared data. 
  6668.  
  6669. The contents of Variable will replace any existing information on the specified 
  6670. item. 
  6671.  
  6672. The SYSITEMS item will be updated automatically by DDESERVER whenever the 
  6673. SYSTEM action is used. For this reason, "SYSITEMS" is a reserved value that may 
  6674. not be specified as the first parameter to the SYSTEM action. 
  6675.  
  6676.  
  6677. ΓòÉΓòÉΓòÉ 51.2.2. FORMATS() ΓòÉΓòÉΓòÉ
  6678.  
  6679. ΓöÇΓöÇFORMATS(Formats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6680.  
  6681. This action may be used to supply information about the format capabilities of 
  6682. the server. 
  6683.  
  6684. Formats is the name of a scalar or vector, or a literal, containing the 
  6685. format(s) supported by the server. The scalar or vector may be declared data or 
  6686. undeclared data. 
  6687.  
  6688. The contents of Formats will replace any existing information on for the 
  6689. FORMATS item within the SYSTEM topic. 
  6690.  
  6691.  
  6692. ΓòÉΓòÉΓòÉ 51.2.3. INFORM() ΓòÉΓòÉΓòÉ
  6693.  
  6694. ΓöÇΓöÇINFORM(Item)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6695.  
  6696. This action will inform all clients with a current ADVISE on Item that the item 
  6697. has been updated. 
  6698.  
  6699.  
  6700. ΓòÉΓòÉΓòÉ 51.2.4. QUERYADVISES() ΓòÉΓòÉΓòÉ
  6701.  
  6702. ΓöÇΓöÇQUERYADVISES(Items,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6703.                         ΓööΓöÇFormatsΓöÇΓöÿ
  6704.  
  6705. This action allows the server to discover what ADVISEs are currently active. 
  6706.  
  6707. Items is the name of a vector or scalar, declared or undeclared, to be 
  6708. populated with items for which there are active advises. If it is a scalar or 
  6709. declared vector, its dimensions are fixed, and any excess item information will 
  6710. be truncated. If it is an undeclared vector, it will expand as required to hold 
  6711. all the item information. 
  6712.  
  6713. Formats may optionally be set to the name of a vector or scalar, declared or 
  6714. undeclared, to be populated with format information for active advises. If it 
  6715. is a scalar or declared vector, its dimensions are fixed, and any excess format 
  6716. information will be truncated. If it is an undeclared vector, it will expand as 
  6717. required to hold all the format information. 
  6718.  
  6719. If Formats is provided, Items and Formats will be populated with information 
  6720. for each unique item/format combination. If Formats is omitted, Items will be 
  6721. populated with one entry for each unique item. 
  6722.  
  6723.  
  6724. ΓòÉΓòÉΓòÉ 51.2.5. ADVISE() ΓòÉΓòÉΓòÉ
  6725.  
  6726. ΓöÇΓöÇADVISE(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6727.             ΓööΓöÇItemΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÿ
  6728.                    ΓööΓöÇ,FormatΓöÇΓöÿ
  6729.  
  6730. This action allows the server to discover how many advises are currently active 
  6731. for a given item and format. item is optional. When present, it is the name of 
  6732. an item supported by the server. Format is also optional and is the name of a 
  6733. data format supported by the server. If both item and Format are provided, 
  6734. ADVISE() returns the number of client ADVISE actions for the item and format 
  6735. combination. 
  6736.  
  6737. If the specified item and format combination is not supported by the server, an 
  6738. error condition is raised. If no item or no format is specified, ADVISE() will 
  6739. return the total number of client ADVISE() actions without regard to item or 
  6740. format. 
  6741.  
  6742.  
  6743. ΓòÉΓòÉΓòÉ 51.3. Events ΓòÉΓòÉΓòÉ
  6744.  
  6745. ADVISE(pStream)                INITIATE(pDDEserver) 
  6746. SOURCE(pStream)                TARGET(pStream) 
  6747. ERROR 
  6748.  
  6749.  
  6750. ΓòÉΓòÉΓòÉ 51.3.1. ADVISE(pStream) ΓòÉΓòÉΓòÉ
  6751.  
  6752. This event occurs when a client issues an ADVISE without specifying that an 
  6753. immediate delivery of data is required. pStream points to a STREAM object 
  6754. delivered with the event. 
  6755.  
  6756. The OBJECTNAME and FORMAT attributes of the STREAM identify the item that the 
  6757. advise is for, and the format of interest. 
  6758.  
  6759. If the program is capable of rendering the item in the requested format, it 
  6760. should call the FINISHED action of the STREAM and then SHUT the STREAM. 
  6761.  
  6762. If the program is not capable of rendering the data, it should set the STATUS 
  6763. attribute of the STREAM to a number greater than 0 prior to calling FINISHED 
  6764. and shutting the STREAM. This will signal to the client that the ADVISE is not 
  6765. accepted. 
  6766.  
  6767.  
  6768. ΓòÉΓòÉΓòÉ 51.3.2. INITIATE(pDDEserver) ΓòÉΓòÉΓòÉ
  6769.  
  6770. This event occurs when a DDE client initiates a new conversation with the 
  6771. DDESERVER object. If this information is not of interest to the ASL program, 
  6772. then the event does not need to be coded. 
  6773.  
  6774. pDDEserver is a pointer to the DDESERVER object that raised the event. 
  6775.  
  6776.  
  6777. ΓòÉΓòÉΓòÉ 51.3.3. SOURCE(pStream) ΓòÉΓòÉΓòÉ
  6778.  
  6779. This event occurs when a client requests data. It also occurs immediately in 
  6780. response to an INFORM action when there is at least one client with an 
  6781. immediate ADVISE in effect. 
  6782.  
  6783. pStream points to a STREAM object delivered with the event, through which the 
  6784. supplied data may be rendered. The OBJECTNAME attribute of the STREAM object 
  6785. identifies the required item. The FORMAT attribute identifies the format in 
  6786. which the data is required. 
  6787.  
  6788. At the end of ON SOURCE processing, the FINISHED() action of the STREAM should 
  6789. be called. This will trigger delivery of the data to the client(s). 
  6790.  
  6791. If an error occurs populating the STREAM, then the STATUS attribute of the 
  6792. STREAM should be set to a nonzero integer prior to the FINISHED() action. The 
  6793. STREAM should be SHUT immediately after calling the FINISHED() action. 
  6794.  
  6795.  
  6796. ΓòÉΓòÉΓòÉ 51.3.4. TARGET(pStream) ΓòÉΓòÉΓòÉ
  6797.  
  6798. This event occurs when a client delivers data to the server using a DDE Poke 
  6799. (the DELIVER action on DDECLIENT), or when it sends a DDE Execute to the server 
  6800. (the EXECUTE action on DDECLIENT). 
  6801.  
  6802. pStream points to a STREAM delivered with the event, from which the supplied 
  6803. data may be extracted. If the TARGET event was generated as a result of an 
  6804. EXECUTE action at the client, then the FORMAT attribute is "FTBCOMMAND". 
  6805.  
  6806. At the end of ON TARGET processing, the FINISHED() action of the STREAM should 
  6807. be called. 
  6808.  
  6809. If an error occurs processing the STREAM data, the STATUS attribute of the 
  6810. STREAM should be set to a nonzero integer prior to the FINISHED() action. The 
  6811. STREAM should be SHUT immediately after calling the FINISHED() action. 
  6812.  
  6813.  
  6814. ΓòÉΓòÉΓòÉ 51.3.5. ERROR ΓòÉΓòÉΓòÉ
  6815.  
  6816. Error in processing data. 
  6817.  
  6818.  
  6819. ΓòÉΓòÉΓòÉ 51.4. Examples ΓòÉΓòÉΓòÉ
  6820.  
  6821. See the DDEC.PRG and DDES.PRG samples supplied in the Development Samples 
  6822. folder. 
  6823.  
  6824. Examples source library: 
  6825.  
  6826.  
  6827. ΓòÉΓòÉΓòÉ 51.5. More about DDESERVER ΓòÉΓòÉΓòÉ
  6828.  
  6829. o The SYSTEM topic is a DDE convention that relies on the cooperation of DDE 
  6830.   servers to provide some standard items of information. This information may 
  6831.   be of general interest to DDE clients. 
  6832.  
  6833.   Because of the special convention associated with the SYSTEM topic, the 
  6834.   DDESERVER and DDECLIENT objects give access to item information within the 
  6835.   SYSTEM topic by using the SYSTEM action. However, the SYSTEM topic is 
  6836.   actually no different to any other topic, and information can be exchanged 
  6837.   between client and server in the same way as any other topic. 
  6838.  
  6839.  
  6840. ΓòÉΓòÉΓòÉ 52. DECLARE ΓòÉΓòÉΓòÉ
  6841.  
  6842. DECLARE can be used to declare local data, global data, and the existence of 
  6843. objects. 
  6844.  
  6845. Use DECLARE for efficient use of parameters, local data, or TASK data. Also, 
  6846. use DECLARE to retain values between procedure calls, or when recursive calls 
  6847. may occur. 
  6848.  
  6849.                                     ΓöîΓöÇ[1]ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6850. ΓöÇΓöÇDECLAREΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇdatatypeΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇnameΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6851.              ΓööΓöÇoptionsΓöÇΓöÿ            ΓööΓöÇ[limit]ΓöÇΓöÿ        ΓööΓöÇ[extent]ΓöÇΓöÿ
  6852. ΓöÇΓöÇ=ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  6853.      ΓööΓöÇinitializerΓöÇΓöÿ
  6854.  
  6855. Examples 
  6856.  
  6857. More about DECLARE 
  6858.  
  6859. See also: OPEN 
  6860.  
  6861.  
  6862. ΓòÉΓòÉΓòÉ 52.1. Examples ΓòÉΓòÉΓòÉ
  6863.  
  6864. /*---------------------------------*/
  6865. /* Variable initialization routine */
  6866. /*---------------------------------*/
  6867. PROCEDURE INIT( size )
  6868. DO
  6869.   DECLARE NUMERIC size
  6870.   DECLARE TASK NUMERIC already = 0
  6871.   DECLARE NUMERIC i
  6872.   IF \already
  6873.   THEN DO
  6874.     already = 1
  6875.     DO i=1 : size
  6876.       ...
  6877.     END
  6878.   END
  6879. END
  6880.  
  6881. DECLARE NUMERIC first = 1
  6882. ON SELECT
  6883. DO
  6884.   IF first
  6885.   THEN CALL INIT()
  6886.   ...
  6887. END
  6888. ON DATA
  6889. DO
  6890.   IF first
  6891.   THEN CALL INIT()
  6892.   ...
  6893. END
  6894.  
  6895. /*-------------------*/
  6896. /* Factorial routine */
  6897. /*-------------------*/
  6898. PROCEDURE FACTORIAL( x )
  6899. DO
  6900.   DECLARE NUMERIC x
  6901.   DECLARE NUMERIC xfac
  6902.   IF x > 0
  6903.   THEN xfac = x * FACTORIAL(x-1)
  6904.   ELSE xfac = 1
  6905.   RETURN xfac
  6906. END
  6907.  
  6908. Examples source library: 
  6909.  
  6910.  
  6911. ΓòÉΓòÉΓòÉ 52.2. More about DECLARE ΓòÉΓòÉΓòÉ
  6912.  
  6913. o Purpose of DECLARE 
  6914.  
  6915.   Use DECLARE as follows: 
  6916.  
  6917.    - Declare parameters for efficiency. 
  6918.  
  6919.    - Declare task data for values to be retained between procedure calls. 
  6920.  
  6921.    - Declare local or task data for efficiency. 
  6922.  
  6923.    - Declare local data if recursive calls will occur. 
  6924.  
  6925. o Scope of the variables 
  6926.  
  6927.   The attributes LOCAL, TASK, and GLOBAL describe the scope of the data. 
  6928.  
  6929.   GLOBAL data is data known outside the task (A.. or M.. for example) and is 
  6930.   DECLAREable only for consistency. GLOBAL data may not specify limits, 
  6931.   extents, or initializers. Variables which are not DECLAREd are GLOBAL by 
  6932.   default. 
  6933.  
  6934.   TASK data is allocated when the task starts, and remains allocated until the 
  6935.   task stops. Values held by TASK data are persistent. 
  6936.  
  6937.   LOCAL data is allocated on entry to a block, and remains allocated until the 
  6938.   ON or PROCEDURE block returns. Values held by LOCAL data are lost when a 
  6939.   block returns. 
  6940.  
  6941. o Position of DECLARE 
  6942.  
  6943.   The position of a DECLARE statement defines the scope of the name. 
  6944.  
  6945.   DECLARE statements may occur outside of any block. In this case, LOCAL has no 
  6946.   meaning and the default is TASK. The name may be used anywhere in the task. 
  6947.  
  6948.   DECLARE statements may occur as the first statements of any ON or PROCEDURE 
  6949.   block. The default is LOCAL, but TASK may be specified. The name is only 
  6950.   known within the block. The same name may be used in other blocks or outside 
  6951.   of all blocks without conflict. 
  6952.  
  6953.   A TASK variable declared inside a block is allocated as for all TASK 
  6954.   variables, but the name is only known within the block. 
  6955.  
  6956.   The parameters to a block may be declared. These declarations must appear 
  6957.   before all other declarations in the block. Parameters may not specify array 
  6958.   extents or initializers. 
  6959.  
  6960. o Initial values and clear 
  6961.  
  6962.   Initializers apply to all values in an array. 
  6963.  
  6964.   If there is no initializer for a LOCAL variable, it is not initialized, and 
  6965.   use of the variable will have unpredictable results. 
  6966.  
  6967.   The CLEAR statement or the CLEAR option can be used to set a variable to an 
  6968.   initial state. TASK variables with no initializer are set to this clear 
  6969.   state. If the variable will accept NULLS, the initial state is NULL, 
  6970.   otherwise it depends on the data type. 
  6971.  
  6972. o Variable extents and initializers 
  6973.  
  6974.   The limit, extent, and initializer for a particular variable may be constant 
  6975.   or variable. 
  6976.  
  6977.   For LOCAL data, any variables used must be known prior to the declaration. 
  6978.   This includes global data, task data, and data local to the same block 
  6979.   (including parameters), but the data must be declared earlier in the program. 
  6980.  
  6981.   For TASK data, any variables used must be known prior to the declaration. 
  6982.   This includes global data and task data, but the data must be declared 
  6983.   earlier in the program. 
  6984.  
  6985.   TASK data with no variables involved is allocated and initialized by the 
  6986.   compiler; all other data is allocated and initialized by executable code. 
  6987.  
  6988. o Dynamic allocation 
  6989.  
  6990.   Storage for TASK data which is declared with the DEFINED attribute is 
  6991.   allocated dynamically by the DEFINE statement. It may be defined to any size 
  6992.   and to 1 or 2 dimensions. If it has already been defined, any data which it 
  6993.   contains is lost. Storage may be released by defining it back to [0]. 
  6994.  
  6995. o Indirection 
  6996.  
  6997.   Declared data does not have a name at execution time, so the syntax 
  6998.   POINTER("var") cannot work. Instead, the syntax POINTER(var[0]) must be used. 
  6999.   This syntax is valid for GLOBAL data as well. 
  7000.  
  7001. o Data attributes 
  7002.  
  7003.   Certain data attributes are supported for declared data. All other attributes 
  7004.   are tolerated for query, and deliver zero or an empty string, as appropriate. 
  7005.   Only the format attributes may be modified. 
  7006.  
  7007.   At the element level, TYPE, FORMAT, DATEFORMAT, and TIMEFORMAT attributes are 
  7008.   supported. At the dictionary level, ENTRIES, WIDTH, DIMENSIONS, and MULTS are 
  7009.   supported in addition to the element level format attributes. 
  7010.  
  7011. o Object handlers 
  7012.  
  7013.   Object handlers which accept vector input by name, such as 
  7014.   REFERENCE="myvector", will accept the syntax REFERENCE=myvector[0] for both 
  7015.   declared and global data. 
  7016.  
  7017. o Restrictions of DECLARE 
  7018.  
  7019.   The following are restrictions of DECLARE: 
  7020.  
  7021.    RENAME    cannot be used on declared data. 
  7022.  
  7023.    DELETE    cannot be used on declared data. 
  7024.  
  7025.    CLEAR     Sets all elements to NULL if acceptable, otherwise an initial 
  7026.              value 
  7027.  
  7028.    COPY      If COPY copies to declared data, the receiver must be the correct 
  7029.              shape, and must be sufficiently large, otherwise data will be 
  7030.              lost. Extra elements in the receiver are cleared. 
  7031.  
  7032.    INSERT    is not supported. 
  7033.  
  7034.    { }       is not supported. 
  7035.  
  7036.    Objects   Declared data cannot be used as an object handle. 
  7037.  
  7038.    ASL-C     Declared data values can be used across this interface, but 
  7039.              declared data cannot be accessed by a handle. 
  7040.  
  7041.    INDEX     is not supported 
  7042.  
  7043.    NAMES     is not supported for DECLAREd data and only generates GLOBAL data 
  7044.              output 
  7045.  
  7046.    GATHER/ANALYZE Only generate GLOBAL data output 
  7047.  
  7048.    FILE'GET( ) Only generates GLOBAL data output 
  7049.  
  7050.    ENTRIES( ) Not supported for DECLAREd data, use [0]'ENTRIES instead 
  7051.  
  7052. o Vector output 
  7053.  
  7054.   Many operations generate output vectors. Examples are: 
  7055.  
  7056.    - COPY 
  7057.    - SYSTEM'FILE( ) and SYSTEM'FILES( ) 
  7058.    - CLIPBOARD'GET( ) 
  7059.    - GATHER and ANALYSE. 
  7060.  
  7061.   Not all such operations can generate declared data vectors. In the cases in 
  7062.   which it can be done, these are the rules: 
  7063.  
  7064.    - If the target has the DEFINED attribute, it will be allocated with a 
  7065.      suitable number of elements. If it already holds data, that data will be 
  7066.      lost. 
  7067.  
  7068.    - If the target does not have the DEFINED attribute, it will be filled with 
  7069.      data. If it is smaller than required, data will be lost, and if it is 
  7070.      larger, the data will be padded with CLEAR values. 
  7071.  
  7072.  
  7073. ΓòÉΓòÉΓòÉ 53. DEFINE statement ΓòÉΓòÉΓòÉ
  7074.  
  7075. The DEFINE statement has three uses: 
  7076.  
  7077. o To allocate an array and specify the number of elements in the array 
  7078. o To declare the columns of a table after it is created using OPEN TABLE 
  7079. o To resize arrays which have already been defined. 
  7080.  
  7081. ΓöÇΓöÇDEFINEΓöÇΓöÇvariablerefΓöÇΓöÇΓö¼ΓöÇ[ΓöÇΓöÇexp1ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ]ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7082.                          Γöé          ΓööΓöÇ,exp2ΓöÇΓöÿ     ΓööΓöÇ=exp3ΓöÇΓöÿ Γöé
  7083.                          ΓööΓöÇ[ΓöÇΓöÇexp1=*ΓöÇΓöÇ]ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7084.  
  7085. Examples 
  7086.  
  7087. More about DEFINE 
  7088.  
  7089. See also: CLEAR, DECLARE, DELETE, INSERT, GRAPHIC, ENTRIES() 
  7090.  
  7091. Also see Dictionary attributes for the following attributes: 
  7092.  
  7093. DIMENSIONS 
  7094. ENTRIES 
  7095. MULTS 
  7096.  
  7097.  
  7098. ΓòÉΓòÉΓòÉ 53.1. Examples ΓòÉΓòÉΓòÉ
  7099.  
  7100. To define a vector and insert three elements into it: 
  7101.  
  7102. DEFINE vec[0]
  7103. INSERT vec[0] = "First entry"
  7104. INSERT vec[0] = "Second entry"
  7105. INSERT vec[0] = "Third entry"
  7106.  
  7107. DECLARE TASK DEFINED CHARACTER[*] dvec
  7108. DEFINE dvec[3]
  7109. dvec[1] = "First entry"
  7110. dvec[2] = "Second entry"
  7111. dvec[3] = "Third entry"
  7112.  
  7113. More examples of DEFINE: 
  7114.  
  7115. DEFINE Array[ size ]
  7116. DEFINE Matrix[ rows, cols ]
  7117.  
  7118. DEFINE Employee.Name[*]
  7119.  
  7120. DEFINE Status[100] = "Empty"
  7121.  
  7122. If you have already used a scalar variable with the same name that you now wish 
  7123. to use as a vector, then you must delete the original variable: 
  7124.  
  7125. x = 666       ! x already exists as a scalar
  7126. DELETE x
  7127. DEFINE x[0]   ! x is now a vector.
  7128.  
  7129. Examples source library: 
  7130.  
  7131.  
  7132. ΓòÉΓòÉΓòÉ 53.2. More about DEFINE ΓòÉΓòÉΓòÉ
  7133.  
  7134. o For global data where the array already exists, values that survive resizing 
  7135.   are not changed. If DEFINE specifies more elements than already exist, then 
  7136.   the array is expanded accordingly (if exp3 is given, then only the extra 
  7137.   elements are set to that value). If fewer elements are specified, then the 
  7138.   surplus elements are deleted and exp3 is ignored. 
  7139.  
  7140. o For declared data, the array must be declared TASK DEFINED. If the array 
  7141.   already exists, its contents are discarded. 
  7142.  
  7143. o The first element in arrays that can be accessed by number is element 1. 
  7144.   Values in two-dimensional arrays are ordered by row. 
  7145.  
  7146. o Attributes of element 0 of any array or table refer to the whole array or 
  7147.   column. 
  7148.  
  7149. o If a reference is made to an element that lies outside the defined bounds, a 
  7150.   NULL value is returned. If an assignment is made to such an element, an error 
  7151.   occurs. 
  7152.  
  7153. o Arrays can be defined with exp1 or exp2 set to value zero. In this case, the 
  7154.   array has no elements until it is resized. 
  7155.  
  7156.  
  7157. ΓòÉΓòÉΓòÉ 54. DEFINE object ΓòÉΓòÉΓòÉ
  7158.  
  7159. The DEFINE object class creates a graphics object that can be treated as if it 
  7160. were a graphics primitive. Several graphic primitives can be opened to a single 
  7161. DEFINE and the DEFINE can then be manipulated (rotated, dragged, or scaled) as 
  7162. if it were a single graphic primitive. 
  7163.  
  7164. Parent: GRAPHIC 
  7165.  
  7166. Attributes 
  7167.  
  7168. Actions: None. 
  7169.  
  7170. Events 
  7171.  
  7172. More about DEFINE 
  7173.  
  7174. See also: GRAPHIC, Standard graphics attributes 
  7175.  
  7176.  
  7177. ΓòÉΓòÉΓòÉ 54.1. Attributes ΓòÉΓòÉΓòÉ
  7178.  
  7179. CLIPMINX              CLIPMINY 
  7180. CLIPMAXX              CLIPMAXY 
  7181. DRAGABLE              DRAGBORDER 
  7182. MOVEX                 MOVEY 
  7183. ORIGINX               ORIGINY 
  7184. ROTATE                ROTATEX 
  7185. ROTATEY               SCALEX 
  7186. SCALEY 
  7187.  
  7188. The following standard graphics attributes are also available. See 
  7189. Standard graphics attributes: 
  7190.  
  7191. COLOR                  FILLPATTERN 
  7192. LINEWIDTH              SELECTED 
  7193. FILLCOLOR              LINESTYLE 
  7194. SELECTABLE             VISIBLE 
  7195.  
  7196.  
  7197. ΓòÉΓòÉΓòÉ 54.1.1. CLIPMINX ΓòÉΓòÉΓòÉ
  7198.  
  7199. X coordinate at bottom left corner of clip window through the DEFINE. 
  7200.  
  7201. Default: -32000 
  7202.  
  7203.  
  7204. ΓòÉΓòÉΓòÉ 54.1.2. CLIPMINY ΓòÉΓòÉΓòÉ
  7205.  
  7206. Y coordinate at bottom left corner of clip window through the DEFINE. 
  7207.  
  7208. Default: -32000 
  7209.  
  7210.  
  7211. ΓòÉΓòÉΓòÉ 54.1.3. CLIPMAXX ΓòÉΓòÉΓòÉ
  7212.  
  7213. X coordinate at top right corner of clip window through the DEFINE. 
  7214.  
  7215. Default: 32000 
  7216.  
  7217.  
  7218. ΓòÉΓòÉΓòÉ 54.1.4. CLIPMAXY ΓòÉΓòÉΓòÉ
  7219.  
  7220. Y coordinate at top right corner of clip window through the DEFINE. 
  7221.  
  7222. Default: 32000 
  7223.  
  7224.  
  7225. ΓòÉΓòÉΓòÉ 54.1.5. DRAGABLE ΓòÉΓòÉΓòÉ
  7226.  
  7227. Whether the object can be dragged: 
  7228.  
  7229. 0         Object cannot be dragged 
  7230. 1         If selectable, the object can be dragged. 
  7231.  
  7232. Default: 0 (Cannot be dragged) 
  7233.  
  7234.  
  7235. ΓòÉΓòÉΓòÉ 54.1.6. DRAGBORDER ΓòÉΓòÉΓòÉ
  7236.  
  7237. Whether the object has a border drawn around it when it is being dragged: 
  7238.  
  7239. 0         No border 
  7240. 1         Border 
  7241.  
  7242. Default: 0 (No border) 
  7243.  
  7244.  
  7245. ΓòÉΓòÉΓòÉ 54.1.7. MOVEX ΓòÉΓòÉΓòÉ
  7246.  
  7247. X coordinate of the position to which the define object has moved after 
  7248. dragging. 
  7249.  
  7250. Default: 0 
  7251.  
  7252.  
  7253. ΓòÉΓòÉΓòÉ 54.1.8. MOVEY ΓòÉΓòÉΓòÉ
  7254.  
  7255. Y coordinate of the position to which the define object has moved after 
  7256. dragging. 
  7257.  
  7258. Default: 0 
  7259.  
  7260.  
  7261. ΓòÉΓòÉΓòÉ 54.1.9. ORIGINX ΓòÉΓòÉΓòÉ
  7262.  
  7263. X origin from which scaling is calculated. 
  7264.  
  7265. Default: 0 
  7266.  
  7267.  
  7268. ΓòÉΓòÉΓòÉ 54.1.10. ORIGINY ΓòÉΓòÉΓòÉ
  7269.  
  7270. Y origin from which scaling is calculated. 
  7271.  
  7272. Default: 0 
  7273.  
  7274.  
  7275. ΓòÉΓòÉΓòÉ 54.1.11. ROTATE ΓòÉΓòÉΓòÉ
  7276.  
  7277. Angle to which the DEFINE is to be rotated around the point defined by 
  7278. attributes ROTATEX and ROTATEY. 
  7279.  
  7280. Default: 0 
  7281.  
  7282.  
  7283. ΓòÉΓòÉΓòÉ 54.1.12. ROTATEX ΓòÉΓòÉΓòÉ
  7284.  
  7285. X coordinate of the position around which the ROTATE is to be carried out. 
  7286.  
  7287. Default: 0 
  7288.  
  7289.  
  7290. ΓòÉΓòÉΓòÉ 54.1.13. ROTATEY ΓòÉΓòÉΓòÉ
  7291.  
  7292. Y coordinate of the position around which the ROTATE is to be carried out. 
  7293.  
  7294. Default: 0 
  7295.  
  7296.  
  7297. ΓòÉΓòÉΓòÉ 54.1.14. SCALEX ΓòÉΓòÉΓòÉ
  7298.  
  7299. The X scale of the current object as a percentage. 
  7300.  
  7301. Default: 100 
  7302.  
  7303.  
  7304. ΓòÉΓòÉΓòÉ 54.1.15. SCALEY ΓòÉΓòÉΓòÉ
  7305.  
  7306. The Y scale of the current object as a percentage. 
  7307.  
  7308. Default: 100 
  7309.  
  7310.  
  7311. ΓòÉΓòÉΓòÉ 54.2. Events ΓòÉΓòÉΓòÉ
  7312.  
  7313. DRAG              OPEN 
  7314. SELECT 
  7315.  
  7316.  
  7317. ΓòÉΓòÉΓòÉ 54.2.1. DRAG ΓòÉΓòÉΓòÉ
  7318.  
  7319. Dragging is finished. 
  7320.  
  7321.  
  7322. ΓòÉΓòÉΓòÉ 54.2.2. OPEN ΓòÉΓòÉΓòÉ
  7323.  
  7324. Mouse button 1 is clicked twice. 
  7325.  
  7326.  
  7327. ΓòÉΓòÉΓòÉ 54.2.3. SELECT ΓòÉΓòÉΓòÉ
  7328.  
  7329. Signaled when selection is made. A.System.Object is set to named graphic area 
  7330. and A.System.PositionX and A.System.PositionY are set to the coordinates of the 
  7331. point selected.  Coordinates are in world coordinate scale units. 
  7332.  
  7333.  
  7334. ΓòÉΓòÉΓòÉ 54.3. More about DEFINE ΓòÉΓòÉΓòÉ
  7335.  
  7336. o When manipulating individual graphic primitives on a define, the PARENT 
  7337.   attribute of each graphic object will return the name of the define that owns 
  7338.   the object. 
  7339.  
  7340.  
  7341. ΓòÉΓòÉΓòÉ 55. DEFINED() ΓòÉΓòÉΓòÉ
  7342.  
  7343. The DEFINED() function tests whether the value of an expression is non-NULL. If 
  7344. so, it returns 1 (true). 
  7345.  
  7346. ΓöÇΓöÇDEFINED(expression)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7347.  
  7348. Examples 
  7349.  
  7350. See also: NULL() 
  7351.  
  7352.  
  7353. ΓòÉΓòÉΓòÉ 55.1. Examples ΓòÉΓòÉΓòÉ
  7354.  
  7355. DECLARE TASK NULL CLEAR CHARACTER[0] null
  7356. x = DEFINED(null)        ! Result is 0
  7357.  
  7358. CLEAR val
  7359. x = DEFINED(val)         ! Result is 0
  7360.  
  7361. val = ""
  7362. x = DEFINED(val)         ! Result is 1, "" is not equal to NULL
  7363.  
  7364. val = 0
  7365. x = DEFINED(val)         ! Result is 1, 0 is not equal to NULL
  7366.  
  7367. @ASSERT DEFINED(@month)  ! Ensures @month is set at compile time
  7368.  
  7369. Examples source library: 
  7370.  
  7371.  
  7372. ΓòÉΓòÉΓòÉ 56. DEGREES() ΓòÉΓòÉΓòÉ
  7373.  
  7374. The DEGREES() function converts a value specified in radians to degrees. 
  7375.  
  7376. ΓöÇΓöÇDEGREES(radians)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7377.  
  7378. Examples 
  7379.  
  7380. See also: RADIANS() 
  7381.  
  7382.  
  7383. ΓòÉΓòÉΓòÉ 56.1. Examples ΓòÉΓòÉΓòÉ
  7384.  
  7385. PRECISION 15
  7386. x = DEGREES(1)                  ! Result is 57.2957795130823
  7387. x = DEGREES(3.14159265358979)   ! Result is 180
  7388.  
  7389. Examples source library: 
  7390.  
  7391.  
  7392. ΓòÉΓòÉΓòÉ 57. DELETE ΓòÉΓòÉΓòÉ
  7393.  
  7394. The DELETE statement is used to remove a variable, an array element, or a table 
  7395. row.  When deleting a variable, DELETE also removes all the dictionary 
  7396. attributes of the variable, so that no trace of it remains. 
  7397.  
  7398. ΓöÇΓöÇDELETEΓöÇΓöÇvariablerefΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7399.                          Γöé <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  7400.                          Γö£ΓöÇΓöÇΓöÇ{ΓöÇΓöÇexpression1ΓöÇΓöÇ}ΓöÇΓö┤ΓöÇΓöñ
  7401.                          ΓööΓöÇ[ΓöÇΓöÇexpression2ΓöÇΓöÇ]ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7402.  
  7403. Examples 
  7404.  
  7405. More about DELETE 
  7406.  
  7407.  
  7408. ΓòÉΓòÉΓòÉ 57.1. Examples ΓòÉΓòÉΓòÉ
  7409.  
  7410. DELETE EmpTab
  7411. DELETE Array[6]
  7412. DELETE EmpData.Name{ 'Smith' }
  7413.  
  7414. Examples source library: 
  7415.  
  7416.  
  7417. ΓòÉΓòÉΓòÉ 57.2. More about DELETE ΓòÉΓòÉΓòÉ
  7418.  
  7419. o When an element is deleted from an array, the number of entries in the array 
  7420.   is reduced by one, and the relative positions of all entries after the 
  7421.   deleted element are reduced by one. 
  7422.  
  7423. o If any element in a table is deleted, then the entire row of which the 
  7424.   element is a part is deleted.  An element of a table can be deleted by key or 
  7425.   by element position. 
  7426.  
  7427. o DELETE cannot be used to delete a whole table. Tables must be deleted column 
  7428.   by column. The order of deletion of key columns of a table must be minor to 
  7429.   major. 
  7430.  
  7431. o You cannot delete from a two-dimensional array. 
  7432.  
  7433. o You cannot delete declared data. 
  7434.  
  7435. o If you repeatedly define and then delete a vector, then storage is wasted. 
  7436.   This can happen in a procedure that is called frequently. To ensure that all 
  7437.   the space occupied by a vector is reused, either use the CLEAR statement or 
  7438.   use the DEFINE statement with [0] as the number of elements. 
  7439.  
  7440.  
  7441. ΓòÉΓòÉΓòÉ 58. DELWORD() ΓòÉΓòÉΓòÉ
  7442.  
  7443. The DELWORD() function deletes words from a string and returns the remaining 
  7444. string. 
  7445.  
  7446.                                        ΓöîΓöÇ" "ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7447. ΓöÇΓöÇDELWORD(string,start,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7448.                           ΓööΓöÇnumberΓöÇΓöÿ   ΓööΓöÇseparatorΓöÇΓöÿ
  7449.  
  7450. Examples 
  7451.  
  7452. More about DELWORD() 
  7453.  
  7454. See also: ADDWORD() 
  7455.  
  7456.  
  7457. ΓòÉΓòÉΓòÉ 58.1. Examples ΓòÉΓòÉΓòÉ
  7458.  
  7459. s = "The lion is fierce"
  7460. x = DELWORD( s, 3 )          ! Result is "The Lion"
  7461. x = DELWORD( s, 2, 2 )       ! Result is "The fierce"
  7462.  
  7463. s = "His-teeth--can---pierce----"
  7464. x = DELWORD( s, 3, , "-" )   ! Result is "His-teeth"
  7465. x = DELWORD( s,-1, , "-" )   ! Result is "His-teeth--can"
  7466. x = DELWORD( s, 3, 1, "-" )  ! Result is "His-teeth-pierce----"
  7467. x = DELWORD( s, 1, 5, "-" )  ! Result is ""
  7468.  
  7469. Examples source library: 
  7470.  
  7471.  
  7472. ΓòÉΓòÉΓòÉ 58.2. More about DELWORD() ΓòÉΓòÉΓòÉ
  7473.  
  7474. o A zero-length string is returned if no words are found in string, or if start 
  7475.   is 1 and number is either unspecified or greater than the number of words in 
  7476.   the string. 
  7477.  
  7478. o If a word or words are deleted from the middle of the string (rather than the 
  7479.   beginning or end), the remaining parts are returned separated only by a 
  7480.   single separator. 
  7481.  
  7482. o Automatic conversion of parameters is carried out if necessary. 
  7483.  
  7484. o If number is negative, it indicates a position relative to the end of the 
  7485.   string. -1 indicates the last item. 
  7486.  
  7487. o An error is returned if either start or number is NULL. Real numbers are 
  7488.   truncated. 
  7489.  
  7490. o Using a NULL string parameter returns NULL. Using an empty string parameter ( 
  7491.   "") returns an empty string. 
  7492.  
  7493. o In this function, a word is defined by a combination of separators (the 
  7494.   default is space), string start, and string end. No lexical, syntactic, or 
  7495.   semantic analysis is implied. 
  7496.  
  7497. o If separator is omitted in a DBCS environment, an SBCS space is inserted by 
  7498.   default, although DBCS spaces are assumed to be the separators used in 
  7499.   string. 
  7500.  
  7501. o DBCS characters cannot be used as separators. 
  7502.  
  7503.  
  7504. ΓòÉΓòÉΓòÉ 59. DIALOG() ΓòÉΓòÉΓòÉ
  7505.  
  7506. The DIALOG() function displays a message on the screen. The text of the message 
  7507. is displayed in a pop-up window together with a visual cue.  Where a choice of 
  7508. push buttons has been presented to the user, DIALOG() also returns a text 
  7509. string indicating the end user's response. 
  7510.  
  7511. ΓöÇΓöÇDIALOG(messageid,0,text)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7512.  
  7513. Examples 
  7514.  
  7515. More about DIALOG() 
  7516.  
  7517. See also: ERROR, MESSAGE, WINDOW 
  7518.  
  7519.  
  7520. ΓòÉΓòÉΓòÉ 59.1. Examples ΓòÉΓòÉΓòÉ
  7521.  
  7522. button = DIALOG( "FTB0007", 0, "Error saving file" )
  7523.  
  7524. CASE button
  7525.   WHEN "ABORT"  ...
  7526.   WHEN "RETRY"  ...
  7527.   WHEN "IGNORE" ...
  7528. END
  7529.  
  7530. Examples source library: 
  7531.  
  7532.  
  7533. ΓòÉΓòÉΓòÉ 59.2. More about DIALOG() ΓòÉΓòÉΓòÉ
  7534.  
  7535. o Messages can also be displayed without returning a value representing a push 
  7536.   button pressed. See MESSAGE for details. 
  7537.  
  7538. o If the user closes the dialog window by double-clicking on the system icon, 
  7539.   result will be set to CANCEL. 
  7540.  
  7541.  
  7542. ΓòÉΓòÉΓòÉ 60. DIVIDE() ΓòÉΓòÉΓòÉ
  7543.  
  7544. The DIVIDE() function can be used instead of the division operator. In addition 
  7545. to performing a division operation, it traps attempts to divide by zero or by 
  7546. NULL. 
  7547.  
  7548. ΓöÇΓöÇDIVIDE(expression1,expression2ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7549.                                    ΓööΓöÇ,expression3ΓöÇΓöÿ
  7550.  
  7551. Examples 
  7552.  
  7553. More about DIVIDE() 
  7554.  
  7555.  
  7556. ΓòÉΓòÉΓòÉ 60.1. Examples ΓòÉΓòÉΓòÉ
  7557.  
  7558. x = DIVIDE(Width,Columns,Width)
  7559.     ! Divides the width by the number of columns. If the number
  7560.     ! of columns is zero or NULL, returns the full width.
  7561.  
  7562. Examples source library: 
  7563.  
  7564.  
  7565. ΓòÉΓòÉΓòÉ 60.2. More about DIVIDE() ΓòÉΓòÉΓòÉ
  7566.  
  7567. o The DIVIDE() function can also be used in the Visualizer expression builder 
  7568.   in Chart, Report, and Query. 
  7569.  
  7570. o Use the DIVIDE() function only when an attempted division by zero or division 
  7571.   by NULL is expected. Otherwise, use the division operator. 
  7572.  
  7573.  
  7574. ΓòÉΓòÉΓòÉ 61. DO...END ΓòÉΓòÉΓòÉ
  7575.  
  7576. The DO statement has two uses: 
  7577.  
  7578. o To mark the start of a set of statements which are to be processed together 
  7579.  
  7580. o To set up an iteration. 
  7581.  
  7582. The END statement denotes the end of a block of statements, the start of which 
  7583. is denoted by a DO statement or a CASE statement. 
  7584.  
  7585. ΓöÇΓöÇDOΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇstatementsΓöÇΓöÇENDΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7586.         Γöé                      ΓöîΓöÇ,1ΓöÇΓöÇΓöÇΓöÇΓöÉ  Γöé
  7587.         ΓööΓöÇvariable=start:limitΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÿ
  7588.                                ΓööΓöÇ,stepΓöÇΓöÿ
  7589.  
  7590. Examples 
  7591.  
  7592. More about DO...END 
  7593.  
  7594. See also: CASE...WHEN...OTHERWISE...END, ITERATE, LEAVE, TERMINATE, WHILE 
  7595.  
  7596.  
  7597. ΓòÉΓòÉΓòÉ 61.1. Examples ΓòÉΓòÉΓòÉ
  7598.  
  7599. IF ok
  7600. DO
  7601.   Count += 1
  7602.   CALL WRITEDATA(Count)
  7603. END
  7604.  
  7605. DO i = 1 : 10
  7606.   Array[ i ] = -1
  7607. END
  7608.  
  7609. DO i = 10 : 1 , -0.5
  7610.   Array[Count] = i
  7611.   Count += 1
  7612. END
  7613.  
  7614. Examples source library: 
  7615.  
  7616.  
  7617. ΓòÉΓòÉΓòÉ 61.2. More about DO...END ΓòÉΓòÉΓòÉ
  7618.  
  7619. o For every DO statement there must be an END statement. 
  7620.  
  7621. o A set of statements enclosed by a DO and END is known as a DO block 
  7622.  
  7623. o Where more than one statement follows a compound statement (such as ON, IF, 
  7624.   WHILE, or WHEN), the set of statements must be enclosed in a DO block. 
  7625.  
  7626. o By default, the statements in a DO block are performed once only. Parameters 
  7627.   can be specified to cause the statements to be performed a number of times, 
  7628.   within a range of values, and in steps. 
  7629.  
  7630. o In a repeating DO block where processing is not yet complete, END passes 
  7631.   control back to the top of the DO block. 
  7632.  
  7633. o The LEAVE, ITERATE, and TERMINATE statements can be used to control repeating 
  7634.   DO blocks. See the entries for these statements in this manual. 
  7635.  
  7636. o In a DO block under the control of a WHILE statement, END passes control back 
  7637.   to the WHILE statement. 
  7638.  
  7639. o DO blocks are the logical units which make up the event blocks in a program. 
  7640.   They also bracket the procedures (the other high level blocks in a program). 
  7641.  
  7642. o If the END statement occurs at the end of an event block, the program goes 
  7643.   into a wait state. 
  7644.  
  7645. o Any NULLs in the controlling variables of a DO...END block cause a data 
  7646.   conversion error. 
  7647.  
  7648. o If you alter the value of variable within the scope of the DO block, then the 
  7649.   iteration of the block is affected. 
  7650.  
  7651.  
  7652. ΓòÉΓòÉΓòÉ 62. DROPENTRY ΓòÉΓòÉΓòÉ
  7653.  
  7654. The DROPENTRY object class creates an instance of a drop-down entry field. 
  7655.  
  7656. Parent: WINDOW 
  7657.  
  7658. Attributes 
  7659.  
  7660. Actions 
  7661.  
  7662. Events 
  7663.  
  7664. Examples 
  7665.  
  7666. More about DROPENTRY 
  7667.  
  7668. See also: DROPLIST 
  7669.  
  7670.  
  7671. ΓòÉΓòÉΓòÉ 62.1. Attributes ΓòÉΓòÉΓòÉ
  7672.  
  7673. ENABLED               EXPRESSION 
  7674. HANDLES               HELP 
  7675. LISTREF               ORIGIN 
  7676. SIZEX                 SIZEY 
  7677. TEXTLIMIT             VALUE 
  7678. VISIBLE               X 
  7679.  
  7680.  
  7681. ΓòÉΓòÉΓòÉ 62.1.1. ENABLED ΓòÉΓòÉΓòÉ
  7682.  
  7683. Whether the drop-down entry field is enabled: 
  7684.  
  7685. 0         Drop-down entry field disabled-list push button grayed out 
  7686. 1         Drop-down entry field enabled 
  7687.  
  7688. Default: 1 (Enabled) 
  7689.  
  7690.  
  7691. ΓòÉΓòÉΓòÉ 62.1.2. EXPRESSION ΓòÉΓòÉΓòÉ
  7692.  
  7693. This attribute may be set at open time, then modified and queried at any time. 
  7694.  
  7695. It may be modified to the name of an ASL variable that will reflect the current 
  7696. value of the DROPENTRY control. If the variable is updated, the value displayed 
  7697. in the SLE part of DROPENTRY will change in unison. If a new value is typed or 
  7698. selected in the DROPENTRY, the ASL variable will be updated. Values returned to 
  7699. the ASL variable will be limited in length to the current TEXTLIMIT attribute 
  7700. value of DROPENTRY. 
  7701.  
  7702. Modifying EXPRESSION replaces any prior modification of the VALUE attribute. 
  7703.  
  7704.  
  7705. ΓòÉΓòÉΓòÉ 62.1.3. HANDLES ΓòÉΓòÉΓòÉ
  7706.  
  7707. Whether sizing handles are attached to the drop-down entry field to support 
  7708. moving, sizing, and copying operations. These direct manipulation techniques 
  7709. follow the CUA (Common User Access) guidelines. See also the AUTOSELECT 
  7710. attribute of the WINDOW object. 
  7711.  
  7712. 0         Handles are not displayed 
  7713. 1         Handles are displayed 
  7714.  
  7715. Default: 0 (No handles) 
  7716.  
  7717.  
  7718. ΓòÉΓòÉΓòÉ 62.1.4. HELP ΓòÉΓòÉΓòÉ
  7719.  
  7720. Resource identifier (res ID) of the full help text for this object. 
  7721.  
  7722. Default: 0 
  7723.  
  7724.  
  7725. ΓòÉΓòÉΓòÉ 62.1.5. LISTREF ΓòÉΓòÉΓòÉ
  7726.  
  7727. This attribute may be set at open time, then modified and queried at any time. 
  7728.  
  7729. It may be modified to the name of an ASL variable that will contain the 
  7730. value(s) to be displayed in the LIST part of the DROPENTRY. If the variable is 
  7731. updated, the value(s) displayed in the LIST part of DROPENTRY will change in 
  7732. unison, truncated in length to the current TEXTLIMIT attribute value of 
  7733. DROPENTRY. 
  7734.  
  7735. Modifying LISTREF replaces any prior setting of values made by the ITEMS 
  7736. action. 
  7737.  
  7738.  
  7739. ΓòÉΓòÉΓòÉ 62.1.6. ORIGIN ΓòÉΓòÉΓòÉ
  7740.  
  7741. The corner of the enclosing window to be taken as the origin. The position of 
  7742. the drop-down entry field is measured from this point. 
  7743.  
  7744. "TL"      Top left 
  7745. "TR"      Top right 
  7746. "BL"      Bottom left 
  7747. "BR"      Bottom right 
  7748.  
  7749. Default: "BL" (Bottom left) 
  7750.  
  7751.  
  7752. ΓòÉΓòÉΓòÉ 62.1.7. SIZEX ΓòÉΓòÉΓòÉ
  7753.  
  7754. Width of the entry box, in dialog box units 
  7755.  
  7756. Default: 0 
  7757.  
  7758.  
  7759. ΓòÉΓòÉΓòÉ 62.1.8. SIZEY ΓòÉΓòÉΓòÉ
  7760.  
  7761. Height of the drop-down entry, in dialog box units 
  7762.  
  7763. Default: 0 
  7764.  
  7765.  
  7766. ΓòÉΓòÉΓòÉ 62.1.9. TEXTLIMIT ΓòÉΓòÉΓòÉ
  7767.  
  7768. This attribute may be used to restrict the number of characters that may be 
  7769. entered into the SLE part of the DROPENTRY control. It will also cause values 
  7770. assigned to the VALUE attribute, or selected from the list, to be truncated. 
  7771. Keyboard invoked paste from the clipboard will fail with an audible beep if the 
  7772. result would exceed the TEXTLIMIT. A call to the PASTE() action will generate 
  7773. an error in the same circumstance. 
  7774.  
  7775. TEXTLIMIT works in exactly the same way as the equivalent attribute on the SLE 
  7776. control. 
  7777.  
  7778. Set at open time 
  7779.  
  7780. Default value is 255. Values in the range 0 to 255 may be assigned.  A value of 
  7781. 0 will inhibit any data entry. 
  7782.  
  7783.  
  7784. ΓòÉΓòÉΓòÉ 62.1.10. VALUE ΓòÉΓòÉΓòÉ
  7785.  
  7786. When queried, this attribute returns the current value of the DROPENTRY 
  7787. control. When set, the current value of the DROPENTRY control is set to the 
  7788. supplied value, and that value appears in the SLE part of the DROPENTRY. 
  7789.  
  7790. Until VALUE is modified, or the user enters or selects a value, it will return 
  7791. the default value of a zero length character string when queried. Assignments 
  7792. to this attribute will be truncated to the current TEXTLIMIT value. 
  7793.  
  7794. Set on open, then read/write but modifying VALUE removes the link between the 
  7795. DROPENTRY and any previous variable specified by the EXPRESSION attribute. 
  7796.  
  7797.  
  7798. ΓòÉΓòÉΓòÉ 62.1.11. VISIBLE ΓòÉΓòÉΓòÉ
  7799.  
  7800. Whether the drop-down entry field is displayed: 
  7801.  
  7802. 0         Drop-down entry field not displayed 
  7803. 1         Drop-down entry field displayed 
  7804.  
  7805. Default: 1 (Displayed) 
  7806.  
  7807.  
  7808. ΓòÉΓòÉΓòÉ 62.1.12. X ΓòÉΓòÉΓòÉ
  7809.  
  7810. Horizontal position of the top left corner of the field, in dialog box units. 
  7811.  
  7812. Default: 0 
  7813.  
  7814.  
  7815. ΓòÉΓòÉΓòÉ 62.1.13. Y ΓòÉΓòÉΓòÉ
  7816.  
  7817. Vertical position of the bottom left corner of the field in dialog box units. 
  7818.  
  7819. Default: 0 
  7820.  
  7821.  
  7822. ΓòÉΓòÉΓòÉ 62.2. Actions ΓòÉΓòÉΓòÉ
  7823.  
  7824. EDIT()               ITEMS() 
  7825. SELAREA() 
  7826.  
  7827.  
  7828. ΓòÉΓòÉΓòÉ 62.2.1. EDIT() ΓòÉΓòÉΓòÉ
  7829.  
  7830. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7831.  
  7832. Enables the programmer to query whether a clipboard operation is supported and, 
  7833. if it is, to carry it out. 
  7834.  
  7835. argument is a clipboard query or a clipboard operation. 
  7836.  
  7837. The following values for argument are used to check whether particular 
  7838. clipboard operations can be supported with the drop-down entry field in its 
  7839. current state: 
  7840.  
  7841. "Querycut" Cut to clipboard 
  7842. "Querycopy" Copy to clipboard 
  7843. "Querypaste" Paste from clipboard 
  7844. "Queryclear" Clear clipboard. 
  7845.  
  7846. Where clipboard operations are supported, the following values for argument 
  7847. direct them to be carried out: 
  7848.  
  7849. "Cut"     Cut to clipboard 
  7850. "Copy"    Copy to clipboard 
  7851. "Paste"   Paste from clipboard 
  7852. "Clear"   Clear clipboard. 
  7853.  
  7854.  
  7855. ΓòÉΓòÉΓòÉ 62.2.2. ITEMS() ΓòÉΓòÉΓòÉ
  7856.  
  7857. ΓöÇΓöÇITEMS(variable)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7858.  
  7859. This action populates the list of values. variable may be a scalar or a vector 
  7860. containing the values to be used. Each invocation of the ITEMS action replaces 
  7861. all existing items in the DROPENTRY list. 
  7862.  
  7863. The ITEMS action does not effect the SLE part of the DROPENTRY control, or the 
  7864. value returned from the VALUE attribute. 
  7865.  
  7866. The list may contain values up to a length of 255 bytes. However, if a value 
  7867. from the list is selected to populate the SLE, and its length is greater than 
  7868. the current TEXTLIMIT, the value will be truncated prior to insertion in the 
  7869. SLE. The VALUE attribute of the DROPENTRY will return the truncated value. 
  7870.  
  7871.  
  7872. ΓòÉΓòÉΓòÉ 62.2.3. SELAREA() ΓòÉΓòÉΓòÉ
  7873.  
  7874. ΓöÇΓöÇSELAREA(start,length)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  7875.  
  7876. This action selects all or part of the text string in the SLE part of the 
  7877. DROPENTRY control. The default value for start is 1, and it must be in the 
  7878. range 1 through 255. The default value for length is 0, and it must be in the 
  7879. range 0 through 255. start plus length must be less than or equal to 256. 
  7880.  
  7881. The current insertion point is placed after the last selected character. If 
  7882. length is 0, the insertion point is placed before the character position 
  7883. specified in start. 
  7884.  
  7885.  
  7886. ΓòÉΓòÉΓòÉ 62.3. Events ΓòÉΓòÉΓòÉ
  7887.  
  7888. DATA               DESKTOP 
  7889.  
  7890.  
  7891. ΓòÉΓòÉΓòÉ 62.3.1. DATA ΓòÉΓòÉΓòÉ
  7892.  
  7893. The event occurs whenever data entry is completed. Completion of data entry 
  7894. occurs immediately when a value is selected from the list using the mouse. When 
  7895. the SLE value is modified by the keyboard, either by data entry or keyboard 
  7896. navigation of the list values, completion of data entry is deferred until the 
  7897. DROPENTRY loses focus, or the Enter key is pressed. 
  7898.  
  7899.  
  7900. ΓòÉΓòÉΓòÉ 62.3.2. DESKTOP ΓòÉΓòÉΓòÉ
  7901.  
  7902. Signaled when the drop-down entry field is moved, sized, or copied. 
  7903. A.System.Operation is set to "MOVE", "SIZE", or "COPY". A.System.Object 
  7904. contains the name of the control. 
  7905.  
  7906.  
  7907. ΓòÉΓòÉΓòÉ 62.4. Examples ΓòÉΓòÉΓòÉ
  7908.  
  7909. The mouse users may stripe text in the SLE prior to over typing, or display the 
  7910. list of values by selecting the push button. When the list is displayed the 
  7911. mouse user may select a value from the list. Selection occurs only when the 
  7912. mouse selection button is raised, facilitating swiping of the list. If the 
  7913. mouse pointer is not over the list when the selection button is raised then the 
  7914. list is removed without a selection having occurred. Selection does not 
  7915. generate a SELECT event, but does generate a DATA event. 
  7916.  
  7917. The keyboard user may over type text in the SLE. They may also select values 
  7918. from the list by use of the up and down cursor keys. Selection by this method 
  7919. does not constitute completion of data entry. The list itself may be displayed 
  7920. or removed using F4 or the Alt+DownArrow key combination. When the list is 
  7921. displayed, the value displayed in the SLE is highlighted in the list, provided 
  7922. a match can be found. The list is automatically removed in the event of the 
  7923. Enter key being pressed, or the removal of keyboard focus. 
  7924.  
  7925. ON START
  7926. DO
  7927.   DECLARE CHARACTER[10] vector[15]
  7928.   DECLARE NUMERIC x
  7929.   DO x = 1 : vector[0]'ENTRIES
  7930.     LET vector[x] = STRING('Choice _',x)  ! Set vector of values
  7931.   END
  7932.   OPEN DROPENTRY drop, win,               ! Open the DROPENTRY
  7933.    X = 20, SIZEX = 60,
  7934.    Y = 50, SIZEY = 40
  7935.   CALL drop'ITEMS( vector )               ! Populate the DROPENTRY
  7936.   LET drop'VALUE = vector[3]              ! Set initial value
  7937. END
  7938.  
  7939. ON DATA
  7940. DO
  7941.   CASE A.System.Object
  7942.     WHEN 'T..drop'                        ! Event from the DROPENTRY
  7943.       LET value = drop'VALUE              ! Get new selected value
  7944.     ...
  7945.   END
  7946. END
  7947.  
  7948. Examples source library: 
  7949.  
  7950.  
  7951. ΓòÉΓòÉΓòÉ 62.5. More about DROPENTRY ΓòÉΓòÉΓòÉ
  7952.  
  7953. o DROPENTRY cannot be cloned. 
  7954.  
  7955. o In a DBCS environment, a window containing a DROPENTRY has a keyboard status 
  7956.   line at the bottom for character conversion. This line is added 
  7957.   automatically. 
  7958.  
  7959. o The maximum number of rows which you can display in the list is typically 
  7960.   about 400. 
  7961.  
  7962.  
  7963. ΓòÉΓòÉΓòÉ 63. DROPLIST ΓòÉΓòÉΓòÉ
  7964.  
  7965. The DROPLIST object class creates an instance of a drop-down list. 
  7966.  
  7967. Parent: WINDOW 
  7968.  
  7969. Attributes 
  7970.  
  7971. Actions 
  7972.  
  7973. Events 
  7974.  
  7975. Examples 
  7976.  
  7977. More about DROPLIST 
  7978.  
  7979. See also: DROPENTRY 
  7980.  
  7981.  
  7982. ΓòÉΓòÉΓòÉ 63.1. Attributes ΓòÉΓòÉΓòÉ
  7983.  
  7984. ENABLED               EXPRESSION 
  7985. HANDLES               HELP 
  7986. LISTREF               ORIGIN 
  7987. SIZEX                 SIZEY 
  7988. VALUE                 VISIBLE 
  7989. X                     Y 
  7990.  
  7991.  
  7992. ΓòÉΓòÉΓòÉ 63.1.1. ENABLED ΓòÉΓòÉΓòÉ
  7993.  
  7994. Whether the drop-down list is enabled: 
  7995.  
  7996. 0         Drop-down list disabled-list push button grayed out 
  7997. 1         Drop-down list enabled 
  7998.  
  7999. Default: 1 (Enabled) 
  8000.  
  8001.  
  8002. ΓòÉΓòÉΓòÉ 63.1.2. EXPRESSION ΓòÉΓòÉΓòÉ
  8003.  
  8004. This attribute may be set at open time, then modified and queried at any time. 
  8005.  
  8006. It may be modified to the name of an ASL variable that will reflect the current 
  8007. value of the DROPLIST control. If the variable is updated, then the value 
  8008. displayed in the SLE part of DROPLIST changes in unison. If a new value is 
  8009. typed or selected in the DROPLIST, then the ASL variable is updated. Values 
  8010. returned to the ASL variable are limited in length to the current TEXTLIMIT 
  8011. attribute value. 
  8012.  
  8013. Modifying EXPRESSION replaces any prior modification of the VALUE attribute. 
  8014.  
  8015.  
  8016. ΓòÉΓòÉΓòÉ 63.1.3. HANDLES ΓòÉΓòÉΓòÉ
  8017.  
  8018. Whether sizing handles are attached to the drop-down list to support moving, 
  8019. sizing, and copying operations. These direct manipulation techniques follow the 
  8020. CUA guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  8021.  
  8022. 0         Handles are not displayed 
  8023. 1         Handles are displayed 
  8024.  
  8025. Default: 0 (No handles) 
  8026.  
  8027.  
  8028. ΓòÉΓòÉΓòÉ 63.1.4. HELP ΓòÉΓòÉΓòÉ
  8029.  
  8030. Resource identifier (res ID) of the full help text for this object. 
  8031.  
  8032. Default: 0 
  8033.  
  8034.  
  8035. ΓòÉΓòÉΓòÉ 63.1.5. LISTREF ΓòÉΓòÉΓòÉ
  8036.  
  8037. This attribute may be set at open time, then modified and queried at any time. 
  8038.  
  8039. It may be modified to the name of an ASL variable that will contain the 
  8040. value(s) to be displayed in the LIST part of the DROPLIST. If the variable is 
  8041. updated, the value(s) displayed in the LIST part of DROPLIST will change in 
  8042. unison, truncated in length to the current TEXTLIMIT attribute value of 
  8043. DROPLIST. 
  8044.  
  8045. Modifying LISTREF replaces any prior setting of values made by the ITEMS 
  8046. action. 
  8047.  
  8048.  
  8049. ΓòÉΓòÉΓòÉ 63.1.6. ORIGIN ΓòÉΓòÉΓòÉ
  8050.  
  8051. The corner of the enclosing window to be taken as the origin. The position of 
  8052. the drop-down list is measured from this point. 
  8053.  
  8054. "TL"      Top left 
  8055. "TR"      Top right 
  8056. "BL"      Bottom left 
  8057. "BR"      Bottom right 
  8058.  
  8059. Default: "BL" (Bottom left) 
  8060.  
  8061.  
  8062. ΓòÉΓòÉΓòÉ 63.1.7. SIZEX ΓòÉΓòÉΓòÉ
  8063.  
  8064. Width of the entry box, in dialog box units 
  8065.  
  8066. Default: 0 
  8067.  
  8068.  
  8069. ΓòÉΓòÉΓòÉ 63.1.8. SIZEY ΓòÉΓòÉΓòÉ
  8070.  
  8071. Height of the drop-down list, in dialog box units 
  8072.  
  8073. Default: 0 
  8074.  
  8075.  
  8076. ΓòÉΓòÉΓòÉ 63.1.9. VALUE ΓòÉΓòÉΓòÉ
  8077.  
  8078. This attribute may be set at open time, then modified and queried at any time. 
  8079.  
  8080. When queried, VALUE returns the current value of the DROPLIST control. When 
  8081. set, the current value of the DROPLIST control is set to the supplied value, 
  8082. and that value appears in the TEXT part of the DROPLIST. The supplied value 
  8083. does not have to exist in the current selection list. This allows a program to 
  8084. supply an initial value that does not appear in the list. Once the user selects 
  8085. an alternative value from the list, the initial value can only be reinstated by 
  8086. the program. 
  8087.  
  8088. Until VALUE is modified, or the user selects a value, it will return the 
  8089. default value of a zero length character string when queried. Assignments to 
  8090. this attribute will be truncated to the current TEXTLIMIT value. 
  8091.  
  8092. Modifying VALUE removes any link to a variable established by the EXPRESSION 
  8093. attribute. 
  8094.  
  8095. No default 
  8096.  
  8097.  
  8098. ΓòÉΓòÉΓòÉ 63.1.10. VISIBLE ΓòÉΓòÉΓòÉ
  8099.  
  8100. Whether the drop-down list is displayed: 
  8101.  
  8102. 0         Drop-down list not displayed 
  8103. 1         Drop-down list displayed 
  8104.  
  8105. Default: 1 (Displayed) 
  8106.  
  8107.  
  8108. ΓòÉΓòÉΓòÉ 63.1.11. X ΓòÉΓòÉΓòÉ
  8109.  
  8110. Horizontal position of the top left corner of the field, in dialog box units. 
  8111.  
  8112. Default: 0 
  8113.  
  8114.  
  8115. ΓòÉΓòÉΓòÉ 63.1.12. Y ΓòÉΓòÉΓòÉ
  8116.  
  8117. Vertical position of the bottom left corner of the field in dialog box units. 
  8118.  
  8119. Default: 0 
  8120.  
  8121.  
  8122. ΓòÉΓòÉΓòÉ 63.2. Actions ΓòÉΓòÉΓòÉ
  8123.  
  8124. EDIT()             ITEMS() 
  8125.  
  8126.  
  8127. ΓòÉΓòÉΓòÉ 63.2.1. EDIT() ΓòÉΓòÉΓòÉ
  8128.  
  8129. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  8130.  
  8131. Enables the programmer to query whether a clipboard operation is supported and, 
  8132. if it is, to carry it out. 
  8133.  
  8134. argument is a clipboard query or a clipboard operation. 
  8135.  
  8136. The following values for argument are used to check whether particular 
  8137. clipboard operations can be supported with the drop-down list in its current 
  8138. state: 
  8139.  
  8140. "Querycut" Cut to clipboard 
  8141. "Querycopy" Copy to clipboard 
  8142. "Querypaste" Paste from clipboard 
  8143. "Queryclear" Clear clipboard. 
  8144.  
  8145. Where clipboard operations are supported, the following values for argument 
  8146. direct them to be carried out: 
  8147.  
  8148. "Cut"     Cut to clipboard 
  8149. "Copy"    Copy to clipboard 
  8150. "Paste"   Paste from clipboard 
  8151. "Clear"   Clear clipboard. 
  8152.  
  8153.  
  8154. ΓòÉΓòÉΓòÉ 63.2.2. ITEMS() ΓòÉΓòÉΓòÉ
  8155.  
  8156. ΓöÇΓöÇITEMS(variable)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  8157.  
  8158. This action populates the list of values. variable may be a scalar or a vector 
  8159. containing the values to be used. Each invocation of the ITEMS action replaces 
  8160. all existing items in the DROPLIST list. 
  8161.  
  8162. The ITEMS action does not effect the SLE part of the DROPLIST control, or the 
  8163. value returned from the VALUE attribute. 
  8164.  
  8165. The list may contain values up to a length of 255 bytes. However, if a value 
  8166. from the list is selected to populate the SLE, and its length is greater than 
  8167. the current TEXTLIMIT, the value will be truncated prior to insertion in the 
  8168. SLE. The VALUE attribute of the DROPLIST will return the truncated value. 
  8169.  
  8170.  
  8171. ΓòÉΓòÉΓòÉ 63.3. Events ΓòÉΓòÉΓòÉ
  8172.  
  8173. DESKTOP            SELECT 
  8174.  
  8175.  
  8176. ΓòÉΓòÉΓòÉ 63.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  8177.  
  8178. Signaled when the drop-down list is moved, sized, or copied. A.System.Operation 
  8179. is set to "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the 
  8180. control. 
  8181.  
  8182.  
  8183. ΓòÉΓòÉΓòÉ 63.3.2. SELECT ΓòÉΓòÉΓòÉ
  8184.  
  8185. A SELECT event will occur whenever a value is selected from the list. When a 
  8186. value is chosen using the keyboard, the SELECT event is deferred until the 
  8187. DROPLIST loses focus, or the Enter key is pressed. 
  8188.  
  8189. A.System.Object is set to named control. 
  8190.  
  8191.  
  8192. ΓòÉΓòÉΓòÉ 63.4. Examples ΓòÉΓòÉΓòÉ
  8193.  
  8194. ON START
  8195. DO
  8196.   DECLARE CHARACTER[10] vector[15]
  8197.   DECLARE NUMERIC x
  8198.   DO x = 1 : vector[0]'ENTRIES
  8199.     LET vector[x] = STRING('Choice _',x)  ! Set vector of values
  8200.   END
  8201.   OPEN DROPLIST drop, win,                ! Open the DROPLIST
  8202.    X = 20, SIZEX = 60,
  8203.    Y = 50, SIZEY = 40
  8204.   CALL drop'ITEMS( vector )               ! Populate the DROPLIST
  8205.   LET drop'VALUE = vector[3]              ! Set initial value
  8206. END
  8207.  
  8208. ON SELECT
  8209. DO
  8210.   CASE A.System.Object
  8211.     WHEN 'T..drop'                        ! Event from the DROPLIST
  8212.       LET value = drop'VALUE              ! Get new selected value
  8213.     ...
  8214.   END
  8215. END
  8216.  
  8217. Examples source library: 
  8218.  
  8219.  
  8220. ΓòÉΓòÉΓòÉ 63.5. More about DROPLIST ΓòÉΓòÉΓòÉ
  8221.  
  8222. o DROPLIST cannot be cloned. 
  8223.  
  8224. o In a DBCS environment, a window containing a DROPLIST has a keyboard status 
  8225.   line at the bottom for character conversion. This line is added 
  8226.   automatically. 
  8227.  
  8228. o The maximum number of rows which may be displayed in the list is typically 
  8229.   400. 
  8230.  
  8231.  
  8232. ΓòÉΓòÉΓòÉ 64. DURATION() ΓòÉΓòÉΓòÉ
  8233.  
  8234. The DURATION() function allows you to calculate the difference between two 
  8235. dates or times, or to alter a date or time by a number of units. 
  8236.  
  8237. ΓöÇΓöÇDURATION(expr1,expr2ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  8238.                          ΓööΓöÇ,typeΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÿ
  8239.                                  ΓööΓöÇ,periodΓöÇΓöÿ
  8240.  
  8241. Examples 
  8242.  
  8243. More about DURATION() 
  8244.  
  8245.  
  8246. ΓòÉΓòÉΓòÉ 64.1. Examples ΓòÉΓòÉΓòÉ
  8247.  
  8248. trip = DURATION(departure,arrival)
  8249.  
  8250.  
  8251. ΓòÉΓòÉΓòÉ 64.1.1. Difference between two dates ΓòÉΓòÉΓòÉ
  8252.  
  8253. The following examples assume that duedate is 25 February 1993, and that today 
  8254. is 20 December 1992: 
  8255.  
  8256. DECLARE DATE duedate = DATE( '25th February 1994' )
  8257. DECLARE DATE today   = DATE( '20th December 1993' )
  8258. DECLARE DATE late    = DATE( ' 1st March    1994' )
  8259. DECLARE DATE jan1    = DATE( ' 1st January  1993' )
  8260.  
  8261. x = DURATION( today, duedate )          !  67 days
  8262. x = DURATION( late , duedate )          !  -4 days
  8263. x = DURATION( today, duedate, "M" )     !   2 months
  8264. x = DURATION( today, duedate, "Y" )     !   0 years
  8265. x = DURATION( today, duedate, "P", 2 )  ! 134 half-days
  8266. x = DURATION( jan1 , today  , "W" )     !  50 weeks
  8267.  
  8268.  
  8269. ΓòÉΓòÉΓòÉ 64.1.2. Adding and subtracting a value to and from a date ΓòÉΓòÉΓòÉ
  8270.  
  8271. The following example assumes that xdate is 25 February 1993: 
  8272.  
  8273. DECLARE DATE today = DATE( '6th May 1994' )
  8274.  
  8275. x = DURATION( today, 10 )               ! 16th May 1994
  8276. x = DURATION( today,  1, "M" )          !  6th Jun 1994
  8277. x = DURATION( today, 15, "M" )          !  6th Aug 1995
  8278. x = DURATION( today, -1, "M" )          !  6th Apr 1994
  8279. x = DURATION( today,  3, "Y" )          !  6th May 1997
  8280. x = DURATION( today, 12, "P", 3 )       ! 10th May 1994, period 0
  8281. x = DURATION( today, 36, "P", 24 )      !  7th May 1994, period 12
  8282.  
  8283. The following example assumes that xdate is 31 January 1993: 
  8284.  
  8285. LET newdate=DURATION(xdate,1,"M")
  8286.                          !  newdate = 28 February 1993.
  8287.  
  8288. The following example assumes that xdate is 28 February 1993: 
  8289.  
  8290. LET newdate=DURATION(xdate,-1,"M")
  8291.                          !  newdate = 28 January 1993.
  8292.  
  8293. The following example assumes that xdate is 31 January 1991: 
  8294.  
  8295. LET newdate=DURATION(xdate,3,"Y")
  8296.                          !  newdate = 31 January 1994.
  8297.  
  8298. The following example assumes that xdate is period 0 of 25 February 1993: 
  8299.  
  8300. LET newdate=DURATION(xdate,"12","P",3)
  8301.                          !  newdate = 1 March 1993.
  8302.  
  8303. The following example assumes that xdate is period 0 of 25 February 1993: 
  8304.  
  8305. LET newdate=DURATION(xdate,"12","P",24)
  8306.               !  newdate = period 12 of 25 February 1993.
  8307.  
  8308. Examples source library: 
  8309.  
  8310.  
  8311. ΓòÉΓòÉΓòÉ 64.2. More about DURATION() ΓòÉΓòÉΓòÉ
  8312.  
  8313. o Time results greater than 23:59:59 and expressed in hours, minutes and 
  8314.   seconds, are adjusted to give a time in the following day. 
  8315.  
  8316. o Adding and subtracting month units might yield a date that does not exist 
  8317.   (for example, adding one month to January 31 suggests that February 31 should 
  8318.   be returned). In this case (as in the examples quoted above), the nearest 
  8319.   valid date in the appropriate month is returned (February 28 or 29 if one 
  8320.   month is added to January 31). Note that: 
  8321.  
  8322.     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  8323.     ΓöéThis:           ΓöéAdjusted by:    ΓöéReturns:                Γöé
  8324.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  8325.     ΓöéMarch 31        Γöé-1 month        ΓöéFebruary 28 (or 29)     Γöé
  8326.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  8327.     ΓöéFebruary 28     Γöé+1 month        ΓöéMarch 28                Γöé
  8328.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  8329.     ΓöéFebruary 28     Γöé-1 month        ΓöéJanuary 28              Γöé
  8330.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  8331.     ΓöéMarch 31        Γöé-2 months       ΓöéJanuary 31              Γöé
  8332.     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  8333.  
  8334. o The DURATION() function uses the Gregorian calendar. No account is taken of 
  8335.   the various changeovers from the Julian calendar. 
  8336.  
  8337. o If the number of periods in either specified date exceeds period, then an 
  8338.   error will occur. 
  8339.  
  8340. o A result which could be before year 1 or after year 9999 will produce an 
  8341.   error. 
  8342.  
  8343.  
  8344. ΓòÉΓòÉΓòÉ 65. ELLIPSE ΓòÉΓòÉΓòÉ
  8345.  
  8346. The ELLIPSE graphics primitive object class creates an instance of an ellipse. 
  8347.  
  8348. Parent: DEFINE 
  8349.  
  8350. Attributes 
  8351.  
  8352. Actions: None. 
  8353.  
  8354. Events: None. 
  8355.  
  8356.  
  8357. ΓòÉΓòÉΓòÉ 65.1. Attributes ΓòÉΓòÉΓòÉ
  8358.  
  8359. REFERENCE            TILT 
  8360.  
  8361. The following standard graphics attributes are also available. See 
  8362. Standard graphics attributes. 
  8363.  
  8364. BOUNDED                FILLCOLOR 
  8365. LINEWIDTH              SELECTED 
  8366. COLOR                  FILLPATTERN 
  8367. MIX                    VISIBLE 
  8368. CONSTANT               LINESTYLE 
  8369. SELECTABLE 
  8370.  
  8371.  
  8372. ΓòÉΓòÉΓòÉ 65.1.1. REFERENCE ΓòÉΓòÉΓòÉ
  8373.  
  8374. Vector defining the ellipse. This vector consists of the following elements: 
  8375.  
  8376. 1         X coordinate of the center of the ellipse 
  8377. 2         Y coordinate of the center of the ellipse 
  8378. 3         length of the X axis of the ellipse 
  8379. 4         length of the Y axis of the ellipse. 
  8380.  
  8381. All coordinates are in world coordinate units. 
  8382.  
  8383. Set on OPEN, then read-only. 
  8384.  
  8385. Default: "" 
  8386.  
  8387.  
  8388. ΓòÉΓòÉΓòÉ 65.1.2. TILT ΓòÉΓòÉΓòÉ
  8389.  
  8390. Angle at which the ellipse is tilted. The angle of tilt is specified in degrees 
  8391. and is measured counterclockwise from the horizontal. 
  8392.  
  8393. Default: 0 (No tilt) 
  8394.  
  8395.  
  8396. ΓòÉΓòÉΓòÉ 66. ELSE ΓòÉΓòÉΓòÉ
  8397.  
  8398. The ELSE statement introduces a set of statements to be executed if the 
  8399. condition given by an IF statement is not met. ELSE can only be used in 
  8400. conjunction with the IF statement. 
  8401.  
  8402. ΓöÇΓöÇELSEΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  8403.  
  8404. Examples 
  8405.  
  8406. More about ELSE 
  8407.  
  8408. See also: IF ... THEN ... ELSE, THEN 
  8409.  
  8410.  
  8411. ΓòÉΓòÉΓòÉ 66.1. Examples ΓòÉΓòÉΓòÉ
  8412.  
  8413. IF OK
  8414.   CALL UPDATE()
  8415. ELSE DO
  8416.   IF Status = 'Open'
  8417.   CALL RESTORE()
  8418. END
  8419.  
  8420. IF Code = 'Write' & Status = 'Open'
  8421. THEN CALL OVERWRITE()
  8422. ELSE CALL REINSTATE()
  8423.  
  8424. Examples source library: 
  8425.  
  8426.  
  8427. ΓòÉΓòÉΓòÉ 66.2. More about ELSE ΓòÉΓòÉΓòÉ
  8428.  
  8429. o ELSE can be followed by a single statement or multiple statements. Multiple 
  8430.   statements must be enclosed in a DO ... END block. 
  8431.  
  8432. o The single statement of an ELSE clause, or the DO statement of a DO ... END 
  8433.   block, can appear on the same line as the ELSE, or on the following line. 
  8434.  
  8435. o If the condition specified on the IF statement is NULL, then the ELSE block 
  8436.   executes. 
  8437.  
  8438.  
  8439. ΓòÉΓòÉΓòÉ 67. END ΓòÉΓòÉΓòÉ
  8440.  
  8441. The END statement denotes the end of a block of statements, the start of which 
  8442. is denoted by a DO statement. 
  8443.  
  8444. The END statement also ends a CASE statement. 
  8445.  
  8446. ΓöÇΓöÇENDΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  8447.  
  8448. More about END 
  8449.  
  8450. See also: CASE...WHEN...OTHERWISE...END, DO...END, WHILE 
  8451.  
  8452.  
  8453. ΓòÉΓòÉΓòÉ 67.1. More about END ΓòÉΓòÉΓòÉ
  8454.  
  8455. o For every DO statement, there must be an END statement. 
  8456.  
  8457. o For every CASE statement, there must be an END statement. 
  8458.  
  8459. o In a repeating DO block where processing is not yet complete, END passes 
  8460.   control back to the top of the block. 
  8461.  
  8462. o If the END statement occurs at the end of an event block, the program goes 
  8463.   into a wait state. 
  8464.  
  8465.  
  8466. ΓòÉΓòÉΓòÉ 68. ENTRIES() ΓòÉΓòÉΓòÉ
  8467.  
  8468. The ENTRIES() function returns the number of entries in an array or table. 
  8469.  
  8470. ΓöÇΓöÇENTRIES(reference)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  8471.  
  8472. Examples 
  8473.  
  8474. More about ENTRIES() 
  8475.  
  8476.  
  8477. ΓòÉΓòÉΓòÉ 68.1. Examples ΓòÉΓòÉΓòÉ
  8478.  
  8479. PROCEDURE average(column)
  8480. DO
  8481.   DECLARE CHAR[20] column
  8482.  
  8483.   /* Find the average numeric value in a column.                       */
  8484.   /* Count an entry zero if it is NULL or is not numeric.              */
  8485.   /* Return NULL (and display a message) if the column does not exist. */
  8486.   /* The TOTAL() function can be used to get the column total, so this */
  8487.   /*  example just demonstrates an alternative way of doing that.      */
  8488.  
  8489.   DECLARE NUMERIC items = ENTRIES("MyTab." || column)
  8490.  
  8491.   DECLARE CLEAR NULL NUMERIC result
  8492.   DECLARE NUMERIC i
  8493.   DECLARE NULL NUMERIC nextitem
  8494.  
  8495.   IF items = -1
  8496.   THEN MESSAGE "FTB10003", 0, STRING("Column ^ does not exist", column)
  8497.   ELSE DO
  8498.     LET result = 0
  8499.     DO i = 1 : items
  8500.       FORGIVE LET nextitem = (?("MyTab." || column))[i]
  8501.       IF A.System.ErrorNumber = 0 & \NULL(nextitem)
  8502.         LET result += nextitem
  8503.     END
  8504.     LET result /= items
  8505.   END
  8506.  
  8507.   RETURN result
  8508. END
  8509.  
  8510. Examples source library: 
  8511.  
  8512.  
  8513. ΓòÉΓòÉΓòÉ 68.2. More about ENTRIES() ΓòÉΓòÉΓòÉ
  8514.  
  8515. o Where reference is a column in a table, ENTRIES() returns the equivalent of 
  8516.   the number of rows in the table. 
  8517.  
  8518. o Where reference does not belong to a table, ENTRIES() returns the number of 
  8519.   elements in the array. In the case of a two-dimensional array, this number is 
  8520.   the product of the number of elements in each dimension. 
  8521.  
  8522. o If reference does not exist, then ENTRIES() returns -1. 
  8523.  
  8524. o Where reference is the name of a variable, the name should be enclosed by 
  8525.   quotation marks ("") to prevent the variable being created if it does not 
  8526.   already exist. If the variable is known to exist, then the ENTRIES attribute 
  8527.   is simpler and more efficient: 
  8528.  
  8529.     LET number_of_strings = StringArray[0]'ENTRIES
  8530.     LET items = MyTab.AnnualSalary[0]'ENTRIES
  8531.  
  8532.   Note that using StringArray in this way causes the variable to be created if 
  8533.   it does not exist. 
  8534.  
  8535.  
  8536. ΓòÉΓòÉΓòÉ 69. ENTRY ΓòÉΓòÉΓòÉ
  8537.  
  8538. The ENTRY object class creates an instance of a multi-line entry field (MLE). 
  8539.  
  8540. Parent: WINDOW 
  8541.  
  8542. Attributes 
  8543.  
  8544. Actions 
  8545.  
  8546. Events 
  8547.  
  8548. Examples 
  8549.  
  8550. More about ENTRY 
  8551.  
  8552.  
  8553. ΓòÉΓòÉΓòÉ 69.1. Attributes ΓòÉΓòÉΓòÉ
  8554.  
  8555. ANCHORX                ANCHORY 
  8556. AUTOREFRESH            BGCOLOR 
  8557. BORDER                 CLONEDIR 
  8558. CLONEGAP               CLONES 
  8559. CURSORX                CURSORY 
  8560. EXPRESSION             FGCOLOR 
  8561. FIRSTCHAR              FIXEDFONT 
  8562. HANDLES                HELP 
  8563. HORZSCROLL             MODE 
  8564. ORIGIN                 ORIGINX 
  8565. ORIGINY                SELECTABLE 
  8566. SIZEX                  SIZEY 
  8567. TABACTION              TEXTLIMIT 
  8568. VERTSCROLL             VISIBLE 
  8569. WORDWRAP               X 
  8570.  
  8571.  
  8572. ΓòÉΓòÉΓòÉ 69.1.1. ANCHORX ΓòÉΓòÉΓòÉ
  8573.  
  8574. Current horizontal position in the text of the start of a marked block, 
  8575. measured relative to the position of the start of the text block.  An integer. 
  8576.  
  8577. Default: Calculated by Presentation Manager* services. 
  8578.  
  8579.  
  8580. ΓòÉΓòÉΓòÉ 69.1.2. ANCHORY ΓòÉΓòÉΓòÉ
  8581.  
  8582. Current vertical position in the text of the start of a marked block, measured 
  8583. relative to the position of the start of the text block.  An integer. 
  8584.  
  8585. Default: Calculated by Presentation Manager services. 
  8586.  
  8587.  
  8588. ΓòÉΓòÉΓòÉ 69.1.3. AUTOREFRESH ΓòÉΓòÉΓòÉ
  8589.  
  8590. Refreshes the data used in the MLE when the underlying data in the variable 
  8591. changes: 
  8592.  
  8593. 0         Autorefresh off 
  8594. 1         Autorefresh on 
  8595.  
  8596. Default: 1 (On) 
  8597.  
  8598.  
  8599. ΓòÉΓòÉΓòÉ 69.1.4. BGCOLOR ΓòÉΓòÉΓòÉ
  8600.  
  8601. Background color. Integer in the range 1-19. See Colors and color codes for 
  8602. details of colors available. 
  8603.  
  8604. Default: System window background color 
  8605.  
  8606.  
  8607. ΓòÉΓòÉΓòÉ 69.1.5. BORDER ΓòÉΓòÉΓòÉ
  8608.  
  8609. Draws a border around a field: 
  8610.  
  8611. 0         No border drawn 
  8612. 1         Border drawn 
  8613.  
  8614. Default: 0 (No border drawn) 
  8615.  
  8616.  
  8617. ΓòÉΓòÉΓòÉ 69.1.6. CLONEDIR ΓòÉΓòÉΓòÉ
  8618.  
  8619. Direction in which the clones are laid out: 
  8620.  
  8621. 1         Down 
  8622. 2         Up 
  8623. 3         Left 
  8624. 4         Right. 
  8625.  
  8626. Set on OPEN, then read-only. 
  8627.  
  8628. Default: 1 (Down) 
  8629.  
  8630.  
  8631. ΓòÉΓòÉΓòÉ 69.1.7. CLONEGAP ΓòÉΓòÉΓòÉ
  8632.  
  8633. Space between clones, in dialog units. 
  8634.  
  8635. Set on OPEN, then read-only. 
  8636.  
  8637. Default: 0 
  8638.  
  8639.  
  8640. ΓòÉΓòÉΓòÉ 69.1.8. CLONES ΓòÉΓòÉΓòÉ
  8641.  
  8642. Number of clones. 
  8643.  
  8644. Default: 1 
  8645.  
  8646.  
  8647. ΓòÉΓòÉΓòÉ 69.1.9. CURSORX ΓòÉΓòÉΓòÉ
  8648.  
  8649. Current horizontal position in the text of the end of a marked block, measured 
  8650. relative to the position of the start of the text block.  An integer. 
  8651.  
  8652. Default: Calculated by Presentation Manager services. 
  8653.  
  8654.  
  8655. ΓòÉΓòÉΓòÉ 69.1.10. CURSORY ΓòÉΓòÉΓòÉ
  8656.  
  8657. Current vertical position in the text of the end of a marked block, measured 
  8658. relative to the position of the start of the text block.  An integer. 
  8659.  
  8660. Default: Calculated by Presentation Manager services. 
  8661.  
  8662.  
  8663. ΓòÉΓòÉΓòÉ 69.1.11. EXPRESSION ΓòÉΓòÉΓòÉ
  8664.  
  8665. Pointer to a variable containing data to be displayed by the MLE. If the named 
  8666. variable is element [1] of an array, each element of the array is also 
  8667. displayed on a separate line of the entry field. 
  8668.  
  8669. Default: "" 
  8670.  
  8671.  
  8672. ΓòÉΓòÉΓòÉ 69.1.12. FGCOLOR ΓòÉΓòÉΓòÉ
  8673.  
  8674. Foreground color. Integer in the range 1-19. See Colors and color codes for 
  8675. details of colors available. 
  8676.  
  8677. Default: System window text color 
  8678.  
  8679.  
  8680. ΓòÉΓòÉΓòÉ 69.1.13. FIRSTCHAR ΓòÉΓòÉΓòÉ
  8681.  
  8682. Offsets the entry field to the left by a number of characters. The value of 
  8683. FIRSTCHAR is the number of obscured bytes in the string. For SBCS environments, 
  8684. this is the same as the number of characters obscured.  However, if there are 
  8685. any obscured DBCS characters in the string, this relationship does not apply. 
  8686.  
  8687. An error results if the number specified is greater than the number of 
  8688. characters. 
  8689.  
  8690. Default: 0 
  8691.  
  8692.  
  8693. ΓòÉΓòÉΓòÉ 69.1.14. FIXEDFONT ΓòÉΓòÉΓòÉ
  8694.  
  8695. Font to use: 
  8696.  
  8697. 0         System font 
  8698. 1         Courier point size 10 
  8699.  
  8700. Default: 0 (System font) 
  8701.  
  8702.  
  8703. ΓòÉΓòÉΓòÉ 69.1.15. HANDLES ΓòÉΓòÉΓòÉ
  8704.  
  8705. Whether sizing handles are attached to the MLE to support moving, sizing, and 
  8706. copying operations. These direct manipulation techniques follow the CUA 
  8707. guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  8708.  
  8709. 0         Handles are not displayed 
  8710. 1         Handles are displayed 
  8711.  
  8712. Default: 0 (No handles) 
  8713.  
  8714.  
  8715. ΓòÉΓòÉΓòÉ 69.1.16. HELP ΓòÉΓòÉΓòÉ
  8716.  
  8717. Resource identifier (res ID) of the full help text for this entry field. 
  8718.  
  8719. Default: None 
  8720.  
  8721.  
  8722. ΓòÉΓòÉΓòÉ 69.1.17. HORZSCROLL ΓòÉΓòÉΓòÉ
  8723.  
  8724. Horizontal scroll bar drawn to enable data scrolling: 
  8725.  
  8726. 0         No horizontal scroll bar drawn 
  8727. 1         Horizontal scroll bar drawn 
  8728. Set on OPEN, then read-only. 
  8729.  
  8730. Default: 0 (No horizontal scroll bar drawn) 
  8731.  
  8732.  
  8733. ΓòÉΓòÉΓòÉ 69.1.18. MODE ΓòÉΓòÉΓòÉ
  8734.  
  8735. Specifies what operations the user can carry out on text in the entry field: 
  8736.  
  8737. 0         Static - text cannot be moved 
  8738. 1         Display - text can be scrolled 
  8739. 2         Modifiable - text can be edited 
  8740.  
  8741. Default: 2 (Modifiable) 
  8742.  
  8743.  
  8744. ΓòÉΓòÉΓòÉ 69.1.19. ORIGIN ΓòÉΓòÉΓòÉ
  8745.  
  8746. The corner of the enclosing window to be taken as the origin. The position of 
  8747. the entry field is measured from this point. 
  8748.  
  8749. "TL"      Top left 
  8750. "TR"      Top right 
  8751. "BL"      Bottom left 
  8752. "BR"      Bottom right 
  8753.  
  8754. Default: "BL" (Bottom left) 
  8755.  
  8756.  
  8757. ΓòÉΓòÉΓòÉ 69.1.20. ORIGINX ΓòÉΓòÉΓòÉ
  8758.  
  8759. Current horizontal position in the text of the character displayed at the top 
  8760. left corner of the MLE measured relative to the position of the start of the 
  8761. text block.  An integer. 
  8762.  
  8763. Default: Calculated by Presentation Manager services. 
  8764.  
  8765.  
  8766. ΓòÉΓòÉΓòÉ 69.1.21. ORIGINY ΓòÉΓòÉΓòÉ
  8767.  
  8768. Current vertical position in the text of the character displayed at the top 
  8769. left corner of the MLE measured relative to the position of the start of the 
  8770. text block.  An integer. 
  8771.  
  8772. Default: Calculated by Presentation Manager services. 
  8773.  
  8774.  
  8775. ΓòÉΓòÉΓòÉ 69.1.22. SELECTABLE ΓòÉΓòÉΓòÉ
  8776.  
  8777. Whether the entry field is selectable: 
  8778.  
  8779. 0         Entry field not selectable 
  8780. 1         Entry field selectable 
  8781.  
  8782. Default: 0 (Not selectable) 
  8783.  
  8784.  
  8785. ΓòÉΓòÉΓòÉ 69.1.23. SIZEX ΓòÉΓòÉΓòÉ
  8786.  
  8787. Width, in dialog box units. 
  8788.  
  8789. Default: None 
  8790.  
  8791.  
  8792. ΓòÉΓòÉΓòÉ 69.1.24. SIZEY ΓòÉΓòÉΓòÉ
  8793.  
  8794. Height, in dialog box units. 
  8795.  
  8796. Default: None 
  8797.  
  8798.  
  8799. ΓòÉΓòÉΓòÉ 69.1.25. TABACTION ΓòÉΓòÉΓòÉ
  8800.  
  8801. Specifies the action taken when the ENTRY object receives a Tab keystroke: 
  8802.  
  8803. "IGNORE"  (Default.) Tab is ignored. Shift-Tab is ignored. 
  8804.  
  8805. "INSERT"  Tab inserts a TAB character. Shift-Tab is ignored. 
  8806.  
  8807. "EXIT"    Tab moves to the next control. Shift-Tab moves to the previous 
  8808.           control. 
  8809.  
  8810. Ctrl-TAB moves to the next control, whatever the setting. 
  8811.  
  8812. Default: "IGNORE" 
  8813.  
  8814.  
  8815. ΓòÉΓòÉΓòÉ 69.1.26. TEXTLIMIT ΓòÉΓòÉΓòÉ
  8816.  
  8817. Maximum number of bytes allowed in this entry field. If set to -1, the limit is 
  8818. unbounded. 
  8819.  
  8820. Default: 65535 
  8821.  
  8822.  
  8823. ΓòÉΓòÉΓòÉ 69.1.27. VERTSCROLL ΓòÉΓòÉΓòÉ
  8824.  
  8825. Vertical scroll bar drawn to enable data scrolling: 
  8826.  
  8827. 0         No vertical scroll bar drawn 
  8828. 1         Vertical scroll bar drawn 
  8829. Set on OPEN, then read-only. 
  8830.  
  8831. Default: 0 (No vertical scroll bar drawn) 
  8832.  
  8833.  
  8834. ΓòÉΓòÉΓòÉ 69.1.28. VISIBLE ΓòÉΓòÉΓòÉ
  8835.  
  8836. Whether the entry field is displayed: 
  8837.  
  8838. 0         Entry field not displayed 
  8839. 1         Entry field displayed 
  8840.  
  8841. Default: 1 (Displayed) 
  8842.  
  8843.  
  8844. ΓòÉΓòÉΓòÉ 69.1.29. WORDWRAP ΓòÉΓòÉΓòÉ
  8845.  
  8846. Wraps line round if it goes off the right-hand edge of the entry field: 
  8847.  
  8848. 0         Wordwrap disabled 
  8849. 1         Wordwrap enabled 
  8850. When text is wrapped to a new line, the original array element is used to hold 
  8851. the wrapped text. Otherwise, when there is no wordwrap, each line goes into its 
  8852. own element. 
  8853.  
  8854. Default: 0 (Disabled) 
  8855.  
  8856.  
  8857. ΓòÉΓòÉΓòÉ 69.1.30. X ΓòÉΓòÉΓòÉ
  8858.  
  8859. Horizontal position within the window, in dialog box units. 
  8860.  
  8861. Default: 0 
  8862.  
  8863.  
  8864. ΓòÉΓòÉΓòÉ 69.1.31. Y ΓòÉΓòÉΓòÉ
  8865.  
  8866. Vertical position within the window, in dialog box units. 
  8867.  
  8868. Default: 0 
  8869.  
  8870.  
  8871. ΓòÉΓòÉΓòÉ 69.2. Actions ΓòÉΓòÉΓòÉ
  8872.  
  8873. EDIT()               REFRESH() 
  8874.  
  8875.  
  8876. ΓòÉΓòÉΓòÉ 69.2.1. EDIT() ΓòÉΓòÉΓòÉ
  8877.  
  8878. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  8879.  
  8880. Enables the programmer to query whether a clipboard operation is supported and, 
  8881. if it is, to carry it out. 
  8882.  
  8883. argument is a clipboard query or a clipboard operation. 
  8884.  
  8885. The following values for argument are used to check whether particular 
  8886. clipboard operations can be supported with the entry field in its current 
  8887. state: 
  8888.  
  8889. "Querycut" Cut to clipboard 
  8890. "Querycopy" Copy to clipboard 
  8891. "Querypaste" Paste from clipboard 
  8892. "Queryclear" Clear clipboard. 
  8893. Where clipboard operations are supported, the following values for argument 
  8894. direct them to be carried out: 
  8895.  
  8896. "Cut"     Cut to clipboard 
  8897. "Copy"    Copy to clipboard 
  8898. "Paste"   Paste from clipboard 
  8899. "Clear"   Clear clipboard. 
  8900.  
  8901.  
  8902. ΓòÉΓòÉΓòÉ 69.2.2. REFRESH() ΓòÉΓòÉΓòÉ
  8903.  
  8904. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  8905.  
  8906. Forces repainting of the entry field on screen. 
  8907.  
  8908.  
  8909. ΓòÉΓòÉΓòÉ 69.3. Events ΓòÉΓòÉΓòÉ
  8910.  
  8911. DATA               DESKTOP 
  8912.  
  8913.  
  8914. ΓòÉΓòÉΓòÉ 69.3.1. DATA ΓòÉΓòÉΓòÉ
  8915.  
  8916. Signaled when another object is selected and data has changed. A.System.Object 
  8917. is set to the name of the entry field. A.System.Boxnumber is set to the clone 
  8918. selected. 
  8919.  
  8920.  
  8921. ΓòÉΓòÉΓòÉ 69.3.2. DESKTOP ΓòÉΓòÉΓòÉ
  8922.  
  8923. Signaled when the MLE is moved, sized, or copied. A.System.Operation is set to 
  8924. "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the control. 
  8925.  
  8926.  
  8927. ΓòÉΓòÉΓòÉ 69.4. Examples ΓòÉΓòÉΓòÉ
  8928.  
  8929. !
  8930. ! Open a multiline entry control on a window
  8931. !
  8932. PROCEDURE OpenEntry(pWindow)
  8933. DO
  8934.   DECLARE POINTER pWindow
  8935.   !
  8936.   ! define some sample text
  8937.   !
  8938.   DEFINE entrytext[0]
  8939.   INSERT entrytext[0] = 'Mary had a little lamb'
  8940.   INSERT entrytext[0] = 'Its fleece was white as snow'
  8941.   INSERT entrytext[0] = 'And everywhere that Mary went'
  8942.   INSERT entrytext[0] = 'The lamb was sure to go'
  8943.  
  8944.   OPEN ENTRY entry1, ?pWindow,
  8945.    X = 20, Y = 20,                ! position
  8946.    SIZEX = 150, SIZEY = 150,      ! size
  8947.    EXPRESSION = 'entrytext[1]',   ! referenced array
  8948.    WORDWRAP = 0,                  ! turn off word-wrap
  8949.    SELECTABLE = 1,                ! make it selectable
  8950.    ORIGIN = 'BL',                 ! origin bottom left (the default)
  8951.    VISIBLE = 1,                   ! make it visible (the default)
  8952.    MODE = 2,                      ! 0=static,
  8953.                                   ! 1=display only,
  8954.                                   ! 2=modifiable (the default)
  8955.    AUTOREFRESH = 1                ! set it to automatically refresh
  8956. END
  8957.  
  8958. Examples source library: 
  8959.  
  8960.  
  8961. ΓòÉΓòÉΓòÉ 69.5. More about ENTRY ΓòÉΓòÉΓòÉ
  8962.  
  8963. o If there are no clones (CLONES=1), each element of the vector identified in 
  8964.   the REFERENCE is mapped to each row within the entry field. 
  8965.  
  8966. o The following attributes can only be modified for the entire clone set, not 
  8967.   for the individual clones: 
  8968.  
  8969.    CLONEDIR 
  8970.    CLONEGAP 
  8971.    CLONES 
  8972.    HANDLES 
  8973.  
  8974. o In a DBCS environment, a window containing an ENTRY has a keyboard status 
  8975.   line at the bottom for character conversion. This line is added 
  8976.   automatically. 
  8977.  
  8978. o The slider on an MLE, like the slider on a LIST box, is handled by the MLE 
  8979.   itself. ENTRY does not signal a SCROLL event when the slider is moved. 
  8980.  
  8981.  
  8982. ΓòÉΓòÉΓòÉ 70. ERROR ΓòÉΓòÉΓòÉ
  8983.  
  8984. The ERROR statement displays messages on the screen. The text of the message is 
  8985. displayed in a pop-up window together with a visual cue. 
  8986.  
  8987. ΓöÇΓöÇERRORΓöÇΓöÇnumber,messagetextΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  8988.                                Γöé <ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  8989.                                ΓööΓöÇΓöÇ,parameterΓö┤ΓöÇΓöÿ
  8990.  
  8991. Examples 
  8992.  
  8993. More about ERROR 
  8994.  
  8995. See also: DIALOG(), MESSAGE, STRING(), WINDOW 
  8996.  
  8997.  
  8998. ΓòÉΓòÉΓòÉ 70.1. Examples ΓòÉΓòÉΓòÉ
  8999.  
  9000. LET foo = "Freddy"
  9001. LET bar = "message"
  9002.  
  9003. ERROR 1, "Simple text string message with an information sign"
  9004. ERROR 2, "Concatenated ", bar, " displaying a warning sign"
  9005. ERROR 3, 'Message including two expressions: _ and _', 2*3*4, foo
  9006. ERROR 10002, "Warning message without a prefix"
  9007.  
  9008. Examples source library: 
  9009.  
  9010.  
  9011. ΓòÉΓòÉΓòÉ 70.2. More about ERROR ΓòÉΓòÉΓòÉ
  9012.  
  9013. o messagetext can contain underscore (_) or caret (^) characters. These are 
  9014.   replaced in the string which is built by ERROR. A maximum of ten 
  9015.   substitutions may be made. See STRING() for more information on 
  9016.   substitutions. 
  9017.  
  9018.   Underscore inserts the expression into messagetext without quotes. Caret 
  9019.   causes the expression to be surrounded by single quotes before it is 
  9020.   inserted. 
  9021.  
  9022.     ERROR 1, "Name ^, Age _, Spare: ", foo, 2*3*4, "baloney"
  9023.  
  9024. o See MESSAGE for a statement that displays a message on the screen. 
  9025.  
  9026. o See DIALOG() for a function that displays a message and returns a code 
  9027.   representing the push button that the end user presses. 
  9028.  
  9029.  
  9030. ΓòÉΓòÉΓòÉ 71. EVALUATE() ΓòÉΓòÉΓòÉ
  9031.  
  9032. The EVALUATE() function compiles an expression to generate an object code 
  9033. variable that can then be executed by the  ? operator. This is used to evaluate 
  9034. expressions that are not known until run time. 
  9035.  
  9036. ΓöÇΓöÇEVALUATE(ΓöÇexpressionΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9037.  
  9038. Examples 
  9039.  
  9040. More about EVALUATE() 
  9041.  
  9042. See also: POINTER() 
  9043.  
  9044. Also see Operators. 
  9045.  
  9046.  
  9047. ΓòÉΓòÉΓòÉ 71.1. Examples ΓòÉΓòÉΓòÉ
  9048.  
  9049. DECLARE CHAR[*] expression = "(123.4 * 0.74) / 1.17"
  9050. DECLARE UNTYPED compiled_expression = EVALUATE(expression)
  9051. DECLARE UNTYPED root
  9052.  
  9053. MESSAGE 'FTB10002', 0, STRING("result is _", ?compiled_expression)
  9054. LET Root = EVALUATE("SQRT(1234)")   ! ?Root will give 35.13
  9055.  
  9056. The following example sets up a search expression based on a changeable column 
  9057. and a choice of conditions.  It then searches on these. Notice that the ? 
  9058. operator is used to evaluate the expression following it. 
  9059.  
  9060. DECLARE NUMERIC required
  9061.  
  9062. DECLARE CHAR[2] operation = IF(required, "=", "<=")
  9063. DECLARE UNTYPED findit = EVALUATE(STRING("(?pcolumn)[i] _ findthis", operation))
  9064.  
  9065. DO i = 1 : (?pcolumn)[0]'ENTRIES
  9066.   IF ?findit
  9067.   THEN DO
  9068.     ...
  9069.  
  9070. Examples source library: 
  9071.  
  9072.  
  9073. ΓòÉΓòÉΓòÉ 71.2. More about EVALUATE() ΓòÉΓòÉΓòÉ
  9074.  
  9075. o An expression inside an EVALUATE() function does not have access to the 
  9076.   procedures, the functions, or the declared variables of the invoking routine. 
  9077.  
  9078. o An evaluated expression cannot occur inside another evaluated expression. 
  9079.  
  9080.  
  9081. ΓòÉΓòÉΓòÉ 72. EXP() ΓòÉΓòÉΓòÉ
  9082.  
  9083. The EXP() function is the exponential function. EXP() returns the value of the 
  9084. base raised to a specified power. 
  9085.  
  9086. ΓöÇΓöÇEXP(ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇexpressionΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9087.           ΓööΓöÇbase,ΓöÇΓöÿ
  9088.  
  9089. Examples 
  9090.  
  9091. More about EXP() 
  9092.  
  9093.  
  9094. ΓòÉΓòÉΓòÉ 72.1. Examples ΓòÉΓòÉΓòÉ
  9095.  
  9096. LET x = EXP(100,2)               ! result is 10000
  9097. LET y = EXP(-1)                  ! result is 0.37   (which is 1/e)
  9098. LET z = EXP(-3, 4)               ! result is 81
  9099.  
  9100. Examples source library: 
  9101.  
  9102.  
  9103. ΓòÉΓòÉΓòÉ 72.2. More about EXP() ΓòÉΓòÉΓòÉ
  9104.  
  9105. o A nonnumeric value causes an error. 
  9106. o A negative number raised to any noninteger power causes an error. 
  9107.  
  9108.  
  9109. ΓòÉΓòÉΓòÉ 73. EXTRACTGLOBAL() ΓòÉΓòÉΓòÉ
  9110.  
  9111. The EXTRACTGLOBAL() function identifies the global values in a string. 
  9112.  
  9113.                           ΓöîΓöÇ"@"ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9114. ΓöÇΓöÇEXTRACTGLOBAL(string,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9115.                           ΓööΓöÇtriggerΓöÇΓöÿ
  9116.  
  9117. Examples 
  9118.  
  9119. More about EXTRACTGLOBAL() 
  9120.  
  9121. See also: GLOBAL(), REPLACEGLOBAL() 
  9122.  
  9123.  
  9124. ΓòÉΓòÉΓòÉ 73.1. Examples ΓòÉΓòÉΓòÉ
  9125.  
  9126. LET list1 = EXTRACTGLOBAL("It is @Month @Year")
  9127. ! list1 is "       Month  Year"
  9128. LET list2 = EXTRACTGLOBAL("It is @@Month")
  9129. ! list2 is "            "
  9130. LET list3 = EXTRACTGLOBAL("SELECT @columns FROM &table", "@&")
  9131. ! list3 is "        columns       table"
  9132.  
  9133. Examples source library: 
  9134.  
  9135.  
  9136. ΓòÉΓòÉΓòÉ 73.2. More about EXTRACTGLOBAL() ΓòÉΓòÉΓòÉ
  9137.  
  9138. o If the characters following a trigger do not correspond to the name of a 
  9139.   global value, blanks are returned. 
  9140.  
  9141. o The name stops at the first blank or other separator. 
  9142.  
  9143. o The sequence @@ will produce a single @ and does not introduce a global 
  9144.   value. 
  9145.  
  9146.  
  9147. ΓòÉΓòÉΓòÉ 74. FACTORIAL() ΓòÉΓòÉΓòÉ
  9148.  
  9149. The FACTORIAL() function returns the factorial of a number. 
  9150.  
  9151. ΓöÇΓöÇFACTORIAL(number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9152.  
  9153. Examples 
  9154.  
  9155.  
  9156. ΓòÉΓòÉΓòÉ 74.1. Examples ΓòÉΓòÉΓòÉ
  9157.  
  9158. LET x = FACTORIAL(5)       !  Result is 120
  9159. LET y = FACTORIAL(10.5)    !  Result is 3628800   (Input truncated)
  9160.  
  9161. Examples source library: 
  9162.  
  9163.  
  9164. ΓòÉΓòÉΓòÉ 75. FAIL ΓòÉΓòÉΓòÉ
  9165.  
  9166. The FAIL statement causes the executing task to RETURN, and the task which 
  9167. invoked it to have ERROR raised.  ERROR will have the message number and the 
  9168. optional fill. 
  9169.  
  9170. ΓöÇΓöÇFAILΓöÇΓöÇnumberΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9171.                   ΓööΓöÇ,fillΓöÇΓöÿ
  9172.  
  9173. Examples 
  9174.  
  9175. More about FAIL 
  9176.  
  9177. See also: FORGIVE, ON 
  9178.  
  9179.  
  9180. ΓòÉΓòÉΓòÉ 75.1. Examples ΓòÉΓòÉΓòÉ
  9181.  
  9182. FAIL A.System.ErrorNumber, A.System.ErrorInfo   ! Pass error to caller
  9183.  
  9184. PROCEDURE SetKeynames()
  9185. DO
  9186.   IF \NULL(keynames)
  9187.   THEN FAIL 2880, "SetKeynames"
  9188.   ...
  9189.  
  9190. Examples source library: 
  9191.  
  9192.  
  9193. ΓòÉΓòÉΓòÉ 75.2. More about FAIL ΓòÉΓòÉΓòÉ
  9194.  
  9195. o The caller may control the error by using the FORGIVE or ON ERROR statements, 
  9196.   otherwise the error will result in the normal pop-up message. 
  9197.  
  9198. o FAIL is only meaningful in synchronous events (START, RUN, QUERY, and any 
  9199.   event signaled by RUN PROGRAM). If the executing task was not invoked in this 
  9200.   way, FAIL causes the error to be signaled to itself. 
  9201.  
  9202.  
  9203. ΓòÉΓòÉΓòÉ 76. FALSE ΓòÉΓòÉΓòÉ
  9204.  
  9205. The FALSE statement identifies a particular value of a CASE expression. When 
  9206. the expression takes on a value of 0, the statement following FALSE is 
  9207. executed. 
  9208.  
  9209. ΓöÇΓöÇFALSEΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9210.  
  9211. Examples 
  9212.  
  9213. More about FALSE 
  9214.  
  9215. See also: CASE...WHEN...OTHERWISE...END, IF ... THEN ... ELSE, NULL, TRUE 
  9216.  
  9217.  
  9218. ΓòÉΓòÉΓòÉ 76.1. Examples ΓòÉΓòÉΓòÉ
  9219.  
  9220. X = 11
  9221. Y = 10
  9222. CASE X < Y
  9223.   TRUE
  9224.     MESSAGE "FTB0001",0,"2 - True ..."
  9225.   FALSE
  9226.     MESSAGE "FTB0001",0,"2 - False ..."
  9227.   NULL
  9228.     MESSAGE "FTB0001",0,"2 - Null ..."
  9229.   ! Note that "IF x < y ... ELSE DO ..." will run the ELSE part
  9230.   ! when the expression is FALSE but also when the expression is NULL
  9231.   ! (which would arise if X or Y or both were NULL)
  9232. END
  9233.  
  9234. Examples source library: 
  9235.  
  9236.  
  9237. ΓòÉΓòÉΓòÉ 76.2. More about FALSE ΓòÉΓòÉΓòÉ
  9238.  
  9239. o CASE...TRUE...FALSE...NULL...END performs a three-way test which takes 
  9240.   account of NULL values. The IF statement performs a two-way test which is 
  9241.   equivalent to CASE...TRUE...OTHERWISE...END. 
  9242.  
  9243. o If a CASE expression is not present, any TRUE, FALSE, or NULL blocks are 
  9244.   ignored. 
  9245.  
  9246.  
  9247. ΓòÉΓòÉΓòÉ 77. FILE ΓòÉΓòÉΓòÉ
  9248.  
  9249. The FILE object class provides access to OS/2 files. 
  9250.  
  9251. Attributes 
  9252.  
  9253. Actions 
  9254.  
  9255. Examples 
  9256.  
  9257. More about FILE 
  9258.  
  9259. More about FILE'GET() 
  9260.  
  9261. More about FILE'PUT() 
  9262.  
  9263. See also: LINE(), PAGE(), POSITION(), SPACE(), TAB() 
  9264.  
  9265.  
  9266. ΓòÉΓòÉΓòÉ 77.1. Attributes ΓòÉΓòÉΓòÉ
  9267.  
  9268. ACCESS              CODE 
  9269. CONVERT             EOF 
  9270. FORMAT              LENGTH 
  9271. LOCATION            MODE 
  9272. NAME                POINT 
  9273.  
  9274.  
  9275. ΓòÉΓòÉΓòÉ 77.1.1. ACCESS ΓòÉΓòÉΓòÉ
  9276.  
  9277. Describes the way in which the file will be processed: 
  9278.  
  9279. "SEQ"     Sequential access 
  9280. "RANDOM"  Random access 
  9281. "MIXED"   Mostly, but not only, sequential access 
  9282.  
  9283. Set on OPEN, then read-only 
  9284.  
  9285. Default: "SEQ" 
  9286.  
  9287.  
  9288. ΓòÉΓòÉΓòÉ 77.1.2. CODE ΓòÉΓòÉΓòÉ
  9289.  
  9290. Most recent OS/2 error code. 
  9291.  
  9292. Can be queried but not modified. 
  9293.  
  9294. Default: None 
  9295.  
  9296.  
  9297. ΓòÉΓòÉΓòÉ 77.1.3. CONVERT ΓòÉΓòÉΓòÉ
  9298.  
  9299. Conversion required: 
  9300.  
  9301. "ASCII"   Convert to ASCII 
  9302. "EBCDIC"  Convert to EBCDIC code page 939 
  9303. "K-HOST"  Convert to EBCDIC code page 930. 
  9304. When in a Japanese operating environment, "EBCDIC" converts to code page 939 of 
  9305. EBCDIC called SAA Code page (Extended 931). If you want to access Katakana or 
  9306. Alphabets, convert to code page 930 of EBCDIC and use "K-HOST" for the CONVERT 
  9307. attribute. 
  9308.  
  9309. Only applies to FILE objects where the FORMAT attribute is "BINARY" 
  9310.  
  9311. Set on OPEN, then read-only. 
  9312.  
  9313. Default: "ASCII" 
  9314.  
  9315.  
  9316. ΓòÉΓòÉΓòÉ 77.1.4. EOF ΓòÉΓòÉΓòÉ
  9317.  
  9318. Whether the end of an input file has been reached: 
  9319.  
  9320. 0         EOF not yet reached 
  9321. 1         EOF reached 
  9322.  
  9323. EOF is normally queried.  It can be modified, but only to 1. 
  9324.  
  9325. Default: None 
  9326.  
  9327.  
  9328. ΓòÉΓòÉΓòÉ 77.1.5. FORMAT ΓòÉΓòÉΓòÉ
  9329.  
  9330. Format of the file: 
  9331.  
  9332. "TEXT"    ASCII format 
  9333. "BINARY"  Binary format 
  9334.  
  9335. Set on OPEN, then read-only. 
  9336.  
  9337. Default: "TEXT" 
  9338.  
  9339.  
  9340. ΓòÉΓòÉΓòÉ 77.1.6. LENGTH ΓòÉΓòÉΓòÉ
  9341.  
  9342. Length, in characters, to be used for the next record read (BINARY files), or 
  9343. as a limit for the length (TEXT files). 
  9344.  
  9345. LENGTH can be queried or modified. If modified, it sets the length of the next 
  9346. record read. 
  9347.  
  9348. Default: 255 
  9349.  
  9350.  
  9351. ΓòÉΓòÉΓòÉ 77.1.7. LOCATION ΓòÉΓòÉΓòÉ
  9352.  
  9353. Location of the file (its OS/2 path) 
  9354.  
  9355. Set on OPEN, then read-only. 
  9356.  
  9357. Default: None 
  9358.  
  9359.  
  9360. ΓòÉΓòÉΓòÉ 77.1.8. MODE ΓòÉΓòÉΓòÉ
  9361.  
  9362. Access mode: 
  9363.  
  9364. "READ"    Read-only 
  9365. "WRITE"   Write-only 
  9366. "APPEND"  WRITE at end of file 
  9367.  
  9368. Set on OPEN, then read-only. 
  9369.  
  9370. Default: "READ" 
  9371.  
  9372.  
  9373. ΓòÉΓòÉΓòÉ 77.1.9. NAME ΓòÉΓòÉΓòÉ
  9374.  
  9375. Name of the operating system file (file name and extension) 
  9376.  
  9377. Set on OPEN, then read-only. 
  9378.  
  9379. Default: None 
  9380.  
  9381.  
  9382. ΓòÉΓòÉΓòÉ 77.1.10. POINT ΓòÉΓòÉΓòÉ
  9383.  
  9384. Current point within the file.  An integer. 
  9385.  
  9386. POINT can be queried or modified. If modified, it alters the current position 
  9387. in the file, in terms of characters from the start. 
  9388.  
  9389. Default: None 
  9390.  
  9391.  
  9392. ΓòÉΓòÉΓòÉ 77.1.11. OBJECTCLASS ΓòÉΓòÉΓòÉ
  9393.  
  9394. External class name of the object. Refers to the .TYPE extended attribute of 
  9395. the OS/2 file that the object is held as. It is used by Visualizer for the 
  9396. objects it creates. 
  9397.  
  9398. Set on OPEN, then read-only. 
  9399.  
  9400.  
  9401. ΓòÉΓòÉΓòÉ 77.2. Actions ΓòÉΓòÉΓòÉ
  9402.  
  9403. COPYEATTRS()            GET() 
  9404. PUT()                   SAVETO() 
  9405.  
  9406.  
  9407. ΓòÉΓòÉΓòÉ 77.2.1. COPYEATTRS() ΓòÉΓòÉΓòÉ
  9408.  
  9409. ΓöÇΓöÇCOPYEATTRS(object)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9410.  
  9411. Copies the extended attributes from another object. Only OS/2 file-based 
  9412. objects have extended attributes. 
  9413.  
  9414.  
  9415. ΓòÉΓòÉΓòÉ 77.2.2. GET() ΓòÉΓòÉΓòÉ
  9416.  
  9417.              <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9418. ΓöÇΓöÇGET(var1ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö┤ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9419.               ΓööΓöÇvar2ΓöÇΓöÿ
  9420.  
  9421. GET() reads data from the file. Up to ten variables can be supplied as 
  9422. arguments. Whole arrays can be read using [0]. TEXT file records must be 
  9423. separated by carriage return and line feed character pairs. BINARY file record 
  9424. length is set by the LENGTH attribute. 
  9425.  
  9426.  
  9427. ΓòÉΓòÉΓòÉ 77.2.3. PUT() ΓòÉΓòÉΓòÉ
  9428.  
  9429.              <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9430. ΓöÇΓöÇPUT(exp1ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö┤ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9431.               ΓööΓöÇexp2ΓöÇΓöÿ
  9432.  
  9433. PUT() adds to the file the string resulting from an expression. Up to ten 
  9434. expressions can be supplied as arguments to PUT(). Whole arrays can be 
  9435. specified using [0]. 
  9436.  
  9437.  
  9438. ΓòÉΓòÉΓòÉ 77.2.4. SAVETO() ΓòÉΓòÉΓòÉ
  9439.  
  9440. ΓöÇΓöÇSAVETO(OS2_filename))ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9441.  
  9442. Saves the FILE data as a new OS/2 file. 
  9443.  
  9444.  
  9445. ΓòÉΓòÉΓòÉ 77.3. Examples ΓòÉΓòÉΓòÉ
  9446.  
  9447. ! Procedure which makes use of the file object. A temporary file
  9448. ! name has been identified by the system procedure. This
  9449. ! procedure manipulates that file.
  9450. !
  9451. PROCEDURE file(tempname)
  9452. DO
  9453.   DECLARE CHAR[*] tempname
  9454.  
  9455.   DECLARE NUMERIC i
  9456.  
  9457.   OPEN FILE writeout,
  9458.    NAME     = NAME(tempname),
  9459.    LOCATION = LOCATION(tempname),
  9460.    MODE     = 'WRITE'
  9461.   !
  9462.   ! write out the contents of "days" vector to the file
  9463.   ! LINE() starts a new line
  9464.   !
  9465.   DO i = 1 : days[0]'ENTRIES
  9466.     CALL writeout'PUT(days[i], LINE())
  9467.   END
  9468.   !
  9469.   ! delete contents of "days" vector and close the file
  9470.   !
  9471.   CLEAR days
  9472.   SHUT writeout
  9473.   !
  9474.   ! open the file (in read mode)
  9475.   !
  9476.   OPEN file readin,
  9477.    NAME     = name(tempname),
  9478.    LOCATION = location(tempname),
  9479.    MODE     = 'READ'
  9480.   !
  9481.   ! read the contents of the file back into the "days" vector
  9482.   !
  9483.   CALL readin'GET(days[0])
  9484.   SHUT readin
  9485. END
  9486.  
  9487. Examples source library: 
  9488.  
  9489.  
  9490. ΓòÉΓòÉΓòÉ 77.4. More about FILE ΓòÉΓòÉΓòÉ
  9491.  
  9492. o OS/2 errors are noted in the CODE attribute of the FILE. Only the most recent 
  9493.   error is available in this attribute. 
  9494.  
  9495. o OPEN FILE always opens a FILE object, even if it cannot open the file itself. 
  9496.   So FILE objects should always be SHUT. This means that if you have used OPEN 
  9497.   FILE on a file that cannot be opened, you can read the CODE attribute to see 
  9498.   what happened.  But all operations on a FILE object in this state which refer 
  9499.   to the file itself are disallowed. 
  9500.  
  9501. o When a text-format file is shut using the SHUT statement, a Control-Z 
  9502.   character is output to mark the end of the file. 
  9503.  
  9504.  
  9505. ΓòÉΓòÉΓòÉ 77.5. More about FILE'GET() ΓòÉΓòÉΓòÉ
  9506.  
  9507. o If the variable given as an argument to GET() is an indexed array reference, 
  9508.   with index greater than 0, then the FILE data is put into that element of the 
  9509.   array. 
  9510.  
  9511. o If the variable is an array reference, with index 0, then the whole array is 
  9512.   filled with data from the file. 
  9513.  
  9514. o If the first or second dimension of the array is defined as zero, then GET() 
  9515.   reads all the remaining records from the file and places them in successive 
  9516.   rows of the array.  GET() resizes the first dimension of the array to equal 
  9517.   the number of records it reads. 
  9518.  
  9519. o If the first dimension of the array has a size n (greater than zero), and the 
  9520.   second dimension is omitted or greater than zero, then GET() reads up to n 
  9521.   records from the file and places them in successive rows of the array. If 
  9522.   there are insufficient records to fill all the rows, then unfilled rows have 
  9523.   a value of NULL data type. 
  9524.  
  9525. o If the record has only one dimension, then GET() truncates any records longer 
  9526.   than the current LENGTH. The excess data is not stored. 
  9527.  
  9528. o If a TEXT record length exceeds 255 bytes and the array has two dimensions, 
  9529.   then GET() splits the record and places the data in successive columns of the 
  9530.   appropriate row, beginning at column one. Each array column is filled, and 
  9531.   any columns of that row that are not used are assigned a data type of NULL. 
  9532.  
  9533. o If the second dimension of the array is defined as zero, then GET() redefines 
  9534.   it so that there are sufficient columns of up to 254 bytes each to hold the 
  9535.   longest record read. 
  9536.  
  9537. o If the second dimension of the array has a size n, then GET() truncates any 
  9538.   records longer than LENGTH.  The excess data is not stored. 
  9539.  
  9540. o The carriage return and line feed characters in a TEXT file are not inserted 
  9541.   in the variables by GET(). Neither is the Control-Z character (if any) that 
  9542.   indicates end of data. If these characters are present in a BINARY file, they 
  9543.   are to be inserted into the variables. 
  9544.  
  9545. o If there is insufficient data before the end of the file to satisfy the 
  9546.   length on a GET() from a BINARY file, then the last (or only) variable 
  9547.   contains only the data that was available. 
  9548.  
  9549. o If a variable is strongly typed and the data cannot be converted to the data 
  9550.   type of that variable, an error results. 
  9551.  
  9552.  
  9553. ΓòÉΓòÉΓòÉ 77.6. More about FILE'PUT() ΓòÉΓòÉΓòÉ
  9554.  
  9555. o The output file can be divided into separate records using the LINE() 
  9556.   function or other data items with a data type of FORMAT. 
  9557.  
  9558. o If an expression is a reference to an array, with index 0, then all the 
  9559.   elements of the array are concatenated and written to the file as one record. 
  9560.  
  9561.  
  9562. ΓòÉΓòÉΓòÉ 78. FILEDLG ΓòÉΓòÉΓòÉ
  9563.  
  9564. The FILEDLG object class provides access to the standard Presentation Manager 
  9565. File dialog, which prompts the user to select a file. The dialog uses file 
  9566. names and extended attributes to determine which files it lists. Here is an 
  9567. example of the window produced by the File dialog: 
  9568.  
  9569. Attributes 
  9570.  
  9571. Actions 
  9572.  
  9573. Examples 
  9574.  
  9575. More about FILEDLG 
  9576.  
  9577.  
  9578. ΓòÉΓòÉΓòÉ 78.1. Attributes ΓòÉΓòÉΓòÉ
  9579.  
  9580. BUTTONTITLE              CODE 
  9581. DIRLISTTXT               DRIVELISTTXT 
  9582. EA                       FILELISTTXT 
  9583. FILENAMETXT              FILTERLISTTXT 
  9584. HELP                     HELPTITLE 
  9585. IDENTIFIER               LIBNAME 
  9586. LOCATION                 NAME 
  9587. TITLE 
  9588.  
  9589.  
  9590. ΓòÉΓòÉΓòÉ 78.1.1. BUTTONTITLE ΓòÉΓòÉΓòÉ
  9591.  
  9592. The text to appear on the push button that confirms the file selection. 
  9593.  
  9594. Default: "Open" 
  9595.  
  9596.  
  9597. ΓòÉΓòÉΓòÉ 78.1.2. CODE ΓòÉΓòÉΓòÉ
  9598.  
  9599. The most recent error code from the File dialog. For details of the error 
  9600. codes, see More about FILEDLG. Can be queried but not modified. 
  9601.  
  9602. Default: 0 (No error) 
  9603.  
  9604.  
  9605. ΓòÉΓòÉΓòÉ 78.1.3. DIRLISTTXT ΓòÉΓòÉΓòÉ
  9606.  
  9607. The text to appear above the list box for the list of directories. 
  9608.  
  9609. Default: "Directory:" 
  9610.  
  9611.  
  9612. ΓòÉΓòÉΓòÉ 78.1.4. DRIVELISTTXT ΓòÉΓòÉΓòÉ
  9613.  
  9614. The text to appear above the drop-down entry field for the drive identifier. 
  9615.  
  9616. Default: "Drive:" 
  9617.  
  9618.  
  9619. ΓòÉΓòÉΓòÉ 78.1.5. EA ΓòÉΓòÉΓòÉ
  9620.  
  9621. The default type of extended attribute to be used. 
  9622.  
  9623. Default: "<All Files>" 
  9624.  
  9625.  
  9626. ΓòÉΓòÉΓòÉ 78.1.6. FILELISTTXT ΓòÉΓòÉΓòÉ
  9627.  
  9628. The text to appear above the list box for the list of file names. 
  9629.  
  9630. Default: "File:" 
  9631.  
  9632.  
  9633. ΓòÉΓòÉΓòÉ 78.1.7. FILENAMETXT ΓòÉΓòÉΓòÉ
  9634.  
  9635. The text to appear above the single-line entry field for the name of the 
  9636. selected file. 
  9637.  
  9638. Default: "Open filename:" 
  9639.  
  9640.  
  9641. ΓòÉΓòÉΓòÉ 78.1.8. FILTERLISTTXT ΓòÉΓòÉΓòÉ
  9642.  
  9643. The text to appear above the drop-down entry field for the list of extended 
  9644. attributes. 
  9645.  
  9646. Default: "Type of file:" 
  9647.  
  9648.  
  9649. ΓòÉΓòÉΓòÉ 78.1.9. HELP ΓòÉΓòÉΓòÉ
  9650.  
  9651. The resource identifier (res ID) of the help text for the dialog. 
  9652.  
  9653. Default: None 
  9654.  
  9655.  
  9656. ΓòÉΓòÉΓòÉ 78.1.10. HELPTITLE ΓòÉΓòÉΓòÉ
  9657.  
  9658. The text to appear in the title bar of the help window. 
  9659.  
  9660. Default: None 
  9661.  
  9662.  
  9663. ΓòÉΓòÉΓòÉ 78.1.11. IDENTIFIER ΓòÉΓòÉΓòÉ
  9664.  
  9665. The fully qualified name of the selected file. Can be set on open but not 
  9666. modified. 
  9667.  
  9668. Default: None 
  9669.  
  9670.  
  9671. ΓòÉΓòÉΓòÉ 78.1.12. LIBNAME ΓòÉΓòÉΓòÉ
  9672.  
  9673. The fully qualified name of the file that contains the help text (.HLP file). 
  9674. The file must be in a directory in the path defined by the HELP environment 
  9675. variable in the CONFIG.SYS file. 
  9676.  
  9677. Default: None 
  9678.  
  9679.  
  9680. ΓòÉΓòÉΓòÉ 78.1.13. LOCATION ΓòÉΓòÉΓòÉ
  9681.  
  9682. Location (the OS/2 path) that the File dialog starts from. 
  9683.  
  9684. Default: The current drive and path 
  9685.  
  9686.  
  9687. ΓòÉΓòÉΓòÉ 78.1.14. NAME ΓòÉΓòÉΓòÉ
  9688.  
  9689. The file specification used to determine which files are displayed in the 
  9690. dialog. This can contain the wildcard characters  ? and  *. 
  9691.  
  9692. Default: None 
  9693.  
  9694.  
  9695. ΓòÉΓòÉΓòÉ 78.1.15. TITLE ΓòÉΓòÉΓòÉ
  9696.  
  9697. The text to appear in the title bar of the File dialog window. 
  9698.  
  9699. Default: None 
  9700.  
  9701.  
  9702. ΓòÉΓòÉΓòÉ 78.2. Actions ΓòÉΓòÉΓòÉ
  9703.  
  9704. EALIST()            OPEN() 
  9705.  
  9706.  
  9707. ΓòÉΓòÉΓòÉ 78.2.1. EALIST() ΓòÉΓòÉΓòÉ
  9708.  
  9709. ΓöÇΓöÇEALIST(ext_attrs)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9710.  
  9711. The EALIST action provides the data for the list of extended attributes. The 
  9712. ext_attrs parameter is an array of values for the TYPE extended attribute. 
  9713.  
  9714.  
  9715. ΓòÉΓòÉΓòÉ 78.2.2. OPEN() ΓòÉΓòÉΓòÉ
  9716.  
  9717. ΓöÇΓöÇOPEN()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9718.  
  9719. The OPEN action displays the File dialog, using the current attributes. 
  9720.  
  9721.  
  9722. ΓòÉΓòÉΓòÉ 78.3. Examples ΓòÉΓòÉΓòÉ
  9723.  
  9724. ! In this example, the File dialog shows all files with the extended attribute
  9725. ! "Bitmap" in the directory C:\OS2\BIN\. The extended attributes list
  9726. ! contains the text strings in the elements of the MyEaList array, as well
  9727. ! as the default "<All Files>" choice. The call to the OPEN action occurs in
  9728. ! an expression, and the result (the selected file) is assigned to a variable.
  9729.  
  9730. OPEN FILEDLG MyFileDlg,           ! Open an instance of the FILEDLG
  9731.  LOCATION = "C:\OS2\BIN",         ! Set the attributes
  9732.  NAME     = "*.*",
  9733.  EA       = "Bitmap"
  9734.  
  9735. DEFINE MyEaList[3]
  9736. LET MyEaList[1] = "Bitmap"
  9737. LET MyEaList[2] = "Plain text"
  9738. LET MyEaList[3] = "Icon"
  9739. CALL MyFileDlg'EALIST(MyEaList)
  9740.  
  9741. LET filename = MyFileDlg'OPEN()   ! Display the window and get the result
  9742.  
  9743. ! Alternatively, the OPEN action could be called, then the
  9744. ! IDENTIFIER attribute queried to find out which file was selected.
  9745.  
  9746. CALL MyFileDlg'OPEN                     ! display the window
  9747. LET filename = MyFileDlg'IDENTIFIER     ! get the result
  9748.  
  9749. Examples source library: 
  9750.  
  9751.  
  9752. ΓòÉΓòÉΓòÉ 78.4. More about FILEDLG ΓòÉΓòÉΓòÉ
  9753.  
  9754. o There are two ways to find out which file the user selected. One way is to 
  9755.   use the OPEN action in an expression and assign the result to a variable. The 
  9756.   other way is to explicitly call the OPEN action and then query the IDENTIFIER 
  9757.   attribute. Both ways are shown in the examples. 
  9758.  
  9759. o Error return codes are stored in the CODE attribute. The codes have the 
  9760.   following meanings: 
  9761.  
  9762.    Code      Meaning 
  9763.    3         Attribute not valid. 
  9764.    6         The application made an action call that is not valid. 
  9765.    7         The system could not create a PM-aware thread. 
  9766.    9         The system could not create a semaphore. 
  9767.    10        An error occurred while waiting for a semaphore. 
  9768.    17        A directory could not be queried. 
  9769.    19        The system could not create an instance of the HELP object. 
  9770.    20        The system could not associate the HELP object. 
  9771.    22        The system could not display a help message. 
  9772.    23        The system could not shut the HELP object. 
  9773.    24        An error occurred when referencing a HELP object. 
  9774.    25        Parameter or attribute value not valid. 
  9775.  
  9776.  
  9777. ΓòÉΓòÉΓòÉ 79. FIND() ΓòÉΓòÉΓòÉ
  9778.  
  9779. The FIND() function returns the position in a vector at which a specified value 
  9780. is held. 
  9781.  
  9782.                     ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ              ΓöîΓöÇ"="ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  9783. ΓöÇΓöÇFIND(ref,value,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9784.                     ΓööΓöÇfirstΓöÇΓöÿ   ΓööΓöÇlastΓöÇΓöÿ   ΓööΓöÇcompareΓöÇΓöÿ
  9785.  
  9786. Examples 
  9787.  
  9788. More about FIND() 
  9789.  
  9790. See also: ROW() 
  9791.  
  9792.  
  9793. ΓòÉΓòÉΓòÉ 79.1. Examples ΓòÉΓòÉΓòÉ
  9794.  
  9795. IF FIND(words, newword) = 0
  9796.   INSERT words[0] = newword
  9797.  
  9798. LET recno = FIND(pf.number, searchnumber, 10, 20, ">=")
  9799.  
  9800. Examples source library: 
  9801.  
  9802.  
  9803. ΓòÉΓòÉΓòÉ 79.2. More about FIND() ΓòÉΓòÉΓòÉ
  9804.  
  9805. o FIND() returns the position of the first match, based on the value of 
  9806.   compare. If compare is  "=" (the default), then FIND() returns the position 
  9807.   of the first occurrence. If no match is found, then FIND() returns zero. 
  9808.  
  9809. o first can be used to continue a FIND() operation looking for a further 
  9810.   occurrence. 
  9811.  
  9812.  
  9813. ΓòÉΓòÉΓòÉ 80. FOLDER ΓòÉΓòÉΓòÉ
  9814.  
  9815. The FOLDER object class provides folders like those provided by the OS/2 
  9816. Workplace Shell: 
  9817.  
  9818. Folders can contain items-FOLDERITEM objects. Items can themselves be folders. 
  9819.  
  9820. Items are positioned in a hierarchy that is represented by a view-a FOLDERVIEW 
  9821. object. 
  9822.  
  9823. Attributes 
  9824.  
  9825. Actions 
  9826.  
  9827. Events 
  9828.  
  9829. Examples 
  9830.  
  9831. See also: FOLDERITEM, FOLDERVIEW, 
  9832.  
  9833.  
  9834. ΓòÉΓòÉΓòÉ 80.1. Attributes ΓòÉΓòÉΓòÉ
  9835.  
  9836. CODE                        DETAILHEADINGTEXT 
  9837. EDITABLE                    FOLDERITEM 
  9838. HEADINGTEXT                 NAMEHEADINGTEXT 
  9839. TYPEHEADINGTEXT 
  9840.  
  9841.  
  9842. ΓòÉΓòÉΓòÉ 80.1.1. CODE ΓòÉΓòÉΓòÉ
  9843.  
  9844. Last return code from the object. 
  9845.  
  9846.  
  9847. ΓòÉΓòÉΓòÉ 80.1.2. DETAILHEADINGTEXT ΓòÉΓòÉΓòÉ
  9848.  
  9849. Title for the detail column when this folder is shown in the details view. 
  9850.  
  9851. Default: "" 
  9852.  
  9853.  
  9854. ΓòÉΓòÉΓòÉ 80.1.3. EDITABLE ΓòÉΓòÉΓòÉ
  9855.  
  9856. Whether the attributes HEADINGTEXT, NAMEHEADINGTEXT, TYPEHEADINGTEXT, and 
  9857. DETAILHEADINGTEXT can be edited directly by an end user when an open FOLDERVIEW 
  9858. object represents this FOLDER object: 
  9859.  
  9860. 0         The attributes can not be edited 
  9861. 1         The attributes can be edited 
  9862.  
  9863. Default: 0 (Attributes can not be edited) 
  9864.  
  9865.  
  9866. ΓòÉΓòÉΓòÉ 80.1.4. FOLDERITEM ΓòÉΓòÉΓòÉ
  9867.  
  9868. Pointer to the FOLDERITEM object that this FOLDER is associated with. 
  9869.  
  9870. Default: 0 
  9871.  
  9872.  
  9873. ΓòÉΓòÉΓòÉ 80.1.5. HEADINGTEXT ΓòÉΓòÉΓòÉ
  9874.  
  9875. Displayed in the client area of the window when a FOLDERVIEW object is 
  9876. associated with this object. 
  9877.  
  9878. Default: "" 
  9879.  
  9880.  
  9881. ΓòÉΓòÉΓòÉ 80.1.6. NAMEHEADINGTEXT ΓòÉΓòÉΓòÉ
  9882.  
  9883. Title for the name column when this folder is shown in the details view. 
  9884.  
  9885. Default: "" 
  9886.  
  9887.  
  9888. ΓòÉΓòÉΓòÉ 80.1.7. TYPEHEADINGTEXT ΓòÉΓòÉΓòÉ
  9889.  
  9890. Title for the type column when this folder is shown in the details view. 
  9891.  
  9892. Default: "" 
  9893.  
  9894.  
  9895. ΓòÉΓòÉΓòÉ 80.2. Actions ΓòÉΓòÉΓòÉ
  9896.  
  9897. QUERYORDER()            SETORDER() 
  9898. QUERYVIEWS() 
  9899.  
  9900.  
  9901. ΓòÉΓòÉΓòÉ 80.2.1. QUERYORDER() ΓòÉΓòÉΓòÉ
  9902.  
  9903. ΓöÇΓöÇQUERYORDER(ordervec)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9904.  
  9905. Retrieves the order of the FOLDER object's child FOLDERITEM objects. Fills the 
  9906. vector ordervec with pointers to the FOLDERITEM objects. 
  9907.  
  9908.  
  9909. ΓòÉΓòÉΓòÉ 80.2.2. SETORDER() ΓòÉΓòÉΓòÉ
  9910.  
  9911. ΓöÇΓöÇSETORDER(ordervec)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9912.  
  9913. Sets the order of the FOLDER object's child FOLDERITEM objects, using pointers 
  9914. to the FOLDERITEM objects in the vector ordervec. 
  9915.  
  9916.  
  9917. ΓòÉΓòÉΓòÉ 80.2.3. QUERYVIEWS() ΓòÉΓòÉΓòÉ
  9918.  
  9919. ΓöÇΓöÇQUERYVIEWS(viewvec)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  9920.  
  9921. Retrieves the FOLDER object's child FOLDERVIEW objects. Fills the vector 
  9922. viewvec with pointers to the FOLDERVIEW objects. 
  9923.  
  9924.  
  9925. ΓòÉΓòÉΓòÉ 80.3. Events ΓòÉΓòÉΓòÉ
  9926.  
  9927. DATA             OPEN 
  9928.  
  9929.  
  9930. ΓòÉΓòÉΓòÉ 80.3.1. DATA ΓòÉΓòÉΓòÉ
  9931.  
  9932. Signaled when FOLDER data is edited directly. A.System.Object is a pointer to 
  9933. the FOLDER object. A.System.Boxnumber is set to the number of the field being 
  9934. edited: 
  9935.  
  9936. 1         HEADINGTEXT 
  9937. 2         NAMEHEADINGTEXT 
  9938. 3         TYPEHEADINGTEXT 
  9939. 4         DETAILHEADINGTEXT 
  9940.  
  9941. A.System.Boxvalue is set to the new data. 
  9942.  
  9943.  
  9944. ΓòÉΓòÉΓòÉ 80.3.2. OPEN ΓòÉΓòÉΓòÉ
  9945.  
  9946. Signaled when the FOLDERITEM representing this FOLDER is double clicked, or 
  9947. when it has cursor focus and the Enter key is pressed. 
  9948.  
  9949.  
  9950. ΓòÉΓòÉΓòÉ 80.4. Examples ΓòÉΓòÉΓòÉ
  9951.  
  9952. PROCEDURE OpenFolders()
  9953. !
  9954. ! This example opens a hierarchy of folder items, some of which are
  9955. ! themselves folders.  Then it opens two views of the hierarchy.
  9956. !
  9957. DO
  9958.   ! First open the FOLDERITEM that is the root of the hierarchy.
  9959.   OPEN FOLDERITEM Root,
  9960.     ICON = "Folder.ico"
  9961.  
  9962.   ! The root of the hierarchy has to be a folder, so open a FOLDER
  9963.   ! object and associate it with the root FOLDERITEM.
  9964.   OPEN FOLDER Folder1,
  9965.     FOLDERITEM = POINTER("Root")
  9966.  
  9967.   ! Now open a FOLDERITEM in folder 1.
  9968.   ! The icon associated with CMD.EXE is used for this item.
  9969.   OPEN FOLDERITEM Item1, Folder1,
  9970.     ICON = "C:\OS2\CMD.EXE",
  9971.     NAME = "Item 1"
  9972.  
  9973.   ! Open another item in folder 1.  Make the item into a folder
  9974.   ! by opening a second folder and associating it with this item,
  9975.   ! (in the same way as for the root item and folder 1).
  9976.   OPEN FOLDERITEM Item2, Folder1,
  9977.     ICON = "Folder.ico",
  9978.     NAME = "Folder 2"
  9979.  
  9980.   OPEN FOLDER Folder2,
  9981.     FOLDERITEM = POINTER("Item2")
  9982.  
  9983.   ! Open two more items, this time in folder 2.
  9984.   OPEN FOLDERITEM Item3, Folder2,
  9985.     ICON = "D:\DSS\FTB.ICO",
  9986.     NAME = "Item 3"
  9987.  
  9988.   OPEN FOLDERITEM Item4, Folder2,
  9989.     ICON = "D:\DSS\TUT.ICO",
  9990.     NAME = "Item 4"
  9991.  
  9992.   ! Open two views of the hierarchy.  A tree view of folder 1...
  9993.   OPEN FOLDERVIEW View1, Folder1,
  9994.     WINDOWTITLE = "Folder 1 - Tree view",
  9995.     VIEW = "TreeText",
  9996.     SIZEX = 300,
  9997.     SIZEY = 300,
  9998.     TREEVIEWINDENT = 50
  9999.  
  10000.   ! ...and a detail view of folder 2.
  10001.   OPEN FOLDERVIEW View2, Folder2,
  10002.     WINDOWTITLE = "Folder 2 - Detail view",
  10003.     VIEW = "Detail",
  10004.     SIZEX = 400,
  10005.     SIZEY = 200
  10006.  
  10007. END
  10008.  
  10009. ! The EXPAND event is used to expand a folder within a view.
  10010. ON EXPAND(pFolder)
  10011. DO
  10012.   DECLARE POINTER pFolder
  10013.   CALL (?A.System.Object)'EXPAND(pFolder)
  10014. END
  10015.  
  10016. ! The CONTRACT event is used to contract a folder within a view.
  10017. ON CONTRACT(pFolder)
  10018. DO
  10019.   DECLARE POINTER pFolder
  10020.   CALL (?A.System.Object)'CONTRACT(pFolder)
  10021. END
  10022.  
  10023. Examples source library: 
  10024.  
  10025.  
  10026. ΓòÉΓòÉΓòÉ 81. FOLDERITEM ΓòÉΓòÉΓòÉ
  10027.  
  10028. The FOLDERITEM object class provides an item in a hierarchy of folder items. 
  10029.  
  10030. An item might or might not be a folder. If an item is a folder, then open a 
  10031. FOLDER object that references the FOLDERITEM. 
  10032.  
  10033. Parent: FOLDER (except when the item is the root of the hierarchy). 
  10034.  
  10035. Attributes 
  10036.  
  10037. Actions: None. 
  10038.  
  10039. Events 
  10040.  
  10041. Examples 
  10042.  
  10043. See also: FOLDER, FOLDERVIEW. 
  10044.  
  10045.  
  10046. ΓòÉΓòÉΓòÉ 81.1. Attributes ΓòÉΓòÉΓòÉ
  10047.  
  10048. VISIBLE                 OPENED 
  10049. ICON                    X 
  10050. Y                       NAME 
  10051. TYPE                    DETAIL 
  10052. EDITABLE                POPUPMENUREF 
  10053. RESOURCE                HELP 
  10054. FOLDER                  CODE 
  10055.  
  10056.  
  10057. ΓòÉΓòÉΓòÉ 81.1.1. VISIBLE ΓòÉΓòÉΓòÉ
  10058.  
  10059. Whether the FOLDERITEM object is visible: 
  10060.  
  10061. 0         Invisible 
  10062. 1         Visible 
  10063.  
  10064. Default: 1 (Visible) 
  10065.  
  10066.  
  10067. ΓòÉΓòÉΓòÉ 81.1.2. OPENED ΓòÉΓòÉΓòÉ
  10068.  
  10069. Whether the FOLDERITEM object is open: 
  10070.  
  10071. 0         Closed 
  10072. 1         Open 
  10073.  
  10074. Default: 0 (Closed) 
  10075.  
  10076.  
  10077. ΓòÉΓòÉΓòÉ 81.1.3. ICON ΓòÉΓòÉΓòÉ
  10078.  
  10079. The name of the associated icon: either the fully qualified name of an icon 
  10080. file, or a string in the form  dllname<id>, where dllname is the name of a DLL 
  10081. and id is the resource ID of the icon within that DLL. 
  10082.  
  10083. Default: "" 
  10084.  
  10085.  
  10086. ΓòÉΓòÉΓòÉ 81.1.4. X ΓòÉΓòÉΓòÉ
  10087.  
  10088. Horizontal position of the icon in any child FOLDERVIEW object, in pixels. The 
  10089. system calculates the value of X. It is redundant for a top level FOLDERITEM 
  10090. object. 
  10091.  
  10092.  
  10093. ΓòÉΓòÉΓòÉ 81.1.5. Y ΓòÉΓòÉΓòÉ
  10094.  
  10095. Vertical position of the icon in any child FOLDERVIEW object, in pixels. The 
  10096. system calculates the value of Y. It is redundant for a top level FOLDERITEM 
  10097. object. 
  10098.  
  10099.  
  10100. ΓòÉΓòÉΓòÉ 81.1.6. NAME ΓòÉΓòÉΓòÉ
  10101.  
  10102. The name of the FOLDERITEM object. This is the name displayed in a names view, 
  10103. or next to the icon in a details view or tree view when this FOLDERITEM object 
  10104. is represented by a FOLDERVIEW object. 
  10105.  
  10106. Default: "" 
  10107.  
  10108.  
  10109. ΓòÉΓòÉΓòÉ 81.1.7. TYPE ΓòÉΓòÉΓòÉ
  10110.  
  10111. The type of the FOLDERITEM object. This is the type displayed in a details view 
  10112. when this FOLDERITEM object is represented by a FOLDERVIEW object. 
  10113.  
  10114. Default: "" 
  10115.  
  10116.  
  10117. ΓòÉΓòÉΓòÉ 81.1.8. DETAIL ΓòÉΓòÉΓòÉ
  10118.  
  10119. User defined data associated with the FOLDERITEM object. This is displayed in 
  10120. the details column in a details view when this FOLDERITEM object is represented 
  10121. by a FOLDERVIEW object. 
  10122.  
  10123. Default: "" 
  10124.  
  10125.  
  10126. ΓòÉΓòÉΓòÉ 81.1.9. EDITABLE ΓòÉΓòÉΓòÉ
  10127.  
  10128. Whether the attributes NAME, TYPE, and DETAIL can be edited directly by an end 
  10129. user when an open FOLDERVIEW object represents this FOLDERITEM object: 
  10130.  
  10131. 0         The attributes can not be edited 
  10132. 1         The attributes can be edited 
  10133.  
  10134. Default: 0 (Attributes can not be edited) 
  10135.  
  10136.  
  10137. ΓòÉΓòÉΓòÉ 81.1.10. POPUPMENUREF ΓòÉΓòÉΓòÉ
  10138.  
  10139. Reference to the pop-up menu. The name of a vector of menuitems in an object 
  10140. store. 
  10141.  
  10142. Default: "" 
  10143.  
  10144.  
  10145. ΓòÉΓòÉΓòÉ 81.1.11. RESOURCE ΓòÉΓòÉΓòÉ
  10146.  
  10147. The name of the module containing the help resource for displaying context 
  10148. sensitive help. 
  10149.  
  10150. Default: "" 
  10151.  
  10152.  
  10153. ΓòÉΓòÉΓòÉ 81.1.12. HELP ΓòÉΓòÉΓòÉ
  10154.  
  10155. ID for the help panel in the help resource. 
  10156.  
  10157. Default: 0 
  10158.  
  10159.  
  10160. ΓòÉΓòÉΓòÉ 81.1.13. FOLDER ΓòÉΓòÉΓòÉ
  10161.  
  10162. Pointer to the FOLDER object that this FOLDERITEM is associated with. 
  10163.  
  10164.  
  10165. ΓòÉΓòÉΓòÉ 81.1.14. CODE ΓòÉΓòÉΓòÉ
  10166.  
  10167. Last return code from the object. Possible return codes are listed in the 
  10168. Return codes section, which follows. 
  10169.  
  10170.  
  10171. ΓòÉΓòÉΓòÉ 81.2. Events ΓòÉΓòÉΓòÉ
  10172.  
  10173. DATA             OPEN 
  10174.  
  10175. This object can also signal a BREAK event, subject to the usual rules. 
  10176.  
  10177.  
  10178. ΓòÉΓòÉΓòÉ 81.2.1. DATA ΓòÉΓòÉΓòÉ
  10179.  
  10180. Signaled when FOLDERITEM data is edited directly. A.System.Object is set to the 
  10181. object's name. A.System.Boxnumber is set to the number of the field being 
  10182. edited: 
  10183.  
  10184. 1         NAME 
  10185. 2         TYPE 
  10186. 3         DETAIL 
  10187.  
  10188. A.System.Boxvalue is set to the new data. 
  10189.  
  10190.  
  10191. ΓòÉΓòÉΓòÉ 81.2.2. OPEN ΓòÉΓòÉΓòÉ
  10192.  
  10193. Signaled when the FOLDERITEM is double clicked, or when the Enter key is 
  10194. pressed, and no FOLDER has been associated by using the FOLDER attribute. 
  10195.  
  10196.  
  10197. ΓòÉΓòÉΓòÉ 81.3. Examples ΓòÉΓòÉΓòÉ
  10198.  
  10199. For examples, see FOLDER. 
  10200.  
  10201. Examples source library: 
  10202.  
  10203.  
  10204. ΓòÉΓòÉΓòÉ 82. FOLDERVIEW ΓòÉΓòÉΓòÉ
  10205.  
  10206. The FOLDERVIEW object class provides a view of a folder on the screen. You can 
  10207. display more than one view of the same folder by opening more than one 
  10208. FOLDERVIEW object. 
  10209.  
  10210. Parent: FOLDER 
  10211.  
  10212. Attributes 
  10213.  
  10214. Actions 
  10215.  
  10216. Events 
  10217.  
  10218. Examples 
  10219.  
  10220. See also: FOLDER, FOLDERITEM. 
  10221.  
  10222.  
  10223. ΓòÉΓòÉΓòÉ 82.1. Attributes ΓòÉΓòÉΓòÉ
  10224.  
  10225. WINDOWTITLE                    X 
  10226. Y                              SIZEX 
  10227. SIZEY                          VIEW 
  10228. FGCOLOR                        BGCOLOR 
  10229. HEADINGVISIBLE                 DETAILHEADINGVISIBLE 
  10230. NAMEVISIBLE                    TYPEVISIBLE 
  10231. DETAILVISIBLE                  LINESPACING 
  10232. TREEVIEWINDENT                 TREELINEVISIBLE 
  10233. SELECTION                      MENUREF 
  10234. SOURCECTRL                     TARGETCTRL 
  10235. TARGETX                        TARGETY 
  10236.  
  10237.  
  10238. ΓòÉΓòÉΓòÉ 82.1.1. WINDOWTITLE ΓòÉΓòÉΓòÉ
  10239.  
  10240. Title for the frame window. 
  10241.  
  10242. Default: "" 
  10243.  
  10244.  
  10245. ΓòÉΓòÉΓòÉ 82.1.2. X ΓòÉΓòÉΓòÉ
  10246.  
  10247. Horizontal position on the screen in pixels. 
  10248.  
  10249. Default: Calculated by the system 
  10250.  
  10251.  
  10252. ΓòÉΓòÉΓòÉ 82.1.3. Y ΓòÉΓòÉΓòÉ
  10253.  
  10254. Vertical position on the screen in pixels. 
  10255.  
  10256. Default: Calculated by the system 
  10257.  
  10258.  
  10259. ΓòÉΓòÉΓòÉ 82.1.4. SIZEX ΓòÉΓòÉΓòÉ
  10260.  
  10261. Horizontal size in pixels. 
  10262.  
  10263. Default: Calculated by the system 
  10264.  
  10265.  
  10266. ΓòÉΓòÉΓòÉ 82.1.5. SIZEY ΓòÉΓòÉΓòÉ
  10267.  
  10268. Vertical size in pixels. 
  10269.  
  10270. Default: Calculated by the system 
  10271.  
  10272.  
  10273. ΓòÉΓòÉΓòÉ 82.1.6. VIEW ΓòÉΓòÉΓòÉ
  10274.  
  10275. Type of view. One of: 
  10276.  
  10277. "DETAIL" 
  10278. "FLOWEDNAME" 
  10279. "FLOWEDTEXT" 
  10280. "ICON" 
  10281. "NAME" 
  10282. "TEXT" 
  10283. "TREENAME" 
  10284. "TREETEXT" 
  10285.  
  10286. Default: "ICON" 
  10287.  
  10288.  
  10289. ΓòÉΓòÉΓòÉ 82.1.7. FGCOLOR ΓòÉΓòÉΓòÉ
  10290.  
  10291. Foreground color. A color value in the range 0-19. 
  10292.  
  10293. Default: System default 
  10294.  
  10295.  
  10296. ΓòÉΓòÉΓòÉ 82.1.8. BGCOLOR ΓòÉΓòÉΓòÉ
  10297.  
  10298. Background color. A color value in the range 0-19. 
  10299.  
  10300. Default: System default 
  10301.  
  10302.  
  10303. ΓòÉΓòÉΓòÉ 82.1.9. HEADINGVISIBLE ΓòÉΓòÉΓòÉ
  10304.  
  10305. Whether the HEADINGTEXT of the associated FOLDER object is visible in the 
  10306. details view: 
  10307.  
  10308. 0         Invisible 
  10309. 1         Visible 
  10310.  
  10311. Default: 0 (Invisible) 
  10312.  
  10313.  
  10314. ΓòÉΓòÉΓòÉ 82.1.10. DETAILHEADINGVISIBLE ΓòÉΓòÉΓòÉ
  10315.  
  10316. Whether the NAMEHEADINGTEXT, TYPEHEADINGTEXT, and DETAILHEADINGTEXT of the 
  10317. associated FOLDER object are visible in the details view: 
  10318.  
  10319. 0         Invisible 
  10320. 1         Visible 
  10321.  
  10322. Default: 0 (Invisible) 
  10323.  
  10324.  
  10325. ΓòÉΓòÉΓòÉ 82.1.11. NAMEVISIBLE ΓòÉΓòÉΓòÉ
  10326.  
  10327. Whether the name column in the details view is visible: 
  10328.  
  10329. 0         Invisible 
  10330. 1         Visible 
  10331.  
  10332. Default: 1 (Visible) 
  10333.  
  10334.  
  10335. ΓòÉΓòÉΓòÉ 82.1.12. TYPEVISIBLE ΓòÉΓòÉΓòÉ
  10336.  
  10337. Whether the type column in the details view is visible: 
  10338.  
  10339. 0         Invisible 
  10340. 1         Visible 
  10341.  
  10342. Default: 1 (Visible) 
  10343.  
  10344.  
  10345. ΓòÉΓòÉΓòÉ 82.1.13. DETAILVISIBLE ΓòÉΓòÉΓòÉ
  10346.  
  10347. Whether the type column in the details view is visible: 
  10348.  
  10349. 0         Invisible 
  10350. 1         Visible 
  10351.  
  10352. Default: 1 (Visible) 
  10353.  
  10354.  
  10355. ΓòÉΓòÉΓòÉ 82.1.14. LINESPACING ΓòÉΓòÉΓòÉ
  10356.  
  10357. Vertical line spacing between records in pixels. 
  10358.  
  10359. Default: Defined by the system 
  10360.  
  10361.  
  10362. ΓòÉΓòÉΓòÉ 82.1.15. TREEVIEWINDENT ΓòÉΓòÉΓòÉ
  10363.  
  10364. The distance that a child FOLDERITEM is indented from its parent in a tree 
  10365. view. 
  10366.  
  10367. Default: Defined by the system 
  10368.  
  10369.  
  10370. ΓòÉΓòÉΓòÉ 82.1.16. TREELINEVISIBLE ΓòÉΓòÉΓòÉ
  10371.  
  10372. Whether the tree line is visible in a tree view. 
  10373.  
  10374. 0         Invisible 
  10375. 1         Visible 
  10376.  
  10377. Default: 1 (Visible) 
  10378.  
  10379.  
  10380. ΓòÉΓòÉΓòÉ 82.1.17. SELECTION ΓòÉΓòÉΓòÉ
  10381.  
  10382. The selection type allowed within the FOLDERVIEW: 
  10383.  
  10384. "SINGLE" 
  10385. "MULTIPLE" 
  10386. "EXTENDED" 
  10387.  
  10388. Default: "SINGLE" 
  10389.  
  10390.  
  10391. ΓòÉΓòÉΓòÉ 82.1.18. MENUREF ΓòÉΓòÉΓòÉ
  10392.  
  10393. The menu reference for the action bar. The name of a vector of menu items in an 
  10394. object store. 
  10395.  
  10396. Default: No menu 
  10397.  
  10398.  
  10399. ΓòÉΓòÉΓòÉ 82.1.19. SOURCECTRL ΓòÉΓòÉΓòÉ
  10400.  
  10401. Pointer to a SOURCECTRL object. 
  10402.  
  10403. Default: No SOURCECTRL object 
  10404.  
  10405.  
  10406. ΓòÉΓòÉΓòÉ 82.1.20. TARGETCTRL ΓòÉΓòÉΓòÉ
  10407.  
  10408. Pointer to a TARGETCTRL object. 
  10409.  
  10410. Default: No TARGETCTRL object 
  10411.  
  10412.  
  10413. ΓòÉΓòÉΓòÉ 82.1.21. TARGETX ΓòÉΓòÉΓòÉ
  10414.  
  10415. Horizontal position of a drop within the FOLDERVIEW object, in pixels. 
  10416.  
  10417.  
  10418. ΓòÉΓòÉΓòÉ 82.1.22. TARGETY ΓòÉΓòÉΓòÉ
  10419.  
  10420. Vertical position of a drop within the FOLDERVIEW object, in pixels. 
  10421.  
  10422.  
  10423. ΓòÉΓòÉΓòÉ 82.2. Actions ΓòÉΓòÉΓòÉ
  10424.  
  10425. EXPAND()                   CONTRACT() 
  10426. QUERYSELECTED()            SETSELECTED() 
  10427.  
  10428.  
  10429. ΓòÉΓòÉΓòÉ 82.2.1. EXPAND() ΓòÉΓòÉΓòÉ
  10430.  
  10431. ΓöÇΓöÇEXPAND(fldrptr)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10432.  
  10433. Expands a branch of the tree in a tree view. fldrptr is a pointer to the FOLDER 
  10434. object that is the node on the tree to be expanded. 
  10435.  
  10436.  
  10437. ΓòÉΓòÉΓòÉ 82.2.2. CONTRACT() ΓòÉΓòÉΓòÉ
  10438.  
  10439. ΓöÇΓöÇEXPAND(fldrptr)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10440.  
  10441. Contracts a branch of the tree in a tree view. fldrptr is a pointer to the 
  10442. FOLDER object that is the node on the tree to be contracted. 
  10443.  
  10444.  
  10445. ΓòÉΓòÉΓòÉ 82.2.3. QUERYSELECTED() ΓòÉΓòÉΓòÉ
  10446.  
  10447. ΓöÇΓöÇQUERYSELECTED(selvec)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10448.  
  10449. Retrieves the FOLDERITEM object pointers for the objects that are currently 
  10450. selected in the FOLDERVIEW. Fills the vector selvec with the object pointers. 
  10451.  
  10452.  
  10453. ΓòÉΓòÉΓòÉ 82.2.4. SETSELECTED() ΓòÉΓòÉΓòÉ
  10454.  
  10455. ΓöÇΓöÇSETSELECTED(selvec)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10456.  
  10457. Selects FOLDERITEM objects in the FOLDERVIEW. The vector selvec contains object 
  10458. pointers to the FOLDERITEM objects. 
  10459.  
  10460.  
  10461. ΓòÉΓòÉΓòÉ 82.3. Events ΓòÉΓòÉΓòÉ
  10462.  
  10463. DESKTOP             QUIT 
  10464. ESCAPE              EXPAND 
  10465. CONTRACT 
  10466.  
  10467.  
  10468. ΓòÉΓòÉΓòÉ 82.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  10469.  
  10470. Signaled when a desktop event occurs. A.System.Object is set to point to the 
  10471. FOLDERVIEW object. A.System.Operation is set to one of: "MIN", "MAX", "SIZE", 
  10472. "NORM", or "MOVE". 
  10473.  
  10474.  
  10475. ΓòÉΓòÉΓòÉ 82.3.2. QUIT ΓòÉΓòÉΓòÉ
  10476.  
  10477. Signaled when Quit is selected from the system menu. A.System.Object is set to 
  10478. point to the FOLDERVIEW object. 
  10479.  
  10480.  
  10481. ΓòÉΓòÉΓòÉ 82.3.3. ESCAPE ΓòÉΓòÉΓòÉ
  10482.  
  10483. Signaled when the Escape key is pressed and the FOLDERVIEW object has keyboard 
  10484. focus. A.System.Object is set to point to the FOLDERVIEW object. 
  10485.  
  10486.  
  10487. ΓòÉΓòÉΓòÉ 82.3.4. EXPAND ΓòÉΓòÉΓòÉ
  10488.  
  10489. Signaled when the expand (+) symbol on a folder is selected. A.System.Object is 
  10490. set to point to the FOLDERVIEW object. A pointer to the folder object being 
  10491. expanded is passed as a parameter to the event. 
  10492.  
  10493.  
  10494. ΓòÉΓòÉΓòÉ 82.3.5. CONTRACT ΓòÉΓòÉΓòÉ
  10495.  
  10496. Signaled when the contract (-) symbol on a folder is selected. A.System.Object 
  10497. is set to point to the FOLDERVIEW object. A pointer to the folder object being 
  10498. expanded is passed as a parameter to the event. 
  10499.  
  10500.  
  10501. ΓòÉΓòÉΓòÉ 82.4. Examples ΓòÉΓòÉΓòÉ
  10502.  
  10503. For examples, see FOLDER. 
  10504.  
  10505. Examples source library: 
  10506.  
  10507.  
  10508. ΓòÉΓòÉΓòÉ 83. FORGIVE ΓòÉΓòÉΓòÉ
  10509.  
  10510. The FORGIVE statement introduces a statement or block of statements whose 
  10511. execution does not invoke the ON ERROR block if an error occurs. 
  10512.  
  10513. ΓöÇΓöÇFORGIVEΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10514.  
  10515. Examples 
  10516.  
  10517. More about FORGIVE 
  10518.  
  10519. See also: ON ERROR, FAIL 
  10520.  
  10521.  
  10522. ΓòÉΓòÉΓòÉ 83.1. Examples ΓòÉΓòÉΓòÉ
  10523.  
  10524. FORGIVE x = SQRT(Val)
  10525. IF A.System.ErrorNumber \= 0
  10526.   ERROR 2, "Unable to find the square root of _.", Val
  10527.  
  10528. FORGIVE
  10529.   OPEN MMFILE MyMovie,
  10530.    NAME     = 'Macaw.AVI',
  10531.    LOCATION = 'C:\MMOS2\MOVIES'
  10532. IF A.System.ErrorNumber \= 0
  10533. THEN DO
  10534.   IF MyMovie'CODE \= 0
  10535.   THEN ERROR 3, "Couldn't open video file: _", MyMovie'REASON
  10536.   ELSE FAIL A.System.ErrorNumber, A.System.ErrorInfo
  10537. END
  10538.  
  10539. Examples source library: 
  10540.  
  10541.  
  10542. ΓòÉΓòÉΓòÉ 83.2. More about FORGIVE ΓòÉΓòÉΓòÉ
  10543.  
  10544. o The system variables which contain information about any error which can have 
  10545.   occurred are set as usual. A.System.ErrorNumber is set to 0 at the start of 
  10546.   the block (that is, whether an error occurs or not), and can be tested after 
  10547.   FORGIVE to see whether an error has occurred. 
  10548.  
  10549. o A single statement controlled by FORGIVE, or the DO of a DO...END, can be 
  10550.   placed on the same line as the FORGIVE statement or on the following line. 
  10551.  
  10552. o FORGIVE before a CALL will stop error reporting on all statements within the 
  10553.   called procedure or object action. 
  10554.  
  10555. o FORGIVE before START PROGRAM does not stop error reporting because START 
  10556.   PROGRAM starts its own task for executing the program. 
  10557.  
  10558.  
  10559. ΓòÉΓòÉΓòÉ 84. FULLPATH() ΓòÉΓòÉΓòÉ
  10560.  
  10561. The FULLPATH() function returns the fully qualified OS/2 name from a location 
  10562. name and a file name. 
  10563.  
  10564. ΓöÇΓöÇFULLPATH(location,filename)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10565.  
  10566. Examples 
  10567.  
  10568. See also: LOCATION(), NAME() 
  10569.  
  10570.  
  10571. ΓòÉΓòÉΓòÉ 84.1. Examples ΓòÉΓòÉΓòÉ
  10572.  
  10573. LET FullName = FULLPATH("C:\DSS\SAMPLES\ENU", "CHARTEMP")
  10574.  
  10575. Examples source library: 
  10576.  
  10577.  
  10578. ΓòÉΓòÉΓòÉ 85. GATHER ΓòÉΓòÉΓòÉ
  10579.  
  10580. The GATHER statement is used to find the unique values in a vector. 
  10581.  
  10582. GATHER optionally gives the number of times each unique value occurs in the 
  10583. vector, and the order in which these unique values were found. Values are 
  10584. accumulated in ascending order. 
  10585.  
  10586. GATHER can also return the maximum, minimum, and total of values in the 
  10587. specified quantity array. 
  10588.  
  10589. ΓöÇΓöÇGATHERΓöÇΓöÇuniqueΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇ
  10590.                        ΓööΓöÇposΓöÇΓöÿ     ΓööΓöÇcountΓöÇΓöÿ     ΓööΓöÇsumΓöÇΓöÿ     ΓööΓöÇmaxΓöÇΓöÿ
  10591. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ=ΓöÇΓöÇvectorinΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10592.    ΓööΓöÇminΓöÇΓöÿ                  ΓööΓöÇquantityΓöÇΓöÿ
  10593.  
  10594. Examples 
  10595.  
  10596. More about GATHER 
  10597.  
  10598. See also: ANALYZE 
  10599.  
  10600.  
  10601. ΓòÉΓòÉΓòÉ 85.1. Examples ΓòÉΓòÉΓòÉ
  10602.  
  10603. Assume you are using the following vectors: 
  10604.  
  10605. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  10606. ΓöéInput   ΓöéValues  Γöé
  10607. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10608. Γöéa       Γöé2       Γöé
  10609. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10610. Γöéc       Γöé5       Γöé
  10611. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10612. Γöéc       Γöé2       Γöé
  10613. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10614. Γöéa       Γöé6       Γöé
  10615. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10616. Γöéb       Γöé1       Γöé
  10617. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10618. Γöéc       Γöé2       Γöé
  10619. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10620. Γöéd       Γöé"NULL"  Γöé
  10621. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10622. Γöée       Γöé"NULL"  Γöé
  10623. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10624. Γöée       Γöé4       Γöé
  10625. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  10626.  
  10627. The statement: 
  10628.  
  10629. GATHER Uni,, Count = Input
  10630.  
  10631. gives the vectors: 
  10632.  
  10633. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  10634. ΓöéUni     ΓöéCount   Γöé
  10635. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10636. Γöéa       Γöé2       Γöé
  10637. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10638. Γöéb       Γöé1       Γöé
  10639. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10640. Γöéc       Γöé3       Γöé
  10641. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10642. Γöéd       Γöé1       Γöé
  10643. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10644. Γöée       Γöé2       Γöé
  10645. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  10646.  
  10647. gives the vectors: 
  10648.  
  10649. This statement: 
  10650.  
  10651. GATHER Uni, Order,, Tot, Min, Max = Input, Values
  10652.  
  10653. will give the vectors: 
  10654.  
  10655. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  10656. ΓöéUni     ΓöéOrder   ΓöéTot     ΓöéMin     ΓöéMax     Γöé
  10657. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10658. Γöéa       Γöé1       Γöé8       Γöé2       Γöé6       Γöé
  10659. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10660. Γöéb       Γöé5       Γöé1       Γöé1       Γöé1       Γöé
  10661. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10662. Γöéc       Γöé2       Γöé9       Γöé2       Γöé5       Γöé
  10663. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10664. Γöéd       Γöé7       ΓöéNULL    ΓöéNULL    ΓöéNULL    Γöé
  10665. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  10666. Γöée       Γöé8       Γöé4       Γöé4       Γöé4       Γöé
  10667. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  10668.  
  10669. Examples source library: 
  10670.  
  10671.  
  10672. ΓòÉΓòÉΓòÉ 85.2. More about GATHER ΓòÉΓòÉΓòÉ
  10673.  
  10674. o unique values are listed in ascending order. 
  10675.  
  10676. o unique, total, order, minimum, count, and maximum need not have been defined 
  10677.   before. If they have been defined before, they are redefined to the correct 
  10678.   size. 
  10679.  
  10680. o A NULL value in vectorin causes a NULL entry in the unique array with 
  10681.   corresponding entries in the other arrays. 
  10682.  
  10683. o Any elements in vectorin which have corresponding NULL values in quantity are 
  10684.   not included in count. Therefore, if all values in vectorin associated with a 
  10685.   single value in unique are NULL, count will contain 0 for this value. 
  10686.  
  10687. o For minimum and maximum, the data type of the first value in vectorin for 
  10688.   each element in unique is the data type to which the other values must 
  10689.   conform. If any of the other values is of a different data type from this 
  10690.   value, it is ignored if it cannot be converted. 
  10691.  
  10692. o GATHER is sometimes appropriate as a means of establishing values before 
  10693.   issuing an ANALYZE statement. 
  10694.  
  10695.  
  10696. ΓòÉΓòÉΓòÉ 86. GLOBAL() ΓòÉΓòÉΓòÉ
  10697.  
  10698. The GLOBAL() function provides the value of a global value which is shared 
  10699. between applications. 
  10700.  
  10701. ΓöÇΓöÇGLOBAL(name,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10702.                  ΓööΓöÇnewvalueΓöÇΓöÿ
  10703.  
  10704. Examples 
  10705.  
  10706. More about GLOBAL() 
  10707.  
  10708. See also: EXTRACTGLOBAL(), REPLACEGLOBAL() 
  10709.  
  10710.  
  10711. ΓòÉΓòÉΓòÉ 86.1. Examples ΓòÉΓòÉΓòÉ
  10712.  
  10713. LET result = GLOBAL("Month", "Jan")             ! result is NULL, probably
  10714. LET result = GLOBAL("Month", "Apr")             ! result is "Jan"
  10715. LET result = GLOBAL("Month")                    ! result is "Apr"
  10716.  
  10717. Examples source library: 
  10718.  
  10719.  
  10720. ΓòÉΓòÉΓòÉ 86.2. More about GLOBAL() ΓòÉΓòÉΓòÉ
  10721.  
  10722. o GLOBAL values are shared between all applications in one session. 
  10723.  
  10724. o GLOBAL values can be set on the command line: 
  10725.  
  10726.     FTBAS3 -@Month=Jan@Week=4
  10727.  
  10728.  
  10729. ΓòÉΓòÉΓòÉ 87. GRAPHIC ΓòÉΓòÉΓòÉ
  10730.  
  10731. The GRAPHIC object class provides a graphic area in a window. 
  10732.  
  10733. Parent: WINDOW 
  10734.  
  10735. Attributes 
  10736.  
  10737. Actions 
  10738.  
  10739. Events 
  10740.  
  10741. Examples 
  10742.  
  10743. More about GRAPHIC 
  10744.  
  10745. See also: DEFINE object, Standard graphics attributes. 
  10746.  
  10747. Also see the DDEGS.PRG program in Development Samples. 
  10748.  
  10749.  
  10750. ΓòÉΓòÉΓòÉ 87.1. Attributes ΓòÉΓòÉΓòÉ
  10751.  
  10752. ASPECTRATIO            BGCOLOR 
  10753. DRAGABLE               HANDLES 
  10754. HELP                   ORIGIN 
  10755. EXPRESSION             FGCOLOR 
  10756. HEIGHT                 PATTERN 
  10757. SELECTABLE             SIZEX 
  10758. SIZEY                  SKIPREFRESH 
  10759. VISIBLE                WCSMINX 
  10760. WCSMAXX                WCSMINY 
  10761. WCSMAXY                WIDTH 
  10762. X                      Y 
  10763. ZORDER 
  10764.  
  10765.  
  10766. ΓòÉΓòÉΓòÉ 87.1.1. ASPECTRATIO ΓòÉΓòÉΓòÉ
  10767.  
  10768. Whether the aspect ratio of the graphic area is maintained. If the aspect ratio 
  10769. is ignored, the graphic area is adapted to fill the display space available. 
  10770.  
  10771. 0         Aspect ratio ignored 
  10772. 1         Aspect ratio maintained 
  10773.  
  10774. Default: 0 (Ignored) 
  10775.  
  10776.  
  10777. ΓòÉΓòÉΓòÉ 87.1.2. BGCOLOR ΓòÉΓòÉΓòÉ
  10778.  
  10779. Background color. Integer in the range 1-19. See Colors and color codes for 
  10780. details of colors available. 
  10781.  
  10782. Default: Color used in the window 
  10783.  
  10784.  
  10785. ΓòÉΓòÉΓòÉ 87.1.3. DRAGABLE ΓòÉΓòÉΓòÉ
  10786.  
  10787. Whether objects in the graphic area can be dragged: 
  10788.  
  10789. 0         Objects cannot be dragged 
  10790. 1         Objects can be dragged 
  10791.  
  10792. Default: 0 (Cannot be dragged) 
  10793.  
  10794.  
  10795. ΓòÉΓòÉΓòÉ 87.1.4. HANDLES ΓòÉΓòÉΓòÉ
  10796.  
  10797. Whether sizing handles are attached to the graphic to support moving, sizing, 
  10798. and copying operations. These direct manipulation techniques follow the CUA 
  10799. guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  10800.  
  10801. 0         Handles are not displayed 
  10802. 1         Handles are displayed 
  10803.  
  10804. Default: 0 (No handles) 
  10805.  
  10806.  
  10807. ΓòÉΓòÉΓòÉ 87.1.5. HELP ΓòÉΓòÉΓòÉ
  10808.  
  10809. Resource identifier (res ID) number of the full help text for this area. 
  10810.  
  10811. Default: 0 
  10812.  
  10813.  
  10814. ΓòÉΓòÉΓòÉ 87.1.6. ORIGIN ΓòÉΓòÉΓòÉ
  10815.  
  10816. The corner of the enclosing window to be taken as the origin. The position of 
  10817. the graphic area is measured from this point. 
  10818.  
  10819. "TL"      Top left 
  10820. "TR"      Top right 
  10821. "BL"      Bottom left 
  10822. "BR"      Bottom right 
  10823.  
  10824. Default: "BL" (Bottom left) 
  10825.  
  10826.  
  10827. ΓòÉΓòÉΓòÉ 87.1.7. EXPRESSION ΓòÉΓòÉΓòÉ
  10828.  
  10829. Vector reference containing the file name of a previously saved graphics file. 
  10830.  
  10831. Default: "" 
  10832.  
  10833.  
  10834. ΓòÉΓòÉΓòÉ 87.1.8. FGCOLOR ΓòÉΓòÉΓòÉ
  10835.  
  10836. Foreground color. Integer in the range 1-19. See Colors and color codes for 
  10837. details of colors available. 
  10838.  
  10839. Default: Color used in the window. 
  10840.  
  10841.  
  10842. ΓòÉΓòÉΓòÉ 87.1.9. HEIGHT ΓòÉΓòÉΓòÉ
  10843.  
  10844. Vertical size of the graphic area, in millimeters. 
  10845.  
  10846. Read-only: Calculated by Presentation Manager 
  10847.  
  10848.  
  10849. ΓòÉΓòÉΓòÉ 87.1.10. PATTERN ΓòÉΓòÉΓòÉ
  10850.  
  10851. Pattern for the graphic area. Integer in the range 0-15. See 
  10852. Patterns and patterncodes for details of patterns available. 
  10853.  
  10854. Default: 0 
  10855.  
  10856.  
  10857. ΓòÉΓòÉΓòÉ 87.1.11. SELECTABLE ΓòÉΓòÉΓòÉ
  10858.  
  10859. Whether the graphic area is selectable or not: 
  10860.  
  10861. 0         Graphic area not selectable 
  10862. 1         Graphic area selectable.  Displayed in bold outline. 
  10863. 2         Graphic area selectable.  Displayed in a surrounding box. 
  10864.  
  10865. Default: 1 (Selectable) 
  10866.  
  10867.  
  10868. ΓòÉΓòÉΓòÉ 87.1.12. SIZEX ΓòÉΓòÉΓòÉ
  10869.  
  10870. Horizontal size of the graphic area, in dialog box units. 
  10871.  
  10872. Default: 0 
  10873.  
  10874.  
  10875. ΓòÉΓòÉΓòÉ 87.1.13. SIZEY ΓòÉΓòÉΓòÉ
  10876.  
  10877. Vertical size of the graphic area, in dialog box units. 
  10878.  
  10879. Default: 0 
  10880.  
  10881.  
  10882. ΓòÉΓòÉΓòÉ 87.1.14. SKIPREFRESH ΓòÉΓòÉΓòÉ
  10883.  
  10884. The graphic area is not refreshed automatically. 
  10885.  
  10886. Default: 0 (Refreshing is done) 
  10887.  
  10888.  
  10889. ΓòÉΓòÉΓòÉ 87.1.15. VISIBLE ΓòÉΓòÉΓòÉ
  10890.  
  10891. Whether the graphic area is displayed: 
  10892.  
  10893. 0         Graphic area not displayed 
  10894. 1         Graphic area displayed 
  10895.  
  10896. Default: 1 (Displayed) 
  10897.  
  10898.  
  10899. ΓòÉΓòÉΓòÉ 87.1.16. WCSMINX ΓòÉΓòÉΓòÉ
  10900.  
  10901. World coordinate minimum value in the X direction. 
  10902.  
  10903. Difference between WCSMINX and WCSMAXX must not exceed 32000. 
  10904.  
  10905. Default: 0 
  10906.  
  10907.  
  10908. ΓòÉΓòÉΓòÉ 87.1.17. WCSMAXX ΓòÉΓòÉΓòÉ
  10909.  
  10910. World coordinate maximum value in the X direction. 
  10911.  
  10912. Difference between WCSMINX and WCSMAXX must not exceed 32000. 
  10913.  
  10914. Default: 0 
  10915.  
  10916.  
  10917. ΓòÉΓòÉΓòÉ 87.1.18. WCSMINY ΓòÉΓòÉΓòÉ
  10918.  
  10919. World coordinate minimum value in the Y direction. 
  10920.  
  10921. Difference between WCSMINY and WCSMAXY must not exceed 32000. 
  10922.  
  10923. Default: 0 
  10924.  
  10925.  
  10926. ΓòÉΓòÉΓòÉ 87.1.19. WCSMAXY ΓòÉΓòÉΓòÉ
  10927.  
  10928. World coordinate maximum value in the Y direction. 
  10929.  
  10930. Difference between WCSMINY and WCSMAXY must not exceed 32000. 
  10931.  
  10932. Default: 0 
  10933.  
  10934.  
  10935. ΓòÉΓòÉΓòÉ 87.1.20. WIDTH ΓòÉΓòÉΓòÉ
  10936.  
  10937. Horizontal size of the graphic area, in millimeters. 
  10938.  
  10939. Read-only: Calculated by Presentation Manager 
  10940.  
  10941.  
  10942. ΓòÉΓòÉΓòÉ 87.1.21. X ΓòÉΓòÉΓòÉ
  10943.  
  10944. Horizontal position within the window, in dialog box units. 
  10945.  
  10946. Default: 0 
  10947.  
  10948.  
  10949. ΓòÉΓòÉΓòÉ 87.1.22. Y ΓòÉΓòÉΓòÉ
  10950.  
  10951. Vertical position within the window, in dialog box units. 
  10952.  
  10953. Default: 0 
  10954.  
  10955.  
  10956. ΓòÉΓòÉΓòÉ 87.1.23. ZORDER ΓòÉΓòÉΓòÉ
  10957.  
  10958. The apparent 3D position of the graphic object on the window. 
  10959.  
  10960. 0         Graphic box is drawn at the same priority as other objects in the 
  10961.           window 
  10962. -1        Graphic box is drawn below and is superimposed by any other objects 
  10963.           in the window. 
  10964. 1         Graphic box is drawn above and superimposes any other objects in the 
  10965.           window 
  10966.  
  10967. Default: 0 (Same priority) 
  10968.  
  10969.  
  10970. ΓòÉΓòÉΓòÉ 87.2. Actions ΓòÉΓòÉΓòÉ
  10971.  
  10972. BITMAP()                CLEAR() 
  10973. CLIPBOARD()             EDIT() 
  10974. METAFILE()              PRINT() 
  10975. REFRESH()               SELECT() 
  10976. STRINGRECT() 
  10977.  
  10978.  
  10979. ΓòÉΓòÉΓòÉ 87.2.1. BITMAP() ΓòÉΓòÉΓòÉ
  10980.  
  10981.                                                    ΓöîΓöÇ"BITMAP"ΓöÇΓöÉ
  10982. ΓöÇΓöÇBITMAP(filename,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10983.                       ΓööΓöÇsizexΓöÇΓöÿ     ΓööΓöÇsizeyΓöÇΓöÿ      ΓööΓöÇformatΓöÇΓöÇΓöÇΓöÿ
  10984.  
  10985. Saves the screen to a BITMAP sizex is the width in pels. sizey is the height in 
  10986. pels. format can be: 
  10987.  
  10988. "BITMAP" (default) 
  10989. "BITMAP11" 
  10990. "TIFF" 
  10991. "PCX" 
  10992. "GIF" 
  10993.  
  10994.  
  10995. ΓòÉΓòÉΓòÉ 87.2.2. CLEAR() ΓòÉΓòÉΓòÉ
  10996.  
  10997. ΓöÇΓöÇCLEAR()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10998.  
  10999. Clears the graphic window completely. 
  11000.  
  11001.  
  11002. ΓòÉΓòÉΓòÉ 87.2.3. CLIPBOARD() ΓòÉΓòÉΓòÉ
  11003.  
  11004. ΓöÇΓöÇCLIPBOARD()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11005.  
  11006. Saves the current graphic window to the clipboard, in metafile format. 
  11007.  
  11008.  
  11009. ΓòÉΓòÉΓòÉ 87.2.4. EDIT() ΓòÉΓòÉΓòÉ
  11010.  
  11011. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11012.  
  11013. Enables the programmer to query whether a clipboard operation is supported and, 
  11014. if it is, to carry it out. 
  11015.  
  11016. argument is a clipboard query or a clipboard operation. 
  11017.  
  11018. The following values for argument are used to check whether particular 
  11019. clipboard operations can be supported with the graphic area in its current 
  11020. state: 
  11021.  
  11022. "Querycut" Cut to clipboard 
  11023. "Querycopy" Copy to clipboard 
  11024. "Querypaste" Paste from clipboard 
  11025. "Queryclear" Clear clipboard. 
  11026.  
  11027. Where clipboard operations are supported, the following values for argument 
  11028. direct them to be carried out: 
  11029.  
  11030. "Cut"     Cut to clipboard 
  11031. "Copy"    Copy to clipboard 
  11032. "Paste"   Paste from clipboard 
  11033. "Clear"   Clear clipboard. 
  11034.  
  11035.  
  11036. ΓòÉΓòÉΓòÉ 87.2.5. METAFILE() ΓòÉΓòÉΓòÉ
  11037.  
  11038. ΓöÇΓöÇMETAFILE(filename)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11039.  
  11040. Saves the graphic screen to a metafile named filename. 
  11041.  
  11042.  
  11043. ΓòÉΓòÉΓòÉ 87.2.6. PRINT() ΓòÉΓòÉΓòÉ
  11044.  
  11045. ΓöÇΓöÇPRINT(Pt_name,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,c_area)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11046.                    ΓööΓöÇsizeX%,sizeY%,posX%,posY%ΓöÇΓöÿ
  11047.  
  11048. Prints the graphic screen. 
  11049.  
  11050. Pt_name   is a handle to a PRINTER object 
  11051.  
  11052. sizeX%    is the width of the printed image as a percentage of the page width 
  11053.  
  11054. sizeY%    is the height of the printed image as a percentage of the page height 
  11055.  
  11056. posX%     is the horizontal position of the printed image in relation to the 
  11057.           total width (100%) of the page, measured from the left-hand edge. 
  11058.  
  11059. posY%     is the vertical position of the printed image in relation to the 
  11060.           total height (100%) of the page, measured from the bottom edge. 
  11061.  
  11062. c_area    is set to 1 to indicate printing client area only, a value of 0 
  11063.           results in the window frame printing as well. 
  11064.  
  11065. Note:   If the  sizeX,sizeY,posX, and posY parameters are left blank, the 
  11066.         graphic box will be forced to a uniform aspect ratio on the printed 
  11067.         output. 
  11068.  
  11069.  
  11070. ΓòÉΓòÉΓòÉ 87.2.7. REFRESH() ΓòÉΓòÉΓòÉ
  11071.  
  11072. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11073.  
  11074. Refreshes the graphic window and repaints all objects on the current window. 
  11075.  
  11076.  
  11077. ΓòÉΓòÉΓòÉ 87.2.8. SELECT() ΓòÉΓòÉΓòÉ
  11078.  
  11079. ΓöÇΓöÇSELECT(vector,n,x,y,x_tolerance,y_tolerance)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11080.  
  11081. When the graphic area is selected, it is possible to find out if any objects 
  11082. were selected. This is done by calling Grabox'SELECT, where Grabox is the 
  11083. handle of the graphic object used in the OPEN GRAPHIC statement. The names of 
  11084. any objects found are returned into a vector. If no objects are found the 
  11085. number of entries is set to zero. 
  11086.  
  11087. Returns in vector a Z-ordered list of objects positioned within the specified 
  11088. tolerance of the X and Y coordinates. The X and Y coordinates themselves are 
  11089. retrieved from the system variables A.System.PositionX, and A.System.PositionY. 
  11090. These variables are in turn set by the SELECT event. n is the maximum number of 
  11091. objects that the system should report on as found in the specified area of the 
  11092. screen. 
  11093.  
  11094.  
  11095. ΓòÉΓòÉΓòÉ 87.2.9. STRINGRECT() ΓòÉΓòÉΓòÉ
  11096.  
  11097. ΓöÇΓöÇSTRINGRECT(result,string,multiline,alignment,font,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11098. ΓöÇΓöÇcellx,celly,0,angle,directionΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11099.  
  11100. Returns a vector containing the boundaries for text, (top right-hand corner and 
  11101. bottom left-hand corner). 
  11102.  
  11103. STRINGRECT is a call to a graphic box on a window which returns the amount of 
  11104. space a graphic text string will occupy when displayed in the graphic box. It 
  11105. is not possible to calculate this area directly because of the nonproportional 
  11106. font characters. 
  11107.  
  11108. STRINGRECT can also be used in Charts to calculate the text layout and prevent 
  11109. text overlap. 
  11110.  
  11111. The call is passed as parameters: all the attributes associated with the text 
  11112. STRING along with the name of an array for holding the returned coordinates of 
  11113. the rectangle enclosing the text. 
  11114.  
  11115. result    is the vector holding the coordinates of the enclosing rectangle. 
  11116.  
  11117. string    is the predefined vector holding the string definition and location. 
  11118.           (The same vector as used by the OPEN STRING statement.) 
  11119.  
  11120. multiline Method of multiline display 
  11121.  
  11122. alignment String alignment. 
  11123.  
  11124. font      Font used for the string characters 
  11125.  
  11126. cellx     X cell size 
  11127.  
  11128. celly     Y cell size 
  11129.  
  11130. 0         Place holder for a reserved parameter 
  11131.  
  11132. angle     Text angle 
  11133.  
  11134. direction Printing direction. 
  11135.  
  11136. For values of multiline, alignment, font, cellx, celly, angle, and direction, 
  11137. see the corresponding attributes of the STRING object. 
  11138.  
  11139.  
  11140. ΓòÉΓòÉΓòÉ 87.3. Events ΓòÉΓòÉΓòÉ
  11141.  
  11142. DESKTOP            DRAG 
  11143. OPEN               SELECT 
  11144.  
  11145. The example below shows how to use STRINGRECT to calculate the size of graphic 
  11146. text. 
  11147.  
  11148. OPEN WINDOW AppWin
  11149. OPEN GRAPHIC GraBox,AppWin
  11150. DEFINE TextVect[0]
  11151. INSERT TextVect[0] = 500 !  Insert x coordinate into variable.
  11152. INSERT TextVect[0] = 400 !  Insert y coordinate into variable.
  11153. INSERT TextVect[0] = "my text"
  11154.                          !  Insert text into variable.
  11155. CALL GraBox'STRINGRECT(
  11156.         TextBox,         !  Will hold returned values.
  11157.         TextVect,        !  Holds text and position.
  11158.         MultiLine,
  11159.         Alignment,
  11160.         Font,
  11161.         XSize,
  11162.         YSize,
  11163.         0,               !  Reserved.
  11164.         Angle,
  11165.         Direction)       !  The TextBox vector now contains
  11166.                          !  the coordinates of the enclosing
  11167.                          !  rectangle.
  11168.  
  11169. Graphic text strings can use the MULTILINE attribute to display text in a 
  11170. graphic box in two different ways, the returned values will depend on how 
  11171. MULTILINE was used: 
  11172.  
  11173. o When MULTILINE is set to 1, the system expects the contents of the text array 
  11174.   (TextVect in the example above) to contain the coordinate values followed by 
  11175.   one or more lines of text: 
  11176.  
  11177.    500 - The X coordinate 
  11178.  
  11179.    400 - The Y coordinate 
  11180.  
  11181.    "First  Text  Line" 
  11182.  
  11183.    "Second Text  Line" 
  11184.  
  11185.    "Third  Text  Line" 
  11186.  
  11187.    "Fourth Text  Line" 
  11188.  
  11189. o When MULTILINE is 1, STRINGRECT fills the TextBox array with eight values 
  11190.   corresponding to the four pairs of x,y coordinates of the corners of the 
  11191.   surrounding rectangle. 
  11192.  
  11193. o When MULTILINE is set to 0 then the STRING object can be used to display 
  11194.   multiple single line strings. In this case the system expects the TextVect 
  11195.   array to hold one or more triplets of elements consisting of an X coordinate, 
  11196.   a Y coordinate, and a single text string: 
  11197.  
  11198.    300 - The X coordinate 
  11199.  
  11200.    400 - The Y coordinate 
  11201.  
  11202.    "First line" - Text string of first triplet 
  11203.  
  11204.    600 - The X coordinate 
  11205.  
  11206.    800 - The Y coordinate 
  11207.  
  11208.    "Second line" - Text string of second triplet 
  11209.  
  11210. In this instance, STRINGRECT fills the TextBox array with elements in multiples 
  11211. of eight. Each set of eight elements corresponds to the text defined by one of 
  11212. the triplets in the TextVect array and supplies the x,y coordinates of the 
  11213. rectangle surrounding the text. 
  11214.  
  11215.  
  11216. ΓòÉΓòÉΓòÉ 87.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  11217.  
  11218. Signaled when the graphic is moved, sized, or copied. A.System.Operation is set 
  11219. to "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the control. 
  11220.  
  11221.  
  11222. ΓòÉΓòÉΓòÉ 87.3.2. DRAG ΓòÉΓòÉΓòÉ
  11223.  
  11224. Dragging is finished. 
  11225.  
  11226.  
  11227. ΓòÉΓòÉΓòÉ 87.3.3. OPEN ΓòÉΓòÉΓòÉ
  11228.  
  11229. Mouse button 1 is clicked twice. 
  11230.  
  11231.  
  11232. ΓòÉΓòÉΓòÉ 87.3.4. SELECT ΓòÉΓòÉΓòÉ
  11233.  
  11234. Signaled when selection is made. A.System.Object is set to named graphic area 
  11235. and A.System.PositionX and A.System.PositionY are set to the coordinates of the 
  11236. point selected.  Coordinates are in world coordinate scale units. 
  11237.  
  11238.  
  11239. ΓòÉΓòÉΓòÉ 87.4. Examples ΓòÉΓòÉΓòÉ
  11240.  
  11241. /*-----------------------------------------------------*/
  11242. /* First set up the window that will hold the graphics.*/
  11243. /* This will be used to open the graphic box..         */
  11244. /*-----------------------------------------------------*/
  11245. OPEN WINDOW Win,
  11246.  SIZEX     = 102,
  11247.  SIZEY     = 102,
  11248.  TITLE     = "Simple graphics..."
  11249.  
  11250. /*-----------------------------------------------------*/
  11251. /* Now open the graphic box using the window as the    */
  11252. /* parent. The size and position are all set on Open,  */
  11253. /* and can be modified later if needed.                */
  11254. /*-----------------------------------------------------*/
  11255. OPEN GRAPHIC Gra, Win,
  11256.  X = 1, Y = 1,
  11257.  SIZEX   = 100, SIZEY = 100,
  11258.  BGCOLOR = 5, DRAGABLE = 1,
  11259.  WCSMAXX = 500,
  11260.  WCSMAXY = 500,
  11261.  WCSMINX = 0,
  11262.  WCSMINY = 0
  11263.  
  11264. /*-----------------------------------------------------*/
  11265. /* Finally create a Define to put the primative(s)     */
  11266. /* onto the Graphic. Many Primatives can be added to   */
  11267. /* a this define. They would then form a single group. */
  11268. /* This define will be Dragable, so all primatives on  */
  11269. /* it will be dragable.                                */
  11270. /*-----------------------------------------------------*/
  11271. OPEN DEFINE Def1, Gra,
  11272.  DRAGABLE = 1
  11273.  
  11274. /*-----------------------------------------------------*/
  11275. /* For examples of opening primatives onto this Define */
  11276. /* see the examples for the individual Primatives.     */
  11277. /*-----------------------------------------------------*/
  11278.  
  11279.   !
  11280.   ! Open a DEFINE on which to place the
  11281.   ! various sample graphic objects.
  11282.   !
  11283.   OPEN DEFINE Sample1, Sample,
  11284.    Dragable = 0
  11285. END
  11286.  
  11287. Examples source library: 
  11288.  
  11289.  
  11290. ΓòÉΓòÉΓòÉ 87.5. More about GRAPHIC ΓòÉΓòÉΓòÉ
  11291.  
  11292. o GRAPHIC is used to open a graphic box in which to display something: 
  11293.  
  11294.     OPEN GRAPHIC {box}, {window}, {savedspec}, {attributes...}
  11295.  
  11296. o All graphic primitives to be displayed must be part of a containing object, 
  11297.   which is created using the DEFINE object: 
  11298.  
  11299.     OPEN DEFINE {definition}, {box}, {attributes...}
  11300.  
  11301.   The graphic primitives themselves, such as line or circle, are then attached: 
  11302.  
  11303.     OPEN LINE {line}, {definition}, {attributes...}
  11304.  
  11305.   To build up complex objects, include previously defined objects in a 
  11306.   composite object: 
  11307.  
  11308.     OPEN DEFINE {bigdefine}, {box}, {attributes...}
  11309.     OPEN OBJECT {object}, {bigdefine},
  11310.                   DEFINE = {definition}, {attributes...}
  11311.  
  11312.   The graphic can now be handled as a whole, or each primitive part can be 
  11313.   handled separately. 
  11314.  
  11315.   To summarize, each primitive has a parent defined for the parent box. The 
  11316.   parent box in turn has a parent window. 
  11317.  
  11318. o The GRAPHIC object cannot be cloned. 
  11319.  
  11320.  
  11321. ΓòÉΓòÉΓòÉ 88. GROUP ΓòÉΓòÉΓòÉ
  11322.  
  11323. The GROUP object class creates an instance of a frame, with or without a title. 
  11324.  
  11325. Parent: WINDOW 
  11326.  
  11327. Attributes 
  11328.  
  11329. Actions 
  11330.  
  11331. Events 
  11332.  
  11333. Examples 
  11334.  
  11335. More about GROUP 
  11336.  
  11337.  
  11338. ΓòÉΓòÉΓòÉ 88.1. Attributes ΓòÉΓòÉΓòÉ
  11339.  
  11340. EXPRESSION            HANDLES 
  11341. HELP                  ORIGIN 
  11342. SIZEX                 SIZEY 
  11343. TEXT                  VISIBLE 
  11344. X                     Y 
  11345.  
  11346.  
  11347. ΓòÉΓòÉΓòÉ 88.1.1. EXPRESSION ΓòÉΓòÉΓòÉ
  11348.  
  11349. Pointer to a variable, the contents of which are displayed with the frame. 
  11350.  
  11351. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  11352.  
  11353. Default: "" 
  11354.  
  11355.  
  11356. ΓòÉΓòÉΓòÉ 88.1.2. HANDLES ΓòÉΓòÉΓòÉ
  11357.  
  11358. Whether sizing handles are attached to the group box to support moving, sizing, 
  11359. and copying operations. These direct manipulation techniques follow the CUA 
  11360. guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  11361.  
  11362. 0         Handles are not displayed 
  11363. 1         Handles are displayed 
  11364.  
  11365. Default: 0 (No handles) 
  11366.  
  11367.  
  11368. ΓòÉΓòÉΓòÉ 88.1.3. HELP ΓòÉΓòÉΓòÉ
  11369.  
  11370. Resource identifier (res ID) number of the full help text for this object. 
  11371.  
  11372. Default: 0 
  11373.  
  11374.  
  11375. ΓòÉΓòÉΓòÉ 88.1.4. ORIGIN ΓòÉΓòÉΓòÉ
  11376.  
  11377. The corner of the enclosing window to be taken as the origin.  The position of 
  11378. the bottom left corner of the object is measured from this point. 
  11379.  
  11380. "TL"      Top left 
  11381. "TR"      Top right 
  11382. "BL"      Bottom left 
  11383. "BR"      Bottom right 
  11384.  
  11385. Default: "BL" (Bottom left) 
  11386.  
  11387. Note:   If the vertical position is above the origin, the value is positive. If 
  11388.         the vertical position is below the origin, the value is negative. If 
  11389.         the horizontal position is right of the origin, the value is positive. 
  11390.         If the horizontal position is left of the origin, the value is 
  11391.         negative. 
  11392.  
  11393.  
  11394. ΓòÉΓòÉΓòÉ 88.1.5. SIZEX ΓòÉΓòÉΓòÉ
  11395.  
  11396. Width, in dialog box units. 
  11397.  
  11398. Default: 0 
  11399.  
  11400.  
  11401. ΓòÉΓòÉΓòÉ 88.1.6. SIZEY ΓòÉΓòÉΓòÉ
  11402.  
  11403. Height, in dialog box units. 
  11404.  
  11405. Default: 0 
  11406.  
  11407.  
  11408. ΓòÉΓòÉΓòÉ 88.1.7. TEXT ΓòÉΓòÉΓòÉ
  11409.  
  11410. Text string to appear as title in the frame of the group box. 
  11411.  
  11412. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  11413.  
  11414. Default: "" 
  11415.  
  11416.  
  11417. ΓòÉΓòÉΓòÉ 88.1.8. VISIBLE ΓòÉΓòÉΓòÉ
  11418.  
  11419. Whether the object is displayed: 
  11420.  
  11421. 0         Object not displayed 
  11422. 1         Object displayed 
  11423.  
  11424. Default: 1 (Displayed) 
  11425.  
  11426.  
  11427. ΓòÉΓòÉΓòÉ 88.1.9. X ΓòÉΓòÉΓòÉ
  11428.  
  11429. Horizontal position within the window, in dialog box units. 
  11430.  
  11431. Default: 0 
  11432.  
  11433.  
  11434. ΓòÉΓòÉΓòÉ 88.1.10. Y ΓòÉΓòÉΓòÉ
  11435.  
  11436. Vertical position within the window, in dialog box units. 
  11437.  
  11438. Default: 0 
  11439.  
  11440.  
  11441. ΓòÉΓòÉΓòÉ 88.2. Actions ΓòÉΓòÉΓòÉ
  11442.  
  11443. EDIT()               REFRESH() 
  11444.  
  11445.  
  11446. ΓòÉΓòÉΓòÉ 88.2.1. EDIT() ΓòÉΓòÉΓòÉ
  11447.  
  11448. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11449.  
  11450. Enables the programmer to query whether a clipboard operation is supported and, 
  11451. if it is, to carry it out. 
  11452.  
  11453. argument is a clipboard query or a clipboard operation. 
  11454.  
  11455. The following values for argument are used to check whether particular 
  11456. clipboard operations can be supported with the group box in its current state: 
  11457.  
  11458. "Querycut" Cut to clipboard 
  11459. "Querycopy" Copy to clipboard 
  11460. "Querypaste" Paste from clipboard 
  11461. "Queryclear" Clear clipboard. 
  11462.  
  11463. Where clipboard operations are supported, the following values for argument 
  11464. direct them to be carried out: 
  11465.  
  11466. "Cut"     Cut to clipboard 
  11467. "Copy"    Copy to clipboard 
  11468. "Paste"   Paste from clipboard 
  11469. "Clear"   Clear clipboard. 
  11470.  
  11471.  
  11472. ΓòÉΓòÉΓòÉ 88.2.2. REFRESH() ΓòÉΓòÉΓòÉ
  11473.  
  11474. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11475.  
  11476. Forces repainting of the group object on screen. 
  11477.  
  11478.  
  11479. ΓòÉΓòÉΓòÉ 88.3. Events ΓòÉΓòÉΓòÉ
  11480.  
  11481. DESKTOP 
  11482.  
  11483.  
  11484. ΓòÉΓòÉΓòÉ 88.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  11485.  
  11486. Signaled when the group box is moved, sized, or copied. A.System.Operation is 
  11487. set to "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the 
  11488. control. 
  11489.  
  11490.  
  11491. ΓòÉΓòÉΓòÉ 88.4. Examples ΓòÉΓòÉΓòÉ
  11492.  
  11493. !
  11494. ! Open a GROUP box on a window
  11495. !
  11496. PROCEDURE open_group(pWindow)
  11497. DO
  11498.   DECLARE POINTER pWindow
  11499.  
  11500.   OPEN group group1, ?pWindow,
  11501.    X = 20,
  11502.    Y = 50,
  11503.    SIZEX = 150,
  11504.    SIZEY = 95,
  11505.    TEXT = 'Group control'
  11506. END
  11507.  
  11508. Examples source library: 
  11509.  
  11510.  
  11511. ΓòÉΓòÉΓòÉ 88.5. More about GROUP ΓòÉΓòÉΓòÉ
  11512.  
  11513. o The GROUP object cannot be cloned. 
  11514.  
  11515.  
  11516. ΓòÉΓòÉΓòÉ 89. HELP ΓòÉΓòÉΓòÉ
  11517.  
  11518. The HELP object allows applications to use the IBM Help Manager Information 
  11519. Presentation Facility (IPF) to display help information to users. 
  11520.  
  11521. Attributes 
  11522.  
  11523. Actions 
  11524.  
  11525. Events 
  11526.  
  11527. More about HELP 
  11528.  
  11529. See also: OS/2 Information Presentation Facility Guide and Reference. 
  11530.  
  11531.  
  11532. ΓòÉΓòÉΓòÉ 89.1. Attributes ΓòÉΓòÉΓòÉ
  11533.  
  11534. HELPFORHELP            HYPERTEXTID 
  11535. KEYS                   LIBNAME 
  11536. WINTITLE 
  11537.  
  11538.  
  11539. ΓòÉΓòÉΓòÉ 89.1.1. HELPFORHELP ΓòÉΓòÉΓòÉ
  11540.  
  11541. Panel to display when Using help... is requested on the IPF pull-down 
  11542.  
  11543. Default: IPF supplies its own default. 
  11544.  
  11545.  
  11546. ΓòÉΓòÉΓòÉ 89.1.2. HYPERTEXTID ΓòÉΓòÉΓòÉ
  11547.  
  11548. Resource identifier (res ID) number of a hypertext field selected by the user. 
  11549.  
  11550. Can be queried but not modified. 
  11551.  
  11552. Default: None 
  11553.  
  11554.  
  11555. ΓòÉΓòÉΓòÉ 89.1.3. KEYS ΓòÉΓòÉΓòÉ
  11556.  
  11557. Resource identifier (res ID) number of the Keys help... text. 
  11558.  
  11559. Default: IPF supplies its own default. 
  11560.  
  11561.  
  11562. ΓòÉΓòÉΓòÉ 89.1.4. LIBNAME ΓòÉΓòÉΓòÉ
  11563.  
  11564. Name of the help text (.HLP) library. The file must be located in a directory 
  11565. name in the HELP variable defined by CONFIG.SYS. 
  11566.  
  11567. Default: No default 
  11568.  
  11569.  
  11570. ΓòÉΓòÉΓòÉ 89.1.5. WINTITLE ΓòÉΓòÉΓòÉ
  11571.  
  11572. Title for the help window. 
  11573.  
  11574. A string. 
  11575.  
  11576. Default: IPF supplies its own default. 
  11577.  
  11578.  
  11579. ΓòÉΓòÉΓòÉ 89.2. Actions ΓòÉΓòÉΓòÉ
  11580.  
  11581. CONTENTS()            DISMISS() 
  11582. DISPLAY()             INDEX() 
  11583.  
  11584.  
  11585. ΓòÉΓòÉΓòÉ 89.2.1. CONTENTS() ΓòÉΓòÉΓòÉ
  11586.  
  11587. ΓöÇΓöÇCONTENTS()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11588.  
  11589. Requests that the IPF display the help contents text. 
  11590.  
  11591.  
  11592. ΓòÉΓòÉΓòÉ 89.2.2. DISMISS() ΓòÉΓòÉΓòÉ
  11593.  
  11594. ΓöÇΓöÇDISMISS()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11595.  
  11596. Requests that the IPF remove the help associated with the last active object. 
  11597.  
  11598.  
  11599. ΓòÉΓòÉΓòÉ 89.2.3. DISPLAY() ΓòÉΓòÉΓòÉ
  11600.  
  11601. ΓöÇΓöÇDISPLAY(variable)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11602.  
  11603. Requests that the IPF display the help whose resource identifier (res ID) is 
  11604. held in variable. 
  11605.  
  11606.  
  11607. ΓòÉΓòÉΓòÉ 89.2.4. INDEX() ΓòÉΓòÉΓòÉ
  11608.  
  11609. ΓöÇΓöÇINDEX()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11610.  
  11611. Requests that the IPF display the help index. 
  11612.  
  11613.  
  11614. ΓòÉΓòÉΓòÉ 89.3. Events ΓòÉΓòÉΓòÉ
  11615.  
  11616. HELP              INFORM 
  11617.  
  11618.  
  11619. ΓòÉΓòÉΓòÉ 89.3.1. HELP ΓòÉΓòÉΓòÉ
  11620.  
  11621. Indicates that the Information Presentation Facility could not find help text 
  11622. for one of the application windows or boxes. 
  11623.  
  11624. You can now query system variables and the active object to find out the 
  11625. context of the help request, then make the help object display help text by 
  11626. calling the DISPLAY action. 
  11627.  
  11628.  
  11629. ΓòÉΓòÉΓòÉ 89.3.2. INFORM ΓòÉΓòÉΓòÉ
  11630.  
  11631. Indicates that the end user selected a hypertext field marked with the INFORM 
  11632. tag. 
  11633.  
  11634. You can now query the HYPERTEXTID attribute to find the res ID of the selected 
  11635. field, and take suitable action. 
  11636.  
  11637.  
  11638. ΓòÉΓòÉΓòÉ 89.4. More about HELP ΓòÉΓòÉΓòÉ
  11639.  
  11640. o The Information Presentation Facility allows you to build files of help 
  11641.   texts. Windows and other objects have HELP attributes that contain the res ID 
  11642.   numbers of associated help texts. The HELP object passes requests to display 
  11643.   help through to the IPF. 
  11644.  
  11645. o Help can be displayed for the following items: 
  11646.  
  11647.    - An application window 
  11648.  
  11649.    - A specific item in a window, such as a selection choice or an entry field 
  11650.  
  11651.    - One or more words in a help window (known as hypertext fields). 
  11652.  
  11653. o An instance of the HELP object must be opened before windows or controls with 
  11654.   the HELP attribute set (the HELP object can then construct the help tables as 
  11655.   the other objects are opened). 
  11656.  
  11657.  
  11658. ΓòÉΓòÉΓòÉ 90. HLLAPI ΓòÉΓòÉΓòÉ
  11659.  
  11660. The HLLAPI object allows Visualizer to interact with a host using 3270 terminal 
  11661. emulation or 5250 workstation features. 
  11662.  
  11663. Attributes 
  11664.  
  11665. Actions 
  11666.  
  11667. Events: None. 
  11668.  
  11669. More about HLLAPI 
  11670.  
  11671.  
  11672. ΓòÉΓòÉΓòÉ 90.1. Attributes ΓòÉΓòÉΓòÉ
  11673.  
  11674. CODE                    CURSORPOS 
  11675. WINDOWSTATUS            SESSION 
  11676.  
  11677.  
  11678. ΓòÉΓòÉΓòÉ 90.1.1. CODE ΓòÉΓòÉΓòÉ
  11679.  
  11680. Most recent HLLAPI or internal error code. 
  11681.  
  11682.  
  11683. ΓòÉΓòÉΓòÉ 90.1.2. CURSORPOS ΓòÉΓòÉΓòÉ
  11684.  
  11685. When queried, this attribute performs the HLLAPI QUERY CURSOR LOCATION function 
  11686. on the connected presentation space. This returns the cursors current 
  11687. positional value. 
  11688.  
  11689. When modified, this attribute performs the HLLAPI SET CURSOR function. This 
  11690. places the cursor at the specified positional value in the connected 
  11691. presentation space. 
  11692.  
  11693. Use the CONVERTPOS action to convert positional values to row and column values 
  11694. and vice versa. 
  11695.  
  11696.  
  11697. ΓòÉΓòÉΓòÉ 90.1.3. WINDOWSTATUS ΓòÉΓòÉΓòÉ
  11698.  
  11699. This attribute performs the HLLAPI PM WINDOW STATUS function. 
  11700.  
  11701. When queried, the PM window state of the currently connected presentation space 
  11702. is returned as a string of words consisting of VISIBLE or INVISIBLE, ACTIVATED 
  11703. or DEACTIVATED, or MINIMISED or MAXIMISED. 
  11704.  
  11705. When modified, the state of the PM window is changed according to the words 
  11706. contained in the string.  The string of words may consist of any of the above 
  11707. words plus any of RESTORE, ZORDER=TOP|BOTTOM, MOVE=xpos,ypos, or 
  11708. SIZE=xsize,ysize. 
  11709.  
  11710. Note that there are restrictions on which options may be combined within one 
  11711. command string. (See IBM Extended Services for OS/2 EHLLAPI Programming 
  11712. Interface, S04G-1027, for more information.) 
  11713.  
  11714.  
  11715. ΓòÉΓòÉΓòÉ 90.1.4. SESSION ΓòÉΓòÉΓòÉ
  11716.  
  11717. When queried this returns the short session name of the currently connected 
  11718. presentation space. 
  11719.  
  11720. When modified, any connected presentation space is disconnected and the 
  11721. application is connected to the short session name specified. 
  11722.  
  11723.  
  11724. ΓòÉΓòÉΓòÉ 90.2. Actions ΓòÉΓòÉΓòÉ
  11725.  
  11726. CONNECT()                 DISCONNECT() 
  11727. SESSIONPARMS()            WAIT() 
  11728. PAUSE()                   RELEASE() 
  11729. RESERVE()                 STATUS() 
  11730. SESSIONS()                SYSTEM() 
  11731. RESETSYSTEM()             COPYOIA() 
  11732. SEARCHPS()                SEARCHFIELD() 
  11733. FIELDLENGTH()             FIELDPOS() 
  11734. FIELDATTR()               CONVERTPOS() 
  11735. SENDKEY()                 COPYPS() 
  11736. PSTOSTRING()              STRINGTOPS() 
  11737. FIELDTOSTR()              STRTOFIELD() 
  11738. SENDFILE()                RECEIVEFILE() 
  11739.  
  11740.  
  11741. ΓòÉΓòÉΓòÉ 90.2.1. CONNECT() ΓòÉΓòÉΓòÉ
  11742.  
  11743. ΓöÇΓöÇCONNECT(session)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11744.  
  11745. This action performs the HLLAPI CONNECT PRESENTATION SPACE function. 
  11746.  
  11747. This establishes a connection between the application and the specified host 
  11748. presentation space. session is the single character short name of the session 
  11749. to be connected. 
  11750.  
  11751.  
  11752. ΓòÉΓòÉΓòÉ 90.2.2. DISCONNECT() ΓòÉΓòÉΓòÉ
  11753.  
  11754. ΓöÇΓöÇDISCONNECT()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11755.  
  11756. This action performs the HLLAPI DISCONNECT PRESENTATION SPACE function. 
  11757.  
  11758. This disconnects the application from the currently connected host presentation 
  11759. space. 
  11760.  
  11761.  
  11762. ΓòÉΓòÉΓòÉ 90.2.3. SESSIONPARMS() ΓòÉΓòÉΓòÉ
  11763.  
  11764. ΓöÇΓöÇSESSIONPARMS(string)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11765.  
  11766. This action performs the HLLAPI SET SESSION PARAMETERS function. 
  11767.  
  11768. This allows you to change certain session options from their default values. 
  11769. string should contain the desired values of the changed options separated by 
  11770. commas or blanks. (See IBM Extended Services for OS/2 EHLLAPI Programming 
  11771. Interface, S04G-1027, for more information.) 
  11772.  
  11773.  
  11774. ΓòÉΓòÉΓòÉ 90.2.4. WAIT() ΓòÉΓòÉΓòÉ
  11775.  
  11776. ΓöÇΓöÇWAIT()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11777.  
  11778. This action performs the HLLAPI WAIT function. 
  11779.  
  11780. This checks the status of the currently connected presentation space and waits 
  11781. according to the setting of TWAIT, NWAIT or LWAIT session options. These 
  11782. options may be changed by the SESSIONPARMS action. 
  11783.  
  11784.  
  11785. ΓòÉΓòÉΓòÉ 90.2.5. PAUSE() ΓòÉΓòÉΓòÉ
  11786.  
  11787. ΓöÇΓöÇPAUSE(num)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11788.  
  11789. This action performs the HLLAPI PAUSE function. 
  11790.  
  11791. This will cause a timed pause of num 1/2 seconds. 
  11792.  
  11793.  
  11794. ΓòÉΓòÉΓòÉ 90.2.6. RELEASE() ΓòÉΓòÉΓòÉ
  11795.  
  11796. ΓöÇΓöÇRELEASE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11797.  
  11798. This action performs the HLLAPI RELEASE function. 
  11799.  
  11800. This function unlocks the currently connected presentation space. 
  11801.  
  11802.  
  11803. ΓòÉΓòÉΓòÉ 90.2.7. RESERVE() ΓòÉΓòÉΓòÉ
  11804.  
  11805. ΓöÇΓöÇRESERVE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11806.  
  11807. This action performs the HLLAPI RESERVE function. 
  11808.  
  11809. This function locks the currently connected presentation space to block input 
  11810. from the user. 
  11811.  
  11812.  
  11813. ΓòÉΓòÉΓòÉ 90.2.8. STATUS() ΓòÉΓòÉΓòÉ
  11814.  
  11815. ΓöÇΓöÇSTATUS(vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11816.  
  11817. This action performs the HLLAPI QUERY SESSION STATUS function. 
  11818.  
  11819. This is used to obtain session specific information for the currently connected 
  11820. session. On return, vector will contain: 
  11821.  
  11822.  1. Short name of session. 
  11823.  2. Long name of session. 
  11824.  3. Type of session. 
  11825.  4. Characteristics of session. 
  11826.  5. Number of rows for session. 
  11827.  6. Number of columns for session. 
  11828.  7. Host code page for session. 
  11829.  
  11830.  
  11831. ΓòÉΓòÉΓòÉ 90.2.9. SESSIONS() ΓòÉΓòÉΓòÉ
  11832.  
  11833. ΓöÇΓöÇSESSIONS(vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11834.  
  11835. This action performs the HLLAPI QUERY SESSIONS function. 
  11836.  
  11837. This is used to obtain information for all configured sessions. On return, 
  11838. vector will contain the following for each configured session: 
  11839.  
  11840.  1. Short name of session. 
  11841.  2. Long name of session. 
  11842.  3. Type of session. 
  11843.  4. Size of presentation space. 
  11844.  
  11845.  
  11846. ΓòÉΓòÉΓòÉ 90.2.10. SYSTEM() ΓòÉΓòÉΓòÉ
  11847.  
  11848. ΓöÇΓöÇSYSTEM(vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11849.  
  11850. This action performs the HLLAPI QUERY SYSTEM function. 
  11851.  
  11852. This is used to obtain system related information. On return, vector will 
  11853. contain: 
  11854.  
  11855.  1. HLLAPI version number. 
  11856.  2. HLLAPI level number. 
  11857.  3. HLLAPI release date. 
  11858.  4. LIM version number. 
  11859.  5. LIM level number. 
  11860.  6. Hardware base. 
  11861.  7. Control program type. 
  11862.  8. Control program sequence number. 
  11863.  9. Control program version number. 
  11864. 10. PC session name. 
  11865. 11. Extended error code 1. 
  11866. 12. Extended error code 2. 
  11867. 13. Hardware base number. 
  11868. 14. PC country code. 
  11869. 15. PC display type. 
  11870.  
  11871.  
  11872. ΓòÉΓòÉΓòÉ 90.2.11. RESETSYSTEM() ΓòÉΓòÉΓòÉ
  11873.  
  11874. ΓöÇΓöÇRESETSYSTEM()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11875.  
  11876. This action performs the HLLAPI RESET SYSTEM function. 
  11877.  
  11878. This resets the system parameters (set with the SESSIONPARMS action) to the 
  11879. default state and disconnects from any connected presentation space. 
  11880.  
  11881.  
  11882. ΓòÉΓòÉΓòÉ 90.2.12. COPYOIA() ΓòÉΓòÉΓòÉ
  11883.  
  11884. ΓöÇΓöÇCOPYOIA()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11885.  
  11886. This action performs the HLLAPI COPY OIA function. 
  11887.  
  11888. This returns a string containing the Operator Information Area for the 
  11889. currently connected presentation space. 
  11890.  
  11891.  
  11892. ΓòÉΓòÉΓòÉ 90.2.13. SEARCHPS() ΓòÉΓòÉΓòÉ
  11893.  
  11894. ΓöÇΓöÇSEARCHPS(string,posn)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11895.  
  11896. This action performs the HLLAPI SEARCH PRESENTATION SPACE function. 
  11897.  
  11898. This searches the currently connected presentation space for the string string 
  11899. starting at position posn. The return value contains the position where string 
  11900. was found or zero if string was not found. 
  11901.  
  11902.  
  11903. ΓòÉΓòÉΓòÉ 90.2.14. SEARCHFIELD() ΓòÉΓòÉΓòÉ
  11904.  
  11905. ΓöÇΓöÇSEARCHFIELD(string,posn)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11906.  
  11907. This action performs the HLLAPI SEARCH FIELD function. 
  11908.  
  11909. This searches the currently connected presentation space for a field containing 
  11910. the string string, starting at position posn. The return value contains the 
  11911. position where string was found or zero if string was not found. 
  11912.  
  11913.  
  11914. ΓòÉΓòÉΓòÉ 90.2.15. FIELDLENGTH() ΓòÉΓòÉΓòÉ
  11915.  
  11916. ΓöÇΓöÇFIELDLENGTH(option,posn)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11917.  
  11918. This action performs the HLLAPI FIND FIELD LENGTH function. 
  11919.  
  11920. This finds the length of the specified field in the currently connected 
  11921. presentation space. option and posn are use to specify the field of interest. 
  11922.  
  11923. Valid values for option are: 
  11924.  
  11925. '  ' or 'T ' Current field (the field that the cursor is in) 
  11926.  
  11927. 'N '      Next field, either protected or unprotected. 
  11928.  
  11929. 'P '      Previous field, either protected or unprotected. 
  11930.  
  11931. 'NP'      Next protected field. 
  11932.  
  11933. 'NU'      Next unprotected field. 
  11934.  
  11935. 'PP'      Previous protected field. 
  11936.  
  11937. 'PU'      Previous unprotected field. 
  11938.  
  11939. The return value contains the length of the field or zero if the field was not 
  11940. found. 
  11941.  
  11942.  
  11943. ΓòÉΓòÉΓòÉ 90.2.16. FIELDPOS() ΓòÉΓòÉΓòÉ
  11944.  
  11945. ΓöÇΓöÇFIELDPOS(option,posn)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11946.  
  11947. This action performs the HLLAPI FIND FIELD POSITION function. 
  11948.  
  11949. This finds the start position of the specified field in the currently connected 
  11950. presentation space. option and posn are use to specify the field of interest. 
  11951.  
  11952. Valid values for option are: 
  11953.  
  11954. '  ' or 'T ' Current field (the field that the cursor is in) 
  11955.  
  11956. 'N '      Next field, either protected or unprotected. 
  11957.  
  11958. 'P '      Previous field, either protected or unprotected. 
  11959.  
  11960. 'NP'      Next protected field. 
  11961.  
  11962. 'NU'      Next unprotected field. 
  11963.  
  11964. 'PP'      Previous protected field. 
  11965.  
  11966. 'PU'      Previous unprotected field. 
  11967.  
  11968. The return value contains the start position of the field or zero if the field 
  11969. was not found. 
  11970.  
  11971.  
  11972. ΓòÉΓòÉΓòÉ 90.2.17. FIELDATTR() ΓòÉΓòÉΓòÉ
  11973.  
  11974. ΓöÇΓöÇFIELDATTR(posn)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11975.  
  11976. This action performs the HLLAPI QUERY FIELD ATTRIBUTE function. 
  11977.  
  11978. This returns the attribute value of the field located at position posn in the 
  11979. currently connected presentation space. 
  11980.  
  11981.  
  11982. ΓòÉΓòÉΓòÉ 90.2.18. CONVERTPOS() ΓòÉΓòÉΓòÉ
  11983.  
  11984. ΓöÇΓöÇCONVERTPOS(posn,column,row)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11985.  
  11986. This action performs the HLLAPI CONVERT POSITION function. 
  11987.  
  11988. This will convert the positional value posn to column/row values or vice versa 
  11989. for the currently connected presentation space. If posn is nonzero, it is 
  11990. converted to column/row values returned in column and row. If posn is zero, 
  11991. column/row values contained in column and row are converted to a positional 
  11992. value returned in posn. 
  11993.  
  11994.  
  11995. ΓòÉΓòÉΓòÉ 90.2.19. SENDKEY() ΓòÉΓòÉΓòÉ
  11996.  
  11997. ΓöÇΓöÇSENDKEY(string)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  11998.  
  11999. This action performs the HLLAPI SEND KEY function. 
  12000.  
  12001. This sends the keys as defined by the contents of string to the currently 
  12002. connected presentation space. 
  12003.  
  12004.  
  12005. ΓòÉΓòÉΓòÉ 90.2.20. COPYPS() ΓòÉΓòÉΓòÉ
  12006.  
  12007. ΓöÇΓöÇCOPYPS(vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12008.  
  12009. This action performs the HLLAPI COPY PRESENTATION SPACE function. 
  12010.  
  12011. This copies the entire contents of the currently connected presentation space, 
  12012. line by line, into vector. 
  12013.  
  12014.  
  12015. ΓòÉΓòÉΓòÉ 90.2.21. PSTOSTRING() ΓòÉΓòÉΓòÉ
  12016.  
  12017. ΓöÇΓöÇPSTOSTRING(posn,length)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12018.  
  12019. This action performs the HLLAPI COPY PRESENTATION SPACE TO STRING function. 
  12020.  
  12021. This returns the contents of the currently connected presentation space as a 
  12022. string starting at position posn for length length. Note that the maximum 
  12023. length of the string returned is 255 characters. 
  12024.  
  12025.  
  12026. ΓòÉΓòÉΓòÉ 90.2.22. STRINGTOPS() ΓòÉΓòÉΓòÉ
  12027.  
  12028. ΓöÇΓöÇSTRINGTOPS(string,posn)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12029.  
  12030. This action performs the HLLAPI COPY STRING TO PRESENTATION SPACE function. 
  12031.  
  12032. This copies the string string into the currently connected presentation space 
  12033. at position posn. 
  12034.  
  12035.  
  12036. ΓòÉΓòÉΓòÉ 90.2.23. FIELDTOSTR() ΓòÉΓòÉΓòÉ
  12037.  
  12038. ΓöÇΓöÇFIELDTOSTR(posn,length)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12039.  
  12040. This action performs the HLLAPI COPY FIELD TO STRING function. 
  12041.  
  12042. This returns the contents of the field starting at position posn for length 
  12043. length as a string. Note that the maximum length of the string returned is 255 
  12044. characters. 
  12045.  
  12046.  
  12047. ΓòÉΓòÉΓòÉ 90.2.24. STRTOFIELD() ΓòÉΓòÉΓòÉ
  12048.  
  12049. ΓöÇΓöÇSTRTOFIELD(string,posn)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12050.  
  12051. This action performs the HLLAPI COPY STRING TO FIELD function. 
  12052.  
  12053. This copies the string string into the field at position posn. 
  12054.  
  12055.  
  12056. ΓòÉΓòÉΓòÉ 90.2.25. SENDFILE() ΓòÉΓòÉΓòÉ
  12057.  
  12058. ΓöÇΓöÇSENDFILE(string)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12059.  
  12060. This action performs the HLLAPI SEND FILE function. 
  12061.  
  12062. This executes the SEND.EXE program as if it had been entered at the command 
  12063. line. The contents of string must be an acceptable syntax for the send command. 
  12064. The return value is the return code from the send call. 
  12065.  
  12066.  
  12067. ΓòÉΓòÉΓòÉ 90.2.26. RECEIVEFILE() ΓòÉΓòÉΓòÉ
  12068.  
  12069. ΓöÇΓöÇRECEIVEFILE(string)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12070.  
  12071. This action performs the HLLAPI RECEIVE FILE function. 
  12072.  
  12073. This executes the RECEIVE.EXE program as if it had been entered at the command 
  12074. line. The contents of string must be an acceptable syntax for the receive 
  12075. command. The return value is the return code from the receive call. 
  12076.  
  12077.  
  12078. ΓòÉΓòÉΓòÉ 90.3. More about HLLAPI ΓòÉΓòÉΓòÉ
  12079.  
  12080. o See the HLLAPI sample in the Development Samples folder. 
  12081.  
  12082.  
  12083. ΓòÉΓòÉΓòÉ 91. IBMAPPLICATN ΓòÉΓòÉΓòÉ
  12084.  
  12085. The Application object provides a way for one application to start another 
  12086. application and communicate with it. 
  12087.  
  12088. Attributes 
  12089.  
  12090. Actions 
  12091.  
  12092. Events: None. 
  12093.  
  12094. Examples 
  12095.  
  12096. More about 
  12097.  
  12098.  
  12099. ΓòÉΓòÉΓòÉ 91.1. Attributes ΓòÉΓòÉΓòÉ
  12100.  
  12101. CODE                  DIALOG 
  12102. IDENTIFIER            NAME 
  12103. REASON 
  12104.  
  12105.  
  12106. ΓòÉΓòÉΓòÉ 91.1.1. CODE ΓòÉΓòÉΓòÉ
  12107.  
  12108. Internal error code for the most recent operation. Read-only. 
  12109.  
  12110. Default: None 
  12111.  
  12112.  
  12113. ΓòÉΓòÉΓòÉ 91.1.2. DIALOG ΓòÉΓòÉΓòÉ
  12114.  
  12115. Whether dialogs are used for error reporting: 
  12116.  
  12117. 0         Dialogs are suppressed 
  12118. 1         A dialog is activated to handle the error condition. 
  12119.  
  12120.  
  12121. ΓòÉΓòÉΓòÉ 91.1.3. IDENTIFIER ΓòÉΓòÉΓòÉ
  12122.  
  12123. The complete path and name of the application. 
  12124.  
  12125.  
  12126. ΓòÉΓòÉΓòÉ 91.1.4. NAME ΓòÉΓòÉΓòÉ
  12127.  
  12128. The name of the application. This name is used in messages. 
  12129.  
  12130.  
  12131. ΓòÉΓòÉΓòÉ 91.1.5. REASON ΓòÉΓòÉΓòÉ
  12132.  
  12133. Text message for the most recent error code. 
  12134.  
  12135.  
  12136. ΓòÉΓòÉΓòÉ 91.2. Actions ΓòÉΓòÉΓòÉ
  12137.  
  12138. OPEN()               REFRESH() 
  12139. SAVETO()             CLOSE() 
  12140. DISCARD()            ACTION() 
  12141.  
  12142.  
  12143. ΓòÉΓòÉΓòÉ 91.2.1. OPEN() ΓòÉΓòÉΓòÉ
  12144.  
  12145. ΓöÇΓöÇOPEN()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12146.  
  12147. ΓöÇΓöÇPROCESS()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12148.  
  12149. ΓöÇΓöÇNEW()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12150.  
  12151. All these actions start the application if it has not already been started. 
  12152.  
  12153. Codes returned are: 
  12154.  
  12155. o 4100 - Application not successfully accessed 
  12156.  
  12157. o 4101 - Application not successfully started 
  12158.  
  12159.  
  12160. ΓòÉΓòÉΓòÉ 91.2.2. REFRESH() ΓòÉΓòÉΓòÉ
  12161.  
  12162. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12163.  
  12164. The action activates the application's ON QUEUE event block with Refresh as a 
  12165. parameter. The return code sets the CODE attribute to 0. 
  12166.  
  12167.  
  12168. ΓòÉΓòÉΓòÉ 91.2.3. SAVETO() ΓòÉΓòÉΓòÉ
  12169.  
  12170. ΓöÇΓöÇSAVETO(Destination)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12171.  
  12172. If Destination is valid, a copy of the application is saved to the specified 
  12173. destination. The action returns various OS/2 error codes in CODE. If the 
  12174. destination is read-only, the value 4020 is returned. 
  12175.  
  12176.  
  12177. ΓòÉΓòÉΓòÉ 91.2.4. CLOSE() ΓòÉΓòÉΓòÉ
  12178.  
  12179. ΓöÇΓöÇCLOSE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12180.  
  12181. The application's STOP block is run. The application can be re-started using 
  12182. another OPEN action. CODE is set to 0. 
  12183.  
  12184.  
  12185. ΓòÉΓòÉΓòÉ 91.2.5. DISCARD() ΓòÉΓòÉΓòÉ
  12186.  
  12187. ΓöÇΓöÇDISCARD()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12188.  
  12189. Attempts to stop and erase the application (the QUIT block is activated after 
  12190. erasing the application). The return codes are: 
  12191.  
  12192. o OS/2 error codes 
  12193.  
  12194. o 4020 - Application read-only 
  12195.  
  12196. o 4012 - Discard cancelled 
  12197.  
  12198. o 4103 - Discard failed 
  12199.  
  12200.  
  12201. ΓòÉΓòÉΓòÉ 91.2.6. ACTION() ΓòÉΓòÉΓòÉ
  12202.  
  12203. ΓöÇΓöÇACTION(parms)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12204.  
  12205. ACTION() activates the destination application's ON QUEUE event block with 
  12206. literal string Action and a pointer to the parmsvector as parameters. The 
  12207. destination application's return code is placed in the CODE attribute when the 
  12208. event is complete. 
  12209.  
  12210.  
  12211. ΓòÉΓòÉΓòÉ 91.3. Examples ΓòÉΓòÉΓòÉ
  12212.  
  12213. The QUEUE block can pass back up to 9 parameters (see examples below). The 
  12214. calling application's return code is in A.System.Return. 
  12215.  
  12216. !  ---- Example 1 ---------
  12217. ! Application A
  12218. ON SELECT
  12219.     . . .
  12220.   OPEN IBMAPPLICATN AppB,
  12221.     NAME = "My little application",
  12222.     IDENTIFIER = "D:\MyApp",
  12223.     DIALOG = 1
  12224.   rc = AppB'OPEN( )
  12225.     ! This is essential before calling ACTION
  12226.   IF \rc
  12227.     rc = AppB'ACTION(parm1,parm2,parm3,...parm10)
  12228.     . . .
  12229.   CALL AppB'CLOSE( )
  12230.    ! Not entirely necessary if we're going to SHUT it.
  12231.   SHUT AppB
  12232.     . . .
  12233.  
  12234. ON QUIT
  12235.     . . .
  12236.     WHEN "AppB"
  12237.       SHUT AppB
  12238.  
  12239. ON QUEUE(parm1, .. , parm9)
  12240.     ! Process action from app B
  12241.     RETURN code
  12242.  
  12243. ! ------- EXAMPLE 2 -------
  12244. !  Application B
  12245. ON START
  12246.     . . .
  12247.     Caller = A.System.Program
  12248.    ! Handle for communication with App A
  12249.     . . .
  12250.  
  12251. ON QUEUE(action, parmsvecptr)
  12252. DO
  12253.   CASE action
  12254.     WHEN "Refresh"
  12255.       ! App A called REFRESH action
  12256.       ! Interpret refresh action
  12257.     WHEN "Action"
  12258.       ! App A called ACTION action
  12259.     DO
  12260.       parm1 = (?parmsvecptr)[1]
  12261.       . . .  etc.
  12262.       ! Interpret action
  12263.       RETURN code
  12264.     END
  12265. END
  12266.  
  12267. ON SELECT
  12268.     . . .
  12269.   RUN PROGRAM Caller, QUEUE(parm1, .. , parm9)
  12270.   rc = A.System.Return
  12271.     . . .
  12272.  
  12273. Examples source library: 
  12274.  
  12275.  
  12276. ΓòÉΓòÉΓòÉ 91.4. More about ΓòÉΓòÉΓòÉ
  12277.  
  12278. o The ON START block of the key program receives the following three 
  12279.   parameters: 
  12280.  
  12281.     1. Any additional command line parameters passed. 
  12282.  
  12283.     2. The full file identifier of the application objectstore. 
  12284.  
  12285.     3. The name of the application. This is either the WPS title of the 
  12286.        application, or the NAME attribute of the IBMAPPLICATN object being 
  12287.        opened. For example: 
  12288.  
  12289.     ON START(CmdLineParms,Identifier,Name)
  12290.  
  12291.  
  12292. ΓòÉΓòÉΓòÉ 92. IBMCHART ΓòÉΓòÉΓòÉ
  12293.  
  12294. The IBMCHART object class provides a Visualizer chart. 
  12295.  
  12296. Attributes 
  12297.  
  12298. Actions 
  12299.  
  12300. Events 
  12301.  
  12302. Error codes 
  12303.  
  12304. Examples 
  12305.  
  12306.  
  12307. ΓòÉΓòÉΓòÉ 92.1. Attributes ΓòÉΓòÉΓòÉ
  12308.  
  12309. AUTOREFRESH            CODE 
  12310. DIALOG                 EUIMODE 
  12311. IBMDATA                IDENTIFIER 
  12312. MODIFIED               NAME 
  12313. PERCENTAGE             PERSPECTIVE 
  12314. REASON                 ROTATED 
  12315. SAVEPROMPT             TYPE 
  12316.  
  12317.  
  12318. ΓòÉΓòÉΓòÉ 92.1.1. AUTOREFRESH ΓòÉΓòÉΓòÉ
  12319.  
  12320. This attribute may be set to "Yes" or "No" (1 or 0). 
  12321.  
  12322. 1         The view is refreshed automatically. 
  12323. 0         The composed view of the object is not updated until specifically 
  12324.           requested, thus improving performance by eliminating unnecessary 
  12325.           processing. 
  12326.  
  12327.  
  12328. ΓòÉΓòÉΓòÉ 92.1.2. CODE ΓòÉΓòÉΓòÉ
  12329.  
  12330. This is the error code from the last action. 
  12331.  
  12332.  
  12333. ΓòÉΓòÉΓòÉ 92.1.3. DIALOG ΓòÉΓòÉΓòÉ
  12334.  
  12335. This attribute may be set to 1 or 0 ("Yes" or "No") to control error or print 
  12336. dialogs. 
  12337.  
  12338. 1         A dialog is activated to handle the error condition. 
  12339. 0         Dialogs are suppressed, default action taken. 
  12340.  
  12341.  
  12342. ΓòÉΓòÉΓòÉ 92.1.4. EUIMODE ΓòÉΓòÉΓòÉ
  12343.  
  12344. This attribute may be set to "Full" or "Restricted". When set to "Restricted", 
  12345. the Select table, Select column, and Import options are permanently disabled. 
  12346.  
  12347. "Restricted" also disables drag/drop from any object to the chart. The user 
  12348. can, however, drag the chart to another object or to the printer. 
  12349.  
  12350.  
  12351. ΓòÉΓòÉΓòÉ 92.1.5. IBMDATA ΓòÉΓòÉΓòÉ
  12352.  
  12353. Read-only pointer to the IBMDATA object the chart is using. 
  12354.  
  12355.  
  12356. ΓòÉΓòÉΓòÉ 92.1.6. IDENTIFIER ΓòÉΓòÉΓòÉ
  12357.  
  12358. This attribute must be set to the complete path and name of the specification 
  12359. to be used as a model for the new chart. The specification could be a template 
  12360. object or an already existing chart. 
  12361.  
  12362.  
  12363. ΓòÉΓòÉΓòÉ 92.1.7. MODIFIED ΓòÉΓòÉΓòÉ
  12364.  
  12365. This attribute indicates whether the object has been modified since it was last 
  12366. saved. 
  12367.  
  12368. 1         Object has been modified. 
  12369. 0         Object has not been modified. 
  12370.  
  12371.  
  12372. ΓòÉΓòÉΓòÉ 92.1.8. NAME ΓòÉΓòÉΓòÉ
  12373.  
  12374. This attribute may be set to the WPS title of the chart object. This name will 
  12375. then be used as the window title. 
  12376.  
  12377.  
  12378. ΓòÉΓòÉΓòÉ 92.1.9. PERCENTAGE ΓòÉΓòÉΓòÉ
  12379.  
  12380. This attribute may be set to "Off", "X", "Y", or "All". 
  12381.  
  12382. "Off"     no percentage calculations are made. 
  12383. "X"       each Y value is calculated as a percentage of all Y values for a 
  12384.           particular X value. 
  12385. "Y"       each Y value is calculated as a percentage of all Y values for the 
  12386.           analysis. 
  12387. "All"     each Y value is calculated as a percentage of all Y values for all 
  12388.           analyses. 
  12389.  
  12390.  
  12391. ΓòÉΓòÉΓòÉ 92.1.10. PERSPECTIVE ΓòÉΓòÉΓòÉ
  12392.  
  12393. This attribute may be set to "Yes" or "No" (1 or 0). 
  12394.  
  12395. 1         charts are displayed in 3D. 
  12396. 0         charts are displayed in 2D. 
  12397.  
  12398.  
  12399. ΓòÉΓòÉΓòÉ 92.1.11. REASON ΓòÉΓòÉΓòÉ
  12400.  
  12401. This is the error message sent from the last action. 
  12402.  
  12403.  
  12404. ΓòÉΓòÉΓòÉ 92.1.12. ROTATED ΓòÉΓòÉΓòÉ
  12405.  
  12406. This attribute may be set to "Yes" or "No" (1 or 0). 
  12407.  
  12408. 1         axis based charts are displayed rotated 90┬░ clockwise. 
  12409. 0         axis based charts are not rotated. 
  12410.  
  12411.  
  12412. ΓòÉΓòÉΓòÉ 92.1.13. SAVEPROMPT ΓòÉΓòÉΓòÉ
  12413.  
  12414. This Boolean attribute is to disable the COPY TO menu option. 
  12415.  
  12416. 1         Normal operation 
  12417. 0         Prevents the application from performing a COPY TO. 
  12418.  
  12419.  
  12420. ΓòÉΓòÉΓòÉ 92.1.14. TYPE ΓòÉΓòÉΓòÉ
  12421.  
  12422. This attribute may be set to "Line", "Surface", "Scatter", "Bar", "Pie", or 
  12423. "Mixed". 
  12424.  
  12425.  
  12426. ΓòÉΓòÉΓòÉ 92.2. Actions ΓòÉΓòÉΓòÉ
  12427.  
  12428. COPYTO()                  DISCARD() 
  12429. OPEN()                    PRINT() 
  12430. PROCESS()                 RESET() 
  12431. RESETDATA()               REFRESHDATA() 
  12432. SELECTTABLE()             QUERYFORMATS() 
  12433. SAVE()                    SETAXISTYPE() 
  12434. SELDATA                   SELANALYSIS() 
  12435. SEND()                    SETXAXISLAB() 
  12436. SETYAXISLAB()             SETTITLE() 
  12437.  
  12438.  
  12439. ΓòÉΓòÉΓòÉ 92.2.1. COPYTO() ΓòÉΓòÉΓòÉ
  12440.  
  12441. ΓöÇΓöÇCOPYTO(identifier,format)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12442.  
  12443. Makes a copy of the current object. identifier is the full name and location of 
  12444. the file into which the chart will be copied. (If the file exists, it will be 
  12445. overwritten.) 
  12446.  
  12447. Format controls the data format used: 
  12448.  
  12449. IBMCHART  native chart format 
  12450. METAFILE  OS/2 Metafile 
  12451. BITMAP    OS/2 bitmap (compatible with Windows 3.0 bitmap) 
  12452. BITMAP11  OS/2 1.1 bitmap 
  12453. PCX       ZSoft PC Paintbrush Image format 
  12454. TIFF      A subset of Microsoft and Aldus Tagged Image File Format 
  12455. GIF       Compuserve Graphics Interchange Format 
  12456.  
  12457.  
  12458. ΓòÉΓòÉΓòÉ 92.2.2. DISCARD() ΓòÉΓòÉΓòÉ
  12459.  
  12460. ΓöÇΓöÇDISCARD()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12461.  
  12462. The DISCARD action deletes the instance of the object. 
  12463.  
  12464.  
  12465. ΓòÉΓòÉΓòÉ 92.2.3. OPEN() ΓòÉΓòÉΓòÉ
  12466.  
  12467. ΓöÇΓöÇOPEN()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12468.  
  12469. The OPEN action puts a view of the object on the screen. 
  12470.  
  12471.  
  12472. ΓòÉΓòÉΓòÉ 92.2.4. PRINT() ΓòÉΓòÉΓòÉ
  12473.  
  12474. ΓöÇΓöÇPRINT(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12475.            ΓööΓöÇNameΓöÇΓöÿ   ΓööΓöÇPrintDialogΓöÇΓöÿ
  12476.  
  12477. The PRINT action generates output suitable for printing or plotting. Name is 
  12478. the name of the printer to use (the printer name is the device name of a 
  12479. Workplace Shell printer object) or a pointer to an open printer object. If "*", 
  12480. the Workplace Shell default printer is assumed. (The default printer is 
  12481. specified by the OS/2 Print Manager.) 
  12482.  
  12483. Name, the DIALOG attribute, and the PrintDialog parameter determine whether 
  12484. panels and messages will be displayed to the user: 
  12485.  
  12486. If the DIALOG attribute is 0 (false), then no panels are displayed (PrintDialog 
  12487. is ignored). 
  12488.  
  12489. If Name is a pointer to a printer and the DIALOG attribute is 1 (true), then 
  12490. the printer's own dialog is used. 
  12491.  
  12492. If Name is not a pointer to a printer, and if the DIALOG attribute is 1 (true), 
  12493. and if PrintDialog is 1 (true), then a dialog is presented to the user. 
  12494.  
  12495. If Name is blank and there are to be no dialogs, then the Workplace Shell 
  12496. default printer is used. 
  12497.  
  12498.  
  12499. ΓòÉΓòÉΓòÉ 92.2.5. PROCESS() ΓòÉΓòÉΓòÉ
  12500.  
  12501. ΓöÇΓöÇPROCESS()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12502.  
  12503. If AUTOREFRESH is off, API calls which change the underlying data are not 
  12504. immediately reflected in the displayed object (or metafile). PROCESS forces an 
  12505. update to redraw the chart. 
  12506.  
  12507.  
  12508. ΓòÉΓòÉΓòÉ 92.2.6. RESET() ΓòÉΓòÉΓòÉ
  12509.  
  12510. ΓöÇΓöÇRESET()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12511.  
  12512. This action resets all the chart settings back to their default values. 
  12513.  
  12514.  
  12515. ΓòÉΓòÉΓòÉ 92.2.7. RESETDATA() ΓòÉΓòÉΓòÉ
  12516.  
  12517. ΓöÇΓöÇRESETDATA()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12518.  
  12519. This action resets the current input table specification. All data items are 
  12520. reset, including all column selections. 
  12521.  
  12522.  
  12523. ΓòÉΓòÉΓòÉ 92.2.8. REFRESHDATA() ΓòÉΓòÉΓòÉ
  12524.  
  12525. ΓöÇΓöÇREFRESHDATA()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12526.  
  12527. This action refreshes the chart to use the latest version of the data. The 
  12528. action is equivalent to the user selecting Refresh data from the menu bar. 
  12529.  
  12530.  
  12531. ΓòÉΓòÉΓòÉ 92.2.9. SELECTTABLE() ΓòÉΓòÉΓòÉ
  12532.  
  12533. ΓöÇΓöÇSELECTTABLE(Table,FilingSystem.)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12534.  
  12535. This action specifies a new table to be used as input to the object. Table is 
  12536. the fully qualified name of the input table, including any environment specific 
  12537. location information. This form of location information for each environment; 
  12538.  
  12539. o for OS/2 files it is Drive:\Directory while 
  12540.  
  12541. o for Database Manager tables it is Database or Database\Userid; for AS400 
  12542.   tables it is System\Library; for host AS tables it is ASCode. 
  12543.  
  12544. FilingSystem may be any one of "PRODUCT", "SQL", "AS400", "HOST", "IXF", 
  12545. "PCIXF", "FLAT", "LIST", "DBF", "DIF". 
  12546.  
  12547. If the SelectTable( ) action is called when there are no current column 
  12548. selections, the Select columns window is opened automatically, subject to the 
  12549. Dialog attribute setting. With Chart you can prevent this dialog opening when 
  12550. using a template with no column selections as a starting point, by issuing the 
  12551. API calls to select columns before issuing the SelectTable call. This technique 
  12552. does not work for Report because Report requires the table to be specified 
  12553. before columns may be selected. 
  12554.  
  12555. If you access SQL or DB2 tables via Host AS, then AS issues an ATTACH command 
  12556. that uses the installation's default database. To override this default or 
  12557. other AS Attach command parameter defaults, you should issue your own Attach 
  12558. command when AS is started. This can be placed in a User Profile Table, as 
  12559. described in Application System: Developing Applications 
  12560.  
  12561.  
  12562. ΓòÉΓòÉΓòÉ 92.2.10. QUERYFORMATS() ΓòÉΓòÉΓòÉ
  12563.  
  12564. ΓöÇΓöÇQUERYFORMATS(pFormats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12565.  
  12566. This action will fill the vector pointed to by pFormats with the data formats 
  12567. that IBMCHART can render. (See COPYTO() for values for pFormats.) 
  12568.  
  12569.  
  12570. ΓòÉΓòÉΓòÉ 92.2.11. SAVE() ΓòÉΓòÉΓòÉ
  12571.  
  12572. ΓöÇΓöÇSAVE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12573.  
  12574. This action saves the object. 
  12575.  
  12576.  
  12577. ΓòÉΓòÉΓòÉ 92.2.12. SETAXISTYPE() ΓòÉΓòÉΓòÉ
  12578.  
  12579. ΓöÇΓöÇSETAXISTYPE(Axis,Type)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12580.  
  12581. This action specifies the required data type to be plotted against a given 
  12582. axis. The values for Axis may be "X", "Y", or "Z". The values for Type may be 
  12583. "Numeric" or "Date" for the Y axis, while the X or Z axes can be "Numeric", 
  12584. "Date", or "Character". Subsequent columns selected against specific axes must 
  12585. be of the correct data type. 
  12586.  
  12587.  
  12588. ΓòÉΓòÉΓòÉ 92.2.13. SELDATA ΓòÉΓòÉΓòÉ
  12589.  
  12590. ΓöÇΓöÇSELDATAX(Column)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12591.  
  12592. ΓöÇΓöÇSELDATAZ(Column)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12593.  
  12594. These actions specify the columns to be plotted against the X and Z axes. Both 
  12595. are optional. The X column defaults to the table row number. 
  12596.  
  12597.  
  12598. ΓòÉΓòÉΓòÉ 92.2.14. SELANALYSIS() ΓòÉΓòÉΓòÉ
  12599.  
  12600. ΓöÇΓöÇSELANALYSIS(Column,Function,Display)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12601.  
  12602. This action specifies an analysis to be plotted against the Y axis. Column is a 
  12603. column from the current table, a value of 1 will cause a count of unique Y 
  12604. values for each X point to be used. Function may be "Tot", "Min", "Max", "Avg", 
  12605. or "Det". "Det" will display every Y data point for each X data point, the 
  12606. other functions aggregate multiple Y data points into a single Y data point for 
  12607. each X data point. Display may be "Abs" for absolute, or "Cum" for cumulative. 
  12608.  
  12609. Up to 25 analyses may be defined. If the same analysis is specified twice, the 
  12610. second is treated as a deselection of that analysis. 
  12611.  
  12612.  
  12613. ΓòÉΓòÉΓòÉ 92.2.15. SEND() ΓòÉΓòÉΓòÉ
  12614.  
  12615. ΓöÇΓöÇSEND(pFormats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12616.  
  12617. This action mails copies of the chart in the specified formats. pFormats points 
  12618. to a vector of format names. (See COPYTO() for values for pFormats.) 
  12619.  
  12620.  
  12621. ΓòÉΓòÉΓòÉ 92.2.16. SETXAXISLAB() ΓòÉΓòÉΓòÉ
  12622.  
  12623. ΓöÇΓöÇSETXAXISLAB(Text)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12624.  
  12625. This action specifies text to be used as the X axis label. 
  12626.  
  12627.  
  12628. ΓòÉΓòÉΓòÉ 92.2.17. SETYAXISLAB() ΓòÉΓòÉΓòÉ
  12629.  
  12630. ΓöÇΓöÇSETYAXISLAB(Text)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12631.  
  12632. This action specifies text to be used as the Y axis label. 
  12633.  
  12634.  
  12635. ΓòÉΓòÉΓòÉ 92.2.18. SETTITLE() ΓòÉΓòÉΓòÉ
  12636.  
  12637.               <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12638. ΓöÇΓöÇSETTITLE(ΓöÇΓöÇΓöÇΓöÇtextΓöÇΓöÇΓö┤ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12639.  
  12640. Defines up to eight lines of the chart object's title. 
  12641.  
  12642. text      The text to be used for the line of the title. Empty lines in the 
  12643.           8-line title can be indicated by using two double quotes ( ""). 
  12644.  
  12645.  
  12646. ΓòÉΓòÉΓòÉ 92.3. Events ΓòÉΓòÉΓòÉ
  12647.  
  12648. QUIT 
  12649.  
  12650.  
  12651. ΓòÉΓòÉΓòÉ 92.3.1. QUIT ΓòÉΓòÉΓòÉ
  12652.  
  12653. This event is signaled whenever the object handler has been requested by the 
  12654. user to terminate. Use A.System.Object to identify the object handler in 
  12655. question, and to issue API calls prior to shutting the object. 
  12656.  
  12657.  
  12658. ΓòÉΓòÉΓòÉ 92.4. Error codes ΓòÉΓòÉΓòÉ
  12659.  
  12660. 5067      An incorrect value has been used when setting the Chart Type or 
  12661.           Percentage attribute. The value is ignored. 
  12662.  
  12663. 5068      An incorrect axis type has been specified on a Chart SetAxisType 
  12664.           action. The action is ignored. 
  12665.  
  12666. 5069      An incorrect axis has been specified on a Chart SetAxisType action. 
  12667.           The action is ignored. 
  12668.  
  12669. 5070      A SELDATAX action has been called without previously calling 
  12670.           SetAxisType for the X axis. The action is ignored. 
  12671.  
  12672. 5071      A SELDATAZ action has been called without previously calling 
  12673.           SetAxisType for the Z axis. The action is ignored. 
  12674.  
  12675. 5072      A SelAnalysis action has been called without previously calling 
  12676.           SetAxisType for the Y axis. The action is ignored. 
  12677.  
  12678. 5073      An incorrect function has been specified on a SelAnalysis action. The 
  12679.           action is ignored. 
  12680.  
  12681. 5074      An incorrect display value has been specified on a SelAnalysis 
  12682.           action. The action is ignored. 
  12683.  
  12684. 5075      The average function has been specified on a SelAnalysis action when 
  12685.           the Y axis type is date. The action is ignored. 
  12686.  
  12687. 5076      The average function has been specified on a SelAnalysis action when 
  12688.           the display is cumulative. The action is ignored. 
  12689.  
  12690. 5077      A column name of 1 (count of unique Y values) has been specified on a 
  12691.           SelAnalysis action when the Y axis type is not numeric. The action is 
  12692.           ignored. 
  12693.  
  12694. 5078      A function other than total has been specified on a SelAnalysis 
  12695.           action when the column name is 1 (count of unique Y values). The 
  12696.           action is ignored. 
  12697.  
  12698. 5079      The detail function has been specified on a SelAnalysis action when 
  12699.           the the current chart is 3D, or a pie or bar chart. The action is 
  12700.           ignored. 
  12701.  
  12702. 5080      The detail function has been specified on a SelAnalysis action when 
  12703.           the current chart is additive. The action is ignored. 
  12704.  
  12705. 5081      A SelAnalysis action has attempted to exceed the maximum number of 
  12706.           analyses. The action is ignored. 
  12707.  
  12708. 5524      An application has registered data on the clipboard, but the 
  12709.           application is now closing. 
  12710.  
  12711.  
  12712. ΓòÉΓòÉΓòÉ 92.5. Examples ΓòÉΓòÉΓòÉ
  12713.  
  12714. This example uses the EMPDATA data table and produces a specific Chart. 
  12715.  
  12716. o Chart to be produced: 
  12717.  
  12718.   Bar Chart of average Annual Salary calculated by Division (X-axis) and Sex 
  12719.   (Z-axis). 
  12720.  
  12721. PROCEDURE NewChart
  12722. DO
  12723.   FORGIVE
  12724.     OPEN ?"IBMCHART" MyChart,        /* in case CHART not installed      */
  12725.      NAME        = "My Chart",
  12726.      IDENTIFIER  = "D:\DSS\Chart",
  12727.      TYPE        = "BAR",
  12728.      AUTOREFRESH = "0"               /* don't refresh the chart yet      */
  12729.  
  12730.   IF A.System.ErrorNumber \= 0
  12731.   DO
  12732.     IF A.System.ErrorNumber = 2810
  12733.     THEN ERROR 1, "Sorry, Visualizer Charts must be installed to continue"
  12734.     ELSE RUN PROGRAM A.System.ThisTask, ERROR
  12735.  
  12736.     RETURN
  12737.   END
  12738.  
  12739.   CALL MyChart'RESETDATA()           /* clear any existing data table    */
  12740.  
  12741.   !
  12742.   ! The next set of calls establishes the X, Z, and Y data.
  12743.   ! They are called before the input table is defined, to
  12744.   ! prevent the Select Columns dialog appearing automatically.
  12745.   !
  12746.   ! The axis type for each axis has to be set. The Chart uses this
  12747.   ! information to verify that the input data are of the correct type.
  12748.   !
  12749.   CALL MyChart'SETAXISTYPE('X', 'CHARACTER')
  12750.   CALL MyChart'SELDATAX('Division')
  12751.  
  12752.   CALL MyChart'SETAXISTYPE('Z', 'NUMERIC')
  12753.   CALL MyChart'SELDATAZ('JobCode')
  12754.  
  12755.   CALL MyChart'SETAXISTYPE('Y', 'NUMERIC')
  12756.   CALL MyChart'SelAnalysis(          /* The Y column is specified by a   */
  12757.                                      /* function and display method      */
  12758.                                      /* to form an Analysis.             */
  12759.     'AnnualSalary',                  /* Column is AnnualSalary.          */
  12760.     'Avg',                           /* Show the average                 */
  12761.     'Abs')                           /* Absolute (not cumulative) values */
  12762.  
  12763.   !
  12764.   ! Now, select a data table into the chart
  12765.   !
  12766.   CALL MyChart'SelectTable("D:\DSS\EMPDATA","PRODUCT")
  12767.  
  12768.   !
  12769.   ! All done: show the chart
  12770.   !
  12771.   CALL MyChart'OPEN()
  12772.   LET MyChart'AUTOREFRESH = 1   /* any further changes apply immediately */
  12773. END
  12774.  
  12775. Examples source library: 
  12776.  
  12777.  
  12778. ΓòÉΓòÉΓòÉ 93. IBMDATA ΓòÉΓòÉΓòÉ
  12779.  
  12780. The IBMDATA object (together with the VIEWORDER, VIEWCALCS and VIEWROWS 
  12781. objects) allows sophisticated table manipulation. 
  12782.  
  12783. Attributes 
  12784.  
  12785. Actions 
  12786.  
  12787. Events: None. 
  12788.  
  12789. Examples 
  12790.  
  12791. More about IBMDATA 
  12792.  
  12793. See also: VIEWCALCS, VIEWORDER, VIEWROWS, VIEWTABLES 
  12794.  
  12795.  
  12796. ΓòÉΓòÉΓòÉ 93.1. Attributes ΓòÉΓòÉΓòÉ
  12797.  
  12798. CODE                    DIALOG 
  12799. FILINGSYSTEM            MODIFIED 
  12800. PATH                    REASON 
  12801. TABLE 
  12802.  
  12803.  
  12804. ΓòÉΓòÉΓòÉ 93.1.1. CODE ΓòÉΓòÉΓòÉ
  12805.  
  12806. Internal error code for the most recent operation. Read-only. 
  12807.  
  12808. Default: None 
  12809.  
  12810.  
  12811. ΓòÉΓòÉΓòÉ 93.1.2. DIALOG ΓòÉΓòÉΓòÉ
  12812.  
  12813. This specifies whether error messages should be issued directly to the screen. 
  12814.  
  12815. Default: 1 (Messages issued) 
  12816.  
  12817.  
  12818. ΓòÉΓòÉΓòÉ 93.1.3. FILINGSYSTEM ΓòÉΓòÉΓòÉ
  12819.  
  12820. The filing system where the source data can be found. This also covers file 
  12821. types: 
  12822.  
  12823. "PRODUCT" A Visualizer table or query 
  12824. "SQL"     An SQL data file, including those accessed using DDCS/2 
  12825. "AS400"   An AS/400 file accessed using PC Support. 
  12826. "HOST"    A host AS file. 
  12827. "IXF"     Supported OS/2 filetype 
  12828. "PCIXF"   Supported OS/2 filetype 
  12829. "FLAT"    Supported OS/2 filetype 
  12830. "LIST"    Supported OS/2 filetype 
  12831. "DBF"     Supported OS/2 filetype 
  12832. "DIF"     Supported OS/2 filetype 
  12833.  
  12834. Default: "PRODUCT" (See IBMTABLE for more details on file types.) 
  12835.  
  12836.  
  12837. ΓòÉΓòÉΓòÉ 93.1.4. MODIFIED ΓòÉΓòÉΓòÉ
  12838.  
  12839. A flag to say if the data definition has been modified since the last SAVE( ) 
  12840. or LOAD( ) action. Read-only. 
  12841.  
  12842. Default: 0 (Not modified) 
  12843.  
  12844.  
  12845. ΓòÉΓòÉΓòÉ 93.1.5. PATH ΓòÉΓòÉΓòÉ
  12846.  
  12847. The route to the source data: 
  12848.  
  12849. TABLE, QUERY, or OS/2 file "drive:\directory" 
  12850.  
  12851. SQL table "database", or  "database\userid" (including tables accessed using 
  12852.           DDCS/2) 
  12853.  
  12854. AS/400 table Either  "system/library/file" (with TABLE set to member), or 
  12855.           "system/library" (with TABLE set to file). 
  12856.  
  12857. Host AS table "ASCode" 
  12858.  
  12859.  
  12860. ΓòÉΓòÉΓòÉ 93.1.6. REASON ΓòÉΓòÉΓòÉ
  12861.  
  12862. Text message of most recent error code. Read-only. 
  12863.  
  12864. Default: None 
  12865.  
  12866.  
  12867. ΓòÉΓòÉΓòÉ 93.1.7. TABLE ΓòÉΓòÉΓòÉ
  12868.  
  12869. The name of the data table to use. This may be a table in the wider sense, for 
  12870. example, it may be a query, or on the Host. 
  12871.  
  12872. Default: "" 
  12873.  
  12874.  
  12875. ΓòÉΓòÉΓòÉ 93.2. Actions ΓòÉΓòÉΓòÉ
  12876.  
  12877. COLUMNS()                   INFO() 
  12878. INQCALCS()                  INQCOLPROP() 
  12879. INQCOLUMNS()                INQGROUPBY() 
  12880. INQINFO()                   INQKEYS() 
  12881. INQROWS()                   INQSUMMARYCALCS() 
  12882. INQTYPES()                  LOAD() 
  12883. PRODUCTCOLUMNS()            QUERYFORMATS() 
  12884. REFRESHDATA()               SAVE() 
  12885. SETCALCS()                  SETCOLPROP() 
  12886. SETCOLUMNS()                SETGROUPBY() 
  12887. SETROWS()                   SETSUMMARYCALCS() 
  12888. SNAPSHOT()                  USETMPSOURCE() 
  12889.  
  12890.  
  12891. ΓòÉΓòÉΓòÉ 93.2.1. COLUMNS() ΓòÉΓòÉΓòÉ
  12892.  
  12893. ΓöÇΓöÇCOLUMNS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12894.  
  12895. pointer identifies a vector in which the names of the candidate columns of the 
  12896. data are returned (in the original form of the column names, as they are in the 
  12897. external database). 
  12898.  
  12899.  
  12900. ΓòÉΓòÉΓòÉ 93.2.2. INFO() ΓòÉΓòÉΓòÉ
  12901.  
  12902. ΓöÇΓöÇINFO(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12903.  
  12904. pointer identifies a vector to be filled with startup parameters for a database 
  12905. accessed through host AS. The example code below sets typical start-up 
  12906. information. However, most database installations do not run with the defaults 
  12907. but have specific parameters for start up. 
  12908.  
  12909. ! This call passes host specific information to the IBMDATA object.
  12910. ! Note: to use a default value specify "****"
  12911.  
  12912. DEFINE HostInfo[0]
  12913. INSERT HostInfo[0] = ""          ! Initial command (used for attach)
  12914. INSERT HostInfo[0] = "****"      ! Code page to use
  12915. INSERT HostInfo[0] = "DASSERV"   ! Server name
  12916. INSERT HostInfo[0] = "PRODUCT"   ! Code used to start AS
  12917. INSERT HostInfo[0] = "****"      ! Autologon command file
  12918.  
  12919. CALL MyData'INFO(POINTER(Info[0]))
  12920.  
  12921.  
  12922. ΓòÉΓòÉΓòÉ 93.2.3. INQCALCS() ΓòÉΓòÉΓòÉ
  12923.  
  12924. ΓöÇΓöÇINQCALCS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12925.  
  12926. pointer identifies a vector to be filled with the current calculate columns 
  12927. expressions. 
  12928.  
  12929.  
  12930. ΓòÉΓòÉΓòÉ 93.2.4. INQCOLPROP() ΓòÉΓòÉΓòÉ
  12931.  
  12932. ΓöÇΓöÇINQCOLPROP(Column_name,Property,Pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12933.  
  12934. pointer identifies a variable to contain the property for the calculated column 
  12935. specified by column_name. Property can be "TYPE", "FORMAT", or "WIDTH". 
  12936.  
  12937.  
  12938. ΓòÉΓòÉΓòÉ 93.2.5. INQCOLUMNS() ΓòÉΓòÉΓòÉ
  12939.  
  12940. ΓöÇΓöÇINQCOLUMNS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12941.  
  12942. pointer identifies a vector to be filled with the current selected columns. 
  12943.  
  12944.  
  12945. ΓòÉΓòÉΓòÉ 93.2.6. INQGROUPBY() ΓòÉΓòÉΓòÉ
  12946.  
  12947. ΓöÇΓöÇINQGROUPBY(columns,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12948.                         ΓööΓöÇdirectionΓöÇΓöÿ
  12949.  
  12950. INQGROUPBY() queries the grouping column names. It is only valid when 
  12951. FILINGSYSTEM is "SQL". 
  12952.  
  12953. columns   Pointer to a vector that will be filled with the grouping column 
  12954.           names. 
  12955.  
  12956. direction Optional pointer to a vector to be filled with either "ASC" for 
  12957.           ascending, or "DESC" for descending. 
  12958.  
  12959.  
  12960. ΓòÉΓòÉΓòÉ 93.2.7. INQINFO() ΓòÉΓòÉΓòÉ
  12961.  
  12962. ΓöÇΓöÇINQINFO(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12963.  
  12964. Identifies a vector to be filled with the host AS startup parameters specified 
  12965. using the Info action.  This action is used to query the startup parameters 
  12966. (the startup parameters cannot be modified by this action). 
  12967.  
  12968.  
  12969. ΓòÉΓòÉΓòÉ 93.2.8. INQKEYS() ΓòÉΓòÉΓòÉ
  12970.  
  12971. ΓöÇΓöÇINQKEYS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12972.  
  12973. pointer identifies a vector to be filled with the Visualizer names of the key 
  12974. columns of the data. 
  12975.  
  12976.  
  12977. ΓòÉΓòÉΓòÉ 93.2.9. INQROWS() ΓòÉΓòÉΓòÉ
  12978.  
  12979. ΓöÇΓöÇINQROWS(Pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12980.  
  12981. pointer identifies a vector to be filled with the current select rows 
  12982. expressions. 
  12983.  
  12984.  
  12985. ΓòÉΓòÉΓòÉ 93.2.10. INQSUMMARYCALCS() ΓòÉΓòÉΓòÉ
  12986.  
  12987. ΓöÇΓöÇINQSUMMARYCALCS(expressions)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12988.  
  12989. INQSUMMARYCALCS() queries the summary calculated column expressions. It is only 
  12990. valid when FILINGSYSTEM is "SQL". 
  12991.  
  12992. expressions Pointer to a vector that will be filled with the summary 
  12993.           expressions. 
  12994.  
  12995.  
  12996. ΓòÉΓòÉΓòÉ 93.2.11. INQTYPES() ΓòÉΓòÉΓòÉ
  12997.  
  12998. ΓöÇΓöÇINQTYPES(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  12999.  
  13000. pointer identifies a vector to be filled with the column types of the data. The 
  13001. possible types are NUMERIC, DATE, TIME, CHARACTER, and GRAPHIC. 
  13002.  
  13003.  
  13004. ΓòÉΓòÉΓòÉ 93.2.12. LOAD() ΓòÉΓòÉΓòÉ
  13005.  
  13006. ΓöÇΓöÇLOAD(pointer,element)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13007.  
  13008. pointer identifies a vector containing a new data definition to be used. The 
  13009. data definition starts at element element. The new data definition completely 
  13010. replaces the old one. The vector must contain a specification that was 
  13011. previously generated by a SAVE( ) action. 
  13012.  
  13013.  
  13014. ΓòÉΓòÉΓòÉ 93.2.13. PRODUCTCOLUMNS() ΓòÉΓòÉΓòÉ
  13015.  
  13016. ΓöÇΓöÇPRODUCTCOLUMNS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13017.  
  13018. pointer identifies a vector in which Visualizer candidate column names of the 
  13019. data are returned. (The Visualizer column name length is limited to 20 
  13020. characters). 
  13021.  
  13022.  
  13023. ΓòÉΓòÉΓòÉ 93.2.14. QUERYFORMATS() ΓòÉΓòÉΓòÉ
  13024.  
  13025. ΓöÇΓöÇQUERYFORMATS(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13026.                   ΓööΓöÇpFormatsΓöÇΓöÿ   ΓööΓöÇpExtensionsΓöÇΓöÿ
  13027.  
  13028. QueryFormats allows applications to find out what data formats the IBMDATA 
  13029. object supports and what the default file extensions are for each format.  The 
  13030. parameters are defined as follows: 
  13031.  
  13032. pFormats  A pointer to a vector into which the list of formats supported by the 
  13033.           IBMDATA Object is placed. 
  13034. pExtensions A pointer to a vector into which the list of default extensions 
  13035.           corresponding to the supported data formats is placed. 
  13036.  
  13037. The values currently returned by the IBMDATA object are listed below (these may 
  13038. change in the future). 
  13039.  
  13040. Format    Extension 
  13041. IBMTABLE 
  13042. IBMQUERY 
  13043. IBMSQLSTATEMENT 
  13044. SQL 
  13045. AS400 
  13046. HOST 
  13047. IXF       IXF 
  13048. PCIXF     PCI 
  13049. FLAT      FLT 
  13050. LIST      LST 
  13051. DBF       DBF 
  13052. DIF       DIF 
  13053.  
  13054. If either parameter is omitted, then QueryFormats returns the information 
  13055. associated with the other parameter. 
  13056.  
  13057.  
  13058. ΓòÉΓòÉΓòÉ 93.2.15. REFRESHDATA() ΓòÉΓòÉΓòÉ
  13059.  
  13060. ΓöÇΓöÇREFRESHDATA()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13061.  
  13062. Refreshdata is used to take a new look at the source data. For performance 
  13063. reasons, any action that the DATA object takes is stored and used again. For 
  13064. example, once a SNAPSHOT has been performed, further calls to SNAPSHOT will 
  13065. return the same temporary table name (except for actions like SETROWS or 
  13066. SETCALCS which perform an automatic refresh). If a new look at the data is 
  13067. required, the REFRESHDATA action must be used. 
  13068.  
  13069. Before calling REFRESHDATA you should SHUT any table objects that are using the 
  13070. previous SNAPSHOT table. This will allow the temporary table to be deleted for 
  13071. you. 
  13072.  
  13073.  
  13074. ΓòÉΓòÉΓòÉ 93.2.16. SAVE() ΓòÉΓòÉΓòÉ
  13075.  
  13076. ΓöÇΓöÇSAVE(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13077.  
  13078. pointer identifies a vector to which the current data definition will be 
  13079. appended. 
  13080.  
  13081.  
  13082. ΓòÉΓòÉΓòÉ 93.2.17. SETCALCS() ΓòÉΓòÉΓòÉ
  13083.  
  13084. ΓöÇΓöÇSETCALCS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13085.  
  13086. pointer identifies a vector containing the new calculate columns expressions. 
  13087. The expressions must be in the correct syntax for the filing system: 
  13088.  
  13089. o For SQL systems, use SQL syntax and the original column names. 
  13090. o For AS/400 systems, use Visualizer syntax and column names. 
  13091. o For host AS, use host syntax with the original column names. 
  13092. o Other filing systems should use Visualizer syntax and column names. 
  13093.  
  13094.  
  13095. ΓòÉΓòÉΓòÉ 93.2.18. SETCOLPROP() ΓòÉΓòÉΓòÉ
  13096.  
  13097. ΓöÇΓöÇSETCOLPROP(Column_name,Property,Value)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13098.  
  13099. This allows you to update a property of a calculated column. Property can be 
  13100. "TYPE", "FORMAT", or "WIDTH" (quotes must be used around the value). 
  13101.  
  13102.  
  13103. ΓòÉΓòÉΓòÉ 93.2.19. SETCOLUMNS() ΓòÉΓòÉΓòÉ
  13104.  
  13105. ΓöÇΓöÇSETCOLUMNS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13106.  
  13107. pointer identifies a vector containing the new selected columns (uses the 
  13108. Visualizer 20-character maximum length form of column names). 
  13109.  
  13110.  
  13111. ΓòÉΓòÉΓòÉ 93.2.20. SETGROUPBY() ΓòÉΓòÉΓòÉ
  13112.  
  13113.                         ΓöîΓöÇ"ASC"ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  13114. ΓöÇΓöÇSETGROUPBY(columns,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13115.                         ΓööΓöÇdirectionΓöÇΓöÿ
  13116.  
  13117. SETGROUPBY() specifies grouping columns. It is only valid when FILINGSYSTEM is 
  13118. "SQL". 
  13119.  
  13120. columns   Pointer to a vector of column names to group by. The vector must not 
  13121.           contain calculated column names or expressions. 
  13122.  
  13123. direction Optional pointer to a vector containing either "ASC" for ascending, 
  13124.           or "DESC" for descending. 
  13125.  
  13126.           Default: "ASC" 
  13127.  
  13128. To clear the grouping columns, use an empty columns vector. 
  13129.  
  13130.  
  13131. ΓòÉΓòÉΓòÉ 93.2.21. SETROWS() ΓòÉΓòÉΓòÉ
  13132.  
  13133. ΓöÇΓöÇSETROWS(Pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13134.  
  13135. pointer identifies a vector containing the new select rows expressions to be 
  13136. used. These replace the old select rows expressions. The new expressions must 
  13137. be in the correct syntax for the filing system. 
  13138.  
  13139. o For SQL systems, use SQL syntax and the original column names. 
  13140.  
  13141. o For AS/400 systems, use AS/400 syntax and original column names. (AS/400 
  13142.   expressions are in Visualizer syntax for calculated columns and in AS/400 
  13143.   syntax for select rows.) 
  13144.  
  13145. o For host AS, use host syntax with the original column names. 
  13146.  
  13147. o Other filing systems should use Visualizer syntax and column names. 
  13148.  
  13149. A maximum of ten SetRows statements can be used with one IBMDATA object. 
  13150.  
  13151.  
  13152. ΓòÉΓòÉΓòÉ 93.2.22. SETSUMMARYCALCS() ΓòÉΓòÉΓòÉ
  13153.  
  13154. ΓöÇΓöÇSETSUMMARYCALCS(expressions)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13155.  
  13156. SETSUMMARYCALCS() specifies summary calculated column expressions. It is only 
  13157. valid when FILINGSYSTEM is "SQL". 
  13158.  
  13159. expressions Pointer to a vector that contains the summary expressions. Each 
  13160.           summary expression is a condition-for example, SalColumn = 
  13161.           MIN(AnnualSalary). 
  13162.  
  13163. You can specify a column name that is already used elsewhere. For example, if 
  13164. you use the expression  AnnualSalary = SUM(AnnualSalary), then the resulting 
  13165. table contains an AnnualSalary column that is the sum of the real column. 
  13166.  
  13167. Select summary calculated columns for output in the same way as other columns, 
  13168. by using the SETCOLUMNS() action. If more than one column exists with the same 
  13169. name, then the summary calculated column takes precedence when selected using 
  13170. SETCOLUMNS(). 
  13171.  
  13172. You can base summary calculations on calculated columns, but not on other 
  13173. summary columns. 
  13174.  
  13175.  
  13176. ΓòÉΓòÉΓòÉ 93.2.23. SNAPSHOT() ΓòÉΓòÉΓòÉ
  13177.  
  13178. ΓöÇΓöÇSNAPSHOT(pointer,SnapshotRows)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13179.  
  13180. Snapshot will cause the data definition to be resolved to a temporary table. 
  13181. Any data extractions will be performed first. pointer identities a scalar for 
  13182. the name of the temporary table. 
  13183.  
  13184. SnapshotRows is the number of rows to be returned. An asterisk in quotation 
  13185. marks ("*") returns all rows. 
  13186.  
  13187. The CODE attribute should be checked after using Snapshot. 
  13188.  
  13189.  
  13190. ΓòÉΓòÉΓòÉ 93.2.24. USETMPSOURCE() ΓòÉΓòÉΓòÉ
  13191.  
  13192. ΓöÇΓöÇUSETMPSOURCE(TableName,Path,FilingSystem))ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13193.  
  13194. UseTmpSource allows applications to use a temporary source of data without 
  13195. losing the previous data definition or affecting the PATH and TABLE settings of 
  13196. the IBMDATA object. The parameters are defined as follows: 
  13197.  
  13198. TableName Name of an existing temporary data source. 
  13199.  
  13200. Path      Route to the temporary data source. 
  13201.  
  13202. FilingSystem Filing system where the data is stored, or the file type used. 
  13203.           Refer to the FILINGSYSTEM attribute of the IBMDATA object for details 
  13204.           of valid values. 
  13205.  
  13206. The parameters are not stored in the data definition when a SAVE action is 
  13207. performed. 
  13208.  
  13209. Once a USETMPSOURCE action has been called, the IBMDATA object uses the 
  13210. temporary data source if any information needs to be retrieved. The 
  13211. UseTmpSource settings are reset to NULL if: 
  13212.  
  13213. o A subsequent UseTmpSource action with NULL parameters is called. 
  13214.  
  13215. o Any of the TABLE, PATH or FILINGSYSTEM attributes of the IBMDATA object are 
  13216.   modified. 
  13217.  
  13218. o A Load action of the IBMDATA object is performed. (This results in a new data 
  13219.   definition.) 
  13220. If the UseTmpSource settings are reset (for any of the above reasons) and 
  13221. actions have been performed since the temporary source was specified, 
  13222. information subsequently requested is retrieved from the most recently saved 
  13223. version of the table specified by the IBMDATA object TABLE, PATH and 
  13224. FILINGSYSTEM attributes. 
  13225.  
  13226. After using UseTmpSource, the temporary table specified needs to be SHUT before 
  13227. an IBMDATA object SNAPSHOT action is performed. This allows the temporary table 
  13228. to be deleted automatically and the original data to be refreshed. 
  13229.  
  13230.  
  13231. ΓòÉΓòÉΓòÉ 93.3. Examples ΓòÉΓòÉΓòÉ
  13232.  
  13233. OPEN IBMDATA MyData,              /* Open the data object,  */
  13234.  FILINGSYSTEM = "Host",           /* pointing at a Host     */
  13235.  PATH         = "Name",           /* table in AScode Name.  */
  13236.  TABLE        = "***demo/staff"
  13237.  
  13238. ! Make a local Visualizer copy of the data,
  13239. ! getting all data rows.
  13240. !
  13241. CALL MyData'SNAPSHOT(POINTER(LocalCopy[0]), '*')
  13242.  
  13243. IF MyData'CODE = 0                /* If it worked...        */
  13244. THEN DO
  13245.   !
  13246.   ! Now open the Visualizer table for my own use
  13247.   ! in order to get shared access to the data columns in it
  13248.   !
  13249.   OPEN TABLE MyTab,
  13250.    NAME     = NAME(LocalCopy),
  13251.    LOCATION = LOCATION(LocalCopy)
  13252. END
  13253.  
  13254.  
  13255. ΓòÉΓòÉΓòÉ 93.3.1. Example of inquiring on column attributes ΓòÉΓòÉΓòÉ
  13256.  
  13257. The column attributes of external name, Visualizer name and type all follow a 
  13258. similar syntax.  A vector is filled with an entry for each column. 
  13259.  
  13260. The key column information is different. The call INQKEYS( ) returns a vector 
  13261. containing only the names of the key columns, with the most significant key as 
  13262. the first element. 
  13263.  
  13264. ! Get external column names
  13265. CALL MyData'COLUMNS(POINTER(ColumnsList[0]))
  13266.  
  13267. ! Get a list of Visualizer column names from the data.
  13268. CALL MyData'PRODUCTCOLUMNS(POINTER(VisTabCols[0]))
  13269.  
  13270. DO i = 1 : ColumnsList[0]'ENTRIES
  13271.   ERROR 1, "Column _ will map to column _ in a Visualizer table",
  13272.    ColumnsList[i], VisTabCols[i]
  13273. END
  13274.  
  13275.  
  13276. ΓòÉΓòÉΓòÉ 93.3.2. Example of saving the definition in a specification ΓòÉΓòÉΓòÉ
  13277.  
  13278. When a file specification for an application is saved, the IBMDATA object 
  13279. should be called to embed its file specification within the application's file 
  13280. specification. The IBMDATA specification is not of a fixed length, so if the 
  13281. applications uses a tag and count method, it will need to determine the number 
  13282. of elements before and after the addition of the data specification, and set 
  13283. count accordingly. 
  13284.  
  13285. PROCEDURE SaveSpecification()
  13286. DO
  13287.   DEFINE SaveVec[0]
  13288.   INSERT SaveVec[0] = "some piece of fixed information"
  13289.   INSERT SaveVec[0] = 0   /* the IBMDATA specification start position */
  13290.   INSERT SaveVec[0] = "some other piece of fixed information"
  13291.  
  13292.   ...
  13293.   ! Save something...
  13294.   ...
  13295.  
  13296.   ! Get MyData to save its specification
  13297.   LET SaveVec[2] = 1 + SaveVec[0]'ENTRIES
  13298.   CALL MyData'SAVE(POINTER(SaveVec[0]))
  13299.  
  13300.   ...
  13301.   ! Save something else...
  13302.   ...
  13303. END
  13304.  
  13305. Applications usually open the data object in their ON START block. They use the 
  13306. LOAD() action at a later time, when they load a spec file. 
  13307.  
  13308. ON START
  13309. DO
  13310.   ...
  13311.   OPEN IBMDATA MyData      /* Open IBMDATA object to make it   */
  13312.   ...                      /* available later.                 */
  13313. END
  13314.  
  13315. PROCEDURE ReadSpecification(pSpecVec)
  13316. DO
  13317.   DECLARE POINTER pSpecVec
  13318.  
  13319.   DECLARE NUMERIC StartPos = pSpecVec[2]
  13320.  
  13321.   ...
  13322.   CALL MyData'LOAD(pSpecVec, StartPos)
  13323.   ...
  13324. END
  13325.  
  13326. Examples source library: 
  13327.  
  13328.  
  13329. ΓòÉΓòÉΓòÉ 93.4. More about IBMDATA ΓòÉΓòÉΓòÉ
  13330.  
  13331. o The Select Rows window (from the VIEWROWS object) and the Calculate Columns 
  13332.   window (from the VIEWCALCS object) assist in table handling by allowing the 
  13333.   programmer to provide an interface to the end user for specifying calculated 
  13334.   columns and multiple row selection criteria. The input from the windows is 
  13335.   verified and entered into the appropriate field of the IBMDATA object. 
  13336.  
  13337. o Visualizer will sometimes copy an entire row from the host to local memory 
  13338.   for manipulation, even though only a few of the columns will be used for the 
  13339.   final table. Ensure that there is sufficient storage to handle the entire row 
  13340.   when down loading tables from a host connection. 
  13341.  
  13342. o You can produce SQL statements that perform data aggregation at the server 
  13343.   end, so that you do not need to use the ASL GATHER function. This may improve 
  13344.   performance with SQL databases. 
  13345.  
  13346.   For example, to plot a chart Annual Salary by Division and Sex, you might use 
  13347.   the following SQL: 
  13348.  
  13349.     SELECT Division,Sex,SUM(AnnualSalary)
  13350.       FROM USERID.EMPDATA
  13351.       GROUP BY Division,Sex
  13352.  
  13353.   To do this, use the SETGROUPBY() action to generate the GROUP BY statement, 
  13354.   and use the SETSUMMARYCALCS() action to specify which columns need functions 
  13355.   to be applied. to them. 
  13356.  
  13357.  
  13358. ΓòÉΓòÉΓòÉ 94. IBMREPORT ΓòÉΓòÉΓòÉ
  13359.  
  13360. IBMREPORT provides an instance of a Visualizer report. 
  13361.  
  13362. Attributes 
  13363.  
  13364. Actions 
  13365.  
  13366. Events 
  13367.  
  13368. Return codes 
  13369.  
  13370. Examples 
  13371.  
  13372.  
  13373. ΓòÉΓòÉΓòÉ 94.1. Attributes ΓòÉΓòÉΓòÉ
  13374.  
  13375. AUTOREFRESH            CODE 
  13376. DIALOG                 EUIMODE 
  13377. IDENTIFIER             MODIFIED 
  13378. NAME                   REASON 
  13379. SAVEPROMPT 
  13380.  
  13381.  
  13382. ΓòÉΓòÉΓòÉ 94.1.1. AUTOREFRESH ΓòÉΓòÉΓòÉ
  13383.  
  13384. This attribute may be set to 1 or 0 ("Yes" or "No"). 
  13385.  
  13386. 1         The view is refreshed automatically. 
  13387. 0         The composed view of the object is not updated until specifically 
  13388.           requested, thus improving performance by eliminating unnecessary 
  13389.           processing. 
  13390.  
  13391.  
  13392. ΓòÉΓòÉΓòÉ 94.1.2. CODE ΓòÉΓòÉΓòÉ
  13393.  
  13394. This attribute may be queried to obtain the return code of the last operation. 
  13395. Possible codes are listed below. 
  13396.  
  13397.  
  13398. ΓòÉΓòÉΓòÉ 94.1.3. DIALOG ΓòÉΓòÉΓòÉ
  13399.  
  13400. This attribute may be set to 1 or 0 ("Yes" or "No") to control error dialogs. 
  13401.  
  13402. 1         A dialog is activated to handle the error condition. 
  13403. 0         Dialogs are suppressed, default action taken. 
  13404.  
  13405.  
  13406. ΓòÉΓòÉΓòÉ 94.1.4. EUIMODE ΓòÉΓòÉΓòÉ
  13407.  
  13408. This attribute may be set to "Full" or "Restricted". When set to "Restricted", 
  13409. the Select table, Select column, Import and Export options are permanently 
  13410. disabled. 
  13411.  
  13412. "Restricted" also disables drag/drop from any object (such as table data, link, 
  13413. paste or paste link) to the report. The user can, however, drag the report to 
  13414. another object or to the printer. 
  13415.  
  13416.  
  13417. ΓòÉΓòÉΓòÉ 94.1.5. IDENTIFIER ΓòÉΓòÉΓòÉ
  13418.  
  13419. This attribute must be set to the complete path and name of the specification 
  13420. to be used as a model. The specification could be a template object or an 
  13421. already existing report. 
  13422.  
  13423.  
  13424. ΓòÉΓòÉΓòÉ 94.1.6. MODIFIED ΓòÉΓòÉΓòÉ
  13425.  
  13426. This attribute indicates whether the object has been modified since it was last 
  13427. saved. 
  13428.  
  13429. 1         Object has been modified. 
  13430. 0         Object has not been modified. 
  13431.  
  13432.  
  13433. ΓòÉΓòÉΓòÉ 94.1.7. NAME ΓòÉΓòÉΓòÉ
  13434.  
  13435. This attribute can be set to an arbitrary name for the report which will be 
  13436. used in window titles and print queues. 
  13437.  
  13438.  
  13439. ΓòÉΓòÉΓòÉ 94.1.8. REASON ΓòÉΓòÉΓòÉ
  13440.  
  13441. This attribute contains a textual description of the last error (or "" if no 
  13442. error has occurred). 
  13443.  
  13444.  
  13445. ΓòÉΓòÉΓòÉ 94.1.9. SAVEPROMPT ΓòÉΓòÉΓòÉ
  13446.  
  13447. This Boolean attribute is to control prompt on save. 
  13448.  
  13449. 1         Normal operation of prompting and saving. 
  13450. 0         Prevents the application from prompting the user to save when 
  13451.           closing. It also permanently disables the Save and Save as menu 
  13452.           options. 
  13453.  
  13454.  
  13455. ΓòÉΓòÉΓòÉ 94.2. Actions ΓòÉΓòÉΓòÉ
  13456.  
  13457. SELECTTABLE()             DISCARD() 
  13458. OPEN()                    PAGESETUP() 
  13459. PRINT()                   PROCESS() 
  13460. REFRESHDATA()             SAVE() 
  13461. COPYTO()                  SAVETO() 
  13462. SETCOLFORMAT()            SETTOPTITLE() 
  13463. SELCOLS()                 SETCOLTITLE() 
  13464. SETCOLWIDTH()             SELANALYSIS() 
  13465. SEND() 
  13466.  
  13467.  
  13468. ΓòÉΓòÉΓòÉ 94.2.1. SELECTTABLE() ΓòÉΓòÉΓòÉ
  13469.  
  13470. ΓöÇΓöÇSELECTTABLE(Table,FilingSystem)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13471.  
  13472. This action specifies a new table to be used as input to the object. Table is 
  13473. the fully qualified name of the input table, including any environment specific 
  13474. location information: 
  13475.  
  13476. OS/2 files                          drive:\directory 
  13477. Database Manager tables             database or database\userid 
  13478. AS400 tables                        system\library 
  13479. Host AS tables                      AScode 
  13480.  
  13481. FilingSystem may be any one of "PRODUCT", "SQL", "AS400", "HOST", "IXF", 
  13482. "PCIXF", "FLAT", "LIST", "DBF", "DIF". 
  13483.  
  13484. If the SelectTable() action is called when there are no current column 
  13485. selections, the Select columns window is opened automatically, subject to the 
  13486. DIALOG attribute setting. With Chart you can prevent this dialog opening when 
  13487. using a template with no column selections as a starting point, by issuing the 
  13488. API calls to select columns before issuing the SELECTTABLE() call. This 
  13489. technique does not work for Report because Report requires the table to be 
  13490. specified before columns can be selected. 
  13491.  
  13492. If you are accessing SQL or DB2 tables via host AS, AS will issue an Attach 
  13493. command which uses the installation's default database. To override this 
  13494. default or other AS Attach command parameter defaults, you should issue your 
  13495. own Attach command when AS is started. This can be placed in a User Profile 
  13496. Table, as described in Application System: Developing Applications 
  13497.  
  13498.  
  13499. ΓòÉΓòÉΓòÉ 94.2.2. DISCARD() ΓòÉΓòÉΓòÉ
  13500.  
  13501. ΓöÇΓöÇDISCARD()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13502.  
  13503. The DISCARD action deletes the instance of the object class. 
  13504.  
  13505.  
  13506. ΓòÉΓòÉΓòÉ 94.2.3. OPEN() ΓòÉΓòÉΓòÉ
  13507.  
  13508. ΓöÇΓöÇOPEN()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13509.  
  13510. The OPEN action puts a view of the object on the screen. 
  13511.  
  13512.  
  13513. ΓòÉΓòÉΓòÉ 94.2.4. PAGESETUP() ΓòÉΓòÉΓòÉ
  13514.  
  13515. ΓöÇΓöÇPAGESETUP(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13516.                ΓööΓöÇpapersizeΓöÇΓöÿ      ΓööΓöÇorientationΓöÇΓöÿ     ΓööΓöÇunitΓöÇΓöÿ
  13517. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13518.    ΓööΓöÇleftΓöÇΓöÿ     ΓööΓöÇrightΓöÇΓöÿ     ΓööΓöÇtopΓöÇΓöÿ     ΓööΓöÇbottomΓöÇΓöÿ      ΓööΓöÇscaleΓöÇΓöÿ
  13519.  
  13520. papersize One of: 
  13521.  
  13522.    "U"       User-defined. (The same size as the report window.) 
  13523.    "A0"      841 mm x 1189 mm 
  13524.    "A1"      594 mm x 841 mm 
  13525.    "A2"      420 mm x 594 mm 
  13526.    "A3"      297 mm x 420 mm 
  13527.    "B4"      257 mm x 364 mm 
  13528.    "LG"      Legal:  8╨╗ in x 14 in 
  13529.    "FO"      Folio:  8╨╗ in x 13 in 
  13530.    "A4"      210 mm x 297 mm 
  13531.    "LT"      Letter:  8╨╗ in x 11 in 
  13532.    "EX"      Executive:  7╨╝ in x 10╨╗ in 
  13533.    "B5"      182 mm x 257 mm 
  13534.    "C5"      162 mm x 229 mm 
  13535.    "A5"      148 mm x 210 mm 
  13536.    "DL"      110 mm x 220 mm 
  13537.    "A6"      105 mm x 148 mm 
  13538.    "A7"      74 mm x 105 mm 
  13539.    "A8"      52 mm x 74 mm 
  13540.    "A9"      37 mm x 52 mm 
  13541.  
  13542. orientation Page orientation (not used for paper size "U"): 
  13543.  
  13544.    0         Portrait 
  13545.    1         Landscape 
  13546.  
  13547. unit      Margin units: 
  13548.  
  13549.    0         Millimeters 
  13550.    1         Inches 
  13551.  
  13552. left      Width of left margin 
  13553.  
  13554. right     Width of right margin 
  13555.  
  13556. top       Depth of top margin 
  13557.  
  13558. bottom    Depth of bottom margin 
  13559.  
  13560. scale     Percentage scale for text, in the range 20 - 500. 
  13561.  
  13562.  
  13563. ΓòÉΓòÉΓòÉ 94.2.5. PRINT() ΓòÉΓòÉΓòÉ
  13564.  
  13565. ΓöÇΓöÇPRINT(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13566.            ΓööΓöÇprinterΓöÇΓöÿ   ΓööΓöÇdialogΓöÇΓöÿ
  13567.  
  13568. The PRINT action generates output suitable for printing or plotting. printer is 
  13569. an optional parameter indicating the printer to use. If specified, the value 
  13570. must be one of: 
  13571.  
  13572. o "*" to indicate the default WPS printer 
  13573. o The name of a WPS printer 
  13574. o A pointer to a printer object opened in the calling program. 
  13575.  
  13576. dialog is an optional parameter indicating how to handle dialogs. If specified, 
  13577. the value must be one of: 
  13578.  
  13579. o 1 to surface print dialogs. The dialogs will determine what to print, which 
  13580.   printer (if not already specified in printer), how many copies to print, and 
  13581.   what font to use. 
  13582.  
  13583. o 0 to inhibit dialogs. (Default values will be used for all settings.) 
  13584.  
  13585. If the printer name has not been specified and the object was opened with the 
  13586. DIALOG attribute set to 1 (the default), then a standard screen dialog is 
  13587. invoked which presents the end user with a list of the available printers to 
  13588. select from. 
  13589.  
  13590. If the printer name has not been specified and the object was opened with the 
  13591. DIALOG attribute set to 0, then the default printer is used. If dialog is not 
  13592. specified, dialogs are surfaced if the DIALOG attribute is set to 1 and Review 
  13593. print options on the Profile notebook is set. The default printer is specified 
  13594. by the OS/2 Print Manager. 
  13595.  
  13596.  
  13597. ΓòÉΓòÉΓòÉ 94.2.6. PROCESS() ΓòÉΓòÉΓòÉ
  13598.  
  13599. ΓöÇΓöÇPROCESS()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13600.  
  13601. PROCESS() forces an update to redisplay the report. If AUTOREFRESH is off, and 
  13602. you change the underlying data, then use PROCESS() to reflect the changes in 
  13603. the displayed object or metafile. 
  13604.  
  13605.  
  13606. ΓòÉΓòÉΓòÉ 94.2.7. REFRESHDATA() ΓòÉΓòÉΓòÉ
  13607.  
  13608. ΓöÇΓöÇREFRESHDATA()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13609.  
  13610. This action refreshes the report to use the latest version of the data. The 
  13611. action is equivalent to the user selecting Refresh data from the menu bar. 
  13612.  
  13613.  
  13614. ΓòÉΓòÉΓòÉ 94.2.8. SAVE() ΓòÉΓòÉΓòÉ
  13615.  
  13616. ΓöÇΓöÇSAVE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13617.  
  13618. This action saves the object. 
  13619.  
  13620.  
  13621. ΓòÉΓòÉΓòÉ 94.2.9. COPYTO() ΓòÉΓòÉΓòÉ
  13622.  
  13623. ΓöÇΓöÇCOPYTO(filename,format)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13624.  
  13625. The current data is copied to the fully-qualified file specified in filename. 
  13626. format can be one of the following: 
  13627.  
  13628. o "IBMREPORT" a Visualizer report (default) 
  13629. o "IBMREPORTSUBSET" a Visualizer table containing subtotal values 
  13630. o "TEXT" an OS/2 file 
  13631.  
  13632. If successful, 0 will be returned, otherwise an error code will be returned. 
  13633.  
  13634.  
  13635. ΓòÉΓòÉΓòÉ 94.2.10. SAVETO() ΓòÉΓòÉΓòÉ
  13636.  
  13637. ΓöÇΓöÇSAVETO(identifier)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13638.  
  13639. The SAVETO action saves the object to the indicated object, the full path and 
  13640. name must be supplied as a parameter (for example, c:\DSS\myobj). 
  13641.  
  13642.  
  13643. ΓòÉΓòÉΓòÉ 94.2.11. SETCOLFORMAT() ΓòÉΓòÉΓòÉ
  13644.  
  13645. ΓöÇΓöÇSETCOLFORMAT(column,format)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13646. Long column name ASL format string 
  13647.  
  13648.  
  13649. ΓòÉΓòÉΓòÉ 94.2.12. SETTOPTITLE() ΓòÉΓòÉΓòÉ
  13650.  
  13651. ΓöÇΓöÇSETTOPTITLEΓöÇΓöÇ(ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13652.                     ΓööΓöÇline,textΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÿ
  13653.                                 ΓööΓöÇ,alignΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÿ
  13654.                                          ΓööΓöÇ,elementΓöÇΓöÿ
  13655.  
  13656. Defines a line of the report object's title. line is the number of the line 
  13657. within the title. If line is a negative number, the text is inserted before the 
  13658. existing text. 
  13659.  
  13660. text is the text to be used for the defined line of the title. 
  13661.  
  13662. align is the position of text alignment: 
  13663.  
  13664. "L"       Left align 
  13665. "R"       Right align 
  13666. "C"       Center text 
  13667.  
  13668. element is the number of the text element to be replaced with the new text. 
  13669.  
  13670. If SETTOPTITLE() is called with no parameters, the existing title is deleted. 
  13671.  
  13672.  
  13673. ΓòÉΓòÉΓòÉ 94.2.13. SELCOLS() ΓòÉΓòÉΓòÉ
  13674.  
  13675. ΓöÇΓöÇSELCOLS(Entry)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13676.  
  13677. This action selects or deselects columns in a report. The SELECTABLE action 
  13678. must be called before columns can be selected. 
  13679.  
  13680. Entry is a pointer to a vector of column names. 
  13681.  
  13682. For Host tables, long column names should be supplied. For each entry in the 
  13683. parameter list there is a toggling effect equivalent to selecting the checkbox 
  13684. in the EUI, (if the column was not selected before this action it is added) 
  13685. otherwise it is deleted in the report. For multiple instances of the same 
  13686. column in a call, only one will be dealt with. 
  13687.  
  13688.  
  13689. ΓòÉΓòÉΓòÉ 94.2.14. SETCOLTITLE() ΓòÉΓòÉΓòÉ
  13690.  
  13691. ΓöÇΓöÇSETCOLTITLE(Column,Title)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13692.  
  13693. This action sets the title (heading) associated with the selected column 
  13694. Column, to the string Title. 
  13695.  
  13696.  
  13697. ΓòÉΓòÉΓòÉ 94.2.15. SETCOLWIDTH() ΓòÉΓòÉΓòÉ
  13698.  
  13699. ΓöÇΓöÇSETCOLWIDTH(Column,Width)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13700.  
  13701. This action sets the report display width of selected column Column, to the 
  13702. value Width. 
  13703.  
  13704.  
  13705. ΓòÉΓòÉΓòÉ 94.2.16. SELANALYSIS() ΓòÉΓòÉΓòÉ
  13706.  
  13707. ΓöÇΓöÇSELANALYSIS(Column,A_type,Type,Base)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13708.  
  13709. This action toggles analysis for the selected column Column. If the specified 
  13710. analysis is already displayed, then it is removed, otherwise it is added. The 
  13711. analysis is determined from the other 3 parameters: 
  13712.  
  13713. o A_type is the Analysis type and must be one letter from the list below: 
  13714.  
  13715.    S         Total (the sum of a numeric column) 
  13716.    C         Count 
  13717.    H         High 
  13718.    L         Low 
  13719.    A         Average (valid for numeric columns only) 
  13720.    D         Standard deviation (valid for numeric columns only). 
  13721.    E         Evaluate (calculate the subtotal for a calculated column using the 
  13722.              same expression as was used to create the calculated column). 
  13723.  
  13724. o Type = C (Cumulative) or A (Absolute) 
  13725. o Base is one letter from the list below: 
  13726.  
  13727.    T         Use total values as the base 
  13728.    D         Show values as a percentage of Down subtotal 
  13729.    A         Show values as a percentage of Across subtotal 
  13730.    G         Show values as a percentage of the grand total. 
  13731.  
  13732. Note that the similarly named IBMCHART SelAnalysis action has a different 
  13733. syntax. 
  13734.  
  13735.  
  13736. ΓòÉΓòÉΓòÉ 94.2.17. SEND() ΓòÉΓòÉΓòÉ
  13737.  
  13738. ΓöÇΓöÇSEND(pFormats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13739.  
  13740. This action mails copies of the report in the specified formats. pFormats 
  13741. points to a vector of format names. (See COPYTO() for values for pFormats.) 
  13742.  
  13743.  
  13744. ΓòÉΓòÉΓòÉ 94.3. Events ΓòÉΓòÉΓòÉ
  13745.  
  13746. QUIT 
  13747.  
  13748.  
  13749. ΓòÉΓòÉΓòÉ 94.3.1. QUIT ΓòÉΓòÉΓòÉ
  13750.  
  13751. This event is signaled whenever the object handler has been requested by the 
  13752. user to terminate. Use A.System.Object to identify the object handler in 
  13753. question, and to issue API calls prior to shutting the object. 
  13754.  
  13755.  
  13756. ΓòÉΓòÉΓòÉ 94.3.2. Return codes ΓòÉΓòÉΓòÉ
  13757.  
  13758. Objects return error or completion codes to callers as follows: 
  13759.  
  13760. Code      Meaning 
  13761. 0         Successful completion 
  13762. 1         Unexpected error 
  13763. 2         No parameters defined 
  13764. 3         No table defined 
  13765. 4         Column name not valid 
  13766. 5         Column is controlling across subtotals. 
  13767.  
  13768.  
  13769. ΓòÉΓòÉΓòÉ 94.4. Examples ΓòÉΓòÉΓòÉ
  13770.  
  13771. This example uses the EMPDATA data table to produce the Name, Division and 
  13772. Annual Salary of people. The title and column width will be adjusted so that 
  13773. the report shows "Employee Name" instead of "Name" as a column heading. 
  13774.  
  13775. PROCEDURE open_report
  13776. DO
  13777.   OPEN IBMREPORT MyReport,
  13778.     Name        = "",                   /* Give it a title        */
  13779.     Identifier  = "D:\DSS\Report",      /* Use standard template      */
  13780.     AutoRefresh = 1,                    /* Switch on refresh            */
  13781.     Dialog      = 0                     /* No column selection window   */
  13782.  
  13783.   CALL MyReport'SELECTTABLE("D:\DSS\SAMPLES\EMPDATA", 'PRODUCT')
  13784.   CALL MyReport'SELCOLS("Name", "Division", "AnnualSalary")
  13785.  
  13786.   CALL MyReport'SETCOLTITLE("Name", "Employee Name")
  13787.   CALL MyReport'SETCOLWIDTH("Name", 20)
  13788.  
  13789.   CALL MyReport'OPEN()                       ! Display the report
  13790. END
  13791.  
  13792. Examples source library: 
  13793.  
  13794.  
  13795. ΓòÉΓòÉΓòÉ 95. IBMSQLSTATEMENT ΓòÉΓòÉΓòÉ
  13796.  
  13797. The IBMSQLSTATEMENT object class provides a Visualizer SQL Statement object to 
  13798. store, modify, and run SQL strings. 
  13799.  
  13800. Attributes 
  13801.  
  13802. Actions 
  13803.  
  13804. Events: None. 
  13805.  
  13806. Examples 
  13807.  
  13808. See also: IBMSQLTABLE, IBMDATA, DATASESSION, DATATRANS. 
  13809.  
  13810.  
  13811. ΓòÉΓòÉΓòÉ 95.1. Attributes ΓòÉΓòÉΓòÉ
  13812.  
  13813. NAME                  IDENTIFIER 
  13814. CODE                  MODIFIED 
  13815. READONLY              DIALOG 
  13816. CONFIRM               DBNAME 
  13817.  
  13818.  
  13819. ΓòÉΓòÉΓòÉ 95.1.1. NAME ΓòÉΓòÉΓòÉ
  13820.  
  13821. The title of the SQL Statement object. 
  13822.  
  13823.  
  13824. ΓòÉΓòÉΓòÉ 95.1.2. IDENTIFIER ΓòÉΓòÉΓòÉ
  13825.  
  13826. The path, file name, and extension of the specification to be used as a model 
  13827. for the SQL Statement object. 
  13828.  
  13829.  
  13830. ΓòÉΓòÉΓòÉ 95.1.3. CODE ΓòÉΓòÉΓòÉ
  13831.  
  13832. The error code from the last action. 
  13833.  
  13834.  
  13835. ΓòÉΓòÉΓòÉ 95.1.4. MODIFIED ΓòÉΓòÉΓòÉ
  13836.  
  13837. Whether the object has been modified since it was last saved: either 1 
  13838. (modified), or 0 (not modified). 
  13839.  
  13840.  
  13841. ΓòÉΓòÉΓòÉ 95.1.5. READONLY ΓòÉΓòÉΓòÉ
  13842.  
  13843. Whether the object is read-only: either 1 (read-only), or 0 (read/write). 
  13844.  
  13845.  
  13846. ΓòÉΓòÉΓòÉ 95.1.6. DIALOG ΓòÉΓòÉΓòÉ
  13847.  
  13848. This attribute may be set to 1 (yes), or 0 (no) to control error or print 
  13849. dialogs: 
  13850.  
  13851. 1         A dialog is activated to handle the error condition. 
  13852. 0         Dialogs are suppressed, default action taken. 
  13853.  
  13854.  
  13855. ΓòÉΓòÉΓòÉ 95.1.7. CONFIRM ΓòÉΓòÉΓòÉ
  13856.  
  13857. Whether the user must confirm changes: either 1 (changes must be confirmed), or 
  13858. 0 (no confirmation of changes). 
  13859.  
  13860. Default: 1 (changes must be confirmed) 
  13861.  
  13862.  
  13863. ΓòÉΓòÉΓòÉ 95.1.8. DBNAME ΓòÉΓòÉΓòÉ
  13864.  
  13865. The name of the default database that all subsequent SQL statements will be 
  13866. sent to. 
  13867.  
  13868.  
  13869. ΓòÉΓòÉΓòÉ 95.2. Actions ΓòÉΓòÉΓòÉ
  13870.  
  13871. OPEN()               SAVE() 
  13872. REFRESH()            CLOSE() 
  13873. GETSQL()             PUTSQL() 
  13874. RUN() 
  13875.  
  13876.  
  13877. ΓòÉΓòÉΓòÉ 95.2.1. OPEN() ΓòÉΓòÉΓòÉ
  13878.  
  13879. ΓöÇΓöÇOPEN()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13880.  
  13881. Puts a view of the object on the screen. 
  13882.  
  13883.  
  13884. ΓòÉΓòÉΓòÉ 95.2.2. SAVE() ΓòÉΓòÉΓòÉ
  13885.  
  13886. ΓöÇΓöÇSAVE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13887.  
  13888. Saves the object 
  13889.  
  13890.  
  13891. ΓòÉΓòÉΓòÉ 95.2.3. REFRESH() ΓòÉΓòÉΓòÉ
  13892.  
  13893. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13894.  
  13895. Surfaces the object's primary window and refreshes the contents. Use REFRESH() 
  13896. after using PUTSQL() to change the contents. 
  13897.  
  13898.  
  13899. ΓòÉΓòÉΓòÉ 95.2.4. CLOSE() ΓòÉΓòÉΓòÉ
  13900.  
  13901. ΓöÇΓöÇCLOSE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13902.  
  13903. Closes the object, prompting the user to save changes if necessary. 
  13904.  
  13905.  
  13906. ΓòÉΓòÉΓòÉ 95.2.5. GETSQL() ΓòÉΓòÉΓòÉ
  13907.  
  13908. ΓöÇΓöÇGETSQL(string)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13909.  
  13910. Return SQL after substituting variables in string. 
  13911.  
  13912. Variables are substituted in the same way as in QMF... 
  13913.  
  13914.  
  13915. ΓòÉΓòÉΓòÉ 95.2.6. PUTSQL() ΓòÉΓòÉΓòÉ
  13916.  
  13917. ΓöÇΓöÇPUTSQL(string)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13918.  
  13919. Specify SQL string string. 
  13920.  
  13921.  
  13922. ΓòÉΓòÉΓòÉ 95.2.7. RUN() ΓòÉΓòÉΓòÉ
  13923.  
  13924. ΓöÇΓöÇRUN()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  13925.  
  13926. Runs the SQL string, then opens an IBMSQLTABLE view of the resulting data. 
  13927.  
  13928.  
  13929. ΓòÉΓòÉΓòÉ 95.3. Examples ΓòÉΓòÉΓòÉ
  13930.  
  13931. ! Opening a saved SQL statement
  13932.  
  13933. OPEN IBMSQLSTATEMENT MySQL,
  13934.  NAME       = "My saved SQL",
  13935.  IDENTIFIER = "d:\ftw\work\mysql"
  13936.  
  13937. CALL MySQL'OPEN()
  13938.  
  13939. DEFINE NewSQL[0]
  13940. INSERT NewSQL[0] = "SELECT Job, SUM(Salary) "
  13941. INSERT NewSQL[0] = "FROM Staff "
  13942. INSERT NewSQL[0] = "WHERE Dept=@DEPTNUMBER "
  13943. INSERT NewSQL[0] = "GROUP BY Job"
  13944.  
  13945. LET MySQL'DBNAME = 'SAMPLE'
  13946. CALL MySQL'PUTSQL(POINTER(NewSQL[0]))
  13947. CALL MySQL'REFRESH()
  13948.  
  13949. ! Run the new SQL, displaying results in a Data viewer window
  13950. CALL MySQL'RUN()
  13951.  
  13952. Examples source library: 
  13953.  
  13954.  
  13955. ΓòÉΓòÉΓòÉ 96. IBMSQLTABLE ΓòÉΓòÉΓòÉ
  13956.  
  13957. The IBMSQLTABLE object class provides a Visualizer Data viewer object. 
  13958.  
  13959. Attributes 
  13960.  
  13961. Actions 
  13962.  
  13963. Events: None. 
  13964.  
  13965. Examples 
  13966.  
  13967.  
  13968. ΓòÉΓòÉΓòÉ 96.1. Attributes ΓòÉΓòÉΓòÉ
  13969.  
  13970. DATABASE             DATATYPE 
  13971. SQLTABLE             COLNAMES 
  13972. SQLSTRING            CODE 
  13973. REASON 
  13974.  
  13975.  
  13976. ΓòÉΓòÉΓòÉ 96.1.1. DATABASE ΓòÉΓòÉΓòÉ
  13977.  
  13978. The database name. 
  13979.  
  13980.  
  13981. ΓòÉΓòÉΓòÉ 96.1.2. DATATYPE ΓòÉΓòÉΓòÉ
  13982.  
  13983. The type of source data. Either of: 
  13984.  
  13985. "STRING"  SQL string 
  13986. "TABLE"   Table 
  13987.  
  13988.  
  13989. ΓòÉΓòÉΓòÉ 96.1.3. SQLTABLE ΓòÉΓòÉΓòÉ
  13990.  
  13991. Name of the table in the database (if DATATYPE is set to "TABLE"). 
  13992.  
  13993.  
  13994. ΓòÉΓòÉΓòÉ 96.1.4. COLNAMES ΓòÉΓòÉΓòÉ
  13995.  
  13996. Pointer to an array of column names. If you do not specify COLNAMES, then 
  13997. default column names from the database are used. 
  13998.  
  13999.  
  14000. ΓòÉΓòÉΓòÉ 96.1.5. SQLSTRING ΓòÉΓòÉΓòÉ
  14001.  
  14002. Pointer to an array containing the SQL string (if DATATYPE is set to "STRING"). 
  14003.  
  14004.  
  14005. ΓòÉΓòÉΓòÉ 96.1.6. CODE ΓòÉΓòÉΓòÉ
  14006.  
  14007. The error code from the last action. 
  14008.  
  14009.  
  14010. ΓòÉΓòÉΓòÉ 96.1.7. REASON ΓòÉΓòÉΓòÉ
  14011.  
  14012. The error message resulting from the last action that caused an error. 
  14013.  
  14014.  
  14015. ΓòÉΓòÉΓòÉ 96.2. Actions ΓòÉΓòÉΓòÉ
  14016.  
  14017. PRINT()              PUTSQL() 
  14018. DISCARD()            OPEN() 
  14019.  
  14020.  
  14021. ΓòÉΓòÉΓòÉ 96.2.1. PRINT() ΓòÉΓòÉΓòÉ
  14022.  
  14023. ΓöÇΓöÇPRINT(printer,dialog,"",jobtitle)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14024.  
  14025. Prints the data. 
  14026.  
  14027. printer   is either the name of a printer, or a pointer to an open printer 
  14028.           object. 
  14029.  
  14030. dialog    One of: 
  14031.  
  14032.    0         No print dialog 
  14033.    1         Use a print dialog 
  14034.  
  14035. ""        Reserved. 
  14036.  
  14037. jobtitle  The print job title. Not needed if printer is a pointer to a printer 
  14038.           object. 
  14039.  
  14040.  
  14041. ΓòÉΓòÉΓòÉ 96.2.2. PUTSQL() ΓòÉΓòÉΓòÉ
  14042.  
  14043. ΓöÇΓöÇPUTSQL(database,sqlstring,datatype,sqltable,"",colnames)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14044.  
  14045. Refreshes the data. 
  14046.  
  14047. The parameters database, string, datatype, table, and colnames work in the same 
  14048. way as the corresponding attributes. 
  14049.  
  14050.  
  14051. ΓòÉΓòÉΓòÉ 96.2.3. DISCARD() ΓòÉΓòÉΓòÉ
  14052.  
  14053. ΓöÇΓöÇDISCARD()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14054.  
  14055. Deletes the table or view from the database (if DATATYPE is set to "TABLE"). 
  14056.  
  14057.  
  14058. ΓòÉΓòÉΓòÉ 96.2.4. OPEN() ΓòÉΓòÉΓòÉ
  14059.  
  14060. ΓöÇΓöÇOPEN()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14061.  
  14062. Opens a window on the Data viewer. 
  14063.  
  14064.  
  14065. ΓòÉΓòÉΓòÉ 96.3. Examples ΓòÉΓòÉΓòÉ
  14066.  
  14067. ! Opening a Data viewer on the result of running some SQL
  14068.  
  14069. DEFINE MySQL[0]
  14070. INSERT MySQL[0] = "SELECT * FROM USERID.Staff"
  14071.  
  14072. OPEN IBMSQLTABLE MySQLTab,
  14073.  DATABASE  = "SAMPLE",
  14074.  DATATYPE  = "STRING",
  14075.  SQLSTRING = POINTER(MySQL[0])
  14076.  
  14077. CALL MySQLTab'OPEN()
  14078.  
  14079. ! Updating the open Data viewer with the result of different SQL
  14080.  
  14081. DEFINE MySQL[0]
  14082. INSERT MySQL[0] = "SELECT NAME,SALARY "
  14083. INSERT MySQL[0] = "FROM USERID.Staff "
  14084. INSERT MySQL[0] = "WHERE NAME='Smith'"
  14085.  
  14086. DEFINE ColNameVec[0]
  14087. INSERT ColNameVec[0] = "Name Column"
  14088. INSERT ColNameVec[0] = "Salary Column"
  14089.  
  14090. CALL MySQLTab'PUTSQL(
  14091.       "SAMPLE",                /* database to read data from    */
  14092.       POINTER(MySQL[0]),       /* pointer to SQL string         */
  14093.       "STRING",                /* data type                     */
  14094.       "",                      /* table name                    */
  14095.       "USERID",                /* userId                        */
  14096.       POINTER(ColNameVec[0]))  /* pointer to column names array */
  14097.  
  14098. ! Opening a Data viewer on a table in the database
  14099.  
  14100. OPEN IBMSQLTABLE MySQLTab,
  14101.  DATABASE = "SAMPLE",
  14102.  DATATYPE = "TABLE",
  14103.  SQLTABLE = "USERID.ORG"
  14104.  
  14105. CALL MySQLTab'OPEN()
  14106.  
  14107. Examples source library: 
  14108.  
  14109.  
  14110. ΓòÉΓòÉΓòÉ 97. IBMTABLE ΓòÉΓòÉΓòÉ
  14111.  
  14112. The IBMTABLE object class creates an instance of the Visualizer table editor. 
  14113.  
  14114. Attributes 
  14115.  
  14116. Actions 
  14117.  
  14118. Events 
  14119.  
  14120. Examples 
  14121.  
  14122.  
  14123. ΓòÉΓòÉΓòÉ 97.1. Attributes ΓòÉΓòÉΓòÉ
  14124.  
  14125. CODE                  DIALOG 
  14126. IDENTIFIER            INFOAREA 
  14127. MODIFIED              NAME 
  14128. READONLY              REASON 
  14129. VIEW 
  14130.  
  14131.  
  14132. ΓòÉΓòÉΓòÉ 97.1.1. CODE ΓòÉΓòÉΓòÉ
  14133.  
  14134. Internal error code for the most recent operation. Read-only. 
  14135.  
  14136. Default: None 
  14137.  
  14138.  
  14139. ΓòÉΓòÉΓòÉ 97.1.2. DIALOG ΓòÉΓòÉΓòÉ
  14140.  
  14141. This attribute may be set to 1 or 0 ("Yes" or "No") to control error dialogs. 
  14142.  
  14143. 1         A dialog is activated to handle the error condition. 
  14144. 0         Dialogs are suppressed, default action taken. 
  14145.  
  14146.  
  14147. ΓòÉΓòÉΓòÉ 97.1.3. IDENTIFIER ΓòÉΓòÉΓòÉ
  14148.  
  14149. This attribute must be set to the complete path and name of the table to be 
  14150. edited. 
  14151.  
  14152.  
  14153. ΓòÉΓòÉΓòÉ 97.1.4. INFOAREA ΓòÉΓòÉΓòÉ
  14154.  
  14155. Boolean flag to turn the information area on (1) and off (0). 
  14156.  
  14157. Default: 1 
  14158.  
  14159.  
  14160. ΓòÉΓòÉΓòÉ 97.1.5. MODIFIED ΓòÉΓòÉΓòÉ
  14161.  
  14162. This attribute indicates whether the object has been modified since it was last 
  14163. saved. 
  14164.  
  14165. 1         Object has been modified. 
  14166. 0         Object has not been modified. 
  14167.  
  14168.  
  14169. ΓòÉΓòÉΓòÉ 97.1.6. NAME ΓòÉΓòÉΓòÉ
  14170.  
  14171. This attribute may be set to the workplace object title of the table to be 
  14172. opened. (NAME will be used as part of the window title.) 
  14173.  
  14174.  
  14175. ΓòÉΓòÉΓòÉ 97.1.7. READONLY ΓòÉΓòÉΓòÉ
  14176.  
  14177. Boolean flag to indicate, when 1 (true), that the object cannot be saved onto 
  14178. itself. 
  14179.  
  14180. Default: 1 (If table is a read-only file) 
  14181.  
  14182.  
  14183. ΓòÉΓòÉΓòÉ 97.1.8. REASON ΓòÉΓòÉΓòÉ
  14184.  
  14185. Text message of most recent error code. Read-only. 
  14186.  
  14187. Default: None 
  14188.  
  14189.  
  14190. ΓòÉΓòÉΓòÉ 97.1.9. VIEW ΓòÉΓòÉΓòÉ
  14191.  
  14192. This attribute determines the type of view: 
  14193.  
  14194. o TABLE 
  14195. o FORM 
  14196.  
  14197. Default: "TABLE" 
  14198.  
  14199.  
  14200. ΓòÉΓòÉΓòÉ 97.2. Actions ΓòÉΓòÉΓòÉ
  14201.  
  14202. COMPRESS()                COPYTO() 
  14203. DISCARD()                 COLUMNS() 
  14204. INQROWS()                 INQCOLPROP() 
  14205. INQCOLUMNS()              INQFIXEDCOLS() 
  14206. INQKEYS()                 INQTYPES() 
  14207. JOIN()                    OPEN() 
  14208. PRINT()                   REFRESH() 
  14209. SAVE()                    SEND() 
  14210. SETCOLPROP()              SETCOLUMNS() 
  14211. SETROWS()                 SETFIXEDCOLS() 
  14212. SPLIT() 
  14213.  
  14214.  
  14215. ΓòÉΓòÉΓòÉ 97.2.1. COMPRESS() ΓòÉΓòÉΓòÉ
  14216.  
  14217. ΓöÇΓöÇCOMPRESS()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14218.  
  14219. The COMPRESS action causes a table compress to take place. Savings in space 
  14220. will not be seen until a SAVE() action occurs. 
  14221.  
  14222. If successful, 0 will be returned, otherwise an error code will be returned. 
  14223.  
  14224.  
  14225. ΓòÉΓòÉΓòÉ 97.2.2. COPYTO() ΓòÉΓòÉΓòÉ
  14226.  
  14227.                      ΓöîΓöÇ"IBMTABLE"ΓöÇΓöÉ
  14228. ΓöÇΓöÇCOPYTO(filename,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14229.                      ΓööΓöÇformatΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  14230.  
  14231. The current data is copied to the fully qualified file specified in filename. 
  14232. If you require a specific file format, specify format as one of: 
  14233.  
  14234. "IBMTABLE" Visualizer table (default) 
  14235. "IBMTABLESUBSET" Current subset in Visualizer table format 
  14236. "IXF"     Integration exchange format 
  14237. "PCIXF"   PC version of IXF supported by DB2 for OS/2 
  14238. "DIF"     data interchange format 
  14239. "EDIF"    extended DIF 
  14240. "FLAT"    ASCII file 
  14241. "LIST"    Comma separated value (CSV) file 
  14242. "DBF"     dBase III format. 
  14243.  
  14244. If successful, 0 will be returned, otherwise an error code will be returned. 
  14245.  
  14246.  
  14247. ΓòÉΓòÉΓòÉ 97.2.3. DISCARD() ΓòÉΓòÉΓòÉ
  14248.  
  14249. ΓöÇΓöÇDISCARD()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14250.  
  14251. The DISCARD action deletes the instance of the object. 
  14252.  
  14253.  
  14254. ΓòÉΓòÉΓòÉ 97.2.4. COLUMNS() ΓòÉΓòÉΓòÉ
  14255.  
  14256. ΓöÇΓöÇCOLUMNS(pcolumns)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14257.  
  14258. pcolumns identifies a vector in which the names of the columns are returned. 
  14259. The names are ordered by their ORDER attribute (this is the order they are 
  14260. normally displayed). 
  14261.  
  14262.  
  14263. ΓòÉΓòÉΓòÉ 97.2.5. INQROWS() ΓòÉΓòÉΓòÉ
  14264.  
  14265. ΓöÇΓöÇINQROWS(pointer)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14266.  
  14267. pointer identifies a variable to be filled with the current subset rows 
  14268. expression. 
  14269.  
  14270.  
  14271. ΓòÉΓòÉΓòÉ 97.2.6. INQCOLPROP() ΓòÉΓòÉΓòÉ
  14272.  
  14273. ΓöÇΓöÇINQCOLPROP(column_name,property,pvalue)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14274.  
  14275. Fills the variable pointed to by pvalue with the value of a table or column 
  14276. property. 
  14277.  
  14278. column_name is the name of the column or is "" for a table property property is 
  14279. one of: TYPE, COLDESC, TABDESC, EXPRESSION, RANGES, FORMAT or NULL as described 
  14280. in the SETCOLPROP() action. FORMAT is for numeric columns only. 
  14281.  
  14282. The return value is: 
  14283.  
  14284. 0         Property value returned 
  14285. -1        Incorrect column name 
  14286. -2        Incorrect property name 
  14287. -3        Pointer to the variable not valid. 
  14288.  
  14289.  
  14290. ΓòÉΓòÉΓòÉ 97.2.7. INQCOLUMNS() ΓòÉΓòÉΓòÉ
  14291.  
  14292. ΓöÇΓöÇINQCOLUMNS(columns)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14293.  
  14294. pcolumns identifies a vector to be filled with the list of displayed columns 
  14295. (in the order they are selected for display). 
  14296.  
  14297.  
  14298. ΓòÉΓòÉΓòÉ 97.2.8. INQFIXEDCOLS() ΓòÉΓòÉΓòÉ
  14299.  
  14300. ΓöÇΓöÇINQFIXEDCOLS(pkeys,pcolumns)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14301.  
  14302. This action sets the variable pointed to by pkeys to 1 if key columns are fixed 
  14303. or to 0 if key columns are not fixed. 
  14304.  
  14305. This action fills the vector pointed to by pcolumns with a list of fixed 
  14306. columns. The action returns 0 if a list of fixed columns was returned or -1 if 
  14307. one of the parameters was not valid. 
  14308.  
  14309.  
  14310. ΓòÉΓòÉΓòÉ 97.2.9. INQKEYS() ΓòÉΓòÉΓòÉ
  14311.  
  14312. ΓöÇΓöÇINQKEYS(pkeys)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14313.  
  14314. This action fills the vector pointed to by pkeys with a list of table keys. The 
  14315. keys are in ascending order. Names of descending keys are preceded by a - sign. 
  14316.  
  14317.  
  14318. ΓòÉΓòÉΓòÉ 97.2.10. INQTYPES() ΓòÉΓòÉΓòÉ
  14319.  
  14320. ΓöÇΓöÇINQTYPES(ptypes)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14321.  
  14322. This action fills the vector pointed to by ptypes with the types of table 
  14323. columns. Columns are ordered by their ORDER attribute. 
  14324.  
  14325.  
  14326. ΓòÉΓòÉΓòÉ 97.2.11. JOIN() ΓòÉΓòÉΓòÉ
  14327.  
  14328. ΓöÇΓöÇJOIN(column_1,column_2,character)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14329.  
  14330. Joins two nonkey columns. The new column has the same name as column_1. 
  14331. character is the separator character to use to divide the sections of the new 
  14332. column. 
  14333.  
  14334. The return value is: 
  14335.  
  14336. 0         Join successful 
  14337. -1        Incorrect column name, or a keyed column was used 
  14338. -2        Unusable separator character 
  14339. -3        Join failed. 
  14340.  
  14341.  
  14342. ΓòÉΓòÉΓòÉ 97.2.12. OPEN() ΓòÉΓòÉΓòÉ
  14343.  
  14344. ΓöÇΓöÇOPEN()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14345.  
  14346. The OPEN action puts a view of the object on the screen. 
  14347.  
  14348.  
  14349. ΓòÉΓòÉΓòÉ 97.2.13. PRINT() ΓòÉΓòÉΓòÉ
  14350.  
  14351.                                         ΓöîΓöÇ"TABLE"ΓöÇΓöÉ
  14352. ΓöÇΓöÇPRINT(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14353.            ΓööΓöÇnameΓöÇΓöÿ   ΓööΓöÇprintdialogΓöÇΓöÿ   ΓööΓöÇmethodΓöÇΓöÇΓöÿ
  14354.  
  14355. The PRINT action generates output suitable for printing or plotting. name is an 
  14356. optional parameter indicating the name of the printer to use (the printer name 
  14357. is the device name of a Workplace Shell printer object), or is a pointer to an 
  14358. open printer object. 
  14359.  
  14360. If the printer name has not been specified and the object was opened with the 
  14361. DIALOG attribute set to 1 (the default), then a standard screen dialog is 
  14362. invoked which presents the end user with a list of the available printers. 
  14363.  
  14364. If the printer name has not been specified and the object was opened with 
  14365. DIALOG set to 0, then the default printer is used. The default printer is 
  14366. specified by the OS/2 Print Manager. 
  14367.  
  14368. If name is a pointer to a printer or if DIALOG is 0, the value of printdialog 
  14369. is ignored. 
  14370.  
  14371. Otherwise, printdialog is used to determine whether print dialogs should be 
  14372. surfaced or not. That is, if printdialog is not specified, dialogs are surfaced 
  14373. if the DIALOG attribute is set to 1 and Review print options on the Profile 
  14374. notebook is set. 
  14375.  
  14376. method is an optional parameter with: 
  14377.  
  14378. TABLE     the entire table is to be printed 
  14379. SUBSET    the displayed rows and columns are to be printed 
  14380.  
  14381.  
  14382. ΓòÉΓòÉΓòÉ 97.2.14. REFRESH() ΓòÉΓòÉΓòÉ
  14383.  
  14384. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14385.  
  14386. The REFRESH action surfaces the object's primary window. 
  14387.  
  14388.  
  14389. ΓòÉΓòÉΓòÉ 97.2.15. SAVE() ΓòÉΓòÉΓòÉ
  14390.  
  14391. ΓöÇΓöÇSAVE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14392.  
  14393. The SAVE action saves the object. 
  14394.  
  14395.  
  14396. ΓòÉΓòÉΓòÉ 97.2.16. SEND() ΓòÉΓòÉΓòÉ
  14397.  
  14398. ΓöÇΓöÇSEND(pFormats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14399.  
  14400. This action mails copies of the table in the specified formats. pFormats points 
  14401. to a vector of format names. (See COPYTO() for values for pFormats.) 
  14402.  
  14403.  
  14404. ΓòÉΓòÉΓòÉ 97.2.17. SETCOLPROP() ΓòÉΓòÉΓòÉ
  14405.  
  14406. ΓöÇΓöÇSETCOLPROP(column_name,property,new_value)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14407.  
  14408. Updates one of a set of table or column properties. column_name is the name of 
  14409. the column or "" for a table property. 
  14410.  
  14411. property is one of the following: 
  14412.  
  14413. FORMAT    Format of the column (for numeric columns only) 
  14414. WIDTH     Display width of the column (1 to 254) 
  14415. TYPE      Type of column (character, numeric, date, time, or graphic) 
  14416. COLDESC   First level help column description 
  14417. TABDESC   Table comment property 
  14418. EXPRESSION Expression to check data (for example,  salary<20000) 
  14419. RANGES    Range check (for example,  100:200) 
  14420. NULL      NULL check condition: 
  14421.  
  14422.    1         NULLs allowed 
  14423.    2         NULLs replaced with default value 
  14424.    3         NULLs not allowed 
  14425. DEFAULT   Default value 
  14426.  
  14427. The return value is: 
  14428.  
  14429. 0         Property change was successful 
  14430. -1        Incorrect column name 
  14431. -2        Incorrect property name 
  14432. -3        Incorrect value for new property 
  14433.  
  14434.  
  14435. ΓòÉΓòÉΓòÉ 97.2.18. SETCOLUMNS() ΓòÉΓòÉΓòÉ
  14436.  
  14437. ΓöÇΓöÇSETCOLUMNS(pcolumns)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14438.  
  14439. pcolumns identifies a vector holding a list of columns to be displayed. The 
  14440. return value is -1 when an incorrect column name was found in the list. 
  14441.  
  14442.  
  14443. ΓòÉΓòÉΓòÉ 97.2.19. SETROWS() ΓòÉΓòÉΓòÉ
  14444.  
  14445. ΓöÇΓöÇSETROWS(rowexp)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14446.  
  14447. Sets the rows to be displayed. rowexp is a new subset rows expression such as: 
  14448. AnnualSalary>100000. The return value is -1 when an incorrect row expression is 
  14449. supplied. 
  14450.  
  14451.  
  14452. ΓòÉΓòÉΓòÉ 97.2.20. SETFIXEDCOLS() ΓòÉΓòÉΓòÉ
  14453.  
  14454. ΓöÇΓöÇSETFIXEDCOLS(fixkeys,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14455.                           ΓööΓöÇpcolumnsΓöÇΓöÿ
  14456.  
  14457. If fixkeys is 1, the key columns are fixed. If 0, then a pointer to a vector 
  14458. holding a list of columns to be fixed must be specified in pcolumns. 
  14459.  
  14460. The return value is -1 when incorrect parameters were used, or -2 when an 
  14461. incorrect column name was found in the list. 
  14462.  
  14463.  
  14464. ΓòÉΓòÉΓòÉ 97.2.21. SPLIT() ΓòÉΓòÉΓòÉ
  14465.  
  14466. ΓöÇΓöÇSPLIT(column_name,split_type,character)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14467.  
  14468. Splits a column into one or more columns. column_name is the name of the column 
  14469. to split. split_type is: 
  14470.  
  14471. o "Separator" if the columns are to be split at occurrences of character. 
  14472.  
  14473. o "Position" if the columns are to be split at the character position specified 
  14474.   in character. 
  14475. character is either the separator character to use, or the character position 
  14476. of the split. 
  14477.  
  14478. The return value is the number of columns created from the specified column, 
  14479. or: 
  14480.  
  14481. -1        Incorrect column name 
  14482. -2        Incorrect separator or character position 
  14483. -3        Incorrect split type 
  14484. -4        Split failed. 
  14485.  
  14486.  
  14487. ΓòÉΓòÉΓòÉ 97.3. Events ΓòÉΓòÉΓòÉ
  14488.  
  14489. DATASELECT("ROW", rownum, pValues)                 QUIT 
  14490.  
  14491.  
  14492. ΓòÉΓòÉΓòÉ 97.3.1. DATASELECT("ROW",rownum,pValues) ΓòÉΓòÉΓòÉ
  14493.  
  14494. Signaled when the user selects a single row, or when a row is selected as a 
  14495. result of an action such as Find or Power Insert, or when a different row is 
  14496. displayed in Form view. 
  14497.  
  14498. The first parameter is always "ROW". 
  14499.  
  14500. rownum is the table row number of the selected row. If the row is an 
  14501. unvalidated new row in the Table view, then rownum is negative. 
  14502.  
  14503. pValues is a pointer to a vector containing the values in the selected row. If 
  14504. the selected row is in the Table view and has unvalidated values, then the 
  14505. vector contains these unvalidated values. The values are ordered by the 
  14506. columns' Position attributes, not by the columns' positions in the current 
  14507. column subset. 
  14508.  
  14509.  
  14510. ΓòÉΓòÉΓòÉ 97.3.2. QUIT ΓòÉΓòÉΓòÉ
  14511.  
  14512. This event is signaled whenever the object handler has been requested by the 
  14513. user to terminate. Use A.System.Object to identify the object handler in 
  14514. question, and to issue API calls prior to shutting the object. 
  14515.  
  14516.  
  14517. ΓòÉΓòÉΓòÉ 97.4. Examples ΓòÉΓòÉΓòÉ
  14518.  
  14519. Sample code to open a IBMTABLE object. 
  14520.  
  14521. OPEN IBMTABLE MyTab,
  14522.  NAME       = "Employee data",
  14523.  IDENTIFIER = "D:\DSS\SAMPLES\ENU\EMPDATA"
  14524.  
  14525. ! split the Name column into first name and last name
  14526. CALL MyTab'SPLIT("Name", "Separator", ",")
  14527.  
  14528. ! fix the key columns in the table view
  14529. CALL MyTab'SETFIXEDCOLS(1)
  14530.  
  14531. ! show only members of "Sales" division with no commission
  14532. LET SubsetRows = 'Division = "Sales" & Commission = 0'
  14533. CALL MyTab'SETROWS(SubsetRows)
  14534.  
  14535. ! now show the table
  14536. CALL MyTab'OPEN()
  14537.  
  14538. Examples source library: 
  14539.  
  14540.  
  14541. ΓòÉΓòÉΓòÉ 98. IF ... THEN ... ELSE ΓòÉΓòÉΓòÉ
  14542.  
  14543. The IF, THEN, and ELSE statements form a group that directs the flow of control 
  14544. in a program. 
  14545.  
  14546. The IF statement tests the result of a condition. 
  14547.  
  14548. The THEN statement introduces a statement or set of statements to be executed 
  14549. when the IF condition is true. 
  14550.  
  14551. The ELSE statement introduces a statement or set of statements to be executed 
  14552. when the IF condition is false. 
  14553.  
  14554. ΓöÇΓöÇIFΓöÇΓöÇconditionΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇstatementlist1ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14555.                    ΓööΓöÇTHENΓöÇΓöÿ                  ΓööΓöÇELSEΓöÇΓöÇstatementlist2ΓöÇΓöÿ
  14556.  
  14557. Examples 
  14558.  
  14559. More about IF ... THEN ... ELSE 
  14560.  
  14561. See also: CASE...WHEN...OTHERWISE...END, ELSE, NOTHING, THEN 
  14562.  
  14563.  
  14564. ΓòÉΓòÉΓòÉ 98.1. Examples ΓòÉΓòÉΓòÉ
  14565.  
  14566. IF x > 0
  14567.   Total += x
  14568. ELSE
  14569.   Total = 0
  14570.  
  14571. IF Status = "Open" & Action = "Update"
  14572. DO
  14573.   IF Changed
  14574.   DO
  14575.      CALL UPDATE()
  14576.      LET UpdateCount +=1
  14577.   END
  14578. END
  14579.  
  14580. IF day="Friday" & time="5"
  14581. THEN a = 1
  14582. ELSE DO
  14583.   a = 2
  14584.   STR1 = "Are you working this weekend?"
  14585. END
  14586.  
  14587. IF OK
  14588. THEN
  14589.   CALL UPDATE()
  14590. ELSE DO
  14591.   IF Status = "Open"
  14592.   CALL RESTORE()
  14593. END
  14594.  
  14595. Examples source library: 
  14596.  
  14597.  
  14598. ΓòÉΓòÉΓòÉ 98.2. More about IF ... THEN ... ELSE ΓòÉΓòÉΓòÉ
  14599.  
  14600. o The condition is true, and the THEN block is executed, in the following 
  14601.   cases: 
  14602.  
  14603.    - condition is numeric and nonzero 
  14604.    - condition is character and has a length of 1 or more 
  14605.  
  14606.   Note:   Even a character string containing a single space ( " ") has a length 
  14607.           of 1. 
  14608.  
  14609. o The condition is false, and the ELSE block is executed (if there is one), in 
  14610.   the following cases: 
  14611.  
  14612.    - condition is numeric and zero 
  14613.    - condition is character and is an empty string ( "") 
  14614.    - condition is NULL 
  14615.  
  14616.   Note:   NULL is not the same as an empty string ( ""), but the IF statement 
  14617.           treats both as false. 
  14618.  
  14619. o You can use comparison operators as part of condition. Comparison operators 
  14620.   return a numeric result of 1 (true), or 0 (false) if the comparison is valid. 
  14621.   They return a result of NULL (false) if either of the values being compared 
  14622.   is NULL. For a list of comparison operators, see Comparisons. 
  14623.  
  14624. o IF, THEN, and ELSE can introduce a single statement or multiple statements. 
  14625.   If they introduce multiple statements, then you must enclose the statements 
  14626.   in a DO ... END block. 
  14627.  
  14628. o You can type the statement following THEN or ELSE either on the same line, or 
  14629.   on a separate line. 
  14630.  
  14631. o You can nest IF statements, even if you do not use DO ... END blocks. For 
  14632.   example: 
  14633.  
  14634.     IF alpha
  14635.       THEN IF beta
  14636.         THEN z = 0     /* alpha was true and beta was true              */
  14637.         ELSE z = 1     /* alpha was true but beta was false or NULL     */
  14638.  
  14639.     IF alpha
  14640.     THEN DO
  14641.       IF beta
  14642.         THEN z = 0     /* alpha was true and beta was true              */
  14643.     END
  14644.     ELSE z = 1         /* alpha was false or NULL                       */
  14645.  
  14646.     IF alpha
  14647.       THEN z = 0       /* alpha was true                                */
  14648.       ELSE IF beta
  14649.         THEN IF gamma
  14650.           THEN z = 1   /* alpha false or NULL, beta and gamma true      */
  14651.           ELSE z = 2   /* alpha false/NULL, beta true, gamma false/NULL */
  14652.         ELSE z = 3     /* alpha and beta were false or NULL             */
  14653.  
  14654.  
  14655. ΓòÉΓòÉΓòÉ 99. IF() ΓòÉΓòÉΓòÉ
  14656.  
  14657. The IF() function tests a condition and returns one of three expressions as a 
  14658. result. 
  14659.  
  14660. ΓöÇΓöÇIF(condition,trueexpr,falseexpr,nullexpr)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14661.  
  14662. Examples 
  14663.  
  14664. More about IF() 
  14665.  
  14666. See also: IF ... THEN ... ELSE 
  14667.  
  14668.  
  14669. ΓòÉΓòÉΓòÉ 99.1. Examples ΓòÉΓòÉΓòÉ
  14670.  
  14671. LET Angle = 75
  14672. LET result = IF(Angle < 90, 'Acute', 'Obtuse')   ! result is 'Acute'
  14673.  
  14674. LET Amount = -23.50
  14675. LET result = IF(Amount >= 0, "Credit", "Debit", "Unknown")
  14676.                                                  ! result is "Debit"
  14677. IF IF(a > b, a, b) > limit
  14678. THEN DO ...
  14679.  
  14680. Examples source library: 
  14681.  
  14682.  
  14683. ΓòÉΓòÉΓòÉ 99.2. More about IF() ΓòÉΓòÉΓòÉ
  14684.  
  14685. o Any of the three return expressions can be omitted, but all the commas shown 
  14686.   in the syntax diagram must be inserted. If the appropriate expression is not 
  14687.   present, IF() returns NULL. 
  14688.  
  14689. o The IF() function simplifies coding by avoiding repeated expressions, and the 
  14690.   expressions to be returned can be evaluated at run time. 
  14691.  
  14692. o All the expressions are evaluated, even if they are not selected by 
  14693.   condition. 
  14694.  
  14695.  
  14696. ΓòÉΓòÉΓòÉ 100. INDEX ΓòÉΓòÉΓòÉ
  14697.  
  14698. The INDEX statement creates a vector of numbers which identifies the sequence 
  14699. for the values in an array or in the columns of a table. 
  14700.  
  14701.                    <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  14702. ΓöÇΓöÇINDEXΓöÇΓöÇorder=ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇcolumnΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14703.                      ΓööΓöÇ-ΓöÇΓöÿ
  14704.  
  14705. Examples 
  14706.  
  14707. More about INDEX 
  14708.  
  14709.  
  14710. ΓòÉΓòÉΓòÉ 100.1. Examples ΓòÉΓòÉΓòÉ
  14711.  
  14712. INDEX deptseq = employee.Division, employee.Department
  14713. ! 'deptseq' indexes the 'employee' table rows
  14714. ! sorted by division, and by department within each division
  14715.  
  14716. INDEX empsal = -employee.AnnualSalary, employee.Name
  14717. ! 'deptseq' indexes the 'employee' table rows
  14718. ! sorted by salary (in descending order), and in name order
  14719. ! among people with the same salary
  14720.  
  14721. ! Here, we open a listbox to show a vector of numbers
  14722. ! sorted into ascending order
  14723. DEFINE datalist[0]
  14724. INSERT datalist[0] = 15
  14725. INSERT datalist[0] = NULL
  14726. INSERT datalist[0] = 4
  14727. INSERT datalist[0] = 57
  14728. INSERT datalist[0] = -45
  14729.  
  14730. DEFINE listexpr[1] = "WIDTH=100"
  14731. DEFINE listref[1]  = datalist[0]
  14732.  
  14733. INDEX order = -?"datalist"
  14734. OPEN LIST numberlist, MyWin,
  14735.  X = 8, Y = 6,
  14736.  SIZEX = 100, SIZEY = 100,
  14737.  EXPRESSION = listexpr[0],
  14738.  REFERENCE = listref[0],
  14739.  ORDERDATA = order[0]
  14740.  
  14741. Examples source library: 
  14742.  
  14743.  
  14744. ΓòÉΓòÉΓòÉ 100.2. More about INDEX ΓòÉΓòÉΓòÉ
  14745.  
  14746. o The INDEX statement allows the rows of a table to be processed in any 
  14747.   sequence without having to produce new copies of the table with the columns 
  14748.   in the new order. 
  14749.  
  14750. o References to elements in the new sequence require the use of nested square 
  14751.   brackets.  For example, to return the lowest number in a list of random 
  14752.   numbers named datalist which has been resequenced in ascending order by INDEX 
  14753.   using the vector sorted: 
  14754.  
  14755.     LET lowest = datalist[order[1]]
  14756.  
  14757. o In the case of duplicate values, the original sequence is preserved. 
  14758.  
  14759. o The order vector created by INDEX is unaffected if entries are added or 
  14760.   replaced in the original vector.  It can therefore be necessary to repeat the 
  14761.   INDEX statement or, alternatively, to update the index vector whenever the 
  14762.   original vector is modified. 
  14763.  
  14764. o With the exception of NULL values, all values in a column must be of a 
  14765.   consistent type. 
  14766.  
  14767. o Any NULL values are collated to the end of order. 
  14768.  
  14769.  
  14770. ΓòÉΓòÉΓòÉ 101. INSERT ΓòÉΓòÉΓòÉ
  14771.  
  14772. The INSERT statement has two uses: 
  14773.  
  14774. o To insert an element into a vector 
  14775. o To insert a row into a table. 
  14776.  
  14777. ΓöÇΓöÇINSERTΓöÇΓöÇreferenceΓöÇΓöÇΓö¼ΓöÇ[ΓöÇΓöÇexpressionΓöÇΓöÇ]ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14778.                        Γöé    <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé  ΓööΓöÇ=valueΓöÇΓöÿ
  14779.                        ΓööΓöÇ{ΓöÇΓöÇΓöÇΓöÇexpression1ΓöÇΓö┤ΓöÇΓöÇ}ΓöÇ]
  14780.  
  14781. Examples 
  14782.  
  14783. More about INSERT 
  14784.  
  14785. See also: INSERT(), LET 
  14786.  
  14787.  
  14788. ΓòÉΓòÉΓòÉ 101.1. Examples ΓòÉΓòÉΓòÉ
  14789.  
  14790. To define a vector and insert some elements into it: 
  14791.  
  14792. DEFINE vec[3]
  14793. LET    vec[1] = "Wednesday"
  14794. LET    vec[2] = "Friday"
  14795. LET    vec[3] = "Saturday"
  14796.  
  14797. INSERT vec[2] = "Thursday"   /* insert Thursday between Wednesday and Friday */
  14798. INSERT vec[1] = "Tuesday"    /* insert Tuesday at the beginning              */
  14799. INSERT vec[1] = "Monday"     /* insert Monday at the beginning               */
  14800. INSERT vec[7] = "Sunday"     /* insert Sunday at the end                     */
  14801.  
  14802. More examples of INSERT: 
  14803.  
  14804. INSERT counts[24]
  14805. INSERT staff.number{"Smith", 87367}
  14806. INSERT totals[area] = 0
  14807.  
  14808. Examples source library: 
  14809.  
  14810.  
  14811. ΓòÉΓòÉΓòÉ 101.2. More about INSERT ΓòÉΓòÉΓòÉ
  14812.  
  14813. o When an element is inserted into a one-dimensional array, then the number of 
  14814.   elements in the array is incremented by one, and the relative positions of 
  14815.   all elements after the one inserted are increased by one. 
  14816.  
  14817.                x                         INSERT x [3]="Y"
  14818.     ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ         ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14819.     Γöé A  B  C  D  E  F  G Γöé         Γöé A  B  Y  C  D  E  F  G Γöé
  14820.     ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ         ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14821.       1  2  3  4  5  6  7             1  2  3  4  5  6  7  8
  14822.  
  14823. o To insert a row into a table, you need only name one column of the table and 
  14824.   specify values for the key columns. The elements from other columns, which 
  14825.   make up the rest of the row, are automatically created with NULL values. 
  14826.  
  14827. o Inserting into a table will not produce a duplicate key. If a duplicate key 
  14828.   is specified, the value of the referenced column will be replaced with the 
  14829.   value given. You cannot insert by position (square-bracket reference) into a 
  14830.   table.  An initial value cannot be assigned to a key. 
  14831.  
  14832. o After using INSERT, you can assign values to that array element or table row 
  14833.   when you want to.  For example: 
  14834.  
  14835.     INSERT x[9]
  14836.     LET x[9] = "Moomin"
  14837.  
  14838.   This will have the same effect as: 
  14839.  
  14840.     INSERT x[9] = "Moomin"
  14841.  
  14842. o INSERT is not valid for two-dimensional arrays. 
  14843.  
  14844. o A new element can be added at the end of a vector by inserting at position 
  14845.   zero. For example: 
  14846.  
  14847.     DEFINE vec[0]
  14848.     INSERT vec[0] = "First entry"
  14849.     INSERT vec[0] = "Second entry"
  14850.     INSERT vec[0] = "Third entry"
  14851.  
  14852.  
  14853. ΓòÉΓòÉΓòÉ 102. INSERT() ΓòÉΓòÉΓòÉ
  14854.  
  14855. The INSERT() function is used in the same way as the INSERT statement: 
  14856.  
  14857. o To insert an element into a vector 
  14858. o To insert a row into a table. 
  14859.  
  14860. In addition, INSERT() returns the index number at which the insertion was made. 
  14861.  
  14862. ΓöÇΓöÇINSERTΓöÇΓöÇ(ΓöÇΓöÇreferenceΓöÇΓöÇΓö¼ΓöÇ[ΓöÇΓöÇexpressionΓöÇΓöÇ]ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14863.                           Γöé    <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé  ΓööΓöÇ,valueΓöÇΓöÿ
  14864.                           ΓööΓöÇ{ΓöÇΓöÇΓöÇΓöÇexpression1ΓöÇΓö┤ΓöÇΓöÇ}ΓöÇ]
  14865.  
  14866. Examples 
  14867.  
  14868. More about INSERT() 
  14869.  
  14870.  
  14871. ΓòÉΓòÉΓòÉ 102.1. Examples ΓòÉΓòÉΓòÉ
  14872.  
  14873. LET newrow = INSERT(employee.Name{174773}, "Robin, Christopher")
  14874. LET employee.Sex[newrow] = 'M'
  14875. LET employee.Salary[newrow] = 24500
  14876.  
  14877. Examples source library: 
  14878.  
  14879.  
  14880. ΓòÉΓòÉΓòÉ 102.2. More about INSERT() ΓòÉΓòÉΓòÉ
  14881.  
  14882. o See the definition of the INSERT statement for full details ( INSERT). 
  14883.  
  14884.  
  14885. ΓòÉΓòÉΓòÉ 103. INSSOSI() ΓòÉΓòÉΓòÉ
  14886.  
  14887. The INSSOSI() function inserts Shift Out (SO) and Shift In (SI) control codes 
  14888. at the boundaries of groups of SBCS and DBCS characters in a string. 
  14889.  
  14890. ΓöÇΓöÇINSSOSI(string)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14891.  
  14892. Examples 
  14893.  
  14894. More about INSSOSI() 
  14895.  
  14896. See also: RMVSOSI() 
  14897.  
  14898.  
  14899. ΓòÉΓòÉΓòÉ 103.1. Examples ΓòÉΓòÉΓòÉ
  14900.  
  14901. In this example, s represents a single-byte character, D1, D2, and D3 repres 
  14902. double-byte characters, and > and  < represent SO and SI control codes. 
  14903.  
  14904. LET string = "ssssD1D2D3ssss"
  14905. LET result = INSSOSI(string)
  14906.  
  14907. The string result contains "ssss>D1D2D3<ssss". 
  14908.  
  14909. Examples source library: 
  14910.  
  14911.  
  14912. ΓòÉΓòÉΓòÉ 103.2. More about INSSOSI() ΓòÉΓòÉΓòÉ
  14913.  
  14914. o The result of this function is always a string of type CHARACTER. 
  14915.  
  14916. o The code points for the SO and SI control codes are X'0E' and X'0F'. 
  14917.  
  14918. o This function can be used for making an IXF file for sending to a host 
  14919.   environment.  It can also be used to differentiate character types, which is 
  14920.   helpful when calculating string lengths in a host environment. 
  14921.  
  14922.  
  14923. ΓòÉΓòÉΓòÉ 104. ITERATE ΓòÉΓòÉΓòÉ
  14924.  
  14925. The ITERATE statement is used within repeating blocks to start immediately a 
  14926. fresh iteration of one of the blocks in which it is contained. ITERATE 
  14927. transfers control to the next END statement or to the referenced END statement. 
  14928.  
  14929. ΓöÇΓöÇITERATEΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  14930.              ΓööΓöÇnumberΓöÇΓöÿ
  14931.  
  14932. Examples 
  14933.  
  14934. More about ITERATE 
  14935.  
  14936. See also: DO...END, END, LEAVE, TERMINATE, UNTIL, WHILE 
  14937.  
  14938.  
  14939. ΓòÉΓòÉΓòÉ 104.1. Examples ΓòÉΓòÉΓòÉ
  14940.  
  14941. The example below reads through a vector and counts how many elements have the 
  14942. value "MACK". 
  14943.  
  14944. DEFINE program[5] = "LET x = 1"
  14945. LET    program[2] = "! this is a comment"
  14946. LET    program[3] = "! and so is this"
  14947. CALL format_code(POINTER(program[0]))
  14948.  
  14949. PROCEDURE format_code(pVector)
  14950. DO
  14951.   DECLARE POINTER pVector
  14952.   DECLARE NUMERIC i
  14953.  
  14954.   ! This function formats our code nicely
  14955.  
  14956.   DO i = 1 : (?pVector)[0]'ENTRIES
  14957.     IF SPLIT((?pVector)[i], 1, 1) = "!"
  14958.     THEN ITERATE          /* this line is a comment - leave it alone */
  14959.  
  14960.     CASE WORD((?pVector)[i], 1)
  14961.       WHEN "LET"
  14962.       DO
  14963.         ...
  14964.     END
  14965.   END
  14966. END
  14967.  
  14968.  
  14969. !
  14970. ! Now we count the number of lines in a piece of text
  14971. ! which do NOT contain any of the following fish
  14972. !
  14973. DEFINE fish[0]
  14974. INSERT fish[0] = "halibut"
  14975. INSERT fish[0] = "hake"
  14976. INSERT fish[0] = "haddock"
  14977.  
  14978. DEFINE woolf[0]
  14979. INSERT woolf[0] = "And now with some pleasure I find that it's seven;"
  14980. INSERT woolf[0] = "and must cook dinner. Haddock and sausage meat."
  14981. INSERT woolf[0] = "I think it is true that one gains a certain hold on"
  14982. INSERT woolf[0] = "sausage and haddock by writing them down."
  14983.  
  14984. LET fishless = count_fishfree_lines(POINTER(woolf[0]))
  14985.  
  14986. PROCEDURE count_fishfree_lines(pText)
  14987. DO
  14988.   DECLARE POINTER pText
  14989.   DECLARE NUMERIC line
  14990.   DECLARE NUMERIC word
  14991.   DECLARE CHAR[*] thisline
  14992.   DECLARE CLEAR NUMERIC result
  14993.  
  14994.   DO line = 1 : (?pText)[0]'ENTRIES
  14995.     LET thisline = (?pText)[line]
  14996.     DO word = 1 : WORDS(thisline)
  14997.       IF FIND(fish, WORDS(thisline, word,, 1)) != 0  /* fishy string */
  14998.       THEN ITERATE 2                    /* move on to the next string */
  14999.     END
  15000.     LET result += 1
  15001.   END
  15002.  
  15003.   RETURN result
  15004. END
  15005.  
  15006. Examples source library: 
  15007.  
  15008.  
  15009. ΓòÉΓòÉΓòÉ 104.2. More about ITERATE ΓòÉΓòÉΓòÉ
  15010.  
  15011. o ITERATE can be used in repeating DO ... END blocks, and in WHILE and UNTIL 
  15012.   blocks. 
  15013.  
  15014. o Nonrepeating DO ... END blocks are ignored. (Use the LEAVE statement to exit 
  15015.   from a nonrepeating DO ... END block.) 
  15016.  
  15017.  
  15018. ΓòÉΓòÉΓòÉ 105. LEAVE ΓòÉΓòÉΓòÉ
  15019.  
  15020. The LEAVE statement terminates one or more active DO ... END blocks. 
  15021.  
  15022. By default, LEAVE terminates only the current DO ... END block. Where DO ... 
  15023. END blocks are nested (several are active at once), LEAVE can specify the 
  15024. number of blocks to be terminated. 
  15025.  
  15026. ΓöÇΓöÇLEAVEΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15027.            ΓööΓöÇnumberΓöÇΓöÿ
  15028.  
  15029. Examples 
  15030.  
  15031. More about LEAVE 
  15032.  
  15033. See also: DO...END, ITERATE, RETURN, TERMINATE, UNTIL, WHILE 
  15034.  
  15035.  
  15036. ΓòÉΓòÉΓòÉ 105.1. Examples ΓòÉΓòÉΓòÉ
  15037.  
  15038. IF \NULL(pFile)
  15039. THEN DO
  15040.   IF changes > 0
  15041.   THEN DO
  15042.     IF DIALOG("FTB0008", 0, "This file has changed. Save changes?") = "NO"
  15043.     THEN LEAVE
  15044.  
  15045.     IF (?pFile)'CLASS \= "FILE"
  15046.     THEN DO
  15047.       ERROR 1, "Internal error - the data cannot be saved"
  15048.       LEAVE 3   /* this will resume at the RETURN statement */
  15049.     END
  15050.  
  15051.     CALL save_changes(pFile)
  15052.     LET changes = 0
  15053.   END
  15054.   SHUT ?pFile
  15055. END
  15056. RETURN foo
  15057.  
  15058. Examples source library: 
  15059.  
  15060.  
  15061. ΓòÉΓòÉΓòÉ 105.2. More about LEAVE ΓòÉΓòÉΓòÉ
  15062.  
  15063. o LEAVE can terminate repeating and nonrepeating blocks. You can use LEAVE in 
  15064.   repeating DO ... END blocks, and in WHILE and UNTIL blocks. 
  15065.  
  15066. o A LEAVE statement that terminates the DO block of a PROCEDURE or an ON block 
  15067.   ends that block. It is therefore equivalent to RETURN. 
  15068.  
  15069.  
  15070. ΓòÉΓòÉΓòÉ 106. LENGTH() ΓòÉΓòÉΓòÉ
  15071.  
  15072. The LENGTH() function returns the number of bytes in a string or the largest 
  15073. number of characters in any element from a range of elements in an array. It 
  15074. can also be used for numeric, date, and time values. 
  15075.  
  15076.                     ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15077. ΓöÇΓöÇLENGTH(express,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15078.                     ΓööΓöÇstartΓöÇΓöÿ   ΓööΓöÇendΓöÇΓöÿ   ΓööΓöÇsepΓöÇΓöÿ
  15079.  
  15080. Examples 
  15081.  
  15082. More about LENGTH() 
  15083.  
  15084. See also: CLENGTH() 
  15085.  
  15086.  
  15087. ΓòÉΓòÉΓòÉ 106.1. Examples ΓòÉΓòÉΓòÉ
  15088.  
  15089. String = "Eric the Red"
  15090. Result = LENGTH(String)                    ! Result is 12
  15091.  
  15092. DEFINE StringArray[4]
  15093. StringArray[1] = "Laser Printer"
  15094. StringArray[2] = "Ink Jet Printer"
  15095. StringArray[3] = "Other Printers..."
  15096. Result = LENGTH(StringArray)               ! Result is 17
  15097. Result = LENGTH(StringArray,1,2)           ! Result is 15
  15098. Result = LENGTH(StringArray,,,"." )        ! Result is 15
  15099.  
  15100. Examples source library: 
  15101.  
  15102.  
  15103. ΓòÉΓòÉΓòÉ 106.2. More about LENGTH() ΓòÉΓòÉΓòÉ
  15104.  
  15105. o For a character value, the number of characters (including leading and 
  15106.   trailing blanks) is returned. 
  15107.  
  15108.   For numeric, date, and time values, the length of the character 
  15109.   representation of the value (as defined by the FORMAT attribute) is given. 
  15110.  
  15111. o DBCS characters cannot be used as separators.  However, when an SBCS space is 
  15112.   specified as separator, both SBCS and DBCS trailing spaces are excluded from 
  15113.   the count of characters. 
  15114.  
  15115.  
  15116. ΓòÉΓòÉΓòÉ 107. LET ΓòÉΓòÉΓòÉ
  15117.  
  15118. The LET statement is used to set values held in variables, array elements, and 
  15119. attributes, including dictionary or element attributes. 
  15120.  
  15121. The keyword LET is optional. 
  15122.  
  15123. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇreferenceΓöÇΓöÇoperatorΓöÇΓöÇexpressionΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15124.     ΓööΓöÇLETΓöÇΓöÿ
  15125.  
  15126. Examples 
  15127.  
  15128. More about LET 
  15129.  
  15130.  
  15131. ΓòÉΓòÉΓòÉ 107.1. Examples ΓòÉΓòÉΓòÉ
  15132.  
  15133. LET Rate = 10.5
  15134. LET Count += Count             !  Doubles Count.
  15135. LET Names[4] = "Jones"
  15136. Sales = ?Amount
  15137. ?Work = Total1 + Total2
  15138. LET let = "Hindrance"          !  Using a statement keyword.
  15139. Window[4]'SIZEX -=10
  15140. Staff.Salary[0]'TYPE = "Numeric"
  15141.  
  15142. Use the left and right braces {} when using a key in a table.  Note that this 
  15143. example uses parenthesis around the indirection symbol and the table name. 
  15144.  
  15145. LET (?Credit){"Jones"}'COLOR = "Red"
  15146.  
  15147. Examples source library: 
  15148.  
  15149.  
  15150. ΓòÉΓòÉΓòÉ 107.2. More about LET ΓòÉΓòÉΓòÉ
  15151.  
  15152. o The keyword LET can be omitted when the remainder of the statement does not 
  15153.   begin with an item that could be interpreted as a statement keyword. 
  15154.  
  15155. o If reference does not exist, it is created automatically as a scalar when the 
  15156.   statement is executed. 
  15157.  
  15158. o All compound assignments can be expanded in a similar way to the following: 
  15159.  
  15160.     LET A += B
  15161.  
  15162.   is equivalent to: 
  15163.  
  15164.     LET A = A + B
  15165.  
  15166. o reference takes the data type of expression unless it is a variable which has 
  15167.   a dictionary type set, in which case a conversion is performed. 
  15168.  
  15169.  
  15170. ΓòÉΓòÉΓòÉ 108. LIBRARY ASL, LIBRARY DLL, LIBRARY REXX ΓòÉΓòÉΓòÉ
  15171.  
  15172. The LIBRARY ASL statement allows shared access to commonly used procedures and 
  15173. functions. 
  15174.  
  15175. LIBRARY DLL allows access to routines saved as DLL format files. Typically 
  15176. these will be C routines. 
  15177.  
  15178. LIBRARY REXX allows access to command files found in the current path, and to 
  15179. REXX function libraries. 
  15180.  
  15181.                                              <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15182. ΓöÇΓöÇLIBRARYΓöÇΓöÇΓö¼ΓöÇASLΓöÇΓöÇ"library_name"ΓöÇΓö¼ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇroutineΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15183.              Γö£ΓöÇDLLΓöÇΓöÇ"dll_name"ΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ  ΓööΓöÇ,ΓöÇΓöÿ
  15184.              ΓööΓöÇREXXΓöÇΓöÇ"location"ΓöÇΓöÇΓöÇΓöÇΓöÿ
  15185.  
  15186. Examples 
  15187.  
  15188. More about LIBRARY ASL, LIBRARY DLL, and LIBRARY REXX 
  15189.  
  15190. See also: LIBRARY ENTRY, OPEN 
  15191.  
  15192. Also see Using the C programming language. 
  15193.  
  15194.  
  15195. ΓòÉΓòÉΓòÉ 108.1. Examples ΓòÉΓòÉΓòÉ
  15196.  
  15197. OPEN OBJECTSTORE Mylib,
  15198.  NAME = "mylib.a95",
  15199.  LOCATION = "D:\DSS"
  15200.  
  15201. LIBRARY ASL "Mylib.modules.Appdevl",
  15202.  Files,
  15203.  App_Icon
  15204.  
  15205. Allows access to the functions in the Mylib ASL library and permits later calls 
  15206. to the listed functions, Files and App_Icon. 
  15207.  
  15208. LIBRARY DLL "Mathlib" hyp_sin
  15209.  
  15210. Allows access to the functions in the Mathlib DLL library and makes a function 
  15211. called  hyp_sin available. 
  15212.  
  15213. LIBRARY REXX "", FileFind
  15214.  
  15215. Allows access to FILEFIND.CMD, which must be in a directory on the default 
  15216. system path. 
  15217.  
  15218. Examples source library: 
  15219.  
  15220.  
  15221. ΓòÉΓòÉΓòÉ 108.2. More about LIBRARY ASL, LIBRARY DLL, and LIBRARY REXX ΓòÉΓòÉΓòÉ
  15222.  
  15223. o The first reference in the application to any routine in that library causes 
  15224.   the library to be started. It remains available until the application is 
  15225.   closed. 
  15226.  
  15227. o The OBJECTSTORE in which an ASL library is stored must be open before a 
  15228.   library can be accessed. 
  15229.  
  15230. o ASL libraries created with Visualizer must have a file extension of .A95 
  15231.  
  15232. o Tasks within an application share libraries within that application. 
  15233.  
  15234. o A Visualizer library module can have an ON START block which is executed when 
  15235.   the library is started. 
  15236.  
  15237. o Visualizer library procedures have their own local task (T..) variables 
  15238.   shared between all routines in that library. They can access the general 
  15239.   (A..) variables of an application. 
  15240.  
  15241. o It is possible to access some features of the ASL language from within a C 
  15242.   program in a DLL library. 
  15243.  
  15244. o A REXX command file can be in a specific named directory or, if location is 
  15245.   "", then it can be anywhere on the system path. 
  15246.  
  15247.   If location does not contain any path characters such as backslash ( \) or 
  15248.   colon ( :), then it is taken to be the name of a REXX function library (for 
  15249.   example, REXXUTIL). 
  15250.  
  15251. o Since the LIBRARY statement is declarative, it does not need to be inside an 
  15252.   ON block. 
  15253.  
  15254.  
  15255. ΓòÉΓòÉΓòÉ 109. LIBRARY ENTRY ΓòÉΓòÉΓòÉ
  15256.  
  15257. The LIBRARY ENTRY statement allows an application to declare which of its 
  15258. procedures and functions can be called as library routines. 
  15259.  
  15260.                     <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15261. ΓöÇΓöÇLIBRARYΓöÇΓöÇENTRYΓöÇΓöÇΓöÇΓöÇroutineΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15262.  
  15263. Examples 
  15264.  
  15265. More about LIBRARY ENTRY 
  15266.  
  15267. See also: LIBRARY ASL, LIBRARY DLL, LIBRARY REXX 
  15268.  
  15269. Also see Using the C programming language. 
  15270.  
  15271.  
  15272. ΓòÉΓòÉΓòÉ 109.1. Examples ΓòÉΓòÉΓòÉ
  15273.  
  15274. LIBRARY ENTRY hyp_sin, hyp_cos, hyp_tan
  15275. ...
  15276. PROCEDURE hyp_sin(arg)
  15277. ...
  15278.  
  15279. This example declares the three hyp functions to be public. Other functions and 
  15280. procedures within this application cannot be accessed by other applications. 
  15281.  
  15282. Examples source library: 
  15283.  
  15284.  
  15285. ΓòÉΓòÉΓòÉ 109.2. More about LIBRARY ENTRY ΓòÉΓòÉΓòÉ
  15286.  
  15287. o The library code accesses its own set of local (T..) variables. 
  15288.  
  15289. o The library is closed when the calling application stops. 
  15290.  
  15291. o An application which wishes to call any of these functions must use the 
  15292.   LIBRARY ASL statement. 
  15293.  
  15294. o Since the LIBRARY ENTRY statement is declarative, not executable, it does not 
  15295.   need to be inside an ON block. 
  15296.  
  15297.  
  15298. ΓòÉΓòÉΓòÉ 110. LIBRARY LOCAL ΓòÉΓòÉΓòÉ
  15299.  
  15300. The LIBRARY LOCAL statement allows a program to indicate which of its 
  15301. procedures can be called indirectly. 
  15302.  
  15303.                    <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15304. ΓöÇΓöÇLIBRARY LOCALΓöÇΓöÇΓöÇΓöÇprocedureΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15305.  
  15306. Examples 
  15307.  
  15308. More about LIBRARY LOCAL 
  15309.  
  15310. See also: CALL, PROCEDURE, PROCEDURE() 
  15311.  
  15312.  
  15313. ΓòÉΓòÉΓòÉ 110.1. Examples ΓòÉΓòÉΓòÉ
  15314.  
  15315. LIBRARY LOCAL msg_OK, msg_Cancel, other_proc
  15316. ...
  15317. LET callproc = "msg_" ~
  15318.                DIALOG("FTB10005", 0, "This will erase all your files, OK?")
  15319. CALL (?PROCEDURE(callproc))(parm)
  15320. ...
  15321. PROCEDURE msg_OK(arg)
  15322. DO
  15323. ...
  15324.  
  15325. Examples source library: 
  15326.  
  15327.  
  15328. ΓòÉΓòÉΓòÉ 110.2. More about LIBRARY LOCAL ΓòÉΓòÉΓòÉ
  15329.  
  15330. o The LIBRARY LOCAL statement declares which procedures can be used in calls to 
  15331.   the PROCEDURE() function, which creates a pointer to a procedure. Since a 
  15332.   procedure can be called indirectly only if there is a pointer to it, LIBRARY 
  15333.   LOCAL effectively restricts the use of indirect procedure calls. 
  15334.  
  15335. o If there is no LIBRARY LOCAL statement in a program, any local procedure can 
  15336.   be called indirectly. 
  15337.  
  15338. o Because the LIBRARY LOCAL statement is declarative, not executable, it can be 
  15339.   placed anywhere in the program; it does not have to be within an ON block. 
  15340.  
  15341.  
  15342. ΓòÉΓòÉΓòÉ 111. LINE ΓòÉΓòÉΓòÉ
  15343.  
  15344. The LINE graphics primitive object class creates an instance of a line. 
  15345.  
  15346. Parent: DEFINE 
  15347.  
  15348. Attributes 
  15349.  
  15350. Actions: None. 
  15351.  
  15352. Events: None. 
  15353.  
  15354. Examples 
  15355.  
  15356.  
  15357. ΓòÉΓòÉΓòÉ 111.1. Attributes ΓòÉΓòÉΓòÉ
  15358.  
  15359. CLOSINGLINE            ENCLOSED 
  15360. REFERENCE 
  15361.  
  15362. The following standard graphics attributes are also available. They are 
  15363. described in Standard graphics attributes. 
  15364.  
  15365. BOUNDED                FILLCOLOR 
  15366. LINEWIDTH              SELECTED 
  15367. COLOR                  FILLPATTERN 
  15368. MIX                    VISIBLE 
  15369. CONSTANT               LINESTYLE 
  15370. SELECTABLE 
  15371.  
  15372.  
  15373. ΓòÉΓòÉΓòÉ 111.1.1. CLOSINGLINE ΓòÉΓòÉΓòÉ
  15374.  
  15375. Whether the area is closed with a line joining the first point to the last: 
  15376.  
  15377. 0         Area not closed (default) 
  15378. 1         Area closed 
  15379.  
  15380.  
  15381. ΓòÉΓòÉΓòÉ 111.1.2. ENCLOSED ΓòÉΓòÉΓòÉ
  15382.  
  15383. Whether the line is treated as a closed object which can be filled: 
  15384.  
  15385. 0         Line not enclosed (default) 
  15386. 1         Line enclosed 
  15387.  
  15388.  
  15389. ΓòÉΓòÉΓòÉ 111.1.3. REFERENCE ΓòÉΓòÉΓòÉ
  15390.  
  15391. Vector defining points on the line. This vector consists of the following 
  15392. elements: 
  15393.  
  15394. 1         X coordinate of the first point on the line. 
  15395. 2         Y coordinate of the first point on the line. 
  15396. 3         X coordinate of the second point on the line. 
  15397. 4         Y coordinate of the second point on the line. 
  15398. 5         X coordinate of the third point on the line. 
  15399. 6         Y coordinate of the third point on the line. 
  15400.  
  15401. Any number of points can be defined. To start a new line which is not joined to 
  15402. the preceding points, leave a blank pair of X and Y coordinates. All 
  15403. coordinates are expressed in world coordinate units. 
  15404.  
  15405. Set on OPEN, then read-only. 
  15406.  
  15407. Default: "" 
  15408.  
  15409.  
  15410. ΓòÉΓòÉΓòÉ 111.2. Examples ΓòÉΓòÉΓòÉ
  15411.  
  15412. ! Produce two line objects on the graphics area. First example
  15413. ! is a simple line, the second demonstrates the use of
  15414. ! line to produce a more complex shape.
  15415.  
  15416. DEFINE linearr[4]
  15417. LET linearr[1] = 10             ! x start
  15418. LET linearr[2] = 50             ! y start
  15419. LET linearr[3] = 100            ! x end
  15420. LET linearr[4] = 190            ! y end
  15421. OPEN LINE line1, def1,
  15422.  REFERENCE = linearr[0],
  15423.  COLOR = 2,
  15424.  LINESTYLE = 0,
  15425.  LINEWIDTH = 2,
  15426.  CONSTANT = 1
  15427. !
  15428.  
  15429. ! To produce a more complex shape
  15430. ! add extra details to the reference array
  15431. !
  15432. DEFINE linearr[0]
  15433. LET x = 250
  15434. LET y = 50
  15435. LET increment = 10
  15436. LET size = 100
  15437. DO i = 1 : 10
  15438.   INSERT linearr[0] = x
  15439.   INSERT linearr[0] = y
  15440.   INSERT linearr[0] = x
  15441.   INSERT linearr[0] = y+size
  15442.   INSERT linearr[0] = x+size
  15443.   INSERT linearr[0] = y+size
  15444.   LET y + = increment
  15445.   INSERT linearr[0] = x+size
  15446.   INSERT linearr[0] = y
  15447.   LET x + = increment
  15448.   LET size = size - 0.75*increment
  15449. END
  15450.  
  15451. OPEN LINE line2, def1,
  15452.  REFERENCE = linearr[0],
  15453.  COLOR = 3,
  15454.  LINESTYLE = 0,
  15455.  LINEWIDTH = 1,
  15456.  CONSTANT = 1
  15457.  
  15458. Examples source library: 
  15459.  
  15460.  
  15461. ΓòÉΓòÉΓòÉ 112. LINE() ΓòÉΓòÉΓòÉ
  15462.  
  15463. The LINE() function returns a format value which specifies that one or more new 
  15464. lines are required in the output file when this value is written to an output 
  15465. device (such as a printer) which supports lines of output. 
  15466.  
  15467. ΓöÇΓöÇLINEΓöÇΓöÇ(ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15468.              ΓööΓöÇexpressionΓöÇΓöÿ
  15469.  
  15470. Examples 
  15471.  
  15472. More about LINE() 
  15473.  
  15474. See also: FILE, PAGE(), PRINTER, SPACE() 
  15475.  
  15476.  
  15477. ΓòÉΓòÉΓòÉ 112.1. Examples ΓòÉΓòÉΓòÉ
  15478.  
  15479. CALL MyPrinter'PUT("Page ", Page_Num, LINE(2), "Name ", EmpName, LINE())
  15480.  
  15481. LET Nl=LINE()
  15482. LET Nl'COUNT = 2
  15483. LET Treble = LINE(3)
  15484. CALL MyPrinter'PUT("report2", Heading1, Nl, Heading2, Treble)
  15485.  
  15486. CALL FILE'PUT(record1, LINE(), record2, LINE(), record3, LINE())
  15487.  
  15488. In this example, the third statement shows how the COUNT attribute of a format 
  15489. variable (Nl) can be changed to set the number of lines required in the output 
  15490. file. 
  15491.  
  15492. Examples source library: 
  15493.  
  15494.  
  15495. ΓòÉΓòÉΓòÉ 112.2. More about LINE() ΓòÉΓòÉΓòÉ
  15496.  
  15497. o Format values of LINE() are displayed on the screen as LINE. The COUNT 
  15498.   attribute is not displayed. 
  15499.  
  15500. o The LINE() function can be used in PUT() actions and in LET and IF 
  15501.   statements. 
  15502.  
  15503. o LINE(n) causes  n-1 completely blank lines. 
  15504.  
  15505. o If you wish to write a TEXT file (see the OPEN FILE statement) with separate 
  15506.   records, then you should use the LINE() function (with the default parameter 
  15507.   of one) to end each record. 
  15508.  
  15509.  
  15510. ΓòÉΓòÉΓòÉ 113. LINK ΓòÉΓòÉΓòÉ
  15511.  
  15512. The LINK object provides a standard way to handle linking to DDE server 
  15513. applications. 
  15514.  
  15515. Attributes 
  15516.  
  15517. Actions 
  15518.  
  15519. Events 
  15520.  
  15521. See also: DDECLIENT, DDESERVER, LINKSHOW, SOURCECTRL, TARGETCTRL, REFERENCE 
  15522.  
  15523.  
  15524. ΓòÉΓòÉΓòÉ 113.1. Attributes ΓòÉΓòÉΓòÉ
  15525.  
  15526. APPLICATION              CODE 
  15527. ACTIVE                   AUTORESTART 
  15528. DEFAULTFORMAT            DIALOG 
  15529. HOT                      ID 
  15530. ITEM                     LOCATION 
  15531. NAME                     NATIVEFORMAT 
  15532. OBJECTNAME               RESTARTABLE 
  15533. STARTCOMMAND             TOPIC 
  15534.  
  15535.  
  15536. ΓòÉΓòÉΓòÉ 113.1.1. APPLICATION ΓòÉΓòÉΓòÉ
  15537.  
  15538. This attribute returns a string value representing the name of the linked 
  15539. server application or object class. Its value may be used to set the 
  15540. APPLICATION attribute of a DDECLIENT object when attempting to establish a DDE 
  15541. conversation with the server. 
  15542.  
  15543. Set on OPEN, then read-only. 
  15544.  
  15545.  
  15546. ΓòÉΓòÉΓòÉ 113.1.2. CODE ΓòÉΓòÉΓòÉ
  15547.  
  15548. This attribute returns a numeric value indicating an environment error has 
  15549. occurred, or 0 if the last action or attribute modification was successful. 
  15550. When an error occurs, CODE is set to the error message number (except for DDE 
  15551. or system errors, CODE is then the DDE or OS/2 error code). 
  15552.  
  15553. Set on OPEN, then read-only. 
  15554.  
  15555.  
  15556. ΓòÉΓòÉΓòÉ 113.1.3. ACTIVE ΓòÉΓòÉΓòÉ
  15557.  
  15558. This Boolean attribute is 1 (true) if the link is in DDE conversation with the 
  15559. linked object, otherwise it will is 0 (false). 
  15560.  
  15561. Set on OPEN, then read-only. 
  15562.  
  15563.  
  15564. ΓòÉΓòÉΓòÉ 113.1.4. AUTORESTART ΓòÉΓòÉΓòÉ
  15565.  
  15566. This Boolean attribute has a default value of 0 (false). It can be set to 1 
  15567. (true) if the link has obtained restart information from the server. If it is 
  15568. set to 1 (true), then the link attempts to restart the server whenever an 
  15569. attempt to activate fails. 
  15570.  
  15571. Any attempt to modify AUTORESTART to 1 (true) when restart information is not 
  15572. available will be rejected with an error message. 
  15573.  
  15574.  
  15575. ΓòÉΓòÉΓòÉ 113.1.5. DEFAULTFORMAT ΓòÉΓòÉΓòÉ
  15576.  
  15577. This string attribute up to 255 bytes is supplied by the client as the default 
  15578. for the format parameter in subsequent REQUEST and HOTLINK actions. If no value 
  15579. is specified, or the value is specified as a NULL or a zero length character 
  15580. string, the format will be determined from the server when the link has 
  15581. successfully activated. 
  15582.  
  15583.  
  15584. ΓòÉΓòÉΓòÉ 113.1.6. DIALOG ΓòÉΓòÉΓòÉ
  15585.  
  15586. This Boolean attribute controls whether error messages are reported to the 
  15587. user. 
  15588.  
  15589. Default: 1 (Messages are reported) 
  15590.  
  15591. Set on OPEN, then read-only. 
  15592.  
  15593.  
  15594. ΓòÉΓòÉΓòÉ 113.1.7. HOT ΓòÉΓòÉΓòÉ
  15595.  
  15596. This Boolean attribute has a value of 1 (true) or 0 (false) subject to the last 
  15597. HOTLINK action on the link. 
  15598.  
  15599. Set on OPEN, then read-only. 
  15600.  
  15601.  
  15602. ΓòÉΓòÉΓòÉ 113.1.8. ID ΓòÉΓòÉΓòÉ
  15603.  
  15604. This read-only attribute returns a pointer value that uniquely identifies the 
  15605. link. It can be used to populate the vector of link identifiers required by the 
  15606. LINKSHOW object. 
  15607.  
  15608.  
  15609. ΓòÉΓòÉΓòÉ 113.1.9. ITEM ΓòÉΓòÉΓòÉ
  15610.  
  15611. This attribute returns a string value representing a server defined item that 
  15612. will be rendered on request. Its value may be used as the first argument to a 
  15613. REQUEST, ADVISE or UNADVISE action on a DDECLIENT object when in conversion 
  15614. with the server via DDE. 
  15615.  
  15616. Set on OPEN, then read-only. 
  15617.  
  15618.  
  15619. ΓòÉΓòÉΓòÉ 113.1.10. LOCATION ΓòÉΓòÉΓòÉ
  15620.  
  15621. This attribute identifies the location of a file holding information in the 
  15622. NATIVEFORMAT of the linked object. It will be a fully qualified file location 
  15623. in UNC (\\Domain\Resource\) or regular (Drive:\Directory\) format. (LOCATION is 
  15624. used together with the NAME attribute.) 
  15625.  
  15626. Set on OPEN, then read-only. 
  15627.  
  15628.  
  15629. ΓòÉΓòÉΓòÉ 113.1.11. NAME ΓòÉΓòÉΓòÉ
  15630.  
  15631. The name of the file which has information in the NATIVEFORMAT of the linked 
  15632. object. (The NAME attribute is used together with the LOCATION attribute.) 
  15633.  
  15634. Set on OPEN, then read-only. 
  15635.  
  15636.  
  15637. ΓòÉΓòÉΓòÉ 113.1.12. NATIVEFORMAT ΓòÉΓòÉΓòÉ
  15638.  
  15639. A character string that is the native format of the linked object. 
  15640.  
  15641. If the link was created via the clipboard, then NATIVEFORMAT is not known until 
  15642. the link has been successfully activated. 
  15643.  
  15644. Set on OPEN, then read-only. 
  15645.  
  15646.  
  15647. ΓòÉΓòÉΓòÉ 113.1.13. OBJECTNAME ΓòÉΓòÉΓòÉ
  15648.  
  15649. A character string that is the name of the linked object, as supplied by the 
  15650. source. OBJECTNAME is empty ("") if the link was created from the clipboard. 
  15651.  
  15652. Read-only. 
  15653.  
  15654.  
  15655. ΓòÉΓòÉΓòÉ 113.1.14. RESTARTABLE ΓòÉΓòÉΓòÉ
  15656.  
  15657. This Boolean attribute has a value of 1 (true) if the link is inactive and has 
  15658. received restart information from a server. 
  15659.  
  15660. Set on OPEN, then read-only. 
  15661.  
  15662. Default: 0 (False) 
  15663.  
  15664.  
  15665. ΓòÉΓòÉΓòÉ 113.1.15. STARTCOMMAND ΓòÉΓòÉΓòÉ
  15666.  
  15667. If the link has obtained restart information from a server, the restart string 
  15668. will be returned when this attribute is queried. 
  15669.  
  15670. Set on OPEN, then read-only. 
  15671.  
  15672. Default: Null 
  15673.  
  15674.  
  15675. ΓòÉΓòÉΓòÉ 113.1.16. TOPIC ΓòÉΓòÉΓòÉ
  15676.  
  15677. This attribute returns a string value representing the topic of conversation, 
  15678. or instance name, of the server. Its value may be used to set the TOPIC 
  15679. attribute of a DDECLIENT object when attempting to establish a DDE conversation 
  15680. with the server. 
  15681.  
  15682. Set on OPEN, then read-only. 
  15683.  
  15684.  
  15685. ΓòÉΓòÉΓòÉ 113.2. Actions ΓòÉΓòÉΓòÉ
  15686.  
  15687. ACTIVATE()                ADDFORMAT() 
  15688. CLOSE()                   DEACTIVATE() 
  15689. FORMATS()                 EQUALS() 
  15690. HOTLINK()                 LOAD() 
  15691. QUERYFORMATS()            REQUEST() 
  15692. RESTART()                 VERIFYFORMAT() 
  15693.  
  15694.  
  15695. ΓòÉΓòÉΓòÉ 113.2.1. ACTIVATE() ΓòÉΓòÉΓòÉ
  15696.  
  15697.               ΓöîΓöÇ60ΓöÇΓöÇΓöÇΓöÇΓöÉ   ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  15698. ΓöÇΓöÇACTIVATE(ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15699.               ΓööΓöÇRetryΓöÇΓöÿ   ΓööΓöÇReportΓöÇΓöÿ
  15700.  
  15701. This action attempts to establish a DDE conversation with the server 
  15702. application. 
  15703.  
  15704. If the attempt fails, it will be retried at an interval specified by Retry (in 
  15705. seconds), until either it succeeds, or DEACTIVATE() is issued. The default for 
  15706. retry is 60 seconds. If a value of 0 is specified, no retries will be 
  15707. attempted. If specified, Retry must be an integer of zero or above, otherwise 
  15708. an error condition will be raised. 
  15709.  
  15710. Report is a Boolean parameter which, when 1, overrides the DIALOG attribute for 
  15711. this action only. 
  15712.  
  15713. If no DDE information is available, no DDE communication takes place, and the 
  15714. available rendering formats are not determined. 
  15715.  
  15716. This actions returns a numeric value, 0 to indicate success, or another integer 
  15717. value to indicate failure. 
  15718.  
  15719.  
  15720. ΓòÉΓòÉΓòÉ 113.2.2. ADDFORMAT() ΓòÉΓòÉΓòÉ
  15721.  
  15722. ΓöÇΓöÇADDFORMAT(Format)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15723.  
  15724. This action adds the name of a data format acceptable to the client program. 
  15725. Successive ADDFORMAT actions can be used to inform the link about all data 
  15726. formats that it can accept. This information may be used by LINK to determine 
  15727. which data format to request from a server when the client does not specify a 
  15728. data format on a REQUEST or HOTLINK action. 
  15729.  
  15730. Format must be a string value representing a data format name. 
  15731.  
  15732.  
  15733. ΓòÉΓòÉΓòÉ 113.2.3. CLOSE() ΓòÉΓòÉΓòÉ
  15734.  
  15735. ΓöÇΓöÇCLOSE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15736.  
  15737. This action may be called to ask the link to close. The link issues a QUIT. 
  15738. This signals a QUIT event in the program that opened the link. 
  15739.  
  15740.  
  15741. ΓòÉΓòÉΓòÉ 113.2.4. DEACTIVATE() ΓòÉΓòÉΓòÉ
  15742.  
  15743. ΓöÇΓöÇDEACTIVATE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15744.  
  15745. This actions deactivates a DDE conversation, or terminates retrying of a 
  15746. previously unsuccessful ACTIVATE() request. 
  15747.  
  15748.  
  15749. ΓòÉΓòÉΓòÉ 113.2.5. FORMATS() ΓòÉΓòÉΓòÉ
  15750.  
  15751. ΓöÇΓöÇFORMATS(pFormats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15752.  
  15753. This actions defines a set of data formats acceptable to the client program, 
  15754. replacing any existing definition of acceptable formats. This information may 
  15755. be used by LINK to determine which data format to request from a server when 
  15756. the client does not specify a data format on a REQUEST or HOTLINK action. 
  15757.  
  15758. pFormats must be a pointer to an existing vector in the client program, each 
  15759. value of which conforms to the rules defined for Format on the ADDFORMAT 
  15760. action. 
  15761.  
  15762.  
  15763. ΓòÉΓòÉΓòÉ 113.2.6. EQUALS() ΓòÉΓòÉΓòÉ
  15764.  
  15765. ΓöÇΓöÇEQUALS(pLink)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15766.  
  15767. This action causes the link to compare itself with the link pointed to by 
  15768. pLink. If they are equal, then the action returns 1 (true). If not, then it 
  15769. returns 0 (false). 
  15770.  
  15771.  
  15772. ΓòÉΓòÉΓòÉ 113.2.7. HOTLINK() ΓòÉΓòÉΓòÉ
  15773.  
  15774. ΓöÇΓöÇHOTLINK(Type,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15775.                   ΓööΓöÇFormatΓöÇΓöÿ
  15776.  
  15777. This action controls the treatment of the link as a hot link. 
  15778.  
  15779. Type must be a Boolean value. If it is 1 (true), then whenever the link is 
  15780. active, the client is told and the server data is updated. This is the default 
  15781. behavior of a link. If you do not want this behavior, then call the HOTLINK 
  15782. action with Type set to 0 (false). 
  15783.  
  15784. Format, if specified, is the format in which the client wishes to receive data 
  15785. whenever the server is updated. If unspecified, the same rules are used to 
  15786. determine a format as are described for the REQUEST action. 
  15787.  
  15788.  
  15789. ΓòÉΓòÉΓòÉ 113.2.8. LOAD() ΓòÉΓòÉΓòÉ
  15790.  
  15791. ΓöÇΓöÇLOAD(pObject)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15792.  
  15793. This action is used by the application to load link information into the LINK 
  15794. object. pObject must be a pointer either to a STREAM object provided via ON 
  15795. TARGET, or to the handle to a CLIPBOARD object where CF_LINK data is available 
  15796. on the system clipboard. 
  15797.  
  15798. If there is an active conversation with a server when LOAD is called, the 
  15799. conversation will be terminated. LOAD effectively replaces the current LINK 
  15800. definition, and is typically only called once in the life of the LINK. 
  15801.  
  15802.  
  15803. ΓòÉΓòÉΓòÉ 113.2.9. QUERYFORMATS() ΓòÉΓòÉΓòÉ
  15804.  
  15805. ΓöÇΓöÇQUERYFORMATS(pFormats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15806.  
  15807. This action requests the available rendering formats for the linked server. If 
  15808. NATIVEFORMAT is set, this will always be the first format returned. 
  15809.  
  15810. pFormats must be a pointer to a vector within the clients program to be 
  15811. populated with the format information. One format name will be allocated to 
  15812. each vector element. Any existing data in the vector will be deleted. 
  15813.  
  15814.  
  15815. ΓòÉΓòÉΓòÉ 113.2.10. REQUEST() ΓòÉΓòÉΓòÉ
  15816.  
  15817. ΓöÇΓöÇREQUEST(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15818.              ΓööΓöÇFormatΓöÇΓöÿ
  15819.  
  15820. This action directs the LINK object to render data from the linked object in 
  15821. the specified format. Any result of this will be seen by the application 
  15822. through a TARGET event. 
  15823.  
  15824. If this action determines that the requested rendering cannot take place, then 
  15825. ERROR is signaled. 
  15826.  
  15827. Format, if specified, indicates the format that the rendering will use. If 
  15828. Format is not specified the format will be: 
  15829.  
  15830. o DEFAULTFORMAT if it has been set 
  15831.  
  15832. o The first format specified in the FORMATS or ADDFORMAT actions and known to 
  15833.   be supported by the server. If there is no match with server formats, the 
  15834.   first specified format 
  15835.  
  15836. o The first format specified in the FORMATS item of the SYSTEM topic by the 
  15837.   server. 
  15838. If no format can be derived using these rules, an error condition will be 
  15839. raised. 
  15840.  
  15841.  
  15842. ΓòÉΓòÉΓòÉ 113.2.11. RESTART() ΓòÉΓòÉΓòÉ
  15843.  
  15844. ΓöÇΓöÇRESTART()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15845.  
  15846. This action will attempt to restart the server, provided 
  15847.  
  15848. o The link is not already in DDE conversation with the server, 
  15849. o The link has usable restart information available. 
  15850.  
  15851. This information will be obtained from the server using the RESTART item of the 
  15852. SYSTEM topic. If available, the restart information should be in the form of 
  15853. the command string that may be passed to DosExecPgm to start the server. LINK 
  15854. will prefix this string with "START ", and pass the result to the COMMAND 
  15855. action on the SYSTEM object. 
  15856.  
  15857. LINK will seek to obtain RESTART information whenever a DDE conversation is 
  15858. successfully established. If obtained, it will preserved within the link until 
  15859. the next time a DDE conversation is established with the server. 
  15860.  
  15861. If RESTART is called while the link is active, or if the link does not have 
  15862. restart information for the server, an error condition will be raised. If an 
  15863. error is detected when restarting the server, an error condition will be 
  15864. raised. However, it is possible that the link may successfully execute a START 
  15865. command without the server actually starting correctly. 
  15866.  
  15867.  
  15868. ΓòÉΓòÉΓòÉ 113.2.12. VERIFYFORMAT() ΓòÉΓòÉΓòÉ
  15869.  
  15870. ΓöÇΓöÇVERIFYFORMAT(Format)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15871.  
  15872. This action requests verification that format is supported by the linked 
  15873. object. Verification is performed against the currently held format 
  15874. information. 
  15875.  
  15876. If the server does not support the FORMATS item of the SYSTEM topic, then no 
  15877. format information will exist and verification will fail. Nevertheless, the 
  15878. server may actually support a request for the format, and REQUEST() will not 
  15879. prevent such a request being made. 
  15880.  
  15881. This action returns 1 (true) if Format is supported, 0 (false) if Format if not 
  15882. supported, or NULL if the information needed to determine support is not 
  15883. available. 
  15884.  
  15885.  
  15886. ΓòÉΓòÉΓòÉ 113.3. Events ΓòÉΓòÉΓòÉ
  15887.  
  15888. ERROR                      QUIT 
  15889. TARGET(pstream) 
  15890.  
  15891.  
  15892. ΓòÉΓòÉΓòÉ 113.3.1. ERROR ΓòÉΓòÉΓòÉ
  15893.  
  15894. Signaled if REQUEST() determines that rendering cannot take place. 
  15895.  
  15896.  
  15897. ΓòÉΓòÉΓòÉ 113.3.2. QUIT ΓòÉΓòÉΓòÉ
  15898.  
  15899. Signaled when the link requests a shutdown. 
  15900.  
  15901.  
  15902. ΓòÉΓòÉΓòÉ 113.3.3. TARGET(pstream) ΓòÉΓòÉΓòÉ
  15903.  
  15904. This is signaled when data is obtained over the link. 
  15905.  
  15906.  
  15907. ΓòÉΓòÉΓòÉ 114. LINKSHOW ΓòÉΓòÉΓòÉ
  15908.  
  15909. The LINKSHOW object is used by applications to help manage links. 
  15910.  
  15911. Attributes 
  15912.  
  15913. Actions 
  15914.  
  15915. Events 
  15916.  
  15917. More about LINKSHOW 
  15918.  
  15919. See also: DDECLIENT, DDESERVER, LINK, SOURCECTRL, TARGETCTRL, REFERENCE 
  15920.  
  15921.  
  15922. ΓòÉΓòÉΓòÉ 114.1. Attributes ΓòÉΓòÉΓòÉ
  15923.  
  15924. OBJECTNAME             LINKS 
  15925. OWNERWINDOW            VISIBLE 
  15926.  
  15927.  
  15928. ΓòÉΓòÉΓòÉ 114.1.1. OBJECTNAME ΓòÉΓòÉΓòÉ
  15929.  
  15930. This attribute must be a character string of up to 255 bytes. This string is 
  15931. used to construct the window title of the dialog displayed by LINKSHOW. 
  15932.  
  15933. Set on OPEN, then read-only. 
  15934.  
  15935.  
  15936. ΓòÉΓòÉΓòÉ 114.1.2. LINKS ΓòÉΓòÉΓòÉ
  15937.  
  15938. This attribute must be a pointer to a vector of pointers to open LINK objects. 
  15939. Details of each Link will be displayed in the LINKSHOW dialog, and individual 
  15940. Links may be selected and manipulated. 
  15941.  
  15942. Set on OPEN, then read-only. 
  15943.  
  15944.  
  15945. ΓòÉΓòÉΓòÉ 114.1.3. OWNERWINDOW ΓòÉΓòÉΓòÉ
  15946.  
  15947. This attribute must be a pointer to a window handle. The referenced window will 
  15948. be made the OwnerWindow of the LINKSHOW dialog. 
  15949.  
  15950. Set on OPEN, then read-only. 
  15951.  
  15952.  
  15953. ΓòÉΓòÉΓòÉ 114.1.4. VISIBLE ΓòÉΓòÉΓòÉ
  15954.  
  15955. Setting this Boolean attribute to 1 (true) surfaces the LINKSHOW dialog. 
  15956.  
  15957.  
  15958. ΓòÉΓòÉΓòÉ 114.2. Actions ΓòÉΓòÉΓòÉ
  15959.  
  15960. ADDLINK() 
  15961.  
  15962.  
  15963. ΓòÉΓòÉΓòÉ 114.2.1. ADDLINK() ΓòÉΓòÉΓòÉ
  15964.  
  15965. ΓöÇΓöÇADDLINK(pLink)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  15966.  
  15967. This action will add a link to the set of links displayed by LINKSHOW. pLink 
  15968. must be a pointer to an open link. 
  15969.  
  15970.  
  15971. ΓòÉΓòÉΓòÉ 114.3. Events ΓòÉΓòÉΓòÉ
  15972.  
  15973. ERROR             QUIT 
  15974.  
  15975.  
  15976. ΓòÉΓòÉΓòÉ 114.3.1. ERROR ΓòÉΓòÉΓòÉ
  15977.  
  15978. Signaled if an error occurs during processing. 
  15979.  
  15980.  
  15981. ΓòÉΓòÉΓòÉ 114.3.2. QUIT ΓòÉΓòÉΓòÉ
  15982.  
  15983. Signaled when the user closes the LINKSHOW dialog. 
  15984.  
  15985.  
  15986. ΓòÉΓòÉΓòÉ 114.4. More about LINKSHOW ΓòÉΓòÉΓòÉ
  15987.  
  15988. A dialog will be presented by the LINKSHOW object. 
  15989.  
  15990. The dialog is sizable, and may be maximized but not minimized. The dialog has a 
  15991. minimum size that will not truncate the push buttons, and will always allow at 
  15992. least one item to be displayed in the list of Links. If the OWNERWINDOW 
  15993. attribute of LINKSHOW is set on OPEN, the dialog will behave accordingly. 
  15994.  
  15995. The main part of the dialog is a three column single selection list box 
  15996. displaying the APPLICATION, TOPIC, and LINK attribute values of each link known 
  15997. to LINKSHOW. If there is a fourth column it will contain the, translated, words 
  15998. Active or Inactive to reflect the status of the corresponding Link. This list 
  15999. box will resize to match the window size. The remainder of controls are only 
  16000. enabled as long as there is a link selected, in which case they operate on the 
  16001. selected link. 
  16002.  
  16003. The Automatic data update check box may be checked ON to make the link a Hot 
  16004. link. This means that if the server data changes, the Link will automatically 
  16005. receive an update which it will forward to its client application. If the link 
  16006. is not active, automatic data update will come into effect the next time it is 
  16007. successfully activated. 
  16008.  
  16009. The Automatic server restart check box may be checked ON to make cause the link 
  16010. to restart the server if an attempt to activate the link fails. This can only 
  16011. work if the link has been able to obtain restart information from the server 
  16012. during a previous conversation. If restart information is not available, this 
  16013. check box will be disabled in an unchecked state. 
  16014.  
  16015. The Activate/Deactivate push button will activate or deactivate the link, 
  16016. depending on the current Link status. Link activation may fail due to the 
  16017. server not being available, in which case the link will retry activation 
  16018. automatically every 60 seconds. If automatic server restarting is enabled, an 
  16019. attempt will be made to restart the server each time activation fails. If 
  16020. activation succeeds, an active indication will appear as part of the Link 
  16021. details in the list box, and the text on the button will change from Activate 
  16022. to Deactivate. If the link subsequently becomes inactive, this indication will 
  16023. be removed. 
  16024.  
  16025. The Request push button will request a data rendering from the Link. The client 
  16026. application will be informed of the data rendering. 
  16027.  
  16028. The Delete push button will delete the link. The link will be removed from the 
  16029. list of links. 
  16030.  
  16031. The Help push button has the standard Help behavior. 
  16032.  
  16033.  
  16034. ΓòÉΓòÉΓòÉ 115. LIST ΓòÉΓòÉΓòÉ
  16035.  
  16036. The LIST object class creates an instance of a list box. 
  16037.  
  16038. Parent: WINDOW 
  16039.  
  16040. Attributes 
  16041.  
  16042. Actions 
  16043.  
  16044. Events 
  16045.  
  16046. Examples 
  16047.  
  16048. More about LIST 
  16049.  
  16050.  
  16051. ΓòÉΓòÉΓòÉ 115.1. Attributes ΓòÉΓòÉΓòÉ
  16052.  
  16053. AUTOREFRESH            BORDER 
  16054. BGCOLOR                COLTITLE 
  16055. COLTITLE1              COLTITLE2 
  16056. COLUMNS                CURSORX 
  16057. CURSORY                DATAEVENT 
  16058. ENABLED                EXPRESSION 
  16059. FIXEDCOLS              FIXEDROWS 
  16060. FGCOLOR                FONT 
  16061. FONTTITLE              FONTFIXED 
  16062. HANDLES                HELP 
  16063. HORZSCROLL             LEFTCOL 
  16064. ORDERDATA              ORIGIN 
  16065. REFERENCE              ROWS 
  16066. SCROLLEVENT            SELECTCELLS 
  16067. SELECTCOLS             SELECTMODE 
  16068. SELECTION              SELECTROWS 
  16069. SIZEX                  SIZEY 
  16070. TAGSTYLE               TITLEINFO 
  16071. TOPROW                 VERTSCROLL 
  16072. VISIBLE                X 
  16073.  
  16074.  
  16075. ΓòÉΓòÉΓòÉ 115.1.1. AUTOREFRESH ΓòÉΓòÉΓòÉ
  16076.  
  16077. Controls refreshing of list on screen when underlying data is changed. 
  16078.  
  16079. 0         List is not automatically refreshed when underlying data is changed. 
  16080.           UPDATE, PUT, or REFRESH actions must be used to refresh the list. 
  16081. 1         List is automatically refreshed when a wait state is entered with 
  16082.           changed data. 
  16083.  
  16084. Default: 1 
  16085.  
  16086.  
  16087. ΓòÉΓòÉΓòÉ 115.1.2. BORDER ΓòÉΓòÉΓòÉ
  16088.  
  16089. The size of the border around the list box in pixels. 
  16090.  
  16091. A value of 0 suppresses the border; the maximum value is 29. 
  16092.  
  16093. Default: 1 (Single pixel border displayed) 
  16094.  
  16095.  
  16096. ΓòÉΓòÉΓòÉ 115.1.3. BGCOLOR ΓòÉΓòÉΓòÉ
  16097.  
  16098. The background color for the list box. 
  16099.  
  16100. Default: Determined by operating system. 
  16101.  
  16102.  
  16103. ΓòÉΓòÉΓòÉ 115.1.4. COLTITLE ΓòÉΓòÉΓòÉ
  16104.  
  16105. Array of strings, one entry per column. Used as the first line of titles for 
  16106. the list box if only one title row is specified in FIXEDROWS attribute. 
  16107. Otherwise, array contains the names of the arrays of titles for each column. 
  16108. This allows a variable number of title lines to be specified with independent 
  16109. formatting capabilities (in which case COLTITLE1 and COLTITLE2 attributes are 
  16110. not required). 
  16111.  
  16112. The array of titles should correspond in number to the number of columns 
  16113. specified in REFERENCE. 
  16114.  
  16115. Default: "" 
  16116.  
  16117.  
  16118. ΓòÉΓòÉΓòÉ 115.1.5. COLTITLE1 ΓòÉΓòÉΓòÉ
  16119.  
  16120. Array of strings, one entry per column. Used as the first line of titles for 
  16121. the list box. 
  16122.  
  16123. Default: "" 
  16124.  
  16125.  
  16126. ΓòÉΓòÉΓòÉ 115.1.6. COLTITLE2 ΓòÉΓòÉΓòÉ
  16127.  
  16128. Array of strings, one entry per column. Used as the second line of titles for 
  16129. the list box. 
  16130.  
  16131. Default: "" 
  16132.  
  16133.  
  16134. ΓòÉΓòÉΓòÉ 115.1.7. COLUMNS ΓòÉΓòÉΓòÉ
  16135.  
  16136. The number of columns visible in the list box 
  16137.  
  16138. Read-only. 
  16139.  
  16140.  
  16141. ΓòÉΓòÉΓòÉ 115.1.8. CURSORX ΓòÉΓòÉΓòÉ
  16142.  
  16143. Column number where the edit focus cell is positioned (used with editable list 
  16144. boxes). 
  16145.  
  16146. Read-only 
  16147.  
  16148. Default: None 
  16149.  
  16150.  
  16151. ΓòÉΓòÉΓòÉ 115.1.9. CURSORY ΓòÉΓòÉΓòÉ
  16152.  
  16153. Row number where edit focus cell is positioned (used with editable list boxes). 
  16154.  
  16155. Read-only 
  16156.  
  16157. Default: None 
  16158.  
  16159.  
  16160. ΓòÉΓòÉΓòÉ 115.1.10. DATAEVENT ΓòÉΓòÉΓòÉ
  16161.  
  16162. Controls whether the LISTDATA event should be signaled when a locked row is 
  16163. scrolled out of view, the Ctrl+Enter key is pressed, the Delete key is pressed, 
  16164. or a column is sized. (See the LISTDATA event.) box is scrolled and updated or 
  16165. when locked data is moved out of view in an editable list boxes. 
  16166.  
  16167. 0         LISTDATA event is not signaled 
  16168. 1         LISTDATA event is signaled 
  16169.  
  16170. Default: 0 
  16171.  
  16172.  
  16173. ΓòÉΓòÉΓòÉ 115.1.11. ENABLED ΓòÉΓòÉΓòÉ
  16174.  
  16175. Whether the list box is enabled: 
  16176.  
  16177. 0         List box disabled-data cannot be selected or scrolled 
  16178. 1         List box enabled-data can be selected or scrolled but not updated. 
  16179. 2         List box enabled-data can be selected, scrolled, and updated. 
  16180. 3         List box enabled-data can be selected, scrolled and columns can be 
  16181.           resized (but not updated). 
  16182. 4         List box enabled-data can be selected, scrolled, updated and columns 
  16183.           can be resized. 
  16184.  
  16185. Default: 1 (Enabled for read-only) 
  16186.  
  16187.  
  16188. ΓòÉΓòÉΓòÉ 115.1.12. EXPRESSION ΓòÉΓòÉΓòÉ
  16189.  
  16190. Array of strings, one for each column, defining how the columns should be 
  16191. displayed. 
  16192.  
  16193. Each string, which must be enclosed in quotation marks ("), can contain the 
  16194. following parts, separated by a space: 
  16195.  
  16196. FGCOLOR=  Foreground color to be displayed for that column. 
  16197.  
  16198.           Default: 0 (Default foreground color for column display) 
  16199.  
  16200. BGCOLOR=  Background color to be displayed for that column. 
  16201.  
  16202.           Default: 0 (Default background color for column display) 
  16203.  
  16204. LENGTH=   Maximum data width in characters (only used with editable list 
  16205.           boxes). Default: 255 
  16206.  
  16207. READONLY= YES or NO. Default: NO (If ENABLED is set, data can be edited) 
  16208.  
  16209. UNDERLINE= YES or NO. Default: NO 
  16210.  
  16211. WIDTH=    Column width in dialog units. Default: 0 
  16212.  
  16213. SEPARATOR= YES or NO. Default: NO 
  16214.  
  16215. JUST=     LEFT, RIGHT, or CENTER. Default: LEFT 
  16216.  
  16217. Keywords may be in any order, but each keyword must be separated by at least 
  16218. one blank. No blanks are allowed before or after the equal sign ( =). 
  16219.  
  16220. Set on OPEN, then read-only. 
  16221.  
  16222.  
  16223. ΓòÉΓòÉΓòÉ 115.1.13. FIXEDCOLS ΓòÉΓòÉΓòÉ
  16224.  
  16225. FIXEDCOLS is the number of columns to be fixed at the left side in the list 
  16226. box. If too large a value is supplied, the number of columns will be used 
  16227. instead. 
  16228.  
  16229. Default: 0 (No fixed columns) 
  16230.  
  16231.  
  16232. ΓòÉΓòÉΓòÉ 115.1.14. FIXEDROWS ΓòÉΓòÉΓòÉ
  16233.  
  16234. This is the number of fixed title rows for each column. 
  16235.  
  16236. FIXEDROWS must be less than or equal to the total number of rows. If COLTITLE1 
  16237. (or COLTITLE2) array has been supplied, excess fixed rows will be padded out 
  16238. with blank entries. (For example, if COLTITLE1 and COLTITLE2 are used to 
  16239. specify titles but FIXEDROWS=4, two blank title rows will be inserted after the 
  16240. specified title.) 
  16241.  
  16242. Default: 0 (No title rows) 
  16243.  
  16244.  
  16245. ΓòÉΓòÉΓòÉ 115.1.15. FGCOLOR ΓòÉΓòÉΓòÉ
  16246.  
  16247. The color for the border. 
  16248.  
  16249. Default: Determined by operating system. 
  16250.  
  16251.  
  16252. ΓòÉΓòÉΓòÉ 115.1.16. FONT ΓòÉΓòÉΓòÉ
  16253.  
  16254. The font for the main area. 
  16255.  
  16256. Acceptable values are displayed in the OS/2 Font Palette. 
  16257.  
  16258. Default: Determined by operating system. 
  16259.  
  16260.  
  16261. ΓòÉΓòÉΓòÉ 115.1.17. FONTTITLE ΓòÉΓòÉΓòÉ
  16262.  
  16263. The font for the TITLE row (or rows). 
  16264.  
  16265. Acceptable values are displayed in the OS/2 Font Palette. 
  16266.  
  16267. Default: Determined by operating system. 
  16268.  
  16269.  
  16270. ΓòÉΓòÉΓòÉ 115.1.18. FONTFIXED ΓòÉΓòÉΓòÉ
  16271.  
  16272. The font for the fixed column (or columns). 
  16273.  
  16274. Acceptable values are displayed in the OS/2 Font Palette. 
  16275.  
  16276. Default: Determined by operating system. 
  16277.  
  16278.  
  16279. ΓòÉΓòÉΓòÉ 115.1.19. HANDLES ΓòÉΓòÉΓòÉ
  16280.  
  16281. Whether sizing handles are attached to the list box to support moving, sizing, 
  16282. and copying operations. These direct manipulation techniques follow the CUA 
  16283. guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  16284.  
  16285. 0         Handles are not displayed 
  16286. 1         Handles are displayed 
  16287.  
  16288. Default: 0 (No handles) 
  16289.  
  16290.  
  16291. ΓòÉΓòÉΓòÉ 115.1.20. HELP ΓòÉΓòÉΓòÉ
  16292.  
  16293. Resource identifier (res ID) of the help text for this object. 
  16294.  
  16295. Default: 0 
  16296.  
  16297.  
  16298. ΓòÉΓòÉΓòÉ 115.1.21. HORZSCROLL ΓòÉΓòÉΓòÉ
  16299.  
  16300. Horizontal scroll bar drawn to enable data scrolling: 
  16301.  
  16302. 0         No horizontal scroll bar drawn 
  16303. 1         Horizontal scroll bar drawn, scrolling by pixel 
  16304. 2         Horizontal scroll bar drawn, scrolling by column 
  16305.  
  16306. Set on OPEN, then read-only. 
  16307.  
  16308. Default: 0 (No horizontal scroll bar) 
  16309.  
  16310.  
  16311. ΓòÉΓòÉΓòÉ 115.1.22. LEFTCOL ΓòÉΓòÉΓòÉ
  16312.  
  16313. Column currently displayed at the left of the list. The value must be equal to 
  16314. or greater than the first nonfixed column and less than or equal to the total 
  16315. number of columns. If the value is greater than the first nonfixed column, it 
  16316. will be replaced by the value for that column. 
  16317.  
  16318. Default: 1 
  16319.  
  16320.  
  16321. ΓòÉΓòÉΓòÉ 115.1.23. ORDERDATA ΓòÉΓòÉΓòÉ
  16322.  
  16323. Array containing the row numbers of the data to be loaded into the list box. 
  16324. array can be used to load the list box with a subset of the data or to reorder 
  16325. the rows (or a combination of both). 
  16326.  
  16327. The row numbers in array can be changed after the list has been opened. The new 
  16328. rows will be displayed if AUTOREFRESH is on, or REFRESH() is called. 
  16329.  
  16330. Default: None, all rows are displayed. 
  16331.  
  16332.  
  16333. ΓòÉΓòÉΓòÉ 115.1.24. ORIGIN ΓòÉΓòÉΓòÉ
  16334.  
  16335. The corner of the enclosing window to be taken as the origin.  The position of 
  16336. the list box is measured from this point. 
  16337.  
  16338. "TL"      Top left 
  16339. "TR"      Top right 
  16340. "BL"      Bottom left 
  16341. "BR"      Bottom right 
  16342.  
  16343. Default: "BL" (Bottom left) 
  16344.  
  16345.  
  16346. ΓòÉΓòÉΓòÉ 115.1.25. PACKET ΓòÉΓòÉΓòÉ
  16347.  
  16348. Data reading by packets of rows enabled or disabled: Reading by data packets is 
  16349. useful when displaying large amounts of data. 
  16350.  
  16351. 0         Data packets are not used 
  16352. 1         Data packets are used 
  16353.  
  16354. Default: 0 (Set on OPEN then read-only) 
  16355.  
  16356.  
  16357. ΓòÉΓòÉΓòÉ 115.1.26. REFERENCE ΓòÉΓòÉΓòÉ
  16358.  
  16359. Array containing the names of the arrays that contain each column of data. 
  16360.  
  16361. Do not change the value of REFERENCE in order to change the data that the LIST 
  16362. object references. To change the referenced data, first close the LIST object. 
  16363. Then open it with a new value of REFERENCE and a corresponding new value of 
  16364. EXPRESSION. You can change the referenced data, for example, to change the 
  16365. number of columns that the list box shows. 
  16366.  
  16367. Default: "" 
  16368.  
  16369.  
  16370. ΓòÉΓòÉΓòÉ 115.1.27. ROWS ΓòÉΓòÉΓòÉ
  16371.  
  16372. The number of rows visible in the list box 
  16373.  
  16374. Read-only. 
  16375.  
  16376.  
  16377. ΓòÉΓòÉΓòÉ 115.1.28. SCROLLEVENT ΓòÉΓòÉΓòÉ
  16378.  
  16379. Determines whether the LISTSCROLL event will be signaled when the list box is 
  16380. scrolled. 
  16381.  
  16382. 0         LISTSCROLL event is not signaled when scrolling occurs. 
  16383. 1         LISTSCROLL event is signaled when scrolling occurs 
  16384.  
  16385. Default: 0 
  16386.  
  16387.  
  16388. ΓòÉΓòÉΓòÉ 115.1.29. SELECTCELLS ΓòÉΓòÉΓòÉ
  16389.  
  16390. Enables selection of cells in the list box: Cells can be selectable with or 
  16391. without having selection tags. Except for one-select list boxes (where one item 
  16392. cannot be deselected without selecting a new item), the user will only be able 
  16393. to select those cells with selection tags. 
  16394.  
  16395. 0         No cells can be selected 
  16396. 1         Cells can be selected, but have no tags 
  16397. 2         Cells can be selected, and have tags 
  16398.  
  16399. Set on OPEN, then read-only. 
  16400.  
  16401. Default: 0 (No cells can be selected) 
  16402.  
  16403.  
  16404. ΓòÉΓòÉΓòÉ 115.1.30. SELECTCOLS ΓòÉΓòÉΓòÉ
  16405.  
  16406. Enables selection and editing of fixed and scrollable columns in the list box: 
  16407. Selection of fixed and scrollable columns can be independently controlled. 
  16408. (Selection tags can be shown for scrollable columns only or for both selectable 
  16409. and fixed columns.) 
  16410.  
  16411. When a list is editable (except for one-select list boxes), the user will only 
  16412. be able to select those columns that have selection tags. 
  16413.  
  16414. Values in a list box can be edited if ENABLED is set appropriately. (Columns 
  16415. may also be affected by the READONLY part of the EXPRESSION attribute.) 
  16416.  
  16417. 0         No selection. If the list is editable, only scrollable columns can be 
  16418.           edited. 
  16419. 1         Columns selectable, no tags. Only scrollable columns can be selected, 
  16420.           but the columns have no tags. If the list is editable, only 
  16421.           scrollable columns can be edited. 
  16422. 2         All columns can be selected. Scrollable columns have tags. If the 
  16423.           list is editable, all columns can be edited. 
  16424. 3         All columns can be selected. No columns have tags. If the list is 
  16425.           editable, all columns can be edited. 
  16426. 4         All columns can be selected. All columns have tags. If the list is 
  16427.           editable, all columns can be edited. 
  16428.  
  16429. Set on OPEN, then read-only. 
  16430.  
  16431. Default: 0 (No selection) 
  16432.  
  16433.  
  16434. ΓòÉΓòÉΓòÉ 115.1.31. SELECTMODE ΓòÉΓòÉΓòÉ
  16435.  
  16436. Current selection type: 
  16437.  
  16438. 0         No selections have been made. 
  16439. 1         Row. One or more rows have been selected 
  16440. 2         Column. One or more columns have been selected 
  16441. 3         Row/Column. One or more rows and columns have been selected 
  16442. 4         Cell. One or more cells have been selected 
  16443. 5         Row/Cell. One or more rows and cells have been selected 
  16444. 6         Column/Cell. One or more columns and cells have been selected 
  16445. 7         Row/Column/Cell. One or more rows, columns and cells have been 
  16446.           selected. 
  16447.  
  16448. Set when item selected, then read-only. QUERYCHECK can be used to determine 
  16449. which rows, columns, or cells have been selected. 
  16450.  
  16451. Default: None 
  16452.  
  16453.  
  16454. ΓòÉΓòÉΓòÉ 115.1.32. SELECTION ΓòÉΓòÉΓòÉ
  16455.  
  16456. Selection type from the list box: 
  16457.  
  16458. 0         Extended selection. More than one item can be selected (by striping 
  16459.           or extended selection from the keyboard). 
  16460. 1         Single selection. Only one item can be selected 
  16461. 2         Multiple selection. More than one item can be selected (subsequent 
  16462.           selections are added to the existing selections) 
  16463. 3         List is enabled but not selectable (except under program control). 
  16464. 4         One selection. Deselection cannot be done without selecting another 
  16465.           item. 
  16466.  
  16467. Set on OPEN, then read-only. 
  16468.  
  16469. Default: 0 (Extended selection) 
  16470.  
  16471.  
  16472. ΓòÉΓòÉΓòÉ 115.1.33. SELECTROWS ΓòÉΓòÉΓòÉ
  16473.  
  16474. Enables selection and editing of fixed and scrollable rows in the list box. 
  16475. Selection of fixed (title) and scrollable rows can be independently controlled. 
  16476. (Selection tags can be shown for scrollable rows only or for both fixed and 
  16477. scrollable rows.) 
  16478.  
  16479. When a list is editable (except for one-select list boxes), the user will only 
  16480. be able to select those rows that have selection tags. 
  16481.  
  16482. Values in a list box can be edited if ENABLED is set appropriately. (title rows 
  16483. may be affected by the READONLY part of the TITLEINFO attribute as well.) 
  16484.  
  16485. 0         No selection. This setting has no effect if SELECTCOLS and 
  16486.           SELECTCELLS are also zero. To turn off all selection capability, use 
  16487.           the SELECTION attribute. If the list is editable, only scrollable 
  16488.           rows can be edited. 
  16489. 1         Only scrollable rows can be selected (but there are no row tags). If 
  16490.           the list is editable, only scrollable rows can be edited. 
  16491. 2         Only scrollable rows can be selected (there are row tags). If the 
  16492.           list is editable, all rows can be edited. 
  16493. 3         All rows can be selected (but no rows have tags). If the list is 
  16494.           editable, all rows can be edited. 
  16495. 4         All rows can be selected (and all rows have tags). If the list is 
  16496.           editable, all rows can be edited. 
  16497.  
  16498. Set on OPEN, then read-only. 
  16499.  
  16500. Default: 1 (Rows selectable but no tags) 
  16501.  
  16502.  
  16503. ΓòÉΓòÉΓòÉ 115.1.34. SIZEX ΓòÉΓòÉΓòÉ
  16504.  
  16505. Width, in dialog units. 
  16506.  
  16507. Default: 0 
  16508.  
  16509.  
  16510. ΓòÉΓòÉΓòÉ 115.1.35. SIZEY ΓòÉΓòÉΓòÉ
  16511.  
  16512. Height, in dialog units. 
  16513.  
  16514. Default: 0 
  16515.  
  16516.  
  16517. ΓòÉΓòÉΓòÉ 115.1.36. TAGSTYLE ΓòÉΓòÉΓòÉ
  16518.  
  16519. This specifies the style of tags to be displayed when tags have been specified 
  16520. in SELECTROWS, SELECTCOLS, or SELECTCELLS attributes. (All tags in the display 
  16521. will be of the same type.) 
  16522.  
  16523. 0         Marker style tags 
  16524. 1         Hidden tags 
  16525. 2         Button style tags 
  16526.  
  16527.           Default: 0 (Marker tags) 
  16528.  
  16529.  
  16530. ΓòÉΓòÉΓòÉ 115.1.37. TITLEINFO ΓòÉΓòÉΓòÉ
  16531.  
  16532. Array of strings, one for each column, defining how the column title rows 
  16533. should be displayed. The WIDTH of the title column is not required since the 
  16534. width of the column of data to be displayed underneath the title is used. 
  16535.  
  16536. Each string, which must be enclosed in quotation marks ("), can contain the 
  16537. following parts, separated by a comma: 
  16538.  
  16539. LENGTH=   Maximum data width in characters. 
  16540.  
  16541.           Default: 255 This is only used with editable titles. 
  16542.  
  16543. SEPARATOR= YES or NO 
  16544.  
  16545.           Default: NO 
  16546.  
  16547. UNDERLINE= YES or NO 
  16548.  
  16549.           Default: NO 
  16550.  
  16551. JUST=     LEFT, RIGHT or CENTER Default is LEFT. 
  16552.  
  16553. READONLY= YES or NO 
  16554.  
  16555.           Default: NO The title is editable if ENABLED is set. 
  16556.  
  16557. FGCOLOR=  Foreground color to be displayed for that column. 
  16558.  
  16559.           Default: 0 (Default foreground color for column display) 
  16560.  
  16561. BGCOLOR=  Background color to be displayed for that column 
  16562.  
  16563.           Default: 0 (Default background color for column display) 
  16564.  
  16565. Keywords may be in any order separated by at least one blank. No blanks are 
  16566. allowed before or after the = sign. 
  16567.  
  16568. Set on OPEN, then read-only. 
  16569.  
  16570.  
  16571. ΓòÉΓòÉΓòÉ 115.1.38. TOPROW ΓòÉΓòÉΓòÉ
  16572.  
  16573. Row to be displayed (or currently displayed) at the top of the list. 
  16574.  
  16575. Default: 1 
  16576.  
  16577.  
  16578. ΓòÉΓòÉΓòÉ 115.1.39. VERTSCROLL ΓòÉΓòÉΓòÉ
  16579.  
  16580. Vertical scroll bar drawn to enable data scrolling: 
  16581.  
  16582. 0         No vertical scroll bar drawn 
  16583. 1         Vertical scroll bar drawn 
  16584.  
  16585. Set on OPEN, then read-only. 
  16586.  
  16587. Default: 1 (Vertical scroll bar) 
  16588.  
  16589.  
  16590. ΓòÉΓòÉΓòÉ 115.1.40. VISIBLE ΓòÉΓòÉΓòÉ
  16591.  
  16592. Whether the list is displayed: 
  16593.  
  16594. 0         List box not displayed 
  16595. 1         List box displayed 
  16596.  
  16597. Default: 1 (Displayed) 
  16598.  
  16599.  
  16600. ΓòÉΓòÉΓòÉ 115.1.41. X ΓòÉΓòÉΓòÉ
  16601.  
  16602. Horizontal position of the bottom left-hand corner of the list, in dialog 
  16603. units. 
  16604.  
  16605. Default: 0 
  16606.  
  16607.  
  16608. ΓòÉΓòÉΓòÉ 115.1.42. Y ΓòÉΓòÉΓòÉ
  16609.  
  16610. Vertical position of the bottom left-hand corner of the list, in dialog units. 
  16611.  
  16612. Default: 0 
  16613.  
  16614.  
  16615. ΓòÉΓòÉΓòÉ 115.2. Actions ΓòÉΓòÉΓòÉ
  16616.  
  16617. CHECK()                  CREATE() 
  16618. CURSORBOX()              DESTROY() 
  16619. EDIT()                   GET() 
  16620. GETROW()                 GETTITLE() 
  16621. LOCK()                   PLACECURSOR() 
  16622. PUT()                    PUTTITLE() 
  16623. QUERYCHECK()             QUERYCURSOR() 
  16624. QUERYLOCKED()            QUERYWIDTH() 
  16625. REFRESH()                SETCHECK() 
  16626. SETCOLOR()               SETWIDTH 
  16627. UNCHECK()                UNLOCK() 
  16628. UPDATE() 
  16629.  
  16630.  
  16631. ΓòÉΓòÉΓòÉ 115.2.1. CHECK() ΓòÉΓòÉΓòÉ
  16632.  
  16633. ΓöÇΓöÇCHECK(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16634.            ΓööΓöÇrow_numberΓöÇΓöÿ   ΓööΓöÇcolumn_numberΓöÇΓöÿ
  16635.  
  16636. Marks a row, column, or cell as selected. For lists where only one item can be 
  16637. selected, this turns off any other selections. For lists where more than one 
  16638. item can be selected, this is in addition to any existing selections. (To 
  16639. select a cell, specify both column_number and row_number.) If  column_number or 
  16640. row_number is zero, all selections are removed. 
  16641.  
  16642.  
  16643. ΓòÉΓòÉΓòÉ 115.2.2. CREATE() ΓòÉΓòÉΓòÉ
  16644.  
  16645. ΓöÇΓöÇCREATE(array,row_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16646.  
  16647. Inserts a new row at position  row_number, putting there the contents of the 
  16648. variable array (one entry per column). The list box will return the next 
  16649. available insert row number. When a created row is selected, A.System.BoxNumber 
  16650. is set to the value returned by the CREATE action and A.System.BoxValue is set 
  16651. to "INSERTED". 
  16652.  
  16653. The created row can be locked (using the LOCK action) so that a LISTDATA event 
  16654. is signaled whenever it is scrolled out of view. If the ORDERDATA attribute is 
  16655. used, the program should update the the ORDERDATA vector when rows are inserted 
  16656. into the list with CREATE(). 
  16657.  
  16658.  
  16659. ΓòÉΓòÉΓòÉ 115.2.3. CURSORBOX() ΓòÉΓòÉΓòÉ
  16660.  
  16661. ΓöÇΓöÇCURSORBOX(row_number,column_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16662.  
  16663. Repositions the top left corner of the list box to the specified row number, 
  16664. and from the indicated column. 
  16665.  
  16666. The values must be valid row and column numbers. 
  16667.  
  16668.  
  16669. ΓòÉΓòÉΓòÉ 115.2.4. DESTROY() ΓòÉΓòÉΓòÉ
  16670.  
  16671. ΓöÇΓöÇDESTROY(row_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16672.  
  16673. Deletes the list box row at the given row_number. This action should only be 
  16674. called after the corresponding data has been deleted, except when deleting a 
  16675. row inserted by CREATE(). 
  16676.  
  16677. If the ORDERDATA attribute is used, the program should update the ORDERDATA 
  16678. vector when rows are deleted from the data or list box. 
  16679.  
  16680.  
  16681. ΓòÉΓòÉΓòÉ 115.2.5. EDIT() ΓòÉΓòÉΓòÉ
  16682.  
  16683. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16684.  
  16685. Enables the programmer to query whether a clipboard operation is supported and, 
  16686. if it is, to carry it out. 
  16687.  
  16688. argument is a clipboard query or a clipboard operation. 
  16689.  
  16690. The following values for argument are used to check whether particular 
  16691. clipboard operations can be supported with the list box in its current state: 
  16692.  
  16693. "Querycut" Cut to clipboard 
  16694. "Querycopy" Copy to clipboard 
  16695. "Querypaste" Paste from clipboard 
  16696. "Queryclear" Clear clipboard. 
  16697.  
  16698. Where clipboard operations are supported, the following values for argument 
  16699. direct them to be carried out: 
  16700.  
  16701. "Cut"     Cut to clipboard 
  16702. "Copy"    Copy to clipboard 
  16703. "Paste"   Paste from clipboard 
  16704. "Clear"   Clear clipboard. 
  16705. Clipboard operations are only performed by the list on data in an edit cell. 
  16706.  
  16707.  
  16708. ΓòÉΓòÉΓòÉ 115.2.6. GET() ΓòÉΓòÉΓòÉ
  16709.  
  16710. ΓöÇΓöÇGET(ret_value,row_number,column_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16711.  
  16712. Returns value of specified list box cell in ret_value. 
  16713.  
  16714. The values must be valid row and column numbers. 
  16715.  
  16716.  
  16717. ΓòÉΓòÉΓòÉ 115.2.7. GETROW() ΓòÉΓòÉΓòÉ
  16718.  
  16719. ΓöÇΓöÇGETROW(array,row_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16720.  
  16721. Allows retrieval of all the values for any row in the list box. All changes 
  16722. made to the data in the list box will be retrieved. 
  16723.  
  16724. array is an array which will be filled up from the list box. Each element of 
  16725. the array corresponds to a column in the list box. 
  16726.  
  16727. row_number is the list box row number from which the data is to be retrieved. 
  16728.  
  16729. The value must be a valid row number and the array must exist. 
  16730.  
  16731.  
  16732. ΓòÉΓòÉΓòÉ 115.2.8. GETTITLE() ΓòÉΓòÉΓòÉ
  16733.  
  16734. ΓöÇΓöÇGETTITLE(ret_value,row_number,column_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16735.  
  16736. Returns value of the specified title in ret_value. 
  16737.  
  16738. The values must be valid row and column numbers for titles. 
  16739.  
  16740.  
  16741. ΓòÉΓòÉΓòÉ 115.2.9. LOCK() ΓòÉΓòÉΓòÉ
  16742.  
  16743. ΓöÇΓöÇLOCK(row_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16744.  
  16745. Marks a row as locked. This is in addition to any existing locked rows. 
  16746.  
  16747. The value must be a valid row number. Rows are automatically locked in an 
  16748. editable list box when values are changed by the user. For more information on 
  16749. locking, see the DATA and LISTDATA events. 
  16750.  
  16751.  
  16752. ΓòÉΓòÉΓòÉ 115.2.10. PLACECURSOR() ΓòÉΓòÉΓòÉ
  16753.  
  16754. ΓöÇΓöÇPLACECURSOR(row_num,col_num,start_pos,length)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16755.  
  16756. Places cursor at start position start_pos and highlights the number of bytes 
  16757. specified in length in the cell of the list box at the row and column specified 
  16758. in row_num and col_num. 
  16759.  
  16760. The values must be valid row and column numbers. 
  16761.  
  16762.  
  16763. ΓòÉΓòÉΓòÉ 115.2.11. PUT() ΓòÉΓòÉΓòÉ
  16764.  
  16765. ΓöÇΓöÇPUT(new_value,row_number,column_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16766.  
  16767. Updates the value of the cell in the list box. 
  16768.  
  16769. The values must be valid row and column numbers. 
  16770.  
  16771.  
  16772. ΓòÉΓòÉΓòÉ 115.2.12. PUTTITLE() ΓòÉΓòÉΓòÉ
  16773.  
  16774. ΓöÇΓöÇPUTTITLE(new_value,row_number,column_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16775.  
  16776. Updates the value of the specified title in the list box. 
  16777.  
  16778. The values must be valid row and column numbers for titles. 
  16779.  
  16780.  
  16781. ΓòÉΓòÉΓòÉ 115.2.13. QUERYCHECK() ΓòÉΓòÉΓòÉ
  16782.  
  16783. ΓöÇΓöÇQUERYCHECK(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16784.                 ΓööΓöÇrow_arrayΓöÇΓöÿ   ΓööΓöÇcolumn_arrayΓöÇΓöÿ
  16785.  
  16786. Returns a list of the currently selected rows, columns, or cells. If  row_array 
  16787. only is specified, it is filled with the row numbers of the currently selected 
  16788. rows. If  column_array only is specified, it is filled with the column numbers 
  16789. of the currently selected columns. If both are specified, they are filled with 
  16790. the row and column numbers of the currently selected cells. 
  16791.  
  16792. row_array or column_array must already exist. 
  16793.  
  16794.  
  16795. ΓòÉΓòÉΓòÉ 115.2.14. QUERYCURSOR() ΓòÉΓòÉΓòÉ
  16796.  
  16797. ΓöÇΓöÇQUERYCURSOR(start_position,length)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16798.  
  16799. Returns (in start_position and length) the start position of the cursor and 
  16800. length of highlighted text (if the cursor is in edit mode within a cell). The 
  16801. values returned indicate the number of bytes. 
  16802.  
  16803.  
  16804. ΓòÉΓòÉΓòÉ 115.2.15. QUERYLOCKED() ΓòÉΓòÉΓòÉ
  16805.  
  16806. ΓöÇΓöÇQUERYLOCKED(array)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16807.  
  16808. Fills array with the row numbers of any items that have been marked as locked. 
  16809. array must already exist. For more information, see the DATA and LISTDATA 
  16810. events. 
  16811.  
  16812.  
  16813. ΓòÉΓòÉΓòÉ 115.2.16. QUERYWIDTH() ΓòÉΓòÉΓòÉ
  16814.  
  16815. ΓöÇΓöÇQUERYWIDTHΓöÇΓöÇ(ΓöÇΓöÇcolumn_numberΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16816.  
  16817. Returns the width (in dialog units) of the column specified by column_number. 
  16818.  
  16819.  
  16820. ΓòÉΓòÉΓòÉ 115.2.17. REFRESH() ΓòÉΓòÉΓòÉ
  16821.  
  16822. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16823.  
  16824. Forces repainting of the list box on the screen. When AUTOREFRESH is off, use 
  16825. REFRESH() to make the list box read new values from the underlying data. 
  16826.  
  16827.  
  16828. ΓòÉΓòÉΓòÉ 115.2.18. SETCHECK() ΓòÉΓòÉΓòÉ
  16829.  
  16830. ΓöÇΓöÇSETCHECK(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16831.               ΓööΓöÇrow_arrayΓöÇΓöÿ   ΓööΓöÇcolumn_arrayΓöÇΓöÿ
  16832.  
  16833. Selects rows, columns, or cells in the list. If only  row_array is supplied, 
  16834. rows are selected. If only  column_array is supplied, columns are selected. 
  16835.  
  16836. Cells are selected if both row_array and column_array are used. All existing 
  16837. selections are turned off first. 
  16838.  
  16839.  
  16840. ΓòÉΓòÉΓòÉ 115.2.19. SETCOLOR() ΓòÉΓòÉΓòÉ
  16841.  
  16842. ΓöÇΓöÇSETCOLORΓöÇΓöÇ(ΓöÇΓöÇrowΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16843.                          ΓööΓöÇforegroundΓöÇΓöÿ     ΓööΓöÇbackgroundΓöÇΓöÿ
  16844.  
  16845. Sets the foreground color, or the background color, or both, for the row number 
  16846. specified in row. 
  16847.  
  16848.  
  16849. ΓòÉΓòÉΓòÉ 115.2.20. SETWIDTH ΓòÉΓòÉΓòÉ
  16850.  
  16851. ΓöÇΓöÇSETWIDTHΓöÇΓöÇ(ΓöÇΓöÇcolumn_number,widthΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16852.  
  16853. Sets the width (in dialog units) of the column specified by column_number to 
  16854. width. 
  16855.  
  16856.  
  16857. ΓòÉΓòÉΓòÉ 115.2.21. UNCHECK() ΓòÉΓòÉΓòÉ
  16858.  
  16859. ΓöÇΓöÇUNCHECK(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16860.              ΓööΓöÇrow_numberΓöÇΓöÿ   ΓööΓöÇcolumn_numberΓöÇΓöÿ
  16861.  
  16862. Deselects a row when  row_number is used alone to indicate a valid row number. 
  16863.  
  16864. Deselects a column when  column_number is used alone to indicate a valid column 
  16865. number. 
  16866.  
  16867. Deselects a cell when both row_number and column_number are used. 
  16868.  
  16869.  
  16870. ΓòÉΓòÉΓòÉ 115.2.22. UNLOCK() ΓòÉΓòÉΓòÉ
  16871.  
  16872. ΓöÇΓöÇUNLOCK(row_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16873.  
  16874. Releases the lock on the specified row allowing a fresh copy of the data to be 
  16875. read from the columns referred to in REFERENCE. UNLOCK is used to inform the 
  16876. list box that updated values in the row have been written to the underlying 
  16877. data and that the row can now be scrolled out of view without the need for a 
  16878. LISTDATA event. For more information, see the DATA and LISTDATA events. Rows 
  16879. are automatically unlocked when the REFRESH() action is called. 
  16880.  
  16881. The value must be a valid row number. 
  16882.  
  16883.  
  16884. ΓòÉΓòÉΓòÉ 115.2.23. UPDATE() ΓòÉΓòÉΓòÉ
  16885.  
  16886. ΓöÇΓöÇUPDATE(array,row_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  16887.  
  16888. Allows selective updating of a row of a list box. This is useful with large 
  16889. lists where a full REFRESH would take an unacceptably long time. 
  16890.  
  16891. Only the screen display is updated. The underlying data is not altered, and is 
  16892. redisplayed when REFRESH is called (or when a new packet of data is loaded into 
  16893. the list if PACKET is on). The program should also update the data when UPDATE 
  16894. is used (or LOCK can be used to prevent the new values being lost when 
  16895. scrolling causes fresh packets of data to be read). 
  16896.  
  16897. array is an array containing the values to be inserted in the list box. Each 
  16898. element of the array is a column in the list box. 
  16899.  
  16900. row_number corresponds to the row position at which the values contained in 
  16901. array are to be updated. 
  16902.  
  16903.  
  16904. ΓòÉΓòÉΓòÉ 115.3. Events ΓòÉΓòÉΓòÉ
  16905.  
  16906. DATA                  DESKTOP 
  16907. ESCAPE                HELP 
  16908. LISTDATA              LISTSCROLL 
  16909. OPEN                  SELECT 
  16910.  
  16911.  
  16912. ΓòÉΓòÉΓòÉ 115.3.1. DATA ΓòÉΓòÉΓòÉ
  16913.  
  16914. Signaled when data has changed within the list box cell and the TAB key is 
  16915. pressed or another object is selected. 
  16916.  
  16917. A.System.Object is set to the name of the list box. A.System.BoxValue is set to 
  16918. the new value of the changed cell. A.System.PositionX is set to the column 
  16919. number of the changed cell. 
  16920.  
  16921. A.System.PositionX, A.System.PositionY, A.System.Boxnumber, and 
  16922. A.System.Operation are used to identify the changed cell: 
  16923.  
  16924. o If the changed cell was in a title row, A.System.PositionY is set to the 
  16925.   title row number and A.System.Operation is set to "TITLE". 
  16926.  
  16927. o If the changed cell was in an inserted row, A.System.PositionY is set to the 
  16928.   list box number of the changed cell, A.System.BoxNumber is set to the 
  16929.   inserted row number (returned by the CREATE action) and A.System.Operation is 
  16930.   set to "INSERTED". 
  16931.  
  16932. o Otherwise, A.System.PositionY is set to the list box number of the changed 
  16933.   cell and A.System.BoxNumber is set to the row number of the data within the 
  16934.   columns or vectors specified using the REFERENCE attribute. 
  16935.  
  16936. Normally A.System.PositionY and A.System.BoxNumber differ only if CREATE() has 
  16937. been used to insert rows earlier in the list or if the ORDERDATA attribute has 
  16938. been used to specify which rows of data should be displayed in the list. 
  16939.  
  16940. If an editable list box is displaying only rows 11 to 50 of a table and a value 
  16941. is changed in a cell in row 3 for example, A.System.PositionY will be set to 3 
  16942. and and A.System.BoxNumber will be set to 13. 
  16943.  
  16944.  
  16945. ΓòÉΓòÉΓòÉ 115.3.2. DESKTOP ΓòÉΓòÉΓòÉ
  16946.  
  16947. Signaled when the list box is moved, sized, or copied. A.System.Operation is 
  16948. set to "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the 
  16949. control. 
  16950.  
  16951.  
  16952. ΓòÉΓòÉΓòÉ 115.3.3. ESCAPE ΓòÉΓòÉΓòÉ
  16953.  
  16954. Signaled when the user presses the ESCAPE key. 
  16955.  
  16956. A.System.Object is set to the name of the list box. 
  16957.  
  16958.  
  16959. ΓòÉΓòÉΓòÉ 115.3.4. HELP ΓòÉΓòÉΓòÉ
  16960.  
  16961. Signaled when the user presses the F1 key in any area within the list box 
  16962. (unless the HELP attribute is set). 
  16963.  
  16964. A.System.Object is set to the name of the list box. 
  16965.  
  16966.  
  16967. ΓòÉΓòÉΓòÉ 115.3.5. LISTDATA ΓòÉΓòÉΓòÉ
  16968.  
  16969. Signaled if DATAEVENT is on and one of the following conditions has occurred: 
  16970.  
  16971.  1. One or more locked rows have been scrolled out of view in the list box. 
  16972.     (rows are locked when values are changed by the user in an editable list or 
  16973.     by using the LOCK action). A.System.Operation is set to "SCROLL". 
  16974.  2. The CTRL ENTER key has been pressed while the focus is in the list. This 
  16975.     can be used as a signal for a new row to be inserted, by CREATE, at the 
  16976.     selection point. A.System.Operation is set to "INSERT". 
  16977.  3. The DELETE key has been pressed while the focus is in the list, (this can 
  16978.     be used as a signal for the selected item to be deleted). 
  16979.     A.System.Operation is set to "DELETE". 
  16980.  4. A column divider has been moved in a list box where column widths can be 
  16981.     changed (see the ENABLED attribute). A.System.Operation is set to "WIDTH". 
  16982.  
  16983. If the user changes a value in a row of an editable list box and attempts to 
  16984. scroll the value off the screen (without tabbing out of the cell), a LISTDATA 
  16985. event will occur. The DATA event informing the program of the change will not 
  16986. yet have occurred at this point. The program can call the FLUSH action of the 
  16987. window, to force a DATA event, and then use the GET action of the list to find 
  16988. the newly typed value. 
  16989.  
  16990. A.System.Object is set to the name of the list box. 
  16991.  
  16992. When an INSERT or DELETE operation is signaled, then A.System.PositionX, 
  16993. A.System.PositionY, A.System.BoxValue, and A.System.Boxnumber are used to 
  16994. identify the current list box item (row, column, or cell). 
  16995.  
  16996. A.System.PositionX is set to the column number of the current item (or is set 
  16997. to zero if it is a row). 
  16998.  
  16999. o If the current item is in a title row, then A.System.PositionY is set to the 
  17000.   title row number. A.System.BoxValue is set to "TITLE". 
  17001.  
  17002. o If the current item is in an inserted row, then A.System.PositionY is set to 
  17003.   the list box row number of the current item, A.System.BoxNumber is set to the 
  17004.   inserted row number of the selected item (returned by the CREATE() action), 
  17005.   and A.System.BoxValue is set to "INSERTED". 
  17006.  
  17007. o Otherwise, A.System.PositionY is set to the list box number of the current 
  17008.   item (or zero if it is a column) and A.System.BoxNumber is set to the row 
  17009.   number of the underlying data for the row (or zero if the current item is a 
  17010.   column). 
  17011.  
  17012. When a WIDTH operation is signaled, A.System.PositionX is set to the column 
  17013. number of the resized column and A.System.BoxNumber is set to the new column 
  17014. width in dialog units. 
  17015.  
  17016.  
  17017. ΓòÉΓòÉΓòÉ 115.3.6. LISTSCROLL ΓòÉΓòÉΓòÉ
  17018.  
  17019. Signaled when SCROLLEVENT is on and the list box is scrolled. 
  17020.  
  17021. A.System.Object is set to the name of the list box. A.System.Operation is set 
  17022. to "HSCROLL" for a horizontal scroll or "VSCROLL" for a vertical scroll. 
  17023. A.System.PositionX is set to the new LEFTCOL column number. A.System.PositionY 
  17024. is set to the new TOPROW row number. 
  17025.  
  17026. A.System.Boxnumber and A.System.BoxValue are set to the data row number and 
  17027. data row type of the new top row using the same values as described above for 
  17028. the INSERT and DELETE operations in the LISTDATA event. 
  17029.  
  17030.  
  17031. ΓòÉΓòÉΓòÉ 115.3.7. OPEN ΓòÉΓòÉΓòÉ
  17032.  
  17033. Signaled when a list box item is double-clicked (or if ENTER is pressed within 
  17034. the list). A.System.Object is set to the name of the list box. 
  17035. A.System.Operation is set to the SELECTMODE number of the selected item (1 for 
  17036. a row, 2 for a column, or 4 for a cell). 
  17037.  
  17038. A.System.PositionX, A.System.PositionY, A.System.Boxnumber and 
  17039. A.System.BoxValue are used to identify the selected list box item using the 
  17040. same values as described above for the INSERT and DELETE operations in the 
  17041. LISTDATA event. 
  17042.  
  17043.  
  17044. ΓòÉΓòÉΓòÉ 115.3.8. SELECT ΓòÉΓòÉΓòÉ
  17045.  
  17046. Signaled when a list box item is selected. A.System.Object is set to the name 
  17047. of the list box. A.System.Operation is set to the SELECTMODE number of the 
  17048. selected item (1 for a row, 2 for a column, or 4 for a cell). 
  17049.  
  17050. A.System.PositionX, A.System.PositionY, A.System.Boxnumber, and 
  17051. A.System.BoxValue are used to identify the last selected item of the type 
  17052. specified by A.System.Operation (or the current selection if there is only one) 
  17053. using the same values as described above for the INSERT and DELETE operations 
  17054. in the LISTDATA event. 
  17055.  
  17056. If the last item was deselected, A.System.PositionX, A.System.PositionY, and 
  17057. A.System.Boxnumber will be zero. 
  17058.  
  17059.  
  17060. ΓòÉΓòÉΓòÉ 115.4. Examples ΓòÉΓòÉΓòÉ
  17061.  
  17062. !
  17063. ! First we set up some vectors of data to display in the list.
  17064. !
  17065. DEFINE array1[0]
  17066. INSERT array1[0] = "January"
  17067. INSERT array1[0] = "February"
  17068. ...
  17069. INSERT array1[0] = "December"
  17070.  
  17071. DEFINE array2[0]
  17072. INSERT array2[0] = "Jan"
  17073. INSERT array2[0] = "Feb"
  17074. ...
  17075. INSERT array2[0] = "Dec"
  17076. !
  17077. ! We have to set up some arrays to support the list object.
  17078. ! Corresponding elements of the arrays refer to the same list column
  17079. !
  17080. ! The EXPRESSION array defines the columns to be displayed,
  17081. ! in this case two equal columns, with separators, left justified.
  17082. !
  17083. DEFINE listexpr[0]
  17084. INSERT listexpr[0] = "WIDTH=100 SEPARATOR=yes JUST=left"
  17085. INSERT listexpr[0] = "WIDTH=100 SEPARATOR=yes JUST=left"
  17086.  
  17087. !
  17088. ! The REFERENCE array lists the vectors to be displayed in the columns,
  17089. ! identified by data manager name (DECLAREd vectors can't be used)
  17090. !
  17091. DEFINE listref[0]
  17092. INSERT listref[0] = array1[0]   /* by dictionary */
  17093. INSERT listref[0] = "array2"    /* by name       */
  17094.  
  17095. !
  17096. ! The COLTITLE1 attribute takes an array holding the titles for the
  17097. ! columns. Titles are optional, and there may be two rows (in which
  17098. ! case a second array can be supplied to the ! COLTITLE2 attribute).
  17099. !
  17100. DEFINE listtitle[0]
  17101. INSERT listtitle[0] = "Long month"
  17102. INSERT listtitle[0] = "Short month"
  17103.  
  17104. This example opens a list box in single select mode. 
  17105.  
  17106. !
  17107. ! Now we're ready to open the LIST object
  17108. !
  17109. OPEN LIST list1, MyWin,
  17110.  X = 8, Y = 6,
  17111.  SIZEX = 180, SIZEY = 70,
  17112.  ORIGIN = "BL",
  17113.  VISIBLE = 1,
  17114.  HORZSCROLL = 1, VERTSCROLL = 1,
  17115.  BORDER = 1,
  17116.  ENABLED = 1,
  17117.  SELECTION = 1,
  17118.  EXPRESSION = listexpr[0],
  17119.  REFERENCE = listref[0],
  17120.  COLTITLE1 = listtitle[0],
  17121.  TOPROW = 5   /* put row 5 at the top of the list */
  17122. !
  17123. ! as an example, preselect the 7th row (which is the 3rd displayed row)
  17124. !
  17125. CALL t..list1'CHECK(7)
  17126.  
  17127. This example opens a list box in extended select mode. 
  17128.  
  17129. !
  17130. ! The EXPRESSION array
  17131. DEFINE listexpr[0]
  17132. INSERT listexpr[0] = "WIDTH=80 SEPARATOR=yes JUST=right"
  17133. INSERT listexpr[0] = "WIDTH=120 SEPARATOR=yes JUST=left"
  17134. !
  17135. ! The REFERENCE array
  17136. DEFINE listref[0]
  17137. INSERT listref[0] = "attrs"
  17138. INSERT listref[0] = "values"
  17139. !
  17140. ! The COLTITLE1 array for titles
  17141. DEFINE listtitle[0]
  17142. INSERT listtitle[0] = "Profile attribute"
  17143. INSERT listtitle[0] = "Current contents"
  17144. !
  17145. ! A TITLEINFO array to define how the titles appear
  17146. DEFINE listtitleinfo[0]
  17147. INSERT listtitleinfo[0] = "SEPARATOR=yes JUST=right"
  17148. INSERT listtitleinfo[0] = "SEPARATOR=yes JUST=left"
  17149. !
  17150. OPEN LIST list2, MyWin2,
  17151.  X = 8, Y = 6,
  17152.  SIZEX = 180, SIZEY = 70,
  17153.  ORIGIN = "BL",
  17154.  VISIBLE = 1,
  17155.  HORZSCROLL = 1, VERTSCROLL = 1,
  17156.  BORDER = 1,
  17157.  ENABLED = 1,
  17158.  SELECTION = 0,
  17159.  REFERENCE = listref[0],
  17160.  EXPRESSION = listexpr[0],
  17161.  COLTITLE1 = listtitle[0],
  17162.  TITLEINFO = listtitleinfo[0]
  17163. !
  17164. ! as an example, preselect rows 1,3 & 5
  17165. !
  17166. DEFINE cursel[0]
  17167. INSERT cursel[1]=1
  17168. INSERT cursel[2]=3
  17169. INSERT cursel[3]=5
  17170. CALL t..list2'SETCHECK(cursel[0])
  17171. !
  17172. ! uncheck the third row
  17173. !
  17174. CALL t..list2'UNCHECK(3)
  17175. !
  17176. ! fill a vector with items currently selected
  17177. !
  17178. DEFINE cursel[0]
  17179. CALL t..list2'QUERYCHECK(cursel[0])
  17180. !
  17181. ! 'cursel' now contains { 1, 5 }
  17182. !
  17183.  
  17184. The list box can be resized to fit the window.  The following code is placed 
  17185. into the ON DESKTOP block to handle sizing requests on the window holding the 
  17186. list box. 
  17187.  
  17188. ON DESKTOP
  17189. DO
  17190.   IF A.System.Object = POINTER(MyWin2[0]) &
  17191.      A.System.Operation = "SIZE"
  17192.   THEN DO
  17193.     MODIFY list2,
  17194.      SIZEX = MyWin2'SIZEX - 16,
  17195.      SIZEY = MyWin2'SIZEY - 15
  17196.     ...
  17197.  
  17198. Examples source library: 
  17199.  
  17200.  
  17201. ΓòÉΓòÉΓòÉ 115.5. More about LIST ΓòÉΓòÉΓòÉ
  17202.  
  17203. o The LIST object cannot be cloned. 
  17204.  
  17205. o The maximum number of rows which may be displayed is 64000. 
  17206.  
  17207. o A DATA event is signaled each time data in any of the cells is amended in any 
  17208.   way, and a lock is put on that row inhibiting any rereading of the column 
  17209.   data for that row from any of the REFERENCE columns. 
  17210.  
  17211. o The program should update the underlying data for the changed cell and call 
  17212.   UNLOCK() to unlock the row. 
  17213.  
  17214. o A HELP event is signaled if help is requested while editing in the list box. 
  17215.   The CURSORX and CURSORY attributes will return the focus position so that 
  17216.   appropriate contextual help can be provided by the application. 
  17217.  
  17218.  
  17219. ΓòÉΓòÉΓòÉ 116. LOCATION() ΓòÉΓòÉΓòÉ
  17220.  
  17221. The LOCATION() function returns the file location from the name. 
  17222.  
  17223. ΓöÇΓöÇLOCATION(name)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17224.  
  17225. Examples 
  17226.  
  17227. More about LOCATION() 
  17228.  
  17229. See also: FULLPATH(), NAME() 
  17230.  
  17231.  
  17232. ΓòÉΓòÉΓòÉ 116.1. Examples ΓòÉΓòÉΓòÉ
  17233.  
  17234. LET filelocn = LOCATION(os2file)
  17235. LET filename = NAME(os2file)
  17236.  
  17237. ON START(parms, filespec)           /* ON START for the key program     */
  17238. DO
  17239.   DECLARE CHAR[*] parms
  17240.   DECLARE CHAR[*] filespec
  17241.  
  17242.   OPEN FILE datafile,
  17243.    NAME = "proginfo.dat",           /* look for data file in the same   */
  17244.    LOCATION = LOCATION(filespec)    /* directory as our App objectstore */
  17245.  
  17246. Examples source library: 
  17247.  
  17248.  
  17249. ΓòÉΓòÉΓòÉ 116.2. More about LOCATION() ΓòÉΓòÉΓòÉ
  17250.  
  17251. o You can use LOCATION() with a DBCS name. 
  17252.  
  17253.  
  17254. ΓòÉΓòÉΓòÉ 117. LOG() ΓòÉΓòÉΓòÉ
  17255.  
  17256. The LOG() function returns the logarithm of a value, to a specified base. 
  17257.  
  17258. ΓöÇΓöÇLOG(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇexpression)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17259.          ΓööΓöÇbase,ΓöÇΓöÿ
  17260.  
  17261. Examples 
  17262.  
  17263. More about LOG() 
  17264.  
  17265.  
  17266. ΓòÉΓòÉΓòÉ 117.1. Examples ΓòÉΓòÉΓòÉ
  17267.  
  17268. LET x = LOG(10,38)                    !  Result is 1.58
  17269. LET y = LOG(3.142)                    !  Result is 1.14
  17270.  
  17271. Examples source library: 
  17272.  
  17273.  
  17274. ΓòÉΓòÉΓòÉ 117.2. More about LOG() ΓòÉΓòÉΓòÉ
  17275.  
  17276. o An error occurs if expression is nonnumeric, is less than or equal to 0, or 
  17277.   is greater than 10**28. 
  17278.  
  17279.  
  17280. ΓòÉΓòÉΓòÉ 118. MAIL ΓòÉΓòÉΓòÉ
  17281.  
  17282. The MAIL object provides the ability to send objects or files to other 
  17283. applications using a mail system, such as cc:Mail. 
  17284.  
  17285. Attributes 
  17286.  
  17287. Actions 
  17288.  
  17289. Events: None. 
  17290.  
  17291. Examples 
  17292.  
  17293.  
  17294. ΓòÉΓòÉΓòÉ 118.1. Attributes ΓòÉΓòÉΓòÉ
  17295.  
  17296. CODE 
  17297.  
  17298.  
  17299. ΓòÉΓòÉΓòÉ 118.1.1. CODE ΓòÉΓòÉΓòÉ
  17300.  
  17301. The error code from the most recent MAIL action. 
  17302.  
  17303. Default: 0 (No error) 
  17304.  
  17305.  
  17306. ΓòÉΓòÉΓòÉ 118.2. Actions ΓòÉΓòÉΓòÉ
  17307.  
  17308. SEND()               SMISEND() 
  17309.  
  17310.  
  17311. ΓòÉΓòÉΓòÉ 118.2.1. SEND() ΓòÉΓòÉΓòÉ
  17312.  
  17313.                                 ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  17314. ΓöÇΓöÇSEND(names,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17315.                 ΓööΓöÇlocationsΓöÇΓöÿ   ΓööΓöÇdeleteΓöÇΓöÿ
  17316.  
  17317. This action interfaces with a mail system. It provides a dialog that allows the 
  17318. user to specify details such as recipients and subject. Then it calls the mail 
  17319. system API. 
  17320.  
  17321. names is a scalar or vector. Each element contains the name of a file to be 
  17322. mailed. 
  17323.  
  17324. locations is a vector or scalar. Each element specifies the location of the 
  17325. file named in the corresponding element of names. If locations is omitted, the 
  17326. MAIL directory in FTB1DIR is assumed. 
  17327.  
  17328. delete is a flag. If it is set to 1 (true), then the files are deleted when the 
  17329. call to the mail system is complete. 
  17330.  
  17331.  
  17332. ΓòÉΓòÉΓòÉ 118.2.2. SMISEND() ΓòÉΓòÉΓòÉ
  17333.  
  17334. ΓöÇΓöÇSMISEND(to,file,location,subject,message)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17335.  
  17336. This action sends mail without using the mail system end-user interface. 
  17337.  
  17338. to is a scalar that specifies the message recipient. 
  17339.  
  17340. file is a scalar that specifies the name of a file to be sent. 
  17341.  
  17342. location is a scalar that specifies the location of file. 
  17343.  
  17344. subject is a scalar that specifies the subject of the message. 
  17345.  
  17346. message is a scalar that specifies the message text. 
  17347.  
  17348.  
  17349. ΓòÉΓòÉΓòÉ 118.3. Examples ΓòÉΓòÉΓòÉ
  17350.  
  17351. The following example shows how to mail two files from the directory named 
  17352. CHARTS. 
  17353.  
  17354. DEFINE names[2]
  17355. DEFINE locns[2] = 'D:\CHARTS'
  17356. LET names[1] = 'CHARTEMP'
  17357. LET names[2] = 'CHARTEMP.MET'
  17358. CALL MyMail'SEND(names[0], locns[0])
  17359.  
  17360. Examples source library: 
  17361.  
  17362.  
  17363. ΓòÉΓòÉΓòÉ 119. MAX() ΓòÉΓòÉΓòÉ
  17364.  
  17365. The MAX() function returns the maximum value of a series of values. 
  17366.  
  17367.          <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  17368. ΓöÇΓöÇMAX(ΓöÇΓöÇΓöÇexpressionΓöÇΓö┤ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17369.  
  17370. Examples 
  17371.  
  17372. More about MAX() 
  17373.  
  17374. See also: MIN() 
  17375.  
  17376.  
  17377. ΓòÉΓòÉΓòÉ 119.1. Examples ΓòÉΓòÉΓòÉ
  17378.  
  17379. LET x1 = 84
  17380. LET x2 = 9
  17381. LET result = MAX(x1, x2, 43)   ! result is 84.
  17382.  
  17383. LET y1[0]'TYPE = "DATE"
  17384. LET y1 = "10-5-94"
  17385. LET y2[0]'TYPE = "DATE"
  17386. LET y2 = "2-11-94"
  17387. LET result = MAX(y1[0], y2[0])   ! result is 2-11-94
  17388.  
  17389. Examples source library: 
  17390.  
  17391.  
  17392. ΓòÉΓòÉΓòÉ 119.2. More about MAX() ΓòÉΓòÉΓòÉ
  17393.  
  17394. o If any expression refers to the dictionary entry of a vector, it is treated 
  17395.   as a reference to the whole vector. A complete array referenced in this way 
  17396.   is treated as an additional series of individual values. 
  17397.  
  17398. o Automatic conversions to date and time use their default formats. 
  17399.  
  17400. o If any expression is NULL, then it is ignored. 
  17401.  
  17402.  
  17403. ΓòÉΓòÉΓòÉ 120. MESSAGE ΓòÉΓòÉΓòÉ
  17404.  
  17405. The MESSAGE statement displays messages on the screen. 
  17406.  
  17407. ΓöÇΓöÇMESSAGE(messageid,0,text)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17408.  
  17409. Examples 
  17410.  
  17411. More about MESSAGE 
  17412.  
  17413. See also: DIALOG(), ERROR, STRING(), WINDOW 
  17414.  
  17415.  
  17416. ΓòÉΓòÉΓòÉ 120.1. Examples ΓòÉΓòÉΓòÉ
  17417.  
  17418. MESSAGE "FTB0001",0,"Starting Calculations"
  17419. MESSAGE "FTB10002",0,"MSG0001: Trace point 7 reached"
  17420. MESSAGE "FTB0003",0,"You are about to overwrite data file"
  17421. MESSAGE "FTB0004",0,"Unable to create data file"
  17422.  
  17423. Examples source library: 
  17424.  
  17425.  
  17426. ΓòÉΓòÉΓòÉ 120.2. More about MESSAGE ΓòÉΓòÉΓòÉ
  17427.  
  17428. o The number of parameters must match the number of inserts defined in the 
  17429.   message template. All the above templates take one parameter. 
  17430.  
  17431. o To substitute variables into a message, either use the STRING() function to 
  17432.   create the message insert or use the ERROR statement instead. 
  17433.  
  17434. o See DIALOG() for a function that displays a message and returns a code 
  17435.   representing the push button that the end user pressed. 
  17436.  
  17437.  
  17438. ΓòÉΓòÉΓòÉ 121. MIN() ΓòÉΓòÉΓòÉ
  17439.  
  17440. The MIN() function returns the minimum value of a series of values. 
  17441.  
  17442.          <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  17443. ΓöÇΓöÇMIN(ΓöÇΓöÇΓöÇexpressionΓöÇΓö┤ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17444.  
  17445. Examples 
  17446.  
  17447. More about MIN() 
  17448.  
  17449. See also: MAX() 
  17450.  
  17451.  
  17452. ΓòÉΓòÉΓòÉ 121.1. Examples ΓòÉΓòÉΓòÉ
  17453.  
  17454. x1 = 43
  17455. x2 = 9
  17456. x3 = 84
  17457. Result = MIN(x1,x2,x3)        !  Result is 9.
  17458.  
  17459. !  Now try some date comparisons.
  17460. x1 = "7-7-93"
  17461. x2 = "14-6-93"
  17462. !  Must be given a Date type.
  17463. x1[0]'TYPE = "Date"
  17464. x2[0]'TYPE = "Date"
  17465. Result = MIN(x1[0],x2[0])    !  Result is 14-6-93.
  17466.  
  17467. Examples source library: 
  17468.  
  17469.  
  17470. ΓòÉΓòÉΓòÉ 121.2. More about MIN() ΓòÉΓòÉΓòÉ
  17471.  
  17472. o If any expression refers to the dictionary entry of a vector, it is treated 
  17473.   as a reference to the whole vector. A complete array referenced in this way 
  17474.   is treated as an additional series of individual values. 
  17475.  
  17476. o Automatic conversions to date and time use their default formats. 
  17477.  
  17478. o If any expression is NULL, then it is ignored. 
  17479.  
  17480.  
  17481. ΓòÉΓòÉΓòÉ 122. MMFILE ΓòÉΓòÉΓòÉ
  17482.  
  17483. The MMFILE object class provides access to multimedia files. A file that 
  17484. contains sound can be played or recorded through the default sound device 
  17485. provided by Multimedia Presentation Manager/2 (MMPM). A file that contains 
  17486. digital video can be displayed in a default MMPM window or in an ASL window. 
  17487.  
  17488. Attributes 
  17489.  
  17490. Actions 
  17491.  
  17492. Events 
  17493.  
  17494. Examples 
  17495.  
  17496. More about MMFILE 
  17497.  
  17498. See also: SOUND, and the multimedia sample in the Development Samples folder. 
  17499.  
  17500.  
  17501. ΓòÉΓòÉΓòÉ 122.1. Attributes ΓòÉΓòÉΓòÉ
  17502.  
  17503. ASYNCHRONOUS            CODE 
  17504. EXCLUSIVE               LENGTH 
  17505. LOCATION                NAME 
  17506. ORIGIN                  POSITION 
  17507. READONLY                REASON 
  17508. SIZEX                   SIZEY 
  17509. STATUS                  TIMEFORMAT 
  17510. TIMEOUT                 TRACELEVEL 
  17511. VISIBLE                 VOLUME 
  17512. X                       XEXTENT 
  17513. Y                       YEXTENT 
  17514.  
  17515.  
  17516. ΓòÉΓòÉΓòÉ 122.1.1. ASYNCHRONOUS ΓòÉΓòÉΓòÉ
  17517.  
  17518. Whether the PLAY and RECORD actions are to operate asynchronously: 
  17519.  
  17520. 0         Synchronous operation 
  17521. 1         Asynchronous operation 
  17522. If asynchronous operation is specified, control is passed to the next statement 
  17523. immediately, while the playback or recording continues. If synchronous 
  17524. operation is specified, control is not returned to the program until the action 
  17525. has completed. 
  17526.  
  17527. Default: 0 (Synchronous) 
  17528.  
  17529.  
  17530. ΓòÉΓòÉΓòÉ 122.1.2. CODE ΓòÉΓòÉΓòÉ
  17531.  
  17532. Most recent error code from the MMPM command interface. Can be queried but not 
  17533. modified. 
  17534.  
  17535. Default: None 
  17536.  
  17537.  
  17538. ΓòÉΓòÉΓòÉ 122.1.3. EXCLUSIVE ΓòÉΓòÉΓòÉ
  17539.  
  17540. Whether the application has exclusive use of the multimedia device: 
  17541.  
  17542. 0         The device is never acquired for exclusive use and is acquired for 
  17543.           shared use every time read or write access is required. 
  17544. 1         The device is acquired for exclusive use every time read or write 
  17545.           access is required and is released when the access is complete. 
  17546. 2         The device is acquired for exclusive use at all times. 
  17547. 3         The device is acquired for exclusive use every time read or write 
  17548.           access is required and is released when the access is complete. Use 
  17549.           of the device is denied to other users. 
  17550. 4         The device is acquired for exclusive use at all times. Use of the 
  17551.           device is denied to other users. 
  17552.  
  17553. For recording, use 3 or 4. For playback, use 1 or 2 if you want to ensure that 
  17554. it will not be interrupted. 
  17555.  
  17556. The values 3 and 4 differ from the values 1 and 2, respectively, only for 
  17557. devices that support multiple active users (for example, a stereo sound card 
  17558. that supports two mono users simultaneously). Use 3 and 4 only if you need to 
  17559. exclude other users, for example, during recording. 
  17560.  
  17561. If the value is not 2 or 4, actions, modifications, and queries may fail due to 
  17562. a device being locked. An attempt to modify this attribute will fail if the 
  17563. modification implicitly requires the device to be acquired and it is locked. In 
  17564. these cases, the CODE and REASON attributes report that the device is locked. 
  17565.  
  17566. Default: 0 
  17567.  
  17568.  
  17569. ΓòÉΓòÉΓòÉ 122.1.4. LENGTH ΓòÉΓòÉΓòÉ
  17570.  
  17571. The length of the multimedia file, in the format specified by the TIMEFORMAT 
  17572. attribute. If the length cannot be determined, the value is 0. Can be queried 
  17573. but not modified. 
  17574.  
  17575. Default: None 
  17576.  
  17577.  
  17578. ΓòÉΓòÉΓòÉ 122.1.5. LOCATION ΓòÉΓòÉΓòÉ
  17579.  
  17580. Location (the OS/2 path) of the multimedia file or a STREAM object. Set on 
  17581. OPEN, then read-only. 
  17582.  
  17583. Default: None 
  17584.  
  17585.  
  17586. ΓòÉΓòÉΓòÉ 122.1.6. NAME ΓòÉΓòÉΓòÉ
  17587.  
  17588. Name of the multimedia file. The name of a STREAM object can be used, but if 
  17589. the RECORD action is used, the stream cannot be enlarged beyond the size of its 
  17590. contents when the object was opened. 
  17591.  
  17592. A combination of elements can be opened by giving a name in the form 
  17593. ABC.EXT+ELTNAME, for example, "sounds.bnd+train.wav". The extension EXT is 
  17594. assumed to identify an installed I/O procedure, which is called to perform I/O 
  17595. on the file. If the extension is BND, the file is opened by the BND I/O 
  17596. procedure supplied with the system. ELTNAME can be of the form ABC.EXT followed 
  17597. by a plus sign. The file name is parsed from right to left, so the first I/O 
  17598. procedure called belongs to the rightmost extension after the plus sign. The 
  17599. I/O procedure must be already installed and be able to further parse the file 
  17600. name, if required. 
  17601.  
  17602. Set on OPEN, then read-only. 
  17603.  
  17604.  
  17605. ΓòÉΓòÉΓòÉ 122.1.7. ORIGIN ΓòÉΓòÉΓòÉ
  17606.  
  17607. The corner of the enclosing window to be taken as the origin. The position of 
  17608. the multimedia object is measured from this point. This attribute applies only 
  17609. to video displayed in an ASL window. 
  17610.  
  17611. "TL"      Top left 
  17612. "TR"      Top right 
  17613. "BL"      Bottom left 
  17614. "BR"      Bottom right 
  17615.  
  17616. Default if the parent is a window: "BL". Default otherwise: Not applicable 
  17617.  
  17618.  
  17619. ΓòÉΓòÉΓòÉ 122.1.8. POSITION ΓòÉΓòÉΓòÉ
  17620.  
  17621. The current position of the multimedia file, in the format specified by the 
  17622. TIMEFORMAT attribute. If the position cannot be determined, the value is 0. Can 
  17623. be queried or modified. 
  17624.  
  17625. Default: None 
  17626.  
  17627.  
  17628. ΓòÉΓòÉΓòÉ 122.1.9. READONLY ΓòÉΓòÉΓòÉ
  17629.  
  17630. Whether the device is to be accessed in read-only mode: 
  17631.  
  17632. 0         The device is not accessed in read-only mode 
  17633. 1         The device is accessed in read-only mode 
  17634. The RECORD and SAVE actions do not work in read-only mode. If you are using a 
  17635. waveaudio device for playback only, use read-only mode. This prevents 
  17636. accidental updating, allows files to be shared, and allows MMPM to perform 
  17637. certain operations more efficiently. 
  17638.  
  17639. Default: 0 
  17640.  
  17641.  
  17642. ΓòÉΓòÉΓòÉ 122.1.10. REASON ΓòÉΓòÉΓòÉ
  17643.  
  17644. Text that explains the most recent error code. Can be queried but not modified. 
  17645. Default: None 
  17646.  
  17647.  
  17648. ΓòÉΓòÉΓòÉ 122.1.11. SIZEX ΓòÉΓòÉΓòÉ
  17649.  
  17650. Width of the display area for video. If the default MMPM window is used, this 
  17651. is the width of the window, in dialog box units. If the parent object is a 
  17652. window, this is the width of the display area on the window, in dialog box 
  17653. units. If the device supports scaling, the image is scaled to fit the display 
  17654. area. Otherwise, the image is clipped to the display area. 
  17655.  
  17656. Default if the parent is a window: The value of the XEXTENT attribute. Default 
  17657. otherwise: Device dependent. 
  17658.  
  17659.  
  17660. ΓòÉΓòÉΓòÉ 122.1.12. SIZEY ΓòÉΓòÉΓòÉ
  17661.  
  17662. Height of the display area for video. If the default MMPM window is used, this 
  17663. is the height of the window, in dialog box units. If the parent object is a 
  17664. window, this is the height of the display area on the window, in dialog box 
  17665. units. If the device supports scaling, the image is scaled to fit the display 
  17666. area. Otherwise, the image is clipped to the display area. 
  17667.  
  17668. Default if the parent is a window: The value of the YEXTENT attribute. Default 
  17669. otherwise: Device dependent. 
  17670.  
  17671.  
  17672. ΓòÉΓòÉΓòÉ 122.1.13. STATUS ΓòÉΓòÉΓòÉ
  17673.  
  17674. Status of the multimedia device: 
  17675.  
  17676. "NOT READY" 
  17677. "PAUSE" 
  17678. "PLAY" 
  17679. "RECORD" 
  17680. "SEEK" 
  17681. "STOP" 
  17682. "UNKNOWN" 
  17683.  
  17684. Can be queried but not modified. 
  17685.  
  17686. Default: None 
  17687.  
  17688.  
  17689. ΓòÉΓòÉΓòÉ 122.1.14. TIMEFORMAT ΓòÉΓòÉΓòÉ
  17690.  
  17691. The format used for length and position values in attributes and action 
  17692. parameters. The valid values of this attribute and the corresponding formats 
  17693. are as follows. In the "Format" column, the formats in quotes represent 
  17694. strings, and the formats without quotes represent numeric data. 
  17695.  
  17696. "BYTES"                       bbb Bytes (waveaudio) 
  17697.  
  17698. "CHAPTERS"                    ccc Chapters (videodisk) 
  17699.  
  17700. "FRAMES"                      fff Frames (video) 
  17701.  
  17702. "HMS"                         "hh:mm:mm" Hours, minutes, seconds 
  17703.  
  17704. "HMSF"                        "hh:mm:mm:mm" Hours, minutes, seconds, frames 
  17705.                               (video) 
  17706.  
  17707. "MILLISECONDS"                mmm Milliseconds 
  17708.  
  17709. "MMTIME"                      uuu Multimedia time units (3000 per second) 
  17710.  
  17711. "MSF"                         "mm:mm:mmf" Minutes, seconds, frames (compact 
  17712.                               disc audio) 
  17713.  
  17714. "SAMPLES"                     sss Samples (waveaudio) 
  17715.  
  17716. "24 FRAME SMPTE"              "hh:mm:mm:mm" Hours, minutes, seconds, frames 
  17717.                               (24-frame SMPTE sequencer) 
  17718.  
  17719. "25 FRAME SMPTE"              "hh:mm:mm:mm" Hours, minutes, seconds, frames 
  17720.                               (25-frame SMPTE sequencer) 
  17721.  
  17722. "30 FRAME SMPTE"              "hh:mm:mm:mm" Hours, minutes, seconds, frames 
  17723.                               (30-frame SMPTE sequencer) 
  17724.  
  17725. "30 DROP-FRAME SMPTE"         "hh:mm:mm:mm" Hours, minutes, seconds, frames 
  17726.                               (30-drop-frame SMPTE sequencer) 
  17727.  
  17728. "SONG POINTER"                ppp Song pointer units (sequencer) 
  17729.  
  17730. "TMSF"                        "tt:mm:mm:mm" Tracks, minutes, seconds, frames 
  17731.                               (compact disc audio) 
  17732.  
  17733. Within a string format, any nonnumeric character or sequence of nonnumeric 
  17734. characters can be used as a separator. 
  17735.  
  17736. The "MMTIME" and "MILLISECONDS" formats are supported by all multimedia 
  17737. devices. 
  17738.  
  17739. Default: "MMTIME" 
  17740.  
  17741.  
  17742. ΓòÉΓòÉΓòÉ 122.1.15. TIMEOUT ΓòÉΓòÉΓòÉ
  17743.  
  17744. Time, in milliseconds, to wait for a device. If the device is not acquired 
  17745. during this time, it is considered to be locked. The value -1 requests 
  17746. unlimited waiting. 
  17747.  
  17748. Default: -1 (Unlimited) 
  17749.  
  17750.  
  17751. ΓòÉΓòÉΓòÉ 122.1.16. TRACELEVEL ΓòÉΓòÉΓòÉ
  17752.  
  17753. Whether a trace file, called FTBMM, is produced for diagnostic purposes. 
  17754.  
  17755. 0         Tracing off 
  17756. Nonzero   Tracing on 
  17757.  
  17758. Default: 0 (Off) 
  17759.  
  17760.  
  17761. ΓòÉΓòÉΓòÉ 122.1.17. VISIBLE ΓòÉΓòÉΓòÉ
  17762.  
  17763. Whether the video is visible on the display. 
  17764.  
  17765. 0         Video is invisible 
  17766. 1         Video is visible 
  17767.  
  17768. Default: 1 (Visible) 
  17769.  
  17770.  
  17771. ΓòÉΓòÉΓòÉ 122.1.18. VOLUME ΓòÉΓòÉΓòÉ
  17772.  
  17773. For audio channels, the volume level as a percentage of the maximum volume 
  17774. level. If the device does not support volume setting at such a fine level, the 
  17775. result of querying this attribute might be slightly different from the value 
  17776. set. 
  17777.  
  17778. On stereo devices, this attribute sets the volume for both channels. If the 
  17779. volume differs on each channel and this attribute is queried, the result is the 
  17780. higher of the two levels. 
  17781.  
  17782.  
  17783. ΓòÉΓòÉΓòÉ 122.1.19. X ΓòÉΓòÉΓòÉ
  17784.  
  17785. Horizontal position of the display area for video. If the default MMPM window 
  17786. is used, this attribute specifies a position on the display, in pixels. If the 
  17787. parent object is a window, this attribute specifies a position on the window, 
  17788. in dialog box units. 
  17789.  
  17790. Default if the parent is a window: 0. Default otherwise: Device dependent. 
  17791.  
  17792.  
  17793. ΓòÉΓòÉΓòÉ 122.1.20. XEXTENT ΓòÉΓòÉΓòÉ
  17794.  
  17795. The horizontal extent of the image generated by the device, if any, in dialog 
  17796. box units. For optimal reproduction of the image, use this value for the SIZEX 
  17797. attribute. Can be queried but not modified. Default: None 
  17798.  
  17799.  
  17800. ΓòÉΓòÉΓòÉ 122.1.21. Y ΓòÉΓòÉΓòÉ
  17801.  
  17802. Vertical position of the display area for video. If the default MMPM window is 
  17803. used, this attribute specifies a position on the display, in pixels. If the 
  17804. parent object is a window, this attribute specifies a position on the window, 
  17805. in dialog box units. Default if the parent is a window: 0. Default otherwise: 
  17806. Device dependent. 
  17807.  
  17808.  
  17809. ΓòÉΓòÉΓòÉ 122.1.22. YEXTENT ΓòÉΓòÉΓòÉ
  17810.  
  17811. The vertical extent of the image generated by the device, if any, in dialog box 
  17812. units. For optimal reproduction of the image, use this value for the SIZEY 
  17813. attribute. Can be queried but not modified. Default: None 
  17814.  
  17815.  
  17816. ΓòÉΓòÉΓòÉ 122.2. Actions ΓòÉΓòÉΓòÉ
  17817.  
  17818. COPYTO()             DISCARD() 
  17819. PAUSE()              PLAY() 
  17820. RECORD()             RESUME() 
  17821. SAVE()               SETCUE() 
  17822. STOP() 
  17823.  
  17824.  
  17825. ΓòÉΓòÉΓòÉ 122.2.1. COPYTO() ΓòÉΓòÉΓòÉ
  17826.  
  17827. ΓöÇΓöÇCOPYTO(destination)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17828.  
  17829. The COPYTO action copies the current multimedia object to the specified file. 
  17830. destination is the fully qualified name of a file or a STREAM object. 
  17831.  
  17832.  
  17833. ΓòÉΓòÉΓòÉ 122.2.2. DISCARD() ΓòÉΓòÉΓòÉ
  17834.  
  17835. ΓöÇΓöÇDISCARD()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17836.  
  17837. The DISCARD action deletes the file and signals a QUIT event to the owning 
  17838. task. 
  17839.  
  17840.  
  17841. ΓòÉΓòÉΓòÉ 122.2.3. PAUSE() ΓòÉΓòÉΓòÉ
  17842.  
  17843. ΓöÇΓöÇPAUSE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17844.  
  17845. The PAUSE action suspends playback or recording. 
  17846.  
  17847.  
  17848. ΓòÉΓòÉΓòÉ 122.2.4. PLAY() ΓòÉΓòÉΓòÉ
  17849.  
  17850.           ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÉ
  17851. ΓöÇΓöÇPLAY(ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17852.           ΓööΓöÇfromΓöÇΓöÿ   ΓööΓöÇtoΓöÇΓöÿ
  17853.  
  17854. The PLAY action starts playing the multimedia object. If the from parameter is 
  17855. omitted, playback begins at the current position, as specified in the POSITION 
  17856. attribute. If the to parameter is omitted, playback continues until the end of 
  17857. the data is reached. If asynchronous operation is specified in the ASYNCHRONOUS 
  17858. attribute, then a QUIT event is queued to the owning task when playback ends. 
  17859.  
  17860.  
  17861. ΓòÉΓòÉΓòÉ 122.2.5. RECORD() ΓòÉΓòÉΓòÉ
  17862.  
  17863.             ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÉ            ΓöîΓöÇ"INSERT"ΓöÇΓöÉ
  17864. ΓöÇΓöÇRECORD(ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17865.             ΓööΓöÇfromΓöÇΓöÿ   ΓööΓöÇtoΓöÇΓöÿ   ΓööΓöÇmodeΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  17866.  
  17867. The RECORD action starts recording input data. If the from parameter is 
  17868. omitted, recording begins at the current position, as specified in the POSITION 
  17869. attribute. If the to parameter is omitted, recording continues until a PAUSE or 
  17870. STOP action is called or, for a fixed-extent medium, until the medium is full. 
  17871.  
  17872. The valid values for the mode parameter are: 
  17873.  
  17874. INSERT    The new data is inserted at the position where recording is to start. 
  17875.  
  17876. OVERWRITE The new data overwrites existing data at the position where recording 
  17877.           is to start. 
  17878.  
  17879. If the mode parameter is omitted and the device supports insertion, INSERT mode 
  17880. is used. If this parameter is omitted and the device does not support 
  17881. insertion, OVERWRITE mode is used. If asynchronous operation is specified in 
  17882. the ASYNCHRONOUS attribute, a QUIT event will be queued to the owning task when 
  17883. recording ends. 
  17884.  
  17885.  
  17886. ΓòÉΓòÉΓòÉ 122.2.6. RESUME() ΓòÉΓòÉΓòÉ
  17887.  
  17888. ΓöÇΓöÇRESUME()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17889.  
  17890. The RESUME action restarts a playback or recording that has been paused. The To 
  17891. parameter that was specified on the call to PLAY or RECORD remains in effect. 
  17892. If you want to change this parameter after a pause, call PLAY or RECORD again 
  17893. instead of RESUME. 
  17894.  
  17895.  
  17896. ΓòÉΓòÉΓòÉ 122.2.7. SAVE() ΓòÉΓòÉΓòÉ
  17897.  
  17898. ΓöÇΓöÇSAVE(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17899.           ΓööΓöÇfilenameΓöÇΓöÿ
  17900.  
  17901. The SAVE action saves the multimedia file. If the filename parameter is 
  17902. omitted, the data is written to the most recently used file. 
  17903.  
  17904.  
  17905. ΓòÉΓòÉΓòÉ 122.2.8. SETCUE() ΓòÉΓòÉΓòÉ
  17906.  
  17907.                      ΓöîΓöÇ"SET"ΓöÇΓöÉ
  17908. ΓöÇΓöÇSETCUE(position,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17909.                      ΓööΓöÇtypeΓöÇΓöÇΓöÿ
  17910.  
  17911. The SETCUE action sets up or removes an absolute cue point or a repeater cue 
  17912. point. 
  17913.  
  17914. An absolute cue point identifies an absolute position on the multimedia object. 
  17915. Whenever the device passes that position during playback or recording, a TIMER 
  17916. event is queued to the owning task. There is no limit on the number of absolute 
  17917. cue points. 
  17918.  
  17919. A repeater cue point is used to signal an event at regular intervals. The 
  17920. interval is specified as a length in the format specified by the TIMEFORMAT 
  17921. attribute. Every time that interval is passed during playback or recording, a 
  17922. TIMER event is queued to the owning task. For example, if the interval is set 
  17923. to 100 and the TIMEFORMAT is "BYTES", a TIMER event occurs every 100 bytes. 
  17924. Counting starts from the beginning of the multimedia file. Only one repeater 
  17925. cue point can be active at a time. 
  17926.  
  17927. The position parameter specifies the position of an absolute cue point or the 
  17928. interval for a repeater cue point. The valid values for the pype parameter are: 
  17929.  
  17930. "SET"     Sets up an absolute cue point at the position specified by the 
  17931.           Position parameter. 
  17932.  
  17933. "REMOVE"  Removes an absolute cue point from the position specified by the 
  17934.           Position parameter. 
  17935.  
  17936. "REPEAT"  Sets up a repeater cue point based on the interval specified in the 
  17937.           Position parameter or, if Position is 0, removes the repeater cue 
  17938.           point. 
  17939.  
  17940. If the type parameter is omitted, it defaults to SET. 
  17941.  
  17942.  
  17943. ΓòÉΓòÉΓòÉ 122.2.9. STOP() ΓòÉΓòÉΓòÉ
  17944.  
  17945. ΓöÇΓöÇSTOP()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17946.  
  17947. The STOP action stops playback or recording. 
  17948.  
  17949. Note:   If your application will subsequently restart playback or recording 
  17950.         from the current position, use PAUSE instead of STOP. 
  17951.  
  17952.  
  17953. ΓòÉΓòÉΓòÉ 122.3. Events ΓòÉΓòÉΓòÉ
  17954.  
  17955. QUIT              TIMER 
  17956.  
  17957.  
  17958. ΓòÉΓòÉΓòÉ 122.3.1. QUIT ΓòÉΓòÉΓòÉ
  17959.  
  17960. Signaled when an asynchronous PLAY or RECORD stops, and when the DISCARD action 
  17961. is called. 
  17962.  
  17963.  
  17964. ΓòÉΓòÉΓòÉ 122.3.2. TIMER ΓòÉΓòÉΓòÉ
  17965.  
  17966. Signaled when a cue point is passed. (See the description of the SETCUE 
  17967. action.) 
  17968.  
  17969.  
  17970. ΓòÉΓòÉΓòÉ 122.4. Examples ΓòÉΓòÉΓòÉ
  17971.  
  17972. ! This example plays a video in a default window. By default, the video
  17973. ! plays synchronously. Therefore, the SHUT statement is not run until
  17974. ! the video has stopped, even though it immediately follows the CALL.
  17975. OPEN MMFILE MyMovie,
  17976.  NAME="MACAW.AVI",
  17977.  LOCATION="C:\MMOS2\Movies"
  17978.  
  17979. CALL MyMovie'PLAY()
  17980. SHUT MyMovie
  17981.  
  17982. ! This example plays a video in an ASL window.
  17983. OPEN WINDOW MyWin,
  17984.  VISIBLE=0           ! Hide it until we know how big it needs to  be
  17985.  
  17986. OPEN MMFILE MyMovie2, MyWin,
  17987.  NAME="MACAW.AVI",
  17988.  LOCATION="C:\MMOS2\Movies",
  17989.  X=10,
  17990.  Y=10
  17991.  
  17992. MODIFY MyWin,        ! Change window size based on the video size
  17993.  SIZEX=MyMovie2'SIZEX+20,
  17994.  SIZEY=MyMovie2'SIZEY+20,
  17995.  VISIBLE=1           ! Make it visible
  17996.  
  17997. CALL MyMovie2'PLAY()
  17998. SHUT MyMovie2
  17999.  
  18000. ! This example plays an audio file asynchronously. A QUIT event occurs
  18001. ! when playing stops.
  18002. OPEN MMFILE MyNoise,
  18003.  NAME="Applause.WAV",
  18004.  LOCATION="C:\MMOS2\Sounds",
  18005.  ASYNCHRONOUS=1,
  18006.  EXCLUSIVE=1         ! Ensure no other sound is played at same time
  18007.  
  18008. CALL MyNoise'PLAY()  ! Start playing the sound and continue
  18009. MESSAGE "EFD4001", "This message should be accompanied by noise"
  18010. ! If the sound has not finished playing, allow it to continue
  18011. ...
  18012. ON QUIT
  18013. DO
  18014.   SHUT MyNoise       ! Release the file when playing has stopped
  18015. END
  18016.  
  18017. Examples source library: 
  18018.  
  18019.  
  18020. ΓòÉΓòÉΓòÉ 122.5. More about MMFILE ΓòÉΓòÉΓòÉ
  18021.  
  18022. o The MMFILE object requires MMPM to be installed on the application user's 
  18023.   machine. However, MMPM is not required for compilation. MMPM is an optional 
  18024.   component of OS/2 Version 2.1. 
  18025.  
  18026. o The behavior of an instance of the MMFILE object class depends on how it is 
  18027.   opened. If it is opened with an ASL window as its parent, an area of the 
  18028.   window is reserved for video output. This area is defined by the X, Y, 
  18029.   ORIGIN, SIZEX, and SIZEY attributes. If the parent is not a window or the 
  18030.   object has no parent, any video output is displayed in a window managed by 
  18031.   MMPM. In this case, the X, Y, SIZEX, and SIZEY attributes define the position 
  18032.   and size of the window. 
  18033.  
  18034. o If the multimedia file does not contain video, the attributes X, Y, SIZEX, 
  18035.   SIZEY, XEXTENT, YEXTENT, ORIGIN, and VISIBLE are not applicable. 
  18036.  
  18037. o The MMFILE object uses the default multimedia device for the type of file 
  18038.   specified in the NAME and LOCATION attributes. The default devices and their 
  18039.   characteristics can be changed in the settings notebook in the MMPM 
  18040.   Multimedia folder. 
  18041.  
  18042.  
  18043. ΓòÉΓòÉΓòÉ 123. MODIFY ΓòÉΓòÉΓòÉ
  18044.  
  18045. The MODIFY statement allows several attributes of an object to be changed at 
  18046. the same time. 
  18047.  
  18048.                     <ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  18049. ΓöÇΓöÇMODIFYΓöÇΓöÇobjectΓöÇΓöÇΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇatt=valueΓöÇΓö¼ΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18050.                          ΓööΓöÇprocedureΓöÇΓöÿ
  18051.  
  18052. Examples 
  18053.  
  18054. More about MODIFY 
  18055.  
  18056. See also: LET, OPEN, PROCEDURE 
  18057.  
  18058.  
  18059. ΓòÉΓòÉΓòÉ 123.1. Examples ΓòÉΓòÉΓòÉ
  18060.  
  18061. OPEN WINDOW MyWindow,
  18062.   VISIBLE = 0,
  18063.   SIZEX   = 70,
  18064.   SIZEY   = 30
  18065.  
  18066. ...
  18067. ! Set up variables before surfacing the window
  18068. ...
  18069.  
  18070. MODIFY MyWindow,
  18071.   TITLE   = 'New title',
  18072.   SIZEX   = 100,
  18073.   SIZEY   = 100,
  18074.   VISIBLE = 1
  18075.  
  18076. Examples source library: 
  18077.  
  18078.  
  18079. ΓòÉΓòÉΓòÉ 123.2. More about MODIFY ΓòÉΓòÉΓòÉ
  18080.  
  18081. o The MODIFY statement is used when two attributes are related so that a change 
  18082.   to either one affects the other. Any changes to be made to one attribute as a 
  18083.   result of modifying another attribute are delayed until after the MODIFY 
  18084.   statement. 
  18085.  
  18086. o If a procedure is used, it can contain LET statements which set attributes of 
  18087.   object.  These changes are considered to be part of the MODIFY statement. 
  18088.  
  18089. o Clones of cloned objects can be modified by placing the clone number after 
  18090.   the name of the cloned object, thus: 
  18091.  
  18092.  
  18093.     OPEN PUSH PushButton, MyWindow,
  18094.       X = 10,
  18095.       Y = 10,
  18096.       SIZEX = 60,
  18097.       SIZEY = 12,
  18098.       CLONES = 2,
  18099.       CLONEDIR = 4,
  18100.       CLONEGAP = 4,
  18101.       TEXT ="Push me"
  18102.  
  18103.     MODIFY PushButton[2],
  18104.       TEXT ="Don't push me",
  18105.       ENABLED =0
  18106.  
  18107.   The MODIFY statement then affects only the cloned element, not the entire 
  18108.   set.  (The entire set can be modified by using [0].) Some attributes cannot 
  18109.   be modified unless the clone number is included. 
  18110.  
  18111. o It is better to carry out many changes to an object using a single MODIFY 
  18112.   statement than to call a succession of separate MODIFY or LET statements. 
  18113.  
  18114.  
  18115. ΓòÉΓòÉΓòÉ 124. NAME() ΓòÉΓòÉΓòÉ
  18116.  
  18117. The NAME() function returns the file name from a fully qualified OS/2 name. 
  18118.  
  18119. ΓöÇΓöÇNAMEΓöÇΓöÇfullnameΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18120.  
  18121. Examples 
  18122.  
  18123. More about NAME() 
  18124.  
  18125. See also: FULLPATH(), LOCATION() 
  18126.  
  18127.  
  18128. ΓòÉΓòÉΓòÉ 124.1. Examples ΓòÉΓòÉΓòÉ
  18129.  
  18130. /* If String was 'D:\Data\TempFile.DAT' */
  18131. FileName = NAME(String)
  18132. /* FileName will now be 'TempFile.DAT' */
  18133.  
  18134. Examples source library: 
  18135.  
  18136.  
  18137. ΓòÉΓòÉΓòÉ 124.2. More about NAME() ΓòÉΓòÉΓòÉ
  18138.  
  18139. o You can use NAME() with a DBCS fully qualified name. 
  18140.  
  18141.  
  18142. ΓòÉΓòÉΓòÉ 125. NAMES ΓòÉΓòÉΓòÉ
  18143.  
  18144. The NAMES statement is used to produce a list of data names. 
  18145.  
  18146. ΓöÇΓöÇNAMESΓöÇΓöÇtarget=ΓöÇΓöÇΓö¼ΓöÇempty_stringΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18147.                     Γö£ΓöÇobjectstore_prefixΓöÇΓöñ
  18148.                     ΓööΓöÇobjectstore_groupΓöÇΓöÇΓöÿ
  18149.  
  18150. Examples 
  18151.  
  18152.  
  18153. ΓòÉΓòÉΓòÉ 125.1. Examples ΓòÉΓòÉΓòÉ
  18154.  
  18155. ! List all open objectstores into 'Stores'
  18156. NAMES stores = ""
  18157.  
  18158. ! List all groups in 'MyStore', eg WINDOWS, MODULES, etc
  18159. NAMES my_groups = "mystore"
  18160.  
  18161. ! List all items in a group, eg Names of windows in the objectstore
  18162. NAMES my_items = "mystore.windows"
  18163.  
  18164. ! Controls on an open window called MyWin
  18165. NAMES controls = "T.MyWin"
  18166.  
  18167. Examples source library: 
  18168.  
  18169.  
  18170. ΓòÉΓòÉΓòÉ 126. NOTHING ΓòÉΓòÉΓòÉ
  18171.  
  18172. The NOTHING statement indicates that no action is to be taken. 
  18173.  
  18174. ΓöÇΓöÇNOTHINGΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18175.  
  18176. Examples 
  18177.  
  18178. More about NOTHING 
  18179.  
  18180. See also: CASE...WHEN...OTHERWISE...END, IF ... THEN ... ELSE 
  18181.  
  18182.  
  18183. ΓòÉΓòÉΓòÉ 126.1. Examples ΓòÉΓòÉΓòÉ
  18184.  
  18185. IF Status = "Open" & Count > 0
  18186.   THEN NOTHING
  18187.   ELSE CALL UPDATE()
  18188.  
  18189. CASE test
  18190.   WHEN 0
  18191.     CALL ZERO
  18192.   WHEN 1
  18193.     NOTHING
  18194.   OTHERWISE
  18195.     CALL OTHER
  18196. END
  18197.  
  18198. Examples source library: 
  18199.  
  18200.  
  18201. ΓòÉΓòÉΓòÉ 126.2. More about NOTHING ΓòÉΓòÉΓòÉ
  18202.  
  18203. o The NOTHING statement can be included to help program readability. 
  18204.  
  18205. o Some statements, such as THEN and WHEN, require a statement list. A NOTHING 
  18206.   statement can be used if no action is required. 
  18207.  
  18208. o A NOTHING statement can be used anywhere in a program. 
  18209.  
  18210.  
  18211. ΓòÉΓòÉΓòÉ 127. NOVALUE() ΓòÉΓòÉΓòÉ
  18212.  
  18213. The NOVALUE() function checks whether a value contains no data. It returns 1 
  18214. (true) if the value is NULL, or is an empty string ( ""), or is a string 
  18215. containing only spaces. 
  18216.  
  18217. ΓöÇΓöÇNOVALUE(value)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18218.  
  18219. Examples 
  18220.  
  18221. More about NOVALUE() 
  18222.  
  18223. See also: NULL() 
  18224.  
  18225.  
  18226. ΓòÉΓòÉΓòÉ 127.1. Examples ΓòÉΓòÉΓòÉ
  18227.  
  18228. x = NOVALUE(Null)       ! result is 1
  18229. x = NOVALUE("anything") ! result is 0
  18230. x = NOVALUE("")         ! result is 1
  18231. x = NOVALUE("    ")       ! result is 1
  18232. x = NOVALUE(47)         ! result is 0
  18233. x = NOVALUE(0)          ! result is 0
  18234.  
  18235. IF \NoValue(rc)   ! rc is NOT zero or Null
  18236. DO
  18237.   ...
  18238. END
  18239.  
  18240. Examples source library: 
  18241.  
  18242.  
  18243. ΓòÉΓòÉΓòÉ 127.2. More about NOVALUE() ΓòÉΓòÉΓòÉ
  18244.  
  18245. o NOVALUE(x) is equivalent to  (x="" | NULL(x)) 
  18246.  
  18247.  
  18248. ΓòÉΓòÉΓòÉ 128. NULL ΓòÉΓòÉΓòÉ
  18249.  
  18250. The NULL statement identifies a particular value of a CASE expression. When the 
  18251. expression takes on a value of NULL, the statement following NULL is executed. 
  18252.  
  18253. ΓöÇΓöÇNULLΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18254.  
  18255. Examples 
  18256.  
  18257. More about NULL 
  18258.  
  18259. See also: CASE...WHEN...OTHERWISE...END, FALSE, IF ... THEN ... ELSE, TRUE 
  18260.  
  18261.  
  18262. ΓòÉΓòÉΓòÉ 128.1. Examples ΓòÉΓòÉΓòÉ
  18263.  
  18264. DECLARE NULL CLEAR NUMERIC X
  18265. CASE (X < 10)
  18266.   TRUE
  18267.     MESSAGE "FTB0001",0,"2 - True ..."
  18268.   FALSE
  18269.     MESSAGE "FTB0001",0,"2 - False ..."
  18270.   NULL
  18271.     MESSAGE "FTB0001",0,"2 - Null ..."
  18272. END
  18273.  
  18274. Examples source library: 
  18275.  
  18276.  
  18277. ΓòÉΓòÉΓòÉ 128.2. More about NULL ΓòÉΓòÉΓòÉ
  18278.  
  18279. o CASE...TRUE...FALSE...NULL...END performs a three-way test which takes 
  18280.   account of NULL values. The IF statement performs a two-way test which is 
  18281.   equivalent to CASE...TRUE...OTHERWISE...END. 
  18282.  
  18283. o If a CASE expression is not present, any TRUE, FALSE, or NULL blocks are 
  18284.   ignored. 
  18285.  
  18286.  
  18287. ΓòÉΓòÉΓòÉ 129. NULL() ΓòÉΓòÉΓòÉ
  18288.  
  18289. The NULL() function tests whether a single value is NULL. If so, it returns 1 
  18290. (true). 
  18291.  
  18292. ΓöÇΓöÇNULL(expression)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18293.  
  18294. Examples 
  18295.  
  18296. More about NULL() 
  18297.  
  18298. See also: DEFINED(), NOVALUE() 
  18299.  
  18300.  
  18301. ΓòÉΓòÉΓòÉ 129.1. Examples ΓòÉΓòÉΓòÉ
  18302.  
  18303. DECLARE TASK NULL CLEAR CHARACTER[0] null
  18304. x = NULL(null)      ! Result is 1
  18305.  
  18306. CLEAR val
  18307. x = NULL(val)       ! Result is 1
  18308.  
  18309. val = ""
  18310. x = NULL(val)       ! Result is 0, "" is not equal to NULL
  18311.  
  18312. val = 0
  18313. x = NULL(val)       ! Result is 0, 0 is not equal to NULL
  18314.  
  18315. Examples source library: 
  18316.  
  18317.  
  18318. ΓòÉΓòÉΓòÉ 129.2. More about NULL() ΓòÉΓòÉΓòÉ
  18319.  
  18320. o Note that a normal comparison (which tests for equal to NULL) always returns 
  18321.   NULL. 
  18322.  
  18323.  
  18324. ΓòÉΓòÉΓòÉ 130. OBJECT ΓòÉΓòÉΓòÉ
  18325.  
  18326. The OBJECT object class allows the user to group graphic primitives so as to 
  18327. use them as a single object. 
  18328.  
  18329. Parent: DEFINE 
  18330.  
  18331. Attributes 
  18332.  
  18333. Actions: None. 
  18334.  
  18335. Events: None. 
  18336.  
  18337. More about OBJECT 
  18338.  
  18339.  
  18340. ΓòÉΓòÉΓòÉ 130.1. Attributes ΓòÉΓòÉΓòÉ
  18341.  
  18342. DEFINE                 MOVEX 
  18343. MOVEY                  ORIGINX 
  18344. ORIGINY                ROTATE 
  18345. ROTATEX                ROTATEY 
  18346. SCALEX                 SCALEY 
  18347.  
  18348. The following standard graphics attributes are also available. They are 
  18349. described in Standard graphics attributes: 
  18350.  
  18351. COLOR                  LINESTYLE 
  18352. MIX                    SELECTED 
  18353. FILLCOLOR              LINEWIDTH 
  18354. SELECTABLE             VISIBLE 
  18355. FILLPATTERN 
  18356.  
  18357.  
  18358. ΓòÉΓòÉΓòÉ 130.1.1. DEFINE ΓòÉΓòÉΓòÉ
  18359.  
  18360. Name of a DEFINE that this object is to be an instance of. 
  18361.  
  18362. Default: None 
  18363.  
  18364.  
  18365. ΓòÉΓòÉΓòÉ 130.1.2. MOVEX ΓòÉΓòÉΓòÉ
  18366.  
  18367. X coordinate of the position to which the DEFINE object has moved after 
  18368. dragging. 
  18369.  
  18370. Default: 0 
  18371.  
  18372.  
  18373. ΓòÉΓòÉΓòÉ 130.1.3. MOVEY ΓòÉΓòÉΓòÉ
  18374.  
  18375. Y coordinate of the position to which the DEFINE object has moved after 
  18376. dragging. 
  18377.  
  18378. Default: 0 
  18379.  
  18380.  
  18381. ΓòÉΓòÉΓòÉ 130.1.4. ORIGINX ΓòÉΓòÉΓòÉ
  18382.  
  18383. X origin from which scaling is calculated. 
  18384.  
  18385. Default: 0 
  18386.  
  18387.  
  18388. ΓòÉΓòÉΓòÉ 130.1.5. ORIGINY ΓòÉΓòÉΓòÉ
  18389.  
  18390. Y origin from which scaling is calculated. 
  18391.  
  18392. Default: 0 
  18393.  
  18394.  
  18395. ΓòÉΓòÉΓòÉ 130.1.6. ROTATE ΓòÉΓòÉΓòÉ
  18396.  
  18397. Angle to which the DEFINE object is to be rotated around the point defined by 
  18398. attributes ROTATEX and ROTATEY. 
  18399.  
  18400. Default: 0 
  18401.  
  18402.  
  18403. ΓòÉΓòÉΓòÉ 130.1.7. ROTATEX ΓòÉΓòÉΓòÉ
  18404.  
  18405. X coordinate of the position around which the ROTATE is to be carried out. 
  18406.  
  18407. Default: 0 
  18408.  
  18409.  
  18410. ΓòÉΓòÉΓòÉ 130.1.8. ROTATEY ΓòÉΓòÉΓòÉ
  18411.  
  18412. Y coordinate of the position around which the ROTATE is to be carried out. 
  18413.  
  18414. Default: 0 
  18415.  
  18416.  
  18417. ΓòÉΓòÉΓòÉ 130.1.9. SCALEX ΓòÉΓòÉΓòÉ
  18418.  
  18419. Sets the X scale of the current object in world coordinate units. 
  18420.  
  18421. Default: 0 
  18422.  
  18423.  
  18424. ΓòÉΓòÉΓòÉ 130.1.10. SCALEY ΓòÉΓòÉΓòÉ
  18425.  
  18426. Sets the Y scale of the current object in world coordinate units. 
  18427.  
  18428. Default: 0 
  18429.  
  18430.  
  18431. ΓòÉΓòÉΓòÉ 130.2. More about OBJECT ΓòÉΓòÉΓòÉ
  18432.  
  18433. o The OBJECT primitive works on a step principle. First create a DEFINE and 
  18434.   place some objects on it. Then create an OBJECT and set the DEFINE attribute 
  18435.   to a previous DEFINE you wish to group with the current DEFINE. Continue like 
  18436.   this until the object has been grouped. 
  18437.  
  18438.  
  18439. ΓòÉΓòÉΓòÉ 131. OBJECTSTORE ΓòÉΓòÉΓòÉ
  18440.  
  18441. The OBJECTSTORE object class provides access to user programs, menus and 
  18442. windows. 
  18443.  
  18444. Attributes 
  18445.  
  18446. Actions 
  18447.  
  18448. Events: None. 
  18449.  
  18450. More about OBJECTSTORE 
  18451.  
  18452. See also: LIBRARY ASL, LIBRARY DLL, LIBRARY REXX, LIBRARY ENTRY 
  18453.  
  18454.  
  18455. ΓòÉΓòÉΓòÉ 131.1. Attributes ΓòÉΓòÉΓòÉ
  18456.  
  18457. CODE                LOCATION 
  18458. MODE                NAME 
  18459. PREFIX              COMMENT 
  18460.  
  18461.  
  18462. ΓòÉΓòÉΓòÉ 131.1.1. CODE ΓòÉΓòÉΓòÉ
  18463.  
  18464. Most recent OS/2 or internal error code. Read-only. 
  18465.  
  18466.  
  18467. ΓòÉΓòÉΓòÉ 131.1.2. LOCATION ΓòÉΓòÉΓòÉ
  18468.  
  18469. Location of the file (the OS/2 path name). 
  18470.  
  18471. Can be specified on OPEN, then read-only. 
  18472.  
  18473. Default: "." (The current directory) 
  18474.  
  18475.  
  18476. ΓòÉΓòÉΓòÉ 131.1.3. MODE ΓòÉΓòÉΓòÉ
  18477.  
  18478. Access mode: 
  18479.  
  18480. "READ"    Opened with read-only access. 
  18481.  
  18482. "WRITE"   Opened with read and write access. 
  18483.  
  18484. "ASAP"    Opened with ASAP access (data is written back to disk as soon as 
  18485.           possible). 
  18486.  
  18487. Can be specified on OPEN, then read-only. 
  18488.  
  18489. Default: "READ" 
  18490.  
  18491.  
  18492. ΓòÉΓòÉΓòÉ 131.1.4. NAME ΓòÉΓòÉΓòÉ
  18493.  
  18494. OS/2 name of the file (that is, file name and extension). 
  18495.  
  18496. Must be specified on OPEN, then read-only. 
  18497.  
  18498.  
  18499. ΓòÉΓòÉΓòÉ 131.1.5. PREFIX ΓòÉΓòÉΓòÉ
  18500.  
  18501. The prefix (or first part of the name) which can be used to refer to data in 
  18502. the objectstore. 
  18503.  
  18504. Can be specified on OPEN, then read-only. 
  18505.  
  18506. Default: Name of the instance 
  18507.  
  18508.  
  18509. ΓòÉΓòÉΓòÉ 131.1.6. COMMENT ΓòÉΓòÉΓòÉ
  18510.  
  18511. A comment stored with the objectstore. 
  18512.  
  18513. Default: None 
  18514.  
  18515.  
  18516. ΓòÉΓòÉΓòÉ 131.2. Actions ΓòÉΓòÉΓòÉ
  18517.  
  18518. COPYEATTRS()            SAVETO() 
  18519.  
  18520.  
  18521. ΓòÉΓòÉΓòÉ 131.2.1. COPYEATTRS() ΓòÉΓòÉΓòÉ
  18522.  
  18523. ΓöÇΓöÇCOPYEATTRS(object)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18524.  
  18525. Copies the extended attributes from another object. 
  18526.  
  18527.  
  18528. ΓòÉΓòÉΓòÉ 131.2.2. SAVETO() ΓòÉΓòÉΓòÉ
  18529.  
  18530. ΓöÇΓöÇSAVETO(filename)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18531.  
  18532. Saves the OBJECTSTORE data as a new OS/2 file. 
  18533.  
  18534.  
  18535. ΓòÉΓòÉΓòÉ 131.3. More about OBJECTSTORE ΓòÉΓòÉΓòÉ
  18536.  
  18537. o ASL libraries are stored in objectstores. 
  18538.  
  18539. o The objectstores used by an application are opened automatically by 
  18540.   Visualizer. 
  18541.  
  18542.  
  18543. ΓòÉΓòÉΓòÉ 132. ON ΓòÉΓòÉΓòÉ
  18544.  
  18545. The ON statement precedes and identifies the group of statements to be executed 
  18546. when a given event occurs. 
  18547.  
  18548. ΓöÇΓöÇONΓöÇΓöÇeventΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18549.                Γöé    <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé
  18550.                ΓööΓöÇ(ΓöÇΓöÇΓöÇΓöÇparameterΓöÇΓö┤ΓöÇΓöÇ)ΓöÇΓöÿ
  18551.  
  18552. Some events are part of the language. Others are signaled by objects. 
  18553.  
  18554. Events that are part of the language are: 
  18555.  
  18556. BREAK     ERROR 
  18557. QUEUE     QUIT 
  18558. START     STOP 
  18559.  
  18560. Events that are signaled by user action on objects or by external events 
  18561. include: 
  18562.  
  18563. AB        ADVISE 
  18564. DATA      DESKTOP 
  18565. DRAG      ENTER 
  18566. ESCAPE    HELP 
  18567. OPEN      ORDER 
  18568. PRINT     SELECT 
  18569. SCROLL    SOURCE 
  18570. TARGET    TIMER 
  18571.  
  18572. Events 
  18573.  
  18574. Examples 
  18575.  
  18576. More about ON 
  18577.  
  18578. See also: BREAK, ERROR, FORGIVE, QUEUE PROGRAM, RUN PROGRAM, START, STOP 
  18579.  
  18580.  
  18581. ΓòÉΓòÉΓòÉ 132.1. Events ΓòÉΓòÉΓòÉ
  18582.  
  18583. BREAK     The ON BREAK block is activated when the end user presses Ctrl+Break, 
  18584.           and the program that is running has previously been prepared to 
  18585.           accept this event. 
  18586.  
  18587. ERROR     The ON ERROR block is activated when certain execution errors occur. 
  18588.           The values of the system variables A.System.ErrorLine and 
  18589.           A.System.ErrorModule indicate the location of the error. 
  18590.           A.System.ErrorNumber and A.System.ErrorInfo are vectors that describe 
  18591.           the error. 
  18592.  
  18593. QUEUE     The ON QUEUE block is activated by default when the program is run or 
  18594.           queued from another program.  This block allows programs to 
  18595.           communicate with each other without direct end-user intervention. 
  18596.  
  18597. QUIT      The ON QUIT block is activated when Close is selected on the system 
  18598.           icon.  In the case of a selection, details of the box (and panel) 
  18599.           selected are noted in system variables for subsequent testing.  If 
  18600.           the selection is made on the active window (holding the cursor), then 
  18601.           A.System.Box is set to the box containing the cursor. If the 
  18602.           selection is made on any other than the active window, A.System.Box 
  18603.           is set to null. 
  18604.  
  18605. START     The statements in the ON START block are the first to be processed 
  18606.           when a program is initiated.  The ON START block is activated by a 
  18607.           START request from another program. 
  18608.  
  18609. STOP      The ON STOP block is activated when the system requires that an 
  18610.           application should stop. 
  18611.  
  18612. ADVISE    Signaled by a DDESERVER when a DDE client asks to be kept informed of 
  18613.           data changes. 
  18614.  
  18615. AB        Signaled when the menu bar is selected. The ON SELECT block is 
  18616.           activated directly after the end of the AB block. 
  18617.  
  18618. DATA      Signaled when data has changed within a data entry field, a single 
  18619.           line entry field, or an entry field (also signaled by DDECLIENT if a 
  18620.           connected DDE server indicates a data change). 
  18621.  
  18622. DESKTOP   Signaled when a window is resized, maximized, minimized, or 
  18623.           normalized. 
  18624.  
  18625. DRAG      An object that is dragable can be dragged and dropped within a 
  18626.           graphic area. The DRAG event, if specified, is activated when the 
  18627.           object is dropped. 
  18628.  
  18629.           The ON DRAG block is not generated automatically. Program editor's 
  18630.           windows are free form however, and you can add the ON DRAG block by 
  18631.           editing an existing event block and placing the code below after the 
  18632.           existing block. (When the data in the window is closed, then the data 
  18633.           is refreshed and new ON DRAG block is added to the event list.) 
  18634.  
  18635.           Set a BITMAP, GRAPHIC AREA, or DEFINE to dragable by opening it with 
  18636.           the DRAGABLE attribute set to 1 (yes). 
  18637.  
  18638. ENTER     Signaled when the ENTER or RETURN key is pressed from within a data 
  18639.           entry field, a single line entry field, or an entry field. 
  18640.  
  18641. ESCAPE    Signaled when the ESCAPE key is pressed. 
  18642.  
  18643. HELP      The ON HELP block is activated when Help is selected from the menu 
  18644.           bar or by pressing F1. 
  18645.  
  18646. INITIATE(pDDEserver) 
  18647.           The ON INITIATE block is activated whenever a DDE client initiates a 
  18648.           new conversation with the DDESERVER object. (If the information is 
  18649.           not of interest to the program, the event need not be coded.) 
  18650.           pDDEserver points to the DDESERVER that raised the event. 
  18651.  
  18652. OPEN      Mouse button 1 is clicked twice on a graphic object or list box. 
  18653.  
  18654. ORDER     The ORDER window is selected in VIEWORDER. 
  18655.  
  18656. PRINT     The PRINT event is activated when a request for opening a printer has 
  18657.           been made in the program.  A dialog window may have been presented to 
  18658.           the user for selection from a list of printers. PRINT passes a single 
  18659.           parameter, which is the handle of an open PRINTER object. 
  18660.  
  18661. SCROLL    Signaled when a scroll bar is activated. However, some objects such 
  18662.           as ENTRY and LIST handle their own scrolling. Refer to the individual 
  18663.           objects for details. 
  18664.  
  18665. SELECT    Signaled when object or window is selected using the mouse or 
  18666.           keyboard. 
  18667.  
  18668. SOURCE    Signaled by a request for data by DDESERVER, DDECLIENT, CLIPBOARD, 
  18669.           SOURCECTRL, or COPYTO. 
  18670.  
  18671. TARGET    Signaled by a delivery of data by DDESERVER, DDECLIENT, CLIPBOARD, 
  18672.           TARGETCTRL, or LINK. 
  18673.  
  18674. TIMER     A timer has reached its set point and the event has reached the top 
  18675.           of the event queue. 
  18676.  
  18677.  
  18678. ΓòÉΓòÉΓòÉ 132.2. Examples ΓòÉΓòÉΓòÉ
  18679.  
  18680.  
  18681. ON PRINT(pPrinter)
  18682. DO
  18683.   DECLARE POINTER pPrinter
  18684.   ! Write output to the printer object
  18685.   ...
  18686.   SHUT ?pPrinter
  18687. END
  18688.  
  18689. ON QUEUE(Type,pObject)
  18690. DO
  18691.   DECLARE CHAR[30] Type
  18692.   DECLARE POINTER  pObject
  18693.   ...
  18694. END
  18695.  
  18696. This block will be executed should there be a run time error. 
  18697.  
  18698. ON ERROR
  18699. DO
  18700.   !
  18701.   ! Message to identify failing module and line
  18702.   LET ans=DIALOG("FTB7004",0,
  18703.    A.System.ErrorModule ,
  18704.    A.System.ErrorLine )
  18705.   DO i=1 : A.System.ErrorNumber[0]'ENTRIES
  18706.     IF ans = "CANCEL"
  18707.       TERMINATE
  18708.       ! Display system message corresponding to error
  18709.     LET ans = DIALOG ('FTB'||
  18710.      A.System.Errornumber[i], 0,
  18711.      A.System.ErrorInfo[i])
  18712.   END
  18713.   STOP
  18714. END
  18715.  
  18716. This block is executed when the user uses Close in the system menu. 
  18717.  
  18718. ON QUIT
  18719. DO
  18720.   /*-----------------------------------*/
  18721.   /* Which object requested to be shut */
  18722.   /*-----------------------------------*/
  18723.   CASE WORDS(A.System.Object,-1,".")
  18724.  
  18725.     WHEN "MyChart"    ! Special case for an IBMCHART shutting
  18726.       ! Do nothing. Leave the chart active, but invisible
  18727.       ! so it can be refreshed with new data and re-opened later.
  18728. ...
  18729.       CALL MyChart'OPEN()
  18730.  
  18731.     WHEN "MyWindow"
  18732.     DO
  18733.       ! Add any processing that's needed before stopping
  18734. ...
  18735.       SHUT MyChart
  18736.       SHUT MyTable
  18737.       STOP
  18738.     END
  18739.  
  18740.     OTHERWISE   ! General case is to simply shut the obejct.
  18741.       SHUT ?A.System.Object
  18742.   END
  18743. END
  18744.  
  18745. This block is executed to initialize the program. Each program will have its 
  18746. own libraries to open and variables to initialize, the example below is 
  18747. typical. 
  18748.  
  18749. ON START
  18750. DO
  18751.   !
  18752.   ! Open the user library
  18753.   OPEN OBJECTSTORE MyLib,
  18754.    NAME     = "UserLib.A95" ,
  18755.    LOCATION = S.Control.Path
  18756.  
  18757.   LIBRARY ASL "MyLib..AppDevl",
  18758.    ImportData,
  18759.    ExportData
  18760.  
  18761.   OPEN WINDOW MyWindow,
  18762.    TITLE = 'Test window called MyWindow',
  18763.    SIZEX = 160,
  18764.    SIZEY = 20
  18765.   ...
  18766. END
  18767.  
  18768.  
  18769.   ! Now create an instance of a Chart object
  18770.  
  18771.   OPEN IBMCHART MyChart,
  18772.    NAME       = "My Chart",       ! Title of the chart
  18773.    IDENTIFIER = "J:\dss\chart"    ! Filename of chart
  18774. ...
  18775. ! Other Chart attributes can be added to the OPEN
  18776. ! and actions to define what data to show can be added
  18777. ! before it's displayed on the screen.
  18778. ...
  18779.    CALL MyChart'OPEN()       ! Finally show the Chart
  18780.  
  18781.  
  18782.   ! Now create an instance of a Table object
  18783.  
  18784.   OPEN IBMTABLE MyTable,
  18785.    NAME       = "My Data",        ! Title of the table
  18786.    IDENTIFIER = "I:\dss\table"    ! Filename of table
  18787. ...
  18788. ! Other Table attributes can be added to the OPEN
  18789. ! and actions to define what data to show can be added
  18790. ! before it's displayed on the screen.
  18791. ...
  18792.    CALL MyTable'OPEN()       ! Finally show the table
  18793.  
  18794. !END
  18795.  
  18796. The STOP event is used to terminate the program.  Note that there is both a 
  18797. STOP event and a STOP statement. 
  18798.  
  18799. ON STOP
  18800. DO
  18801.   STOP
  18802. END
  18803.  
  18804. Example of ON DRAG 
  18805.  
  18806. If you are coding an application that allows graphic objects to be dropped upon 
  18807. each other, you will need to detect which two objects were involved in a single 
  18808. event. 
  18809.  
  18810. The following example shows one way of identifying the objects. 
  18811.  
  18812.    ON DRAG
  18813.     ! Assuming the graphics area is called MainG1
  18814.     ! and was opened as dragable
  18815.     ! Find out which objects were involved in the drag
  18816.     LET StartX =  A.System.PositionX
  18817.     LET StartY =  A.System.PositionY
  18818.     DEFINE Objects
  18819.     CALL MainG1'SELECT(
  18820.        Objects,         ! return the objects found
  18821.                         ! within the tolerance
  18822.        2,               ! just the first 2 found (top first)
  18823.        StartX,          ! at position X,Y
  18824.        StartY,          !
  18825.        10,              ! X tolerance
  18826.        10)              ! Y tolerance
  18827.        ! Array Objects should then be a 2 element array
  18828.        ! containing the identifiers of the objects found
  18829.      IF Entries("Objects")>0
  18830.       DO
  18831.         DraggedObj=Objects[1]
  18832.         DroppedonObj=Objects[2]
  18833.         ParentObj=(?DraggedObj)'PARENT
  18834.         ! This statement will put the DEFINEd object
  18835.         ! back in the original X,Y position. A different
  18836.         ! application might want to reposition the dragged object
  18837.         ! to the new site. To do this you would alter X, Y for the
  18838.         ! dragged object before doing this modify.
  18839.         MODIFY (?ParentObj),
  18840.          MOVEX=0,
  18841.          MOVEY=0
  18842.       END
  18843. END
  18844.  
  18845. Examples source library: 
  18846.  
  18847.  
  18848. ΓòÉΓòÉΓòÉ 132.3. More about ON ΓòÉΓòÉΓòÉ
  18849.  
  18850. o ON can be followed by a single statement or multiple statements. Multiple 
  18851.   statements must be grouped in a DO ... END block. 
  18852.  
  18853. o An ON block cannot be nested within another block. 
  18854.  
  18855. o A program need not contain blocks for ON conditions it does not handle. Thus, 
  18856.   a program that does not open any windows with menu bars need not contain an 
  18857.   ON AB block. 
  18858.  
  18859. o When an error is encountered, then control is passed to the ON ERROR block. 
  18860.   The event block in which the error occurred is abandoned. An execution error 
  18861.   in an ON ERROR block terminates the program. 
  18862.  
  18863. o When a Ctrl+Break signal is received, its effect is governed by the BREAK 
  18864.   statement.  If the program is prepared to accept Ctrl+Break, control is 
  18865.   passed to the ON BREAK block and the event block that was interrupted is 
  18866.   abandoned. 
  18867.  
  18868.  
  18869. ΓòÉΓòÉΓòÉ 133. OPEN ΓòÉΓòÉΓòÉ
  18870.  
  18871. The OPEN statement creates an object from an object class. 
  18872.  
  18873. ΓöÇΓöÇOPENΓöÇΓöÇclassΓöÇΓöÇinstanceΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18874.                                        <ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  18875. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18876.    Γö£ΓöÇ,ΓöÇΓöÇΓöÇΓöÇparentΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ   Γö£ΓöÇ,attr=valueΓöÇΓöÇΓöñ
  18877.    ΓööΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇsaved_objectΓöÇΓöÿ   ΓööΓöÇ,proc(parms)ΓöÇΓöÿ
  18878.         ΓööΓöÇparentΓöÇΓöÿ
  18879.  
  18880. Examples 
  18881.  
  18882. More about OPEN 
  18883.  
  18884. See also: DECLARE, LET, MODIFY, SHUT 
  18885.  
  18886.  
  18887. ΓòÉΓòÉΓòÉ 133.1. Examples ΓòÉΓòÉΓòÉ
  18888.  
  18889. OPEN WINDOW main_entry,,"I.windows.basic_window",
  18890.      title="The main window",bgcolor="blue"
  18891.  
  18892. In the above example, an instance of the WINDOW object class is opened called 
  18893. main_entry. It does not have a parent window.  It is a window which was 
  18894. compiled using the window editor. Its attribute values are defined by the 
  18895. values saved in the user.basic_window object, but two of those saved 
  18896. attributes, title and bgcolor, are overwritten by the new values supplied with 
  18897. the statement. 
  18898.  
  18899. LET Class  = 'IBMCHART'
  18900. LET Handle = POINTER('Object1')
  18901.  
  18902. OPEN ?Class ?Handle ,         ! Optional Parent not used for Charts.
  18903.  IDENTIFIER = "J:\dss\Chart", ! As part of the Open statement the
  18904.  SetName( Class , Handle )    ! SetName() function will use logic to
  18905.                               ! decide how to set the Name attribute
  18906.  
  18907. CALL (?Handle)'OPEN()         ! Finally, display the object
  18908.  
  18909. LET Class  = 'IBMTABLE'
  18910. LET Handle = POINTER('Object2')
  18911.  
  18912. OPEN ?Class ?Handle ,         ! This time the SetName function will
  18913.  IDENTIFIER = "I:\dss\Table", ! set the Name attribute differently.
  18914.  SetName( Class , Handle )
  18915.  
  18916. CALL (?Handle)'OPEN()
  18917.  
  18918.  
  18919. PROCEDURE SetName(Class,Object)
  18920. DO
  18921.   DECLARE CHAR[*] Class
  18922.   DECLARE POINTER Object
  18923.  
  18924.   CASE Class
  18925.     WHEN 'IBMCHART'
  18926.     DO
  18927.       LET (?Handle)'NAME = "Special attribute manipulations for Chart"
  18928.     END
  18929.     OTHERWISE
  18930.       LET (?Handle)'NAME = "Normal attribute manipulation"
  18931.   END
  18932. END
  18933.  
  18934. Examples source library: 
  18935.  
  18936.  
  18937. ΓòÉΓòÉΓòÉ 133.2. More about OPEN ΓòÉΓòÉΓòÉ
  18938.  
  18939. o Objects are shut using the SHUT statement. 
  18940.  
  18941. o All objects opened by a task are shut by the system when the task stops. 
  18942.  
  18943. o If a procedure is used, it can use the LET statement to assign values to 
  18944.   attributes. 
  18945.  
  18946. o You can change an object attribute by assigning to it, just like a variable. 
  18947.   Refer to an attribute of an object by using the object name followed by the 
  18948.   attribute name, separated by an apostrophe. For example: 
  18949.  
  18950.     Main_Entry'BGCOLOR = 'Red'
  18951.  
  18952.   Many attributes can only be modified if a clone level is specified, however. 
  18953.   To modify a single clone level, insert [clonenumber] before the apostrophe. 
  18954.   To modify all clones, use a clonenumber of 0. 
  18955.  
  18956. o To change more than one attribute at a time, use the MODIFY statement. 
  18957.  
  18958. o Note that some attributes cannot be changed after the object is opened. The 
  18959.   MODE attribute of the FILE object, for example. If MODE is set to "READ" when 
  18960.   the FILE object is opened, it cannot later be changed to "WRITE". 
  18961.  
  18962.   Such attributes must be set when the OPEN statement is used. 
  18963.  
  18964. o Once the object is opened, it can generate events and calls can be made to 
  18965.   any actions associated with it. 
  18966.  
  18967.   The example below uses the system object to delete a file. Note that the 
  18968.   FORGIVE statement is issued before to the call to the DELETE action in case 
  18969.   the table does not exist. 
  18970.  
  18971.       ! erase the old table
  18972.       OPEN SYSTEM Sys
  18973.       FORGIVE CALL Sys'DELETE("D:\Address")
  18974.       SHUT Sys
  18975.  
  18976.  
  18977. ΓòÉΓòÉΓòÉ 134. OTHERWISE ΓòÉΓòÉΓòÉ
  18978.  
  18979. The OTHERWISE statement is an optional last clause of a CASE construct. It 
  18980. introduces statements to be executed if the value of the CASE expression has 
  18981. not been identified by the related WHEN clauses. 
  18982.  
  18983. ΓöÇΓöÇOTHERWISEΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  18984.  
  18985. Examples 
  18986.  
  18987. See also: CASE...WHEN...OTHERWISE...END, ELSE, WHEN 
  18988.  
  18989.  
  18990. ΓòÉΓòÉΓòÉ 134.1. Examples ΓòÉΓòÉΓòÉ
  18991.  
  18992. CASE Char
  18993.   WHEN "a"
  18994.     CharVal = "First Letter"
  18995.   WHEN "z"
  18996.     CharVal = "Last Letter"
  18997.   OTHERWISE
  18998.     CharVal = "Other Letter"
  18999. END
  19000.  
  19001. CASE test
  19002.   NULL
  19003.     CALL NEW
  19004.   OTHERWISE
  19005.     CALL REPLACE
  19006. END
  19007.  
  19008. Examples source library: 
  19009.  
  19010.  
  19011. ΓòÉΓòÉΓòÉ 135. OUTLINE ΓòÉΓòÉΓòÉ
  19012.  
  19013. The OUTLINE graphics primitive object class creates an instance of an open 
  19014. irregular polygon. 
  19015.  
  19016. Parent: DEFINE 
  19017.  
  19018. Attributes 
  19019.  
  19020. Actions: None. 
  19021.  
  19022. Events: None. 
  19023.  
  19024. Examples 
  19025.  
  19026.  
  19027. ΓòÉΓòÉΓòÉ 135.1. Attributes ΓòÉΓòÉΓòÉ
  19028.  
  19029. CLOSINGLINE            ENCLOSED 
  19030. REFERENCE 
  19031.  
  19032. The following standard graphics attributes are also available. They are 
  19033. described in Standard graphics attributes: 
  19034.  
  19035. BOUNDED                FILLCOLOR 
  19036. LINEWIDTH              SELECTED 
  19037. COLOR                  FILLPATTERN 
  19038. MIX                    VISIBLE 
  19039. CONSTANT               LINESTYLE 
  19040. SELECTABLE 
  19041.  
  19042.  
  19043. ΓòÉΓòÉΓòÉ 135.1.1. CLOSINGLINE ΓòÉΓòÉΓòÉ
  19044.  
  19045. Polygon is closed with a line joining the first point to the last: 
  19046.  
  19047. 0         Polygon not closed 
  19048. 1         Polygon closed 
  19049.  
  19050. Default: 0 (Not closed) 
  19051.  
  19052.  
  19053. ΓòÉΓòÉΓòÉ 135.1.2. ENCLOSED ΓòÉΓòÉΓòÉ
  19054.  
  19055. Polygon is treated as an enclosed object which can be filled: 
  19056.  
  19057. 0         Polygon not enclosed 
  19058. 1         Polygon enclosed 
  19059.  
  19060. Default: 1 (Enclosed) 
  19061.  
  19062.  
  19063. ΓòÉΓòÉΓòÉ 135.1.3. REFERENCE ΓòÉΓòÉΓòÉ
  19064.  
  19065. Vector defining the coordinates of each angle of the polygon. This vector 
  19066. consists of the following elements: 
  19067.  
  19068. 1         X coordinate of point 1 
  19069. 2         Y coordinate of point 1 
  19070.  
  19071. Any number of points can be defined. All coordinates are in world coordinate 
  19072. units. 
  19073.  
  19074. Set on OPEN, then read-only. 
  19075.  
  19076. Default: "" 
  19077.  
  19078.  
  19079. ΓòÉΓòÉΓòÉ 135.2. Examples ΓòÉΓòÉΓòÉ
  19080.  
  19081. PROCEDURE OutLine()
  19082. DO
  19083.   ! Open an OUTLINE graphic primative
  19084.   ! This example is 2 irregular triangles overlapping.
  19085.   ! Set up a vector of the coordinates.
  19086.   DEFINE Array[0]
  19087.   INSERT Array[0] = 100   ! X coord. of point 1
  19088.   INSERT Array[0] = 100   ! Y coord. of point 1
  19089.   INSERT Array[0] = 100   ! X coord. of point 2
  19090.   INSERT Array[0] = 300   ! Y coord. of point 2
  19091.   INSERT Array[0] = 200   ! X coord. of point 3
  19092.   INSERT Array[0] = 350   ! Y coord. of point 3
  19093.  
  19094.   OPEN OUTLINE Out1, Def1,   ! Define Def1 must already exist
  19095.    REFERENCE = Array[0],
  19096.    FILLCOLOR = "Red",
  19097.    CONSTANT  = 1
  19098.  
  19099.   LET Array[6] = 50
  19100.  
  19101.   OPEN OUTLINE Out2, Def1,   ! 2nd OutLine on the same Define.
  19102.    REFERENCE = Array[0],
  19103.    FILLCOLOR = "Green",
  19104.    CONSTANT  = 1
  19105.  
  19106.  
  19107. END
  19108.  
  19109. Examples source library: 
  19110.  
  19111.  
  19112. ΓòÉΓòÉΓòÉ 136. OVERLAY() ΓòÉΓòÉΓòÉ
  19113.  
  19114. The OVERLAY() function returns the string it is given, with part of it replaced 
  19115. by another string. 
  19116.  
  19117.                            ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÉ             ΓöîΓöÇ" "ΓöÇΓöÉ
  19118. ΓöÇΓöÇOVERLAY(target,repstr,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19119.                            ΓööΓöÇnumΓöÇΓöÿ   ΓööΓöÇlenΓöÇΓöÿ   ΓööΓöÇpadΓöÇΓöÿ
  19120.  
  19121. Examples 
  19122.  
  19123. More about OVERLAY() 
  19124.  
  19125. See also: COVERLAY(), DELWORD() 
  19126.  
  19127.  
  19128. ΓòÉΓòÉΓòÉ 136.1. Examples ΓòÉΓòÉΓòÉ
  19129.  
  19130. new = OVERLAY("123abc456","xyz",4)
  19131.                              !  new is "123xyz456".
  19132. new = OVERLAY("123abc456","xyz",4,4)
  19133.                              !  new is "123xyz56".
  19134. new = OVERLAY("123456","xyz",4,0)
  19135.                              !  new is "123xyz456".
  19136.  
  19137. Examples source library: 
  19138.  
  19139.  
  19140. ΓòÉΓòÉΓòÉ 136.2. More about OVERLAY() ΓòÉΓòÉΓòÉ
  19141.  
  19142. o If you expect your application to be used in a DBCS environment, and you want 
  19143.   to work with characters only, then use COVERLAY(). If you are working in an 
  19144.   SBCS environment only, use OVERLAY(). 
  19145.  
  19146. o If repstr is positioned such that it exceeds or overlaps the length of 
  19147.   target, the returned string is extended automatically. However, if the length 
  19148.   of this extended string would exceed the system limit for strings, an error 
  19149.   is returned. 
  19150.  
  19151. o An error is returned if number or length is negative or NULL. Real numbers 
  19152.   are truncated. 
  19153.  
  19154. o Using a string parameter of type NULL in this function produces a result of 
  19155.   NULL. 
  19156.  
  19157. o Any pad parameter must be a one-character string. DBCS characters cannot be 
  19158.   used as pad characters. 
  19159.  
  19160. o In a DBCS environment only: 
  19161.  
  19162.    - number refers to the number of the byte in the string (not necessarily the 
  19163.      character position). If byte number is the second half of a DBCS 
  19164.      character, the first byte is replaced by an SBCS space. 
  19165.  
  19166.    - If the last byte position to be overlapped is the first byte of a DBCS 
  19167.      pair, the second byte of that pair is replaced by an SBCS space. 
  19168.  
  19169.    - If you need to work on characters rather than bytes in an DBCS 
  19170.      environment, use COVERLAY() rather than OVERLAY(). 
  19171.  
  19172.  
  19173. ΓòÉΓòÉΓòÉ 137. PAD() ΓòÉΓòÉΓòÉ
  19174.  
  19175. The PAD() function returns a string padded up to a specified length with a 
  19176. specified character. 
  19177.  
  19178.                               ΓöîΓöÇ"L"ΓöÇΓöÇΓöÉ     ΓöîΓöÇ" "ΓöÇΓöÉ      ΓöîΓöÇ"B"ΓöÇΓöÇΓöÇΓöÉ
  19179. ΓöÇΓöÇPAD(stringΓöÇΓöÇ,ΓöÇΓöÇlengthΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19180.                               ΓööΓöÇtypeΓöÇΓöÿ     ΓööΓöÇpadΓöÇΓöÿ      ΓööΓöÇstripΓöÇΓöÿ
  19181.  
  19182. Examples 
  19183.  
  19184. More about PAD() 
  19185.  
  19186. See also: CPAD() 
  19187.  
  19188.  
  19189. ΓòÉΓòÉΓòÉ 137.1. Examples ΓòÉΓòÉΓòÉ
  19190.  
  19191. padded_string = PAD("    asdf",8,"T","*","L")
  19192.                    !  padded_string is "asdf****"
  19193. pad_string = PAD("asdf    ",0)
  19194.                    !  pad_string is "    asdf" (no trailing spaces)
  19195. pad_string = PAD("   asdf   ",0,,"o","B")
  19196.                    !  pad_string is "ooooooasdf" (no leading or trailing spaces)
  19197.                    !  Note: Use TRIM() to remove Leading and trailing spaces.
  19198.  
  19199. Examples source library: 
  19200.  
  19201.  
  19202. ΓòÉΓòÉΓòÉ 137.2. More about PAD() ΓòÉΓòÉΓòÉ
  19203.  
  19204. o An error is returned if length is negative or NULL. Real numbers are 
  19205.   truncated. 
  19206.  
  19207. o Using a string parameter of type NULL in this function produces a result of 
  19208.   NULL. 
  19209.  
  19210. o If an odd number of characters are added with padding type C, the right-hand 
  19211.   end of the string gains one more character than the left. 
  19212.  
  19213. o Only SBCS characters can be used as pad characters. DBCS characters cannot be 
  19214.   used. 
  19215.  
  19216. o If removal of spaces is specified by the strip parameter, both SBCS and DBCS 
  19217.   spaces are removed. 
  19218.  
  19219.  
  19220. ΓòÉΓòÉΓòÉ 138. PAGE() ΓòÉΓòÉΓòÉ
  19221.  
  19222. The PAGE() function returns a format value which specifies that one or more new 
  19223. pages are required in the output file when this value is written to an output 
  19224. device (such as a printer) which supports lines of output. 
  19225.  
  19226. ΓöÇΓöÇPAGE(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19227.           ΓööΓöÇexpressionΓöÇΓöÿ
  19228.  
  19229. Examples 
  19230.  
  19231. More about PAGE() 
  19232.  
  19233. See also: LINE(), PRINTER, SPACE() 
  19234.  
  19235.  
  19236. ΓòÉΓòÉΓòÉ 138.1. Examples ΓòÉΓòÉΓòÉ
  19237.  
  19238. CALL Print'PUT("Page ",Pg_Num,LINE(2),"Name ",EmpName,PAGE())
  19239. LET Ff=PAGE(1)
  19240. ...
  19241. LET Ff'COUNT=2                          !  Leave a blank page.
  19242. CALL print'PUT(Heading1,Ff)
  19243.  
  19244. In the example above, the third statement shows how the COUNT attribute of a 
  19245. format variable (Ff) can be changed to set the number of pages required in the 
  19246. output file. 
  19247.  
  19248. Examples source library: 
  19249.  
  19250.  
  19251. ΓòÉΓòÉΓòÉ 138.2. More about PAGE() ΓòÉΓòÉΓòÉ
  19252.  
  19253. o Format values of PAGE() are displayed on the screen as PAGE. The COUNT 
  19254.   attribute is not displayed. 
  19255.  
  19256. o The PAGE() function can be used with LET and IF statements. 
  19257.  
  19258. o PAGE(n) causes  n-1 completely blank pages. 
  19259.  
  19260.  
  19261. ΓòÉΓòÉΓòÉ 139. PLENGTH() ΓòÉΓòÉΓòÉ
  19262.  
  19263. The PLENGTH() function provides the number of dialog units taken up by a 
  19264. character string. It is used for finding the size of proportional font text 
  19265. strings. 
  19266.  
  19267. ΓöÇΓöÇPLENGTH(string,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19268.                     ΓööΓöÇwindowΓöÇΓöÿ
  19269.  
  19270. Examples 
  19271.  
  19272. See also: WINDOW (FONT attribute) 
  19273.  
  19274.  
  19275. ΓòÉΓòÉΓòÉ 139.1. Examples ΓòÉΓòÉΓòÉ
  19276.  
  19277.  
  19278. OPEN WINDOW WinBig, FONT = "14.Helv"
  19279. units=PLENGTH("Will this string fit in the space?",WinBig)
  19280.                  !  units = 117
  19281.                  !  The result depends on the font of the window
  19282. OPEN WINDOW WinSmall, FONT = "6.Helv"
  19283. units=PLENGTH("Will this string fit in the space?",WinSmall)
  19284.                  !  units = 136
  19285.  
  19286. Examples source library: 
  19287.  
  19288.  
  19289. ΓòÉΓòÉΓòÉ 140. POINT ΓòÉΓòÉΓòÉ
  19290.  
  19291. The POINT graphics primitive object class creates an instance of a marker 
  19292. symbol. 
  19293.  
  19294. Parent: DEFINE 
  19295.  
  19296. Attributes 
  19297.  
  19298. Actions: None. 
  19299.  
  19300. Events: None. 
  19301.  
  19302. Examples 
  19303.  
  19304.  
  19305. ΓòÉΓòÉΓòÉ 140.1. Attributes ΓòÉΓòÉΓòÉ
  19306.  
  19307. CELLX                 CELLY 
  19308. REFERENCE             STYLE 
  19309. WIDTH 
  19310.  
  19311. The following standard graphics attributes are also available. They are 
  19312. described in Standard graphics attributes: 
  19313.  
  19314. COLOR                 MIX 
  19315. SELECTED              VISIBLE 
  19316. CONSTANT              SELECTABLE 
  19317.  
  19318.  
  19319. ΓòÉΓòÉΓòÉ 140.1.1. CELLX ΓòÉΓòÉΓòÉ
  19320.  
  19321. Width of the point in world coordinate units. 
  19322.  
  19323. Default: 0 
  19324.  
  19325.  
  19326. ΓòÉΓòÉΓòÉ 140.1.2. CELLY ΓòÉΓòÉΓòÉ
  19327.  
  19328. Height of the point in world coordinate units. 
  19329.  
  19330. Default: 0 
  19331.  
  19332.  
  19333. ΓòÉΓòÉΓòÉ 140.1.3. REFERENCE ΓòÉΓòÉΓòÉ
  19334.  
  19335. Vector defining the position of the point. This vector consists of the 
  19336. following elements: 
  19337.  
  19338. 1         X coordinate of the point 
  19339. 2         Y coordinate of the point 
  19340.  
  19341. Coordinates are in world coordinate units. 
  19342.  
  19343. Any number of points can be defined. 
  19344.  
  19345. Set on OPEN, then read-only. 
  19346.  
  19347. Default: "" 
  19348.  
  19349.  
  19350. ΓòÉΓòÉΓòÉ 140.1.4. STYLE ΓòÉΓòÉΓòÉ
  19351.  
  19352. Style of point. Eleven styles are available: 
  19353.  
  19354. 0         Invisible 
  19355. 1         Multiplication sign 
  19356. 2         Plus sign 
  19357. 3         Open diamond 
  19358. 4         Open box 
  19359. 5         6-pointed asterisk 
  19360. 6         8-pointed asterisk 
  19361. 7         Solid diamond 
  19362. 8         Solid square 
  19363. 9         Dot 
  19364. 10        Open circle 
  19365.  
  19366. Default: 0 (Invisible) 
  19367.  
  19368.  
  19369. ΓòÉΓòÉΓòÉ 140.1.5. WIDTH ΓòÉΓòÉΓòÉ
  19370.  
  19371. Width of point in pixels.  Range is from 1 through maximum screen width. If 
  19372. CELLX and CELLY are specified, the width is ignored. 
  19373.  
  19374. Default: 3 (Standard character cell size) 
  19375.  
  19376.  
  19377. ΓòÉΓòÉΓòÉ 140.2. Examples ΓòÉΓòÉΓòÉ
  19378.  
  19379.  
  19380. ! Sample of use of graphic POINT object
  19381. ! Opens four different samples using different styles of point.
  19382. ! The Style attribute takes a value between 0 & 10
  19383. !
  19384. ! Produce a 'diamond'
  19385. !
  19386. DEFINE parr[2]
  19387. LET parr[1]=200                 ! x coord of point
  19388. LET parr[2]=130                 ! y coord of point
  19389.  
  19390.   OPEN POINT point1,def1,
  19391.    REFERENCE = parr[0],
  19392.    CELLX = 50, CELLY = 50,
  19393.    STYLE = 3,  WIDTH = 5,
  19394.    COLOR = "Blue"
  19395.  
  19396. !
  19397. ! Produce a '6-pointed asterisk'
  19398. !
  19399.  
  19400. LET parr[1] += 200
  19401.  
  19402. OPEN POINT Point2, Def1,
  19403.  REFERENCE = parr[0],
  19404.  CELLX = 50, CELLY = 50,
  19405.  STYLE = 5,  WIDTH = 5,
  19406.  COLOR = "Red"
  19407.  
  19408. !
  19409. ! produce a 'filled square'
  19410. !
  19411.  
  19412. LET parr[1] += 200
  19413. OPEN POINT point3, Def1,
  19414.  REFERENCE = parr[0],
  19415.  CELLX = 50, CELLY = 50,
  19416.  STYLE = 8,  WIDTH = 5,
  19417.  COLOR = "Black"
  19418.  
  19419. !
  19420. !produce an "8-pointed asterisk"
  19421. !
  19422.  
  19423. LET parr[2] += 200
  19424.  
  19425. OPEN POINT point4, Def1,
  19426.  REFERENCE = parr[0],
  19427.  CELLX = 15, CELLY = 15,
  19428.  STYLE = 6,  WIDTH = 5,
  19429.  COLOR = 5  ! cyan
  19430.  
  19431. Examples source library: 
  19432.  
  19433.  
  19434. ΓòÉΓòÉΓòÉ 141. POINTER() ΓòÉΓòÉΓòÉ
  19435.  
  19436. The POINTER() function returns a pointer value that identifies a variable or 
  19437. array element. 
  19438.  
  19439.                      ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ   ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  19440. ΓöÇΓöÇPOINTER(varname,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19441.                      ΓööΓöÇelement1ΓöÇΓöÿ   ΓööΓöÇelement2ΓöÇΓöÿ
  19442.  
  19443. Examples 
  19444.  
  19445. More about POINTER() 
  19446.  
  19447. See also: DECLARE 
  19448.  
  19449. Also see Operators. 
  19450.  
  19451.  
  19452. ΓòÉΓòÉΓòÉ 141.1. Examples ΓòÉΓòÉΓòÉ
  19453.  
  19454. LET p=POINTER(lines[0])
  19455. LET (?p)[1]=0
  19456. LET x=(?p)[i]
  19457.  
  19458. In the above example, the second statement assigns a zero to the first element 
  19459. of the array variable lines. The third statement assigns the i'th element of 
  19460. lines to x. The value is held in a variable with a name which may not be known 
  19461. until execution time, but the name is itself held in the variable. 
  19462.  
  19463. Notice that the indirection operator ( ?) is used to evaluate the expression 
  19464. following it as a pointer to a variable. 
  19465.  
  19466. Examples source library: 
  19467.  
  19468.  
  19469. ΓòÉΓòÉΓòÉ 141.2. More about POINTER() ΓòÉΓòÉΓòÉ
  19470.  
  19471. o You can use POINTER() with the indirection operator ( ?) to refer to the 
  19472.   given variable. 
  19473.  
  19474. o You can specify the variable as a string, for example: POINTER("LINES"). Or 
  19475.   you can specify it as a reference to the dictionary, for example: 
  19476.   POINTER(LINES[0]). To point to a declared variable, you can only use the form 
  19477.   that is a reference to a dictionary. 
  19478.  
  19479. o When using the indirection operator ( ?) on a pointer to an object, be sure 
  19480.   to allow for its lower level of precedence: 
  19481.  
  19482.  
  19483.     pName=POINTER("A.."||ObjectName)
  19484.     (?pName)'TITLE = "New Value"
  19485.  
  19486. o Using indirection with pointers can increase performance over using 
  19487.   indirection with strings. 
  19488.  
  19489. o The element number contained in a pointer variable is used if there is no 
  19490.   explicit subscript on the reference. 
  19491.  
  19492.  
  19493. ΓòÉΓòÉΓòÉ 142. POLYGON ΓòÉΓòÉΓòÉ
  19494.  
  19495. The POLYGON graphics primitive object class creates an instance an open regular 
  19496. polygon. 
  19497.  
  19498. Parent: DEFINE 
  19499.  
  19500. Attributes 
  19501.  
  19502. Actions: None. 
  19503.  
  19504. Events: None. 
  19505.  
  19506. Examples 
  19507.  
  19508.  
  19509. ΓòÉΓòÉΓòÉ 142.1. Attributes ΓòÉΓòÉΓòÉ
  19510.  
  19511. REFERENCE 
  19512.  
  19513. The following standard graphics attributes are also available. They are 
  19514. described in Standard graphics attributes: 
  19515.  
  19516. BOUNDED                FILLCOLOR 
  19517. LINEWIDTH              SELECTED 
  19518. COLOR                  FILLPATTERN 
  19519. MIX                    VISIBLE 
  19520. CONSTANT               LINESTYLE 
  19521. SELECTABLE 
  19522.  
  19523.  
  19524. ΓòÉΓòÉΓòÉ 142.1.1. REFERENCE ΓòÉΓòÉΓòÉ
  19525.  
  19526. Vector defining the position of one side of the polygon and the number of 
  19527. sides. This vector consists of the following elements: 
  19528.  
  19529. 1         X coordinate of the start of the side 
  19530. 2         Y coordinate of the start of the side 
  19531. 3         X coordinate of the end of the side 
  19532. 4         Y coordinate of the end of the side 
  19533. 5         Number of sides. 
  19534.  
  19535. If the position of the start of the side is above the position of the end, the 
  19536. polygon is drawn to the right of the line. If the position of the start of the 
  19537. side is below the position of the end, the polygon is drawn to the left of the 
  19538. line. 
  19539.  
  19540. All coordinates are in world coordinate units. 
  19541.  
  19542. Set on OPEN, then read-only. 
  19543.  
  19544. Default: "" 
  19545.  
  19546.  
  19547. ΓòÉΓòÉΓòÉ 142.2. Examples ΓòÉΓòÉΓòÉ
  19548.  
  19549. ! Open an instance of a POLYGON graphic object. This example
  19550. ! opens a simple 7 sided polygon.
  19551. PROCEDURE POLYGON
  19552. DO
  19553.  
  19554.   DEFINE Array[0]
  19555.   INSERT Array[1] = 200             ! x coord start of side
  19556.   INSERT Array[2] = 100             ! y coord start of side
  19557.   INSERT Array[3] = 250             ! x coord end of side
  19558.   INSERT Array[4] = 150             ! y coord end of side
  19559.   INSERT Array[5] = 7               ! number of sides
  19560.  
  19561.   OPEN POLYGON poly1, Def1,
  19562.    REFERENCE =Array[0]
  19563.  
  19564. END
  19565.  
  19566. Examples source library: 
  19567.  
  19568.  
  19569. ΓòÉΓòÉΓòÉ 143. POSITION() ΓòÉΓòÉΓòÉ
  19570.  
  19571. The POSITION() function returns a format value which specifies that spaces are 
  19572. to be added to the output so that the next character will occupy the indicated 
  19573. position. The first character in a record is position 1. The command is valid 
  19574. only for output devices which support lines of output (PRINTER and FILE for 
  19575. example). 
  19576.  
  19577. ΓöÇΓöÇPOSITION(expression)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19578.  
  19579. Examples 
  19580.  
  19581. See also: LINE(), PAGE(), PRINTER, SPACE(), TAB() 
  19582.  
  19583.  
  19584. ΓòÉΓòÉΓòÉ 143.1. Examples ΓòÉΓòÉΓòÉ
  19585.  
  19586.  
  19587. CALL print'PUT("Pages:",POSITION(11),Totpage)
  19588.  
  19589. Examples source library: 
  19590.  
  19591.  
  19592. ΓòÉΓòÉΓòÉ 144. PRECISION ΓòÉΓòÉΓòÉ
  19593.  
  19594. The PRECISION statement specifies the maximum number of decimal places for the 
  19595. result of a calculation. 
  19596.  
  19597. ΓöÇΓöÇPRECISIONΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19598.                Γö£ΓöÇdecimal_placesΓöÇΓöñ
  19599.                ΓööΓöÇ*ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  19600.  
  19601. Examples 
  19602.  
  19603. More about PRECISION 
  19604.  
  19605.  
  19606. ΓòÉΓòÉΓòÉ 144.1. Examples ΓòÉΓòÉΓòÉ
  19607.  
  19608. PRECISION 3
  19609. Result = 2.29 * 3.3638                 !  Result = 7.703
  19610.  
  19611. Note that the numbers are rounded after a calculation is performed. For 
  19612. example, if a precision of 2 decimal places is specified: 
  19613.  
  19614.   1.114       1.115
  19615.  +1.114      +1.115
  19616. -------     -------
  19617.   2.23        2.23
  19618. -------     -------
  19619.  
  19620. Examples source library: 
  19621.  
  19622.  
  19623. ΓòÉΓòÉΓòÉ 144.2. More about PRECISION ΓòÉΓòÉΓòÉ
  19624.  
  19625. o The default value for  decimal_places is set at startup (using PROFILE). 
  19626.  
  19627. o The value set by a PRECISION statement only applies to the task in which that 
  19628.   PRECISION statement is invoked. Within a task, a PRECISION statement resets 
  19629.   the precision set by any previous PRECISION statement. 
  19630.  
  19631. o There is a distinction between precision, which can be up to 40 decimal 
  19632.   places, and the maximum number of significant figures in the decimal 
  19633.   fraction, which is 15. 
  19634.  
  19635. o It is advisable to set a value for PRECISION which is equal to or greater 
  19636.   than that of the most precise data being used. Truncation will occur if a 
  19637.   lower value is used. This can have an unpredictable effect on calculations. 
  19638.  
  19639.  
  19640. ΓòÉΓòÉΓòÉ 145. PRESSPACE ΓòÉΓòÉΓòÉ
  19641.  
  19642. The PRESSPACE object provides an area in a window which can be subclassed using 
  19643. an application specific Presentation Manager window procedure. 
  19644.  
  19645. Parent: WINDOW 
  19646.  
  19647. Attributes 
  19648.  
  19649. Actions 
  19650.  
  19651. Events 
  19652.  
  19653. More about PRESSPACE 
  19654.  
  19655.  
  19656. ΓòÉΓòÉΓòÉ 145.1. Attributes ΓòÉΓòÉΓòÉ
  19657.  
  19658. X                   Y 
  19659. SIZEX               SIZEY 
  19660. VISIBLE             ORIGIN 
  19661. DLL                 PROCNAME 
  19662.  
  19663.  
  19664. ΓòÉΓòÉΓòÉ 145.1.1. X ΓòÉΓòÉΓòÉ
  19665.  
  19666. Horizontal position of the PRESSPACE within the enclosing window, in dialog box 
  19667. units. 
  19668.  
  19669. Default: 0 
  19670.  
  19671.  
  19672. ΓòÉΓòÉΓòÉ 145.1.2. Y ΓòÉΓòÉΓòÉ
  19673.  
  19674. Vertical position of the PRESSPACE within the enclosing window, in dialog box 
  19675. units. 
  19676.  
  19677. Default: 0 
  19678.  
  19679.  
  19680. ΓòÉΓòÉΓòÉ 145.1.3. SIZEX ΓòÉΓòÉΓòÉ
  19681.  
  19682. Horizontal size of the PRESSPACE, in dialog box units. 
  19683.  
  19684. Default: 0 
  19685.  
  19686.  
  19687. ΓòÉΓòÉΓòÉ 145.1.4. SIZEY ΓòÉΓòÉΓòÉ
  19688.  
  19689. Vertical size of the PRESSPACE, in dialog box units. 
  19690.  
  19691. Default: 0 
  19692.  
  19693.  
  19694. ΓòÉΓòÉΓòÉ 145.1.5. VISIBLE ΓòÉΓòÉΓòÉ
  19695.  
  19696. Whether the PRESSPACE is displayed: 
  19697.  
  19698. 0         Not displayed 
  19699. 1         Displayed 
  19700.  
  19701. Default: 1 (Displayed) 
  19702.  
  19703.  
  19704. ΓòÉΓòÉΓòÉ 145.1.6. ORIGIN ΓòÉΓòÉΓòÉ
  19705.  
  19706. The corner of the enclosing window to be taken as the origin. The position of 
  19707. the PRESSPACE is measured from this point. 
  19708.  
  19709. "TL"      Top left 
  19710. "TR"      Top right 
  19711. "BL"      Bottom left 
  19712. "BR"      Bottom right 
  19713.  
  19714. Default: "BL" (Bottom left) 
  19715.  
  19716.  
  19717. ΓòÉΓòÉΓòÉ 145.1.7. DLL ΓòÉΓòÉΓòÉ
  19718.  
  19719. Name of the Dynamic Link Library which contains the application window 
  19720. procedure with which the control is subclassed. 
  19721.  
  19722. Must be set on open, cannot be modified. 
  19723.  
  19724.  
  19725. ΓòÉΓòÉΓòÉ 145.1.8. PROCNAME ΓòÉΓòÉΓòÉ
  19726.  
  19727. Name of the application window procedure with which the control is subclassed. 
  19728.  
  19729. Must be set on open, cannot be modified. 
  19730.  
  19731.  
  19732. ΓòÉΓòÉΓòÉ 145.2. Actions ΓòÉΓòÉΓòÉ
  19733.  
  19734. SEND()            POST() 
  19735.  
  19736.  
  19737. ΓòÉΓòÉΓòÉ 145.2.1. SEND() ΓòÉΓòÉΓòÉ
  19738.  
  19739. ΓöÇΓöÇSEND(parameter1,parameter2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19740.  
  19741. Sends a defined Presentation Manager message to the control. The parameters are 
  19742. sent as MP1 and MP2 to the user's window procedure. 
  19743.  
  19744. Since sending a message is synchronous, this action will return the result set 
  19745. in the window procedure. 
  19746.  
  19747.  
  19748. ΓòÉΓòÉΓòÉ 145.2.2. POST() ΓòÉΓòÉΓòÉ
  19749.  
  19750. ΓöÇΓöÇPOST(parameter1,parameter2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19751.  
  19752. Posts a defined message to the control. The parameters, which are sent as MP1 
  19753. and MP2, must be integers, parameter1 a word and parameter2 long. 
  19754.  
  19755.  
  19756. ΓòÉΓòÉΓòÉ 145.3. Events ΓòÉΓòÉΓòÉ
  19757.  
  19758. SIGNAL 
  19759.  
  19760.  
  19761. ΓòÉΓòÉΓòÉ 145.3.1. SIGNAL ΓòÉΓòÉΓòÉ
  19762.  
  19763. Runs the ON SIGNAL block. The application subclass activates the ON SIGNAL 
  19764. block and passes 3 parameters back to ASL. The first is the handle of the 
  19765. PRESSPACE object which is signalling ASL. The other 2 parameters are the values 
  19766. passed as MP1 and MP2 in the subclass. None of the system variables normally 
  19767. associated with events from controls are set. 
  19768.  
  19769.  
  19770. ΓòÉΓòÉΓòÉ 145.4. More about PRESSPACE ΓòÉΓòÉΓòÉ
  19771.  
  19772. o The PRESSPACE control allows direct access to Presentation Manager primitives 
  19773.   under the control of an ASL application. 
  19774.  
  19775. o The power and flexibility of Presentation Manager become available to ASL 
  19776.   based applications. 
  19777.  
  19778. Where applications require the power and flexibility of Presentation Manager, 
  19779. and can afford to pay the price of programming to the low level Presentation 
  19780. Manager APIs, the PRESSPACE control should be used. 
  19781.  
  19782. Typically, a WINDOW would be opened from ASL, and a PRESSPACE object opened on 
  19783. the client area. The window procedure used to subclass the PRESSPACE would be 
  19784. packaged in a DLL. When the PRESSPACE is opened, the DLL is loaded, and the 
  19785. procedure used to subclass the Presentation Manager control. A BB_CREATE 
  19786. message is then sent to the subclass. This allows the subprocedure to carry out 
  19787. initialization. From this point on, all Presentation Manager messages will go 
  19788. to the application provided procedure. The messages can be processed or passed 
  19789. to the PRESSPACE default window procedure as if running within a native 
  19790. Presentation Manager application. The application window procedure can find the 
  19791. PRESSPACE window procedure by calling WinQueryWindowPtr() with offset 
  19792. BLKBOX_WINPROC and using the handle of the PRESSPACE object. 
  19793. (WinDefWindowProc() should not be used.) 
  19794.  
  19795. When an ASL event is generated which requires the subprocedure to carry out 
  19796. some action, the SEND or POST actions are used to have a Presentation Manager 
  19797. message routed to the subprocedure. 
  19798.  
  19799. When the subprocedure receives a message which requires some action from ASL, 
  19800. the subprocedure sends a BB_SIGNAL message to the default window procedure. The 
  19801. system processes this message by raising an ASL SIGNAL event. 
  19802.  
  19803.  
  19804. ΓòÉΓòÉΓòÉ 146. PRINTER ΓòÉΓòÉΓòÉ
  19805.  
  19806. The PRINTER object class provides access to printers configured for use by the 
  19807. operating system. The object can be opened by direct manipulation (dragging an 
  19808. object to the printer) or from within ASL by using the SYSTEM'PRINTREQUEST() 
  19809. action. 
  19810.  
  19811. Attributes 
  19812.  
  19813. Actions 
  19814.  
  19815. Events: None. 
  19816.  
  19817. More about PRINTER 
  19818.  
  19819. Examples 
  19820.  
  19821. See also: SYSTEM, LINE(), PAGE(), POSITION(), SPACE(), TAB() 
  19822.  
  19823.  
  19824. ΓòÉΓòÉΓòÉ 146.1. Attributes ΓòÉΓòÉΓòÉ
  19825.  
  19826. DIALOG                 ORIGINATOR 
  19827. CODE                   DESCRIPTION 
  19828. COPIES                 WIDTH 
  19829. HEIGHT                 COLOR 
  19830.  
  19831.  
  19832. ΓòÉΓòÉΓòÉ 146.1.1. DIALOG ΓòÉΓòÉΓòÉ
  19833.  
  19834. Used to determine whether the SETTINGS() action is called. If the PRINT event 
  19835. was triggered by direct manipulation, or by Print from the icon context menu, 
  19836. then Dialog reflects the current value of the "Job dialog before print" setting 
  19837. on the Workplace Shell printer. If the PRINT event was triggered by 
  19838. PRINTREQUEST, then it reflects the Dialog parameter. 
  19839.  
  19840. Default: 1 Call SETTINGS() 
  19841.  
  19842.  
  19843. ΓòÉΓòÉΓòÉ 146.1.2. ORIGINATOR ΓòÉΓòÉΓòÉ
  19844.  
  19845. If the PRINT event was triggered by direct manipulation (dragging), then 
  19846. ORIGINATOR identifies the SOURCECTRL object that facilitated the drop on the 
  19847. printer. Otherwise, ORIGINATOR is NULL. 
  19848.  
  19849.  
  19850. ΓòÉΓòÉΓòÉ 146.1.3. CODE ΓòÉΓòÉΓòÉ
  19851.  
  19852. Most recent operating system or internal error code. 
  19853.  
  19854. Default: Set by any action involving the printer. 
  19855.  
  19856.  
  19857. ΓòÉΓòÉΓòÉ 146.1.4. DESCRIPTION ΓòÉΓòÉΓòÉ
  19858.  
  19859. Job description string. Displayed in the printer queue to identify the job. Set 
  19860. on OPEN, then read-only. 
  19861.  
  19862. Default: None. 
  19863.  
  19864.  
  19865. ΓòÉΓòÉΓòÉ 146.1.5. COPIES ΓòÉΓòÉΓòÉ
  19866.  
  19867. Number of copies to print. Set on OPEN, then read-only. Use the SETTINGS action 
  19868. to modify the number of copies. 
  19869.  
  19870. Default: 1 
  19871.  
  19872.  
  19873. ΓòÉΓòÉΓòÉ 146.1.6. WIDTH ΓòÉΓòÉΓòÉ
  19874.  
  19875. Width in millimeters of the paper in the printer. 
  19876.  
  19877.  
  19878. ΓòÉΓòÉΓòÉ 146.1.7. HEIGHT ΓòÉΓòÉΓòÉ
  19879.  
  19880. Height in millimeters of the paper in the printer. 
  19881.  
  19882.  
  19883. ΓòÉΓòÉΓòÉ 146.1.8. COLOR ΓòÉΓòÉΓòÉ
  19884.  
  19885. Queried from the current printer. 
  19886.  
  19887. 0  Monochrome printer (default), and 
  19888.  
  19889. 1  Color printer. 
  19890.  
  19891.  
  19892. ΓòÉΓòÉΓòÉ 146.2. Actions ΓòÉΓòÉΓòÉ
  19893.  
  19894. PUT()                 SETTINGS() 
  19895.  
  19896.  
  19897. ΓòÉΓòÉΓòÉ 146.2.1. PUT() ΓòÉΓòÉΓòÉ
  19898.  
  19899.              <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  19900. ΓöÇΓöÇPUT(exp1ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö┤ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19901.               ΓööΓöÇexp2ΓöÇΓöÿ
  19902.  
  19903. Prints the string resulting from an expression. As many expressions exp2 to 
  19904. expn as wanted to be printed can be supplied as arguments to PUT(), separated 
  19905. by commas. This action is similar to FILE'PUT() - see More about FILE'PUT for 
  19906. details. 
  19907.  
  19908.  
  19909. ΓòÉΓòÉΓòÉ 146.2.2. SETTINGS() ΓòÉΓòÉΓòÉ
  19910.  
  19911.                    ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÉ
  19912. ΓöÇΓöÇSETTINGS(name,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19913.                    ΓööΓöÇtypeΓöÇΓöÿ
  19914.  
  19915. This action presents a modal dialog to allow certain printer options to be set. 
  19916. It returns a value of 1 (true) if the user selects Print on the dialog. It 
  19917. returns a value of 0 (false) if the user closes the dialog by any other means. 
  19918.  
  19919. If specified, name must match the instance name of the calling application. It 
  19920. is used to construct the title of any displayed dialogs. 
  19921.  
  19922. Calling SETTINGS after data has been submitted to the printer will generate an 
  19923. error. 
  19924.  
  19925. If specified, type may have one of three numeric values: 
  19926.  
  19927. 1         (Default) Provides the default dialog allowing Copies to be set, as 
  19928.           well as allowing navigation to the device driver specific Job Options 
  19929.           dialog (by using an Options button). This will effectively reset all 
  19930.           printer settings and replace them either with the default settings, 
  19931.           or with the ones in the Job Options dialog. 
  19932. 2         Provides a dialog allowing an available nonproportional font to be 
  19933.           selected. 
  19934. 3         Provides a dialog allowing an available nonproportional or 
  19935.           proportional font to be selected. 
  19936.  
  19937. When you select a font using a type 2 or type 3 dialog, all text sent to the 
  19938. printer by the PUT action is printed in the selected font. Graphical output is 
  19939. not affected. 
  19940.  
  19941.  
  19942. ΓòÉΓòÉΓòÉ 146.3. More about PRINTER ΓòÉΓòÉΓòÉ
  19943.  
  19944. o If you are going to plot charts, the PMPLOT queue driver is recommended. 
  19945.   Plotting is possible with the default PMPRINT driver, however hidden lines 
  19946.   and surfaces will not be removed from the charts. 
  19947.  
  19948. o The output expression for PUT() can be formatted using the SPACE(), LINE(), 
  19949.   and PAGE() functions. 
  19950.  
  19951. o If a PUT() expression is a reference to a vector with index 0, then all the 
  19952.   elements of the array are concatenated and printed. 
  19953.  
  19954. o The PRINTREQUEST action in the SYSTEM object causes a PRINT event to occur. 
  19955.   The parameters for printing can be set from this event. 
  19956.  
  19957.  
  19958. ΓòÉΓòÉΓòÉ 146.4. Examples ΓòÉΓòÉΓòÉ
  19959.  
  19960. Refer to the PRINT.PRG program supplied in Development Samples for a detailed 
  19961. example using the PRINTER object. 
  19962.  
  19963. Examples source library: 
  19964.  
  19965.  
  19966. ΓòÉΓòÉΓòÉ 147. PROCEDURE ΓòÉΓòÉΓòÉ
  19967.  
  19968. The PROCEDURE statement associates a name with a statement or block of 
  19969. statements. A procedure can be called using the CALL statement, or directly as 
  19970. a function. 
  19971.  
  19972. ΓöÇΓöÇPROCEDUREΓöÇΓöÇprocedureΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  19973.                           Γöé    <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé
  19974.                           ΓööΓöÇ(ΓöÇΓöÇΓöÇΓöÇparameterΓöÇΓö┤ΓöÇΓöÇ)ΓöÇΓöÿ
  19975.  
  19976. Examples 
  19977.  
  19978. More about PROCEDURE 
  19979.  
  19980. See also: CALL, DECLARE, LEAVE, LIBRARY ASL, LIBRARY DLL, LIBRARY REXX, 
  19981. LIBRARY ENTRY, LIBRARY LOCAL, PROCEDURE(), RETURN 
  19982.  
  19983.  
  19984. ΓòÉΓòÉΓòÉ 147.1. Examples ΓòÉΓòÉΓòÉ
  19985.  
  19986. DECLARE POINTER dispatch = PROCEDURE("Decode_Seq_No")
  19987. Current_Seq_No = 1 + (?dispatch) (Last_Seq_No)
  19988.  
  19989. CALL UPDATE(DataBuffer)                 ! Called as procedure.
  19990.  
  19991. Price = MARKUP(Cost)                    ! Invoked as function.
  19992.  
  19993. PROCEDURE UPDATE(RecBuf)
  19994. DO
  19995.   DECLARE CHAR[*] RecBuf
  19996.  
  19997.   CALL Opfil'PUT(RecBuf)
  19998.   Status = "New"
  19999.   Action = ""
  20000.   ...
  20001. END
  20002.  
  20003. PROCEDURE MarkUp(Value)
  20004. DO
  20005.   DECLARE NUMERIC Value
  20006.   RETURN (Value * 1.375)
  20007. END
  20008.  
  20009. PROCEDURE Decode_Seq_No(Num)
  20010. DO
  20011.   DECLARE NUMERIC Num
  20012.   ...
  20013. END
  20014.  
  20015. Examples source library: 
  20016.  
  20017.  
  20018. ΓòÉΓòÉΓòÉ 147.2. More about PROCEDURE ΓòÉΓòÉΓòÉ
  20019.  
  20020. o If a procedure contains more than one statement, the statements must be 
  20021.   enclosed in a DO...END block. 
  20022.  
  20023. o The number of parameters used when the procedure is called or invoked as a 
  20024.   function must normally match the number of parameters on the PROCEDURE 
  20025.   statement. This restriction does not apply to indirect procedure calls using 
  20026.   procedure pointers. In this case, parameter lists are truncated or extended 
  20027.   with NULL values as necessary. 
  20028.  
  20029. o On an indirect procedure call using a procedure pointer, the parameter list 
  20030.   parentheses are required, even if there are no parameters. Parentheses are 
  20031.   also required around the procedure reference to allow for the lower level of 
  20032.   precedence of the indirection operator  ?. 
  20033.  
  20034. o Unless they are declared, variables are not local to a procedure. 
  20035.  
  20036. o When a procedure is invoked as a function, a value is returned to the calling 
  20037.   code using a RETURN statement. RETURN has two effects: it ends execution of 
  20038.   the procedure and, optionally, returns a value. 
  20039.  
  20040. o If a procedure is given the same name as a system function, the system 
  20041.   function cannot be called. 
  20042.  
  20043. o PROCEDURE statements can also be held in a LIBRARY. 
  20044.  
  20045.  
  20046. ΓòÉΓòÉΓòÉ 148. PROCEDURE() ΓòÉΓòÉΓòÉ
  20047.  
  20048. The PROCEDURE() function returns a pointer to a procedure. 
  20049.  
  20050. ΓöÇΓöÇPROCEDURE(procedurename)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  20051.  
  20052. Examples 
  20053.  
  20054. More about PROCEDURE() 
  20055.  
  20056. See also: CALL, LIBRARY LOCAL, PROCEDURE 
  20057.  
  20058.  
  20059. ΓòÉΓòÉΓòÉ 148.1. Examples ΓòÉΓòÉΓòÉ
  20060.  
  20061. LET dispatch = PROCEDURE("SelectMainOK")
  20062. CALL (?dispatch)()
  20063.  
  20064. Examples source library: 
  20065.  
  20066.  
  20067. ΓòÉΓòÉΓòÉ 148.2. More about PROCEDURE() ΓòÉΓòÉΓòÉ
  20068.  
  20069. o The procedure may be in the same source program as the PROCEDURE() invocation 
  20070.   or be named on a LIBRARY ASL, LIBRARY DLL, or LIBRARY REXX statement. 
  20071.  
  20072. o Unless a LIBRARY LOCAL statement is used, PROCEDURE() can be used for any 
  20073.   local procedure. 
  20074.  
  20075. o The data type of the result from PROCEDURE() is POINTER. 
  20076.  
  20077.  
  20078. ΓòÉΓòÉΓòÉ 149. PROFILE ΓòÉΓòÉΓòÉ
  20079.  
  20080. The PROFILE object class gives access to various properties of the Visualizer 
  20081. and OS/2 environments. The attributes of the PROFILE object are all read-only. 
  20082.  
  20083. Attributes 
  20084.  
  20085. Subobjects 
  20086.  
  20087. Actions: None. 
  20088.  
  20089. Events: None. 
  20090.  
  20091. Examples 
  20092.  
  20093. More about PROFILE 
  20094.  
  20095.  
  20096. ΓòÉΓòÉΓòÉ 149.1. Attributes ΓòÉΓòÉΓòÉ
  20097.  
  20098. BGCOLOR                  CODEPAGE 
  20099. CODEPAGETYPE             CURRENCY 
  20100. DATE                     DATEFORMAT 
  20101. DATESEPAR                DBCSFONT 
  20102. DECSEPAR                 DSSDIR 
  20103. DSSPATH                  EXE 
  20104. FGCOLOR                  HILITEBGCOLOR 
  20105. HILITEFGCOLOR            INSTANCE 
  20106. LANGUAGE                 MAIL 
  20107. PCS                      PLACES 
  20108. RELATIONAL               REPLACE 
  20109. SHORTDATE                SRPI 
  20110. THOUSEPAR                TIME 
  20111. TIMEFORMAT               TIMESEPAR 
  20112. VERSION 
  20113.  
  20114.  
  20115. ΓòÉΓòÉΓòÉ 149.1.1. BGCOLOR ΓòÉΓòÉΓòÉ
  20116.  
  20117. Background color. Integer in the range 0-17. See Colors and color codes for 
  20118. details of colors available. 
  20119.  
  20120.  
  20121. ΓòÉΓòÉΓòÉ 149.1.2. CODEPAGE ΓòÉΓòÉΓòÉ
  20122.  
  20123. PC code page. 
  20124.  
  20125.  
  20126. ΓòÉΓòÉΓòÉ 149.1.3. CODEPAGETYPE ΓòÉΓòÉΓòÉ
  20127.  
  20128. OS/2 operating environment. 
  20129.  
  20130. 0         Single-byte character set version of OS/2 
  20131. 1         Double-byte character set version of OS/2 
  20132.  
  20133.  
  20134. ΓòÉΓòÉΓòÉ 149.1.4. CURRENCY ΓòÉΓòÉΓòÉ
  20135.  
  20136. Currency symbol. 
  20137.  
  20138.  
  20139. ΓòÉΓòÉΓòÉ 149.1.5. DATE ΓòÉΓòÉΓòÉ
  20140.  
  20141. Current date. 
  20142.  
  20143.  
  20144. ΓòÉΓòÉΓòÉ 149.1.6. DATEFORMAT ΓòÉΓòÉΓòÉ
  20145.  
  20146. Formal date format. 
  20147.  
  20148.  
  20149. ΓòÉΓòÉΓòÉ 149.1.7. DATESEPAR ΓòÉΓòÉΓòÉ
  20150.  
  20151. Date separator. 
  20152.  
  20153.  
  20154. ΓòÉΓòÉΓòÉ 149.1.8. DBCSFONT ΓòÉΓòÉΓòÉ
  20155.  
  20156. Indicates whether DBCS outline fonts are available. 
  20157.  
  20158. 0         No DBCS outline font available. 
  20159. 1         DBCS outline font available. 
  20160.  
  20161.  
  20162. ΓòÉΓòÉΓòÉ 149.1.9. DECSEPAR ΓòÉΓòÉΓòÉ
  20163.  
  20164. Decimal separator. 
  20165.  
  20166.  
  20167. ΓòÉΓòÉΓòÉ 149.1.10. DSSDIR ΓòÉΓòÉΓòÉ
  20168.  
  20169. The name of the directory where Visualizer stores output files. The value of 
  20170. this attribute is taken from the FTB1DIR environment variable, which is set in 
  20171. the OS/2 CONFIG.SYS file by the SET FTB1DIR = statement. 
  20172.  
  20173. Default: None 
  20174.  
  20175.  
  20176. ΓòÉΓòÉΓòÉ 149.1.11. DSSPATH ΓòÉΓòÉΓòÉ
  20177.  
  20178. The search path used to locate the Visualizer system files. The value of this 
  20179. attribute is taken from the FTB1PATH environment variable, which is set in the 
  20180. OS/2 CONFIG.SYS file by the SET FTB1PATH = statement. 
  20181.  
  20182. Default: None 
  20183.  
  20184.  
  20185. ΓòÉΓòÉΓòÉ 149.1.12. EXE ΓòÉΓòÉΓòÉ
  20186.  
  20187. Name of the .EXE file that is currently executing Visualizer. 
  20188.  
  20189.  
  20190. ΓòÉΓòÉΓòÉ 149.1.13. FGCOLOR ΓòÉΓòÉΓòÉ
  20191.  
  20192. Foreground color. Integer in the range 0-17. See Colors and color codes for 
  20193. details of colors available. 
  20194.  
  20195.  
  20196. ΓòÉΓòÉΓòÉ 149.1.14. HILITEBGCOLOR ΓòÉΓòÉΓòÉ
  20197.  
  20198. Highlight background color. Integer in the range 0-17. See 
  20199. Colors and colorcodes for details of colors available. 
  20200.  
  20201.  
  20202. ΓòÉΓòÉΓòÉ 149.1.15. HILITEFGCOLOR ΓòÉΓòÉΓòÉ
  20203.  
  20204. Highlight foreground color. Integer in the range 0-17. See 
  20205. Colors and colorcodes for details of colors available. 
  20206.  
  20207.  
  20208. ΓòÉΓòÉΓòÉ 149.1.16. INSTANCE ΓòÉΓòÉΓòÉ
  20209.  
  20210. The current instance of Visualizer. 
  20211.  
  20212.  
  20213. ΓòÉΓòÉΓòÉ 149.1.17. LANGUAGE ΓòÉΓòÉΓòÉ
  20214.  
  20215. Code for language used. A three-letter string: 
  20216.  
  20217. "CHT"  Traditional Chinese 
  20218. "DEU"  German 
  20219. "ENU"  US English 
  20220. "ESP"  Spanish 
  20221. "FRA"  French 
  20222. "JPN"  Japanese 
  20223. "KOR"  Korean 
  20224. "NLD"  Dutch 
  20225.  
  20226.  
  20227. ΓòÉΓòÉΓòÉ 149.1.18. MAIL ΓòÉΓòÉΓòÉ
  20228.  
  20229. Whether a mail system is installed. 
  20230.  
  20231. 0         No mail system installed 
  20232. 1         Mail system installed 
  20233.  
  20234.  
  20235. ΓòÉΓòÉΓòÉ 149.1.19. PCS ΓòÉΓòÉΓòÉ
  20236.  
  20237. Check for the presence of AS/400 DLL. 
  20238.  
  20239.  
  20240. ΓòÉΓòÉΓòÉ 149.1.20. PLACES ΓòÉΓòÉΓòÉ
  20241.  
  20242. Number of decimal places displayed. 
  20243.  
  20244.  
  20245. ΓòÉΓòÉΓòÉ 149.1.21. RELATIONAL ΓòÉΓòÉΓòÉ
  20246.  
  20247. Check for the presence of a database manager. 
  20248.  
  20249. 0         No database manager installed 
  20250. 1         Database manager installed 
  20251.  
  20252.  
  20253. ΓòÉΓòÉΓòÉ 149.1.22. REPLACE ΓòÉΓòÉΓòÉ
  20254.  
  20255. Display warning prompt before replacing file. 
  20256.  
  20257. 0         No warning prompt 
  20258. 1         Warning prompt displayed 
  20259.  
  20260. Default: 1 (Warning displayed) 
  20261.  
  20262.  
  20263. ΓòÉΓòÉΓòÉ 149.1.23. SHORTDATE ΓòÉΓòÉΓòÉ
  20264.  
  20265. Short date format. 
  20266.  
  20267.  
  20268. ΓòÉΓòÉΓòÉ 149.1.24. SRPI ΓòÉΓòÉΓòÉ
  20269.  
  20270. Check for the presence of host communication DLL. 
  20271.  
  20272.  
  20273. ΓòÉΓòÉΓòÉ 149.1.25. THOUSEPAR ΓòÉΓòÉΓòÉ
  20274.  
  20275. Thousands separator. 
  20276.  
  20277.  
  20278. ΓòÉΓòÉΓòÉ 149.1.26. TIME ΓòÉΓòÉΓòÉ
  20279.  
  20280. Current time. 
  20281.  
  20282.  
  20283. ΓòÉΓòÉΓòÉ 149.1.27. TIMEFORMAT ΓòÉΓòÉΓòÉ
  20284.  
  20285. Time format. 
  20286.  
  20287.  
  20288. ΓòÉΓòÉΓòÉ 149.1.28. TIMESEPAR ΓòÉΓòÉΓòÉ
  20289.  
  20290. Time separator. 
  20291.  
  20292.  
  20293. ΓòÉΓòÉΓòÉ 149.1.29. VERSION ΓòÉΓòÉΓòÉ
  20294.  
  20295. Version number of Visualizer. 
  20296.  
  20297.  
  20298. ΓòÉΓòÉΓòÉ 149.2. Subobjects ΓòÉΓòÉΓòÉ
  20299.  
  20300. PROFILE objects have subobjects. These subobjects represent the verbal forms 
  20301. for the following items: 
  20302.  
  20303. o Days of the week 
  20304. o Month names 
  20305. o Short (three-letter) forms of month names 
  20306. o The suffixes for the first 31 ordinal numbers. 
  20307.  
  20308. The actual content of these subobject vectors depends on the country setup of 
  20309. your computer. 
  20310.  
  20311. DAYNAMES[7]         Names of the days of the week 
  20312. MONTHNAMES[12]      Names of the months 
  20313. MONTH3CHAR[12]      First three characters of the names of the months 
  20314. ORDINALS[31]        The suffixes for the first 31 ordinal numbers (st for 1st, 
  20315.                     nd for 2nd, rd for 3rd, and so forth). 
  20316.  
  20317. All the subobjects have one read-only attribute, NAME, which can be retrieved 
  20318. in the following way: 
  20319.  
  20320. OPEN PROFILE profs
  20321. LET Today = T.profs.daynames[x]'NAME
  20322.          ! If x = 3, then Today is now set to 'Wednesday'
  20323.  
  20324. where: 
  20325.  
  20326. x         is the required subscript. 
  20327.  
  20328.  
  20329. ΓòÉΓòÉΓòÉ 149.3. Examples ΓòÉΓòÉΓòÉ
  20330.  
  20331. ! The profile object gives access to system level settings
  20332. !
  20333. PROCEDURE PROFILE
  20334. DO
  20335.   DECLARE NUMERIC i
  20336.   ! all attributes of the profile object are read only
  20337.   OPEN profile prof
  20338.   !
  20339.   ! use the profile sub-objects to create some data
  20340.   ! arrays for later use as reference arrays
  20341.   DEFINE days[0]
  20342.   DEFINE array1[0]
  20343.   DEFINE array2[0]
  20344.   DO i=1:7
  20345.     ! create a list of day names
  20346.     INSERT days[0]=t.prof.daynames[i]'NAME
  20347.   END
  20348.   DO i=1:12
  20349.     ! a list of month names
  20350.     INSERT array1[0]=t.prof.monthnames[i]'NAME
  20351.     ! a list of abbreviated month names
  20352.     INSERT array2[0]=t.prof.month3char[i]'NAME
  20353.   END
  20354. END
  20355.  
  20356. Examples source library: 
  20357.  
  20358.  
  20359. ΓòÉΓòÉΓòÉ 149.4. More about PROFILE ΓòÉΓòÉΓòÉ
  20360.  
  20361. All subobjects of PROFILE are opened automatically as subobject instances when 
  20362. the PROFILE object is opened. 
  20363.  
  20364.  
  20365. ΓòÉΓòÉΓòÉ 150. PUSH ΓòÉΓòÉΓòÉ
  20366.  
  20367. The PUSH object class creates an instance of a push button. 
  20368.  
  20369. Attributes 
  20370.  
  20371. Actions 
  20372.  
  20373. Events 
  20374.  
  20375. Examples 
  20376.  
  20377. More about PUSH 
  20378.  
  20379.  
  20380. ΓòÉΓòÉΓòÉ 150.1. Attributes ΓòÉΓòÉΓòÉ
  20381.  
  20382. BITMAP                CLONEDIR 
  20383. CLONEGAP              CLONES 
  20384. DEFAULT               ENABLED 
  20385. EXPRESSION            HELP 
  20386. HANDLES               HELPBUTTON 
  20387. ORIGIN                SCALED 
  20388. SIZEX                 SIZEY 
  20389. TEXT                  VISIBLE 
  20390. X                     Y 
  20391.  
  20392.  
  20393. ΓòÉΓòÉΓòÉ 150.1.1. BITMAP ΓòÉΓòÉΓòÉ
  20394.  
  20395. This attribute is a character string of up to 255 bytes that specifies the 
  20396. bitmap to be displayed on the button. It may specify either a file containing a 
  20397. bitmap, or a DLL and resource identifier for a bitmap. 
  20398.  
  20399. If the string contains the "<>" symbols, then the string is assumed to be in 
  20400. the form DLLName<ResourceID>. Otherwise, the string is assumed to hold a fully 
  20401. qualified file name. (Such a file name can be constructed from the NAME and 
  20402. LOCATION attributes of a STREAM based object, to allow the bitmap to be 
  20403. retrieved from an SMEMORY or SFILE object.) 
  20404.  
  20405. If this attribute has a value, then any prior TEXT attribute setting is ignored 
  20406. and the bitmap is be used for the button. If the TEXT attribute is subsequently 
  20407. modified, then the TEXT value has precedence over the value of this attribute. 
  20408. (You cannot identify a bitmap by using the EXPRESSION attribute.) 
  20409.  
  20410. The term bitmap refers to any format supported by the GRAPHIC'BITMAP() action 
  20411. (OS/2 BITMAP, PCX, TIFF, and GIF). The bitmap format is converted before use, 
  20412. if necessary. 
  20413.  
  20414. Default: None Set on OPEN, then read-only. 
  20415.  
  20416.  
  20417. ΓòÉΓòÉΓòÉ 150.1.2. CLONEDIR ΓòÉΓòÉΓòÉ
  20418.  
  20419. Which way the clones are to be laid out relative to the original: 
  20420.  
  20421. 1         Down 
  20422. 2         Up 
  20423. 3         Left 
  20424. 4         Right 
  20425.  
  20426. Set on OPEN, then read-only. 
  20427.  
  20428. Default: 1 (Down) 
  20429.  
  20430.  
  20431. ΓòÉΓòÉΓòÉ 150.1.3. CLONEGAP ΓòÉΓòÉΓòÉ
  20432.  
  20433. Space between clones, in dialog units. 
  20434.  
  20435. Set on OPEN, then read-only. 
  20436.  
  20437. Default: 0 
  20438.  
  20439.  
  20440. ΓòÉΓòÉΓòÉ 150.1.4. CLONES ΓòÉΓòÉΓòÉ
  20441.  
  20442. Number of clones to be displayed. 
  20443.  
  20444. Set on OPEN, then read-only. 
  20445.  
  20446. Default: 1 
  20447.  
  20448.  
  20449. ΓòÉΓòÉΓòÉ 150.1.5. DEFAULT ΓòÉΓòÉΓòÉ
  20450.  
  20451. Clone to be offered as a default (with cursor focus). A positive number between 
  20452. 1 and the total number of clones. 
  20453.  
  20454. Default: 1 
  20455.  
  20456.  
  20457. ΓòÉΓòÉΓòÉ 150.1.6. DISABLED ΓòÉΓòÉΓòÉ
  20458.  
  20459. Bitmap that is displayed on the button when it is disabled (grayed out). 
  20460. Details of this attribute are the same as for the BITMAP attribute. 
  20461.  
  20462. Default: None 
  20463.  
  20464.  
  20465. ΓòÉΓòÉΓòÉ 150.1.7. DOWN ΓòÉΓòÉΓòÉ
  20466.  
  20467. Bitmap that is displayed on the button when it is down (pushed). Details of 
  20468. this attribute are the same as for the BITMAP attribute. 
  20469.  
  20470. Default: None 
  20471.  
  20472.  
  20473. ΓòÉΓòÉΓòÉ 150.1.8. ENABLED ΓòÉΓòÉΓòÉ
  20474.  
  20475. Whether the push button is enabled: 
  20476.  
  20477. 0         Push button grayed out and not selectable 
  20478. 1         Push button enabled 
  20479.  
  20480. Default: 1 (Enabled) 
  20481.  
  20482.  
  20483. ΓòÉΓòÉΓòÉ 150.1.9. EXPRESSION ΓòÉΓòÉΓòÉ
  20484.  
  20485. Pointer to a variable, the contents of which are displayed with the push 
  20486. button. 
  20487.  
  20488. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  20489.  
  20490. Default: "" 
  20491.  
  20492.  
  20493. ΓòÉΓòÉΓòÉ 150.1.10. HELP ΓòÉΓòÉΓòÉ
  20494.  
  20495. Resource identifier of the full help text for the push button. 
  20496.  
  20497. Default: 0 
  20498.  
  20499.  
  20500. ΓòÉΓòÉΓòÉ 150.1.11. HANDLES ΓòÉΓòÉΓòÉ
  20501.  
  20502. Whether sizing handles are attached to the push button to support moving, 
  20503. sizing, and copying operations. These direct manipulation techniques follow the 
  20504. CUA guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  20505.  
  20506. 0         Handles are not displayed 
  20507. 1         Handles are displayed 
  20508.  
  20509. Default: 0 (No handles) 
  20510.  
  20511.  
  20512. ΓòÉΓòÉΓòÉ 150.1.12. HELPBUTTON ΓòÉΓòÉΓòÉ
  20513.  
  20514. The clone for the help push button (allowing direct access to the Information 
  20515. Presentation Facility Help Manager). An integer no greater than the total 
  20516. number of clones. 
  20517.  
  20518. Default: 0 
  20519.  
  20520.  
  20521. ΓòÉΓòÉΓòÉ 150.1.13. LATCHABLE ΓòÉΓòÉΓòÉ
  20522.  
  20523. Whether the push button is latchable. 
  20524.  
  20525. 0         Not latchable-the state changes to DOWN when the button is pushed, 
  20526.           then returns to UP when the button is released. 
  20527. 1         Latchable-the state changes to DOWN when the button is pushed, then 
  20528.           stays DOWN until the button is pushed again. 
  20529.  
  20530. Default: 0 (Not latchable) 
  20531.  
  20532.  
  20533. ΓòÉΓòÉΓòÉ 150.1.14. ORIGIN ΓòÉΓòÉΓòÉ
  20534.  
  20535. The corner of the enclosing window to be taken as the origin. The position of 
  20536. the push button is measured from this point. 
  20537.  
  20538. "TL"      Top left 
  20539. "TR"      Top right 
  20540. "BL"      Bottom left 
  20541. "BR"      Bottom right 
  20542.  
  20543. Default: "BL" (Bottom left) 
  20544.  
  20545.  
  20546. ΓòÉΓòÉΓòÉ 150.1.15. SCALED ΓòÉΓòÉΓòÉ
  20547.  
  20548. This Boolean value indicates that the bitmap will be scaled to fit the push 
  20549. button (when 1) or will be clipped to fit (when 0). 
  20550.  
  20551. Default: 0 (Not scaled) 
  20552.  
  20553.  
  20554. ΓòÉΓòÉΓòÉ 150.1.16. STATE ΓòÉΓòÉΓòÉ
  20555.  
  20556. The current state of the button: 
  20557.  
  20558. "UP"      Enabled, but not pushed 
  20559. "DOWN"    Pushed 
  20560. "DISABLED" Not enabled (grayed out) 
  20561.  
  20562. Default: "UP" 
  20563.  
  20564.  
  20565. ΓòÉΓòÉΓòÉ 150.1.17. SIZEX ΓòÉΓòÉΓòÉ
  20566.  
  20567. Width, in dialog units. 
  20568.  
  20569. Default: 0 
  20570.  
  20571.  
  20572. ΓòÉΓòÉΓòÉ 150.1.18. SIZEY ΓòÉΓòÉΓòÉ
  20573.  
  20574. Height, in dialog units. 
  20575.  
  20576. Default: 0 
  20577.  
  20578.  
  20579. ΓòÉΓòÉΓòÉ 150.1.19. TEXT ΓòÉΓòÉΓòÉ
  20580.  
  20581. Text string displayed on the push button. 
  20582.  
  20583. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  20584.  
  20585. Default: "" 
  20586.  
  20587.  
  20588. ΓòÉΓòÉΓòÉ 150.1.20. UP ΓòÉΓòÉΓòÉ
  20589.  
  20590. Bitmap that is displayed on the button when it is up (not pushed). Details of 
  20591. this attribute are the same as for the BITMAP attribute. 
  20592.  
  20593. Default: None 
  20594.  
  20595.  
  20596. ΓòÉΓòÉΓòÉ 150.1.21. VISIBLE ΓòÉΓòÉΓòÉ
  20597.  
  20598. Whether the push button is displayed: 
  20599.  
  20600. 0         Push button not displayed 
  20601. 1         Push button displayed 
  20602.  
  20603. Default: 1 (Displayed) 
  20604.  
  20605.  
  20606. ΓòÉΓòÉΓòÉ 150.1.22. X ΓòÉΓòÉΓòÉ
  20607.  
  20608. Horizontal position within the window, in dialog units. 
  20609.  
  20610. Default: 0 
  20611.  
  20612.  
  20613. ΓòÉΓòÉΓòÉ 150.1.23. Y ΓòÉΓòÉΓòÉ
  20614.  
  20615. Vertical position within the window, in dialog units. 
  20616.  
  20617. Default: 0 
  20618.  
  20619.  
  20620. ΓòÉΓòÉΓòÉ 150.2. Actions ΓòÉΓòÉΓòÉ
  20621.  
  20622. REFRESH() 
  20623.  
  20624.  
  20625. ΓòÉΓòÉΓòÉ 150.2.1. REFRESH() ΓòÉΓòÉΓòÉ
  20626.  
  20627. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  20628.  
  20629. Forces repainting of the push button on screen. 
  20630.  
  20631.  
  20632. ΓòÉΓòÉΓòÉ 150.3. Events ΓòÉΓòÉΓòÉ
  20633.  
  20634. DESKTOP            SELECT 
  20635.  
  20636.  
  20637. ΓòÉΓòÉΓòÉ 150.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  20638.  
  20639. Signaled when the push button is moved, sized, or copied. A.System.Operation is 
  20640. set to "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the 
  20641. control. 
  20642.  
  20643.  
  20644. ΓòÉΓòÉΓòÉ 150.3.2. SELECT ΓòÉΓòÉΓòÉ
  20645.  
  20646. Signaled when the push button is selected. A.System.Object is set to name of 
  20647. the push button. A.System.Boxnumber is set to the number of the clone selected. 
  20648.  
  20649.  
  20650. ΓòÉΓòÉΓòÉ 150.4. Examples ΓòÉΓòÉΓòÉ
  20651.  
  20652. ! Sample code which dynamically opens a set of push buttons.
  20653. ! A set of 5 buttons is opened,placed vertically on the
  20654. ! window. Examples of how to manipulate the controls are also
  20655. ! provided.
  20656. PROCEDURE PUSH
  20657. DO
  20658.   OPEN push push1,SampWind,
  20659.    X     = 70, Y     = 150,         ! control position
  20660.    SIZEX = 60, SIZEY = 12,          ! control size
  20661.    EXPRESSION = "Days[1]",          ! reference to the text to be displayed
  20662.    CLONES = 5,                      ! 5 clones required (default 1)
  20663.    CLONEDIR = 1,                    ! 1=down (the default)
  20664.    CLONEGAP = 5
  20665.   !
  20666.   ! set the default button to the fourth clone
  20667.   !
  20668.   LET push1'default[0] = 4
  20669.   !
  20670.   ! gray the third clone
  20671.   !
  20672.   LET push1'enabled[3] = 0
  20673.   !
  20674.   ! dynamically reposition the fifth clone 10 dbu to the right of
  20675.   ! its current position
  20676.   !
  20677.   LET push1'x[5] = push1'x[5] + 10
  20678. END
  20679.  
  20680. Examples source library: 
  20681.  
  20682.  
  20683. ΓòÉΓòÉΓòÉ 150.5. More about PUSH ΓòÉΓòÉΓòÉ
  20684.  
  20685. o The following attributes can only be modified for the entire clone set, not 
  20686.   for the individual clones: 
  20687.  
  20688.    CLONEDIR 
  20689.    CLONEGAP 
  20690.    DEFAULT 
  20691.    HANDLES 
  20692.    HELPBUTTON 
  20693.    ORIGIN 
  20694.    VISIBLE 
  20695.  
  20696. To modify an attributes for a the entire clone set, use a reference of zero: 
  20697.  
  20698. LET MyPush[0]'VISIBLE = 0
  20699. The set reference of zero must be used even when the push button does not have 
  20700. any clones. 
  20701.  
  20702.  
  20703. ΓòÉΓòÉΓòÉ 151. QUEUE PROGRAM ΓòÉΓòÉΓòÉ
  20704.  
  20705. The QUEUE PROGRAM statement signals an event to an active program. The request 
  20706. is queued for execution until the program that sent the QUEUE PROGRAM has 
  20707. reached a wait state. 
  20708.  
  20709. ΓöÇΓöÇQUEUEΓöÇΓöÇPROGRAMΓöÇΓöÇprogramaliasΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  20710. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  20711.    ΓööΓöÇ,eventkeywordΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÿ
  20712.                    Γöé    <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé
  20713.                    ΓööΓöÇ(ΓöÇΓöÇΓöÇΓöÇparameterΓöÇΓö┤ΓöÇΓöÇ)ΓöÇΓöÿ
  20714.  
  20715. Examples 
  20716.  
  20717. More about QUEUE PROGRAM 
  20718.  
  20719. See also: RUN PROGRAM, START, WAIT PROGRAM 
  20720.  
  20721.  
  20722. ΓòÉΓòÉΓòÉ 151.1. Examples ΓòÉΓòÉΓòÉ
  20723.  
  20724. QUEUE PROGRAM graphs,SELECT(CURSEL)
  20725. QUEUE PROGRAM staff
  20726. QUEUE PROGRAM testrun,STOP
  20727.  
  20728. Examples source library: 
  20729.  
  20730.  
  20731. ΓòÉΓòÉΓòÉ 151.2. More about QUEUE PROGRAM ΓòÉΓòÉΓòÉ
  20732.  
  20733. o Many programs can be queued for execution at one time. Queued programs are 
  20734.   executed in first in, first out (FIFO) order. 
  20735.  
  20736. o The application does not enter a wait state until all queued events have been 
  20737.   processed. 
  20738.  
  20739. o The number of parameters passed by QUEUE PROGRAM need not match the parameter 
  20740.   list on the ON statement. NULL values are supplied as required. 
  20741.  
  20742.  
  20743. ΓòÉΓòÉΓòÉ 152. RADIANS() ΓòÉΓòÉΓòÉ
  20744.  
  20745. The RADIANS() function converts a value specified in degrees to radians. 
  20746.  
  20747. ΓöÇΓöÇRADIANS(degrees)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  20748.  
  20749. Examples 
  20750.  
  20751. See also: DEGREES() 
  20752.  
  20753.  
  20754. ΓòÉΓòÉΓòÉ 152.1. Examples ΓòÉΓòÉΓòÉ
  20755.  
  20756. x = RADIANS(57.2957795130823)  !  Result is 1
  20757. x = RADIANS(180)               !  Result is 3.141592653589793
  20758.  
  20759. Examples source library: 
  20760.  
  20761.  
  20762. ΓòÉΓòÉΓòÉ 153. RADIO ΓòÉΓòÉΓòÉ
  20763.  
  20764. The RADIO object class creates an instance of a radio button. 
  20765.  
  20766. Parent: WINDOW 
  20767.  
  20768. Attributes 
  20769.  
  20770. Actions 
  20771.  
  20772. Events 
  20773.  
  20774. Examples 
  20775.  
  20776. More about RADIO 
  20777.  
  20778.  
  20779. ΓòÉΓòÉΓòÉ 153.1. Attributes ΓòÉΓòÉΓòÉ
  20780.  
  20781. BGCOLOR               CHECKED 
  20782. CLONEDIR              CLONEGAP 
  20783. CLONES                ENABLED 
  20784. EXPRESSION            FGCOLOR 
  20785. HANDLES               HELP 
  20786. ORIGIN                SIZEX 
  20787. SIZEY                 TEXT 
  20788. VISIBLE               X 
  20789.  
  20790.  
  20791. ΓòÉΓòÉΓòÉ 153.1.1. BGCOLOR ΓòÉΓòÉΓòÉ
  20792.  
  20793. Background color. Integer in the range 1-19. See Colors and color codes for 
  20794. details of colors available. 
  20795.  
  20796. Default: System window background color 
  20797.  
  20798.  
  20799. ΓòÉΓòÉΓòÉ 153.1.2. CHECKED ΓòÉΓòÉΓòÉ
  20800.  
  20801. Clone number selected. 
  20802.  
  20803. Default: 1 
  20804.  
  20805.  
  20806. ΓòÉΓòÉΓòÉ 153.1.3. CLONEDIR ΓòÉΓòÉΓòÉ
  20807.  
  20808. Direction, relative to the original, in which the clones are laid out: 
  20809.  
  20810. 1         Down 
  20811. 2         Up 
  20812. 3         Left 
  20813. 4         Right 
  20814.  
  20815. Set on OPEN, then read-only. 
  20816.  
  20817. Default: 1 (Down) 
  20818.  
  20819.  
  20820. ΓòÉΓòÉΓòÉ 153.1.4. CLONEGAP ΓòÉΓòÉΓòÉ
  20821.  
  20822. Space between clones, in dialog box units. 
  20823.  
  20824. Set on OPEN, then read-only. 
  20825.  
  20826. Default: 0 
  20827.  
  20828.  
  20829. ΓòÉΓòÉΓòÉ 153.1.5. CLONES ΓòÉΓòÉΓòÉ
  20830.  
  20831. Number of clones. 
  20832.  
  20833. Set on OPEN, then read-only. 
  20834.  
  20835. Default: 1 
  20836.  
  20837.  
  20838. ΓòÉΓòÉΓòÉ 153.1.6. ENABLED ΓòÉΓòÉΓòÉ
  20839.  
  20840. Whether the radio button is enabled: 
  20841.  
  20842. 0         Radio button grayed out and not selectable 
  20843. 1         Radio button enabled 
  20844.  
  20845. Default: 1 (Enabled) 
  20846.  
  20847.  
  20848. ΓòÉΓòÉΓòÉ 153.1.7. EXPRESSION ΓòÉΓòÉΓòÉ
  20849.  
  20850. Pointer to a variable, the contents of which are displayed with the radio 
  20851. button. 
  20852.  
  20853. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  20854.  
  20855. Default: "" 
  20856.  
  20857.  
  20858. ΓòÉΓòÉΓòÉ 153.1.8. FGCOLOR ΓòÉΓòÉΓòÉ
  20859.  
  20860. Foreground color. Integer in the range 1-19. See Colors and color codes for 
  20861. details of colors available. 
  20862.  
  20863. Default: System window text color 
  20864.  
  20865.  
  20866. ΓòÉΓòÉΓòÉ 153.1.9. HANDLES ΓòÉΓòÉΓòÉ
  20867.  
  20868. Whether sizing handles are attached to the radio button to support moving, 
  20869. sizing, and copying operations. These direct manipulation techniques follow the 
  20870. CUA guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  20871.  
  20872. 0         Handles are not displayed 
  20873. 1         Handles are displayed 
  20874.  
  20875. Default: 0 (No handles) 
  20876.  
  20877.  
  20878. ΓòÉΓòÉΓòÉ 153.1.10. HELP ΓòÉΓòÉΓòÉ
  20879.  
  20880. Resource identifier (res ID) of the full help text for this radio button. 
  20881.  
  20882. Default: 0 
  20883.  
  20884.  
  20885. ΓòÉΓòÉΓòÉ 153.1.11. ORIGIN ΓòÉΓòÉΓòÉ
  20886.  
  20887. The corner of the enclosing window is to be taken as the origin. The position 
  20888. of the radio button is measured from this point. 
  20889.  
  20890. "TL"      Top left 
  20891. "TR"      Top right 
  20892. "BL"      Bottom left 
  20893. "BR"      Bottom right 
  20894.  
  20895. Default: "BL" (Bottom left) 
  20896.  
  20897.  
  20898. ΓòÉΓòÉΓòÉ 153.1.12. SIZEX ΓòÉΓòÉΓòÉ
  20899.  
  20900. Width, in dialog box units. 
  20901.  
  20902. Default: 0 
  20903.  
  20904.  
  20905. ΓòÉΓòÉΓòÉ 153.1.13. SIZEY ΓòÉΓòÉΓòÉ
  20906.  
  20907. Height, in dialog box units. 
  20908.  
  20909. Default: 0 
  20910.  
  20911.  
  20912. ΓòÉΓòÉΓòÉ 153.1.14. TEXT ΓòÉΓòÉΓòÉ
  20913.  
  20914. Text string to appear alongside the radio button. 
  20915.  
  20916. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  20917.  
  20918. Default: "" 
  20919.  
  20920.  
  20921. ΓòÉΓòÉΓòÉ 153.1.15. VISIBLE ΓòÉΓòÉΓòÉ
  20922.  
  20923. Whether the radio button is displayed: 
  20924.  
  20925. 0         Radio button not displayed 
  20926. 1         Radio button displayed 
  20927.  
  20928. Default: 1 (Displayed) 
  20929.  
  20930.  
  20931. ΓòÉΓòÉΓòÉ 153.1.16. X ΓòÉΓòÉΓòÉ
  20932.  
  20933. Horizontal position within the window, in dialog box units. 
  20934.  
  20935. Default: 0 
  20936.  
  20937.  
  20938. ΓòÉΓòÉΓòÉ 153.1.17. Y ΓòÉΓòÉΓòÉ
  20939.  
  20940. Vertical position within the window, in dialog units. 
  20941.  
  20942. Default: 0 
  20943.  
  20944.  
  20945. ΓòÉΓòÉΓòÉ 153.2. Actions ΓòÉΓòÉΓòÉ
  20946.  
  20947. REFRESH() 
  20948.  
  20949.  
  20950. ΓòÉΓòÉΓòÉ 153.2.1. REFRESH() ΓòÉΓòÉΓòÉ
  20951.  
  20952. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  20953.  
  20954. Forces repainting of the radio button on screen. 
  20955.  
  20956.  
  20957. ΓòÉΓòÉΓòÉ 153.3. Events ΓòÉΓòÉΓòÉ
  20958.  
  20959. DESKTOP            SELECT 
  20960.  
  20961.  
  20962. ΓòÉΓòÉΓòÉ 153.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  20963.  
  20964. Signaled when the radio button is moved, sized, or copied. A.System.Operation 
  20965. is set to "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the 
  20966. control. 
  20967.  
  20968.  
  20969. ΓòÉΓòÉΓòÉ 153.3.2. SELECT ΓòÉΓòÉΓòÉ
  20970.  
  20971. Signals the ON SELECT block. A.System.Object is set to the name of the radio 
  20972. button. A.System.Boxnumber is set to the number of the clone selected. 
  20973.  
  20974.  
  20975. ΓòÉΓòÉΓòÉ 153.4. Examples ΓòÉΓòÉΓòÉ
  20976.  
  20977. !
  20978. ! Sample of the RADIO object.
  20979. ! This sample demonstrates both how to open the control and also
  20980. ! how to select an individual item and how to gray an item.
  20981. !
  20982. PROCEDURE RADIO
  20983. DO
  20984.   OPEN RADIO Radio1,SampWind,
  20985.    X     = 70, Y     = 150,         ! position on window
  20986.    SIZEX = 70, SIZEY = 12,          ! size
  20987.    EXPRESSION = 'days[1]',          ! vector to use as display text
  20988.    CLONES = 5,                      ! number of radio buttons
  20989.    CLONEDIR = 1,                    ! direction 1=down (default)
  20990.    clonegap = 5                     ! space between buttons
  20991.   !
  20992.   ! since only one radio button of a set may be checked, the
  20993.   ! syntax implies this by setting check at the zero clone level
  20994.   LET Radio1[0]'CHECKED = 4
  20995.   !
  20996.   ! more than on radio button may, however, be gray. You therefore
  20997.   ! set this at the individual clone level
  20998.   LET Radio1[3]'ENABLED = 0         ! disable (gray) the third button
  20999. END
  21000.  
  21001. Examples source library: 
  21002.  
  21003.  
  21004. ΓòÉΓòÉΓòÉ 153.5. More about RADIO ΓòÉΓòÉΓòÉ
  21005.  
  21006. o The following attributes can only be modified for the entire clone set, not 
  21007.   for the individual clones: 
  21008.  
  21009.    BGCOLOR 
  21010.    CHECKED 
  21011.    CLONEDIR 
  21012.    CLONEGAP 
  21013.    FGCOLOR 
  21014.    HANDLES 
  21015.    VISIBLE 
  21016.  
  21017. o RADIO is only really useful as a cloned set, a CHECKBOX should be used in 
  21018.   preference to a single RADIO button. 
  21019.  
  21020.  
  21021. ΓòÉΓòÉΓòÉ 154. RANDOM() ΓòÉΓòÉΓòÉ
  21022.  
  21023. The RANDOM() function returns a pseudo-random positive number. 
  21024.  
  21025.             ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÉ   ΓöîΓöÇ999ΓöÇΓöÉ
  21026. ΓöÇΓöÇRANDOM(ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21027.             ΓööΓöÇminΓöÇΓöÿ   ΓööΓöÇmaxΓöÇΓöÿ   ΓööΓöÇseedΓöÇΓöÿ
  21028.  
  21029. Examples 
  21030.  
  21031. More about RANDOM() 
  21032.  
  21033.  
  21034. ΓòÉΓòÉΓòÉ 154.1. Examples ΓòÉΓòÉΓòÉ
  21035.  
  21036. x = RANDOM()
  21037. x = RANDOM(78,94)
  21038. x = RANDOM(,,645)
  21039.  
  21040. Examples source library: 
  21041.  
  21042.  
  21043. ΓòÉΓòÉΓòÉ 154.2. More about RANDOM() ΓòÉΓòÉΓòÉ
  21044.  
  21045. o The range for seed is 0 to 65535. Negative numbers are not accepted. 
  21046.  
  21047. o To get a predictable sequence of pseudo-random numbers, use RANDOM() several 
  21048.   times but only specify seed on the first. 
  21049.  
  21050. o The number generator is global for a task.  The current seed is saved for 
  21051.   each task. 
  21052.  
  21053.  
  21054. ΓòÉΓòÉΓòÉ 155. RECTANGLE ΓòÉΓòÉΓòÉ
  21055.  
  21056. The RECTANGLE graphics primitive object class creates an instance of a 
  21057. rectangle. 
  21058.  
  21059. Parent: DEFINE 
  21060.  
  21061. Attributes 
  21062.  
  21063. Actions: None. 
  21064.  
  21065. Events: None. 
  21066.  
  21067. Examples 
  21068.  
  21069.  
  21070. ΓòÉΓòÉΓòÉ 155.1. Attributes ΓòÉΓòÉΓòÉ
  21071.  
  21072. REFERENCE 
  21073.  
  21074. The following standard graphics attributes are also available. They are 
  21075. described in Standard graphics attributes 
  21076.  
  21077. BOUNDED                FILLCOLOR 
  21078. LINEWIDTH              SELECTED 
  21079. COLOR                  FILLPATTERN 
  21080. MIX                    VISIBLE 
  21081. CONSTANT               LINESTYLE 
  21082. SELECTABLE 
  21083.  
  21084.  
  21085. ΓòÉΓòÉΓòÉ 155.1.1. REFERENCE ΓòÉΓòÉΓòÉ
  21086.  
  21087. Vector defining the rectangle. This vector consists of the following elements: 
  21088.  
  21089. 1         X coordinate of the bottom left corner of the rectangle 
  21090. 2         Y coordinate of the bottom left corner of the rectangle 
  21091. 3         X coordinate of the top right corner of the rectangle 
  21092. 4         Y coordinate of the top right corner of the rectangle 
  21093.  
  21094. All coordinates are in world coordinate units. 
  21095.  
  21096. Set on OPEN, then read-only. 
  21097.  
  21098. Default: "" 
  21099.  
  21100.  
  21101. ΓòÉΓòÉΓòÉ 155.2. Examples ΓòÉΓòÉΓòÉ
  21102.  
  21103. !
  21104. ! Example of graphic RECTANGLE object
  21105. !
  21106. PROCEDURE RECTANGLE
  21107. DO
  21108.   DEFINE rectarr[4]               ! Array defining rectangle
  21109.   LET rectarr[1]=20               ! x coord, bottom left corner
  21110.   LET rectarr[2]=40               ! y coord, bottom left corner
  21111.   LET rectarr[3]=400              ! x coord, top right corner
  21112.   LET rectarr[4]=200              ! y coord, top right corner
  21113.   OPEN RECTANGLE Rectangle, Def1,
  21114.    REFERENCE         =rectarr[0], ! Array for corners
  21115.    COLOR             =6,          ! body color (red)
  21116.    FILLCOLOR         =7,          ! Fill Color
  21117.    FILLPATTERN       =9,          ! Pattern (vertical bar)
  21118.    LINESTYLE         =1,          ! Border style
  21119.    LINEWIDTH         =5           ! Border width
  21120. END
  21121.  
  21122. Examples source library: 
  21123.  
  21124.  
  21125. ΓòÉΓòÉΓòÉ 156. REFERENCE ΓòÉΓòÉΓòÉ
  21126.  
  21127. The REFERENCE object may be used to convey reference information for data 
  21128. between programs. 
  21129.  
  21130. Attributes 
  21131.  
  21132. Actions 
  21133.  
  21134. Events: None. 
  21135.  
  21136. Examples 
  21137.  
  21138. See also: DDECLIENT, DDESERVER, STREAM, SOURCECTRL, TARGETCTRL, LINK 
  21139.  
  21140.  
  21141. ΓòÉΓòÉΓòÉ 156.1. Attributes ΓòÉΓòÉΓòÉ
  21142.  
  21143. ERASE                   SOURCETYPE 
  21144. APPLICATION             TOPIC 
  21145. ITEM                    LOCATION 
  21146. NAME                    TEMPLOCATION 
  21147. TEMPNAME 
  21148.  
  21149.  
  21150. ΓòÉΓòÉΓòÉ 156.1.1. ERASE ΓòÉΓòÉΓòÉ
  21151.  
  21152. If ERASE is 1 (true), then the target application should erase the referenced 
  21153. information when it has finished with it. 
  21154.  
  21155. Default: 0 (False). Can be set on OPEN, then read-only. 
  21156.  
  21157.  
  21158. ΓòÉΓòÉΓòÉ 156.1.2. SOURCETYPE ΓòÉΓòÉΓòÉ
  21159.  
  21160. It is used to qualify the source of data being referenced, indicating which 
  21161. attributes carry the salient reference information. It must have one of the 
  21162. following values: 
  21163.  
  21164. DDE       indicating that this is a DDE reference, and that the APPLICATION, 
  21165.           TOPIC, and ITEM attributes should be used. 
  21166.  
  21167. FILE      indicating that this is a file reference, and that the LOCATION and 
  21168.           NAME attributes should be used. 
  21169.  
  21170.  
  21171. ΓòÉΓòÉΓòÉ 156.1.3. APPLICATION ΓòÉΓòÉΓòÉ
  21172.  
  21173. It is a string representing the name of a server application or object class. 
  21174. Its value may be used to set the APPLICATION attribute of a DDECLIENT object 
  21175. when attempting to establish a DDE conversation with the server. 
  21176.  
  21177.  
  21178. ΓòÉΓòÉΓòÉ 156.1.4. TOPIC ΓòÉΓòÉΓòÉ
  21179.  
  21180. It is a string representing the topic of conversation, or instance name, of the 
  21181. server. Its value may be used to set the TOPIC attribute of a DDECLIENT object 
  21182. when attempting to establish a DDE conversation with the server. 
  21183.  
  21184.  
  21185. ΓòÉΓòÉΓòÉ 156.1.5. ITEM ΓòÉΓòÉΓòÉ
  21186.  
  21187. It is a string representing a server defined item that will be rendered on 
  21188. request. Its value may be used as the first argument to a REQUEST, ADVISE or 
  21189. UNADVISE action on a DDECLIENT object when conversion with the server via DDE. 
  21190.  
  21191.  
  21192. ΓòÉΓòÉΓòÉ 156.1.6. LOCATION ΓòÉΓòÉΓòÉ
  21193.  
  21194. It is a string representing the fully qualified Drive:Directory or 
  21195. \\Domain\Resource\ name of a file holding data of interest. 
  21196.  
  21197.  
  21198. ΓòÉΓòÉΓòÉ 156.1.7. NAME ΓòÉΓòÉΓòÉ
  21199.  
  21200. This attribute is a string representing the fully qualified name of a file 
  21201. holding data of interest. 
  21202.  
  21203.  
  21204. ΓòÉΓòÉΓòÉ 156.1.8. TEMPLOCATION ΓòÉΓòÉΓòÉ
  21205.  
  21206. This attribute is a string representing the fully qualified Drive:Directory or 
  21207. \\Domain\Resource\ name of a temporary file holding data. (The permanent copy 
  21208. of the data is referenced by the LOCATION and NAME attributes.) 
  21209.  
  21210.  
  21211. ΓòÉΓòÉΓòÉ 156.1.9. TEMPNAME ΓòÉΓòÉΓòÉ
  21212.  
  21213. This attribute is a string representing the fully qualified name of a temporary 
  21214. file holding data. (The permanent copy of the data is referenced by the 
  21215. LOCATION and NAME attributes.) 
  21216.  
  21217.  
  21218. ΓòÉΓòÉΓòÉ 156.2. Actions ΓòÉΓòÉΓòÉ
  21219.  
  21220. SAVE()            LOAD() 
  21221.  
  21222.  
  21223. ΓòÉΓòÉΓòÉ 156.2.1. SAVE() ΓòÉΓòÉΓòÉ
  21224.  
  21225. ΓöÇΓöÇSAVE(pObject)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21226.  
  21227. This action is used by the application to save information from the REFERENCE 
  21228. object. pObject must be a pointer to an object with STREAM behavior. 
  21229.  
  21230.  
  21231. ΓòÉΓòÉΓòÉ 156.2.2. LOAD() ΓòÉΓòÉΓòÉ
  21232.  
  21233. ΓöÇΓöÇLOAD(pObject)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21234.  
  21235. This action is used by the application to load information into the REFERENCE 
  21236. object. pObject must be a pointer either to a STREAM object provided through ON 
  21237. TARGET, or to the handle to a CLIPBOARD object where CF_LINK data is available 
  21238. on the system clipboard. 
  21239.  
  21240.  
  21241. ΓòÉΓòÉΓòÉ 156.3. Examples ΓòÉΓòÉΓòÉ
  21242.  
  21243. See DRAGDROP.PGM in the Development Samples folder for more details. 
  21244.  
  21245. Examples source library: 
  21246.  
  21247.  
  21248. ΓòÉΓòÉΓòÉ 157. RENAME ΓòÉΓòÉΓòÉ
  21249.  
  21250. The RENAME statement changes the name of a variable. 
  21251.  
  21252. ΓöÇΓöÇRENAMEΓöÇΓöÇoldname,newnameΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21253.  
  21254. Examples 
  21255.  
  21256. More about RENAME 
  21257.  
  21258. See also: CLEAR, COPY 
  21259.  
  21260.  
  21261. ΓòÉΓòÉΓòÉ 157.1. Examples ΓòÉΓòÉΓòÉ
  21262.  
  21263. RENAME Profile.Password,Profile.LastPassWord
  21264. RENAME XCoord,YCoord
  21265.  
  21266. Examples source library: 
  21267.  
  21268.  
  21269. ΓòÉΓòÉΓòÉ 157.2. More about RENAME ΓòÉΓòÉΓòÉ
  21270.  
  21271. o If the variable referenced by newname already exists, the variable must be 
  21272.   clear. 
  21273.  
  21274. o RENAME cannot be used with declared variables. 
  21275.  
  21276.  
  21277. ΓòÉΓòÉΓòÉ 158. REPLACEGLOBAL() ΓòÉΓòÉΓòÉ
  21278.  
  21279. The REPLACEGLOBAL() function replaces parts of a string with global values. 
  21280.  
  21281.                           ΓöîΓöÇ"@"ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  21282. ΓöÇΓöÇREPLACEGLOBAL(string,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21283.                           ΓööΓöÇtriggerΓöÇΓöÿ
  21284.  
  21285. Examples 
  21286.  
  21287. More about REPLACEGLOBAL() 
  21288.  
  21289. See also: EXTRACTGLOBAL(), GLOBAL() 
  21290.  
  21291.  
  21292. ΓòÉΓòÉΓòÉ 158.1. Examples ΓòÉΓòÉΓòÉ
  21293.  
  21294. rc = GLOBAL("Month","May")
  21295. rc = GLOBAL("Year",1993)
  21296. rc = REPLACEGLOBAL("It is @Month @Year")
  21297. ! It is May 1993
  21298. rc = REPLACEGLOBAL("It is @@Month")
  21299. ! It is @Month
  21300. rc = REPLACEGLOBAL("It is @Month@Year")
  21301. ! It is May1993
  21302. rc = REPLACEGLOBAL("It is @Month@@Year")
  21303. ! It is May@Year
  21304. rc = REPLACEGLOBAL("It is @Month &Year", "@&")
  21305. ! It is May 1993)
  21306.  
  21307. Examples source library: 
  21308.  
  21309.  
  21310. ΓòÉΓòÉΓòÉ 158.2. More about REPLACEGLOBAL() ΓòÉΓòÉΓòÉ
  21311.  
  21312. o If the characters following a trigger do not correspond to the name of a 
  21313.   global value, no replacement is done. 
  21314.  
  21315. o The name stops at the first blank or other separator. 
  21316.  
  21317. o The sequence @@ will produce a single @. 
  21318.  
  21319.  
  21320. ΓòÉΓòÉΓòÉ 159. RETURN ΓòÉΓòÉΓòÉ
  21321.  
  21322. The RETURN statement is used to end a procedure or event block and, optionally, 
  21323. to return a value. 
  21324.  
  21325. ΓöÇΓöÇRETURNΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21326.             ΓööΓöÇexpressionΓöÇΓöÿ
  21327.  
  21328. Examples 
  21329.  
  21330. More about RETURN 
  21331.  
  21332. See also: CALL, LEAVE, ON, PROCEDURE, TERMINATE 
  21333.  
  21334.  
  21335. ΓòÉΓòÉΓòÉ 159.1. Examples ΓòÉΓòÉΓòÉ
  21336.  
  21337. PROCEDURE FindFree(pArray)
  21338. DO
  21339.   DECLARE POINTER pArray
  21340.   DECLARE NUMERIC i
  21341.   DO i = 1 : (?pArray)[0]'ENTRIES
  21342.     IF NULL( (?pArray)[i] )
  21343.     THEN RETURN i
  21344.   END
  21345.   RETURN "Not found"
  21346. END
  21347.  
  21348. Examples source library: 
  21349.  
  21350.  
  21351. ΓòÉΓòÉΓòÉ 159.2. More about RETURN ΓòÉΓòÉΓòÉ
  21352.  
  21353. o When a procedure is invoked as a function, the returned value is the value of 
  21354.   the function reference.  If no RETURN is executed, a value of type NULL is 
  21355.   returned. 
  21356.  
  21357. o When a procedure is invoked using CALL, any returned value is ignored. 
  21358.  
  21359. o RETURN returns control immediately to the program or event which called the 
  21360.   procedure. 
  21361.  
  21362. o RETURN can also be used in an ON block to end execution of the block. 
  21363.  
  21364.  
  21365. ΓòÉΓòÉΓòÉ 160. RETYPE() ΓòÉΓòÉΓòÉ
  21366.  
  21367. The RETYPE() function returns a value with the data type of a named variable. 
  21368.  
  21369. ΓöÇΓöÇRETYPE(expression,variable)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21370.  
  21371. Examples 
  21372.  
  21373. More about RETYPE() 
  21374.  
  21375.  
  21376. ΓòÉΓòÉΓòÉ 160.1. Examples ΓòÉΓòÉΓòÉ
  21377.  
  21378. LET result=RETYPE(value,date)
  21379.  
  21380. Examples source library: 
  21381.  
  21382.  
  21383. ΓòÉΓòÉΓòÉ 160.2. More about RETYPE() ΓòÉΓòÉΓòÉ
  21384.  
  21385. o RETYPE() uses the data type of variable, and, where appropriate, uses its 
  21386.   format. 
  21387.  
  21388. o If the conversion fails, the returned value has the same data type as 
  21389.   expression. 
  21390.  
  21391.  
  21392. ΓòÉΓòÉΓòÉ 161. RMVSOSI() ΓòÉΓòÉΓòÉ
  21393.  
  21394. The RMVSOSI() function removes Shift Out (SO) and Shift In (SI) control codes 
  21395. at the boundaries of groups of DBCS characters in a string. 
  21396.  
  21397. ΓöÇΓöÇRMVSOSI(string)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21398.  
  21399. Examples 
  21400.  
  21401. More about RMVSOSI() 
  21402.  
  21403. See also: INSSOSI() 
  21404.  
  21405.  
  21406. ΓòÉΓòÉΓòÉ 161.1. Examples ΓòÉΓòÉΓòÉ
  21407.  
  21408. In this example, s represents a single-byte character, D1, D2, and D3 repres 
  21409. double-byte characters, > represents the SO control code, and  < represents SI. 
  21410.  
  21411. LET string = "ssss>D1D2D3<ssss"
  21412. LET result = RMVSOSI(string)
  21413.  
  21414. The string result contains "ssssD1D2D3ssss". 
  21415.  
  21416. Examples source library: 
  21417.  
  21418.  
  21419. ΓòÉΓòÉΓòÉ 161.2. More about RMVSOSI() ΓòÉΓòÉΓòÉ
  21420.  
  21421. o The result of this function is always a string of type CHARACTER. 
  21422.  
  21423. o The code points for the SO and SI control codes are X'0E' and X'0F'. 
  21424.  
  21425. o This function can be used for creating a PC file from an IXF file received 
  21426.   from the host environment by the OS/2 Communications Manager. 
  21427.  
  21428.  
  21429. ΓòÉΓòÉΓòÉ 162. ROW() ΓòÉΓòÉΓòÉ
  21430.  
  21431. The ROW() function returns the relative position of a row within a table. ROW() 
  21432. locates rows using key-column values. 
  21433.  
  21434.                    ΓöîΓöÇ"="ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  21435. ΓöÇΓöÇROW(reference,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21436.                    ΓööΓöÇconditionΓöÇΓöÿ
  21437.  
  21438. Examples 
  21439.  
  21440.  
  21441. ΓòÉΓòÉΓòÉ 162.1. Examples ΓòÉΓòÉΓòÉ
  21442.  
  21443. LET x=ROW(employee.name{"Smith"})
  21444. IF ROW(employee.name{"Smith"}) = 0
  21445. LET position = ROW(pf.forename{updatename,updateno},">=")
  21446.  
  21447. Examples source library: 
  21448.  
  21449.  
  21450. ΓòÉΓòÉΓòÉ 163. RUN PROGRAM ΓòÉΓòÉΓòÉ
  21451.  
  21452. The RUN PROGRAM statement signals an event to the requested program 
  21453. immediately. After the program being run has reached a wait state, the 
  21454. initiating program continues at the next statement. 
  21455.  
  21456. ΓöÇΓöÇRUNΓöÇΓöÇPROGRAMΓöÇΓöÇprogramaliasΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21457. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21458.    ΓööΓöÇ,eventkeywordΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÿ
  21459.                    Γöé    <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ    Γöé
  21460.                    ΓööΓöÇ(ΓöÇΓöÇΓöÇΓöÇparameterΓöÇΓö┤ΓöÇΓöÇ)ΓöÇΓöÿ
  21461.  
  21462. Examples 
  21463.  
  21464. More about RUN PROGRAM 
  21465.  
  21466. See also: QUEUE PROGRAM, START, WAIT PROGRAM 
  21467.  
  21468.  
  21469. ΓòÉΓòÉΓòÉ 163.1. Examples ΓòÉΓòÉΓòÉ
  21470.  
  21471. RUN PROGRAM graphs, ENTER
  21472. RUN PROGRAM testrun, STOP(0)
  21473.  
  21474. Examples source library: 
  21475.  
  21476.  
  21477. ΓòÉΓòÉΓòÉ 163.2. More about RUN PROGRAM ΓòÉΓòÉΓòÉ
  21478.  
  21479. o RUN PROGRAM causes the immediate execution of the specified program. This 
  21480.   contrasts with the QUEUE PROGRAM statement, which places the program in a 
  21481.   queue for later execution. 
  21482.  
  21483. o The number of parameters passed by RUN PROGRAM need not match the parameter 
  21484.   list on the ON statement. NULL values are supplied as required. 
  21485.  
  21486.  
  21487. ΓòÉΓòÉΓòÉ 164. SCAN() ΓòÉΓòÉΓòÉ
  21488.  
  21489. The SCAN() function scans for the presence or absence of one or more specified 
  21490. characters in a character string. 
  21491.  
  21492.                                    ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ                 ΓöîΓöÇ"="ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  21493. ΓöÇΓöÇSCAN(expression1,expression2,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇ
  21494.                                    ΓööΓöÇstartΓöÇΓöÿ     ΓööΓöÇendΓöÇΓöÿ     ΓööΓöÇcompareΓöÇΓöÿ
  21495.       ΓöîΓöÇ"*"ΓöÇΓöÇΓöÉ
  21496. ΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21497.       ΓööΓöÇtypeΓöÇΓöÿ
  21498.  
  21499. Examples 
  21500.  
  21501. More about SCAN() 
  21502.  
  21503. See also: CSCAN() 
  21504.  
  21505.  
  21506. ΓòÉΓòÉΓòÉ 164.1. Examples ΓòÉΓòÉΓòÉ
  21507.  
  21508. String = "The cat sat on the mat"
  21509. x = SCAN(String,"cat")                      !  Result is 5
  21510. x = SCAN(String,"at",7)                     !  Result is 10
  21511. x = SCAN(String,"cat",7)                    !  Result is 0
  21512. x = SCAN(String,"The",2,,"==")              !  Result is 0
  21513. x = SCAN(String,"The",,,"==")               !  Result is 1
  21514. x = SCAN(String,"pqrs",,,,"1")              !  Result is 9
  21515.  
  21516. x = SCAN("abcabcabcabcdabc","abc",,,"\=")   !  Result is 13
  21517.  
  21518. x = SCAN("1 3 3 4 4","3", "25", 1) !  Result is 5
  21519.          ! backscan, last 3 is at position 5 relative to left end
  21520.  
  21521. Examples source library: 
  21522.  
  21523.  
  21524. ΓòÉΓòÉΓòÉ 164.2. More about SCAN() ΓòÉΓòÉΓòÉ
  21525.  
  21526. o The position returned is always relative to the start (left end) of 
  21527.   expression1. 
  21528.  
  21529. o If start is beyond the position of the last character of expression1, start 
  21530.   is assigned the position of that last character. 
  21531.  
  21532. o If the start position is greater than the end position, then a backscan is 
  21533.   performed. 
  21534.  
  21535. o If the string expression2 is not found, SCAN() returns a result of 0. 
  21536.  
  21537. o In a DBCS environment, if start is at a DBCS second byte, the scan starts 
  21538.   from the next character in the string. If end is at a DBCS first byte, the 
  21539.   scan ends at the previous character in the string. 
  21540.  
  21541.  
  21542. ΓòÉΓòÉΓòÉ 165. SCROLL ΓòÉΓòÉΓòÉ
  21543.  
  21544. The SCROLL object class provides an instance of a scroll bar. 
  21545.  
  21546. Parent: WINDOW 
  21547.  
  21548. Attributes 
  21549.  
  21550. Actions 
  21551.  
  21552. Events 
  21553.  
  21554. Examples 
  21555.  
  21556. More about SCROLL 
  21557.  
  21558.  
  21559. ΓòÉΓòÉΓòÉ 165.1. Attributes ΓòÉΓòÉΓòÉ
  21560.  
  21561. DIRECTION             ENABLED 
  21562. HANDLES               HELP 
  21563. ORIGIN                RANGESTART 
  21564. RANGEEND              SIZEX 
  21565. SIZEY                 SLIDERPOS 
  21566. THUMBSIZE             VISIBLE 
  21567. X                     Y 
  21568.  
  21569.  
  21570. ΓòÉΓòÉΓòÉ 165.1.1. DIRECTION ΓòÉΓòÉΓòÉ
  21571.  
  21572. Scroll bar vertical or horizontal: 
  21573.  
  21574. 0         Vertical 
  21575. 1         Horizontal 
  21576.  
  21577. Set on OPEN, then read-only. 
  21578.  
  21579. Default: 0 (Vertical) 
  21580.  
  21581.  
  21582. ΓòÉΓòÉΓòÉ 165.1.2. ENABLED ΓòÉΓòÉΓòÉ
  21583.  
  21584. Whether the scroll bar is enabled: 
  21585.  
  21586. 0         Scroll bar grayed out 
  21587. 1         Scroll bar enabled 
  21588.  
  21589. Default: 1 (Enabled) 
  21590.  
  21591.  
  21592. ΓòÉΓòÉΓòÉ 165.1.3. HANDLES ΓòÉΓòÉΓòÉ
  21593.  
  21594. Whether sizing handles are attached to the scroll bar to support moving, 
  21595. sizing, and copying operations. These direct manipulation techniques follow the 
  21596. CUA guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  21597.  
  21598. 0         Handles are not displayed 
  21599. 1         Handles are displayed 
  21600.  
  21601. Default: 0 (No handles) 
  21602.  
  21603.  
  21604. ΓòÉΓòÉΓòÉ 165.1.4. HELP ΓòÉΓòÉΓòÉ
  21605.  
  21606. Resource identifier (res ID) of the full help text for this scroll bar. 
  21607.  
  21608. Default: 0 
  21609.  
  21610.  
  21611. ΓòÉΓòÉΓòÉ 165.1.5. ORIGIN ΓòÉΓòÉΓòÉ
  21612.  
  21613. The corner of the enclosing window to be taken as the origin. The position of 
  21614. the scroll bar is measured from this point. 
  21615.  
  21616. "TL"      Top left 
  21617. "TR"      Top right 
  21618. "BL"      Bottom left 
  21619. "BR"      Bottom right 
  21620.  
  21621. Default: "BL" (Bottom left) 
  21622.  
  21623.  
  21624. ΓòÉΓòÉΓòÉ 165.1.6. RANGESTART ΓòÉΓòÉΓòÉ
  21625.  
  21626. Start of associated range (not less than 1). 
  21627.  
  21628. Default: 1 
  21629.  
  21630.  
  21631. ΓòÉΓòÉΓòÉ 165.1.7. RANGEEND ΓòÉΓòÉΓòÉ
  21632.  
  21633. End of associated range (not greater than 32767). 
  21634.  
  21635. Default: 100 
  21636.  
  21637.  
  21638. ΓòÉΓòÉΓòÉ 165.1.8. SIZEX ΓòÉΓòÉΓòÉ
  21639.  
  21640. Width, in dialog box units. 
  21641.  
  21642. Default: 0 
  21643.  
  21644.  
  21645. ΓòÉΓòÉΓòÉ 165.1.9. SIZEY ΓòÉΓòÉΓòÉ
  21646.  
  21647. Height, in dialog box units. 
  21648.  
  21649. Default: 0 
  21650.  
  21651.  
  21652. ΓòÉΓòÉΓòÉ 165.1.10. SLIDERPOS ΓòÉΓòÉΓòÉ
  21653.  
  21654. Position of scroll bar within the range (otherwise ignored). 
  21655.  
  21656. Default: 1 
  21657.  
  21658.  
  21659. ΓòÉΓòÉΓòÉ 165.1.11. THUMBSIZE ΓòÉΓòÉΓòÉ
  21660.  
  21661. Size of scroll bar slider as a proportion of the scroll range. 
  21662.  
  21663. Default: Minimum slider size 
  21664.  
  21665.  
  21666. ΓòÉΓòÉΓòÉ 165.1.12. VISIBLE ΓòÉΓòÉΓòÉ
  21667.  
  21668. Whether the scroll bar is displayed: 
  21669.  
  21670. 0         Scroll bar not displayed 
  21671. 1         Scroll bar displayed 
  21672.  
  21673. Default: 1 (Displayed) 
  21674.  
  21675.  
  21676. ΓòÉΓòÉΓòÉ 165.1.13. X ΓòÉΓòÉΓòÉ
  21677.  
  21678. Horizontal position within the window, in dialog box units. 
  21679.  
  21680. Default: 0 
  21681.  
  21682.  
  21683. ΓòÉΓòÉΓòÉ 165.1.14. Y ΓòÉΓòÉΓòÉ
  21684.  
  21685. Vertical position within the window, in dialog box units. 
  21686.  
  21687. Default: 0 
  21688.  
  21689.  
  21690. ΓòÉΓòÉΓòÉ 165.2. Actions ΓòÉΓòÉΓòÉ
  21691.  
  21692. REFRESH() 
  21693.  
  21694.  
  21695. ΓòÉΓòÉΓòÉ 165.2.1. REFRESH() ΓòÉΓòÉΓòÉ
  21696.  
  21697. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21698.  
  21699. Forces repainting of the scroll bar on screen. 
  21700.  
  21701.  
  21702. ΓòÉΓòÉΓòÉ 165.3. Events ΓòÉΓòÉΓòÉ
  21703.  
  21704. DESKTOP            SCROLL 
  21705.  
  21706.  
  21707. ΓòÉΓòÉΓòÉ 165.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  21708.  
  21709. Signaled when the scroll bar is moved, sized, or copied. A.System.Operation is 
  21710. set to "MOVE", "SIZE", or "COPY". A.System.Object is a pointer to the control. 
  21711.  
  21712.  
  21713. ΓòÉΓòÉΓòÉ 165.3.2. SCROLL ΓòÉΓòÉΓòÉ
  21714.  
  21715. Signaled when slider position is moved and mouse button 1 is released or when 
  21716. the PgDn or PgUp keys are pressed. 
  21717.  
  21718. A.System.Object is a pointer to the scroll bar, and A.System.Scroll is set to 
  21719. the type of scroll ( "L", "R", "U", "D", "H", or "V"). A.System.ScrollAmt will 
  21720. be set to 1, 0, or a value in the range for the scroll bar. 
  21721.  
  21722. If the end user selects on the arrow of the scroll bar, then A.System.ScrollAmt 
  21723. will be set to 0 and A.System.Scroll will be set to "L" or "R" for a horizontal 
  21724. scroll bar or "U" or "D" for a vertical scroll bar. 
  21725.  
  21726. If the end user selects on the shaft of the scroll bar on either side of the 
  21727. slider, then A.System.ScrollAmt will be set to 1 and A.System.Scroll will be 
  21728. set to "L" or "R" for a horizontal scroll bar or "U" or "D" for a vertical 
  21729. scroll bar. 
  21730.  
  21731. If the end user selects and drags the slider, then A.System.ScrollAmt will be 
  21732. set to the position in the range and A.System.Scroll will be set to "H" for a 
  21733. horizontal scroll bar or "V" for a vertical scroll bar. 
  21734.  
  21735.  
  21736. ΓòÉΓòÉΓòÉ 165.4. Examples ΓòÉΓòÉΓòÉ
  21737.  
  21738. ! Procedure to open sample scroll controls.
  21739. PROCEDURE SCROLL
  21740. DO
  21741.   OPEN SCROLL scroll1, Win,
  21742.    X         = 10   ,   Y    = 40 ,
  21743.    SizeX     = 80   ,
  21744.    SizeY     = 10   ,
  21745.    !
  21746.    ! the following attributes are optional
  21747.    Visible    = 1   ,              ! (default)
  21748.    Enabled    = 1   ,              ! (default)
  21749.    Direction  = 1   ,              ! horizontal (default)
  21750.    !
  21751.    ! "RangeStart" and "RangeEnd" define the granularity of the
  21752.    ! control
  21753.    RangeStart = 1   ,
  21754.    RangeEnd   = 100 ,
  21755.    ! position of slider in control
  21756.    SliderPos  = 50  ,
  21757.    ThumbSize  = 25
  21758.  
  21759.   ! open a second scroll control, this time placed horizontally
  21760.   !
  21761.   OPEN SCROLL scroll2, Win,
  21762.    X = 10, Y = 20 ,
  21763.    SizeX      = 10   ,
  21764.    SizeY      = 80   ,
  21765.    Direction  = 0    ,             ! vertical
  21766.    RangeStart = 1    ,
  21767.    RangeEnd   = 100  ,
  21768.    SliderPos  = 250  ,
  21769.    ThumbSize  = 25
  21770. END
  21771.  
  21772. Examples source library: 
  21773.  
  21774.  
  21775. ΓòÉΓòÉΓòÉ 165.5. More about SCROLL ΓòÉΓòÉΓòÉ
  21776.  
  21777. o The SCROLL object cannot be cloned. 
  21778.  
  21779. o Scroll bars on LIST boxes are handled automatically if present. 
  21780.  
  21781. o Scroll bars can be added to entire windows when the WINDOW object is OPENed. 
  21782.  
  21783.  
  21784. ΓòÉΓòÉΓòÉ 166. SECTOR ΓòÉΓòÉΓòÉ
  21785.  
  21786. The SECTOR graphics primitive object class creates an instance of a sector of a 
  21787. circle. 
  21788.  
  21789. Parent: DEFINE 
  21790.  
  21791. Attributes 
  21792.  
  21793. Actions: None. 
  21794.  
  21795. Events: None. 
  21796.  
  21797.  
  21798. ΓòÉΓòÉΓòÉ 166.1. Attributes ΓòÉΓòÉΓòÉ
  21799.  
  21800. REFERENCE              TILT 
  21801.  
  21802. The following standard graphics attributes are also available. They are 
  21803. described in Standard graphics attributes: 
  21804.  
  21805. BOUNDED                FILLCOLOR 
  21806. LINEWIDTH              SELECTED 
  21807. COLOR                  FILLPATTERN 
  21808. MIX                    VISIBLE 
  21809. CONSTANT               LINESTYLE 
  21810. SELECTABLE 
  21811.  
  21812.  
  21813. ΓòÉΓòÉΓòÉ 166.1.1. REFERENCE ΓòÉΓòÉΓòÉ
  21814.  
  21815. Vector defining the sector. This vector consists of the following elements: 
  21816.  
  21817. 1         X coordinate of the center of the circle 
  21818. 2         Y coordinate of the center of the circle 
  21819. 3         X radius of the circle 
  21820. 4         Y radius of the circle 
  21821. 5         Angle (in degrees) subtended by the sector at the center of the 
  21822.           circle. Measured counterclockwise from the start position angle. 
  21823. 6         Angle (in degrees) of the start position of the sector, measured 
  21824.           counterclockwise from the horizontal X axis. 
  21825.  
  21826. All coordinates are in world coordinate units. 
  21827.  
  21828. Set on OPEN, then read-only. 
  21829.  
  21830. Default: "" 
  21831.  
  21832.  
  21833. ΓòÉΓòÉΓòÉ 166.1.2. TILT ΓòÉΓòÉΓòÉ
  21834.  
  21835. Angle at which the sector is tilted. The angle of tilt is specified in degrees 
  21836. and is measured counterclockwise from the horizontal. 
  21837.  
  21838. Default: 0 (No tilt) 
  21839.  
  21840.  
  21841. ΓòÉΓòÉΓòÉ 167. SEND ΓòÉΓòÉΓòÉ
  21842.  
  21843. The SEND object class may be used to send data in a chosen format to a 
  21844. specified location. 
  21845.  
  21846. Attributes 
  21847.  
  21848. Actions 
  21849.  
  21850. Events 
  21851.  
  21852.  
  21853. ΓòÉΓòÉΓòÉ 167.1. Attributes ΓòÉΓòÉΓòÉ
  21854.  
  21855. OBJECTNAME             OWNERWINDOW 
  21856. VISIBLE                HELP 
  21857. FORMATS                IDENTIFIER 
  21858.  
  21859.  
  21860. ΓòÉΓòÉΓòÉ 167.1.1. OBJECTNAME ΓòÉΓòÉΓòÉ
  21861.  
  21862. If specified, OBJECTNAME must be a character string of up to 255 bytes. This 
  21863. string is used to construct the window title of the dialog. If it is not set, 
  21864. the dialog title is not modified and remains as Send 
  21865.  
  21866. Set on OPEN, then read-only. 
  21867.  
  21868. Default: None 
  21869.  
  21870.  
  21871. ΓòÉΓòÉΓòÉ 167.1.2. OWNERWINDOW ΓòÉΓòÉΓòÉ
  21872.  
  21873. If specified, OWNERWINDOW must be a pointer to a window handle. The referenced 
  21874. window will be made the OwnerWindow of the dialog window. (See WINDOW.) 
  21875.  
  21876. Set on OPEN, then read-only. 
  21877.  
  21878. Default: None 
  21879.  
  21880.  
  21881. ΓòÉΓòÉΓòÉ 167.1.3. VISIBLE ΓòÉΓòÉΓòÉ
  21882.  
  21883. Whether the Send dialog is displayed: 
  21884.  
  21885. 0         Dialog not displayed 
  21886. 1         Dialog displayed 
  21887.  
  21888. Default: 1 (Displayed) 
  21889.  
  21890.  
  21891. ΓòÉΓòÉΓòÉ 167.1.4. HELP ΓòÉΓòÉΓòÉ
  21892.  
  21893. Resource identifier (res ID) of the help text for the Send formats. If 
  21894. specified, this attribute should be set on OPEN. 
  21895.  
  21896. Default: None 
  21897.  
  21898.  
  21899. ΓòÉΓòÉΓòÉ 167.1.5. FORMATS ΓòÉΓòÉΓòÉ
  21900.  
  21901. A pointer to a vector of format names, which includes all the formats supported 
  21902. by the application. 
  21903.  
  21904. Set on OPEN, then read-only. 
  21905.  
  21906. Default: None 
  21907.  
  21908.  
  21909. ΓòÉΓòÉΓòÉ 167.1.6. IDENTIFIER ΓòÉΓòÉΓòÉ
  21910.  
  21911. If specified, IDENTIFIER is used to set the initial file name for output files. 
  21912.  
  21913. Set on OPEN, then read-only. 
  21914.  
  21915. Default: None 
  21916.  
  21917.  
  21918. ΓòÉΓòÉΓòÉ 167.2. Actions ΓòÉΓòÉΓòÉ
  21919.  
  21920. SEND() 
  21921.  
  21922.  
  21923. ΓòÉΓòÉΓòÉ 167.2.1. SEND() ΓòÉΓòÉΓòÉ
  21924.  
  21925. ΓöÇΓöÇSEND(pFormats)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21926.  
  21927. This action mails data synchronously. pFormats is a pointer to a scalar or 
  21928. vector of formats. All the specified formats must be supported by the client. 
  21929. The client's ON SOURCE block is run once for each format in the vector. Then 
  21930. the SEND object mails the rendered data. 
  21931.  
  21932. This action may be used to service an application's Send API. The application 
  21933. can open the SEND object invisibly and then call the Send action. 
  21934.  
  21935.  
  21936. ΓòÉΓòÉΓòÉ 167.3. Events ΓòÉΓòÉΓòÉ
  21937.  
  21938. QUIT              SOURCE 
  21939.  
  21940.  
  21941. ΓòÉΓòÉΓòÉ 167.3.1. QUIT ΓòÉΓòÉΓòÉ
  21942.  
  21943. Received when the user closes the Send dialog. 
  21944.  
  21945.  
  21946. ΓòÉΓòÉΓòÉ 167.3.2. SOURCE ΓòÉΓòÉΓòÉ
  21947.  
  21948. The client's ON SOURCE block is called and passed a pointer to an SFILE. The 
  21949. client is expected to populate the SFILE with the relevant data. SFILE'FORMAT 
  21950. will be set to the required data format. 
  21951.  
  21952.  
  21953. ΓòÉΓòÉΓòÉ 168. SEPARATE() ΓòÉΓòÉΓòÉ
  21954.  
  21955. The SEPARATE() function returns the number of items in a string, or a specified 
  21956. item in a string. 
  21957.  
  21958.                             ΓöîΓöÇ" "ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  21959. ΓöÇΓöÇSEPARATE(string,number,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  21960.                             ΓööΓöÇseparatorΓöÇΓöÿ
  21961.  
  21962. Examples 
  21963.  
  21964. More about SEPARATE() 
  21965.  
  21966. See also: WORDS() 
  21967.  
  21968.  
  21969. ΓòÉΓòÉΓòÉ 168.1. Examples ΓòÉΓòÉΓòÉ
  21970.  
  21971. LET word=SEPARATE("The cat sat on the mat",3)
  21972.                                   !  Result is word=sat
  21973. LET option=SEPARATE("one;two;three;four;five",3,";")
  21974.                                   !  Result is option=three
  21975. LET number=SEPARATE("Once upon a time, there were three bears.")
  21976.                                   !  Result is number=8
  21977. LET number=SEPARATE("Once upon a time,there were three bears.")
  21978.                                   !  Result is number=7
  21979.  
  21980. Examples source library: 
  21981.  
  21982.  
  21983. ΓòÉΓòÉΓòÉ 168.2. More about SEPARATE() ΓòÉΓòÉΓòÉ
  21984.  
  21985. o SEPARATE() is similar to the WORDS() function. The two functions differ in 
  21986.   the way they deal with separators. 
  21987.  
  21988. o If there is only one parameter, or if a number parameter is not supplied, 
  21989.   SEPARATE() returns the number of separate items in the string. A zero-length 
  21990.   string produces a result of zero. 
  21991.  
  21992. o Only SBCS characters can be used as separators. When an SBCS space is used as 
  21993.   a separator, or separator is omitted, SBCS and DBCS spaces in string are both 
  21994.   assumed to be separators. 
  21995.  
  21996. o SEPARATE() (unlike WORDS()) treats nonspace separators differently from space 
  21997.   separators.  Contiguous spaces are treated as one separator, but each 
  21998.   occurrence of a nonspace separator delimits a separate item in the string. 
  21999.   Where two such separators occur contiguously, a zero length item is 
  22000.   considered to exist.  For example: 
  22001.  
  22002.     LET x = SEPARATE("a++b++c",3,"+")
  22003.  
  22004.   returns: 
  22005.  
  22006.     x = "b"
  22007.  
  22008. o More than one separator character can be supplied. Any of the characters 
  22009.   supplied can delimit an item. For example: 
  22010.  
  22011.     LET x = SEPARATE("the cat-?sat+on the/mat",4,"-+/*!?")
  22012.  
  22013.   This returns: 
  22014.  
  22015.     x = "on the"
  22016.  
  22017. o If number is negative, it indicates a position relative to the end of the 
  22018.   string. -1 indicates the last item. 
  22019.  
  22020. o Spaces and nonspace characters can be combined in the third separator 
  22021.   parameter. If separator is specified as a space, both SBCS and DBCS spaces in 
  22022.   the string are assumed to be spaces. 
  22023.  
  22024.  
  22025. ΓòÉΓòÉΓòÉ 169. SFILE ΓòÉΓòÉΓòÉ
  22026.  
  22027. SFILE is based on an OS/2 file. It implements STREAM behavior. 
  22028.  
  22029. See also: STREAM 
  22030.  
  22031.  
  22032. ΓòÉΓòÉΓòÉ 170. SHUT ΓòÉΓòÉΓòÉ
  22033.  
  22034. The SHUT statement closes an instance of an object. 
  22035.  
  22036. ΓöÇΓöÇSHUTΓöÇΓöÇinstanceΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22037.  
  22038. Examples 
  22039.  
  22040. More about SHUT 
  22041.  
  22042. See also: OPEN 
  22043.  
  22044.  
  22045. ΓòÉΓòÉΓòÉ 170.1. Examples ΓòÉΓòÉΓòÉ
  22046.  
  22047. SHUT main_entry
  22048.  
  22049. This closes the window object opened in the example given for the OPEN 
  22050. statement. (See OPEN.) 
  22051.  
  22052. Examples source library: 
  22053.  
  22054.  
  22055. ΓòÉΓòÉΓòÉ 170.2. More about SHUT ΓòÉΓòÉΓòÉ
  22056.  
  22057. o Any objects which were opened with instance as parent are also shut when 
  22058.   instance is shut. 
  22059.  
  22060. o Any objects which are opened by a program are shut by the system when the 
  22061.   program terminates. 
  22062.  
  22063. o For details of what happens when any particular object is shut, see the 
  22064.   section on that object. 
  22065.  
  22066. o SHUT can never cause an error, whatever you use it on. If instance is not an 
  22067.   open object, then SHUT is ignored. This means that you do not need to use 
  22068.   FORGIVE with SHUT. 
  22069.  
  22070.  
  22071. ΓòÉΓòÉΓòÉ 171. SIGNAL PROGRAM ΓòÉΓòÉΓòÉ
  22072.  
  22073. The SIGNAL PROGRAM statement cancels the suspension of a program caused by a 
  22074. WAIT PROGRAM statement. 
  22075.  
  22076. ΓöÇΓöÇSIGNALΓöÇΓöÇPROGRAMΓöÇΓöÇprogramaliasΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22077.  
  22078. Examples 
  22079.  
  22080. More about SIGNAL PROGRAM 
  22081.  
  22082. See also: QUEUE PROGRAM, RUN PROGRAM, START, WAIT PROGRAM 
  22083.  
  22084.  
  22085. ΓòÉΓòÉΓòÉ 171.1. Examples ΓòÉΓòÉΓòÉ
  22086.  
  22087. SIGNAL PROGRAM testrun
  22088.  
  22089. Examples source library: 
  22090.  
  22091.  
  22092. ΓòÉΓòÉΓòÉ 171.2. More about SIGNAL PROGRAM ΓòÉΓòÉΓòÉ
  22093.  
  22094. o If the named program is waiting for the program which uses SIGNAL, no action 
  22095.   is taken. 
  22096.  
  22097. o If another program is waiting for a task which stops, a SIGNAL PROGRAM is 
  22098.   implied. 
  22099.  
  22100.  
  22101. ΓòÉΓòÉΓòÉ 172. SIN(), SIND() ΓòÉΓòÉΓòÉ
  22102.  
  22103. The SIN() and SIND() functions return the sine of an angle. 
  22104.  
  22105. SIN() returns the sine value for an angle specified in radians. SIND() returns 
  22106. the sine value for an angle specified in degrees. 
  22107.  
  22108. ΓöÇΓöÇSIN(angle)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22109.  
  22110. ΓöÇΓöÇSIND(angle)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22111.  
  22112. Examples 
  22113.  
  22114.  
  22115. ΓòÉΓòÉΓòÉ 172.1. Examples ΓòÉΓòÉΓòÉ
  22116.  
  22117. x = SIN(0.82)                               !  Result is 0.73
  22118. x = SIND(21.1)                              !  Result is 0.36
  22119.  
  22120. Examples source library: 
  22121.  
  22122.  
  22123. ΓòÉΓòÉΓòÉ 173. SLE ΓòÉΓòÉΓòÉ
  22124.  
  22125. The SLE object class creates an instance of a single-line edit field. 
  22126.  
  22127. Parent: WINDOW 
  22128.  
  22129. Attributes 
  22130.  
  22131. Actions 
  22132.  
  22133. Events 
  22134.  
  22135. Examples 
  22136.  
  22137. More about SLE 
  22138.  
  22139.  
  22140. ΓòÉΓòÉΓòÉ 173.1. Attributes ΓòÉΓòÉΓòÉ
  22141.  
  22142. AUTOSCROLL            AUTOTAB 
  22143. BORDER                CLONEDIR 
  22144. CLONEGAP              CLONES 
  22145. ENABLED               EXPRESSION 
  22146. FIRSTCHAR             HANDLES 
  22147. HELP                  HORZJUST 
  22148. ORIGIN                PROTECT 
  22149. SELECTABLE            SIZEX 
  22150. TEXTLIMIT             VISIBLE 
  22151. X                     Y 
  22152.  
  22153.  
  22154. ΓòÉΓòÉΓòÉ 173.1.1. AUTOSCROLL ΓòÉΓòÉΓòÉ
  22155.  
  22156. Whether or not the SLE is to have automatic horizontal scrolling: 
  22157.  
  22158. 0         No horizontal scrolling 
  22159. 1         Text scrolls to keep cursor within entry field. 
  22160.  
  22161. Default: 1 (Scrolling on) 
  22162.  
  22163.  
  22164. ΓòÉΓòÉΓòÉ 173.1.2. AUTOTAB ΓòÉΓòÉΓòÉ
  22165.  
  22166. Whether or not the SLE is to have automatic tabbing: 
  22167.  
  22168. 0         No automatic tabbing 
  22169. 1         Moves the cursor to the next field in the window when the TEXTLIMIT 
  22170.           size is reached for the SLE. 
  22171.  
  22172. Default: 0 (No tabbing) 
  22173.  
  22174.  
  22175. ΓòÉΓòÉΓòÉ 173.1.3. BORDER ΓòÉΓòÉΓòÉ
  22176.  
  22177. Framed border half a dialog box unit wide is drawn round entry field: 
  22178.  
  22179. 0         No border 
  22180. 1         Border drawn 
  22181.  
  22182. Default: 0 (No border) 
  22183.  
  22184.  
  22185. ΓòÉΓòÉΓòÉ 173.1.4. CLONEDIR ΓòÉΓòÉΓòÉ
  22186.  
  22187. Direction of cloning relative to the original: 
  22188.  
  22189. 1         Down 
  22190. 2         Up 
  22191. 3         Left 
  22192. 4         Right 
  22193.  
  22194. Set on OPEN, then read-only. 
  22195.  
  22196. Default: 1 (Down) 
  22197.  
  22198.  
  22199. ΓòÉΓòÉΓòÉ 173.1.5. CLONEGAP ΓòÉΓòÉΓòÉ
  22200.  
  22201. Gap between clones, in dialog box units. 
  22202.  
  22203. Set on OPEN, then read-only. 
  22204.  
  22205. Default: 0 
  22206.  
  22207.  
  22208. ΓòÉΓòÉΓòÉ 173.1.6. CLONES ΓòÉΓòÉΓòÉ
  22209.  
  22210. Number of clones. 
  22211.  
  22212. Set on OPEN, then read-only. 
  22213.  
  22214. Default: 1 
  22215.  
  22216.  
  22217. ΓòÉΓòÉΓòÉ 173.1.7. ENABLED ΓòÉΓòÉΓòÉ
  22218.  
  22219. Whether the SLE field is enabled: 
  22220.  
  22221. 0         SLE displayed, but cannot hold cursor, the user cannot type into it 
  22222. 1         SLE enabled 
  22223.  
  22224. Default: 1 (Enabled) 
  22225.  
  22226.  
  22227. ΓòÉΓòÉΓòÉ 173.1.8. EXPRESSION ΓòÉΓòÉΓòÉ
  22228.  
  22229. Name of a variable containing data entered by the end user. The contents of the 
  22230. variable are displayed by the SLE. 
  22231.  
  22232. Default: "" 
  22233.  
  22234.  
  22235. ΓòÉΓòÉΓòÉ 173.1.9. FIRSTCHAR ΓòÉΓòÉΓòÉ
  22236.  
  22237. Offsets the entry field to the left by a number of characters. The value of 
  22238. FIRSTCHAR is the number of obscured bytes in the string. For SBCS environments, 
  22239. this is the same as the number of characters obscured.  However, if there are 
  22240. any obscured DBCS characters in the string, this relationship does not apply. 
  22241.  
  22242. An error results if the number specified is greater than the number of 
  22243. characters. 
  22244.  
  22245. Default: 0 
  22246.  
  22247.  
  22248. ΓòÉΓòÉΓòÉ 173.1.10. HANDLES ΓòÉΓòÉΓòÉ
  22249.  
  22250. Whether sizing handles are attached to the SLE to support moving, sizing, and 
  22251. copying operations. These direct manipulation techniques follow the CUA 
  22252. guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  22253.  
  22254. 0         Handles are not displayed 
  22255. 1         Handles are displayed 
  22256.  
  22257. Default: 0 (No handles) 
  22258.  
  22259.  
  22260. ΓòÉΓòÉΓòÉ 173.1.11. HELP ΓòÉΓòÉΓòÉ
  22261.  
  22262. Resource identifier (res ID) of the full help text for this object. 
  22263.  
  22264. Default: 0 
  22265.  
  22266.  
  22267. ΓòÉΓòÉΓòÉ 173.1.12. HORZJUST ΓòÉΓòÉΓòÉ
  22268.  
  22269. Justification of the text in the entry box: 
  22270.  
  22271. 0         Left justified 
  22272. 1         Right justified 
  22273. 2         Centered 
  22274.  
  22275. Default: 0 (Left justified) 
  22276.  
  22277.  
  22278. ΓòÉΓòÉΓòÉ 173.1.13. ORIGIN ΓòÉΓòÉΓòÉ
  22279.  
  22280. The corner of the enclosing window to be taken as the origin. The position of 
  22281. the SLE field is measured from this point. 
  22282.  
  22283. "TL"      Top left 
  22284. "TR"      Top right 
  22285. "BL"      Bottom left 
  22286. "BR"      Bottom right 
  22287.  
  22288. Default: "BL" (Bottom left) 
  22289.  
  22290.  
  22291. ΓòÉΓòÉΓòÉ 173.1.14. PROTECT ΓòÉΓòÉΓòÉ
  22292.  
  22293. Whether or not data typed into the SLE is to be displayed: 
  22294.  
  22295. 0         Data displayed. 
  22296. 1         Data not displayed. 
  22297. Set on OPEN, then read-only. 
  22298.  
  22299. Default: 0 (Displayed) 
  22300.  
  22301.  
  22302. ΓòÉΓòÉΓòÉ 173.1.15. SELECTABLE ΓòÉΓòÉΓòÉ
  22303.  
  22304. Whether SLE field is selectable: 
  22305.  
  22306. 0         SLE not selectable 
  22307. 1         SLE selectable 
  22308.  
  22309. Default: 0 (Not selectable) 
  22310.  
  22311. If ENABLED is set to 0 (not enabled), the value of SELECTABLE is ignored (the 
  22312. SLE is not selectable). 
  22313.  
  22314.  
  22315. ΓòÉΓòÉΓòÉ 173.1.16. SIZEX ΓòÉΓòÉΓòÉ
  22316.  
  22317. Width of the SLE field, in dialog box units. 
  22318.  
  22319. Default: 0 
  22320.  
  22321.  
  22322. ΓòÉΓòÉΓòÉ 173.1.17. TEXTLIMIT ΓòÉΓòÉΓòÉ
  22323.  
  22324. Maximum length of text that can be displayed in the SLE box, in bytes (for SBCS 
  22325. the number of bytes is equal to the number of characters). The maximum 
  22326. permitted value is 255. 
  22327.  
  22328. Default: 255 
  22329.  
  22330.  
  22331. ΓòÉΓòÉΓòÉ 173.1.18. VISIBLE ΓòÉΓòÉΓòÉ
  22332.  
  22333. Whether the SLE field is displayed: 
  22334.  
  22335. 0         SLE not displayed 
  22336. 1         SLE displayed 
  22337.  
  22338. Default: 1 (Displayed) 
  22339.  
  22340.  
  22341. ΓòÉΓòÉΓòÉ 173.1.19. X ΓòÉΓòÉΓòÉ
  22342.  
  22343. Horizontal position of the bottom left-hand corner of the SLE field, in dialog 
  22344. box units. 
  22345.  
  22346. Default: 0 
  22347.  
  22348.  
  22349. ΓòÉΓòÉΓòÉ 173.1.20. Y ΓòÉΓòÉΓòÉ
  22350.  
  22351. Vertical position of the bottom left-hand corner of the SLE field, in dialog 
  22352. box units. 
  22353.  
  22354. Default: 0 
  22355.  
  22356.  
  22357. ΓòÉΓòÉΓòÉ 173.2. Actions ΓòÉΓòÉΓòÉ
  22358.  
  22359. EDIT()               REFRESH() 
  22360. SELAREA() 
  22361.  
  22362.  
  22363. ΓòÉΓòÉΓòÉ 173.2.1. EDIT() ΓòÉΓòÉΓòÉ
  22364.  
  22365. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22366.  
  22367. Enables the programmer to query whether a clipboard operation is supported and, 
  22368. if it is, to carry it out. 
  22369.  
  22370. argument is a clipboard query or a clipboard operation. 
  22371.  
  22372. The following values for argument are used to check whether particular 
  22373. clipboard operations can be supported with the SLE field in its current state: 
  22374.  
  22375. "Querycut" Cut to clipboard 
  22376. "Querycopy" Copy to clipboard 
  22377. "Querypaste" Paste from clipboard 
  22378. "Queryclear" Clear clipboard. 
  22379.  
  22380. Where clipboard operations are supported, the following values for argument 
  22381. direct them to be carried out: 
  22382.  
  22383. "Cut"     Cut to clipboard 
  22384. "Copy"    Copy to clipboard 
  22385. "Paste"   Paste from clipboard 
  22386. "Clear"   Clear clipboard. 
  22387.  
  22388.  
  22389. ΓòÉΓòÉΓòÉ 173.2.2. REFRESH() ΓòÉΓòÉΓòÉ
  22390.  
  22391. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22392.  
  22393. Forces repainting of the SLE field on screen. 
  22394.  
  22395.  
  22396. ΓòÉΓòÉΓòÉ 173.2.3. SELAREA() ΓòÉΓòÉΓòÉ
  22397.  
  22398. ΓöÇΓöÇSELAREA(start,length)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22399.  
  22400. This action selects all or part of the text string in the SLE part of the SLE 
  22401. control. The default value for start is 1, and it must be in the range 1 
  22402. through 255. The default value for length is 0, and it must be in the range 0 
  22403. through 255. start plus length must be less than or equal to 256. 
  22404.  
  22405. The current insertion point is placed after the last selected character. If 
  22406. length is 0, the insertion point is placed before the character position 
  22407. specified in start. 
  22408.  
  22409.  
  22410. ΓòÉΓòÉΓòÉ 173.3. Events ΓòÉΓòÉΓòÉ
  22411.  
  22412. DATA               DESKTOP 
  22413. SELECT 
  22414.  
  22415.  
  22416. ΓòÉΓòÉΓòÉ 173.3.1. DATA ΓòÉΓòÉΓòÉ
  22417.  
  22418. Signaled if data has changed within the SLE when another object is selected or 
  22419. the TAB key is pressed. A.System.Object is set to named control and 
  22420. A.System.Boxnumber is set to the clone selected. 
  22421.  
  22422.  
  22423. ΓòÉΓòÉΓòÉ 173.3.2. DESKTOP ΓòÉΓòÉΓòÉ
  22424.  
  22425. Signaled when the SLE is moved, sized, or copied. A.System.Operation is set to 
  22426. "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the control. 
  22427.  
  22428.  
  22429. ΓòÉΓòÉΓòÉ 173.3.3. SELECT ΓòÉΓòÉΓòÉ
  22430.  
  22431. Signaled when selection is made. Only available if the SELECTABLE attribute is 
  22432. set (SELECTABLE=1). A.System.Object is set to named control and 
  22433. A.System.Boxnumber is set to the clone selected. 
  22434.  
  22435.  
  22436. ΓòÉΓòÉΓòÉ 173.4. Examples ΓòÉΓòÉΓòÉ
  22437.  
  22438. ! Open samples of the SLE control.
  22439. ! Two samples are opened, one the simplest form of SLE, the
  22440. ! second is cloned and has a solid border.
  22441. PROCEDURE SLE
  22442. DO
  22443.   !
  22444.   ! a simple sle
  22445.   !
  22446.   LET sledata="Sample text"
  22447.   OPEN SLE sle1, Win,
  22448.    SizeX =  60,                  ! sizey is not applicable to an SLE
  22449.    X     =  10, Y =  85,
  22450.    Expression = "sledata",
  22451.    Border     = 0                ! no border (default)
  22452.   !
  22453.   ! open a cloned sle, referenced to the 'days' array
  22454.   !
  22455.   OPEN SLE sle2, Win,
  22456.    SizeX       = 80,
  22457.    X = 5,    Y = 70,
  22458.    Expression  = "days[1]",
  22459.    Clones      = 5,               ! number of clones
  22460.    CloneGap    = 3,               ! gap between clones
  22461.    CloneDir    = 1,               ! clone direction - vertically down
  22462.    Border      = 1                ! solid border
  22463. END
  22464.  
  22465. Examples source library: 
  22466.  
  22467.  
  22468. ΓòÉΓòÉΓòÉ 173.5. More about SLE ΓòÉΓòÉΓòÉ
  22469.  
  22470. o The following attributes can only be modified for the entire clone set, not 
  22471.   for the individual clones: 
  22472.  
  22473.    CLONEDIR 
  22474.    CLONEGAP 
  22475.    ORIGIN 
  22476.    HANDLES 
  22477.    SELECTABLE 
  22478.    VISIBLE 
  22479.  
  22480. If you wish to modify an attribute for the entire clone set use a reference of 
  22481. zero: 
  22482.  
  22483. LET mypush[0]'VISIBLE=0
  22484. The set reference of zero must be used even when the SLE does not have any 
  22485. clones. 
  22486.  
  22487. o In a DBCS environment, a window containing an SLE has a keyboard status line 
  22488.   at the bottom for character conversion. This line is added automatically. 
  22489.  
  22490.  
  22491. ΓòÉΓòÉΓòÉ 174. SMEMORY ΓòÉΓòÉΓòÉ
  22492.  
  22493. SMEMORY implements STREAM behavior, based on a contiguous area of memory. 
  22494.  
  22495. See also: STREAM 
  22496.  
  22497.  
  22498. ΓòÉΓòÉΓòÉ 175. SOUND ΓòÉΓòÉΓòÉ
  22499.  
  22500. The SOUND statement produces a sound of a specified frequency and duration. 
  22501.  
  22502.                          ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  22503. ΓöÇΓöÇSOUNDΓöÇΓöÇfrequencyΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22504.                          ΓööΓöÇdurationΓöÇΓöÿ
  22505.  
  22506. Examples 
  22507.  
  22508. See also: MMFILE 
  22509.  
  22510.  
  22511. ΓòÉΓòÉΓòÉ 175.1. Examples ΓòÉΓòÉΓòÉ
  22512.  
  22513. SOUND 1,3        !  Produces a note of 220Hz for 0.3 seconds.
  22514. SOUND 600,2      !  Produces a note of 600Hz for 0.2 seconds.
  22515. SOUND 30,10      !  Produces a pause for 1 second.
  22516.  
  22517. Examples source library: 
  22518.  
  22519.  
  22520. ΓòÉΓòÉΓòÉ 176. SOURCECTRL ΓòÉΓòÉΓòÉ
  22521.  
  22522. This object allows the direct manipulation capabilities of an application (as a 
  22523. source of data) to be defined. It may be associated with a window to enable 
  22524. that window to be dragged. 
  22525.  
  22526. Attributes 
  22527.  
  22528. Actions 
  22529.  
  22530. Events 
  22531.  
  22532. Examples 
  22533.  
  22534. See also: DDECLIENT, DDESERVER, STREAM, TARGETCTRL, REFERENCE 
  22535.  
  22536.  
  22537. ΓòÉΓòÉΓòÉ 176.1. Attributes ΓòÉΓòÉΓòÉ
  22538.  
  22539. CODE                   DISCARDABLE 
  22540. OPERATION              OPERATIONS 
  22541. OBJECTNAME             ORIGINATOR 
  22542. TRACE                  PRINTABLE 
  22543.  
  22544.  
  22545. ΓòÉΓòÉΓòÉ 176.1.1. CODE ΓòÉΓòÉΓòÉ
  22546.  
  22547. The error code of the last SOURCECTRL operation. 
  22548.  
  22549. Default: None 
  22550.  
  22551. Read-only 
  22552.  
  22553.  
  22554. ΓòÉΓòÉΓòÉ 176.1.2. DISCARDABLE ΓòÉΓòÉΓòÉ
  22555.  
  22556. Indicates whether or not the represented object can be discarded, by, for 
  22557. example, being dragged to a shredder, or otherwise being removed from its 
  22558. current location. 
  22559.  
  22560. When DISCARDABLE is set to 1 (true), then each associated screen object can be 
  22561. dropped on a shredder icon. This generates a DISCARD event. 
  22562.  
  22563. Default: 1 (True) Set on OPEN, then read/write. 
  22564.  
  22565.  
  22566. ΓòÉΓòÉΓòÉ 176.1.3. OPERATION ΓòÉΓòÉΓòÉ
  22567.  
  22568. Identifies the drag/drop operation: M, C, or L. 
  22569.  
  22570.  
  22571. ΓòÉΓòÉΓòÉ 176.1.4. OPERATIONS ΓòÉΓòÉΓòÉ
  22572.  
  22573. Indicates the operations supported by the source. 
  22574.  
  22575. It should be a character string including one instance of one or more of the 
  22576. following characters: 
  22577.  
  22578. M         Move 
  22579. C         Copy 
  22580. L         Link 
  22581.  
  22582. If any character other than those above is specified, an error condition will 
  22583. result. 
  22584.  
  22585. The implications of allowing a Move are that the ASL program may receive an ON 
  22586. DISCARD event. If discarding the represented would cause problems (for instance 
  22587. if the object was an essential part of the implementation of another containing 
  22588. object) then Move should not be allowed. Support for Move implies that 
  22589. DISCARDABLE = 1, and overrides the setting of DISCARDABLE. The OPERATION 
  22590. attribute on SOURCECTRL or TARGETCTRL will be set to M, C or L to identify the 
  22591. operation. 
  22592.  
  22593. Default: C Set on OPEN, then read/write 
  22594.  
  22595.  
  22596. ΓòÉΓòÉΓòÉ 176.1.5. OBJECTNAME ΓòÉΓòÉΓòÉ
  22597.  
  22598. This attribute provides qualifying information to a target when a drop occurs. 
  22599. (The value is used to set the targetname value for the OS/2 protocol.) 
  22600.  
  22601. When a drop occurs the OBJECTNAME attribute of the STREAM will match the 
  22602. OBJECTNAME attribute of SOURCECTRL. OBJECTNAME may be set to any character 
  22603. string up to 255 bytes in length. 
  22604.  
  22605. Default: None Set at OPEN, then read/write 
  22606.  
  22607.  
  22608. ΓòÉΓòÉΓòÉ 176.1.6. ORIGINATOR ΓòÉΓòÉΓòÉ
  22609.  
  22610. Identifies the screen object that was dragged. The attribute will be set to 
  22611. point to the handle of the dragged object. 
  22612.  
  22613. Default: None 
  22614.  
  22615. Read-only 
  22616.  
  22617.  
  22618. ΓòÉΓòÉΓòÉ 176.1.7. TRACE ΓòÉΓòÉΓòÉ
  22619.  
  22620. This Boolean attribute controls whether trace information will be recorded. The 
  22621. trace information includes the following items: 
  22622.  
  22623. o The object class (SOURCECTRL or TARGETCTRL). 
  22624.  
  22625. o The object class of the associated screen object. 
  22626.  
  22627. o The object token for the screen object. 
  22628.  
  22629. o The ASL event name. 
  22630.  
  22631. o The current CODE attribute value. 
  22632.  
  22633. o Each action invoked, along with parameter values (truncated to 20 bytes per 
  22634.   parameter, and only the first element of any vector parameter). 
  22635.  
  22636. o Lower level Drag API function calls and control block data. 
  22637. The trace data is limited to records of 64 characters or less. 
  22638.  
  22639. Drag/Drop trace will be written to a file called FTBDRG in the FTB1DIR 
  22640. directory. 
  22641.  
  22642. Default: 0 (No tracing) Set on OPEN, then read-only. 
  22643.  
  22644.  
  22645. ΓòÉΓòÉΓòÉ 176.1.8. PRINTABLE ΓòÉΓòÉΓòÉ
  22646.  
  22647. Indicates whether or not the represented object is capable of producing print 
  22648. output. 
  22649.  
  22650. When PRINTABLE is set to 1 (true), then the window can be dropped on any 
  22651. printer icon. This generates a PRINT event. 
  22652.  
  22653. Default: 0 (False) Set on OPEN, then read/write. 
  22654.  
  22655.  
  22656. ΓòÉΓòÉΓòÉ 176.2. Actions ΓòÉΓòÉΓòÉ
  22657.  
  22658. ADDFORMAT()            ADDTYPE() 
  22659. FORMATS()              SETIMAGE() 
  22660. TYPES() 
  22661.  
  22662.  
  22663. ΓòÉΓòÉΓòÉ 176.2.1. ADDFORMAT() ΓòÉΓòÉΓòÉ
  22664.  
  22665.                       ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  22666. ΓöÇΓöÇADDFORMAT(format,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22667.                       ΓööΓöÇreferenceΓöÇΓöÿ
  22668.  
  22669. This action may be used to signify that a source data format is supported. 
  22670.  
  22671. format is a character string representing a data format name, such as DIF, IXF, 
  22672. DBF, IBMCHART. 
  22673.  
  22674. reference is a Boolean parameter that indicates when 1 (true) that a reference 
  22675. to data in the associated format can be provided. The reference could be 
  22676. achieved by saving data into a file and supplying a reference to that file on 
  22677. request. 
  22678.  
  22679. When a reference to data is requested by a target, the REFERENCE attribute of 
  22680. the STREAM object delivered with the SOURCE event will be 1 (true) and the 
  22681. FORMAT attribute will specify the required format. The REFERENCE object should 
  22682. be used to supply reference information. 
  22683.  
  22684. Repeated ADDFORMAT requests are cumulative, and may be used to build up a set 
  22685. of supported target formats and operations. 
  22686.  
  22687.  
  22688. ΓòÉΓòÉΓòÉ 176.2.2. ADDTYPE() ΓòÉΓòÉΓòÉ
  22689.  
  22690. ΓöÇΓöÇADDTYPE(Type)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22691.  
  22692. This action may be used to signify that the object represents a source type. 
  22693.  
  22694. Type is provided by the caller, and should be a character string representing a 
  22695. type name. 
  22696.  
  22697. Repeated ADDTYPE requests are cumulative, and may be used to build up a set of 
  22698. supported source types. 
  22699.  
  22700.  
  22701. ΓòÉΓòÉΓòÉ 176.2.3. FORMATS() ΓòÉΓòÉΓòÉ
  22702.  
  22703. ΓöÇΓöÇFORMATS(formats,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22704.                      ΓööΓöÇreferenceΓöÇΓöÿ
  22705.  
  22706. This action may be used to define a complete set of supported source formats. 
  22707.  
  22708. formats is the name of a scalar or vector containing data format names. Each 
  22709. value must conform to the same rules as for the format attribute of the 
  22710. ADDFORMAT action. 
  22711.  
  22712. reference is the name of a scalar or vector containing values that conform to 
  22713. the rules for the reference parameter on the ADDFORMAT action. 
  22714.  
  22715. The FORMATS action replaces any prior definition of supported source formats. 
  22716.  
  22717.  
  22718. ΓòÉΓòÉΓòÉ 176.2.4. SETIMAGE() ΓòÉΓòÉΓòÉ
  22719.  
  22720. ΓöÇΓöÇSETIMAGE(type,location)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22721.  
  22722. This action may be used to identify the bitmap or icon to be used to represent 
  22723. the object while it is being dragged. 
  22724.  
  22725. type is mandatory and specifies the location type of the bitmap or icon. It 
  22726. must have a value of 
  22727.  
  22728. FILE      if the bitmap or icon is in a file 
  22729. DLL       if the bitmap or icon is in a DLL. 
  22730.  
  22731. location is mandatory and specifies the location of the bitmap or icon. If type 
  22732. is "FILE", it should be a fully qualified file identifier specifying the drive 
  22733. and directory, or using the UNC (Universal naming Convention). The file 
  22734. extension must be  .ICO if the image is an icon, and  .BMP if the image is a 
  22735. bitmap. The length of the identifier is limited to 255 bytes. If type is "DLL", 
  22736. it should be of the form  DLLName(ID), where DLLName is the name of the dynamic 
  22737. link library containing bitmap or icon, and ID is the resource id within the 
  22738. DLL. 
  22739.  
  22740.  
  22741. ΓòÉΓòÉΓòÉ 176.2.5. TYPES() ΓòÉΓòÉΓòÉ
  22742.  
  22743. ΓöÇΓöÇTYPES(types)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22744.  
  22745. This action may be used to specify the TYPEs of the source. 
  22746.  
  22747. Types is the name of a scalar or vector, declared or undeclared, containing 
  22748. type name(s). 
  22749.  
  22750. The TYPES action will replace any prior definition of types. 
  22751.  
  22752.  
  22753. ΓòÉΓòÉΓòÉ 176.3. Events ΓòÉΓòÉΓòÉ
  22754.  
  22755. SOURCE(pStream)            PRINT(pPrinter) 
  22756. DISCARD(pSrctrl)           ERROR 
  22757.  
  22758.  
  22759. ΓòÉΓòÉΓòÉ 176.3.1. SOURCE(pStream) ΓòÉΓòÉΓòÉ
  22760.  
  22761. This event is triggered when a valid drop occurs. pStream is a pointer to a 
  22762. STREAM object delivered with the event, through which the data may be rendered. 
  22763. The ORIGIN attribute of the STREAM object passed with the SOURCE event 
  22764. identifies the SOURCECTRL object through which the event was generated. The 
  22765. ORIGIN attribute of the SOURCECTRL object identifies the target screen object. 
  22766.  
  22767. You can use the FORMAT attribute of the STREAM object to identify the data 
  22768. format required. If a reference to the data is required, then the REFERENCE 
  22769. attribute of the STREAM will be 1 (true). A REFERENCE object should be used to 
  22770. to supply this information. 
  22771.  
  22772. At the end of ON SOURCE processing, the FINISHED() action of the STREAM should 
  22773. be called. 
  22774.  
  22775.  
  22776. ΓòÉΓòÉΓòÉ 176.3.2. PRINT(pPrinter) ΓòÉΓòÉΓòÉ
  22777.  
  22778. This event is triggered when an associated screen object is dropped onto a 
  22779. printer. pPrinter is a pointer to a PRINTER object delivered with the event, 
  22780. through which the represented object may print. The ORIGIN attribute of the 
  22781. PRINTER object passed with the SOURCE event identifies the SOURCECTRL object 
  22782. through which the event was generated. The ORIGIN attribute of the SOURCECTRL 
  22783. object identifies the screen object that was dragged. 
  22784.  
  22785. At the end of ON PRINT processing, the PRINTER object should be SHUT. 
  22786.  
  22787.  
  22788. ΓòÉΓòÉΓòÉ 176.3.3. DISCARD(pSrctrl) ΓòÉΓòÉΓòÉ
  22789.  
  22790. This event is triggered after data has been successfully delivered by a SOURCE 
  22791. event, where the operation was a Move, or after the object has been dropped on 
  22792. the shredder. 
  22793.  
  22794. pSrctrl is a pointer to the SOURCECTRL object that was associated with the 
  22795. window that was dragged. The ORIGINATOR attribute of the SOURCECTRL object may 
  22796. be used to identify the window that was dragged. This window, and the objects 
  22797. it represented should be discarded. 
  22798.  
  22799.  
  22800. ΓòÉΓòÉΓòÉ 176.3.4. ERROR ΓòÉΓòÉΓòÉ
  22801.  
  22802. An error has occurred during processing the drop. 
  22803.  
  22804.  
  22805. ΓòÉΓòÉΓòÉ 176.4. Examples ΓòÉΓòÉΓòÉ
  22806.  
  22807. See DRAGDROP.PRG (part of the DATAEXCH example) in Development Samples for more 
  22808. information. 
  22809.  
  22810. Examples source library: 
  22811.  
  22812.  
  22813. ΓòÉΓòÉΓòÉ 177. SPACE() ΓòÉΓòÉΓòÉ
  22814.  
  22815. The SPACE() function returns a format value which specifies that some spaces 
  22816. are required in the output file when this value is written to an output device 
  22817. (such as a printer) which supports lines of output. 
  22818.  
  22819. ΓöÇΓöÇSPACE(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22820.            ΓööΓöÇexpressionΓöÇΓöÿ
  22821.  
  22822. Examples 
  22823.  
  22824. More about SPACE() 
  22825.  
  22826. See also: LINE(), PAGE(), PRINTER 
  22827.  
  22828.  
  22829. ΓòÉΓòÉΓòÉ 177.1. Examples ΓòÉΓòÉΓòÉ
  22830.  
  22831. CALL Printer'PUT("Pages:",Page_number,Space(10),"Name",Empname)
  22832.  
  22833. String=SPACE(15)
  22834.  
  22835. Examples source library: 
  22836.  
  22837.  
  22838. ΓòÉΓòÉΓòÉ 177.2. More about SPACE() ΓòÉΓòÉΓòÉ
  22839.  
  22840. o If the COUNT attribute is zero, then no spaces are provided on the output 
  22841.   file.  This can be useful when the spacing is not known at the time of 
  22842.   writing the program. 
  22843.  
  22844. o A format value of SPACE() on a PUT() function is equivalent to a literal or 
  22845.   variable composed of the same number of spaces. 
  22846.  
  22847.  
  22848. ΓòÉΓòÉΓòÉ 178. SPLIT() ΓòÉΓòÉΓòÉ
  22849.  
  22850. The SPLIT() function extracts part of the value of an expression. 
  22851.  
  22852. ΓöÇΓöÇSPLIT(expression,start,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  22853.                             ΓööΓöÇlengthΓöÇΓöÿ    Γöé            ΓöîΓöÇ"L"ΓöÇΓöÇΓöÇΓöÉ Γöé
  22854.                                           Γö£ΓöÇΓöÇΓöÇfillΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöñ
  22855.                                           Γöé            ΓööΓöÇalignΓöÇΓöÿ Γöé
  22856.                                           Γöé ΓöîΓöÇ" "ΓöÇΓöÇΓöÉ             Γöé
  22857.                                           ΓööΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇalignΓöÇΓöÇΓöÇΓöÿ
  22858.                                             ΓööΓöÇfillΓöÇΓöÿ
  22859.  
  22860. Examples 
  22861.  
  22862. More about SPLIT() 
  22863.  
  22864. See also: CSPLIT() 
  22865.  
  22866.  
  22867. ΓòÉΓòÉΓòÉ 178.1. Examples ΓòÉΓòÉΓòÉ
  22868.  
  22869. String = "the cat sat on the mat"
  22870. x = SPLIT(String,16)                  !  Result is "the mat"
  22871. x = SPLIT(String,5,3)                 !  Result is "cat"
  22872. x = SPLIT(String,20,8,".")            !  Result is "mat....."
  22873. x = SPLIT(String,20,8,".","R")        !  Result is ".....mat"
  22874.  
  22875. Examples source library: 
  22876.  
  22877.  
  22878. ΓòÉΓòÉΓòÉ 178.2. More about SPLIT() ΓòÉΓòÉΓòÉ
  22879.  
  22880. o start and length refer to the number of bytes rather than the number of 
  22881.   characters.  In SBCS environments, the number of characters equals the number 
  22882.   of bytes. 
  22883.  
  22884.   In the following example, suppose that c is a DBCS character: 
  22885.  
  22886.     x = SPLIT("the cat sat on the mat",9)
  22887.  
  22888.   Here,  SPLIT() returns " sat on the mat". 
  22889.  
  22890.   Similarly, 
  22891.  
  22892.     x = SPLIT("the cat sat on the mat",5,7)
  22893.  
  22894.   if t and a are DBCS characters, then  SPLIT(x) returns " cat ", rather than 
  22895.   "cat sat", as it would if all the characters were SBCS. 
  22896.  
  22897. o The value produced by SPLIT() is assigned the appropriate data type.  Values 
  22898.   longer than the maximum system string length are reduced to that length. 
  22899.  
  22900. o No error is caused if positive, but not valid, values are given for start and 
  22901.   length. The appropriate defaults are assumed instead (a default of 1 is 
  22902.   assumed for start). Negative values cause an error. 
  22903.  
  22904. o SPLIT() behaves differently in a DBCS environment. 
  22905.  
  22906.   If start is at a DBCS second byte, SPLIT() extracts the substring from the 
  22907.   first byte of the pair. 
  22908.  
  22909.   length is always calculated from the start point specified by the end user, 
  22910.   even if this is the second byte of a DBCS pair. If the last position to be 
  22911.   extracted is at a DCBS first byte, the last position is changed to the 
  22912.   character preceding the DBCS character. 
  22913.  
  22914. o Only SBCS characters can be used as fill characters.  DBCS characters cannot 
  22915.   be used. 
  22916.  
  22917.  
  22918. ΓòÉΓòÉΓòÉ 179. SQLSESSION ΓòÉΓòÉΓòÉ
  22919.  
  22920. The SQL interface provides SQL data access. 
  22921.  
  22922. Attributes 
  22923.  
  22924. Actions 
  22925.  
  22926. Events: None. 
  22927.  
  22928. More about SQLSESSION 
  22929.  
  22930. See also: SQLTRANS 
  22931.  
  22932.  
  22933. ΓòÉΓòÉΓòÉ 179.1. Attributes ΓòÉΓòÉΓòÉ
  22934.  
  22935. CODE                  CODEDETAIL 
  22936. DBNAME                DRIVE 
  22937. PLATFORM              SQLSTATE 
  22938. STATUS                USERID 
  22939. TRACELEVEL 
  22940.  
  22941.  
  22942. ΓòÉΓòÉΓòÉ 179.1.1. CODE ΓòÉΓòÉΓòÉ
  22943.  
  22944. The latest return code from any action or change of state. 
  22945.  
  22946. Read-only. 
  22947.  
  22948. Default: 0 (If successful) 
  22949.  
  22950.  
  22951. ΓòÉΓòÉΓòÉ 179.1.2. CODEDETAIL ΓòÉΓòÉΓòÉ
  22952.  
  22953. In most cases where this value is nonzero it will hold an SQL code (refer to 
  22954. OS/2 ES 1.0 Messages and Error Recovery Guide or DB2/2 Messages and Problem 
  22955. Determination Guide See also More about SQLSESSION. 
  22956.  
  22957.  
  22958. ΓòÉΓòÉΓòÉ 179.1.3. DBNAME ΓòÉΓòÉΓòÉ
  22959.  
  22960. The name of the SQL database being accessed.  There is no default for the 
  22961. database name. If it is not set or is set to nulls, then no database access is 
  22962. current.  DBNAME can be modified.  There are some situations where you might 
  22963. want to create an SQLSESSION object without knowing the name of the database 
  22964. that you will eventually access. 
  22965.  
  22966. DBNAME takes the value of an alias of a database to ensure that the name is 
  22967. unique within the system. This makes it possible to access two databases with 
  22968. the same name, but located on different drives or systems. 
  22969.  
  22970. Note:   If DBNAME is modified while a cursor is open, the SQLSESSION object 
  22971.         calls the GOTOTOP action in respect of any child SQLTRANS object with 
  22972.         an open cursor.  This closes any open queries and resets any open 
  22973.         cursor. 
  22974.  
  22975. The following code sets the database name to SAMPLE and retrieves a list of 
  22976. tables: 
  22977.  
  22978. Session'DBNAME = "SAMPLE"  ! Attach to the SAMPLE database
  22979. CALL Session'TABLENAMES(Tables)
  22980. ! Retrieve a list of tables in the sample database
  22981.  
  22982. Default: No default name 
  22983.  
  22984.  
  22985. ΓòÉΓòÉΓòÉ 179.1.4. DRIVE ΓòÉΓòÉΓòÉ
  22986.  
  22987. The drive to access.  This is used when getting the names of databases. You can 
  22988. set it to zero to access the system directory of databases. DRIVE can be 
  22989. modified. 
  22990.  
  22991. Default: Current drive name 
  22992.  
  22993.  
  22994. ΓòÉΓòÉΓòÉ 179.1.5. PLATFORM ΓòÉΓòÉΓòÉ
  22995.  
  22996. The database platform in use. 
  22997.  
  22998. This attribute will only be valid when the object has been successfully 
  22999. attached to a database, (the DBNAME attribute has been set correctly). The 
  23000. attribute is read-only and can contain the following values: 
  23001.  
  23002. Blank     When the object is not attached to any database 
  23003.  
  23004. ES DBM    The currently attached database name is an alias of an ES DBM 
  23005.           database 
  23006.  
  23007. DB2       The currently attached database name is an alias of a DB2 subsystem 
  23008.  
  23009. DB2/2     The currently attached database name is an alias of a DB2/2 subsystem 
  23010.  
  23011. OS/6000   The currently attached database name is an alias of a DB2/6000 
  23012.           subsystem 
  23013.  
  23014. SQL/DS    The currently attached database name is an alias of a SQL/DS 
  23015.           subsystem 
  23016.  
  23017. OS400     The currently attached database name is an alias of an OS/400 
  23018.           collection 
  23019.  
  23020. UNKNOWN   The currently attached database name is an alias of an unknown 
  23021.           database platform. 
  23022.  
  23023. The SQL object has the ability to read data from and write data to DB2, SQL/DS, 
  23024. OS/400, and SQL/400 tables without the need for Host AS. 
  23025.  
  23026.  
  23027. ΓòÉΓòÉΓòÉ 179.1.6. SQLSTATE ΓòÉΓòÉΓòÉ
  23028.  
  23029. The values are the SQLSTATE standard error codes as returned in the SQLCA by an 
  23030. SQL operation against a database. 
  23031.  
  23032. The codes are five character strings and are defined in the IBM Extended 
  23033. Services/2 Version 1.0 Messages and Error Recovery Guide and DB2/2 Messages and 
  23034. Problem Determination Guide The attribute is read-only and is valid only after 
  23035. an SQL operation on a database. 
  23036.  
  23037.  
  23038. ΓòÉΓòÉΓòÉ 179.1.7. STATUS ΓòÉΓòÉΓòÉ
  23039.  
  23040. The status of the database connection: 
  23041.  
  23042. "N"       No connection 
  23043. "X"       Exclusive use of the attached database 
  23044. "S"       Shared access of the attached database. 
  23045.  
  23046. Default: "S" if DBNAME was specified when opening the session. 
  23047.  
  23048. The attribute may be changed to "X" or "S" (but not to "N") to change the level 
  23049. of the connection.  If the SQLSESSION object is not currently attached to a 
  23050. database (that is the DBNAME is not set to a valid name), attempting to modify 
  23051. STATUS will have no effect and its value will remain "N". 
  23052.  
  23053.  
  23054. ΓòÉΓòÉΓòÉ 179.1.8. USERID ΓòÉΓòÉΓòÉ
  23055.  
  23056. A text string of eight characters containing the DBM user ID.  If not set, it 
  23057. defaults to the system defined user ID (that is the currently logged on user). 
  23058. USERID can be modified to allow you to list and use tables created or owned by 
  23059. a different user ID. Some actions, such as attempting to attach to a database, 
  23060. will result in an automatic logon sequence. 
  23061.  
  23062. Default: User id of logged-on user 
  23063.  
  23064.  
  23065. ΓòÉΓòÉΓòÉ 179.1.9. TRACELEVEL ΓòÉΓòÉΓòÉ
  23066.  
  23067. Initiates a trace and generates or appends the information to the log file, 
  23068. FTBSQL. 
  23069.  
  23070. 0         Trace off 
  23071. 1         Trace on 
  23072.  
  23073. Specified on OPEN, the read-only. 
  23074.  
  23075. Default: 0 (Off) 
  23076.  
  23077.  
  23078. ΓòÉΓòÉΓòÉ 179.2. Actions ΓòÉΓòÉΓòÉ
  23079.  
  23080. COMMAND()               COMMIT() 
  23081. DBNAMES()               ROLLBACK() 
  23082. TABLENAMES() 
  23083.  
  23084.  
  23085. ΓòÉΓòÉΓòÉ 179.2.1. COMMAND() ΓòÉΓòÉΓòÉ
  23086.  
  23087. ΓöÇΓöÇCOMMAND(string,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23088.                     ΓööΓöÇvectorΓöÇΓöÿ
  23089.  
  23090. Takes a single parameter which can be any character string value, such as a 
  23091. constant, a data item, or an expression.  It can also be a vector, in which 
  23092. case all elements of the vector are appended to make the string or command 
  23093. string. The limit of the length of the string is dependent on the database 
  23094. product being accessed, but this is not likely to be exceeded in practice. 
  23095.  
  23096. The string is passed to SQL for immediate execution without any processing, 
  23097. interpretation, or modification by Visualizer. Only one command can be 
  23098. processed on each occasion that the action is called. 
  23099.  
  23100. COMMAND uses the EXECUTE IMMEDIATE statement.  (Refer to the DBM reference 
  23101. manuals for information on the difference between EXECUTE and EXECUTE 
  23102. IMMEDIATE, not all SQL commands are available in the IMMEDIATE form.) 
  23103.  
  23104. If the optional vector is specified, any message resulting from the command is 
  23105. returned in it. 
  23106.  
  23107. An example of COMMAND is shown below: 
  23108.  
  23109. DEFINE Command[0]
  23110. INSERT Command[0] = "CREATE TABLE SQLTEST "
  23111. INSERT Command[0] = "(COLUMN1  CHAR(20),"
  23112. INSERT Command[0] = " COLUMN2  SMALLINT NOT NULL)"
  23113. CALL Session'COMMAND(Command[0])
  23114.     ! Pass the immediate SQL command in the vector
  23115.     ! Command to SQL.  This will create a new table
  23116.     ! in the SAMPLE database
  23117. CALL Session'ROLLBACK
  23118.     ! Decommit the previous changes to the database.
  23119.     ! The table just created will no longer exist
  23120.  
  23121.  
  23122. ΓòÉΓòÉΓòÉ 179.2.2. COMMIT() ΓòÉΓòÉΓòÉ
  23123.  
  23124. ΓöÇΓöÇCOMMIT()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23125.  
  23126. The commit finishes a logical piece of work by setting it into the database. 
  23127. If a problem occurs in the database then any work since the last commit would 
  23128. be rolled back to ensure database integrity. Therefore you must perform a 
  23129. COMMIT to save changes to a database. 
  23130.  
  23131. Since the commit operation closes all queries, it results in the loss of all 
  23132. prepares and cursors for a process. This loss of resources has a number of 
  23133. implications, a query defined against some table may become locked out from the 
  23134. table by another process.  This other process could change the structure of the 
  23135. table or even delete the table.  The most likely effect though would be 
  23136. changing the data in the table. 
  23137.  
  23138. It is possible to run the same query (snapshot) twice with a commit or rollback 
  23139. between and have entirely different results (different values for the results 
  23140. or even a failure to produce any results). Therefore it is advisable to use 
  23141. caution when producing ASL application code since there can be many tasks 
  23142. running cooperatively in Visualizer. If more that one task could be accessing 
  23143. the database, then ensure that each action completes all work prior to 
  23144. relinquishing control or that the tasks synchronize any changes. 
  23145.  
  23146. Problems with side effects of commits should not be a problem between separate 
  23147. Visualizer processes, but only within a single Visualizer process. It is 
  23148. advisable to use COMMIT after a query is complete to release the read locks. 
  23149.  
  23150. Committing work is recommended - just be aware of the change in the state of 
  23151. the tables that results from the commit.  Two problems arise when work is not 
  23152. committed on a regular basis: 
  23153.  
  23154. o Large numbers of changes may be lost due to a rollback. 
  23155.  
  23156. o Another process may be waiting to use a table or record that is already 
  23157.   locked. The process which holds that lock has the responsibility for 
  23158.   releasing it (by either committing or rolling back the work it has done) as 
  23159.   soon as possible. 
  23160.  
  23161. There are no parameters to this action. 
  23162.  
  23163.  
  23164. ΓòÉΓòÉΓòÉ 179.2.3. DBNAMES() ΓòÉΓòÉΓòÉ
  23165.  
  23166. ΓöÇΓöÇDBNAMES(alias,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23167.                     ΓööΓöÇdbnameΓöÇΓöÿ     ΓööΓöÇdbtypeΓöÇΓöÿ     ΓööΓöÇcommentΓöÇΓöÿ
  23168. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23169.    ΓööΓöÇdriveΓöÇΓöÿ    ΓööΓöÇnodeΓöÇΓöÿ
  23170.  
  23171. Provides information, in the form of parallel vectors, on the databases 
  23172. available. The information provided depends on the parameters given with the 
  23173. action. alias is mandatory, all other parameters are optional. The parameters 
  23174. are defined as follows: 
  23175.  
  23176. alias     List of database aliases.  An alias is an alternate database name. A 
  23177.           database on one system may have the same name as that on one on 
  23178.           another system.  The alias is used to uniquely identify all available 
  23179.           databases. This name is required for attachment to the database. 
  23180.  
  23181. dbname    List of database names. 
  23182.  
  23183. dbtype    Database types: 
  23184.  
  23185.    0         Local 
  23186.    1         Remote 
  23187.    2         No user ID currently logged on (type is not known) 
  23188.  
  23189. comment   Database comments. 
  23190.  
  23191. drive     The drive upon which the database resides. 
  23192.  
  23193. node      The node the database resides on (DDCS/2 for example) 
  23194.  
  23195.  
  23196. ΓòÉΓòÉΓòÉ 179.2.4. ROLLBACK() ΓòÉΓòÉΓòÉ
  23197.  
  23198. ΓöÇΓöÇROLLBACK()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23199.  
  23200. The rollback action finishes a Logical Unit of Work (LUW) by reverting the 
  23201. state of the database to that it was in immediately after the last LUW or start 
  23202. of access, thereby cancelling a unit of work. 
  23203.  
  23204. The rollback will release all resources held by the DBM for this process. This 
  23205. may cause a problem if, for example, an expression has been set into a SQLTRANS 
  23206. object and this LUW ending allows tables specified in the expression to be 
  23207. dropped.  If the SQLTRANS object were to then execute a SNAPSHOT, an error 
  23208. would occur. 
  23209.  
  23210. Detach from a database will cause a rollback.  Therefore if changes performed 
  23211. before ending a session with the DBM are to be saved, you must perform a 
  23212. COMMIT. 
  23213.  
  23214. There are no parameters to this call. 
  23215.  
  23216.  
  23217. ΓòÉΓòÉΓòÉ 179.2.5. TABLENAMES() ΓòÉΓòÉΓòÉ
  23218.  
  23219. ΓöÇΓöÇTABLENAMES(table,type,cols,rows)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23220.  
  23221. Once a database access is current, you can request a list of tables and views 
  23222. in the SQL database.  These are returned as parallel vectors, all except table 
  23223. are optional. The table details are those of the tables created with the 
  23224. qualifier name specified in the USERID attribute for an OS/2 DBM database: 
  23225.  
  23226. table     List of table names (mandatory). 
  23227.  
  23228. type      List of table types.  In this context a table can be either a base 
  23229.           table ("T"), or a view ("V"). 
  23230.  
  23231. cols      Number of columns in the table or view. 
  23232.  
  23233. rows      If statistics are being maintained, the number of rows in each table 
  23234.           or view.  If statistics are not being maintained, then this is 
  23235.           denoted by -1. 
  23236.  
  23237. Each platform holds information on indices, tables, and views differently.  The 
  23238. product creates views against this information for its own purposes.  For more 
  23239. information, see the installation instructions for the database. 
  23240.  
  23241.  
  23242. ΓòÉΓòÉΓòÉ 179.3. More about SQLSESSION ΓòÉΓòÉΓòÉ
  23243.  
  23244. o The SQL interface extends the data access capabilities of Visualizer to 
  23245.   include Database2/2 and OS/2 Extended Services Database Manager databases, 
  23246.   and also the following SQL databases, accessible through either of these 
  23247.   products, if OS/2 Distributed Database Connection Service (DDCS/2) is also 
  23248.   installed: 
  23249.  
  23250.    - DB2 
  23251.    - SQL/DS* 
  23252.    - OS/400 and SQL/400 
  23253.  
  23254.   You can develop Visualizer applications that can use any valid SQL statement 
  23255.   to query a database running under DB2/2 or DBM, or accessed through either 
  23256.   product, and place the result into Visualizer tables. Applications can place 
  23257.   data into a SQL base table and deliver the table objects to the database 
  23258.   product. Applications can also use a Visualizer table as a template for the 
  23259.   creation of SQL tables. (See IBM Visualizer for OS/2: Installing and 
  23260.   Supporting 
  23261.  
  23262.   The SQL table objects provide the following benefits: 
  23263.  
  23264.    - Conformity to SAA guidelines 
  23265.    - Security and integrity facilities 
  23266.    - Ability to join and aggregate data in an efficient manner 
  23267.    - Ability to share data with others. 
  23268.  
  23269.   It is possible to access DB2/2 or OS/2 DBM and through either, to access data 
  23270.   held on any other database connected remotely to them. In order to do this, 
  23271.   you must have the following: 
  23272.  
  23273.    - A suitable connection to an OS/2 DBM or DB2/2 server (Refer to IBM OS/2 ES 
  23274.      Guide to Database Manager Clients IBM DB2/2 Information and Planning Guide 
  23275.  
  23276.    - The Visualizer-OS/2 DBM or Visualizer-DB2/2 installation procedure must 
  23277.      have been performed for each database that needs to be accessed, including 
  23278.      the OS/2 DBM and DB2/2 databases. (See IBM Visualizer for OS/2: Installing 
  23279.      and Supporting 
  23280.  
  23281.    - To access databases available using DDCS/2, the required DDCS/2 
  23282.      definitions must have been performed. 
  23283.  
  23284.   With the SQLSESSION object you can: 
  23285.  
  23286.    - Inquire about the availability of databases, and their status 
  23287.  
  23288.    - Access a particular database 
  23289.  
  23290.    - Inquire about what tables or views exist within a database 
  23291.  
  23292.    - Control SQL Logical Units of Work (LUW) 
  23293.  
  23294.    - Use commands executable by the EXECUTE IMMEDIATE statement (that is, 
  23295.      commands that do not require preparation). 
  23296.  
  23297.      EXECUTE can be used for commands at the table level as well as at the 
  23298.      database level. (For details of commands, refer to the appropriate command 
  23299.      reference information for the database product being accessed.) 
  23300.  
  23301.   In order to retrieve data you must use a combination of the SQLSESSION object 
  23302.   (to open the database and, if necessary, inquire on tables or views), and the 
  23303.   SQLTRANS object or objects (to specify the selection requests and obtain the 
  23304.   data). 
  23305.  
  23306.   Data can be obtained one row at a time or in multiple rows by retrieving 
  23307.   whole, or large parts, of an SQL query result. Modification of data within 
  23308.   SQL tables can be done in one of two ways: 
  23309.  
  23310.    - By reading data from the result of an SQL query into a local table, 
  23311.      modifying the data in the local table, then loading the local table to SQL 
  23312.      to overwrite the previous table. 
  23313.  
  23314.    - By using the Command action to send an SQL statement to the remote SQL 
  23315.      database. 
  23316.  
  23317.   You may only have one SQLSESSION object open at any one time in a Visualizer 
  23318.   application since OS/2 DBM allows only one database open per process at any 
  23319.   one time.  Therefore concurrent access to multiple databases is not 
  23320.   supported. 
  23321.  
  23322.   The SQLSESSION object is the parent of all SQLTRANS object instances. If the 
  23323.   SQLSESSION object is closed, the many SQLTRANS objects which are dependent on 
  23324.   the SQLSESSION will also be closed.  Since there can be multiple SQLTRANS 
  23325.   objects, you can access multiple tables at the same time. 
  23326.  
  23327.   The database accessed can be any database accessible through OS/2 DBM or 
  23328.   DB2/2. 
  23329.  
  23330.   The code below opens a session and identifies the databases available: 
  23331.  
  23332.     OPEN SQLSESSION Session,
  23333.                 DRIVE = "0"          ! Use the SQL system catalog
  23334.     CALL Session'DBNAMES(DataBases)  ! Retrieve a list of databases
  23335.                                      ! (will create the vector)
  23336.  
  23337. o Only one SQLSESSION object can exist at any one time. 
  23338.  
  23339. o In most cases, when the CODEDETAIL attribute is nonzero, it contains the 
  23340.   SQLCODE value passed from OS/2 Database Manager. The following table 
  23341.   describes the only exceptions, where values for CODEDETAIL are associated 
  23342.   with Visualizer FTB messages, and gives the meaning of the CODEDETAIL 
  23343.   attribute value in that context. 
  23344.  
  23345.    Message   Meaning of CODEDETAIL Attribute 
  23346.  
  23347.    FTB8500   System call... was unsuccessful. 
  23348.  
  23349.              During the execution of SQL interface code, a call to a system 
  23350.              routine failed. The CODEDETAIL attribute provides the 
  23351.              Dosreturncode return code from the system call. 
  23352.  
  23353.              Note:   Message FTB8500 is accompanied by message FTB8504 which 
  23354.              displays the OS/2 system error code.  To display the meaning of 
  23355.              these codes type the OS/2 command HELP in an OS/2 window, followed 
  23356.              by a space, then the number of the error. 
  23357.  
  23358.    FTB8528   The database product was not successfully started. 
  23359.  
  23360.              There has been a failure in a database product utility. The return 
  23361.              code from STARTDBM (or equivalent) is shown by the value in 
  23362.              CODEDETAIL. 
  23363.  
  23364.    FTB8536   The SQL interface could not place data into a variable or vector. 
  23365.  
  23366.              The value in CODEDETAIL, if nonzero, indicates the number of a 
  23367.              column containing a value that has failed to convert into a 
  23368.              Visualizer date or time value. This is due to a failure of the 
  23369.              SNAPSHOT action. 
  23370.  
  23371.    FTB8560   Strings returned by the SQL query exceeded the string length and 
  23372.              have been truncated. 
  23373.  
  23374.              The value in CODEDETAIL is the original length of the truncated 
  23375.              string. 
  23376.  
  23377.    FTB8649   One or more values in a column of a Visualizer table could not be 
  23378.              converted to a SQL value. The missing column information in the 
  23379.              SQL table has been replaced by nulls. 
  23380.  
  23381.              The value in CODEDETAIL is the number of the column containing the 
  23382.              value or values that failed to convert. 
  23383.  
  23384.  
  23385. ΓòÉΓòÉΓòÉ 180. SQLTRANS ΓòÉΓòÉΓòÉ
  23386.  
  23387. The SQLTRANS object allows you to access and store data in an SQL table. 
  23388.  
  23389. Parent: SQLSESSION 
  23390.  
  23391. Attributes 
  23392.  
  23393. Actions 
  23394.  
  23395. Events: None. 
  23396.  
  23397. More about SQLTRANS 
  23398.  
  23399. See also: SQLSESSION 
  23400.  
  23401.  
  23402. ΓòÉΓòÉΓòÉ 180.1. Attributes ΓòÉΓòÉΓòÉ
  23403.  
  23404. CODE                  CODEDETAIL 
  23405. EOF                   GENKEYCOL 
  23406. MODE                  TABLE 
  23407. SQLSTATE 
  23408.  
  23409.  
  23410. ΓòÉΓòÉΓòÉ 180.1.1. CODE ΓòÉΓòÉΓòÉ
  23411.  
  23412. The latest return code from any action or change of state. This is a read-only 
  23413. attribute. 
  23414.  
  23415. Default: 0 (If successful) 
  23416.  
  23417. CODE can contain error numbers describing OS/2, DBM (or DB2/2), or interface 
  23418. errors. 
  23419.  
  23420.  
  23421. ΓòÉΓòÉΓòÉ 180.1.2. CODEDETAIL ΓòÉΓòÉΓòÉ
  23422.  
  23423. In most cases where this value is nonzero it will hold an SQL code (refer to 
  23424. OS/2 ES 1.0 Messages and Error Recovery Guide or DB2/2 Messages and Problem 
  23425. Determination Guide See also More about SQLSESSION. 
  23426.  
  23427. Default: 0 (If successful) 
  23428.  
  23429.  
  23430. ΓòÉΓòÉΓòÉ 180.1.3. EOF ΓòÉΓòÉΓòÉ
  23431.  
  23432. EOF is set to 1 (true) when all rows from a query have been returned by a 
  23433. SNAPSHOT or GETNEXTROW action. 
  23434.  
  23435. Read-only. 
  23436.  
  23437.  
  23438. ΓòÉΓòÉΓòÉ 180.1.4. GENKEYCOL ΓòÉΓòÉΓòÉ
  23439.  
  23440. A name to be used by a column to hold a generated key sequence. If set, an 
  23441. extra column will be added to the Visualizer table generated by a SNAPSHOT or 
  23442. GETNEXTROW action. This will override any SETKEYS setting and be the key for 
  23443. the table. 
  23444.  
  23445. Default: None 
  23446.  
  23447. Oldkeys = Trans1'GenKeyCol
  23448. ! set Oldkeys to the current key sequence
  23449. Trans1'GenKeyCol = Newkeys
  23450. ! set the key sequence to NewKeys
  23451.  
  23452. Note:   You cannot modify GENKEYCOL when the cursor is open as the destination 
  23453.         table for the SNAPSHOT or GETNEXTROW operation has already been 
  23454.         prepared. 
  23455.  
  23456.  
  23457. ΓòÉΓòÉΓòÉ 180.1.5. MODE ΓòÉΓòÉΓòÉ
  23458.  
  23459. The direction of data transfer for this instance of the object. Can be set on 
  23460. OPEN, then read-only. 
  23461.  
  23462. "R"       Read 
  23463. "L"       Load 
  23464.  
  23465. Default: Read 
  23466.  
  23467. If both reading and writing to the same database is required, two SQLTRANS 
  23468. objects are required as shown below: 
  23469.  
  23470.   OPEN SQLTRANS Trans1,
  23471.                 Session,
  23472.                 TABLE = Tab,
  23473.                 MODE = "R"
  23474.   OPEN SQLTRANS Trans2,
  23475.                 Session,
  23476.                 TABLE = Tab,
  23477.                 MODE = "L"
  23478.  
  23479. The mode can be examined by using the LET statement: 
  23480.  
  23481. LET Read_Or_Load = Trans2'MODE
  23482.  
  23483.  
  23484. ΓòÉΓòÉΓòÉ 180.1.6. TABLE ΓòÉΓòÉΓòÉ
  23485.  
  23486. The handle of the Visualizer table object to be used. For READ, this must 
  23487. identify an empty table with no columns defined. For LOAD, actions use the 
  23488. definition of the table and its contents. 
  23489.  
  23490. Default: None 
  23491.  
  23492. CurrentTable = Trans1'TABLE
  23493. ! set CurrentTable to be a POINTER to the Table object
  23494. OPEN TABLE NewTable,
  23495.  NAME     = Name(NewFileName),
  23496.  LOCATION = Location(NewFileName),
  23497.  MODE     = "WRITE"
  23498.  
  23499. Trans1'TABLE = NewTable
  23500. ! Set the Table attribute to NewTable
  23501.  
  23502. Note:   You cannot modify TABLE during a SNAPSHOT operation, or in other 
  23503.         circumstances when the cursor is open. 
  23504.  
  23505.  
  23506. ΓòÉΓòÉΓòÉ 180.1.7. SQLSTATE ΓòÉΓòÉΓòÉ
  23507.  
  23508. The values are the SQLSTATE standard error codes as returned in the SQLCA by an 
  23509. SQL operation against a database. 
  23510.  
  23511. The codes are five character strings and are defined in the document OS/2 ES 
  23512. 1.0 Messages and Error Recovery Guide and DB2/2 Messages and Problem 
  23513. Determination Guide The attribute is read-only and is valid only after an SQL 
  23514. operation on a database. 
  23515.  
  23516.  
  23517. ΓòÉΓòÉΓòÉ 180.2. Actions ΓòÉΓòÉΓòÉ
  23518.  
  23519. COLUMNS()               CREATE() 
  23520. EXPRESSION()            GETNEXTROW() 
  23521. GOTOTOP()               KEYS() 
  23522. LOAD()                  SETEXPR() 
  23523. SETKEYS()               SNAPSHOT() 
  23524.  
  23525.  
  23526. ΓòÉΓòÉΓòÉ 180.2.1. COLUMNS() ΓòÉΓòÉΓòÉ
  23527.  
  23528. ΓöÇΓöÇCOLUMNS(sqlcolnames,sqltypes,devcolnames,devtypes)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23529.  
  23530. This operation fills parallel vector parameters with the names of columns or 
  23531. their data types. All of the parameters except sqlcolnames are optional. Valid 
  23532. in READ mode only. 
  23533.  
  23534. Once a SETEXPR has been successfully completed, this statement returns the 
  23535. selected information for each of the columns of the result of that query. 
  23536.  
  23537. Note:   The column names returned in sqlcolnames are the DBM assigned names 
  23538.         which may not be valid names for Visualizer columns and can differ from 
  23539.         the names in devcolnames (also used for a SNAPSHOT or GETNEXTROW 
  23540.         action). 
  23541.  
  23542. The code below retrieves a list of columns and their datatypes in the current 
  23543. SQL query. 
  23544.  
  23545. CALL Trans1'COLUMNS(Columns[0],Types[0])
  23546.  
  23547.  
  23548. ΓòÉΓòÉΓòÉ 180.2.2. CREATE() ΓòÉΓòÉΓòÉ
  23549.  
  23550. ΓöÇΓöÇCREATE(table,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23551.                   ΓööΓöÇdestΓöÇΓöÿ
  23552.  
  23553. Creates an SQL base table using the Visualizer table identified in the TABLE 
  23554. attribute as a template.  The name of the SQL table created must be provided as 
  23555. the first parameter, therefore this SQL table must not already exist. The 
  23556. operation, which is valid only in LOAD mode, takes no account of Visualizer 
  23557. table keys in the creation of the SQL table. The created columns will match by 
  23558. name and type to the Visualizer columns. The width is set to the largest width 
  23559. of a column, or to the display width, whichever is greater. 
  23560.  
  23561. The Visualizer data type to SQL data type mapping is as follows: 
  23562.  
  23563. Visualizer SQL 
  23564.  
  23565. Character VARCHAR(n), where n is specified to be either the display width of 
  23566.           the Visualizer column or the length of the longest value in the 
  23567.           column, whichever is greater. 
  23568.  
  23569. Numeric   Scientific Notation. Note that from Visualizer there is no way to 
  23570.           determine the numeric type further without end-user intervention. 
  23571.  
  23572. Date      Date (ISO format) 
  23573.  
  23574. Time      Time (ISO format) 
  23575.  
  23576. Graphic   Graphic (with similar limitations as Character, above) 
  23577.  
  23578. Remote platforms accessed from DDCS/2 can have different internal structures to 
  23579. those of ES DBM or DB2/2. For DB2 systems, dest holds the destination database 
  23580. and/or the tablespace. 
  23581.  
  23582. To specify the database only (for example DATABASE MYDB): 
  23583.  
  23584. CALL Trans2'CREATE("MYTAB","DATABASE MYDB")
  23585.  
  23586. To specify the database and tablespace: 
  23587.  
  23588. CALL Trans1'CREATE("MYTAB","MYDB.MYTBS")
  23589.  
  23590. To specify the tablespace: 
  23591.  
  23592. CALL trans'CREATE("MYTAB","MYTBS")
  23593.  
  23594. The database form is the default. 
  23595.  
  23596. For SQL/DS, dest holds the destination space. 
  23597.  
  23598. CALL trans'CREATE("MYTAB","MYDBSPC")
  23599.  
  23600. The code below creates the SQL table NEWTAB based on the contents of the 
  23601. Visualizer table TEST opened with the handle TAB. 
  23602.  
  23603. OPEN TABLE Tab,   !Assuming Trans'TABLE=Tab
  23604.  NAME     = "Test.TAB",
  23605.  LOCATION = "D:\TestData"
  23606.  
  23607. CALL Trans2'CREATE("NEWTAB")
  23608.  
  23609. Before you detach from a database, the logical unit of work must be completed 
  23610. by an explicit COMMIT.  Otherwise, any changes to the database since the last 
  23611. COMMIT will be lost by an implicit ROLLBACK. 
  23612.  
  23613. Data sent to the SQL database must be committed before closing the database if 
  23614. it is to persist: 
  23615.  
  23616. CALL Session'COMMIT
  23617.  
  23618.  
  23619. ΓòÉΓòÉΓòÉ 180.2.3. EXPRESSION() ΓòÉΓòÉΓòÉ
  23620.  
  23621. ΓöÇΓöÇEXPRESSION(vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23622.  
  23623. This operation fills the vector parameter with the SQL select expression that 
  23624. the object is working with. Valid only in READ mode, a valid expression only 
  23625. exists once a SETEXPR action has been performed. 
  23626.  
  23627. The following code retrieves the SQL query currently set in SLQTRANS object. 
  23628. (The vector Expression will be created if it does not exist already.) 
  23629.  
  23630. CALL Trans1'EXPRESSION(Expression[0])
  23631.  
  23632.  
  23633. ΓòÉΓòÉΓòÉ 180.2.4. GETNEXTROW() ΓòÉΓòÉΓòÉ
  23634.  
  23635. ΓöÇΓöÇGETNEXTROW(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23636.                 ΓööΓöÇvectorΓöÇΓöÿ
  23637.  
  23638. Reads one row resulting from the current SQL select expression and places the 
  23639. row returned into: 
  23640.  
  23641. o An ASL vector. If the name of the vector is inserted inside the parentheses, 
  23642.   the values for each column in the resulting row are placed sequentially in 
  23643.   the vector. 
  23644. o A table specified by TABLE.  The resulting row is appended to the table. 
  23645.  
  23646. After a GETNEXTROW() action, the current query remains set, and the next row 
  23647. resulting from the query becomes available for reading. If a SNAPSHOT() action 
  23648. is subsequently performed, the number of the remaining rows resulting from the 
  23649. current query and specified by the SNAPSHOT are read. GETNEXTROW() is valid 
  23650. only in READ mode after a SETEXPR action has completed successfully. 
  23651. GETNEXTROW() after an end of file sets the error code to 9026. 
  23652.  
  23653.  
  23654. ΓòÉΓòÉΓòÉ 180.2.5. GOTOTOP() ΓòÉΓòÉΓòÉ
  23655.  
  23656. ΓöÇΓöÇGOTOTOP()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23657.  
  23658. Resets the position of the next row to be read, either by a SNAPSHOT() or a 
  23659. GETNEXTROW() action.  This allows all the rows resulting from the current query 
  23660. to be read by a subsequent SNAPSHOT() action, including those already read by 
  23661. previous GETNEXTROW() actions (the rows may be delivered in a different order 
  23662. however) GOTOTOP() is valid only in READ mode after a SETEXPR action. 
  23663.  
  23664. ! Assumes SQLSESSION object "Session" is open
  23665. OPEN SQLTRANS Trans, Session,   ! Opens the SQLTRANS object
  23666.  MODE="R"
  23667.  
  23668. DEFINE selected[0]
  23669. INSERT selected[0]="SELECT * FROM STAFF"
  23670. ! from SAMPLE database
  23671. CALL Trans'SETEXPR(selected[0])
  23672. !selected is the vector containing the SQL select statement.
  23673.  
  23674. CALL Trans'GETNEXTROW(sample[0])
  23675. ! sample is the name of the vector into which the first row
  23676. ! resulting from the query is placed.
  23677.  
  23678. CALL Trans'GOTOTOP()         ! Allows first result row to be reread.
  23679. MODIFY Trans,                ! Modifies the SQLTRANS object.
  23680.    TABLE = Tab,              ! Tab is the instance of an open
  23681.    MODE  = "R"               ! Table object.
  23682.  
  23683. CALL Trans'GETNEXTROW()      ! Places the first result row into
  23684.                              !  the open table.
  23685. CALL Trans'SNAPSHOT()        ! Places all the remaining result
  23686.                              ! rows into the open table.
  23687.  
  23688.  
  23689. ΓòÉΓòÉΓòÉ 180.2.6. KEYS() ΓòÉΓòÉΓòÉ
  23690.  
  23691. ΓöÇΓöÇKEYS(vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23692.  
  23693. The names of the key columns that will be set on the Visualizer table are 
  23694. returned in the vector provided. Either the names specified by SETKEYS or the 
  23695. name specified by GENKEYCOL is returned in the vector parameter. 
  23696.  
  23697.   CALL Trans'KEYS(KeyList[0])
  23698.  
  23699.  
  23700. ΓòÉΓòÉΓòÉ 180.2.7. LOAD() ΓòÉΓòÉΓòÉ
  23701.  
  23702. ΓöÇΓöÇLOAD(table)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23703.  
  23704. Valid only in LOAD mode, replaces the contents of an SQL table with those of a 
  23705. Visualizer table. The number of columns in the tables must match, and the types 
  23706. of each column must be compatible. (Compatibility means that each value must 
  23707. match, or be convertible.) If partial data is read from SQL and then the LOAD 
  23708. is performed, the old contents of the SQL table will be lost. The name of the 
  23709. SQL table must be provided as a parameter, and the Visualizer table id used is 
  23710. that in TABLE. 
  23711.  
  23712.   CALL Trans'LOAD("NEWTAB")
  23713.  
  23714. Before you detach from a database, the logical unit of work must be completed 
  23715. by an explicit COMMIT.  Otherwise, any data you sent to the database since the 
  23716. last COMMIT will be lost by an implicit ROLLBACK. 
  23717.  
  23718. Data sent to the SQL database must be committed before closing the database if 
  23719. it is to persist: 
  23720.  
  23721. CALL Session'COMMIT
  23722.  
  23723.  
  23724. ΓòÉΓòÉΓòÉ 180.2.8. SETEXPR() ΓòÉΓòÉΓòÉ
  23725.  
  23726. ΓöÇΓöÇSETEXPR(expression)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23727.  
  23728. Takes a SELECT expression as input, as a scalar or vector of strings. The query 
  23729. is given and the result becomes available for processing. If an expression was 
  23730. previously set, then that expression is discarded and its associated resources 
  23731. are freed. Valid in READ mode only. 
  23732.  
  23733. The code below specifies an SQL query: 
  23734.  
  23735. CALL Trans1'SETEXPR("SELECT * FROM STAFF")
  23736.  
  23737. If expression is a vector, then its elements are concatenated to give the final 
  23738. expression. 
  23739.  
  23740. Note:   To maintain a log of database access, provide a 32-bit DLL called 
  23741.         SQLLOG.DLL in the LIBPATH. Every time SQL SELECT is issued, the 
  23742.         following C function is called: 
  23743.  
  23744.                 void APIENTRY sqllog(unsigned char *,short)
  23745.  
  23746. This C function must log the SQL SELECT. 
  23747.  
  23748. No error handling is provided for the logging process. If the DLL cannot be 
  23749. loaded, then no error is reported and the SQL expression is processed normally. 
  23750.  
  23751.  
  23752. ΓòÉΓòÉΓòÉ 180.2.9. SETKEYS() ΓòÉΓòÉΓòÉ
  23753.  
  23754. ΓöÇΓöÇSETKEYS(vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23755.  
  23756. This operation identifies the columns that will form the key of the Visualizer 
  23757. table generated by the SNAPSHOT operation.  The columns are identified by the 
  23758. names that are returned in the result of the SQL query in the EXPRESSION 
  23759. vector. (The names returned by the sqlcolnames parameter of the SQLTRANS 
  23760. COLUMNS action). The order of the names in the vector is major key to minor 
  23761. key. Valid only in READ mode after a SETEXPR action. 
  23762.  
  23763. Note:   You cannot perform a SETKEYS action while the cursor is open as the 
  23764.         destination Visualizer table for the SNAPSHOT or GETNEXTROW operation 
  23765.         has already been prepared. 
  23766.  
  23767. The code below creates a vector of columns to key the result table.  The SQL 
  23768. column names can be different from the Visualizer column names. 
  23769.  
  23770. DEFINE Keys[0]
  23771. INSERT Keys[0] = "ID"
  23772. CALL Trans'SETKEYS(Keys[0])
  23773.      ! Specify the keys to the SQLTRANS object
  23774.  
  23775.  
  23776. ΓòÉΓòÉΓòÉ 180.2.10. SNAPSHOT() ΓòÉΓòÉΓòÉ
  23777.  
  23778. ΓöÇΓöÇSNAPSHOT(number_of_rows)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23779.  
  23780. This action maps the result of an SQL query into a Visualizer table. The mode 
  23781. of the object must be READ, a valid expression must have been set, and a valid 
  23782. Visualizer table object id must be set in TABLE.  If  number_of_rows is 
  23783. specified, that number of rows is passed into the Visualizer table. If the 
  23784. number of rows is not specified, all rows are passed to the table. 
  23785.  
  23786. Data types map as follows: 
  23787.  
  23788. SQL       Visualizer 
  23789. Char      Character 
  23790. Varchar   Character 
  23791. Smallint  Numeric 
  23792. Integer   Numeric 
  23793. Float or Real Numeric 
  23794. Date      Date 
  23795. Time      Time 
  23796. Graphic   Graphic 
  23797. Decimal   Numeric 
  23798. Timestamp Character 
  23799. Long varchar Character 
  23800. Long vargraphic Character 
  23801.  
  23802. Name conversion is done automatically. The names of the Visualizer columns may 
  23803. need to be changed since SQL queries do not necessarily generate valid 
  23804. Visualizer column names. (The names returned by COLUMNS can be either the SQL 
  23805. or the Visualizer names.) 
  23806.  
  23807. SNAPSHOT does not issue a commit itself after it has read the data. The 
  23808. SNAPSHOT will however, change the location of the cursor. You may wish to issue 
  23809. a COMMIT to free locks on the tables. 
  23810.  
  23811. While the cursor is open, you can repeat the SNAPSHOT without providing a new 
  23812. table ID. For the initial SNAPSHOT, the table must be empty. 
  23813.  
  23814. SNAPSHOT to the end of file automatically resets the query so that the data can 
  23815. be re-read into another Visualizer table without the need to perform another 
  23816. SETEXPR. 
  23817.  
  23818. Valid only in READ mode. 
  23819.  
  23820. In the example below, 40 rows of the SQL result will be returned in the 
  23821. Visualizer table. 
  23822.  
  23823. CALL Trans1'SNAPSHOT(40)
  23824. A subsequent call with the same code will deliver the next 40 SQL result rows. 
  23825. If a key has been set, the new rows may appear distributed within the table. If 
  23826. a key has not been set, the new rows are appended to the end of the table. 
  23827.  
  23828. Note:   You can abort a SNAPSHOT action after the operation has started by 
  23829.         pressing Break more than six times while holding down the Ctrl key. The 
  23830.         possibility of aborting the operation is implemented by six Ctrl 
  23831.         Breaks. A subsequent Ctrl Break interrupts the SNAPSHOT action, closes 
  23832.         the current query and resets the cursor. 
  23833.  
  23834.  
  23835. ΓòÉΓòÉΓòÉ 180.3. More about SQLTRANS ΓòÉΓòÉΓòÉ
  23836.  
  23837. o In order to use SQLTRANS, you must have previously opened an SQLSESSION 
  23838.   object. You can have more than one SQLTRANS object, but the number is limited 
  23839.   by the resources used in the SQL database interface. 
  23840.  
  23841. o The SQLTRANS object can have one of two modes, depending on the direction of 
  23842.   the transfer. The object is controlling the transfer of data either from an 
  23843.   SQL query to a Visualizer table (known as READ), or from a Visualizer table 
  23844.   to an SQL base table (known as LOAD). 
  23845.  
  23846. o The object provides the following function: 
  23847.  
  23848.    - The ability to read the next n rows, n is selectable (see SNAPSHOT). 
  23849.  
  23850.    - The ability to read rows individually, and if required, a number of the 
  23851.      remaining rows. 
  23852.  
  23853.    - Creation of SQL tables using Visualizer tables as a template. 
  23854.  
  23855.    - The ability to replace the contents of an SQL table with those of a 
  23856.      Visualizer table, deleting the existing SQL table, and replacing it with 
  23857.      the Visualizer table. 
  23858.  
  23859. o The SQLSESSION object is intended to persist over long periods, while the 
  23860.   SQLTRANS object is intended to be used as a disposable object (used once for 
  23861.   a specific transaction and then to be discarded). 
  23862.  
  23863.   The SQLSESSION object is used to control the database while SQLTRANS is used 
  23864.   to exchange data. 
  23865.  
  23866. o The code below reads an SQL table (Q.STAFF assumed to exist in a database 
  23867.   called DB2) into a Visualizer table called C:\TEST\SQLTEST.TAB 
  23868.  
  23869.     !Open the SQL session
  23870.     OPEN SQLSESSION sqls,
  23871.      DRIVE  = 0,
  23872.      DBNAME = "DB2",
  23873.      STATUS = "S"
  23874.  
  23875.     !Open a new PRODUCT table
  23876.     OPEN TABLE Tab,
  23877.      NAME      = "SQLTEST.TAB",
  23878.      LOCATION  = "C:\TestData",
  23879.      MODE      = "WRITE"
  23880.  
  23881.     !Open the SQL transaction
  23882.     OPEN SQLTRANS Trans, sqls,
  23883.      TABLE = Tab,
  23884.      MODE  = "R"
  23885.     !Set up the SELECT statement
  23886.     CALL Trans'SETEXPR("SELECT * FROM Q.STAFF")
  23887.  
  23888.     !Retrieve the first 40 rows of the result
  23889.     CALL Trans'SNAPSHOT(40)
  23890.  
  23891. o The security of data within the SQL databases relies on the OS/2 DBM or DB2/2 
  23892.   security. There is no provision for direct access to the control structures 
  23893.   used within the interfaces. For additional information, refer to Database 
  23894.   Manager Programmer's Guide and Reference or DB2/2 Information and Planning 
  23895.   Guide 
  23896.  
  23897.  
  23898. ΓòÉΓòÉΓòÉ 181. SQRT() ΓòÉΓòÉΓòÉ
  23899.  
  23900. The SQRT() function provides the square root of a number. 
  23901.  
  23902. ΓöÇΓöÇSQRT(expression)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23903.  
  23904. Examples 
  23905.  
  23906. More about SQRT() 
  23907.  
  23908.  
  23909. ΓòÉΓòÉΓòÉ 181.1. Examples ΓòÉΓòÉΓòÉ
  23910.  
  23911. LET x = SQRT(1764)                              ! Result is 42
  23912. LET x = SQRT(66)                                ! Result is 8.12
  23913.  
  23914. Examples source library: 
  23915.  
  23916.  
  23917. ΓòÉΓòÉΓòÉ 181.2. More about SQRT() ΓòÉΓòÉΓòÉ
  23918.  
  23919. o An error is returned if expression gives a negative number, or if a 
  23920.   nonnumeric value is used. 
  23921.  
  23922.  
  23923. ΓòÉΓòÉΓòÉ 182. START ΓòÉΓòÉΓòÉ
  23924.  
  23925. The START statement causes a specified program to be loaded, and the ON START 
  23926. block of the program to be executed immediately. 
  23927.  
  23928. ΓöÇΓöÇSTARTΓöÇΓöÇtasktypeΓöÇΓöÇprogramalias,modulenameΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ
  23929.                                               Γöé         <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ   Γöé
  23930.                                               ΓööΓöÇ,START(ΓöÇΓöÇΓöÇparameterΓöÇΓö┤ΓöÇ)ΓöÇΓöÿ
  23931.  
  23932. Examples 
  23933.  
  23934. More about START 
  23935.  
  23936. See also: QUEUE PROGRAM, RUN PROGRAM, SIGNAL PROGRAM, STOP, WAIT PROGRAM 
  23937.  
  23938.  
  23939. ΓòÉΓòÉΓòÉ 182.1. Examples ΓòÉΓòÉΓòÉ
  23940.  
  23941. START APPLICATION dlg1, "I.Modules.Dialogue"
  23942. START PROGRAM     dlg2, "I.Modules.Dialogue"
  23943. START PROGRAM     lion, "I.Modules.Fierce", START(POINTER(teeth[0]))
  23944.  
  23945. Examples source library: 
  23946.  
  23947.  
  23948. ΓòÉΓòÉΓòÉ 182.2. More about START ΓòÉΓòÉΓòÉ
  23949.  
  23950. o A program can be active several times at once. The programalias enables you 
  23951.   to refer to each version of the program separately. 
  23952.  
  23953. o Once the ON START block of the newly started program has finished executing, 
  23954.   control is returned to the statement after the START statement in the 
  23955.   original program. 
  23956.  
  23957.  
  23958. ΓòÉΓòÉΓòÉ 183. STDEV(), STDSAMP() ΓòÉΓòÉΓòÉ
  23959.  
  23960. The STDEV() and STDSAMP() functions return standard deviations. 
  23961.  
  23962. STDEV() returns the standard deviation of a population of values. STDSAMP() 
  23963. returns an estimate of the standard deviation based on a sample of values. 
  23964.  
  23965. ΓöÇΓöÇSTDEV(array)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23966.  
  23967. ΓöÇΓöÇSTDSAMP(array)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  23968.  
  23969. Examples 
  23970.  
  23971. More about STDEV() and STDSAMP() 
  23972.  
  23973. See also: COUNT(), VARIANCE() 
  23974.  
  23975.  
  23976. ΓòÉΓòÉΓòÉ 183.1. Examples ΓòÉΓòÉΓòÉ
  23977.  
  23978. dev = STDEV(set)
  23979. sdv = STDSAMP(sample_set)
  23980.  
  23981. Examples source library: 
  23982.  
  23983.  
  23984. ΓòÉΓòÉΓòÉ 183.2. More about STDEV() and STDSAMP() ΓòÉΓòÉΓòÉ
  23985.  
  23986. o Any NULL or nonnumeric values in the array are ignored and the number of 
  23987.   numeric values is adjusted accordingly. However, if the final number of 
  23988.   numeric values falls below 2, an error is generated. 
  23989.  
  23990. o STDSAMP() is calculated by summing the squared deviations of each value from 
  23991.   the arithmetic mean, dividing by the number of values minus one, and taking 
  23992.   the square root. STDEV() is calculated by summing the squared deviations of 
  23993.   each value from the arithmetic mean, dividing by the number of values, and 
  23994.   taking the square root. 
  23995.  
  23996. o You can use the COUNT() function to provide the final sample size, and the 
  23997.   VARIANCE() function to give the variance. 
  23998.  
  23999.  
  24000. ΓòÉΓòÉΓòÉ 184. STOP ΓòÉΓòÉΓòÉ
  24001.  
  24002. The STOP statement in a program stops its execution and takes it out of an 
  24003. active state. 
  24004.  
  24005.           ΓöîΓöÇPROGRAMΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  24006. ΓöÇΓöÇSTOPΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24007.           Γö£ΓöÇAPPLICATIONΓöÇΓöñ
  24008.           ΓööΓöÇMASTERΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  24009.  
  24010. STOP terminates the APPLICATION, MASTER, or PROGRAM in which it is issued, with 
  24011. all its related tasks. The default is STOP PROGRAM. 
  24012.  
  24013. Examples 
  24014.  
  24015. More about STOP 
  24016.  
  24017.  
  24018. ΓòÉΓòÉΓòÉ 184.1. Examples ΓòÉΓòÉΓòÉ
  24019.  
  24020. ON ERROR
  24021. DO
  24022.   IF A.System.Event = "START"
  24023.   THEN STOP APPLICATION
  24024. END
  24025.  
  24026. ON STOP
  24027.   STOP
  24028.  
  24029. Examples source library: 
  24030.  
  24031.  
  24032. ΓòÉΓòÉΓòÉ 184.2. More about STOP ΓòÉΓòÉΓòÉ
  24033.  
  24034. o STOP MASTER can be issued from a subtask. This stops the master task and its 
  24035.   related subtasks. 
  24036.  
  24037. o STOP APPLICATION can be issued from a subtask or master task. This stops the 
  24038.   application and its related subtasks. 
  24039.  
  24040. o STOP PROGRAM is the default. This stops the current program and any related 
  24041.   subtasks. 
  24042.  
  24043.  
  24044. ΓòÉΓòÉΓòÉ 185. STREAM ΓòÉΓòÉΓòÉ
  24045.  
  24046. STREAM does not refer to a single object class, but to behavior implemented by 
  24047. the SMEMORY and SFILE objects. Stream classes are used to facilitate data 
  24048. exchange with other programs. 
  24049.  
  24050. SMEMORY is based on a contiguous area of memory. 
  24051.  
  24052. SFILE is based on an OS/2 file. 
  24053.  
  24054. Attributes 
  24055.  
  24056. Actions 
  24057.  
  24058. Events 
  24059.  
  24060. See also: DDESERVER, DDECLIENT, REFERENCE, 
  24061.  
  24062.  
  24063. ΓòÉΓòÉΓòÉ 185.1. Attributes ΓòÉΓòÉΓòÉ
  24064.  
  24065. CODE                  FORMAT 
  24066. LINK                  LOCATION 
  24067. MODE                  NAME 
  24068. OBJECTNAME            ORIGINATOR 
  24069. POINT                 REFERENCE 
  24070. SIZE                  STATUS 
  24071. TYPE 
  24072.  
  24073.  
  24074. ΓòÉΓòÉΓòÉ 185.1.1. CODE ΓòÉΓòÉΓòÉ
  24075.  
  24076. This read-only attribute will reflect the success or failure of the last 
  24077. operation. It may have a value specific to STREAM, such as when a GETASL action 
  24078. fails due to invalid data being in the STREAM, or it may be an error value 
  24079. returned from the operating system in response to file I/O, memory allocation, 
  24080. etc. 
  24081.  
  24082.  
  24083. ΓòÉΓòÉΓòÉ 185.1.2. FORMAT ΓòÉΓòÉΓòÉ
  24084.  
  24085. This attribute may be set on OPEN and then subsequently queried. It indicates 
  24086. the format of the data to be delivered to or accepted from the STREAM. Possible 
  24087. values might be "DIF", "IXF", "Metafile", "Bitmap", etc. 
  24088.  
  24089. If the STREAM is delivered by a SOURCE event, then FORMAT indicates the format 
  24090. in which the data should be given to the STREAM. If the STREAM is delivered by 
  24091. a TARGET event, then FORMAT indicates the format of data to be extracted from 
  24092. the STREAM. 
  24093.  
  24094. The STREAM makes no attempt to verify that data conforms to the specified 
  24095. format, this is an application responsibility. 
  24096.  
  24097.  
  24098. ΓòÉΓòÉΓòÉ 185.1.3. LINK ΓòÉΓòÉΓòÉ
  24099.  
  24100. This attribute indicates, when 1 (true), that the data within the STREAM is 
  24101. link information. Use the LINK object to access the information. 
  24102.  
  24103. Default: 0 (False) Set on OPEN, then read/write 
  24104.  
  24105.  
  24106. ΓòÉΓòÉΓòÉ 185.1.4. LOCATION ΓòÉΓòÉΓòÉ
  24107.  
  24108. This attribute can be set to a valid file location. If LOCATION is omitted, 
  24109. then a default unique location is generated and returned whenever LOCATION is 
  24110. queried. 
  24111.  
  24112. Default: None Set on OPEN, then read-only. 
  24113.  
  24114.  
  24115. ΓòÉΓòÉΓòÉ 185.1.5. MODE ΓòÉΓòÉΓòÉ
  24116.  
  24117. The access mode of the STREAM. If the STREAM is delivered by a TARGET event, 
  24118. then MODE has a value of READ-data can only be read from the object. If the 
  24119. STREAM is delivered by a SOURCE event, or if it is opened directly, then MODE 
  24120. has a value of WRITE. 
  24121.  
  24122. MODE may be modified to allow one object to open a STREAM, populate it with 
  24123. data, and then pass it on to another object in read-only mode. Modifying MODE 
  24124. resets the value of POINT to 0. 
  24125.  
  24126. If MODE is modified to a value other than "READ" or "WRITE", an error condition 
  24127. will be raised. If MODE is set to "WRITE" when the STREAM is an SFILE mapped to 
  24128. a write protected file, an error condition will be raised. 
  24129.  
  24130.  
  24131. ΓòÉΓòÉΓòÉ 185.1.6. NAME ΓòÉΓòÉΓòÉ
  24132.  
  24133. This attribute indicates the name of the data to be delivered or accepted from 
  24134. the STREAM. 
  24135.  
  24136. Default: None Set on OPEN, then read-only. (If NAME is omitted, a default 
  24137. unique name will be generated and returned whenever NAME is queried.) 
  24138.  
  24139.  
  24140. ΓòÉΓòÉΓòÉ 185.1.7. OBJECTNAME ΓòÉΓòÉΓòÉ
  24141.  
  24142. This attribute provides qualifying information to a target when a drop occurs. 
  24143.  
  24144. When a drop occurs this attribute will match the OBJECTNAME attribute of the 
  24145. SOURCECTRL object. 
  24146.  
  24147. Default: None 
  24148.  
  24149.  
  24150. ΓòÉΓòÉΓòÉ 185.1.8. ORIGINATOR ΓòÉΓòÉΓòÉ
  24151.  
  24152. This attribute may be set on OPEN and then subsequently queried. It identifies 
  24153. the object which generated the event through which the STREAM was delivered. 
  24154.  
  24155. If the SOURCE or TARGET event may have been generated by several different 
  24156. means, then you can use the ORIGINATOR attribute to distinguish between them. 
  24157.  
  24158.  
  24159. ΓòÉΓòÉΓòÉ 185.1.9. POINT ΓòÉΓòÉΓòÉ
  24160.  
  24161. This attribute signifies the current point within the data, that the next read 
  24162. or write operation would begin from, 0 being the beginning of the data. 
  24163.  
  24164. POINT may be queried or modified. Point must be an integer value greater than 
  24165. or equal to zero, if modified to any other value an error condition will be 
  24166. raised. 
  24167.  
  24168. If POINT is modified to a value greater than the current value of SIZE, it will 
  24169. be set to the current value of SIZE, no error will result. 
  24170.  
  24171.  
  24172. ΓòÉΓòÉΓòÉ 185.1.10. REFERENCE ΓòÉΓòÉΓòÉ
  24173.  
  24174. If a target application has established that it can only accept a reference to 
  24175. a particular data format, then this attribute is set to 1 (true) when that 
  24176. format is delivered by a TARGET event. 
  24177.  
  24178. The application should then open a REFERENCE object and pass it the STREAM 
  24179. holding the reference information. Query the attributes of the REFERENCE object 
  24180. for details of the reference data. 
  24181.  
  24182.  
  24183. ΓòÉΓòÉΓòÉ 185.1.11. SIZE ΓòÉΓòÉΓòÉ
  24184.  
  24185. This read-only attribute will reflect the total number of bytes of data within 
  24186. the STREAM. 
  24187.  
  24188.  
  24189. ΓòÉΓòÉΓòÉ 185.1.12. STATUS ΓòÉΓòÉΓòÉ
  24190.  
  24191. This attribute is initialized to 0 when delivered by a SOURCE event or by a 
  24192. TARGET event. You can modify it or query it. It is used to indicate success or 
  24193. failure of the event. 
  24194.  
  24195. If errors occur extracting or delivering data to the STREAM, then the STATUS 
  24196. attribute should be set to an integer between 1 and 255 prior to SHUTting the 
  24197. STREAM. 
  24198.  
  24199.  
  24200. ΓòÉΓòÉΓòÉ 185.1.13. TYPE ΓòÉΓòÉΓòÉ
  24201.  
  24202. The type of the object that is being dragged (or has been dropped). The 
  24203. OBJECTNAME attribute may have additional qualifying information about the 
  24204. object. TYPE is set when an object is dropped on the application as a result of 
  24205. type matching. 
  24206.  
  24207. Default: None Set on OPEN, then read/write 
  24208.  
  24209.  
  24210. ΓòÉΓòÉΓòÉ 185.2. Actions ΓòÉΓòÉΓòÉ
  24211.  
  24212. PUTASL()              GETASL() 
  24213. PUTLINE()             GETLINE() 
  24214. PUTDATA()             GETDATA() 
  24215. FINISHED() 
  24216.  
  24217.  
  24218. ΓòÉΓòÉΓòÉ 185.2.1. PUTASL() ΓòÉΓòÉΓòÉ
  24219.  
  24220. ΓöÇΓöÇPUTASL(variable,start,number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24221.  
  24222. This action populates the STREAM with ASL data, preserving ASL attribute 
  24223. information. 
  24224.  
  24225. variable may be a scalar or vector, declared or otherwise. start, if specified, 
  24226. is the first element to be taken from the vector. The value may be any positive 
  24227. integer, the default being 1. number, if specified, is the number of elements 
  24228. to be taken from a vector. The value may be any positive integer greater than 
  24229. 0, if unspecified it defaults to all remaining elements. 
  24230.  
  24231. If variable is a scalar, subsequent parameters are ignored. If it is a vector, 
  24232. and start is greater than the bounds of the vector, an error will result. If it 
  24233. is a vector, and start plus number minus 1 is greater than the bounds of the 
  24234. vector, an error will result. If MODE is not "WRITE", an error will result. 
  24235.  
  24236. Failure to complete this action due to environment errors such as disk full or 
  24237. unable to allocate memory, will result in an error condition. 
  24238.  
  24239.  
  24240. ΓòÉΓòÉΓòÉ 185.2.2. GETASL() ΓòÉΓòÉΓòÉ
  24241.  
  24242. ΓöÇΓöÇGETASL(variable,number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24243.  
  24244. This action populates an ASL variable with data from the STREAM. The data in 
  24245. the STREAM must have been created via the PUTASL action, otherwise the results 
  24246. will be unpredictable. 
  24247.  
  24248. variable may be a scalar or vector, declared or otherwise. number, if 
  24249. specified, is the number of ASL values to be read from the STREAM. The value 
  24250. may be any positive integer greater than 0, if unspecified it defaults to all 
  24251. remaining data in the STREAM. 
  24252.  
  24253. If variable is a scalar, number is ignored. If it is strongly typed, the 
  24254. value(s) being retrieved must conform to the type of the variable, otherwise an 
  24255. error will result. If it is a declared vector, and number exceeds the bounds of 
  24256. the vector, excess data is discarded without an error condition. If it is an 
  24257. undeclared vector, the vector is expanded as necessary to accommodate the 
  24258. values, within system limits. If system limits are met, excess data is 
  24259. discarded without an error. 
  24260.  
  24261. It is incumbent upon the client to ensure that the data being requested is 
  24262. suitable for the target variable. 
  24263.  
  24264.  
  24265. ΓòÉΓòÉΓòÉ 185.2.3. PUTLINE() ΓòÉΓòÉΓòÉ
  24266.  
  24267.                       ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  24268. ΓöÇΓöÇPUTLINE(variable,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24269.                       ΓööΓöÇstartΓöÇΓöÿ   ΓööΓöÇnumberΓöÇΓöÿ
  24270.  
  24271. This action populates the STREAM with ASCII data, inserting CRLF X'0D0A' ASCII 
  24272. codes after each value. Character conversion is performed on non character 
  24273. values prior to delivery to the STREAM. 
  24274.  
  24275. variable may be a scalar or vector, declared or otherwise. start, if specified, 
  24276. is the first element to be taken from a vector. The value may be any positive 
  24277. integer, the default being 1. number, if specified, is the number of elements 
  24278. to be taken from a vector. The value may be any positive integer greater than 
  24279. 0, if unspecified it defaults to all remaining elements. 
  24280.  
  24281. If variable is a scalar, subsequent parameters are ignored. If it is a vector, 
  24282. and start is greater than the bounds of the vector, an error will result. If it 
  24283. is a vector, and start plus number minus 1 is greater than the bounds of the 
  24284. vector, an error will result. If MODE is not "WRITE", an error will result. 
  24285.  
  24286. Failure to complete this action due to environment errors such as disk full or 
  24287. unable to allocate memory, will result in an error condition. 
  24288.  
  24289.  
  24290. ΓòÉΓòÉΓòÉ 185.2.4. GETLINE() ΓòÉΓòÉΓòÉ
  24291.  
  24292.                                     ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  24293. ΓöÇΓöÇGETLINE(variable,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24294.                       ΓööΓöÇrecordsΓöÇΓöÿ   ΓööΓöÇsplitΓöÇΓöÿ
  24295.  
  24296. This action populates an ASL variable with data from the STREAM. The data in 
  24297. the STREAM is delimited based on encountering CRLF X'0D0A' ASCII codes. 
  24298.  
  24299. variable may be a scalar or vector, declared or otherwise. records, if 
  24300. specified, is the number of delimited values to be read from the STREAM. The 
  24301. value may be any positive integer greater than 0, if unspecified it defaults to 
  24302. all remaining data in the STREAM. 
  24303.  
  24304. split is a Boolean value, optionally provided by the caller, that controls the 
  24305. behavior if the data contains delimited values greater than 255 bytes. If 
  24306. specified as 1 (the default), values greater than 255 bytes are split into 255 
  24307. byte blocks to populate multiple elements of variable. With split set to 1, 
  24308. variable may be populated with more elements than records. If specified as 0, 
  24309. data in excess of 255 bytes is discarded. A subsequent GETLINE request will 
  24310. read from the beginning of the next delimited value. 
  24311.  
  24312. In the event of delimited values greater than 255 bytes being encountered, 
  24313. GETLINE will return a value of 1, otherwise it will return 0. Where the length 
  24314. of delimited values is unknown, yet data loss must be avoided, the safest 
  24315. approach is to use GETLINE with variable as an undeclared vector, and records 
  24316. and split both set to 1. 
  24317.  
  24318. If variable is a scalar, records is ignored. If it is declared or strongly 
  24319. typed, the value(s) being retrieved must be able to be converted to the type of 
  24320. the variable, otherwise an error will result. If it is a declared vector, and 
  24321. records exceeds the bounds of the vector, excess data is discarded without an 
  24322. error condition. If it is an undeclared vector, the vector is expanded as 
  24323. necessary to accommodate the values, within system limits. If system limits are 
  24324. met, excess data is discarded without an error. 
  24325.  
  24326. It is incumbent upon the client to ensure that the data being requested is 
  24327. suitable for the target variable. 
  24328.  
  24329.  
  24330. ΓòÉΓòÉΓòÉ 185.2.5. PUTDATA() ΓòÉΓòÉΓòÉ
  24331.  
  24332.                       ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  24333. ΓöÇΓöÇPUTDATA(variable,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24334.                       ΓööΓöÇstartΓöÇΓöÿ   ΓööΓöÇelementsΓöÇΓöÿ
  24335.  
  24336. This action populates the STREAM with ASCII data. Character conversion is 
  24337. performed on noncharacter values prior to delivery to the STREAM. 
  24338.  
  24339. variable may be a scalar or vector, declared or otherwise. start, if specified, 
  24340. is the first element to be taken from a vector. The value may be any positive 
  24341. integer, the default being 1. elements, if specified, is the number of elements 
  24342. to be taken from a vector. The value may be any positive integer greater than 
  24343. 0, if unspecified it defaults to all remaining elements. 
  24344.  
  24345. If variable is a scalar, subsequent parameters are ignored. If it is a vector, 
  24346. and start is greater than the bounds of the vector, an error will result. If it 
  24347. is a vector, and start plus elements minus 1 is greater than the bounds of the 
  24348. vector, an error will result. If MODE is not "WRITE", an error will result. 
  24349.  
  24350. Failure to complete this action due to environment errors such as disk full or 
  24351. unable to allocate memory, will result in an error condition. 
  24352.  
  24353.  
  24354. ΓòÉΓòÉΓòÉ 185.2.6. GETDATA() ΓòÉΓòÉΓòÉ
  24355.  
  24356. ΓöÇΓöÇGETDATA(variable,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24357.                       ΓööΓöÇbytesΓöÇΓöÿ
  24358.  
  24359. This action populates an ASL variable with data from the STREAM. 
  24360.  
  24361. variable may be a scalar or vector, declared or otherwise. bytes, if specified, 
  24362. is the number of bytes to be read from the STREAM. The value may be any 
  24363. positive integer greater than 0, if unspecified it defaults to all remaining 
  24364. data in the STREAM. 
  24365.  
  24366. variable must be character or untyped, otherwise an error will result. If it is 
  24367. a scalar, and bytes exceeds 255, excess data is discarded without an error. If 
  24368. it is a vector, and bytes exceeds 255, the data is split into 255 byte blocks 
  24369. and assigned to elements of the vector. If it is a declared vector, and bytes 
  24370. divided by 255 exceeds the bounds of the vector, excess data is discarded 
  24371. without an error condition. If it is an undeclared vector, the vector is 
  24372. expanded as necessary to accommodate the data, within system limits. If system 
  24373. limits are met, excess data is discarded without an error. 
  24374.  
  24375.  
  24376. ΓòÉΓòÉΓòÉ 185.2.7. FINISHED() ΓòÉΓòÉΓòÉ
  24377.  
  24378. ΓöÇΓöÇFINISHED()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24379.  
  24380. This action signifies to the STREAM that all its data has been read, or that 
  24381. population of it is complete. On receipt, STREAM will inform the object that 
  24382. created it (provided ORIGINATOR has been set). 
  24383.  
  24384. The STREAM should always be SHUT after its FINISHED() action has been called. 
  24385.  
  24386.  
  24387. ΓòÉΓòÉΓòÉ 185.3. Events ΓòÉΓòÉΓòÉ
  24388.  
  24389. ERROR 
  24390.  
  24391. Usage exceptions are outlined under actions. 
  24392.  
  24393. The STREAM object in question should have its STATUS attribute set according to 
  24394. the error, its FINISHED() action called, and then SHUT the STREAM. 
  24395.  
  24396.  
  24397. ΓòÉΓòÉΓòÉ 186. STRING ΓòÉΓòÉΓòÉ
  24398.  
  24399. The STRING graphics primitive object class creates an instance of a text 
  24400. string. 
  24401.  
  24402. Parent: DEFINE 
  24403.  
  24404. Attributes 
  24405.  
  24406. Actions: None. 
  24407.  
  24408. Events: None. 
  24409.  
  24410. Examples 
  24411.  
  24412.  
  24413. ΓòÉΓòÉΓòÉ 186.1. Attributes ΓòÉΓòÉΓòÉ
  24414.  
  24415. ALIGNMENT             ANGLE 
  24416. CELLX                 CELLY 
  24417. DIRECTION             FONT 
  24418. HORZJUST              MULTILINE 
  24419. REFERENCE             SHEAR 
  24420. SIZE 
  24421.  
  24422. The following standard graphics attributes are also available. They are 
  24423. described in Standard graphics attributes: 
  24424.  
  24425. COLOR                 MIX 
  24426. SELECTED              VISIBLE 
  24427. CONSTANT              SELECTABLE 
  24428.  
  24429.  
  24430. ΓòÉΓòÉΓòÉ 186.1.1. ALIGNMENT ΓòÉΓòÉΓòÉ
  24431.  
  24432. Alignment of the text string: 
  24433.  
  24434. 1         Bottom left 
  24435. 2         Bottom center 
  24436. 3         Bottom right 
  24437. 4         Center left 
  24438. 5         Center 
  24439. 6         Center right 
  24440. 7         Top left 
  24441. 8         Top center 
  24442. 9         Top right 
  24443.  
  24444. Default: 1 (Bottom left) 
  24445.  
  24446.  
  24447. ΓòÉΓòÉΓòÉ 186.1.2. ANGLE ΓòÉΓòÉΓòÉ
  24448.  
  24449. Angle of the baseline relative to the axis. 
  24450.  
  24451. Default: 0 
  24452.  
  24453.  
  24454. ΓòÉΓòÉΓòÉ 186.1.3. CELLX ΓòÉΓòÉΓòÉ
  24455.  
  24456. Width of a character box in world coordinate units. 
  24457.  
  24458. Default: Defined at run time, device dependent 
  24459.  
  24460.  
  24461. ΓòÉΓòÉΓòÉ 186.1.4. CELLY ΓòÉΓòÉΓòÉ
  24462.  
  24463. Height of a character box in world coordinate units. 
  24464.  
  24465. Default: Defined at run time, device dependent 
  24466.  
  24467.  
  24468. ΓòÉΓòÉΓòÉ 186.1.5. DIRECTION ΓòÉΓòÉΓòÉ
  24469.  
  24470. Direction of the baseline: 
  24471.  
  24472. 1 or 0    Left to right 
  24473. 2         Bottom to top 
  24474. 3         Right to Left 
  24475. 4         Top to bottom 
  24476.  
  24477. Default: 0 (Left to right) 
  24478.  
  24479.  
  24480. ΓòÉΓòÉΓòÉ 186.1.6. FONT ΓòÉΓòÉΓòÉ
  24481.  
  24482. An integer that specifies the font to be used. To specify the typeface, use one 
  24483. of the following: 
  24484.  
  24485. 0         Standard (Latin-1 character set only) 
  24486. 1         Courier 
  24487. 2         Tms Rmn 
  24488. 3         Helv 
  24489. 64        Mincho (DBCS) 
  24490. 96        Gothic (DBCS) 
  24491.  
  24492. To specify a style other than Normal, add one or more of the following: 
  24493.  
  24494. 1         Medium (only for DBCS fonts) 
  24495. 4         Outline 
  24496. 8         Bold (not available with Medium) 
  24497. 16        Italic 
  24498.  
  24499. For example, to specify Helv Bold Italic, use 27 (that is, 3 + 8 + 16). To 
  24500. specify Mincho Medium Outline, use 69 (that is, 64 + 1 + 4). 
  24501.  
  24502. You can specify Medium only with the DBCS fonts Mincho and Gothic. Specifying 
  24503. Medium Bold is the same as just specifying Medium. 
  24504.  
  24505. If the font you specify is not valid or not installed, then the font defaults 
  24506. to 0 (currently Standard Normal). 
  24507.  
  24508. Default: 0 (Currently Standard) 
  24509.  
  24510.  
  24511. ΓòÉΓòÉΓòÉ 186.1.7. HORZJUST ΓòÉΓòÉΓòÉ
  24512.  
  24513. Horizontal alignment of string: 
  24514.  
  24515. 0         Left aligned 
  24516. 1         Right aligned 
  24517. 2         Centered 
  24518.  
  24519. Default: 0 (Left aligned) 
  24520.  
  24521.  
  24522. ΓòÉΓòÉΓòÉ 186.1.8. MULTILINE ΓòÉΓòÉΓòÉ
  24523.  
  24524. Permits display of multiple lines of text: 
  24525.  
  24526. 0         Single line only displayed (the third element of the REFERENCE 
  24527.           vector) 
  24528. 1         Multiple lines displayed (fourth and subsequent elements of the 
  24529.           REFERENCE vector) 
  24530.  
  24531. Default: 0 (Single line only) 
  24532.  
  24533.  
  24534. ΓòÉΓòÉΓòÉ 186.1.9. REFERENCE ΓòÉΓòÉΓòÉ
  24535.  
  24536. Vector defining the start point of the string and the text of the string 
  24537. itself. This vector consists of the following elements: 
  24538.  
  24539. 1         X coordinate of the start of the string 
  24540. 2         Y coordinate of the start of the string 
  24541. 3         Text of the first string 
  24542. 4         Text of the second string 
  24543.  
  24544. Multiple strings can be displayed only if the MULTILINE attribute is set. All 
  24545. coordinates are in world coordinate units. 
  24546.  
  24547. Set on OPEN, then read-only 
  24548.  
  24549. Default: "" 
  24550.  
  24551.  
  24552. ΓòÉΓòÉΓòÉ 186.1.10. SHEAR ΓòÉΓòÉΓòÉ
  24553.  
  24554. Angle of upright strokes relative to the vertical baseline. 
  24555.  
  24556. Default: 0 
  24557.  
  24558.  
  24559. ΓòÉΓòÉΓòÉ 186.1.11. SIZE ΓòÉΓòÉΓòÉ
  24560.  
  24561. Scale of the text, relative to the standard character cell size. 
  24562.  
  24563. Default: 1 
  24564.  
  24565.  
  24566. ΓòÉΓòÉΓòÉ 186.2. Examples ΓòÉΓòÉΓòÉ
  24567.  
  24568. DEFINE array[3]
  24569. LET array[1] = 30               ! X position
  24570. LET array[2] = 120              ! Y position
  24571. LET array[3] = "Graphic String" ! string text
  24572. OPEN STRING string, def1,
  24573.  REFERENCE = array[0],
  24574.  CELLX = 50,
  24575.  CELLY = 50,
  24576.  FONT = 2,
  24577.  COLOR = "Red"
  24578.  
  24579. Examples source library: 
  24580.  
  24581.  
  24582. ΓòÉΓòÉΓòÉ 187. STRING() ΓòÉΓòÉΓòÉ
  24583.  
  24584. The STRING() function is used to build a string using embedded expressions. 
  24585.  
  24586. ΓöÇΓöÇSTRING(textΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24587.                 Γöé <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ Γöé
  24588.                 ΓööΓöÇΓöÇΓöÇexpressionΓöÇΓö┤ΓöÇΓöÿ
  24589.  
  24590. Examples 
  24591.  
  24592. More about STRING() 
  24593.  
  24594.  
  24595. ΓòÉΓòÉΓòÉ 187.1. Examples ΓòÉΓòÉΓòÉ
  24596.  
  24597. x = STRING("_fish","Gold")         ! "Goldfish".
  24598. x = STRING("As simple as _","ABC") ! "As simple as ABC".
  24599.  
  24600. line = A.System.ErrorLine
  24601. num  = A.System.ErrorNumber[1]
  24602. info = A.System.ErrorInfo[1]
  24603. msg  = STRING("Error _ (^) at line _", num, info, line )
  24604.        ! "Error 2830 ('CODE') at line 8"
  24605.  
  24606. x = "'__' said the clown"
  24607. x = STRING( x, "Aha", "!" )       /* "'Aha!' said the clown". */
  24608.  
  24609. Examples source library: 
  24610.  
  24611.  
  24612. ΓòÉΓòÉΓòÉ 187.2. More about STRING() ΓòÉΓòÉΓòÉ
  24613.  
  24614. o If an underscore in text is followed directly by a single digit, it refers 
  24615.   explicitly to the corresponding expression. The digit does not appear in the 
  24616.   resulting text string. For example: 
  24617.  
  24618.     t[1] = "Error _1 at line _2"
  24619.     t[2] = "Line _2 caused error _1"
  24620.     t[3] = "Linea _2 erratum _1 causavit"
  24621.     msg  = STRING( t[1], num, line )  ! "Error 2830 at line 8"
  24622.     msg  = STRING( t[2], num, line )  ! "Line 8 caused error 2830"
  24623.     msg  = STRING( t[3], num, line )  ! "Linea 8 erratum 2830 causavit"
  24624.  
  24625. o Any optional expressions which do not have a corresponding underscore in text 
  24626.   are added at the end of text when it is displayed. 
  24627.  
  24628. o Excess underscores in text are left unchanged in the prompt displayed. 
  24629.  
  24630. o Any NULL values that should replace an underscore are inserted in displayable 
  24631.   format. 
  24632.  
  24633.  
  24634. ΓòÉΓòÉΓòÉ 188. SYSTEM ΓòÉΓòÉΓòÉ
  24635.  
  24636. The SYSTEM object allows access to facilities provided by OS/2. 
  24637.  
  24638. Attributes 
  24639.  
  24640. Actions 
  24641.  
  24642. Events 
  24643.  
  24644. Examples 
  24645.  
  24646.  
  24647. ΓòÉΓòÉΓòÉ 188.1. Attributes ΓòÉΓòÉΓòÉ
  24648.  
  24649. CODE                  CDIR 
  24650. CDRIVE                RETURNCODE 
  24651.  
  24652.  
  24653. ΓòÉΓòÉΓòÉ 188.1.1. CODE ΓòÉΓòÉΓòÉ
  24654.  
  24655. Most recent operating system return code. 
  24656.  
  24657. Read-only. 
  24658.  
  24659.  
  24660. ΓòÉΓòÉΓòÉ 188.1.2. CDIR ΓòÉΓòÉΓòÉ
  24661.  
  24662. Name of the current directory. 
  24663.  
  24664. Can be queried or modified. 
  24665.  
  24666.  
  24667. ΓòÉΓòÉΓòÉ 188.1.3. CDRIVE ΓòÉΓòÉΓòÉ
  24668.  
  24669. Name of the current drive. 
  24670.  
  24671. Can be queried or modified. 
  24672.  
  24673.  
  24674. ΓòÉΓòÉΓòÉ 188.1.4. RETURNCODE ΓòÉΓòÉΓòÉ
  24675.  
  24676. Code that the Visualizer EXE returns when it ends (provided no other 
  24677. application modifies this attribute). 
  24678.  
  24679. Can be queried or modified. 
  24680.  
  24681. Default: 0 
  24682.  
  24683.  
  24684. ΓòÉΓòÉΓòÉ 188.2. Actions ΓòÉΓòÉΓòÉ
  24685.  
  24686. ATTRIB()                   COMMAND() 
  24687. COMMANDCODE                CREATETEMP() 
  24688. COPY()                     EXCLUDETEMP() 
  24689. DELETE()                   DELETETEMP() 
  24690. DIRECTORIES()              DRIVES() 
  24691. FILE()                     FILES() 
  24692. INCLUDETEMP()              PRINTREQUEST() 
  24693. QUERYTEMP()                RENAME() 
  24694. SEARCHPATH()               QUERYCLASS() 
  24695. SETOBJECTDATA() 
  24696.  
  24697.  
  24698. ΓòÉΓòÉΓòÉ 188.2.1. ATTRIB() ΓòÉΓòÉΓòÉ
  24699.  
  24700. ΓöÇΓöÇATTRIB(file,attribute,set)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24701.  
  24702. Changes an attribute of file. attribute can be one of the following: 
  24703.  
  24704. "R"       Read-only 
  24705. "A"       Archive 
  24706. "H"       Hidden. 
  24707. set controls whether the attribute is cleared or set: 
  24708.  
  24709. 0         Clears the attribute 
  24710. 1         Sets the attribute. 
  24711.  
  24712. The default value is 1, which sets the attribute. 
  24713.  
  24714.  
  24715. ΓòÉΓòÉΓòÉ 188.2.2. COMMAND() ΓòÉΓòÉΓòÉ
  24716.  
  24717. ΓöÇΓöÇCOMMAND(ΓöÇΓö¼ΓöÇComStringΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24718.              ΓööΓöÇComVec[0]ΓöÇΓöÿ
  24719.  
  24720. If you specify ComString, then it is is the operating system command to be 
  24721. executed. If you specify ComVec[0], then the elements of the vector ComVec are 
  24722. concatenated to form the operating system command to be executed. 
  24723.  
  24724. This action uses the Command Line Interpreter to execute the command, so 
  24725. special characters such as &, <, and > can be used. 
  24726.  
  24727. The action is synchronous and waits until the command has completed before it 
  24728. returns. 
  24729.  
  24730. The OS/2 START command may be used to cause a command to run asynchronously. 
  24731. In this case, the command needs to terminate the process that it is running in, 
  24732. so it is only suitable for commands that interact with the user or commands 
  24733. (typically REXX) that issue an explicit EXIT. Using START will allow the 
  24734. command to run in a session of its own with a full screen window.  Some 
  24735. programs will only run asynchronously and must be used with the START command. 
  24736.  
  24737. COMMAND() raises ERROR if the Command Line Interpreter reports any error. The 
  24738. return code is available in the CODE attribute of the SYSTEM object. COMMAND() 
  24739. always returns NULL. 
  24740.  
  24741.  
  24742. ΓòÉΓòÉΓòÉ 188.2.3. COMMANDCODE() ΓòÉΓòÉΓòÉ
  24743.  
  24744. ΓöÇΓöÇCOMMANDCODE(ComString)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24745.  
  24746. The same as COMMAND(), but returns the Command Line Interpreter return code. 
  24747. COMMANDCODE() does not raise ERROR if the return code is nonzero. 
  24748.  
  24749.  
  24750. ΓòÉΓòÉΓòÉ 188.2.4. CREATETEMP() ΓòÉΓòÉΓòÉ
  24751.  
  24752. ΓöÇΓöÇCREATETEMP()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24753.  
  24754. Creates a temporary file and returns its name. Such temporary files are deleted 
  24755. when the application ends. 
  24756.  
  24757.  
  24758. ΓòÉΓòÉΓòÉ 188.2.5. COPY() ΓòÉΓòÉΓòÉ
  24759.  
  24760. ΓöÇΓöÇCOPY(file1,file2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24761.  
  24762. Copies from file1 to file2. file1 must be a fully qualified file name. If file1 
  24763. is a table, it must be closed before beginning the copy. If file2 exists, it 
  24764. must not be read-only or currently in use. 
  24765.  
  24766.  
  24767. ΓòÉΓòÉΓòÉ 188.2.6. EXCLUDETEMP() ΓòÉΓòÉΓòÉ
  24768.  
  24769. ΓöÇΓöÇEXCLUDETEMP(file)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24770.  
  24771. file is removed from the list of files to delete automatically when the 
  24772. application ends. 
  24773.  
  24774.  
  24775. ΓòÉΓòÉΓòÉ 188.2.7. DELETE() ΓòÉΓòÉΓòÉ
  24776.  
  24777. ΓöÇΓöÇDELETE(file)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24778.  
  24779. Deletes file file. file is the name and location of the file to be deleted. 
  24780.  
  24781.  
  24782. ΓòÉΓòÉΓòÉ 188.2.8. DELETETEMP() ΓòÉΓòÉΓòÉ
  24783.  
  24784. ΓöÇΓöÇDELETETEMP(file)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24785.  
  24786. Deletes the temporary file named file. 
  24787.  
  24788.  
  24789. ΓòÉΓòÉΓòÉ 188.2.9. DIRECTORIES() ΓòÉΓòÉΓòÉ
  24790.  
  24791. ΓöÇΓöÇDIRECTORIES(vector,location)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24792.  
  24793. vector is a vector which is filled with a list of the subdirectories in the 
  24794. directory identified by location. 
  24795.  
  24796.  
  24797. ΓòÉΓòÉΓòÉ 188.2.10. DRIVES() ΓòÉΓòÉΓòÉ
  24798.  
  24799. ΓöÇΓöÇDRIVES(vector)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24800.  
  24801. vector is a vector which is filled with a list of available drives in the form 
  24802. "A:", "C:". 
  24803.  
  24804.  
  24805. ΓòÉΓòÉΓòÉ 188.2.11. FILE() ΓòÉΓòÉΓòÉ
  24806.  
  24807. ΓöÇΓöÇFILE(vector,location,filename)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24808.  
  24809. vector is a vector which is filled with a list of items of information about 
  24810. the file filename in the directory location. The vector elements are: 
  24811.  
  24812. 1         File name, including the extension but excluding the location 
  24813. 2         "R" or "W", indicating whether the file can be written 
  24814. 3         File size, in bytes 
  24815. 4         Date of last write 
  24816. 5         Time of last write 
  24817. 6         Date of last read 
  24818. 7         Time of last read 
  24819. 8         Date of creation 
  24820. 9         Time of creation. 
  24821.  
  24822. Items not available are included in the vector as nulls. 
  24823.  
  24824.  
  24825. ΓòÉΓòÉΓòÉ 188.2.12. FILES() ΓòÉΓòÉΓòÉ
  24826.  
  24827.                                   ΓöîΓöÇ"*"ΓöÇΓöÇΓöÇΓöÇΓöÉ
  24828. ΓöÇΓöÇFILES(vectorΓöÇΓöÇ,ΓöÇΓöÇlocationΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24829.                                   ΓööΓöÇfilterΓöÇΓöÿ      ΓööΓöÇclassesΓöÇΓöÿ
  24830.  
  24831. vector is a vector which is filled with a list of the files in the directory 
  24832. identified by location. 
  24833.  
  24834. filter is optional. If filter is specified, it is used as a mask to filter out 
  24835. the files listed. If filter is omitted, "*" is assumed. 
  24836.  
  24837. classes is optional. If classes is specified, then it is a vector used as a 
  24838. mask to get an objectlist of a specified object or objects. If classes is 
  24839. omitted, then all objects are listed. The classes value for the object is 
  24840. indicated by the extended attribute of the object in the directory. 
  24841.  
  24842. Directories, hidden files, and system files are not listed. 
  24843.  
  24844.  
  24845. ΓòÉΓòÉΓòÉ 188.2.13. INCLUDETEMP() ΓòÉΓòÉΓòÉ
  24846.  
  24847. ΓöÇΓöÇINCLUDETEMP(file)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24848.  
  24849. file is added to the list of files to delete automatically when the application 
  24850. ends. 
  24851.  
  24852.  
  24853. ΓòÉΓòÉΓòÉ 188.2.14. PRINTREQUEST() ΓòÉΓòÉΓòÉ
  24854.  
  24855.                                                ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  24856. ΓöÇΓöÇPRINTREQUEST(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24857.                   ΓööΓöÇprinternameΓöÇΓöÿ   ΓööΓöÇnameΓöÇΓöÿ   ΓööΓöÇdialogΓöÇΓöÿ
  24858.  
  24859. PRINTREQUEST will open a PRINTER object and set the objects DESCRIPTION 
  24860. attribute to the selected printer (the default system printer or one selected 
  24861. from a dialog). 
  24862.  
  24863. printername, if specified, should match one of the Workplace Shell defined 
  24864. printers. 
  24865.  
  24866. If printername is specified as "*", the Workplace Shell default printer is 
  24867. assumed. If printername is not specified or there is no default printer, a list 
  24868. of printers is presented to the user (subject to the setting of Dialog). 
  24869.  
  24870. dialog controls the presentation of dialogs. The default is 1, but the 
  24871. parameter can be set to 0 to suppress the presentation of dialogs.  If the 
  24872. dialog is suppressed, the default printer specified in Print Manager is used. 
  24873.  
  24874. If specified, Name should match the instance name of the calling application. 
  24875. It is used to construct the title of the printer selection dialog. It may be a 
  24876. character string of up to 255 bytes. If not specified, the default title of 
  24877. Printer selection will be used. 
  24878.  
  24879. After the PRINTREQUEST action has been issued (and any dialogs closed), a PRINT 
  24880. event is signaled. The PRINT event is passed the handle to the open PRINTER 
  24881. object. 
  24882.  
  24883.  
  24884. ΓòÉΓòÉΓòÉ 188.2.15. QUERYTEMP() ΓòÉΓòÉΓòÉ
  24885.  
  24886. ΓöÇΓöÇQUERYTEMP(file)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24887.  
  24888. Returns 1 if file is in the list of temporary files that are deleted when the 
  24889. application ends. Returns 0 if file is not in the list. 
  24890.  
  24891.  
  24892. ΓòÉΓòÉΓòÉ 188.2.16. RENAME() ΓòÉΓòÉΓòÉ
  24893.  
  24894. ΓöÇΓöÇRENAME(file1,file2)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24895.  
  24896. Renames file1 to file2. 
  24897.  
  24898.  
  24899. ΓòÉΓòÉΓòÉ 188.2.17. SEARCHPATH() ΓòÉΓòÉΓòÉ
  24900.  
  24901. ΓöÇΓöÇSEARCHPATH(file,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24902.                      ΓööΓöÇpathvariableΓöÇΓöÿ
  24903.  
  24904. Searches a path variable for the presence of file and returns its location. If 
  24905. pathvariable is specified, it is the name of an OS/2 environment variable set 
  24906. by the SET command to the path which is to be searched.  If pathvariable is not 
  24907. specified, the standard installation path is searched. 
  24908.  
  24909.  
  24910. ΓòÉΓòÉΓòÉ 188.2.18. QUERYCLASS() ΓòÉΓòÉΓòÉ
  24911.  
  24912. ΓöÇΓöÇQUERYCLASS(class)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24913.  
  24914. Queries whether an object class is installed. class is a string containing the 
  24915. name of the object class, for example "IBMCHART". Returns either true (nonzero) 
  24916. meaning that the object class is installed, or false (zero) meaning that the 
  24917. object class is not installed. 
  24918.  
  24919.  
  24920. ΓòÉΓòÉΓòÉ 188.2.19. SETOBJECTDATA() ΓòÉΓòÉΓòÉ
  24921.  
  24922. ΓöÇΓöÇSETOBJECTDATA(wp_objectid,wp_setupstring)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24923.  
  24924. SETOBJECTDATA() passes a Workplace Shell setup string to an object. Identify 
  24925. the object either by its ID enclosed in angle brackets ( <>), or by its file 
  24926. name. 
  24927.  
  24928. SETOBJECTDATA() is the same as the REXXUTIL function SysSetObjectData, but 
  24929. SETOBJECTDATA() does not rely on REXX being installed. 
  24930.  
  24931. For example, you can use SETOBJECTDATA() to associate an icon to a file. 
  24932.  
  24933. You can also use SETOBJECTDATA() to open a view of an object, automatically 
  24934. resurfacing an existing view if there is one, like this: 
  24935.  
  24936. OPEN SYSTEM Sys
  24937. CALL Sys'SETOBJECTDATA("D:\MyFolder", "OPEN=DEFAULT")
  24938.  
  24939.  
  24940. ΓòÉΓòÉΓòÉ 188.3. Events ΓòÉΓòÉΓòÉ
  24941.  
  24942. PRINT 
  24943.  
  24944.  
  24945. ΓòÉΓòÉΓòÉ 188.3.1. PRINT ΓòÉΓòÉΓòÉ
  24946.  
  24947. Signaled by the PRINTREQUEST() action. 
  24948.  
  24949.  
  24950. ΓòÉΓòÉΓòÉ 188.4. Examples ΓòÉΓòÉΓòÉ
  24951.  
  24952. OPEN SYSTEM sys                ! Open the SYSTEM object
  24953.  
  24954. CALL sys'DRIVES( drivelist )   ! List available drives
  24955.  
  24956. CALL sys'DIRECTORIES(
  24957.  directorylist,                ! List directories
  24958.  sys'cdrive )                  ! on the current drive
  24959.  
  24960. CALL sys'FILES(
  24961.  filelist,                     ! List files
  24962.  sys'CDRIVE || sys'CDIR )      ! in the current directory
  24963.  
  24964. tempname=sys'CREATETEMP()      ! Create a temporary file
  24965. CALL COPYTAB( tempname, 'EMPDATA', sys'SEARCHPATH( 'EMPDATA' ))
  24966. CALL sys'DELETETEMP(tempname)  ! Delete the temporary file
  24967.  
  24968. SHUT sys                       ! Shut the system object
  24969. The example below executes an operating system command for directory of all 
  24970. files with the extension C and redirects the output to a file. 
  24971.  
  24972. FORGIVE CALL sys'COMMAND( "DIR *.C >file" )
  24973. FORGIVE CALL sys'DELETE( "file" )
  24974.  
  24975. Using START allows command to run in a session of its own with a full screen 
  24976. window. 
  24977.  
  24978. CALL sys'COMMAND ( "START myprog /s" )
  24979.  
  24980. The example below shows how to select a list of objects where the objects 
  24981. included are restricted to those contained in a passed vector. 
  24982.  
  24983. DEFINE classes[1] = "IBMTABLE"
  24984. OPEN SYSTEM os2
  24985. CALL os2'Files(Vector, ".","*",classes)
  24986.  
  24987. Examples source library: 
  24988.  
  24989.  
  24990. ΓòÉΓòÉΓòÉ 189. TAB() ΓòÉΓòÉΓòÉ
  24991.  
  24992. The TAB() function returns a format value which specifies that tab characters 
  24993. are required in the output. Only devices which support lines of output (such as 
  24994. a printer) are suitable destinations for the format value. 
  24995.  
  24996. ΓöÇΓöÇTAB(expression)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  24997.  
  24998. Examples 
  24999.  
  25000. See also: LINE(), PAGE(), POSITION(), PRINTER, SPACE() 
  25001.  
  25002.  
  25003. ΓòÉΓòÉΓòÉ 189.1. Examples ΓòÉΓòÉΓòÉ
  25004.  
  25005. CALL Printer'PUT("Pages:",TAB(3),Totpage)
  25006.  
  25007. Examples source library: 
  25008.  
  25009.  
  25010. ΓòÉΓòÉΓòÉ 190. TABLE ΓòÉΓòÉΓòÉ
  25011.  
  25012. The TABLE object class provides access to user data tables. 
  25013.  
  25014. Attributes 
  25015.  
  25016. Actions 
  25017.  
  25018. Events: None. 
  25019.  
  25020. Examples 
  25021.  
  25022. See also: IBMDATA, VIEWROWS, VIEWCALCS, VIEWORDER, VIEWTABLES 
  25023.  
  25024.  
  25025. ΓòÉΓòÉΓòÉ 190.1. Attributes ΓòÉΓòÉΓòÉ
  25026.  
  25027. CODE                   COLUMNS 
  25028. COMMENT                KEEP 
  25029. KEYED                  KEYS 
  25030. LOCATION               MODE 
  25031. NAME                   OBJECTCLASS 
  25032. PREFIX                 ROWS 
  25033. TYPE 
  25034.  
  25035.  
  25036. ΓòÉΓòÉΓòÉ 190.1.1. CODE ΓòÉΓòÉΓòÉ
  25037.  
  25038. Most recent operating system or internal error code. 
  25039.  
  25040. Can be queried but not modified. 
  25041.  
  25042. Default: None 
  25043.  
  25044.  
  25045. ΓòÉΓòÉΓòÉ 190.1.2. COLUMNS ΓòÉΓòÉΓòÉ
  25046.  
  25047. Total number of columns. 
  25048.  
  25049. Read-only. 
  25050.  
  25051. Default: 0 (For a new table) 
  25052.  
  25053.  
  25054. ΓòÉΓòÉΓòÉ 190.1.3. COMMENT ΓòÉΓòÉΓòÉ
  25055.  
  25056. A comment stored with the table. This is displayed (and can be changed) when 
  25057. the table is edited using the table editor. 
  25058.  
  25059. Default: None 
  25060.  
  25061.  
  25062. ΓòÉΓòÉΓòÉ 190.1.4. KEEP ΓòÉΓòÉΓòÉ
  25063.  
  25064. Whether the table is to be kept after it is SHUT (by all end users). 
  25065.  
  25066. 0         Temporary tables 
  25067. 1         Permanent tables 
  25068.  
  25069. Set on OPEN, then modifiable 
  25070.  
  25071. Default: 1 (Permanent tables) 
  25072.  
  25073.  
  25074. ΓòÉΓòÉΓòÉ 190.1.5. KEYED ΓòÉΓòÉΓòÉ
  25075.  
  25076. Whether the table has keys or is unkeyed: 
  25077.  
  25078. 0         Unkeyed 
  25079. 1         Keyed 
  25080.  
  25081. Read-only. 
  25082.  
  25083. Default: 0 (For a new table) 
  25084.  
  25085.  
  25086. ΓòÉΓòÉΓòÉ 190.1.6. KEYS ΓòÉΓòÉΓòÉ
  25087.  
  25088. Number of key columns, up to a maximum of 16. Only meaningful if KEYED is set. 
  25089. The number of key columns is set using the SETKEYS() action. 
  25090.  
  25091. Read-only. 
  25092.  
  25093. Default: None 
  25094.  
  25095.  
  25096. ΓòÉΓòÉΓòÉ 190.1.7. LOCATION ΓòÉΓòÉΓòÉ
  25097.  
  25098. Location of the file (its OS/2 path). 
  25099.  
  25100. Set on OPEN, then read-only. 
  25101.  
  25102. Default: None 
  25103.  
  25104.  
  25105. ΓòÉΓòÉΓòÉ 190.1.8. MODE ΓòÉΓòÉΓòÉ
  25106.  
  25107. Sets the access mode: 
  25108.  
  25109. "READ"    Opened with read-only access. 
  25110.  
  25111. "WRITE"   Opened with read and write access. 
  25112.  
  25113. "ASAP"    Opened with ASAP access (data is written back to disk as soon as 
  25114.           possible). 
  25115.  
  25116.           Note:   This causes a very significant decrease in performance when 
  25117.                   using large tables or tables in remote nodes on a LAN. Where 
  25118.                   performance is critical, use the WRITE access mode instead of 
  25119.                   ASAP. 
  25120.  
  25121.  
  25122. Read-only after creation. 
  25123.  
  25124. Default: "READ" 
  25125.  
  25126.  
  25127. ΓòÉΓòÉΓòÉ 190.1.9. NAME ΓòÉΓòÉΓòÉ
  25128.  
  25129. Name of the file which is to hold the table. 
  25130.  
  25131. Set on OPEN, then read-only. 
  25132.  
  25133. Default: None 
  25134.  
  25135.  
  25136. ΓòÉΓòÉΓòÉ 190.1.10. OBJECTCLASS ΓòÉΓòÉΓòÉ
  25137.  
  25138. External class name of the table. Refers to the .TYPE attribute of the OS/2 
  25139. file that the table is held as. Set it to "IBMTABLE" to get the table listed in 
  25140. Visualizer selection lists of tables. 
  25141.  
  25142. Default: None 
  25143.  
  25144.  
  25145. ΓòÉΓòÉΓòÉ 190.1.11. PREFIX ΓòÉΓòÉΓòÉ
  25146.  
  25147. Prefix (that is, the first part of the name) to be used when referring to 
  25148. columns of the table. 
  25149.  
  25150. Set on OPEN, then read-only. 
  25151.  
  25152. Default: Last part of the name of the object used in the OPEN statement to 
  25153. represent the table 
  25154.  
  25155.  
  25156. ΓòÉΓòÉΓòÉ 190.1.12. ROWS ΓòÉΓòÉΓòÉ
  25157.  
  25158. Number of rows. Only meaningful if KEYED is set. 
  25159.  
  25160. Read-only. 
  25161.  
  25162. Default: 0 (For a new table) 
  25163.  
  25164.  
  25165. ΓòÉΓòÉΓòÉ 190.1.13. TYPE ΓòÉΓòÉΓòÉ
  25166.  
  25167. Type of table: 
  25168.  
  25169. "PERM"    Permanent.  Saved to disk at once. 
  25170. "TEMP"    Temporary. Saved to disk only when shut (if KEEP=1).. 
  25171.  
  25172. Set on OPEN, then read-only. 
  25173.  
  25174. Default: "PERM" 
  25175.  
  25176.  
  25177. ΓòÉΓòÉΓòÉ 190.2. Actions ΓòÉΓòÉΓòÉ
  25178.  
  25179. CHECKPOINT()            COLUMNS() 
  25180. KEYS()                  NOKEYS() 
  25181. SETKEYS()               SAVETO() 
  25182.  
  25183.  
  25184. ΓòÉΓòÉΓòÉ 190.2.1. CHECKPOINT() ΓòÉΓòÉΓòÉ
  25185.  
  25186. ΓöÇΓöÇCHECKPOINT()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25187.  
  25188. Ensures that a table is up to date on disk. This only applies to tables opened 
  25189. for WRITE. READ tables cannot be modified. ASAP tables are checkpointed 
  25190. automatically after every modification. 
  25191.  
  25192.  
  25193. ΓòÉΓòÉΓòÉ 190.2.2. COLUMNS() ΓòÉΓòÉΓòÉ
  25194.  
  25195. ΓöÇΓöÇCOLUMNS(colv)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25196.  
  25197. colv is a vector to be filled with the names of the columns of the table. 
  25198.  
  25199.  
  25200. ΓòÉΓòÉΓòÉ 190.2.3. KEYS() ΓòÉΓòÉΓòÉ
  25201.  
  25202. ΓöÇΓöÇKEYS(colv)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25203.  
  25204. colv is a vector to be filled with the names of the key columns of the table. 
  25205. Names of descending key columns are preceded with a minus sign (-). 
  25206.  
  25207.  
  25208. ΓòÉΓòÉΓòÉ 190.2.4. NOKEYS() ΓòÉΓòÉΓòÉ
  25209.  
  25210. ΓöÇΓöÇNOKEYS()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25211.  
  25212. Makes the object into an unKEYED table. 
  25213.  
  25214.  
  25215. ΓòÉΓòÉΓòÉ 190.2.5. SETKEYS() ΓòÉΓòÉΓòÉ
  25216.  
  25217. ΓöÇΓöÇSETKEYS(colv)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25218.  
  25219. colv is a vector containing the names of columns which are to become the keys 
  25220. of the table. SETKEYS() makes the object into a keyed table, and thus affects 
  25221. the KEYED attribute. 
  25222.  
  25223.  
  25224. ΓòÉΓòÉΓòÉ 190.2.6. SAVETO() ΓòÉΓòÉΓòÉ
  25225.  
  25226. ΓöÇΓöÇSAVETO(filename)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25227.  
  25228.  Saves the TABLE data as a new OS/2 file. 
  25229.  
  25230.  
  25231. ΓòÉΓòÉΓòÉ 190.3. Examples ΓòÉΓòÉΓòÉ
  25232.  
  25233. This procedure provides code which demonstrates the use of a TABLE object. 
  25234.  
  25235. /*----------------------------------------------------------------------*/
  25236. /* Define a new table of four columns. Specify two key columns and add  */
  25237. /* four rows of data.                                                   */
  25238. /*----------------------------------------------------------------------*/
  25239. PROCEDURE TABLE
  25240. DO
  25241.   DECLARE NUMERIC i
  25242.   DECLARE NUMERIC j
  25243.   OPEN SYSTEM Sys                    ! This is often useful
  25244.  
  25245.   ! First erase the old table if necessary, FORGIVE in case it
  25246.   ! isn't there). Then open the table.
  25247.   FORGIVE CALL Sys'DELETE("D:\Address.tab")
  25248.   OPEN TABLE AddTab,                 ! Handle of table
  25249.    NAME = "Address.tab",             ! Name of address table
  25250.    LOCATION = "D:\",                 ! Location of address table
  25251.    MODE = "WRITE"                    ! Need write access to the table
  25252.  
  25253.   ! Now define the columns (the order does not matter)
  25254.   DEFINE AddTab.Name[0]
  25255.   DEFINE AddTab.Address[0]
  25256.   DEFINE AddTab.Phone[0]
  25257.   DEFINE AddTab.CustomerNo[0]
  25258.  
  25259.   ! Set the column types (although this isn't essential)
  25260.   LET AddTab.Name      [0]'TYPE = "Character"
  25261.   LET AddTab.Address   [0]'TYPE = "Character"
  25262.   LET AddTab.Phone     [0]'TYPE = "Numeric"
  25263.   LET AddTab.CustomerNo[0]'TYPE = "Numeric"
  25264.  
  25265.   ! Now set the key columns up. This could also be done after the
  25266.   ! data has been inserted IF each column is treated separately
  25267.   ! and the data is inserted in the correct key order. (It is
  25268.   ! actually quicker for bulk data to insert the data into the
  25269.   ! table before keying the table, provided the data is inserted
  25270.   ! in the right order and all the columns are the same length
  25271.   ! when the SETKEYS action is performed.)
  25272.   DEFINE Keys[0]                     ! Vector for key column names
  25273.   INSERT Keys[0] = "CustomerNo"      ! First entry is the first key
  25274.   INSERT Keys[0] = "Name"            ! Second entry is the second key
  25275.   ! Use a minus sign to specify a descending key
  25276.   !(for example, LET Keys[2] = "-Name")
  25277.   CALL AddTab'SETKEYS(Keys)          ! Pass the key names to the table
  25278.   LET AddTab.CustomerNo[0]'ORDER = 1 ! Set column order
  25279.   LET AddTab.Name      [0]'ORDER = 2
  25280.   LET AddTab.Phone     [0]'ORDER = 3
  25281.   LET AddTab.Address   [0]'ORDER = 4
  25282.  
  25283.   ! Now we can insert the data.
  25284.   ! Create a new row using INSERT or INSERT().
  25285.   INSERT AddTab.CustomerNo{10002, "Henry Einsiedler"}
  25286.   row = INSERT(AddTab.CustomerNo{10007, "William Slocombe"})
  25287.  
  25288.   ! We can assign a column value when we insert the row.
  25289.   INSERT AddTab.Phone{10004, "Huw Owen"} = 293845
  25290.   row = INSERT(AddTab.Phone{10006, "Sally Cohen"}, 205774)
  25291.  
  25292.   ! For the rest of the column values, identify the row by its key.
  25293.   LET AddTab.Address{10002, "Henry Einsiedler"} =
  25294.    "28 Priorsfield Road, Handforth"
  25295.   LET AddTab.Phone{10002, "Henry Einsiedler"} = 69884
  25296.   LET AddTab.Address{10004, "Huw Owen"} =
  25297.    "28 London Road, Helston"
  25298.  
  25299.   ! If we know the row number, we can identify the row directly. The
  25300.   ! row number is only valid if there have been no further INSERTs.
  25301.   LET AddTab.Address[row] = "The Manor, Long Compton"
  25302.  
  25303.   ! We can get the row number for a given key using the ROW function.
  25304.   row = ROW(AddTab.CustomerNo{10007, "William Slocombe"} )
  25305.   LET AddTab.Address[row] = "71 Hunts Road, Ayr"
  25306.   LET AddTab.Phone  [row] = 42597
  25307. start program s,'showtab', start(pointer(addtab[0]))
  25308.  
  25309.   ! Another column can be added at any time - use DEFINE x[*]
  25310.   ! to specify the same number of rows as the rest of the table.
  25311.   ! Delete a row by deleting any of the column entries for that row
  25312.   ! for example,  DELETE AddTab.Code{10002, "Henry Einsiedler"}
  25313.   DEFINE AddTab.Code[*]
  25314.   LET AddTab.Code{10004, "Huw Owen"} = 99
  25315. start program s,'showtab', start(pointer(addtab[0]))
  25316.  
  25317.   ! Now suppose it is necessary to change the keys of the table.
  25318.   ! SETKEYS can be used again - but only when the data is in the
  25319.   ! new order. The INDEX function must be used to find the new
  25320.   ! order for the table and the rows must be sorted.
  25321.   ! First find out the new order for the rows - Take the Address
  25322.   ! column as key 1 and phone as a descending key 2. Rowindex is
  25323.   ! a vector of row numbers in the new order
  25324.   INDEX rowindex = -AddTab.Phone, AddTab.Address
  25325.  
  25326.   ! Next open a new table to hold the sorted rows of data.
  25327.   ! First erase the old table if necessary
  25328.   FORGIVE CALL Sys'DELETE("D:\Address.TMP")
  25329.   OPEN TABLE NewTab,                 ! Handle of table
  25330.    NAME = "Address.TMP",             ! Name of new table
  25331.    LOCATION = "D:\",                 ! Location of new table
  25332.    MODE = "WRITE"                    ! Need write access to the table
  25333.  
  25334.   ! Define the same columns in the temporary table. We can find
  25335.   ! out what the old columns are using the COLUMNS attribute and
  25336.   ! COLUMNS action, and the number of rows with the ROWS attribute
  25337.   numcols = AddTab'COLUMNS           ! Number of columns in table
  25338.   CALL AddTab'COLUMNS(addcols)       ! Get vector of column names
  25339.   numrows = AddTab'ROWS              ! Number of rows in table
  25340.  
  25341.   ! Now do the actual work. Make a pointer to the old and new
  25342.   ! columns (don't have to use a pointer but its faster if we do),
  25343.   ! define the new column, copy across the data type and all the
  25344.   ! data in the order prescribed by the rowindex vector from above.
  25345.   DO i = 1 : numcols                 ! For each column . . .
  25346.     ! Construct pointer to new and old columns
  25347.     newcol = POINTER("NewTab."~addcols[i])
  25348.     oldcol = POINTER("AddTab."~addcols[i])
  25349.  
  25350.     ! Define the new column and copy the column type across
  25351.     DEFINE (?newcol)[0]
  25352.     (?newcol)[0]'TYPE = (?oldcol)[0]'TYPE
  25353.  
  25354.     ! Now copy the columns data across in the correct order
  25355.     DO j = 1 : numrows               ! For each row . . .
  25356.       INSERT (?newcol)[0] =          ! Insert as the last element
  25357.        (?oldcol)[ rowindex[j] ]      !   the j'th ordered element
  25358.     END
  25359.   END
  25360.  
  25361.   ! Now key the new table using setkeys.
  25362.   DEFINE Keys[0]
  25363.   INSERT Keys[0] = "-Phone"          ! 1st key Phone   (descending)
  25364.   INSERT Keys[0] = "Address"         ! 2nd key Address (ascending)
  25365.   CALL NewTab'SETKEYS(Keys)
  25366.   LET NewTab.Phone     [0]'ORDER = 1 ! Set column order
  25367.   LET NewTab.Address   [0]'ORDER = 2
  25368.   LET NewTab.CustomerNo[0]'ORDER = 3
  25369.   LET NewTab.Name      [0]'ORDER = 4
  25370.   LET NewTab.Code      [0]'ORDER = 5
  25371. start program s,'showtab', start(pointer(newtab[0]))
  25372.  
  25373.   ! If this all worked we can discard the original by setting KEEP
  25374.   addtab'keep = 0                    ! Don't want to keep the table
  25375.   SHUT AddTab
  25376.  
  25377.   ! If the table is to be used in Visualizer (for example, Table or
  25378.   ! Chart), it is necessary to set the OBJECTCLASS attribute of the table
  25379.   LET NewTab'OBJECTCLASS = "IBMTABLE"
  25380.  
  25381.   ! Now SHUT the temporary table and rename it
  25382.   SHUT NewTab
  25383.   CALL Sys'RENAME("D:\Address.TMP", "D:\Address.tab")
  25384.  
  25385.   SHUT sys
  25386. END
  25387.  
  25388. The following example writes the contents of a table to a flat comma-separated 
  25389. file. 
  25390.  
  25391. /*----------------------------------------------------*/
  25392. /* Print a table as a comma-separated file            */
  25393. /* For example, CALL CSV( 'EMPDATA', 'EMPDATA.PRT' )  */
  25394. /*----------------------------------------------------*/
  25395. PROCEDURE CSV( tablename, filename )
  25396. DO
  25397.   DECLARE CHAR[*] tablename   ! Table name, anywhere on FTB1PATH
  25398.   DECLARE CHAR[*] filename    ! Output file, in FTB1DIR
  25399.  
  25400.   DECLARE NUMERIC r
  25401.   DECLARE NUMERIC c
  25402.   DECLARE CHAR[*] cell
  25403.   DECLARE DEFINED TASK POINTER pcols
  25404.   OPEN SYSTEM  sys
  25405.   OPEN PROFILE prf
  25406.  
  25407.   ! Open the output file
  25408.   OPEN FILE PrtFile,
  25409.    NAME = filename,
  25410.    LOCATION = prf'FTB1DIR,
  25411.    MODE = 'WRITE'
  25412.  
  25413.   ! Open the input table
  25414.   OPEN TABLE MyTab,
  25415.    NAME = tablename,
  25416.    LOCATION = sys'SEARCHPATH( tablename ),
  25417.    MODE='READ'
  25418.  
  25419.   !Get a list of the column names and create pointers to them
  25420.   CALL MyTab'COLUMNS(cols)
  25421.   DEFINE pcols[ cols[0]'ENTRIES ]
  25422.   DO c = 1 : cols[0]'ENTRIES
  25423.     LET pcols[ c ] = POINTER( 'MyTab.'||cols[ c ] )
  25424.   END
  25425.  
  25426.   !Loop through the rows of the table
  25427.   LET txt=''
  25428.   DO r = 1 : MyTab'ROWS
  25429.     ! Loop through the columns of the row
  25430.     DO c = 1 : pcols[0]'ENTRIES
  25431.       ! Add the contents of the cell and a comma
  25432.       LET cell = (?(pcols[c]))[r]
  25433.       LET txt ||= STRING( IF(SCAN(cell,','),'^,','_,'), cell )
  25434.     END
  25435.     ! Write record to file and prepare for the next line
  25436.     CALL PrtFile'put(txt,line())
  25437.     LET txt = ''
  25438.   END
  25439.   SHUT PrtFile
  25440.   SHUT MyTab
  25441.   CLEAR pcols
  25442. END
  25443.  
  25444. A sample result file from a table is shown below: 
  25445.  
  25446. 100871,'Bacchus, Judy',420,Head Office,F,70,$18424.18,$0.00,2,M,61/8/17,...
  25447. 102082,'Love, George',632,Research,M,50,$55272.54,$0.00,3,M,51/6/7,...
  25448. 103129,'Acevedo, Charlie',632,Research,M,50,$65193.24,$0.00,3,M,55/11/16,...
  25449. 103624,'Kaiser, Steve',140,Production,M,31,$12400.88,$0.00,1,S,71/6/13,...
  25450.  
  25451. Examples source library: 
  25452.  
  25453.  
  25454. ΓòÉΓòÉΓòÉ 191. TAN(), TAND() ΓòÉΓòÉΓòÉ
  25455.  
  25456. The TAN() and TAND() functions return the tangent of an angle. 
  25457.  
  25458. TAN() returns the tangent for an angle specified in radians. TAND() returns the 
  25459. tangent for an angle specified in degrees. 
  25460.  
  25461. ΓöÇΓöÇTAN(angle)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25462.  
  25463. ΓöÇΓöÇTAND(angle)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25464.  
  25465. Examples 
  25466.  
  25467. More about TAN() and TAND() 
  25468.  
  25469.  
  25470. ΓòÉΓòÉΓòÉ 191.1. Examples ΓòÉΓòÉΓòÉ
  25471.  
  25472. x = TAN(1)                                  !  Result is 1.56
  25473. x = TAND(58.93)                             !  Result is 1.66
  25474.  
  25475. Examples source library: 
  25476.  
  25477.  
  25478. ΓòÉΓòÉΓòÉ 191.2. More about TAN() and TAND() ΓòÉΓòÉΓòÉ
  25479.  
  25480. o Where the result of TAN() or TAND() equals infinity, the system upper limit 
  25481.   value is returned.  An error is not generated automatically. 
  25482.  
  25483.  
  25484. ΓòÉΓòÉΓòÉ 192. TARGETCTRL ΓòÉΓòÉΓòÉ
  25485.  
  25486. This object defines the direct manipulation capabilities of an application as a 
  25487. target for a drop. It may be associated with a window to enable the window to 
  25488. be the target for a drop. 
  25489.  
  25490. Attributes 
  25491.  
  25492. Actions 
  25493.  
  25494. Events 
  25495.  
  25496. Examples 
  25497.  
  25498. See also: SOURCECTRL, REFERENCE, DDECLIENT, STREAM 
  25499.  
  25500.  
  25501. ΓòÉΓòÉΓòÉ 192.1. Attributes ΓòÉΓòÉΓòÉ
  25502.  
  25503. CODE                     CONTAINERNAME 
  25504. OPERATION                ORIGINATOR 
  25505. SOURCENAME               TRACE 
  25506.  
  25507.  
  25508. ΓòÉΓòÉΓòÉ 192.1.1. CODE ΓòÉΓòÉΓòÉ
  25509.  
  25510. This attribute may be queried to obtain the error code of the last TARGETCTRL 
  25511. operation. 
  25512.  
  25513.  
  25514. ΓòÉΓòÉΓòÉ 192.1.2. CONTAINERNAME ΓòÉΓòÉΓòÉ
  25515.  
  25516. This read-only attribute identifies the source container name. It returns a 
  25517. character string of up to 255 bytes. If the source object is a file, the 
  25518. attribute will contain the drive and directory. 
  25519.  
  25520.  
  25521. ΓòÉΓòÉΓòÉ 192.1.3. OPERATION ΓòÉΓòÉΓòÉ
  25522.  
  25523. Identifies the drag/drop operation: M, C, or L for move, copy or link. 
  25524.  
  25525. Read-only 
  25526.  
  25527.  
  25528. ΓòÉΓòÉΓòÉ 192.1.4. ORIGINATOR ΓòÉΓòÉΓòÉ
  25529.  
  25530. This read-only attribute identifies the screen object that was dropped on. 
  25531.  
  25532.  
  25533. ΓòÉΓòÉΓòÉ 192.1.5. SOURCENAME ΓòÉΓòÉΓòÉ
  25534.  
  25535. This read-only attribute identifies the source object name. It returns a 
  25536. character string of up to 255 bytes. If the source object is a file, the 
  25537. attribute will contain the fine name. 
  25538.  
  25539.  
  25540. ΓòÉΓòÉΓòÉ 192.1.6. TRACE ΓòÉΓòÉΓòÉ
  25541.  
  25542. This Boolean attribute controls whether trace information will be recorded. 
  25543.  
  25544. Drag/Drop trace will be written to the FTBDRG file in the FTB1DIR directory. 
  25545.  
  25546. Default: 0 (No tracing, set on OPEN then read-only) 
  25547.  
  25548.  
  25549. ΓòÉΓòÉΓòÉ 192.2. Actions ΓòÉΓòÉΓòÉ
  25550.  
  25551. ADDFORMAT()             ADDTYPE() 
  25552. ADDFMTEXT()             ADDTYPEEXT() 
  25553. FORMATS()               TYPES() 
  25554. FMTEXTS()               TYPEEXTS() 
  25555.  
  25556.  
  25557. ΓòÉΓòÉΓòÉ 192.2.1. ADDFORMAT() ΓòÉΓòÉΓòÉ
  25558.  
  25559.                       ΓöîΓöÇ"CML"ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ   ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  25560. ΓöÇΓöÇADDFORMAT(format,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25561.                       ΓööΓöÇoperationsΓöÇΓöÿ   ΓööΓöÇreferenceΓöÇΓöÿ
  25562.  
  25563. This action may be used to signify that a target data format is supported. 
  25564.  
  25565. format is provided by the caller, and should be a character string representing 
  25566. a data format name, such as: DIF, IXF, DBF, IBMCHART. 
  25567.  
  25568. operations is optionally provided by the caller, and is used to define the 
  25569. operations that are valid for the specified format. It should be a character 
  25570. string including one instance of one or more of the following characters: 
  25571.  
  25572. M         Move 
  25573. C         Copy 
  25574. L         Link 
  25575.  
  25576. The order of these characters is relevant in that the first character in the 
  25577. string is taken as the default operation. If omitted, operations defaults to 
  25578. "CML", or "CL" if the specified format does not match the native format of the 
  25579. source. Even if specified, move will not be allowed unless the format matches 
  25580. the native format of the source. 
  25581.  
  25582. If any other character is specified, an error condition will result. 
  25583.  
  25584. When a drop occurs, then the FORMAT attribute of the STREAM delivered with the 
  25585. TARGET event reflects the format match that allowed the drop. If it was a Link 
  25586. operation, then the LINK and REFERENCE attributes of the STREAM are set to 1 
  25587. (true). Use a LINK object to process the data. 
  25588.  
  25589. reference is optionally provided by the caller. It is used to define whether a 
  25590. reference to data is required or the data itself. It must be a Boolean value. 
  25591. The default is 0 (false). 
  25592.  
  25593. For example, a file containing data of a given format can be dropped on the 
  25594. application. If reference is 1 (true), then a reference to the data is 
  25595. delivered to the TARGET event. If reference is 0 (false), then the data itself 
  25596. is delivered. 
  25597.  
  25598. When a drop occurs, then the FORMAT attribute of the STREAM delivered with the 
  25599. TARGET event reflects the format match that allowed the drop to occur. When a 
  25600. reference is delivered, then the REFERENCE attribute of the STREAM object is 
  25601. set to 1 (true). Use a REFERENCE object to interpret the data. 
  25602.  
  25603. Repeated ADDFORMAT requests are cumulative. You can use them to build up a set 
  25604. of supported target formats and operations. If multiple ADDFORMAT requests are 
  25605. issued for the same format, then the last one takes precedence. 
  25606.  
  25607. The order of ADDFORMAT requests indicates the sequence of preferred formats. 
  25608. The first is most favored. 
  25609.  
  25610.  
  25611. ΓòÉΓòÉΓòÉ 192.2.2. ADDTYPE() ΓòÉΓòÉΓòÉ
  25612.  
  25613.                   ΓöîΓöÇ"CML"ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  25614. ΓöÇΓöÇADDTYPE(type,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25615.                   ΓööΓöÇoperationsΓöÇΓöÿ
  25616.  
  25617. This action may be used to signify that a target type is supported. 
  25618.  
  25619. type is provided by the caller, and should be a character string representing a 
  25620. source type that is acceptable. If the source represents an OS/2 file, the type 
  25621. will be (one of) the value(s) in the .TYPE extended attribute. 
  25622.  
  25623. operations is optionally provided by the caller, and is used to define the 
  25624. operations that are valid for the specified format. It is a character string 
  25625. including one instance of one or more of: 
  25626.  
  25627. M         Move 
  25628. C         Copy 
  25629. L         Link 
  25630.  
  25631. If any other character is specified, then an error condition results. 
  25632.  
  25633. The first character in the string specifies the default operation. 
  25634.  
  25635. Repeated ADDTYPE requests are cumulative, and may be used to build up a set of 
  25636. supported types. If multiple ADDTYPE requests are issued for the same type, the 
  25637. last one takes precedence. 
  25638.  
  25639. The order of ADDTYPE requests is not important. 
  25640.  
  25641.  
  25642. ΓòÉΓòÉΓòÉ 192.2.3. ADDFMTEXT() ΓòÉΓòÉΓòÉ
  25643.  
  25644. ΓöÇΓöÇADDFMTEXT(Format,Extension)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25645.  
  25646. This action may be used to equate a format to a file extension. 
  25647.  
  25648. Format is provided by the caller, and should obey the same rules as the 
  25649. equivalent parameter on the ADDFORMAT action. 
  25650.  
  25651. Extension is provided by the caller, and should be a character string 
  25652. indicating the file extension to be equated with the specified format. 
  25653. Extension can be of any length since the comparison is made based on the last 
  25654. period. Provided the format has been defined as acceptable, files with the 
  25655. specified extension may be dropped. If the format has not been defined, no 
  25656. error occurs, but files with the specified extension may not be dropped. 
  25657.  
  25658. Repeated ADDFMTEXT requests are cumulative, and may be used to build up a set 
  25659. of format to file extension mappings. If multiple ADDFMTEXT requests are issued 
  25660. for the same file extension, the last one takes precedence. 
  25661.  
  25662.  
  25663. ΓòÉΓòÉΓòÉ 192.2.4. ADDTYPEEXT() ΓòÉΓòÉΓòÉ
  25664.  
  25665. ΓöÇΓöÇADDTYPEEXT(Type,Extension)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25666.  
  25667. This action may be used to equate a type to a file extension. 
  25668.  
  25669. Type and should obey the same rules as the equivalent parameter on the ADDTYPE 
  25670. action. 
  25671.  
  25672. Extension should be a character string indicating the file extension to be 
  25673. equated with the specified format. Extension can be of any length since the 
  25674. comparison is made based on the last period found. Provided the format has been 
  25675. defined as acceptable, files with the specified extension may be dropped. If 
  25676. the format has not been defined, no error occurs, but files with the specified 
  25677. extension may not be dropped. 
  25678.  
  25679. Repeated ADDTYPEEXT requests are cumulative, and may be used to build up a set 
  25680. of type-to-file extension mappings. If multiple ADDTYPEEXT requests are issued 
  25681. for the same file extension, the last one takes precedence. 
  25682.  
  25683.  
  25684. ΓòÉΓòÉΓòÉ 192.2.5. FORMATS() ΓòÉΓòÉΓòÉ
  25685.  
  25686. ΓöÇΓöÇFORMATS(formats,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25687.                      ΓööΓöÇoperationsΓöÇΓöÿ   ΓööΓöÇreferenceΓöÇΓöÿ
  25688.  
  25689. This action may be used to define a complete set of supported target formats 
  25690. and operations. 
  25691.  
  25692. formats is the name of a scalar or vector containing data format names. Each 
  25693. value should conform to the rules defined for the format parameter on the 
  25694. ADDFORMAT action. 
  25695.  
  25696. operations is optional and is the name of a scalar or vector containing the 
  25697. valid operations for each format. Each value should conform to the rules 
  25698. defined for the operations parameter on the ADDFORMAT action, with the 
  25699. additional possibility of being NULL to indicate that the default set of 
  25700. operations should be assumed for the corresponding format. 
  25701.  
  25702. reference is optionally provided by the caller, and is the name of a scalar or 
  25703. vector containing the Boolean reference flags for each format. Each value 
  25704. should conform to the rules defined for the reference parameter on the 
  25705. ADDFORMAT action (with the additional possibility of being NULL to indicate 
  25706. that the default value should be assumed for the corresponding format). 
  25707.  
  25708. If the formats vector has more elements than the operations vector, the excess 
  25709. formats will assume the default operations. If the operations vector has more 
  25710. elements than the formats vector, the excess will be ignored. 
  25711.  
  25712. The FORMATS action will replace any prior definition of supported target 
  25713. formats and operations. 
  25714.  
  25715. The order of formats in the formats vector is relevant, and indicates the 
  25716. sequence of preferred formats, first being most favored. 
  25717.  
  25718.  
  25719. ΓòÉΓòÉΓòÉ 192.2.6. TYPES() ΓòÉΓòÉΓòÉ
  25720.  
  25721. ΓöÇΓöÇTYPES(Types,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25722.                  ΓööΓöÇOperationsΓöÇΓöÿ
  25723.  
  25724. This action may be used to define a complete set of supported target types and 
  25725. operations. 
  25726.  
  25727. Types is the name of a scalar or vector containing type names. Each value 
  25728. should conform to the rules defined for the Type parameter on the ADDTYPE 
  25729. action. 
  25730.  
  25731. Operations is optional, and is the name of a scalar or vector containing the 
  25732. valid operations for each type. Each value should conform to the rules defined 
  25733. for the Operations parameter on the ADDTYPE action, with the additional 
  25734. possibility of being NULL to indicate that the default set of operations should 
  25735. be assumed for the corresponding format. 
  25736.  
  25737. If the types vector has more elements than the operations vector, the excess 
  25738. types will assume the default operations. If the operations vector has more 
  25739. elements than the types vector, the excess will be ignored. 
  25740.  
  25741. The TYPES action will replace any prior definition of supported target types 
  25742. and operations. 
  25743.  
  25744. The order of types in the Types vector is not important. 
  25745.  
  25746.  
  25747. ΓòÉΓòÉΓòÉ 192.2.7. FMTEXTS() ΓòÉΓòÉΓòÉ
  25748.  
  25749. ΓöÇΓöÇFMTEXTS(Formats,Extensions)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25750.  
  25751. This action may be used to define a complete set of format to file extension 
  25752. mappings. 
  25753.  
  25754. Formats is provided by the caller, and should obey the same rules as the 
  25755. equivalent parameter on the FORMATS action. 
  25756.  
  25757. Extensions is provided by the caller, and is the name of a scalar or vector 
  25758. containing file extensions. Each value should conform to the rules defined for 
  25759. the Extension parameter on the ADDFMTEXTS action. 
  25760.  
  25761. If the formats vector and extensions vector do not have the same number of 
  25762. elements, the excess will be ignored. 
  25763.  
  25764. The FMTEXTS action will replace any prior definition of format to file 
  25765. extension mapping. 
  25766.  
  25767.  
  25768. ΓòÉΓòÉΓòÉ 192.2.8. TYPEEXTS() ΓòÉΓòÉΓòÉ
  25769.  
  25770. ΓöÇΓöÇTYPEEXTS(Types,Extensions)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25771.  
  25772. This action may be used to define a complete set of type to file extension 
  25773. mappings. 
  25774.  
  25775. Types is provided by the caller, and should obey the same rules as the 
  25776. equivalent parameter on the TYPES action. 
  25777.  
  25778. Extensions is provided by the caller, and is the name of a scalar or vector 
  25779. containing file extensions. Each value should conform to the rules defined for 
  25780. the Extension parameter on the ADDFMTEXTS action. 
  25781.  
  25782. If the types vector and extensions vector do not have the same number of 
  25783. elements, the excess will be ignored. 
  25784.  
  25785. The TYPEEXTS action will replace any prior definition of type to file extension 
  25786. mapping. 
  25787.  
  25788.  
  25789. ΓòÉΓòÉΓòÉ 192.3. Events ΓòÉΓòÉΓòÉ
  25790.  
  25791. TARGET(pStream) 
  25792.  
  25793.  
  25794. ΓòÉΓòÉΓòÉ 192.3.1. TARGET(pStream) ΓòÉΓòÉΓòÉ
  25795.  
  25796. Signaled when a valid drop occurs. 
  25797.  
  25798. pStream is a pointer to a STREAM object delivered with the event, through which 
  25799. the data may be extracted. The ORIGINATOR attribute of the STREAM object passed 
  25800. with the SOURCE event identifies the TARGETCTRL object through which the event 
  25801. was generated. The ORIGIN attribute of the TARGETCTRL object will identify the 
  25802. screen object that was dropped on. The FORMAT attribute of the STREAM object 
  25803. may be used to identify the data format being delivered. 
  25804.  
  25805. If a reference to the data is being delivered, then the REFERENCE attribute of 
  25806. the STREAM object is 1 (true). Use a REFERENCE object to interpret the 
  25807. information. 
  25808.  
  25809. Once data has been extracted from the STREAM object, its FINISHED() action 
  25810. should be called. If any errors are encountered in the data, for instance if 
  25811. the data does not conform to the expected format, the STATUS attribute should 
  25812. be set to a positive nonzero integer prior to calling the FINISHED() action. 
  25813.  
  25814.  
  25815. ΓòÉΓòÉΓòÉ 192.4. Examples ΓòÉΓòÉΓòÉ
  25816.  
  25817. See DRAGDROP.PRG in the dataechg examples in Development Samples for more 
  25818. information. 
  25819.  
  25820. Examples source library: 
  25821.  
  25822.  
  25823. ΓòÉΓòÉΓòÉ 193. TBAR ΓòÉΓòÉΓòÉ
  25824.  
  25825. The TBAR object class provides an instance of a tool bar. 
  25826.  
  25827. Parent: WINDOW 
  25828.  
  25829. Attributes 
  25830.  
  25831. Actions 
  25832.  
  25833. Events 
  25834.  
  25835. More about TBAR 
  25836.  
  25837. Examples 
  25838.  
  25839. See also: WINDOW, PUSH. 
  25840.  
  25841.  
  25842. ΓòÉΓòÉΓòÉ 193.1. Attributes ΓòÉΓòÉΓòÉ
  25843.  
  25844. UP                    DOWN 
  25845. DISABLED              LATCH 
  25846. INISTATE              GROUP 
  25847. TOGGLE                TOOLDATA 
  25848. TOOLTEXT              HELP 
  25849. HELPIDS               HELPGLOBAL 
  25850. SIZEY                 VISIBLE 
  25851.  
  25852.  
  25853. ΓòÉΓòÉΓòÉ 193.1.1. UP ΓòÉΓòÉΓòÉ
  25854.  
  25855. Pointer to an array of bitmap names for the up state buttons. 
  25856.  
  25857.  
  25858. ΓòÉΓòÉΓòÉ 193.1.2. DOWN ΓòÉΓòÉΓòÉ
  25859.  
  25860. Pointer to an array of bitmap names for the down state buttons. 
  25861.  
  25862.  
  25863. ΓòÉΓòÉΓòÉ 193.1.3. DISABLED ΓòÉΓòÉΓòÉ
  25864.  
  25865. Pointer to an array of bitmap names for the disabled state buttons. 
  25866.  
  25867.  
  25868. ΓòÉΓòÉΓòÉ 193.1.4. LATCH ΓòÉΓòÉΓòÉ
  25869.  
  25870. Pointer to an array that specifies whether each button latches when pressed or 
  25871. pops back up. Each entry in the array is either 0 (pop back up), or 1 (latch). 
  25872.  
  25873.  
  25874. ΓòÉΓòÉΓòÉ 193.1.5. INISTATE ΓòÉΓòÉΓòÉ
  25875.  
  25876. Pointer to an array that specifies the initial state of each button. Each entry 
  25877. in the array is either "UP", "DOWN", or "DISABLED". 
  25878.  
  25879.  
  25880. ΓòÉΓòÉΓòÉ 193.1.6. GROUP ΓòÉΓòÉΓòÉ
  25881.  
  25882. Pointer to an array that groups the buttons on the tool bar. Each entry in the 
  25883. array is a number that specifies the gap between the button and the previous 
  25884. one: 
  25885.  
  25886. 0         No gap (between buttons that toggle each other) 
  25887. 1         Small gap (between buttons in a group) 
  25888. 2         Large gap (between groups of buttons) 
  25889.  
  25890.  
  25891. ΓòÉΓòÉΓòÉ 193.1.7. TOGGLE ΓòÉΓòÉΓòÉ
  25892.  
  25893. Pointer to an array that specifies whether each button toggles other buttons. 
  25894. Each entry in the array is a number. Tool bar buttons that have the number zero 
  25895. do not toggle any other buttons. Tool bar buttons that have the same nonzero 
  25896. TOGGLE number toggle each other. 
  25897.  
  25898.  
  25899. ΓòÉΓòÉΓòÉ 193.1.8. TOOLDATA ΓòÉΓòÉΓòÉ
  25900.  
  25901. Pointer to an array of object names. The object names are used when tool bar 
  25902. events are raised. 
  25903.  
  25904.  
  25905. ΓòÉΓòÉΓòÉ 193.1.9. TOOLTEXT ΓòÉΓòÉΓòÉ
  25906.  
  25907. Pointer to an array that specifies the text strings displayed when the user 
  25908. presses mouse button 2 on each tool bar button. 
  25909.  
  25910.  
  25911. ΓòÉΓòÉΓòÉ 193.1.10. HELP ΓòÉΓòÉΓòÉ
  25912.  
  25913. Pointer to an open HELP object. 
  25914.  
  25915.  
  25916. ΓòÉΓòÉΓòÉ 193.1.11. HELPIDS ΓòÉΓòÉΓòÉ
  25917.  
  25918. Pointer to an array of help IDs for the tool bar buttons. 
  25919.  
  25920.  
  25921. ΓòÉΓòÉΓòÉ 193.1.12. HELPGLOBAL ΓòÉΓòÉΓòÉ
  25922.  
  25923. The help ID of the global help text for the tool bar. 
  25924.  
  25925.  
  25926. ΓòÉΓòÉΓòÉ 193.1.13. SIZEY ΓòÉΓòÉΓòÉ
  25927.  
  25928. The y-size of the tool bar. Read-only. 
  25929.  
  25930.  
  25931. ΓòÉΓòÉΓòÉ 193.1.14. VISIBLE ΓòÉΓòÉΓòÉ
  25932.  
  25933. Whether the tool bar is visible: either 1 (visible), or 0 (hidden). Default: 1 
  25934. (visible). 
  25935.  
  25936.  
  25937. ΓòÉΓòÉΓòÉ 193.2. Actions ΓòÉΓòÉΓòÉ
  25938.  
  25939. STATE()             FILTER() 
  25940.  
  25941.  
  25942. ΓòÉΓòÉΓòÉ 193.2.1. STATE() ΓòÉΓòÉΓòÉ
  25943.  
  25944. ΓöÇΓöÇSTATE(object,state)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25945.  
  25946. Sets the new state of a button. 
  25947.  
  25948. object    Object name of the button as specified in the TOOLDATA array. 
  25949. state     New state: either "UP", "DOWN", or "DISABLED". 
  25950.  
  25951.  
  25952. ΓòÉΓòÉΓòÉ 193.2.2. FILTER() ΓòÉΓòÉΓòÉ
  25953.  
  25954. ΓöÇΓöÇFILTER(A.System.Event,A.System.Object,A.System.Boxnumber)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  25955.  
  25956. Filters tool bar selections, mouse button 2 selections, and removal of 
  25957. description text. 
  25958.  
  25959. If a tool bar button was selected, then FILTER() returns the object name of the 
  25960. button as specified in the TOOLDATA array. Otherwise it returns A.System.Object 
  25961. unchanged. 
  25962.  
  25963.  
  25964. ΓòÉΓòÉΓòÉ 193.3. Events ΓòÉΓòÉΓòÉ
  25965.  
  25966. SELECT                PROPERTIES 
  25967.  
  25968.  
  25969. ΓòÉΓòÉΓòÉ 193.3.1. SELECT ΓòÉΓòÉΓòÉ
  25970.  
  25971. Signaled when the user selects a tool bar button. 
  25972.  
  25973. The returned value of A.System.Object from the FILTER() action is the object 
  25974. name of the button as specified in the TOOLDATA array. 
  25975.  
  25976.  
  25977. ΓòÉΓòÉΓòÉ 193.3.2. PROPERTIES ΓòÉΓòÉΓòÉ
  25978.  
  25979. Signaled when the user presses mouse button 2 on a tool bar button. 
  25980.  
  25981. To display the tool bar button description as specified in the TOOLTEXT array, 
  25982. an ON PROPERTIES block must be present, and it must call the FILTER() action. 
  25983.  
  25984.  
  25985. ΓòÉΓòÉΓòÉ 193.4. More about TBAR ΓòÉΓòÉΓòÉ
  25986.  
  25987. o On OPEN, set all of the attributes that specify pointers to arrays. The 
  25988.   arrays must all be the same size. The size of the arrays determines the 
  25989.   number of tool bar buttons displayed. The elements of the arrays specify the 
  25990.   properties of each button. 
  25991.  
  25992. o For the UP, DOWN, and DISABLED attributes, each bitmap name is either the 
  25993.   fully qualified name of an icon file, or a string in the form dllname<id>, 
  25994.   where dllname is the name of a DLL and id is the resource ID of the icon 
  25995.   within that DLL. 
  25996.  
  25997. o Call the FILTER() action first in every event block in your program. 
  25998.  
  25999.     LET A.System.Object = MyToolBar'FILTER(
  26000.                             A.System.Event,
  26001.                             A.System.Object,
  26002.                             A.System.BoxNumber)
  26003.  
  26004. o When a tool bar is visible on a window, the remaining usable area of the 
  26005.   window is the SIZEY of the WINDOW minus the SIZEY of the TBAR. 
  26006.  
  26007. o When the user presses F1 with a tool bar context menu displayed, then the 
  26008.   help ID for the corresponding tool bar button is used to display help. This 
  26009.   help ID is specified by HELPIDS. 
  26010.  
  26011.   When the user selects Help from a tool bar context menu, then the global help 
  26012.   ID is used to display help. This help ID is specified by HELPGLOBAL. 
  26013.  
  26014.  
  26015. ΓòÉΓòÉΓòÉ 193.5. Examples ΓòÉΓòÉΓòÉ
  26016.  
  26017. ON START
  26018. DO
  26019.   OPEN HELP MyHelp
  26020.  
  26021.   OPEN WINDOW MyWin,, "I.WINDOWS.MyWindow",   ! open a saved window
  26022.    VISIBLE = 0
  26023.  
  26024.   ! Now we prepare the toolbar information arrays
  26025.  
  26026.   DEFINE tbarUp[0]      /* array of UP bitmaps          */
  26027.   DEFINE tbarDown[0]    /* array of DOWN bitmaps        */
  26028.   DEFINE tbarDis[0]     /* array of DISABLED bitmaps    */
  26029.  
  26030.   DEFINE tbarLatch[0]   /* array of latchable values    */
  26031.   DEFINE tbarGroup[0]   /* array of button groupings    */
  26032.   DEFINE tbarToggle[0]  /* array of toggle groupings    */
  26033.   DEFINE tbarInit[0]    /* array of initial states      */
  26034.  
  26035.   DEFINE tbarNames[0]   /* array of button object names */
  26036.   DEFINE tbarDesc[0]    /* array of description texts   */
  26037.   DEFINE tbarHelp[0]    /* array of help text res IDs   */
  26038.  
  26039.   ! The UP bitmaps. Notice that bitmaps can be identified by
  26040.   ! fully-qualified file name, or by DLL name and resource ID
  26041.   INSERT tbarUp[0]     = "d:\ftc\ftdup.bmp"
  26042.   INSERT tbarUp[0]     = "d:\mybmps\u_smiley.bmp"
  26043.   INSERT tbarUp[0]     = "FTBBMPS<1010>"
  26044.   INSERT tbarUp[0]     = "MYBMPDLL<1>"
  26045.  
  26046.   ! The DOWN bitmaps.
  26047.   INSERT tbarDown[0]   = "d:\ftc\ftddwn.bmp"
  26048.   INSERT tbarDown[0]   = "d:\mybmps\d_smiley.bmp"
  26049.   INSERT tbarDown[0]   = "FTBBMPS<1001>"
  26050.   INSERT tbarDown[0]   = "MYBMPDLL<2>"
  26051.  
  26052.   ! The DISABLED bitmaps.
  26053.   INSERT tbarDis[0]    = "d:\ftc\ftddis.bmp"
  26054.   INSERT tbarDis[0]    = "d:\mybmps\x_smiley.bmp"
  26055.   INSERT tbarDis[0]    = "FTBBMPS<1002>"
  26056.   INSERT tbarDis[0]    = "MYBMPDLL<3>"
  26057.  
  26058.   ! Our third and fourth buttons are to be latchable
  26059.   INSERT tbarLatch[0]  = 0
  26060.   INSERT tbarLatch[0]  = 0
  26061.   INSERT tbarLatch[0]  = 1
  26062.   INSERT tbarLatch[0]  = 1
  26063.  
  26064.   ! Keep the first one separate, and group the other three together
  26065.   INSERT tbarGroup[0]  = 0
  26066.   INSERT tbarGroup[0]  = 2   /* large gap between first and second
  26067.   INSERT tbarGroup[0]  = 1   /* small gap between second and third
  26068.   INSERT tbarGroup[0]  = 0   /* no gap between the two that toggle
  26069.  
  26070.   ! Our second two buttons will toggle each other on and off
  26071.   ! All the '1's form a toggle group, and the '2's, and so on
  26072.   ! This only makes sense for latchable buttons
  26073.   INSERT tbarToggle[0] = 0   /* 0 = no toggling */
  26074.   INSERT tbarToggle[0] = 0
  26075.   INSERT tbarToggle[0] = 1
  26076.   INSERT tbarToggle[0] = 1
  26077.  
  26078.   ! Initial states - all up, except button four which will be down
  26079.   INSERT tbarInit[0]   = "UP"
  26080.   INSERT tbarInit[0]   = "UP"
  26081.   INSERT tbarInit[0]   = "UP"
  26082.   INSERT tbarInit[0]   = "DOWN"
  26083.  
  26084.   ! Object names - we can choose these as we like
  26085.   INSERT tbarNames[0]  = "T.MyToolBar.Blank"
  26086.   INSERT tbarNames[0]  = "T.MyToolBar.Smile"
  26087.   INSERT tbarNames[0]  = "T.MyToolBar.Compile"
  26088.   INSERT tbarNames[0]  = "T.MyToolBar.Special"
  26089.  
  26090.   ! Button description texts
  26091.   INSERT tbarDesc[0]   = "Nothing"
  26092.   INSERT tbarDesc[0]   = "Smile please!"
  26093.   INSERT tbarDesc[0]   = "Select a table or query..."
  26094.   INSERT tbarDesc[0]   = "Configure options"
  26095.  
  26096.   ! Button help text res IDs
  26097.   INSERT tbarHelp[0]   = 10192
  26098.   INSERT tbarHelp[0]   = 10193
  26099.   INSERT tbarHelp[0]   = 10194
  26100.   INSERT tbarHelp[0]   = 10195
  26101.  
  26102.   ! Now open the tool bar
  26103.  
  26104.   OPEN TBAR MyToolBar, MyWin,     /* open tool bar on my window */
  26105.    UP         = POINTER(tbarUp[0]),
  26106.    DOWN       = POINTER(tbarDown[0]),
  26107.    DISABLED   = POINTER(tbarDis[0]),
  26108.    LATCH      = POINTER(tbarLatch[0]),
  26109.    GROUP      = POINTER(tbarGroup[0]),
  26110.    TOGGLE     = POINTER(tbarToggle[0]),
  26111.    INISTATE   = POINTER(tbarInit[0]),
  26112.    TOOLDATA   = POINTER(tbarNames[0]),
  26113.    TOOLTEXT   = POINTER(tbarDesc[0]),
  26114.    HELPIDS    = POINTER(tbarHelp[0]),
  26115.    HELP       = POINTER(MyHelp[0]),
  26116.    HELPGLOBAL = 10191,
  26117.    VISIBLE    = 1
  26118.  
  26119.   LET MyWin'VISIBLE = 1
  26120. END
  26121.  
  26122. ON DESKTOP
  26123. DO
  26124.   LET A.System.Object = MyToolBar'FILTER(
  26125.                          A.System.Event,
  26126.                          A.System.Object,
  26127.                          A.System.BoxNumber)
  26128.     ...
  26129.  
  26130. ON SELECT
  26131. DO
  26132.   LET A.System.Object = MyToolBar'FILTER(
  26133.                          A.System.Event,
  26134.                          A.System.Object,
  26135.                          A.System.BoxNumber)
  26136.  
  26137.   CASE A.System.Object
  26138.     WHEN "T.MyToolBar.Nothing"
  26139.       NOTHING
  26140.  
  26141.     WHEN "T.MyToolBar.Smile"
  26142.       CALL do_smile(42)
  26143.  
  26144.     ...
  26145.  
  26146. ON PROPERTIES    /* signaled when the user uses the right */
  26147. DO               /* mouse button on a tool bar button     */
  26148.   CALL MyToolBar'FILTER(
  26149.         A.System.Event,
  26150.         A.System.Object,
  26151.         A.System.BoxNumber)
  26152. END
  26153.  
  26154. Examples source library: 
  26155.  
  26156.  
  26157. ΓòÉΓòÉΓòÉ 194. TERMINATE ΓòÉΓòÉΓòÉ
  26158.  
  26159. The TERMINATE statement halts the processing of a specified repeating block. 
  26160.  
  26161. ΓöÇΓöÇTERMINATEΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26162.                ΓööΓöÇnumberΓöÇΓöÿ
  26163.  
  26164. Examples 
  26165.  
  26166. More about TERMINATE 
  26167.  
  26168. See also: ITERATE, LEAVE 
  26169.  
  26170.  
  26171. ΓòÉΓòÉΓòÉ 194.1. Examples ΓòÉΓòÉΓòÉ
  26172.  
  26173. DEFINE Array[5,10]
  26174. Valid = 0
  26175. DO Row = 1:5
  26176.   DO Cell = 1:10
  26177.     IF NULL(Array[Row,Cell])
  26178.     THEN TERMINATE 2         ! Halts at DO Row = 1:5
  26179.     Valid += 1
  26180.   END
  26181. END
  26182.  
  26183. Examples source library: 
  26184.  
  26185.  
  26186. ΓòÉΓòÉΓòÉ 194.2. More about TERMINATE ΓòÉΓòÉΓòÉ
  26187.  
  26188. o TERMINATE can be used to stop the execution of a WHILE or UNTIL block, or a 
  26189.   DO ... END block with parameters. 
  26190.  
  26191.  
  26192. ΓòÉΓòÉΓòÉ 195. TEXT ΓòÉΓòÉΓòÉ
  26193.  
  26194. The TEXT object class creates an instance of a box containing a text string. 
  26195.  
  26196. Parent: WINDOW 
  26197.  
  26198. Attributes 
  26199.  
  26200. Actions 
  26201.  
  26202. Events 
  26203.  
  26204. Examples 
  26205.  
  26206. More about TEXT 
  26207.  
  26208.  
  26209. ΓòÉΓòÉΓòÉ 195.1. Attributes ΓòÉΓòÉΓòÉ
  26210.  
  26211. CLONEDIR                CLONEGAP 
  26212. CLONES                  BGCOLOR 
  26213. ENABLED                 EXPRESSION 
  26214. FGCOLOR                 HANDLES 
  26215. HORZJUST                HELP 
  26216. OL_ALL                  OL_COLOR 
  26217. OL_DETAIL               OL_LEFT 
  26218. OL_RIGHT                OL_OVER 
  26219. OL_UNDER                ORIGIN 
  26220. OVERFLOW                SELECTABLE 
  26221. SIZEX                   SIZEY 
  26222. TEXT                    VERTJUST 
  26223. VISIBLE                 WORDWRAP 
  26224. X                       Y 
  26225.  
  26226.  
  26227. ΓòÉΓòÉΓòÉ 195.1.1. CLONEDIR ΓòÉΓòÉΓòÉ
  26228.  
  26229. Which way the clones are to be laid out relative to the original: 
  26230.  
  26231. 1         Down 
  26232. 2         Up 
  26233. 3         Left 
  26234. 4         Right 
  26235.  
  26236. Set on OPEN, then read-only. 
  26237.  
  26238. Default: 1 (Down) 
  26239.  
  26240.  
  26241. ΓòÉΓòÉΓòÉ 195.1.2. CLONEGAP ΓòÉΓòÉΓòÉ
  26242.  
  26243. Space between clones, in dialog units. 
  26244.  
  26245. Set on OPEN, then read-only. 
  26246.  
  26247. Default: 0 
  26248.  
  26249.  
  26250. ΓòÉΓòÉΓòÉ 195.1.3. CLONES ΓòÉΓòÉΓòÉ
  26251.  
  26252. Number of clones. 
  26253.  
  26254. Default: 1 
  26255.  
  26256.  
  26257. ΓòÉΓòÉΓòÉ 195.1.4. BGCOLOR ΓòÉΓòÉΓòÉ
  26258.  
  26259. Background color. Integer in the range 1-19. See Colors and color codes for 
  26260. details of colors available. 
  26261.  
  26262. Default: Defined by Presentation Manager. 
  26263.  
  26264. If BGCOLOR for the window has been set, this color is passed to all controls on 
  26265. the window as the default. 
  26266.  
  26267.  
  26268. ΓòÉΓòÉΓòÉ 195.1.5. ENABLED ΓòÉΓòÉΓòÉ
  26269.  
  26270. Whether the text object is enabled: 
  26271.  
  26272. 0         Text object grayed out 
  26273. 1         Text object enabled 
  26274.  
  26275. Default: 1 (Enabled) 
  26276.  
  26277.  
  26278. ΓòÉΓòÉΓòÉ 195.1.6. EXPRESSION ΓòÉΓòÉΓòÉ
  26279.  
  26280. Pointer to a variable, the contents of which are displayed with the text box. 
  26281.  
  26282. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  26283.  
  26284. Default: "" 
  26285.  
  26286.  
  26287. ΓòÉΓòÉΓòÉ 195.1.7. FGCOLOR ΓòÉΓòÉΓòÉ
  26288.  
  26289. Foreground color. Integer in the range 1-19. See Colors and color codes for 
  26290. details of colors available. 
  26291.  
  26292. Default: Defined by Presentation Manager. 
  26293.  
  26294.  
  26295. ΓòÉΓòÉΓòÉ 195.1.8. HANDLES ΓòÉΓòÉΓòÉ
  26296.  
  26297. Whether sizing handles are attached to the text control to support moving, 
  26298. sizing, and copying operations. These direct manipulation techniques follow the 
  26299. CUA guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  26300.  
  26301. 0         Handles are not displayed 
  26302. 1         Handles are displayed 
  26303.  
  26304. Default: 0 (No handles) 
  26305.  
  26306.  
  26307. ΓòÉΓòÉΓòÉ 195.1.9. HORZJUST ΓòÉΓòÉΓòÉ
  26308.  
  26309. Horizontal justification of the text in the entry box: 
  26310.  
  26311. 0         Left justified 
  26312. 1         Right justified 
  26313. 2         Centered 
  26314.  
  26315. Default: 0 (Left justified) 
  26316.  
  26317.  
  26318. ΓòÉΓòÉΓòÉ 195.1.10. HELP ΓòÉΓòÉΓòÉ
  26319.  
  26320. Resource identifier (res ID) of the full help text for this object. 
  26321.  
  26322. Default: 0 
  26323.  
  26324.  
  26325. ΓòÉΓòÉΓòÉ 195.1.11. OL_ALL ΓòÉΓòÉΓòÉ
  26326.  
  26327. Line style used around the text, cannot be queried. 
  26328.  
  26329. 0         Solid 
  26330. 2-6       Various dashed and dotted lines 
  26331. 7         Solid 
  26332. 8         Invisible 
  26333.  
  26334. Default: 8 (Invisible) 
  26335.  
  26336.  
  26337. ΓòÉΓòÉΓòÉ 195.1.12. OL_COLOR ΓòÉΓòÉΓòÉ
  26338.  
  26339. Outline color. Integer in the range 1-19. See Colors and color codes for 
  26340. details of colors available. 
  26341.  
  26342. Default: Defined by Presentation Manager 
  26343.  
  26344.  
  26345. ΓòÉΓòÉΓòÉ 195.1.13. OL_DETAIL ΓòÉΓòÉΓòÉ
  26346.  
  26347. Line style used between rows of clones. Set on OPEN, then read-only. 
  26348.  
  26349. 0         Solid 
  26350. 2-6       Various dashed and dotted lines 
  26351. 7         Solid 
  26352. 8         Invisible 
  26353.  
  26354. Default: 8 (Invisible) 
  26355.  
  26356.  
  26357. ΓòÉΓòÉΓòÉ 195.1.14. OL_LEFT ΓòÉΓòÉΓòÉ
  26358.  
  26359. Line style used to the left of the box. Set on OPEN, then read-only. 
  26360.  
  26361. 0         Solid 
  26362. 2-6       Various dashed and dotted lines 
  26363. 7         Solid 
  26364. 8         Invisible 
  26365.  
  26366. Default: 8 (Invisible) 
  26367.  
  26368.  
  26369. ΓòÉΓòÉΓòÉ 195.1.15. OL_RIGHT ΓòÉΓòÉΓòÉ
  26370.  
  26371. Line style used to the right of the box. Set on OPEN, then read-only. 
  26372.  
  26373. 0         Solid 
  26374. 2-6       Various dashed and dotted lines 
  26375. 7         Solid 
  26376. 8         Invisible 
  26377.  
  26378. Default: 8 (Invisible) 
  26379.  
  26380.  
  26381. ΓòÉΓòÉΓòÉ 195.1.16. OL_OVER ΓòÉΓòÉΓòÉ
  26382.  
  26383. Line style used above the box. Set on OPEN, then read-only. 
  26384.  
  26385. 0         Solid 
  26386. 2-6       Various dashed and dotted lines 
  26387. 7         Solid 
  26388. 8         Invisible 
  26389.  
  26390. Default: 8 (Invisible) 
  26391.  
  26392.  
  26393. ΓòÉΓòÉΓòÉ 195.1.17. OL_UNDER ΓòÉΓòÉΓòÉ
  26394.  
  26395. Line style used below the box. Set on OPEN, then read-only. 
  26396.  
  26397. 0         Solid 
  26398. 2-6       Various dashed and dotted lines 
  26399. 7         Solid 
  26400. 8         Invisible 
  26401.  
  26402. Default: 8 (Invisible) 
  26403.  
  26404.  
  26405. ΓòÉΓòÉΓòÉ 195.1.18. ORIGIN ΓòÉΓòÉΓòÉ
  26406.  
  26407. The corner of the enclosing window to be taken as the origin. The position of 
  26408. the text object is measured from this point. 
  26409.  
  26410. "TL"      Top left 
  26411. "TR"      Top right 
  26412. "BL"      Bottom left 
  26413. "BR"      Bottom right 
  26414.  
  26415. Default: "BL" (Bottom left) 
  26416.  
  26417.  
  26418. ΓòÉΓòÉΓòÉ 195.1.19. OVERFLOW ΓòÉΓòÉΓòÉ
  26419.  
  26420. Enables or disables numeric overflow indicator: 
  26421.  
  26422. 0         Overflow indicator off 
  26423. 1         Overflow indicator on 
  26424.  
  26425. Default: 0 (Overflow indicator off) 
  26426.  
  26427. This means that if the number being displayed is larger than the static text it 
  26428. will be replaced by asterisks.  This is only used for numbers, and will not 
  26429. work if wordwrap is on. 
  26430.  
  26431.  
  26432. ΓòÉΓòÉΓòÉ 195.1.20. SELECTABLE ΓòÉΓòÉΓòÉ
  26433.  
  26434. If SELECTABLE is 1, clicking on the text once will cause an SELECT event, while 
  26435. clicking twice will cause an OPEN event. 
  26436.  
  26437. 0         Not selectable (no SELECT or OPEN events) 
  26438. 1         Selectable 
  26439.  
  26440. Default: 0 
  26441.  
  26442.  
  26443. ΓòÉΓòÉΓòÉ 195.1.21. SIZEX ΓòÉΓòÉΓòÉ
  26444.  
  26445. Width, in dialog units. 
  26446.  
  26447. Default: 0 
  26448.  
  26449.  
  26450. ΓòÉΓòÉΓòÉ 195.1.22. SIZEY ΓòÉΓòÉΓòÉ
  26451.  
  26452. Height, in dialog units. 
  26453.  
  26454. Default: 0 
  26455.  
  26456.  
  26457. ΓòÉΓòÉΓòÉ 195.1.23. TEXT ΓòÉΓòÉΓòÉ
  26458.  
  26459. Text string to appear in the text box. 
  26460.  
  26461. Note that the TEXT and EXPRESSION attributes are mutually exclusive. 
  26462.  
  26463. Default: "" 
  26464.  
  26465.  
  26466. ΓòÉΓòÉΓòÉ 195.1.24. VERTJUST ΓòÉΓòÉΓòÉ
  26467.  
  26468. Vertical justification of the text in the entry box: 
  26469.  
  26470. 0         Top justified 
  26471. 1         Bottom justified 
  26472. 2         Centered 
  26473.  
  26474. Default: 0 (Top justified) 
  26475.  
  26476.  
  26477. ΓòÉΓòÉΓòÉ 195.1.25. VISIBLE ΓòÉΓòÉΓòÉ
  26478.  
  26479. Whether the text object is displayed: 
  26480.  
  26481. 0         Text object not displayed 
  26482. 1         Text object displayed 
  26483.  
  26484. Default: 1 (Displayed) 
  26485.  
  26486.  
  26487. ΓòÉΓòÉΓòÉ 195.1.26. WORDWRAP ΓòÉΓòÉΓòÉ
  26488.  
  26489. Wraps the next word on to the following line when the length of the word 
  26490. exceeds the space available on a line within the text box. 
  26491.  
  26492. 0         Wordwrap off 
  26493. 1         Wordwrap on 
  26494.  
  26495. Default: 0 (Wordwrap off) 
  26496.  
  26497.  
  26498. ΓòÉΓòÉΓòÉ 195.1.27. X ΓòÉΓòÉΓòÉ
  26499.  
  26500. Horizontal position within the window, in dialog units. 
  26501.  
  26502. Default: 0 
  26503.  
  26504.  
  26505. ΓòÉΓòÉΓòÉ 195.1.28. Y ΓòÉΓòÉΓòÉ
  26506.  
  26507. Vertical position within the window, in dialog units. 
  26508.  
  26509. Default: 1 
  26510.  
  26511.  
  26512. ΓòÉΓòÉΓòÉ 195.2. Actions ΓòÉΓòÉΓòÉ
  26513.  
  26514. EDIT()               REFRESH() 
  26515.  
  26516.  
  26517. ΓòÉΓòÉΓòÉ 195.2.1. EDIT() ΓòÉΓòÉΓòÉ
  26518.  
  26519. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26520.  
  26521. Enables the programmer to query whether a clipboard operation is supported and, 
  26522. if it is, to carry it out. 
  26523.  
  26524. argument is a clipboard query or a clipboard operation. 
  26525.  
  26526. The following values for argument are used to check whether particular 
  26527. clipboard operations can be supported with the text box in its current state: 
  26528.  
  26529. "Querycut" Cut to clipboard 
  26530. "Querycopy" Copy to clipboard 
  26531. "Querypaste" Paste from clipboard 
  26532. "Queryclear" Clear clipboard. 
  26533.  
  26534. Where clipboard operations are supported, the following values for argument 
  26535. direct them to be carried out: 
  26536.  
  26537. "Cut"     Cut to clipboard 
  26538. "Copy"    Copy to clipboard 
  26539. "Paste"   Paste from clipboard 
  26540. "Clear"   Clear clipboard. 
  26541.  
  26542.  
  26543. ΓòÉΓòÉΓòÉ 195.2.2. REFRESH() ΓòÉΓòÉΓòÉ
  26544.  
  26545. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26546.  
  26547. Forces repainting of the text box on screen. 
  26548.  
  26549.  
  26550. ΓòÉΓòÉΓòÉ 195.3. Events ΓòÉΓòÉΓòÉ
  26551.  
  26552. DESKTOP            OPEN 
  26553. SELECT 
  26554.  
  26555.  
  26556. ΓòÉΓòÉΓòÉ 195.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  26557.  
  26558. Signaled when the text control is moved, sized, or copied. A.System.Operation 
  26559. is set to "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the 
  26560. control. 
  26561.  
  26562.  
  26563. ΓòÉΓòÉΓòÉ 195.3.2. OPEN ΓòÉΓòÉΓòÉ
  26564.  
  26565. Mouse is clicked twice on text field. 
  26566.  
  26567.  
  26568. ΓòÉΓòÉΓòÉ 195.3.3. SELECT ΓòÉΓòÉΓòÉ
  26569.  
  26570. Signaled when selection is made. A.System.Object is set to the text field name 
  26571. and A.System.PositionX and A.System.PositionY are set to the coordinates of the 
  26572. point selected. Coordinates are in world coordinate scale units. 
  26573.  
  26574.  
  26575. ΓòÉΓòÉΓòÉ 195.4. Examples ΓòÉΓòÉΓòÉ
  26576.  
  26577. Sample code to open a TEXT object and create a cloned text box 
  26578.  
  26579. OPEN TEXT text1, win,
  26580.  ORIGIN = "BL",
  26581.  X = 70, Y = 150,
  26582.  SIZEX = 80, SIZEY = 8,
  26583.  OL_ALL = 1,
  26584.  VISIBLE = 1,                     ! box is displayed (default)
  26585.  ENABLED = 1,
  26586.  TEXT = "simple text box",
  26587.  HORZJUST = 0,                    ! default left justified
  26588.  WORDWRAP = 0                     ! default, no wordwrap
  26589.  
  26590. DEFINE days[5] = "Friday"
  26591. OPEN text text2, win,
  26592.  X = 70, Y = 120,
  26593.  SIZEX = 50, SIZEY = 12,
  26594.  EXPRESSION = "days[1]",          ! display text in "days" array
  26595.  CLONES = 5,
  26596.  CLONEDIR = 1,
  26597.  CLONEGAP = 3,
  26598.  ORIGIN = "BL"
  26599.  
  26600. Examples source library: 
  26601.  
  26602.  
  26603. ΓòÉΓòÉΓòÉ 195.5. More about TEXT ΓòÉΓòÉΓòÉ
  26604.  
  26605. o The following attributes can only be modified for the entire clone set, not 
  26606.   for the individual clones: 
  26607.  
  26608.    CLONEDIR 
  26609.    CLONEGAP 
  26610.    HANDLES 
  26611.  
  26612.  
  26613. ΓòÉΓòÉΓòÉ 196. THEN ΓòÉΓòÉΓòÉ
  26614.  
  26615. The THEN statement introduces a statement or set of statements to be executed 
  26616. when the associated IF condition is met. 
  26617.  
  26618. The keyword THEN is optional. 
  26619.  
  26620. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26621.     ΓööΓöÇTHENΓöÇΓöÿ
  26622.  
  26623. Examples 
  26624.  
  26625. More about THEN 
  26626.  
  26627. See also: ELSE, IF ... THEN ... ELSE 
  26628.  
  26629.  
  26630. ΓòÉΓòÉΓòÉ 196.1. Examples ΓòÉΓòÉΓòÉ
  26631.  
  26632. IF WORD( DATE(,'NdNmYYYY'), 1 ) = 'Fri' & TIME() > TIME('10:30')
  26633. THEN MESSAGE 'FTB0001',0,"Go home, it's the weekend"
  26634.  
  26635. Examples source library: 
  26636.  
  26637.  
  26638. ΓòÉΓòÉΓòÉ 196.2. More about THEN ΓòÉΓòÉΓòÉ
  26639.  
  26640. o THEN can introduce a single statement or a set of statements. A set of 
  26641.   statements must be enclosed in a DO ... END block. 
  26642.  
  26643. o The single statement of a THEN clause, or the DO statement of a DO ... END 
  26644.   block, can appear on the same line as the THEN, or on the following line. 
  26645.  
  26646.  
  26647. ΓòÉΓòÉΓòÉ 197. TIME() ΓòÉΓòÉΓòÉ
  26648.  
  26649. The TIME() function converts a variable, a string, or a number to a time value. 
  26650.  
  26651. ΓöÇΓöÇTIME(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26652.           ΓööΓöÇexpressionΓöÇΓöÿ   ΓööΓöÇformatΓöÇΓöÿ
  26653.  
  26654. Examples 
  26655.  
  26656. More about TIME() 
  26657.  
  26658. See also: DATE(), PROFILE, RETYPE() 
  26659.  
  26660. Also see Formatting data 
  26661.  
  26662.  
  26663. ΓòÉΓòÉΓòÉ 197.1. Examples ΓòÉΓòÉΓòÉ
  26664.  
  26665. x   = TIME("10:25","HM")  ! Result is "10:25 A.M."
  26666. x   = TIME(1025,"HM")     ! Result is "10:25 A.M."
  26667. x   = TIME("10:25")       ! Result is "10:25 A.M."
  26668. now = TIME()              ! Sets now to current time
  26669.  
  26670. Examples source library: 
  26671.  
  26672.  
  26673. ΓòÉΓòÉΓòÉ 197.2. More about TIME() ΓòÉΓòÉΓòÉ
  26674.  
  26675. o TIME() can be used to override the default time format used when data is 
  26676.   converted implicitly by using LET to assign a value to a variable. 
  26677.  
  26678. o The numbers 145, 0145, and the strings "145:", "0145" all indicate a time of 
  26679.   1:45 AM. 
  26680.  
  26681. o The string "14" is interpreted as the hour part of a time definition and 
  26682.   indicates a time of 2:00 PM. To indicate a time of 0:14 AM, use the string 
  26683.   "0014". 
  26684.  
  26685.  
  26686. ΓòÉΓòÉΓòÉ 198. TIMER ΓòÉΓòÉΓòÉ
  26687.  
  26688. The TIMER object is available for scheduling activities at a particular date 
  26689. and time or after a delay. 
  26690.  
  26691. It is possible to open more than one timer object, but this is not necessary 
  26692. since one TIMER object can generate multiple TIMER events. 
  26693.  
  26694. Attributes: None. 
  26695.  
  26696. Actions 
  26697.  
  26698. Events 
  26699.  
  26700. Examples 
  26701.  
  26702. More about TIMER 
  26703.  
  26704.  
  26705. ΓòÉΓòÉΓòÉ 198.1. Actions ΓòÉΓòÉΓòÉ
  26706.  
  26707. AT()               AFTER() 
  26708.  
  26709.  
  26710. ΓòÉΓòÉΓòÉ 198.1.1. AT() ΓòÉΓòÉΓòÉ
  26711.  
  26712. ΓöÇΓöÇAT(time,date,token)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26713.  
  26714. The AT() action causes a timer event at the specified time on the specified 
  26715. date. 
  26716.  
  26717. CALL mytimer'AT("17:30",, "EOWD")
  26718.  
  26719. date may be omitted and defaults to the current day. 
  26720.  
  26721. token is an optional parameter to pass to the timer event. 
  26722.  
  26723.  
  26724. ΓòÉΓòÉΓòÉ 198.1.2. AFTER() ΓòÉΓòÉΓòÉ
  26725.  
  26726. ΓöÇΓöÇAFTER(seconds,token)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26727.  
  26728. The AFTER() action causes a timer event after the specified number of seconds 
  26729. in the variable seconds. seconds can contain a fractional value (2.47 for 
  26730. example). 
  26731.  
  26732. CALL mytimer'AFTER( 60, "REMIND" )
  26733.  
  26734. token is an optional parameter to pass to the timer event. 
  26735.  
  26736.  
  26737. ΓòÉΓòÉΓòÉ 198.2. Events ΓòÉΓòÉΓòÉ
  26738.  
  26739. TIMER 
  26740.  
  26741.  
  26742. ΓòÉΓòÉΓòÉ 198.2.1. TIMER ΓòÉΓòÉΓòÉ
  26743.  
  26744. The TIMER object signals a TIMER event at the appropriate time. If the TIMER 
  26745. object is closed, then all scheduled settings are lost. (Note that all objects 
  26746. are closed when the application is closed). 
  26747.  
  26748. A single optional parameter can be passed to the event block. 
  26749.  
  26750.  
  26751. ΓòÉΓòÉΓòÉ 198.3. Examples ΓòÉΓòÉΓòÉ
  26752.  
  26753. OPEN TIMER mytimer
  26754. ! End of working day warning at 5.30pm
  26755. CALL mytimer'AT( "17:30",, "EOWD")
  26756. ! Reminder needed in 15mins
  26757. CALL mytimer'AFTER( 15*60, "REMIND")
  26758.  
  26759. The TIMER event can be processed by an ON TIMER event block. A single optional 
  26760. parameter, named token in the examples, can be passed to the event block. 
  26761.  
  26762. ON TIMER( token )
  26763. DO
  26764.   CASE token
  26765.     ! If event is the reminder then call the appropriate proc
  26766.     WHEN "REMIND"
  26767.       CALL REMINDER
  26768.     ! If the event is the end of day
  26769.     WHEN "EOWD"
  26770.       CALL GOHOME
  26771.   END
  26772. END
  26773.  
  26774. Examples source library: 
  26775.  
  26776.  
  26777. ΓòÉΓòÉΓòÉ 198.4. More about TIMER ΓòÉΓòÉΓòÉ
  26778.  
  26779. o TIMER accuracy 
  26780.  
  26781.   When a TIMER event occurs, it is made available as an asynchronous event with 
  26782.   the same priority as other events such as the QUEUE statement. The ON TIMER 
  26783.   block is executed when the event reaches the top of the queue. If the system 
  26784.   is idle when this occurs, then the event is signaled immediately. However, if 
  26785.   tasks are executing, then the TIMER event is delayed, and may occur at any 
  26786.   point between or after other queued events. 
  26787.  
  26788. o The TIMER will trigger the TIMER event at the appropriate time.  If the TIMER 
  26789.   object is closed, all scheduled settings will be lost (note that all objects 
  26790.   are closed when the application is closed). 
  26791.  
  26792. o If the user is expected to enter a time you should be aware of TIMEFORMAT. 
  26793.   Even though the workstation clock may show a 24 hour time format when you 
  26794.   type TIME in a OS/2 session, Visualizer may display the time in a 12 hour 
  26795.   time format (see Properties under Group on the Visualizer main window). 
  26796.  
  26797.   For example, TIME in OS/2 may show 16:45, but Visualizer may show this time 
  26798.   as 04:45, depending on the properties in the group window. A user may then 
  26799.   type 04:55, expecting the timer to be activated in ten minutes, but it will 
  26800.   in fact activate immediately. This is because Visualizer interprets this as 
  26801.   04:55 in the morning, and that time is twelve hours earlier than the current 
  26802.   time. 
  26803.  
  26804.   You can avoid problems with differing time formats by setting the TIMEFORMAT 
  26805.   attribute of the variable used to display the current time.  For example: 
  26806.  
  26807.     LET timenow[0]'TIMEFORMAT = "hh:mm"
  26808.  
  26809. o The TIME() function can also be used to convert a time value according to an 
  26810.   explicit format. 
  26811.  
  26812.  
  26813. ΓòÉΓòÉΓòÉ 199. TOTAL() ΓòÉΓòÉΓòÉ
  26814.  
  26815. The TOTAL() function returns the sum of a series of values. 
  26816.  
  26817.               <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  26818. ΓöÇΓöÇTOTALΓöÇΓöÇ(ΓöÇΓöÇΓöÇΓöÇexpressionΓöÇΓö┤ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26819.  
  26820. Examples 
  26821.  
  26822. More about TOTAL() 
  26823.  
  26824.  
  26825. ΓòÉΓòÉΓòÉ 199.1. Examples ΓòÉΓòÉΓòÉ
  26826.  
  26827. x1 = 43
  26828. x2 = 9
  26829. x3 = 84
  26830. x4 = 44
  26831. Result = TOTAL(x1,x2,x3,x4)             ! Result is 180
  26832.  
  26833. DEFINE column[4]
  26834. column[1] = 1234
  26835. column[3] = 887
  26836. Result = TOTAL(column[0])               ! Result is 2121
  26837.  
  26838. Result = TOTAL(x1,x2,x3,x4,column[0])   ! Result is 2301
  26839.  
  26840. column[4] = "42"
  26841. Result = TOTAL(column[0])               ! Result is 2163
  26842.  
  26843. Examples source library: 
  26844.  
  26845.  
  26846. ΓòÉΓòÉΓòÉ 199.2. More about TOTAL() ΓòÉΓòÉΓòÉ
  26847.  
  26848. o Any nonnumeric values are converted to numeric if possible. Nonnumeric values 
  26849.   which cannot be converted are ignored. 
  26850.  
  26851. o expression and subsequent expressions can reference individual values in an 
  26852.   array. 
  26853.  
  26854. o If any expression is NULL, then it is ignored. 
  26855.  
  26856.  
  26857. ΓòÉΓòÉΓòÉ 200. TRACE ΓòÉΓòÉΓòÉ
  26858.  
  26859. The TRACE statement produces an execution time trace of statements as executed 
  26860. during the Visualizer session. The trace is saved in S.System.Trace. 
  26861.  
  26862.            ΓöîΓöÇOFFΓöÇΓöÇΓöÇΓöÇΓöÉ
  26863. ΓöÇΓöÇTRACEΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26864.            Γö£ΓöÇONΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  26865.            Γö£ΓöÇLINEΓöÇΓöÇΓöÇΓöñ
  26866.            ΓööΓöÇBRANCHΓöÇΓöÿ
  26867.  
  26868. Examples 
  26869.  
  26870. More about TRACE 
  26871.  
  26872. See also: TRACE in User Library functions 
  26873.  
  26874.  
  26875. ΓòÉΓòÉΓòÉ 200.1. Examples ΓòÉΓòÉΓòÉ
  26876.  
  26877. TRACE ON
  26878. CALL DodgyFunction(42)
  26879. TRACE OFF
  26880.  
  26881. Examples source library: 
  26882.  
  26883.  
  26884. ΓòÉΓòÉΓòÉ 200.2. More about TRACE ΓòÉΓòÉΓòÉ
  26885.  
  26886. o TRACE without a parameter is interpreted as TRACE OFF. 
  26887.  
  26888.  
  26889. ΓòÉΓòÉΓòÉ 201. TRIM() ΓòÉΓòÉΓòÉ
  26890.  
  26891. The TRIM() function returns a string trimmed of leading or trailing spaces. 
  26892.  
  26893.                  ΓöîΓöÇ"B"ΓöÇΓöÇΓöÉ
  26894. ΓöÇΓöÇTRIM(string,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26895.                  ΓööΓöÇtypeΓöÇΓöÿ
  26896.  
  26897. Examples 
  26898.  
  26899. More about TRIM() 
  26900.  
  26901. See also: CTRIM() 
  26902.  
  26903.  
  26904. ΓòÉΓòÉΓòÉ 201.1. Examples ΓòÉΓòÉΓòÉ
  26905.  
  26906. x = TRIM(" asdf ")        ! Result is "asdf"
  26907. x = TRIM(" asdf ", "L" )  ! Result is "asdf "
  26908.  
  26909. Examples source library: 
  26910.  
  26911.  
  26912. ΓòÉΓòÉΓòÉ 201.2. More about TRIM() ΓòÉΓòÉΓòÉ
  26913.  
  26914. o Using a string parameter of type NULL in this function produces a result of 
  26915.   NULL. 
  26916.  
  26917.  
  26918. ΓòÉΓòÉΓòÉ 202. TRUE ΓòÉΓòÉΓòÉ
  26919.  
  26920. The TRUE statement identifies a particular value of a CASE expression. When the 
  26921. expression takes on a value which is nonzero, the statement following TRUE is 
  26922. executed. 
  26923.  
  26924. ΓöÇΓöÇTRUEΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26925.  
  26926. Examples 
  26927.  
  26928. More about TRUE 
  26929.  
  26930. See also: CASE...WHEN...OTHERWISE...END, FALSE, IF ... THEN ... ELSE, NULL 
  26931.  
  26932.  
  26933. ΓòÉΓòÉΓòÉ 202.1. Examples ΓòÉΓòÉΓòÉ
  26934.  
  26935. X = 9
  26936. Y = 10
  26937. CASE X < Y
  26938.   TRUE
  26939.     MESSAGE "FTB0001",0,"2 - True ..."
  26940.   FALSE
  26941.     MESSAGE "FTB0001",0,"2 - False ..."
  26942.   NULL
  26943.     MESSAGE "FTB0001",0,"2 - Null ..."
  26944.   ! Note that "IF x < y ... ELSE DO ..." will run the THEN part
  26945.   ! when the expression is TRUE but not when the expression is NULL
  26946.   ! (which would arise if X or Y or both were NULL)
  26947. END
  26948.  
  26949. Examples source library: 
  26950.  
  26951.  
  26952. ΓòÉΓòÉΓòÉ 202.2. More about TRUE ΓòÉΓòÉΓòÉ
  26953.  
  26954. o CASE...TRUE...FALSE...NULL...END performs a three-way test which takes 
  26955.   account of NULL values. 
  26956.  
  26957.   The IF statement performs a two-way test which is equivalent to 
  26958.   CASE...TRUE...OTHERWISE...END. 
  26959.  
  26960. o If a CASE expression is not present, any TRUE, FALSE, or NULL blocks are 
  26961.   ignored. 
  26962.  
  26963.  
  26964. ΓòÉΓòÉΓòÉ 203. UNIQUE() ΓòÉΓòÉΓòÉ
  26965.  
  26966. The UNIQUE() function returns a new string each time it is called. 
  26967.  
  26968.             ΓöîΓöÇ"FTB__"ΓöÇΓöÉ   ΓöîΓöÇ20ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  26969. ΓöÇΓöÇUNIQUE(ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  26970.             ΓööΓöÇstemΓöÇΓöÇΓöÇΓöÇΓöÿ   ΓööΓöÇlengthΓöÇΓöÿ
  26971.  
  26972. Examples 
  26973.  
  26974. More about UNIQUE() 
  26975.  
  26976.  
  26977. ΓòÉΓòÉΓòÉ 203.1. Examples ΓòÉΓòÉΓòÉ
  26978.  
  26979. x = UNIQUE("$temp",10)  ! Similar to "$temp____1"
  26980. x = UNIQUE(,6)          ! Similar to "FTB__2"
  26981. x = UNIQUE()            ! Similar to "FTB__...__3"
  26982.  
  26983. Examples source library: 
  26984.  
  26985.  
  26986. ΓòÉΓòÉΓòÉ 203.2. More about UNIQUE() ΓòÉΓòÉΓòÉ
  26987.  
  26988. o Care must be taken to guard against the possibility of duplicate strings. 
  26989.   Although UNIQUE() never returns the same string twice within the same 
  26990.   session, it may by chance generate a string which is already in use as a 
  26991.   table name, file name, or some other entity. Similarly, it is possible for a 
  26992.   programmer to create a string that has already been generated by UNIQUE(). 
  26993.  
  26994.   To avoid this problem, always specify a stem for UNIQUE() that you never use 
  26995.   in any other context. 
  26996.  
  26997.  
  26998. ΓòÉΓòÉΓòÉ 204. UNTIL ΓòÉΓòÉΓòÉ
  26999.  
  27000. The UNTIL statement specifies a condition which causes one or more statements 
  27001. following it to be executed repeatedly until the condition is true. 
  27002.  
  27003. ΓöÇΓöÇUNTILΓöÇΓöÇexpressionΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27004.  
  27005. Examples 
  27006.  
  27007. More about UNTIL 
  27008.  
  27009. See also: ITERATE, TERMINATE, WHILE 
  27010.  
  27011.  
  27012. ΓòÉΓòÉΓòÉ 204.1. Examples ΓòÉΓòÉΓòÉ
  27013.  
  27014. DECLARE NUMERIC value     = 0
  27015. DECLARE NUMERIC increment = 1
  27016. DECLARE NUMERIC totval    = 0
  27017. UNTIL value>100
  27018. DO
  27019.   LET value += increment
  27020.   LET increment += 1
  27021.   LET totval += value
  27022. END
  27023.  
  27024. Examples source library: 
  27025.  
  27026.  
  27027. ΓòÉΓòÉΓòÉ 204.2. More about UNTIL ΓòÉΓòÉΓòÉ
  27028.  
  27029. o An UNTIL statement can control a single statement or a set of statements. A 
  27030.   set of statements must be enclosed in a DO ... END block. 
  27031.  
  27032. o The statements controlled by the UNTIL statement are always executed at least 
  27033.   once.  expression is not executed on entry to the loop. 
  27034.  
  27035. o ITERATE and TERMINATE statements can be used to modify the behavior of the 
  27036.   UNTIL loop. 
  27037.  
  27038.  
  27039. ΓòÉΓòÉΓòÉ 205. UPPER() ΓòÉΓòÉΓòÉ
  27040.  
  27041. The UPPER() function converts all lowercase letters in a string to uppercase. 
  27042.  
  27043. ΓöÇΓöÇUPPER(string)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27044.  
  27045. Examples 
  27046.  
  27047. More about UPPER() 
  27048.  
  27049.  
  27050. ΓòÉΓòÉΓòÉ 205.1. Examples ΓòÉΓòÉΓòÉ
  27051.  
  27052. x = UPPER("Books")   ! x is "BOOKS"
  27053. x = UPPER("B╨æcher")  ! x is "B╨¬CHER"
  27054.  
  27055. Examples source library: 
  27056.  
  27057.  
  27058. ΓòÉΓòÉΓòÉ 205.2. More about UPPER() ΓòÉΓòÉΓòÉ
  27059.  
  27060. o Non-alphabetical and uppercase characters are not affected. 
  27061.  
  27062. o The exact way that this function operates depends on the country setting and 
  27063.   code page to which the system is set. 
  27064.  
  27065. o Using a string parameter of type NULL in this function produces a result of 
  27066.   NULL. 
  27067.  
  27068.  
  27069. ΓòÉΓòÉΓòÉ 206. VALUE ΓòÉΓòÉΓòÉ
  27070.  
  27071. The VALUE object class creates an instance of a value set. 
  27072.  
  27073. Parent: WINDOW 
  27074.  
  27075. Attributes 
  27076.  
  27077. Actions 
  27078.  
  27079. Events 
  27080.  
  27081. Examples 
  27082.  
  27083. More about VALUE 
  27084.  
  27085.  
  27086. ΓòÉΓòÉΓòÉ 206.1. Attributes ΓòÉΓòÉΓòÉ
  27087.  
  27088. CHECKED             COLS 
  27089. ENABLED             HANDLES 
  27090. HELP                ITEMLIST 
  27091. ITEMTYPE            ORIGIN 
  27092. RESOURCE            ROWS 
  27093. SCALE               SIZEX 
  27094. SIZEY               VISIBLE 
  27095. X                   Y 
  27096.  
  27097.  
  27098. ΓòÉΓòÉΓòÉ 206.1.1. CHECKED ΓòÉΓòÉΓòÉ
  27099.  
  27100. Item number of the selected item. 
  27101.  
  27102. Default: 0 (No item selected) Once an item has been selected, CHECKED cannot be 
  27103. reassigned to 0 to indicate no item selected. One of the items must be 
  27104. selected, therefore the range is now 1 to number of items. 
  27105.  
  27106.  
  27107. ΓòÉΓòÉΓòÉ 206.1.2. COLS ΓòÉΓòÉΓòÉ
  27108.  
  27109. Number of columns per set.  An integer, read-only after open. 
  27110.  
  27111. Default: 0 
  27112.  
  27113.  
  27114. ΓòÉΓòÉΓòÉ 206.1.3. ENABLED ΓòÉΓòÉΓòÉ
  27115.  
  27116. 0         Item grayed out and not selectable 
  27117. 1         Item enabled 
  27118.  
  27119. Default: 1 (Enabled) 
  27120.  
  27121.  
  27122. ΓòÉΓòÉΓòÉ 206.1.4. HANDLES ΓòÉΓòÉΓòÉ
  27123.  
  27124. Whether sizing handles are attached to the value set to support moving, sizing, 
  27125. and copying operations. These direct manipulation techniques follow the CUA 
  27126. guidelines. See also the AUTOSELECT attribute of the WINDOW object. 
  27127.  
  27128. 0         Handles are not displayed 
  27129. 1         Handles are displayed 
  27130.  
  27131. Default: 0 (No handles) 
  27132.  
  27133.  
  27134. ΓòÉΓòÉΓòÉ 206.1.5. HELP ΓòÉΓòÉΓòÉ
  27135.  
  27136. Resource identifier (res ID) of the full help text for this object. 
  27137.  
  27138. Default: 0 
  27139.  
  27140.  
  27141. ΓòÉΓòÉΓòÉ 206.1.6. ITEMLIST ΓòÉΓòÉΓòÉ
  27142.  
  27143. Pointer to the contents of a vector of text strings (if text is being used) or 
  27144. a pointer to the contents of a vector of bitmap names and locations (if bitmap 
  27145. files are being used). 
  27146.  
  27147. If DLL files are being used, ITEMLIST contains the name of a vector which holds 
  27148. the res IDs of the items in the DLL. 
  27149.  
  27150. Default: "" 
  27151.  
  27152.  
  27153. ΓòÉΓòÉΓòÉ 206.1.7. ITEMTYPE ΓòÉΓòÉΓòÉ
  27154.  
  27155. Whether items are text or bitmap : 
  27156.  
  27157. 0         Text: each item should evaluate to a text string 
  27158. 1         Bitmap: each item should evaluate to the name of a BMP bitmap file 
  27159. 2         Color: the bitmap will be displayed using the color palette. 
  27160.  
  27161. Set on OPEN, then read-only. 
  27162.  
  27163. Default: 0 (Text) 
  27164.  
  27165.  
  27166. ΓòÉΓòÉΓòÉ 206.1.8. ORIGIN ΓòÉΓòÉΓòÉ
  27167.  
  27168. The corner of the enclosing window to be taken as the origin.  The position of 
  27169. the object is measured from this point. 
  27170.  
  27171. "TL"      Top left 
  27172. "TR"      Top right 
  27173. "BL"      Bottom left 
  27174. "BR"      Bottom right 
  27175.  
  27176. Default: "BL" (Bottom left) 
  27177.  
  27178.  
  27179. ΓòÉΓòÉΓòÉ 206.1.9. RESOURCE ΓòÉΓòÉΓòÉ
  27180.  
  27181. Name of DLL file (including the path name if required) when DLL files are used 
  27182. instead of BMP files. 
  27183.  
  27184. Default: None 
  27185.  
  27186.  
  27187. ΓòÉΓòÉΓòÉ 206.1.10. ROWS ΓòÉΓòÉΓòÉ
  27188.  
  27189. Number of rows per set. An integer. Set on OPEN, then read-only. 
  27190.  
  27191. Default: 1 
  27192.  
  27193.  
  27194. ΓòÉΓòÉΓòÉ 206.1.11. SCALE ΓòÉΓòÉΓòÉ
  27195.  
  27196. If 1, bitmaps are scaled to fit in value cells. If 0, the default size is 
  27197. displayed. 
  27198.  
  27199. Default: 0 
  27200.  
  27201.  
  27202. ΓòÉΓòÉΓòÉ 206.1.12. SIZEX ΓòÉΓòÉΓòÉ
  27203.  
  27204. Width, in dialog box units. 
  27205.  
  27206. Default: 0 
  27207.  
  27208.  
  27209. ΓòÉΓòÉΓòÉ 206.1.13. SIZEY ΓòÉΓòÉΓòÉ
  27210.  
  27211. Height, in dialog box units. 
  27212.  
  27213. Default: 0 
  27214.  
  27215.  
  27216. ΓòÉΓòÉΓòÉ 206.1.14. VISIBLE ΓòÉΓòÉΓòÉ
  27217.  
  27218. Whether the item is displayed or not: 
  27219.  
  27220. 0         Item not displayed. 
  27221. 1         Item displayed. 
  27222.  
  27223. Default: 1 (Displayed) 
  27224.  
  27225.  
  27226. ΓòÉΓòÉΓòÉ 206.1.15. X ΓòÉΓòÉΓòÉ
  27227.  
  27228. Horizontal position in dialog box units. 
  27229.  
  27230. Default: 0 
  27231.  
  27232.  
  27233. ΓòÉΓòÉΓòÉ 206.1.16. Y ΓòÉΓòÉΓòÉ
  27234.  
  27235. Vertical position in dialog box units. 
  27236.  
  27237. Default: 0 
  27238.  
  27239.  
  27240. ΓòÉΓòÉΓòÉ 206.2. Actions ΓòÉΓòÉΓòÉ
  27241.  
  27242. DISABLE()            EDIT() 
  27243. ENABLE()             REFRESH() 
  27244.  
  27245.  
  27246. ΓòÉΓòÉΓòÉ 206.2.1. DISABLE() ΓòÉΓòÉΓòÉ
  27247.  
  27248. ΓöÇΓöÇDISABLE(item_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27249.  
  27250. Disables value set item. 
  27251.  
  27252.  
  27253. ΓòÉΓòÉΓòÉ 206.2.2. EDIT() ΓòÉΓòÉΓòÉ
  27254.  
  27255. ΓöÇΓöÇEDIT(argument)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27256.  
  27257. Enables the programmer to query whether a clipboard operation is supported and, 
  27258. if it is, to carry it out. 
  27259.  
  27260. argument is a clipboard query or a clipboard operation. 
  27261.  
  27262. The following values for argument are used to check whether particular 
  27263. clipboard operations can be supported with the value set in its current state: 
  27264.  
  27265. "Querycut" Cut to clipboard 
  27266. "Querycopy" Copy to clipboard 
  27267. "Querypaste" Paste from clipboard 
  27268. "Queryclear" Clear clipboard. 
  27269.  
  27270. Where clipboard operations are supported, the following values for argument 
  27271. direct them to be carried out: 
  27272.  
  27273. "Cut"     Cut to clipboard 
  27274. "Copy"    Copy to clipboard 
  27275. "Paste"   Paste from clipboard 
  27276. "Clear"   Clear clipboard. 
  27277.  
  27278.  
  27279. ΓòÉΓòÉΓòÉ 206.2.3. ENABLE() ΓòÉΓòÉΓòÉ
  27280.  
  27281. ΓöÇΓöÇENABLE(item_number)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27282.  
  27283. Enables value set item. 
  27284.  
  27285.  
  27286. ΓòÉΓòÉΓòÉ 206.2.4. REFRESH() ΓòÉΓòÉΓòÉ
  27287.  
  27288. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27289.  
  27290. Forces repainting of the value set on screen. 
  27291.  
  27292.  
  27293. ΓòÉΓòÉΓòÉ 206.3. Events ΓòÉΓòÉΓòÉ
  27294.  
  27295. DESKTOP            SELECT 
  27296.  
  27297.  
  27298. ΓòÉΓòÉΓòÉ 206.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  27299.  
  27300. Signaled when the value set is moved, sized, or copied. A.System.Operation is 
  27301. set to "MOVE", "SIZE", or "COPY". A.System.Object contains the name of the 
  27302. control. 
  27303.  
  27304.  
  27305. ΓòÉΓòÉΓòÉ 206.3.2. SELECT ΓòÉΓòÉΓòÉ
  27306.  
  27307. Signals the ON SELECT block. A.System.Object is set to named control. Use the 
  27308. CHECKED attribute to identify which box was selected.  LET box = 
  27309. T..Value1'CHECKED 
  27310.  
  27311.  
  27312. ΓòÉΓòÉΓòÉ 206.4. Examples ΓòÉΓòÉΓòÉ
  27313.  
  27314. !
  27315. ! Open a simple value set.
  27316. !
  27317. PROCEDURE VALUE
  27318. DO
  27319.   LET daylist="days[1]"
  27320.   OPEN value value1,sampwind,
  27321.    x=40,y=40,                     ! position
  27322.    itemlist=daylist,              ! reference array
  27323.    sizex=120,sizey=120,           ! size
  27324.    visible=1,                     ! enabled
  27325.    rows=5,                        ! number of choices (vertical)
  27326.    cols=1,                        ! number of choices (horizontal)
  27327.    text="Weekdays",               ! title for value set
  27328.    itemtype=0,                    ! items will be text
  27329.    origin="bl"                    ! relative position
  27330.   !
  27331.   LET value1'CHECKED=3
  27332.   ! Disable (gray) the fifth item
  27333.   CALL value1'DISABLE(5)
  27334. END
  27335.  
  27336. The code below shows how to fill a vector containing bitmap information: 
  27337.  
  27338.  DEFINE valuearr[4]
  27339.  LET valuearr[1]="d:\icons\AS1.BMP"
  27340.  LET valuearr[2]="d:\icons\AS2.BMP"
  27341.  LET valuearr[3]="d:\icons\AS3.BMP"
  27342.  LET valuearr[4]="d:\icons\AS4.BMP"
  27343.  LET valuelst="valuearr[1]"
  27344.  OPEN VALUE, myvalue,
  27345.       ITEMLIST = valuelst
  27346.       . . .
  27347.  
  27348. Examples source library: 
  27349.  
  27350.  
  27351. ΓòÉΓòÉΓòÉ 206.5. More about VALUE ΓòÉΓòÉΓòÉ
  27352.  
  27353. o The VALUE object cannot be cloned. 
  27354.  
  27355.  
  27356. ΓòÉΓòÉΓòÉ 207. VALUE() ΓòÉΓòÉΓòÉ
  27357.  
  27358. The VALUE() function returns the first of its arguments which is not NULL. 
  27359.  
  27360.            <ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  27361. ΓöÇΓöÇVALUE(ΓöÇΓöÇΓöÇvalueΓöÇΓö┤ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27362.  
  27363. Examples 
  27364.  
  27365. More about VALUE() 
  27366.  
  27367.  
  27368. ΓòÉΓòÉΓòÉ 207.1. Examples ΓòÉΓòÉΓòÉ
  27369.  
  27370. DEFINE Array[5]
  27371. x = VALUE( Array[3], -1 )  ! Result is -1
  27372. x = VALUE( Array[0], -1 )  ! Result is -1
  27373. Array[4] = 42
  27374. x = VALUE( Array[3], -1 )  ! Result is -1
  27375. x = VALUE( Array[0], -1 )  ! Result is 42
  27376. Array[2] = 8.12
  27377. x = VALUE( Array[0], -1 )  ! Result is 8.12
  27378.  
  27379. Examples source library: 
  27380.  
  27381.  
  27382. ΓòÉΓòÉΓòÉ 207.2. More about VALUE() ΓòÉΓòÉΓòÉ
  27383.  
  27384. o If all the values are NULL, the result is also NULL. 
  27385.  
  27386.  
  27387. ΓòÉΓòÉΓòÉ 208. VARIANCE() ΓòÉΓòÉΓòÉ
  27388.  
  27389. The VARIANCE() function returns an estimate of the variance based on a sample 
  27390. of values. 
  27391.  
  27392. ΓöÇΓöÇVARIANCE(array)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27393.  
  27394. Examples 
  27395.  
  27396. More about VARIANCE() 
  27397.  
  27398.  
  27399. ΓòÉΓòÉΓòÉ 208.1. Examples ΓòÉΓòÉΓòÉ
  27400.  
  27401. x = VARIANCE(set)
  27402.  
  27403. Examples source library: 
  27404.  
  27405.  
  27406. ΓòÉΓòÉΓòÉ 208.2. More about VARIANCE() ΓòÉΓòÉΓòÉ
  27407.  
  27408. o VARIANCE() is calculated by summing the squared deviations of each value from 
  27409.   the arithmetic mean, and dividing by the number of values in the sample minus 
  27410.   one. 
  27411.  
  27412.  
  27413. ΓòÉΓòÉΓòÉ 209. VERIFY() ΓòÉΓòÉΓòÉ
  27414.  
  27415. The VERIFY() function checks whether each individual element of a vector array 
  27416. is, or can be converted to, a specified data type. If all elements can be 
  27417. converted, VERIFY() returns 0. Otherwise it returns the position of the first 
  27418. element which cannot be converted. 
  27419.  
  27420.                          ΓöîΓöÇ1ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ                 ΓöîΓöÇ"="ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  27421. ΓöÇΓöÇVERIFY(ref,content,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ,ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27422.                          ΓööΓöÇstartΓöÇΓöÿ     ΓööΓöÇendΓöÇΓöÿ     ΓööΓöÇcompareΓöÇΓöÿ
  27423.    ΓöîΓöÇ0ΓöÇΓöÇΓöÇΓöÇΓöÉ
  27424. ΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27425.    ΓööΓöÇnullΓöÇΓöÿ
  27426.  
  27427. Examples 
  27428.  
  27429. More about VERIFY() 
  27430.  
  27431.  
  27432. ΓòÉΓòÉΓòÉ 209.1. Examples ΓòÉΓòÉΓòÉ
  27433.  
  27434. o If vector is: 
  27435.  
  27436.     vector[1] = 5
  27437.     vector[2] = 18.2
  27438.     vector[3] = "Fred"
  27439.     vector[4] = 8.12
  27440.     vector[5] = 1024
  27441.  
  27442.   and the content of num is numeric, then the statement  VERIFY(vector,num) 
  27443.   returns 3 (the position of the element that is not numeric and cannot be 
  27444.   converted). 
  27445.  
  27446. o If vector is: 
  27447.  
  27448.     vector[1] = "a"
  27449.     vector[2] = "b"
  27450.     vector[3] = "c"
  27451.     vector[4] = 3
  27452.     vector[5] = "e"
  27453.  
  27454.   and the content of num is numeric, then the statement 
  27455.   VERIFY(vector,num,,,"\=") returns 4 (the position of the element that is 
  27456.   numeric). 
  27457.  
  27458. o If vector is: 
  27459.  
  27460.     vector[1] = 9
  27461.     vector[2] = 8
  27462.     vector[3] = "7"
  27463.     vector[4] = 6
  27464.     vector[5] = 5
  27465.  
  27466.   and the content of num is numeric, then the statement 
  27467.   VERIFY(vector,num,,,"==") returns 3, because, although "7" could be converted 
  27468.   to numeric type, the "==" test comparison forbids conversion. 
  27469.  
  27470. Examples source library: 
  27471.  
  27472.  
  27473. ΓòÉΓòÉΓòÉ 209.2. More about VERIFY() ΓòÉΓòÉΓòÉ
  27474.  
  27475. o The "\=" comparison reverses the VERIFY() so that it checks for elements that 
  27476.   cannot be converted to the specified data type. This is useful in searching 
  27477.   for NULL elements within an array. 
  27478.  
  27479. o If the values given in the start and end parameters fall outside the range of 
  27480.   the array, then VERIFY() returns zero. 
  27481.  
  27482.  
  27483. ΓòÉΓòÉΓòÉ 210. VIEWCALCS ΓòÉΓòÉΓòÉ
  27484.  
  27485. The ViewCalcs object is used in conjunction with the IBMDATA object to allow 
  27486. the use of calculated columns. The Calculate columns window allows the user to 
  27487. set the column type, format, and name. 
  27488.  
  27489. Attributes 
  27490.  
  27491. Actions 
  27492.  
  27493. Events: None. 
  27494.  
  27495. Examples 
  27496.  
  27497. More about 
  27498.  
  27499. See also: IBMDATA, VIEWORDER, VIEWROWS, VIEWTABLES 
  27500.  
  27501.  
  27502. ΓòÉΓòÉΓòÉ 210.1. Attributes ΓòÉΓòÉΓòÉ
  27503.  
  27504. OWNERWINDOW            DATA 
  27505. MODAL 
  27506.  
  27507.  
  27508. ΓòÉΓòÉΓòÉ 210.1.1. OWNERWINDOW ΓòÉΓòÉΓòÉ
  27509.  
  27510. This is a pointer to the window of the parent application. 
  27511.  
  27512.  
  27513. ΓòÉΓòÉΓòÉ 210.1.2. DATA ΓòÉΓòÉΓòÉ
  27514.  
  27515. This is a pointer to the underlying data object. Messages are sent to the data 
  27516. object to find the initial set of calculated columns. If changes are made, the 
  27517. underlying data object is then updated with the latest calculations. 
  27518.  
  27519.  
  27520. ΓòÉΓòÉΓòÉ 210.1.3. MODAL ΓòÉΓòÉΓòÉ
  27521.  
  27522. Defines whether or not the window is modal. 
  27523.  
  27524. 0         Window not modal 
  27525. 1         Window modal. 
  27526.  
  27527. Default: 0 (Not modal) 
  27528.  
  27529.  
  27530. ΓòÉΓòÉΓòÉ 210.2. Actions ΓòÉΓòÉΓòÉ
  27531.  
  27532. SURFACE() 
  27533.  
  27534.  
  27535. ΓòÉΓòÉΓòÉ 210.2.1. SURFACE() ΓòÉΓòÉΓòÉ
  27536.  
  27537. ΓöÇΓöÇSURFACE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27538.  
  27539. If this action is called the window showing the selected rows will be brought 
  27540. to the top of the glass. 
  27541.  
  27542.  
  27543. ΓòÉΓòÉΓòÉ 210.3. Examples ΓòÉΓòÉΓòÉ
  27544.  
  27545. Example of opening a VIEWCALCS object. 
  27546.  
  27547. When a selection is made on the menu for Calculate Columns, the application 
  27548. will open the Calculate columns view object. 
  27549.  
  27550. ON SELECT
  27551. DO
  27552.   CASE A.System.Object             ! Which screen object?
  27553.     WHEN "T.Primary.CalcCols"      ! Calc cols selected.
  27554.     DO
  27555.       IF NULL(MyVCalcs'CLASS)      ! If object is not open
  27556.       THEN
  27557.         OPEN VIEWCALCS MyVCalcs,   ! then open it
  27558.          OWNERWINDOW  = POINTER( Primary[0] ),
  27559.          DATA         = POINTER( MyData[0] )
  27560.       ELSE
  27561.         CALL MyVCalcs'SURFACE()    ! else just surface it.
  27562.     END
  27563.   END
  27564. END
  27565.  
  27566. Add the following code in the ON QUIT block to handle shutting down the data 
  27567. object. 
  27568.  
  27569. IF A.System.Object = "T..MyVCalcs"
  27570. THEN DO
  27571.   SHUT MyVCalcs    ! Close ViewCalcs window
  27572.   CALL MyData'SNAPSHOT( Pointer( mycopy[0] ), "*" )
  27573.   IF MyData'CODE = 0  ! If it worked...
  27574.   THEN ...
  27575.  
  27576. Examples source library: 
  27577.  
  27578.  
  27579. ΓòÉΓòÉΓòÉ 210.4. More about ΓòÉΓòÉΓòÉ
  27580.  
  27581. o AS/400 calculations are evaluated in Visualizer by Query. 
  27582.  
  27583. o IBMSQLSTATEMENT calculations use ASL syntax. 
  27584.  
  27585.  
  27586. ΓòÉΓòÉΓòÉ 211. VIEWORDER ΓòÉΓòÉΓòÉ
  27587.  
  27588. The ViewOrder object is used in conjunction with the IBMDATA object to provide 
  27589. a order rows interface and an index feature. 
  27590.  
  27591. Attributes 
  27592.  
  27593. Actions 
  27594.  
  27595. Events 
  27596.  
  27597. Examples 
  27598.  
  27599. See also: IBMDATA, VIEWCALCS, VIEWROWS, VIEWTABLES 
  27600.  
  27601.  
  27602. ΓòÉΓòÉΓòÉ 211.1. Attributes ΓòÉΓòÉΓòÉ
  27603.  
  27604. OWNERWINDOW            DATA 
  27605. MODAL                  TITLE 
  27606. TABLE                  ORDERVECTOR 
  27607. ORDERSIGNS             VISIBLE 
  27608. CODE 
  27609.  
  27610.  
  27611. ΓòÉΓòÉΓòÉ 211.1.1. OWNERWINDOW ΓòÉΓòÉΓòÉ
  27612.  
  27613. This is a pointer to the window of the parent application. 
  27614.  
  27615.  
  27616. ΓòÉΓòÉΓòÉ 211.1.2. DATA ΓòÉΓòÉΓòÉ
  27617.  
  27618. This is a pointer to the underlying data object.  Messages are sent to the data 
  27619. object to find the initial set order. Use DATA if the ordering is for a data 
  27620. object, if for a table use the TABLE attribute. 
  27621.  
  27622.  
  27623. ΓòÉΓòÉΓòÉ 211.1.3. MODAL ΓòÉΓòÉΓòÉ
  27624.  
  27625. Defines whether or not the window is modal. 
  27626.  
  27627. 0         Window not modal 
  27628. 1         Window modal 
  27629.  
  27630. Default: 0 (Not modal) 
  27631.  
  27632.  
  27633. ΓòÉΓòÉΓòÉ 211.1.4. TITLE ΓòÉΓòÉΓòÉ
  27634.  
  27635. The title to be used on the window. 
  27636.  
  27637.  
  27638. ΓòÉΓòÉΓòÉ 211.1.5. TABLE ΓòÉΓòÉΓòÉ
  27639.  
  27640. Pointer to the table handle. Use TABLE if the ordering is for a table object, 
  27641. if for a DATA object  use the DATA attribute. 
  27642.  
  27643.  
  27644. ΓòÉΓòÉΓòÉ 211.1.6. ORDERVECTOR ΓòÉΓòÉΓòÉ
  27645.  
  27646. Pointer to vector of order names. 
  27647.  
  27648.  
  27649. ΓòÉΓòÉΓòÉ 211.1.7. ORDERSIGNS ΓòÉΓòÉΓòÉ
  27650.  
  27651. Pointer to vector of order signs. 
  27652.  
  27653.  
  27654. ΓòÉΓòÉΓòÉ 211.1.8. VISIBLE ΓòÉΓòÉΓòÉ
  27655.  
  27656. Whether the order window is visible. 
  27657.  
  27658. Default: 0 (Not visible) 
  27659.  
  27660.  
  27661. ΓòÉΓòÉΓòÉ 211.1.9. CODE ΓòÉΓòÉΓòÉ
  27662.  
  27663. The return code from the last action. 
  27664.  
  27665.  
  27666. ΓòÉΓòÉΓòÉ 211.2. Actions ΓòÉΓòÉΓòÉ
  27667.  
  27668. ORDER() 
  27669.  
  27670.  
  27671. ΓòÉΓòÉΓòÉ 211.2.1. ORDER() ΓòÉΓòÉΓòÉ
  27672.  
  27673. ΓöÇΓöÇORDER(p_index)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27674.  
  27675. Produces an index based on OrderVector and OrderSigns p_index is a pointer to a 
  27676. vector which holds the index information. 
  27677.  
  27678.  
  27679. ΓòÉΓòÉΓòÉ 211.3. Events ΓòÉΓòÉΓòÉ
  27680.  
  27681. ORDER 
  27682.  
  27683.  
  27684. ΓòÉΓòÉΓòÉ 211.3.1. ORDER ΓòÉΓòÉΓòÉ
  27685.  
  27686. Signaled when Order is selected. 
  27687.  
  27688.  
  27689. ΓòÉΓòÉΓòÉ 211.4. Examples ΓòÉΓòÉΓòÉ
  27690.  
  27691. The application will typically get a selection from a pull down which indicates 
  27692. that an ordering based on column rows needs to be performed.Code to perform 
  27693. this function is shown below: 
  27694.  
  27695. ON SELECT
  27696. DO
  27697.   CASE A.System.Object
  27698.     WHEN "T.Primary.Order"
  27699.     DO
  27700.       ! User needs to order rows, so open up view order object,
  27701.       ! passing a pointer to the data table (which must already
  27702.       ! be open), and a pointer to the main display window
  27703.       ! (ownerwindow).   The pointers are also passed to two
  27704.       ! arrays, which may be empty, to specify the order columns
  27705.       ! and signs ("A" for ascending, "D" for descending).
  27706.       IF NULL(Order'CLASS)
  27707.       THEN
  27708.         OPEN VIEWORDER  Order,
  27709.          TABLE       = POINTER( MyTab[0] ),
  27710.          VISIBLE     = 1,
  27711.          OWNERWINDOW = POINTER( MyWin[0] ),
  27712.          ORDERVECTOR = POINTER( OrderVector[0] ),
  27713.          ORDERSIGNS  = POINTER( OrderSigns[0] )
  27714.       ELSE
  27715.         LET Order'VISIBLE = 1  ! Already open, so display it
  27716.     END
  27717.   END
  27718. END
  27719.  
  27720. When the user completes the selection and selects Order, the order event will 
  27721. be triggered. The ASL code can then react to the order action to produce an 
  27722. index to order the data. The user selections will be in the vectors passed as 
  27723. OrderVector and OrderSigns. 
  27724.  
  27725. The Order object will continue to exist but its window will be hidden. You may 
  27726. wish to SHUT the object, or leave it for the next selection on Order. The code 
  27727. for the Order event is shown below: 
  27728.  
  27729. ON ORDER
  27730. DO
  27731.   ! Set up Index to contain an index to sort the data
  27732.   CALL Order'ORDER( POINTER( Index[0] ) )
  27733. END
  27734.  
  27735. If the user selected Cancel or tried to exit the application, a test can be 
  27736. placed in the QUIT block to ignore the selection or close the object: 
  27737.  
  27738. ON QUIT
  27739. DO
  27740.   IF A.System.Object = "T..Order"
  27741.   THEN SHUT Order          ! Shut the ViewOrder object
  27742. END
  27743.  
  27744. Examples source library: 
  27745.  
  27746.  
  27747. ΓòÉΓòÉΓòÉ 212. VIEWPORT ΓòÉΓòÉΓòÉ
  27748.  
  27749. The VIEWPORT object class allows the display of graphics in metafile format 
  27750. within graphic boxes. 
  27751.  
  27752. Parent: GRAPHIC 
  27753.  
  27754. Attributes 
  27755.  
  27756. Actions: None. 
  27757.  
  27758. Events: None. 
  27759.  
  27760. Examples 
  27761.  
  27762. More about VIEWPORT 
  27763.  
  27764.  
  27765. ΓòÉΓòÉΓòÉ 212.1. Attributes ΓòÉΓòÉΓòÉ
  27766.  
  27767. UNIFORM             METAFILE 
  27768. SIZEX               SIZEY 
  27769. X                   Y 
  27770. ZORDER 
  27771.  
  27772.  
  27773. ΓòÉΓòÉΓòÉ 212.1.1. UNIFORM ΓòÉΓòÉΓòÉ
  27774.  
  27775. Whether the aspect ratio of the graphic area is maintained.  If the aspect 
  27776. ratio is ignored, the graphic area is adapted to fill the display space 
  27777. available. 
  27778.  
  27779. 0         Aspect ratio ignored (image distorted) 
  27780. 1         Aspect ratio maintained (may leave unused space within the graphic 
  27781.           area) 
  27782.  
  27783. Default: 0 (Ignored) 
  27784.  
  27785.  
  27786. ΓòÉΓòÉΓòÉ 212.1.2. METAFILE ΓòÉΓòÉΓòÉ
  27787.  
  27788. Location (operating system path, with extension) and full filename of the 
  27789. metafile. 
  27790.  
  27791. If METAFILE is set to "CLIPBOARD", VIEWPORT will use any metafile which has 
  27792. been saved to the clipboard. 
  27793.  
  27794. Set on OPEN, then read-only. 
  27795.  
  27796. Default: "" 
  27797.  
  27798.  
  27799. ΓòÉΓòÉΓòÉ 212.1.3. SIZEX ΓòÉΓòÉΓòÉ
  27800.  
  27801. Horizontal size of the viewport, in world coordinates. 
  27802.  
  27803. Default: 0 
  27804.  
  27805.  
  27806. ΓòÉΓòÉΓòÉ 212.1.4. SIZEY ΓòÉΓòÉΓòÉ
  27807.  
  27808. Vertical size of the viewport, in world coordinates. 
  27809.  
  27810. Default: 0 
  27811.  
  27812.  
  27813. ΓòÉΓòÉΓòÉ 212.1.5. X ΓòÉΓòÉΓòÉ
  27814.  
  27815. Horizontal position in world coordinates. 
  27816.  
  27817. Default: 0 
  27818.  
  27819.  
  27820. ΓòÉΓòÉΓòÉ 212.1.6. Y ΓòÉΓòÉΓòÉ
  27821.  
  27822. Vertical position in world coordinates. 
  27823.  
  27824. Default: 0 
  27825.  
  27826.  
  27827. ΓòÉΓòÉΓòÉ 212.1.7. ZORDER ΓòÉΓòÉΓòÉ
  27828.  
  27829. Where the graphic is drawn: 
  27830.  
  27831. 0         Graphic is drawn below any other shapes 
  27832. 1         Graphic is drawn above other shapes 
  27833.  
  27834. Default: 1 (Above) 
  27835.  
  27836.  
  27837. ΓòÉΓòÉΓòÉ 212.2. Examples ΓòÉΓòÉΓòÉ
  27838.  
  27839. Using VIEWPORT to display a metafile. 
  27840.  
  27841. OPEN WINDOW MyWin,, Title="Display a metafile",
  27842.  SIZEX = 400, SIZEY = 200
  27843. OPEN GRAPHIC Graphbox, MyWin,
  27844.  SIZEX = 400, SIZEY = 200, X = 0, Y = -200,
  27845.  WCSMAXX =400, WCSMAXY = 200,
  27846.  ORIGIN = "TL"
  27847.  
  27848. ! Open the viewport and place the metafile in it
  27849. OPEN VIEWPORT Viewport, Graphbox,
  27850.  METAFILE = "C:\FISH\HADDOCK.MET",
  27851.  X = 0, Y = 0, SIZEX = 400, SIZEY = 200,
  27852.  UNIFORM = 0, ZORDER = 1
  27853.  
  27854. ! Called when the user resizes the window.
  27855. ON DESKTOP
  27856. DO
  27857.   LET graphbox'VISIBLE = 0 ! Hide the area
  27858.  
  27859.   ! Set the new graphic area size and position, based on the new
  27860.   ! window size.  Y is negative since origin is top left.
  27861.   LET graphbox'Y     = -Mywin'SIZEY
  27862.   LET graphbox'SIZEX =  Mywin'SIZEX
  27863.   LET graphbox'SIZEY =  Mywin'SIZEY
  27864.  
  27865.   LET graphbox'VISIBLE = 1 ! Show the area
  27866. END
  27867.  
  27868. Examples source library: 
  27869.  
  27870.  
  27871. ΓòÉΓòÉΓòÉ 212.3. More about VIEWPORT ΓòÉΓòÉΓòÉ
  27872.  
  27873. o If you save a graphics area to a metafile, any information placed in the 
  27874.   graphic area by VIEWPORT will not be saved in the metafile. 
  27875.  
  27876.  
  27877. ΓòÉΓòÉΓòÉ 213. VIEWROWS ΓòÉΓòÉΓòÉ
  27878.  
  27879. The ViewRows object is used in conjunction with the IBMDATA object to allow the 
  27880. use of multiple row selection. The Select rows window allows the user to enter 
  27881. multiple row selection expressions on a single line. 
  27882.  
  27883. Attributes 
  27884.  
  27885. Actions 
  27886.  
  27887. Events: None. 
  27888.  
  27889. Examples 
  27890.  
  27891. More about VIEWROWS 
  27892.  
  27893. See also: IBMDATA, VIEWCALCS, VIEWORDER, VIEWTABLES 
  27894.  
  27895.  
  27896. ΓòÉΓòÉΓòÉ 213.1. Attributes ΓòÉΓòÉΓòÉ
  27897.  
  27898. OWNERWINDOW            DATA 
  27899. MODAL 
  27900.  
  27901.  
  27902. ΓòÉΓòÉΓòÉ 213.1.1. OWNERWINDOW ΓòÉΓòÉΓòÉ
  27903.  
  27904. This is a pointer to the window of the parent application., 
  27905.  
  27906.  
  27907. ΓòÉΓòÉΓòÉ 213.1.2. DATA ΓòÉΓòÉΓòÉ
  27908.  
  27909. This is a pointer to the underlying data object. Messages are sent to the data 
  27910. object to find the initial set of calculated columns. If changes are made, the 
  27911. underlying data object is then updated with the latest calculations. 
  27912.  
  27913.  
  27914. ΓòÉΓòÉΓòÉ 213.1.3. MODAL ΓòÉΓòÉΓòÉ
  27915.  
  27916. Defines whether or not the window is modal. 
  27917.  
  27918. 0         Window not modal 
  27919. 1         Window modal. 
  27920.  
  27921. Default: 0 (Not modal) 
  27922.  
  27923.  
  27924. ΓòÉΓòÉΓòÉ 213.2. Actions ΓòÉΓòÉΓòÉ
  27925.  
  27926. SURFACE() 
  27927.  
  27928.  
  27929. ΓòÉΓòÉΓòÉ 213.2.1. SURFACE() ΓòÉΓòÉΓòÉ
  27930.  
  27931. ΓöÇΓöÇSURFACE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  27932.  
  27933. If this action is called, the window showing the selected rows will be made the 
  27934. active window and given keyboard focus. 
  27935.  
  27936.  
  27937. ΓòÉΓòÉΓòÉ 213.3. Examples ΓòÉΓòÉΓòÉ
  27938.  
  27939. Using IBMDATA with a Select rows window 
  27940.  
  27941. Open the IBMDATA object as in the examples in IBMDATA. Then, to use a selection 
  27942. which needs Select rows window to be surfaced, add the following code 
  27943.  
  27944. OPEN VIEWROWS myrows,
  27945.   OWNERWINDOW = POINTER( MyAppWin[0] ),
  27946.   DATA        = POINTER( MyData[0] )
  27947.  
  27948. and in the ON QUIT block: 
  27949.  
  27950. ON QUIT
  27951. DO
  27952.   IF A.System.Object = "T..myrows"
  27953.   THEN DO
  27954.     SHUT myrows    ! Close Select rows window
  27955.     CALL MyData'SNAPSHOT( POINTER( mycopy[0] ), "*")
  27956.     ...
  27957.   END
  27958. END
  27959.  
  27960. Examples source library: 
  27961.  
  27962.  
  27963. ΓòÉΓòÉΓòÉ 213.4. More about VIEWROWS ΓòÉΓòÉΓòÉ
  27964.  
  27965. The expressions' evaluation depends on the FILINGSYSTEM of the IBMDATA object: 
  27966.  
  27967. o Host expressions are evaluated on the host. 
  27968. o OS/2 SQL expressions are evaluated in SQL. 
  27969. o External OS/2 file expressions are evaluated by Query. 
  27970. o AS/400 selections are evaluated on AS/400. 
  27971. o IBMSQLSTATEMENT selections use ASL syntax. 
  27972.  
  27973.  
  27974. ΓòÉΓòÉΓòÉ 214. VIEWTABLES ΓòÉΓòÉΓòÉ
  27975.  
  27976. VIEWTABLES presents a selectable list of tables. This object is used (together 
  27977. with IBMDATA) to access information in tables. 
  27978.  
  27979. Attributes 
  27980.  
  27981. Actions 
  27982.  
  27983. Events: None. 
  27984.  
  27985. Examples 
  27986.  
  27987. See also: IBMDATA, VIEWCALCS, VIEWROWS, VIEWORDER 
  27988.  
  27989.  
  27990. ΓòÉΓòÉΓòÉ 214.1. Attributes ΓòÉΓòÉΓòÉ
  27991.  
  27992. OWNERWINDOW            DATA 
  27993. TITLE                  MODAL 
  27994. LISTTYPES 
  27995.  
  27996.  
  27997. ΓòÉΓòÉΓòÉ 214.1.1. OWNERWINDOW ΓòÉΓòÉΓòÉ
  27998.  
  27999. Pointer to your main window. 
  28000.  
  28001.  
  28002. ΓòÉΓòÉΓòÉ 214.1.2. DATA ΓòÉΓòÉΓòÉ
  28003.  
  28004. Pointer to an open data object. (mandatory) 
  28005.  
  28006.  
  28007. ΓòÉΓòÉΓòÉ 214.1.3. TITLE ΓòÉΓòÉΓòÉ
  28008.  
  28009. Optional title. 
  28010.  
  28011.  
  28012. ΓòÉΓòÉΓòÉ 214.1.4. MODAL ΓòÉΓòÉΓòÉ
  28013.  
  28014. Make window modal (optional) 
  28015.  
  28016. 0         Window not modal 
  28017. 1         Window modal. 
  28018.  
  28019. Default: 0 (Not modal) 
  28020.  
  28021.  
  28022. ΓòÉΓòÉΓòÉ 214.1.5. LISTTYPES ΓòÉΓòÉΓòÉ
  28023.  
  28024. Pointer to a restricted list of types. (optional) 
  28025.  
  28026.  
  28027. ΓòÉΓòÉΓòÉ 214.2. Actions ΓòÉΓòÉΓòÉ
  28028.  
  28029. SURFACE() 
  28030.  
  28031.  
  28032. ΓòÉΓòÉΓòÉ 214.2.1. SURFACE() ΓòÉΓòÉΓòÉ
  28033.  
  28034. ΓöÇΓöÇSURFACE()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28035.  
  28036. If this action is called, the window showing the selected table will be made 
  28037. the active window and given keyboard focus. 
  28038.  
  28039.  
  28040. ΓòÉΓòÉΓòÉ 214.3. Examples ΓòÉΓòÉΓòÉ
  28041.  
  28042. ON SELECT
  28043. DO
  28044.   CASE A.System.Object
  28045.     WHEN "Tables" ! Selection on 'Select table' menu
  28046.     DO
  28047.       IF NULL(ViewTab'CLASS)
  28048.       THEN DO
  28049.         DEFINE Types[0]
  28050.         ! You may define a vector which lists the types
  28051.         ! you want to show.  All types will be shown if the
  28052.         ! vector is omitted.  See IBMDATA for filing types
  28053.         INSERT Types[0] = "Host"
  28054.         INSERT Types[0] = "PRODUCT"
  28055.         INSERT Types[0] = "SQL"
  28056.         INSERT Types[0] = "AS400"
  28057.  
  28058.         OPEN ViewTables ViewTab,
  28059.           OWNERWINDOW  = POINTER( Window[0] ),  ! Main window.
  28060.           DATA         = POINTER( DataObj[0] ), ! Open data object.
  28061.           TITLE        = "Pick your own"        ! Your title
  28062.           LISTTYPES    = POINTER( Types[0] )    ! Restrict types
  28063.       END
  28064.       ELSE
  28065.         CALL ViewTab'SURFACE()
  28066.     END
  28067.   END
  28068. END
  28069.  
  28070. ON QUIT
  28071. DO
  28072.   ! If you get an on quit from the select table window, this may be
  28073.   ! due to a OK or CANCEL.  If OK was pressed, the TABLE, PATH and
  28074.   ! FILINGSYSTEM attributes of the data object will have been updated
  28075.   ! for you. You need to shut the View Table object.
  28076.   IF A.System.Object = "T..ViewTab"
  28077.   THEN DO
  28078.     SHUT T..ViewTab
  28079.     ! Then check table selection and process it
  28080.   END
  28081. END
  28082.  
  28083. Examples source library: 
  28084.  
  28085.  
  28086. ΓòÉΓòÉΓòÉ 215. WAIT PROGRAM ΓòÉΓòÉΓòÉ
  28087.  
  28088. The WAIT PROGRAM statement waits for another program to complete. 
  28089.  
  28090. ΓöÇΓöÇWAITΓöÇΓöÇPROGRAMΓöÇΓöÇprogramaliasΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28091.  
  28092. Examples 
  28093.  
  28094. More about WAIT PROGRAM 
  28095.  
  28096. See also: QUEUE PROGRAM, SIGNAL PROGRAM, START 
  28097.  
  28098.  
  28099. ΓòÉΓòÉΓòÉ 215.1. Examples ΓòÉΓòÉΓòÉ
  28100.  
  28101. START PROGRAM Conversion, 'I.Modules.Conversion'
  28102. ...
  28103. WAIT PROGRAM Conversion
  28104.  
  28105. QUEUE PROGRAM Setup
  28106. QUEUE PROGRAM Setup,STOP
  28107. WAIT  PROGRAM Setup
  28108.  
  28109. Examples source library: 
  28110.  
  28111.  
  28112. ΓòÉΓòÉΓòÉ 215.2. More about WAIT PROGRAM ΓòÉΓòÉΓòÉ
  28113.  
  28114. o The program that uses WAIT is suspended until the one for which it is waiting 
  28115.   uses SIGNAL PROGRAM, or stops. 
  28116.  
  28117. o WAIT can be used to synchronize two programs.  In the first example above, it 
  28118.   might be used to wait until the Conversion program has received some input 
  28119.   from the user. 
  28120.  
  28121.  
  28122. ΓòÉΓòÉΓòÉ 216. WHEN ΓòÉΓòÉΓòÉ
  28123.  
  28124. The WHEN statement identifies a potential value of a CASE expression. When the 
  28125. expression takes on that value, the statement or DO...END block following WHEN 
  28126. is executed. 
  28127.  
  28128. ΓöÇΓöÇWHENΓöÇΓöÇexpressionΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28129.  
  28130. Examples 
  28131.  
  28132. More about WHEN 
  28133.  
  28134. See also: CASE...WHEN...OTHERWISE...END, OTHERWISE 
  28135.  
  28136.  
  28137. ΓòÉΓòÉΓòÉ 216.1. Examples ΓòÉΓòÉΓòÉ
  28138.  
  28139. CASE A.System.Object
  28140.   WHEN "SAVE"
  28141.     MESSAGE "FTB0001",0,"1 - Saved ...."
  28142.   WHEN "LOAD"
  28143.     MESSAGE "FTB0001",0,"1 - Loaded ..."
  28144.   OTHERWISE
  28145.     MESSAGE "FTB0001",0,"1 - Otherwise"
  28146. END
  28147.  
  28148. Examples source library: 
  28149.  
  28150.  
  28151. ΓòÉΓòÉΓòÉ 216.2. More about WHEN ΓòÉΓòÉΓòÉ
  28152.  
  28153. o Any number of WHEN statements can be defined for a single CASE statement. 
  28154.  
  28155. o The WHEN statements within a CASE construct can be followed by an OTHERWISE 
  28156.   statement.  The OTHERWISE statement deals with all values not explicitly 
  28157.   identified by any of the WHEN statements. (See the entry for the OTHERWISE 
  28158.   statement.) 
  28159.  
  28160. o The WHEN expression is executed first and the result is compared with the 
  28161.   result of the CASE expression.  If no CASE expression is supplied, the WHEN 
  28162.   expression is checked for being true (nonzero). 
  28163.  
  28164. o If a CASE expression is present and a WHEN specifies a comparison, the CASE 
  28165.   expression is compared with the result of the comparison. The WHEN is not 
  28166.   controlled by the comparison alone, for example: 
  28167.  
  28168.     X = 3
  28169.     CASE 2
  28170.       WHEN X = 3
  28171.  
  28172.   In this case the WHEN clause never matches because the comparison  X=3 
  28173.   evaluates to either true or false (1 or 0), and is never equal to 2. 
  28174.  
  28175. o Only one WHEN statement (the first one for which the condition is true) is 
  28176.   executed for a given execution of the CASE statement. 
  28177.  
  28178.  
  28179. ΓòÉΓòÉΓòÉ 217. WHILE ΓòÉΓòÉΓòÉ
  28180.  
  28181. The WHILE statement specifies a condition which causes one or more statements 
  28182. following it to be executed repeatedly for as long as the condition exists. 
  28183.  
  28184. ΓöÇΓöÇWHILEΓöÇΓöÇexpressionΓöÇΓöÇstatementlistΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28185.  
  28186. Examples 
  28187.  
  28188. More about WHILE 
  28189.  
  28190. See also: ITERATE, TERMINATE, UNTIL 
  28191.  
  28192.  
  28193. ΓòÉΓòÉΓòÉ 217.1. Examples ΓòÉΓòÉΓòÉ
  28194.  
  28195. DECLARE NUMERIC value     = 0
  28196. DECLARE NUMERIC increment = 1
  28197. DECLARE NUMERIC totval    = 0
  28198. WHILE value<100
  28199. DO
  28200.   LET value += increment
  28201.   LET increment += 1
  28202.   LET totval += value
  28203. END
  28204.  
  28205. Examples source library: 
  28206.  
  28207.  
  28208. ΓòÉΓòÉΓòÉ 217.2. More about WHILE ΓòÉΓòÉΓòÉ
  28209.  
  28210. o If a set of statements is controlled by the WHILE statement, then they must 
  28211.   be enclosed in a DO...END block. 
  28212.  
  28213. o If the expression is false when the WHILE statement is first met, the 
  28214.   statement list is not executed at all. 
  28215.  
  28216. o The ITERATE and TERMINATE statements can be used to modify the behavior of 
  28217.   the WHILE loop. 
  28218.  
  28219.  
  28220. ΓòÉΓòÉΓòÉ 218. WINDOW ΓòÉΓòÉΓòÉ
  28221.  
  28222. The WINDOW object class creates a window on screen. 
  28223.  
  28224. Attributes 
  28225.  
  28226. Actions 
  28227.  
  28228. Events 
  28229.  
  28230. Examples 
  28231.  
  28232.  
  28233. ΓòÉΓòÉΓòÉ 218.1. Attributes ΓòÉΓòÉΓòÉ
  28234.  
  28235. AUTOSELECT              BGCOLOR 
  28236. BORDER                  CURSORBOX 
  28237. CURSORCLONE             FGCOLOR 
  28238. FONT                    GRIDX 
  28239. GRIDY                   HEIGHT 
  28240. HELP                    HSCRLBAR 
  28241. HSCRLBARPOSN            HTHUMBSIZE 
  28242. ICON                    MAXX 
  28243. MAXY                    MENUREF 
  28244. MINMAX                  MINX 
  28245. MINY                    MODAL 
  28246. OBJECTVIEW              OWNERWINDOW 
  28247. PATTERN                 SELECTABLE 
  28248. SIZEX                   SIZEY 
  28249. SOURCECTRL              SYSMENU 
  28250. TARGETCTRL              TARGETX 
  28251. TARGETY                 TITLE 
  28252. TITLEBAR                VISIBLE 
  28253. VSCRLBAR                VSCRLBARPOSN 
  28254. VTHUMBSIZE              WIDTH 
  28255. X                       Y 
  28256.  
  28257.  
  28258. ΓòÉΓòÉΓòÉ 218.1.1. AUTOSELECT ΓòÉΓòÉΓòÉ
  28259.  
  28260. Specifies whether the selection of controls on the window follows the CUA 
  28261. extended selection model. Only those controls that have a HANDLES attribute set 
  28262. are included in extended selection operations. 
  28263.  
  28264. 0         Extended selection techniques are not supported 
  28265. 1         Extended selection techniques are supported 
  28266.  
  28267. Note:   This attribute is for specialist applications only. When AUTOSELECT is 
  28268.         set to 1, the window cannot be used as an ordinary application window. 
  28269.  
  28270. Default: 0 
  28271.  
  28272.  
  28273. ΓòÉΓòÉΓòÉ 218.1.2. BGCOLOR ΓòÉΓòÉΓòÉ
  28274.  
  28275. Background color. Integer in the range 1-19. See Colors and color codes for 
  28276. details of colors available. If BGCOLOR is set, this color will be passed to 
  28277. all controls located on the window as the default color. 
  28278.  
  28279. Default: System default color (set from control panel) 
  28280.  
  28281.  
  28282. ΓòÉΓòÉΓòÉ 218.1.3. BORDER ΓòÉΓòÉΓòÉ
  28283.  
  28284. Window border style: 
  28285.  
  28286. 0         Normal sizing border 
  28287. 1         Dialog border 
  28288. 2         Thin line border 
  28289. 3         No border 
  28290.  
  28291. Default: 0 (Normal sizing border) 
  28292.  
  28293.  
  28294. ΓòÉΓòÉΓòÉ 218.1.4. CURSORBOX ΓòÉΓòÉΓòÉ
  28295.  
  28296. Name of the box that currently has cursor focus (the box the keyboard entry or 
  28297. selection cursor is currently in). 
  28298.  
  28299. This name must be in the format T.window.box, where window is the name of the 
  28300. window object and box is the name of the box. 
  28301.  
  28302. Default: Calculated by Presentation Manager. 
  28303.  
  28304.  
  28305. ΓòÉΓòÉΓòÉ 218.1.5. CURSORCLONE ΓòÉΓòÉΓòÉ
  28306.  
  28307. Number of the clone the cursor is currently in. 
  28308.  
  28309. Can be queried only. 
  28310.  
  28311. Default: Calculated by Presentation Manager. 
  28312.  
  28313.  
  28314. ΓòÉΓòÉΓòÉ 218.1.6. FGCOLOR ΓòÉΓòÉΓòÉ
  28315.  
  28316. Foreground color. Integer in the range 1-19. See Colors and color codes for 
  28317. details of colors available. 
  28318.  
  28319. Default: System default color (set from control panel) 
  28320.  
  28321.  
  28322. ΓòÉΓòÉΓòÉ 218.1.7. FONT ΓòÉΓòÉΓòÉ
  28323.  
  28324. Text font. The available fonts are in the OS/2 font palette. The attribute 
  28325. value is case sensitive. For example, Helv 10 point must be specified as 
  28326. "10.Helv". 
  28327.  
  28328. Default: System default font 
  28329.  
  28330.  
  28331. ΓòÉΓòÉΓòÉ 218.1.8. GRIDX ΓòÉΓòÉΓòÉ
  28332.  
  28333. Horizontal units of underlying grid in dialog units. The window is moved and 
  28334. resized using this grid. 
  28335.  
  28336. Default: Calculated by Visualizer. 
  28337.  
  28338.  
  28339. ΓòÉΓòÉΓòÉ 218.1.9. GRIDY ΓòÉΓòÉΓòÉ
  28340.  
  28341. Vertical units of underlying grid in dialog units. The window is moved and 
  28342. resized using this grid. 
  28343.  
  28344. Default: Calculated by Visualizer. 
  28345.  
  28346.  
  28347. ΓòÉΓòÉΓòÉ 218.1.10. HEIGHT ΓòÉΓòÉΓòÉ
  28348.  
  28349. Height of the window, in millimeters. 
  28350.  
  28351. Once the window is opened, the value is read-only. 
  28352.  
  28353. Default: Calculated by Visualizer. 
  28354.  
  28355.  
  28356. ΓòÉΓòÉΓòÉ 218.1.11. HELP ΓòÉΓòÉΓòÉ
  28357.  
  28358. The Resource identifier (res ID) of the full help text for this window. 
  28359.  
  28360.  
  28361. ΓòÉΓòÉΓòÉ 218.1.12. HSCRLBAR ΓòÉΓòÉΓòÉ
  28362.  
  28363. Whether a horizontal scroll bar is included: 
  28364.  
  28365. 0         No scroll bar 
  28366. 1         Scroll bar 
  28367.  
  28368. Default: 0 (No scroll bar) 
  28369.  
  28370.  
  28371. ΓòÉΓòÉΓòÉ 218.1.13. HSCRLBARPOSN ΓòÉΓòÉΓòÉ
  28372.  
  28373. Position of horizontal scroll bar slider. Integer in the range 1-1000. 
  28374.  
  28375. Default: 1 (Left) 
  28376.  
  28377.  
  28378. ΓòÉΓòÉΓòÉ 218.1.14. HTHUMBSIZE ΓòÉΓòÉΓòÉ
  28379.  
  28380. Size of horizontal scroll bar thumb. Integer in the range 1-1000. 
  28381.  
  28382. Can be modified but not queried. 
  28383.  
  28384. Default: Calculated by Visualizer. 
  28385.  
  28386.  
  28387. ΓòÉΓòÉΓòÉ 218.1.15. ICON ΓòÉΓòÉΓòÉ
  28388.  
  28389. The name of the associated icon: either the fully qualified name of an icon 
  28390. file, or a string in the form dllname<id>, where dllname is the name of a DLL 
  28391. and id is the resource ID of the icon within that DLL. 
  28392.  
  28393. Default: NULL (Standard system menu icon) 
  28394.  
  28395.  
  28396. ΓòÉΓòÉΓòÉ 218.1.16. MAXX ΓòÉΓòÉΓòÉ
  28397.  
  28398. Maximum horizontal size to which the window can be maximized. Integer value in 
  28399. dialog box units. 
  28400.  
  28401. If this value is greater than the maximum size, the Visualizer maximum is 
  28402. applied. 
  28403.  
  28404. Default: Calculated by Visualizer. 
  28405.  
  28406.  
  28407. ΓòÉΓòÉΓòÉ 218.1.17. MAXY ΓòÉΓòÉΓòÉ
  28408.  
  28409. Maximum vertical size to which the window can be maximized. Integer value in 
  28410. dialog box units. If this value is greater than the maximum size, the 
  28411. Visualizer maximum is applied. 
  28412.  
  28413. Default: Calculated by Visualizer. 
  28414.  
  28415.  
  28416. ΓòÉΓòÉΓòÉ 218.1.18. MENUREF ΓòÉΓòÉΓòÉ
  28417.  
  28418. Name of a vector of menus to be used as the menu bar for the window. 
  28419.  
  28420. Default: "" 
  28421.  
  28422.  
  28423. ΓòÉΓòÉΓòÉ 218.1.19. MINMAX ΓòÉΓòÉΓòÉ
  28424.  
  28425. Whether minimize and maximize controls are provided for this window: 
  28426.  
  28427. "MIN"     Minimize only 
  28428. "MAX"     Maximize only 
  28429. "MINMAX"  Minimize and maximize 
  28430. "NONE"    No minmax controls 
  28431.  
  28432. Default: "MINMAX" 
  28433.  
  28434.  
  28435. ΓòÉΓòÉΓòÉ 218.1.20. MINX ΓòÉΓòÉΓòÉ
  28436.  
  28437. Minimum horizontal size to which the window can be minimized. Integer value in 
  28438. dialog box units. If this value is less than the minimum size, the Visualizer 
  28439. minimum is applied. 
  28440.  
  28441. Default: Calculated by Visualizer. 
  28442.  
  28443.  
  28444. ΓòÉΓòÉΓòÉ 218.1.21. MINY ΓòÉΓòÉΓòÉ
  28445.  
  28446. Minimum vertical size to which the window can be minimized. Integer value in 
  28447. dialog box units. If this value is less than the minimum size, the Visualizer 
  28448. minimum is applied. 
  28449.  
  28450. Default: Calculated by Visualizer. 
  28451.  
  28452.  
  28453. ΓòÉΓòÉΓòÉ 218.1.22. MODAL ΓòÉΓòÉΓòÉ
  28454.  
  28455. Defines whether or not the window is modal. 
  28456.  
  28457. 0         Window not modal 
  28458. 1         Window modal 
  28459.  
  28460. Default: 0 (Not modal) 
  28461.  
  28462. When a window is made modal, all other windows in this application are 
  28463. disabled. Other applications are not affected. 
  28464.  
  28465.  
  28466. ΓòÉΓòÉΓòÉ 218.1.23. OBJECTVIEW ΓòÉΓòÉΓòÉ
  28467.  
  28468. Boolean attribute that, if 1 (true), identifies the window to the system as the 
  28469. target for any messages resulting from the user dragging the Workplace Shell 
  28470. icon for the application. Dragging the icon of the object will be interpreted 
  28471. as if the user had dragged the title bar of the opened object. 
  28472.  
  28473. Only one window within a Visualizer process can have its OBJECTVIEW attribute 
  28474. set to 1 (true). 
  28475.  
  28476. Default: 0 (False) 
  28477.  
  28478.  
  28479. ΓòÉΓòÉΓòÉ 218.1.24. OWNERWINDOW ΓòÉΓòÉΓòÉ
  28480.  
  28481. Name of the window that owns the current window (if any). When the named window 
  28482. is moved or closed, the present window follows it. 
  28483.  
  28484. Default: No owner window 
  28485.  
  28486.  
  28487. ΓòÉΓòÉΓòÉ 218.1.25. PATTERN ΓòÉΓòÉΓòÉ
  28488.  
  28489. Pattern for the window background. Integer in the range 0-14. See 
  28490. Patterns and patterncodes for details of patterns available. 
  28491.  
  28492. Default: (Plain) 
  28493.  
  28494.  
  28495. ΓòÉΓòÉΓòÉ 218.1.26. SELECTABLE ΓòÉΓòÉΓòÉ
  28496.  
  28497. Whether the window client area (central area) is selectable: 
  28498.  
  28499. 0         Client area not selectable 
  28500. 1         Client area selectable 
  28501.  
  28502. Default: 0 (Not selectable) 
  28503.  
  28504.  
  28505. ΓòÉΓòÉΓòÉ 218.1.27. SIZEX ΓòÉΓòÉΓòÉ
  28506.  
  28507. Width of the window, in dialog box units. 
  28508.  
  28509. Default: Calculated by Presentation Manager. 
  28510.  
  28511.  
  28512. ΓòÉΓòÉΓòÉ 218.1.28. SIZEY ΓòÉΓòÉΓòÉ
  28513.  
  28514. Height of the window, in dialog box units. 
  28515.  
  28516. Default: Calculated by Presentation Manager. 
  28517.  
  28518.  
  28519. ΓòÉΓòÉΓòÉ 218.1.29. SOURCECTRL ΓòÉΓòÉΓòÉ
  28520.  
  28521. This attribute can be assigned a pointer to a SOURCECTRL object to enable a 
  28522. drag to be initiated from the title bar of the window. 
  28523.  
  28524. Default: None 
  28525.  
  28526.  
  28527. ΓòÉΓòÉΓòÉ 218.1.30. SYSMENU ΓòÉΓòÉΓòÉ
  28528.  
  28529. Whether a system menu is provided: 
  28530.  
  28531. 0         No system menu 
  28532. 1         System menu provided 
  28533.  
  28534. Default: 1 (System menu provided) 
  28535.  
  28536.  
  28537. ΓòÉΓòÉΓòÉ 218.1.31. TARGETCTRL ΓòÉΓòÉΓòÉ
  28538.  
  28539. This attribute can be assigned a pointer to a TARGETCTRL object to enable other 
  28540. objects to be dropped anywhere on the window client area (providing the ASL 
  28541. thread owning the window is not busy). 
  28542.  
  28543. When an object is validly dropped on a window client area or title bar (but not 
  28544. a frame control or menu bar), then a TARGET event is signaled. 
  28545.  
  28546. The ORIGINATOR attribute of the STREAM object passed with the TARGET event 
  28547. identifies the TARGETCTRL object through which the event was generated. 
  28548.  
  28549. The ORIGINATOR attribute of the TARGETCTRL object identifies the target window. 
  28550.  
  28551. Default: None 
  28552.  
  28553.  
  28554. ΓòÉΓòÉΓòÉ 218.1.32. TARGETX ΓòÉΓòÉΓòÉ
  28555.  
  28556. Horizontal position,in dialog units, of a drop within the client area. If the 
  28557. drop occurs on any part of the window frame, TARGETX will return NULL. 
  28558.  
  28559.  
  28560. ΓòÉΓòÉΓòÉ 218.1.33. TARGETY ΓòÉΓòÉΓòÉ
  28561.  
  28562. Vertical position,in dialog units, of a drop within the client area. If the 
  28563. drop occurs on any part of the window frame, TARGETY will return NULL. 
  28564.  
  28565.  
  28566. ΓòÉΓòÉΓòÉ 218.1.34. TITLE ΓòÉΓòÉΓòÉ
  28567.  
  28568. Title of the window, displayed in the title bar. String enclosed in double 
  28569. quotation marks. 
  28570.  
  28571. Default: No title in title bar 
  28572.  
  28573.  
  28574. ΓòÉΓòÉΓòÉ 218.1.35. TITLEBAR ΓòÉΓòÉΓòÉ
  28575.  
  28576. Whether a title bar is provided: 
  28577.  
  28578. 0         No title bar 
  28579. 1         Title bar provided 
  28580.  
  28581. Default: 1 (Title bar provided) 
  28582.  
  28583.  
  28584. ΓòÉΓòÉΓòÉ 218.1.36. VISIBLE ΓòÉΓòÉΓòÉ
  28585.  
  28586. Whether the window is displayed or hidden: 
  28587.  
  28588. 0         Window not displayed 
  28589. 1         Window displayed 
  28590.  
  28591. Default: 1 (Displayed) 
  28592.  
  28593. A window which is already visible when its VISIBLE attribute is set to 1 is 
  28594. made the active window. 
  28595.  
  28596.  
  28597. ΓòÉΓòÉΓòÉ 218.1.37. VSCRLBAR ΓòÉΓòÉΓòÉ
  28598.  
  28599. Whether a vertical scroll bar is included: 
  28600.  
  28601. 0         No scroll bar 
  28602. 1         Scroll bar 
  28603.  
  28604. Default: 0 (No scroll bar) 
  28605.  
  28606.  
  28607. ΓòÉΓòÉΓòÉ 218.1.38. VSCRLBARPOSN ΓòÉΓòÉΓòÉ
  28608.  
  28609. Position of vertical scroll bar slider. Integer in the range 1-1000. 
  28610.  
  28611. Default: 1 (Top) 
  28612.  
  28613.  
  28614. ΓòÉΓòÉΓòÉ 218.1.39. VTHUMBSIZE ΓòÉΓòÉΓòÉ
  28615.  
  28616. Size of the vertical scroll bar thumb. Integer in the range 1-1000. 
  28617.  
  28618. Can be modified but not queried. 
  28619.  
  28620. Default: Calculated by Visualizer. 
  28621.  
  28622.  
  28623. ΓòÉΓòÉΓòÉ 218.1.40. WIDTH ΓòÉΓòÉΓòÉ
  28624.  
  28625. Width of the window, in millimeters. 
  28626.  
  28627. Once the window is opened, the value is read-only. 
  28628.  
  28629. Default: Calculated by Visualizer. 
  28630.  
  28631.  
  28632. ΓòÉΓòÉΓòÉ 218.1.41. X ΓòÉΓòÉΓòÉ
  28633.  
  28634. Horizontal position of window on the screen, in pixels. 
  28635.  
  28636. Default: Calculated by Visualizer. 
  28637.  
  28638.  
  28639. ΓòÉΓòÉΓòÉ 218.1.42. Y ΓòÉΓòÉΓòÉ
  28640.  
  28641. Vertical position of window on the screen, in pixels. 
  28642.  
  28643. Default: Calculated by Visualizer. 
  28644.  
  28645.  
  28646. ΓòÉΓòÉΓòÉ 218.2. Actions ΓòÉΓòÉΓòÉ
  28647.  
  28648. FLUSH()                 MAX() 
  28649. MIN()                   NORM() 
  28650. PRINT()                 REFRESH() 
  28651. SETORDER()              QUERYORDER() 
  28652.  
  28653.  
  28654. ΓòÉΓòÉΓòÉ 218.2.1. FLUSH() ΓòÉΓòÉΓòÉ
  28655.  
  28656. ΓöÇΓöÇFLUSH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28657.  
  28658. If a data entry field on this window has cursor focus, this action forces it to 
  28659. write its contents immediately to the variable or table it relates to. 
  28660.  
  28661.  
  28662. ΓòÉΓòÉΓòÉ 218.2.2. MAX() ΓòÉΓòÉΓòÉ
  28663.  
  28664. ΓöÇΓöÇMAX()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28665.  
  28666. Maximizes the window to full size as defined by MAXX and MAXY. 
  28667.  
  28668.  
  28669. ΓòÉΓòÉΓòÉ 218.2.3. MIN() ΓòÉΓòÉΓòÉ
  28670.  
  28671. ΓöÇΓöÇMIN()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28672.  
  28673. Minimizes the window to an icon. 
  28674.  
  28675.  
  28676. ΓòÉΓòÉΓòÉ 218.2.4. NORM() ΓòÉΓòÉΓòÉ
  28677.  
  28678. ΓöÇΓöÇNORM()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28679.  
  28680. Restores the window to its normal size as defined by SIZEX and SIZEY. 
  28681.  
  28682.  
  28683. ΓòÉΓòÉΓòÉ 218.2.5. PRINT() ΓòÉΓòÉΓòÉ
  28684.  
  28685. ΓöÇΓöÇPRINT(printer,sizex,sizey,posx,posy,c_area)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28686.  
  28687. printer is the object handle of an open PRINTER object. 
  28688.  
  28689. sizex and sizey are the dimensions for the window on the paper. The units used 
  28690. are 1% of the paper size. 
  28691.  
  28692. posx and posy give the position of the bottom left-hand corner of the window on 
  28693. the paper. 
  28694.  
  28695. c_area controls printing of the window frame. If set to 0 only the client area 
  28696. is printed, if 1 the window frame is also printed.  If not specified, the 
  28697. default is 1. 
  28698.  
  28699. The units used are 1% of the paper size.  If size and position are not 
  28700. specified, the object is forced to uniform aspect ratio on the printed image. 
  28701.  
  28702.  
  28703. ΓòÉΓòÉΓòÉ 218.2.6. REFRESH() ΓòÉΓòÉΓòÉ
  28704.  
  28705. ΓöÇΓöÇREFRESH()ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28706.  
  28707. Immediately updates all controls in the window to display the underlying data. 
  28708. (Normally, the system only updates the screen display when a wait state is 
  28709. reached.) 
  28710.  
  28711. Specific boxes can also be refreshed by using the REFRESH() action for that 
  28712. box. 
  28713.  
  28714.  
  28715. ΓòÉΓòÉΓòÉ 218.2.7. SETORDER() ΓòÉΓòÉΓòÉ
  28716.  
  28717. ΓöÇΓöÇSETORDER(tabvec)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28718.  
  28719. Sets the tab order of controls in the window. This is the order in which focus 
  28720. changes when the user presses the Tab key. 
  28721.  
  28722. tabvec is a vector of pointers to object handles of controls on the window, in 
  28723. the required order. For a clone set, include only one pointer. Do not include 
  28724. pointers to objects that cannot receive focus, (for example, TEXT controls). 
  28725.  
  28726. The tab order is cyclic-when focus is on the last control and the user presses 
  28727. the Tab key, then focus passes to the first control. If tabvec does not include 
  28728. pointers to all the controls in the window, then the controls that you omit 
  28729. follow the last control in tabvec, with their order unchanged. 
  28730.  
  28731. SETORDER() returns the number of valid pointers processed. If the action is 
  28732. successful, then this equals  tabvec[0]'ENTRIES. If any pointer is not valid, 
  28733. then SETORDER() signals a Display Manager error and ignores that pointer. 
  28734.  
  28735.  
  28736. ΓòÉΓòÉΓòÉ 218.2.8. QUERYORDER() ΓòÉΓòÉΓòÉ
  28737.  
  28738. ΓöÇΓöÇQUERYORDER(tabvec)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28739.  
  28740. Queries the tab order of controls in the window. This is the order in which 
  28741. focus changes when the user presses the Tab key. 
  28742.  
  28743. QUERYORDER() fills the vector tabvec with pointers to object handles of 
  28744. controls on the window, in the tab order. The tab order is cyclic-when focus is 
  28745. on the last control and the user presses the Tab key, then focus passes to the 
  28746. first control. 
  28747.  
  28748. QUERYORDER() returns the number of pointers written. If the vector was created 
  28749. by DECLARE, then it's size cannot be increased, so it might not be able to 
  28750. contain all the pointers. If tabvec is a newly defined data manager vector, 
  28751. then the returned value equals  tabvec[0]'ENTRIES. 
  28752.  
  28753. tabvec does not include pointers to objects that do not receive focus, for 
  28754. example TEXT controls. tabvec includes only one pointer to each clone set. 
  28755.  
  28756. To obtain the three-part data manager names for the object handle variables, 
  28757. convert each pointer into a string. 
  28758.  
  28759.  
  28760. ΓòÉΓòÉΓòÉ 218.3. Events ΓòÉΓòÉΓòÉ
  28761.  
  28762. DESKTOP                    DISCARD 
  28763. ENTER                      ESCAPE 
  28764. PRINT(pPrinter)            QUIT 
  28765. SCHEME                     SCROLL 
  28766. SELECT 
  28767.  
  28768.  
  28769. ΓòÉΓòÉΓòÉ 218.3.1. DESKTOP ΓòÉΓòÉΓòÉ
  28770.  
  28771. Signaled when the window is resized, minimized, or maximized or when an 
  28772. extended selection of controls on the window is confirmed. A.System.Operation 
  28773. is set to one of "MIN", "MAX", "NORM", "SIZE", or "AUTOSELECT". If the 
  28774. operation is "AUTOSELECT" (extended selection), then A.System.Object is set to 
  28775. the name of the control with solid sizing handles. 
  28776.  
  28777.  
  28778. ΓòÉΓòÉΓòÉ 218.3.2. DISCARD ΓòÉΓòÉΓòÉ
  28779.  
  28780. Signaled when the mini-icon is dropped on the shredder. (See also the 
  28781. SOURCECTRL object.) 
  28782.  
  28783.  
  28784. ΓòÉΓòÉΓòÉ 218.3.3. ENTER ΓòÉΓòÉΓòÉ
  28785.  
  28786. Signaled when the ENTER key is pressed while cursor focus is on this window. 
  28787.  
  28788.  
  28789. ΓòÉΓòÉΓòÉ 218.3.4. ESCAPE ΓòÉΓòÉΓòÉ
  28790.  
  28791. Signaled when the ESCAPE key is pressed while cursor focus is on this window. 
  28792.  
  28793.  
  28794. ΓòÉΓòÉΓòÉ 218.3.5. PRINT(pPrinter) ΓòÉΓòÉΓòÉ
  28795.  
  28796. Signaled when the mini-icon is dropped on a printer object. (See also the 
  28797. SOURCECTRL object.) 
  28798.  
  28799.  
  28800. ΓòÉΓòÉΓòÉ 218.3.6. QUIT ΓòÉΓòÉΓòÉ
  28801.  
  28802. Signaled when the system icon signals CLOSE. 
  28803.  
  28804.  
  28805. ΓòÉΓòÉΓòÉ 218.3.7. SCHEME ΓòÉΓòÉΓòÉ
  28806.  
  28807. Signaled when a font from the OS/2 font palette is dropped on the window. 
  28808. A.System.Operation is set to "FONT". A.System.BoxValue is set to the OS/2 font 
  28809. string. 
  28810.  
  28811.  
  28812. ΓòÉΓòÉΓòÉ 218.3.8. SCROLL ΓòÉΓòÉΓòÉ
  28813.  
  28814. Signaled when scroll bars are moved. 
  28815.  
  28816.  
  28817. ΓòÉΓòÉΓòÉ 218.3.9. SELECT ΓòÉΓòÉΓòÉ
  28818.  
  28819. Signaled when the window background is selected. 
  28820.  
  28821.  
  28822. ΓòÉΓòÉΓòÉ 218.4. Examples ΓòÉΓòÉΓòÉ
  28823.  
  28824. A window can be opened statically or dynamically.  Static opening uses a window 
  28825. created previously, and stored in the same application as a model for the new 
  28826. window, while dynamic opening defines the window characteristics at runtime. 
  28827.  
  28828. ! You can specify the size when opening a window dynamically.
  28829. OPEN WINDOW MyWin,
  28830.  SizeX = 300,
  28831.  SizeY = 200
  28832. ...
  28833. ! You can change the size of the window at any point in the application.
  28834. LET MyWin'SizeX = 500
  28835.  
  28836. ! And you can group changes into a single statement.
  28837. MODIFY MyWin,
  28838.   SizeX = 230 + BorderWidth,
  28839.   SizeY = 120 + BorderHeight,
  28840.   Title = "Title of my re-sized window"
  28841.  
  28842. A window stored as the file STOREWIN.WIN would be compiled into the windows 
  28843. group in an application (compilation removes the filename extension). A program 
  28844. in the same application could open the window with: 
  28845.  
  28846. OPEN WINDOW T..MyWin, ,"I.windows.STOREWIN"
  28847. ! This statement is generated automatically when code generation
  28848. ! is done using the program editor.
  28849.  
  28850. The read-only attributes WIDTH and HEIGHT can be queried to return the physical 
  28851. width and height in millimeters of the client area of the window. 
  28852.  
  28853. OPEN WINDOW Window,                  ! Open a window setting     !
  28854.   SIZEX    = 60,                     !  its width and height in  !
  28855.   SIZEY    = 30                      !  dialog units.            !
  28856. LET Width  = Window'WIDTH            ! Get the window width and  !
  28857. LET Height = Window'HEIGHT           !  height in millimeters.   !
  28858.  
  28859. !
  28860. ! Sample code to dynamically open a window.
  28861. PROCEDURE WINDOW
  28862. DO
  28863.   !
  28864.   ! mandatory attributes are sizex and sizey
  28865.   OPEN WINDOW SampWind,
  28866.    SizeX      = 200,
  28867.    SizeY      = 200,
  28868.    Border     = 0,                ! normal sizing border
  28869.    MinMax     = 0,                ! Min/Max icon on window (default on)
  28870.    SysMenu    = 1,                ! System menu (default on)
  28871.    Title      = "Dynamic objects",! Window title (default "")
  28872.    Visible    = 1,                ! window opened visible (default)
  28873.    Selectable = 0,                ! client area of window does not
  28874.                                   !  return SELECT Events.
  28875.  
  28876.    !
  28877.    ! the following attributes will include both horizontal and
  28878.    ! vertical scroll bars on the window (default - no scroll bars)
  28879.    HScrlBar       = 1,
  28880.    VScrlBar       = 1,
  28881.    HScrlBarPosn   = 1000,
  28882.    HThumbSize     = 500,
  28883.    VScrlBarPosn   = 1000,
  28884.    VThumbSize     = 500,
  28885.    !
  28886.    ! these attributes control the maximum and minimum size to which
  28887.    ! the window may be sized using the sizing border
  28888.    ! (default - no max or min)
  28889.    MinX           = 50,
  28890.    MinY           = 100,
  28891.    MaxX           = 200,
  28892.    MaxY           = 200,
  28893.    !
  28894.    ! A modal window will suspend activity on any other window
  28895.    ! within the application until the modal window is closed
  28896.    Modal          = 0
  28897. END
  28898.  
  28899. The following code opens a window, then queries the tab order: 
  28900.  
  28901. OPEN WINDOW MyWin, ...
  28902. OPEN PUSH MyPsh1, MyWin, ...
  28903. OPEN SLE MySle1, MyWin, CLONES=5, ...
  28904. OPEN LIST MyList1, MyWin, ...
  28905.  
  28906. DEFINE TabOrder[0]
  28907. DO i = 1 : MyWin'QUERYORDER(TabOrder)
  28908.   ERROR 0, "Item _ in the tab order is: ^", i, TabOrder[i]
  28909. END
  28910.  
  28911. This produces the following output: 
  28912.  
  28913. Item 1 in the tab order is "T..MyPsh1"
  28914. Item 2 in the tab order is "T..MySle1"
  28915. Item 3 in the tab order is "T..MyList1"
  28916.  
  28917. The following code sets the tab order, then queries it again. 
  28918.  
  28919. DEFINE NewTabOrder[0]
  28920. INSERT NewTabOrder[0] = POINTER(MyList1[0])
  28921. INSERT NewTabOrder[0] = POINTER(MySle1[0])
  28922. CALL MyWin'SETORDER(NewTabOrder[0])
  28923.  
  28924. DEFINE TabOrder2[0]
  28925. DO i = 1 : MyWin'QUERYORDER(TabOrder2)
  28926.   ERROR 0, "Item _ in the tab order is: ^", i, TabOrder2[i]
  28927. END
  28928.  
  28929. This produces the following output: 
  28930.  
  28931. Item 1 in the tab order is "T..MyList1"
  28932. Item 2 in the tab order is "T..MySle1"
  28933. Item 3 in the tab order is "T..MyPsh1"
  28934.  
  28935. Examples source library: 
  28936.  
  28937.  
  28938. ΓòÉΓòÉΓòÉ 219. WORDPOS() ΓòÉΓòÉΓòÉ
  28939.  
  28940. The WORDPOS() function returns the position of the word, at character position 
  28941. n The words are counted from left to right, and the first word in the string 
  28942. equals 1. 
  28943.  
  28944.                            ΓöîΓöÇ" "ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  28945. ΓöÇΓöÇWORDPOS(string,number,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  28946.                            ΓööΓöÇseparatorΓöÇΓöÿ
  28947.  
  28948. Examples 
  28949.  
  28950. More about WORDPOS() 
  28951.  
  28952. See also: CWORDPOS() 
  28953.  
  28954.  
  28955. ΓòÉΓòÉΓòÉ 219.1. Examples ΓòÉΓòÉΓòÉ
  28956.  
  28957. The following statement: 
  28958.  
  28959. DECLARE NUMERIC x
  28960. LET x = WORDPOS('Jane.Alex.Roger', 9, '.')
  28961.  
  28962. returns 2, because the ninth character is in the second word in the string when 
  28963. "." is being used as a separator (separators count when counting the character 
  28964. positions). 
  28965.  
  28966. Examples source library: 
  28967.  
  28968.  
  28969. ΓòÉΓòÉΓòÉ 219.2. More about WORDPOS() ΓòÉΓòÉΓòÉ
  28970.  
  28971. o A zero-length string or a string which contains nothing but separators, 
  28972.   returns zero. 
  28973.  
  28974. o If there are fewer than number characters in string, the function returns 
  28975.   zero. 
  28976.  
  28977. o Automatic conversion of parameters is carried out if necessary. 
  28978.  
  28979. o An error is returned if number is negative or NULL. Real numbers are 
  28980.   truncated. 
  28981.  
  28982. o A string parameter of type NULL in this function produces a result of NULL. 
  28983.  
  28984. o In this function, a word is defined by a combination of separators (the 
  28985.   default is space), string start, and string end. No lexical, syntactic, or 
  28986.   semantic analysis is implied. 
  28987.  
  28988. o Any separator parameter used must be a string exactly one character in 
  28989.   length.  No DBCS characters can be used. However, when an SBCS space is 
  28990.   specified as separator, both SBCS and DBCS spaces in the string are assumed 
  28991.   to be spaces. 
  28992.  
  28993. o In an SBCS environment, WORDPOS() and CWORDPOS() always return the same 
  28994.   value. In the following example, if ╨┤ is a DBCS character: 
  28995.  
  28996.     LET x = WORDPOS("ja╨┤e.alex.roger", 6, ".")
  28997.  
  28998.   returns 1, but CWORDPOS() would return 2. 
  28999.  
  29000.  
  29001. ΓòÉΓòÉΓòÉ 220. WORDS() ΓòÉΓòÉΓòÉ
  29002.  
  29003. The WORDS() function returns the number of words in a string, or a specified 
  29004. word or phrase in a string. 
  29005.  
  29006.                                ΓöîΓöÇ" "ΓöÇΓöÉ
  29007. ΓöÇΓöÇWORDS(string,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  29008.                   ΓööΓöÇnumberΓöÇΓöÿ   ΓööΓöÇsepΓöÇΓöÿ   ΓööΓöÇlengthΓöÇΓöÿ
  29009.  
  29010. Examples 
  29011.  
  29012. More about WORDS() 
  29013.  
  29014. See also: COUNT(), SEPARATE() 
  29015.  
  29016.  
  29017. ΓòÉΓòÉΓòÉ 220.1. Examples ΓòÉΓòÉΓòÉ
  29018.  
  29019. word_count     = WORDS("How many cows came home?")
  29020.                              ! word_count is 5
  29021. third_position = WORDS("How many cows came home?", 3 )
  29022.                              ! third_position is "cows"
  29023. barn_position  = WORDS("cow-in-a-barn", 4, "-" )
  29024.                              ! barn_position is "barn"
  29025. no_number      = WORDS("cow", , "*" )
  29026.                              ! no_number is 1
  29027. spaced_str     = WORDS("* cow * ", 1, "*" )
  29028.                              ! spaced_str is " cow "
  29029. phrase         = WORDS("How many cows came home?", 2, , 3 )
  29030.                              ! phrase is "many cows came"
  29031.  
  29032. Examples source library: 
  29033.  
  29034.  
  29035. ΓòÉΓòÉΓòÉ 220.2. More about WORDS() ΓòÉΓòÉΓòÉ
  29036.  
  29037. o If one parameter is supplied, the WORDS() function returns the number of 
  29038.   words in the string.  A zero-length string or one containing only separators 
  29039.   return zero. 
  29040.  
  29041. o If two parameters are supplied, the WORDS() function returns a string 
  29042.   containing word number number from string. If the value of number exceeds the 
  29043.   number of words in string, the function returns a string of length zero. 
  29044.  
  29045. o Only SBCS characters should be used as separators.  However, if the separator 
  29046.   character used is a space, a DBCS space in string is treated in the same way 
  29047.   as an SBCS space. 
  29048.  
  29049. o Automatic conversion of parameters is carried out if necessary. 
  29050.  
  29051. o An error is returned if number is NULL. Real numbers are truncated. If a 
  29052.   negative number is supplied, the count begins at the end of the string (the 
  29053.   last word is -1) and goes backwards to the start. 
  29054.  
  29055. o Using a string parameter of type NULL in this function produces a result of 
  29056.   NULL. 
  29057.  
  29058. o For the WORDS() function, a word is defined by a combination of separators 
  29059.   (the default is space), string start, and string end. No lexical, syntactic, 
  29060.   or semantic analysis is implied. 
  29061.  
  29062. In a DBCS environment: 
  29063.  
  29064. o Only SBCS characters can be used as separators. When an SBCS space is used as 
  29065.   a separator, or 
  29066.  
  29067. o Only SBCS characters can be used as separators. When an SBCS space is used as 
  29068.   a separator, or separator is omitted, SBCS and DBCS spaces in string are both 
  29069.   assumed to be spaces. 
  29070.  
  29071.  
  29072. ΓòÉΓòÉΓòÉ 221. Standard graphics attributes ΓòÉΓòÉΓòÉ
  29073.  
  29074. Many graphics objects have the following attributes: 
  29075.  
  29076. BOUNDED           Whether a line is drawn around the object: 
  29077.  
  29078.    0  No line 
  29079.    1  Line 
  29080.  
  29081.                   Default: 1 (Boundary line) 
  29082.  
  29083. COLOR             Integer in the range 1-19. See  for details of colors 
  29084.                   available. 
  29085.  
  29086.                   Default: 0 
  29087.  
  29088. CONSTANT          Whether the values in the reference vector are read into 
  29089.                   memory at the time the primitive is opened, or are read each 
  29090.                   time the graphic box is repainted. 
  29091.  
  29092.    0  Reference vector values are read each time the box is repainted 
  29093.    1  Reference vector values are read and stored when the primitive is opened. 
  29094.  
  29095.                   Set on OPEN, then cannot be queried. 
  29096.  
  29097.                   Default: 1 (Values stored) 
  29098.  
  29099. DRAGABLE          Whether objects in the graphic area can be dragged: 
  29100.  
  29101.    0  Objects cannot be dragged 
  29102.    1  Objects can be dragged 
  29103.  
  29104.                   Default: 0 (Cannot be dragged) 
  29105.  
  29106. FILLCOLOR         Integer in the range 1-19. See  for details of colors 
  29107.                   available. 
  29108.  
  29109.                   Default: 0 
  29110.  
  29111. FILLPATTERN       Integer in the range 0-15. See  for details of patterns 
  29112.                   available. 
  29113.  
  29114.                   Default: 0 
  29115.  
  29116. LINESTYLE         Style of the line.  Styles range from 0-10: 
  29117.  
  29118.    0     Solid 
  29119.    2-6   Various dashed and dotted lines 
  29120.    7     Solid 
  29121.    8     Invisible 
  29122.  
  29123.          Default: 0 (Solid) 
  29124.  
  29125. LINEWIDTH         Width of the line, in pixels. 
  29126.  
  29127.                   Default: 1 pixel 
  29128.  
  29129. MIX               How the color of a primitive is combined with the color of 
  29130.                   any underlying primitive. 
  29131.  
  29132.    0  Overpaint-no underlying color shows through 
  29133.    1  Leavealone-underlying color shows through 
  29134.    2  XOR-colors of the primitive and the background are combined 
  29135.       electronically in an exclusive OR logical relationship 
  29136.    3  Allows pattern mixing (the white area of the pattern is transparent and 
  29137.       allows patterns below it to be seen). 
  29138.  
  29139.                   Default: 0 (Overpaint) 
  29140.  
  29141. ORIGIN            The corner of the enclosing window to be taken as the origin. 
  29142.                   The position of the object is measured from this point. 
  29143.  
  29144.    "TL"  Top left 
  29145.    "TR"  Top right 
  29146.    "BL"  Bottom left 
  29147.    "BR"  Bottom right 
  29148.  
  29149.                   Default: "BL" (Bottom left) 
  29150.  
  29151. SELECTABLE        Whether an object is selectable or not. When a selectable 
  29152.                   object is selected by the user, a SELECT event is signaled to 
  29153.                   the object handler: 
  29154.  
  29155.    0  Object not selectable 
  29156.    1  Object selectable 
  29157.  
  29158.                   Default: 1 (Selectable) 
  29159.  
  29160. SELECTED          Whether an object is highlighted with a border when selected: 
  29161.  
  29162.    0  Object not highlighted 
  29163.    1  Object highlighted 
  29164.  
  29165.                   Default: 0 (Not highlighted) 
  29166.  
  29167. VISIBLE           Whether the item is visible or not. Objects that are not 
  29168.                   visible are present on the screen, but they are displayed in 
  29169.                   colors which make them invisible against their background. 
  29170.  
  29171.    0  Object not visible 
  29172.    1  Object visible 
  29173.  
  29174.                   Default: 1 (Visible) 
  29175.  
  29176. X                 Horizontal position within the window, in dialog box units. 
  29177.  
  29178.                   Default: 0 
  29179.  
  29180. Y                 Vertical position within the window, in dialog box units. 
  29181.  
  29182.                   Default: 0 
  29183.  
  29184.  
  29185. ΓòÉΓòÉΓòÉ 222. Attributes, actions, and events ΓòÉΓòÉΓòÉ
  29186.  
  29187. This appendix lists the events that objects signal, the attributes of objects, 
  29188. and the actions of objects. 
  29189.  
  29190. The use of these may vary between different objects. For further details of any 
  29191. event, attribute, or action, see the entry for the object in the reference 
  29192. section.) 
  29193.  
  29194. Dictionary attributes for variables are listed separately in . 
  29195.  
  29196. The suffix ΓêÜ denotes a standard graphic attribute. See  for more information on 
  29197. these. 
  29198.  
  29199. Attributes 
  29200.  
  29201. Actions 
  29202.  
  29203. Events 
  29204.  
  29205.  
  29206. ΓòÉΓòÉΓòÉ 222.1. Attributes ΓòÉΓòÉΓòÉ
  29207.  
  29208. Attribute               Objects 
  29209.  
  29210. ACCESS                  DATATRANS FILE 
  29211.  
  29212. ACTIVE                  LINK 
  29213.  
  29214. ALIGNMENT               STRING 
  29215.  
  29216. ANCHORX                 ENTRY 
  29217.  
  29218. ANCHORY                 ENTRY 
  29219.  
  29220. ANGLE                   STRING 
  29221.  
  29222. APPLICATION             DDECLIENT DDESERVER LINK REFERENCE 
  29223.  
  29224. ASCODE                  AS 
  29225.  
  29226. ASPECTRATIO             GRAPHIC 
  29227.  
  29228. ASYNCHRONOUS            MMFILE 
  29229.  
  29230. AUTOCOMMIT              DATASESSION 
  29231.  
  29232. AUTOREFRESH             ENTRY IBMCHART IBMREPORT LIST 
  29233.  
  29234. AUTORESTART             LINK 
  29235.  
  29236. AUTOSCROLL              SLE 
  29237.  
  29238. AUTOSELECT              WINDOW 
  29239.  
  29240. AUTOTAB                 SLE 
  29241.  
  29242. BGCOLOR                 BITMAP ENTRY FOLDERVIEW GRAPHIC LIST PROFILE RADIO TEXT 
  29243.                         WINDOW 
  29244.  
  29245. BITMAP                  BITMAP PUSH 
  29246.  
  29247. BORDER                  ENTRY LIST SLE WINDOW 
  29248.  
  29249. BOUNDED ΓêÜ               ARC ARCPOINTS AREA CIRCLE CURVE ELLIPSE LINE OUTLINE 
  29250.                         POLYGON RECTANGLE SECTOR 
  29251.  
  29252. BUTTONTITLE             FILEDLG 
  29253.  
  29254. CDIR                    SYSTEM 
  29255.  
  29256. CDRIVE                  SYSTEM 
  29257.  
  29258. CELLX                   POINT STRING 
  29259.  
  29260. CELLY                   POINT STRING 
  29261.  
  29262. CHECKED                 CHECK RADIO VALUE 
  29263.  
  29264. CLASSNAME               BITMAP 
  29265.  
  29266. CLIENTS                 DDESERVER 
  29267.  
  29268. CLIPMAXX                DEFINE 
  29269.  
  29270. CLIPMAXY                DEFINE 
  29271.  
  29272. CLIPMINX                DEFINE 
  29273.  
  29274. CLIPMINY                DEFINE 
  29275.  
  29276. CLONEDIR                CHECK ENTRY PUSH RADIO SLE TEXT 
  29277.  
  29278. CLONEGAP                CHECK ENTRY PUSH RADIO SLE TEXT 
  29279.  
  29280. CLONES                  CHECK ENTRY PUSH RADIO SLE TEXT 
  29281.  
  29282. CLOSINGLINE             ARC ARCPOINTS AREA CURVE LINE OUTLINE 
  29283.  
  29284. CODE                    AS AS400SESSION AS400TRANS DATASESSION DATATRANS 
  29285.                         DDECLIENT DDESERVER FILE FILEDLG FOLDER FOLDERITEM 
  29286.                         HLLAPI IBMAPPLICATN IBMCHART IBMDATA IBMREPORT 
  29287.                         IBMSQLSTATEMENT IBMSQLTABLE IBMTABLE LINK MAIL MMFILE 
  29288.                         OBJECTSTORE PRINTER SOURCECTRL SQLSESSION SQLTRANS 
  29289.                         STREAM SYSTEM TABLE TARGETCTRL VIEWORDER 
  29290.  
  29291. CODEDETAIL              AS AS400SESSION AS400TRANS DATASESSION DATATRANS 
  29292.                         SQLSESSION SQLTRANS 
  29293.  
  29294. CODEPAGE                PROFILE 
  29295.  
  29296. CODEPAGETYPE            PROFILE 
  29297.  
  29298. COLNAMES                IBMSQLTABLE 
  29299.  
  29300. COLOR                   PRINTER 
  29301.  
  29302. COLOR ΓêÜ                 ARC ARCPOINTS AREA CIRCLE CURVE DEFINE ELLIPSE LINE 
  29303.                         OBJECT OUTLINE POINT POLYGON RECTANGLE SECTOR STRING 
  29304.  
  29305. COLS                    VALUE 
  29306.  
  29307. COLTITLE                LIST 
  29308.  
  29309. COLTITLE1               LIST 
  29310.  
  29311. COLTITLE2               LIST 
  29312.  
  29313. COLUMNS                 AS DATATRANS LIST TABLE 
  29314.  
  29315. COMMENT                 OBJECTSTORE TABLE 
  29316.  
  29317. CONFIRM                 IBMSQLSTATEMENT 
  29318.  
  29319. CONNECT                 DATASESSION 
  29320.  
  29321. CONSTANT ΓêÜ              ARC ARCPOINTS CIRCLE CURVE ELLIPSE LINE OUTLINE POINT 
  29322.                         POLYGON RECTANGLE SECTOR STRING 
  29323.  
  29324. CONTAINERNAME           TARGETCTRL 
  29325.  
  29326. CONVERT                 FILE 
  29327.  
  29328. COPIES                  PRINTER 
  29329.  
  29330. CURRENCY                PROFILE 
  29331.  
  29332. CURSORBOX               WINDOW 
  29333.  
  29334. CURSORCLONE             WINDOW 
  29335.  
  29336. CURSORPOS               HLLAPI 
  29337.  
  29338. CURSORX                 ENTRY LIST 
  29339.  
  29340. CURSORY                 ENTRY LIST 
  29341.  
  29342. DATA                    VIEWCALCS VIEWORDER VIEWROWS VIEWTABLES 
  29343.  
  29344. DATABASE                IBMSQLTABLE 
  29345.  
  29346. DATAEVENT               LIST 
  29347.  
  29348. DATATYPE                IBMSQLTABLE 
  29349.  
  29350. DATE                    PROFILE 
  29351.  
  29352. DATEFORMAT              PROFILE 
  29353.  
  29354. DATEMETHOD              AS 
  29355.  
  29356. DATESEPAR               PROFILE 
  29357.  
  29358. DBCSFONT                PROFILE 
  29359.  
  29360. DBNAME                  DATASESSION IBMSQLSTATEMENT SQLSESSION 
  29361.  
  29362. DECSEPAR                PROFILE 
  29363.  
  29364. DEFAULT                 PUSH 
  29365.  
  29366. DEFAULT.                RECTANGLE 
  29367.  
  29368. DEFAULTFORMAT           LINK 
  29369.  
  29370. DEFINE                  OBJECT 
  29371.  
  29372. DESCRIPTION             PRINTER 
  29373.  
  29374. DETAIL                  FOLDERITEM 
  29375.  
  29376. DETAILHEADINGTEXT       FOLDER 
  29377.  
  29378. DETAILHEADINGVISIBLE    FOLDERVIEW 
  29379.  
  29380. DETAILVISIBLE           FOLDERVIEW 
  29381.  
  29382. DIALOG                  IBMAPPLICATN IBMCHART IBMDATA IBMREPORT IBMSQLSTATEMENT 
  29383.                         IBMTABLE LINK PRINTER 
  29384.  
  29385. DIRECTION               SCROLL STRING 
  29386.  
  29387. DIRLISTTXT              FILEDLG 
  29388.  
  29389. DISABLED                TBAR 
  29390.  
  29391. DISCARDABLE             SOURCECTRL 
  29392.  
  29393. DLL                     PRESSPACE 
  29394.  
  29395. DOWN                    TBAR 
  29396.  
  29397. DRAGABLE                BITMAP DEFINE GRAPHIC 
  29398.  
  29399. DRAGBORDER              DEFINE 
  29400.  
  29401. DRIVE                   SQLSESSION 
  29402.  
  29403. DRIVELISTTXT            FILEDLG 
  29404.  
  29405. DSSDIR                  PROFILE 
  29406.  
  29407. DSSPATH                 PROFILE 
  29408.  
  29409. EA                      FILEDLG 
  29410.  
  29411. EDITABLE                FOLDER FOLDERITEM 
  29412.  
  29413. ENABLED                 CHECK DROPENTRY DROPLIST LIST PUSH RADIO SCROLL SLE 
  29414.                         TEXT VALUE 
  29415.  
  29416. ENCLOSED                ARC ARCPOINTS AREA CURVE LINE OUTLINE 
  29417.  
  29418. END                     AREA 
  29419.  
  29420. EOF                     AS400TRANS DATATRANS FILE SQLTRANS 
  29421.  
  29422. ERASE                   REFERENCE 
  29423.  
  29424. ERRORINFO               AS 
  29425.  
  29426. EUIMODE                 IBMCHART IBMREPORT 
  29427.  
  29428. EXCLUSIVE               MMFILE 
  29429.  
  29430. EXE                     PROFILE 
  29431.  
  29432. EXPRESSION              CHECK DROPENTRY DROPLIST ENTRY GRAPHIC GROUP LIST PUSH 
  29433.                         RADIO SLE TEXT 
  29434.  
  29435. FGCOLOR                 BITMAP ENTRY FOLDERVIEW GRAPHIC LIST PROFILE RADIO TEXT 
  29436.                         WINDOW 
  29437.  
  29438. FILELISTTXT             FILEDLG 
  29439.  
  29440. FILENAMETXT             FILEDLG 
  29441.  
  29442. FILINGSYSTEM            IBMDATA 
  29443.  
  29444. FILLCOLOR ΓêÜ             ARC ARCPOINTS AREA CIRCLE CURVE DEFINE ELLIPSE LINE 
  29445.                         OBJECT OUTLINE POLYGON RECTANGLE SECTOR 
  29446.  
  29447. FILLPATTERN ΓêÜ           ARC ARCPOINTS AREA CIRCLE CURVE DEFINE ELLIPSE LINE 
  29448.                         OBJECT OUTLINE POLYGON RECTANGLE SECTOR 
  29449.  
  29450. FILTERLISTTXT           FILEDLG 
  29451.  
  29452. FIRSTCHAR               ENTRY SLE 
  29453.  
  29454. FIXEDCOLS               LIST 
  29455.  
  29456. FIXEDFONT               ENTRY 
  29457.  
  29458. FIXEDROWS               LIST 
  29459.  
  29460. FOLDER                  FOLDERITEM 
  29461.  
  29462. FOLDERITEM              FOLDER 
  29463.  
  29464. FONT                    LIST STRING WINDOW 
  29465.  
  29466. FONTFIXED               LIST 
  29467.  
  29468. FONTTITLE               LIST 
  29469.  
  29470. FORMAT                  FILE STREAM 
  29471.  
  29472. FORMATS                 COPYTO SEND 
  29473.  
  29474. GENKEYCOL               AS400TRANS DATATRANS SQLTRANS 
  29475.  
  29476. GRIDX                   WINDOW 
  29477.  
  29478. GRIDY                   WINDOW 
  29479.  
  29480. GROUP                   TBAR 
  29481.  
  29482. HANDLES                 CHECK DROPENTRY DROPLIST ENTRY GRAPHIC GROUP LIST PUSH 
  29483.                         RADIO SCROLL SLE TEXT VALUE 
  29484.  
  29485. HEADINGTEXT             FOLDER 
  29486.  
  29487. HEADINGVISIBLE          FOLDERVIEW 
  29488.  
  29489. HEIGHT                  GRAPHIC PRINTER WINDOW 
  29490.  
  29491. HELP                    CHECK COPYTO DROPENTRY DROPLIST ENTRY FILEDLG 
  29492.                         FOLDERITEM GRAPHIC GROUP LIST PUSH RADIO SCROLL SEND 
  29493.                         SLE TBAR TEXT VALUE WINDOW 
  29494.  
  29495. HELPBUTTON              PUSH 
  29496.  
  29497. HELPFORHELP             HELP 
  29498.  
  29499. HELPGLOBAL              TBAR 
  29500.  
  29501. HELPIDS                 TBAR 
  29502.  
  29503. HELPTITLE               FILEDLG 
  29504.  
  29505. HILITEBGCOLOR           PROFILE 
  29506.  
  29507. HILITEFGCOLOR           PROFILE 
  29508.  
  29509. HORZJUST                SLE STRING TEXT 
  29510.  
  29511. HORZSCROLL              ENTRY LIST 
  29512.  
  29513. HOSTCODEPAGE            AS 
  29514.  
  29515. HOSTMESSAGE             AS 
  29516.  
  29517. HOSTMSGNO               AS 
  29518.  
  29519. HOT                     LINK 
  29520.  
  29521. HSCRLBAR                WINDOW 
  29522.  
  29523. HSCRLBARPOSN            WINDOW 
  29524.  
  29525. HTHUMBSIZE              WINDOW 
  29526.  
  29527. HYPERTEXTID             HELP 
  29528.  
  29529. IBMDATA                 IBMCHART 
  29530.  
  29531. ICON                    FOLDERITEM WINDOW 
  29532.  
  29533. ID                      BITMAP LINK 
  29534.  
  29535. IDENTIFIER              COPYTO FILEDLG IBMAPPLICATN IBMCHART IBMREPORT 
  29536.                         IBMSQLSTATEMENT IBMTABLE SEND 
  29537.  
  29538. INFOAREA                IBMTABLE 
  29539.  
  29540. INISTATE                TBAR 
  29541.  
  29542. INSTANCE                PROFILE 
  29543.  
  29544. INTERFACE               DATASESSION 
  29545.  
  29546. ITEM                    COPYTO DDECLIENT LINK REFERENCE 
  29547.  
  29548. ITEMLIST                VALUE 
  29549.  
  29550. ITEMTYPE                VALUE 
  29551.  
  29552. KEEP                    TABLE 
  29553.  
  29554. KEYED                   AS TABLE 
  29555.  
  29556. KEYS                    AS HELP TABLE 
  29557.  
  29558. LANGUAGE                PROFILE 
  29559.  
  29560. LATCH                   TBAR 
  29561.  
  29562. LEFTCOL                 LIST 
  29563.  
  29564. LENGTH                  FILE MMFILE 
  29565.  
  29566. LIBNAME                 FILEDLG HELP 
  29567.  
  29568. LINESPACING             FOLDERVIEW 
  29569.  
  29570. LINESTYLE ΓêÜ             ARC ARCPOINTS AREA CIRCLE CURVE DEFINE ELLIPSE LINE 
  29571.                         OBJECT OUTLINE POLYGON RECTANGLE SECTOR 
  29572.  
  29573. LINEWIDTH ΓêÜ             ARC ARCPOINTS AREA CIRCLE CURVE DEFINE ELLIPSE LINE 
  29574.                         OBJECT OUTLINE POLYGON RECTANGLE SECTOR 
  29575.  
  29576. LINK                    STREAM 
  29577.  
  29578. LINKS                   LINKSHOW 
  29579.  
  29580. LISTREF                 DROPENTRY DROPLIST 
  29581.  
  29582. LISTTYPES               VIEWTABLES 
  29583.  
  29584. LOCATION                FILE FILEDLG LINK MMFILE OBJECTSTORE REFERENCE STREAM 
  29585.                         TABLE 
  29586.  
  29587. MAIL                    PROFILE 
  29588.  
  29589. MAXCLIENTS              DDESERVER 
  29590.  
  29591. MAXX                    WINDOW 
  29592.  
  29593. MAXY                    WINDOW 
  29594.  
  29595. MENUREF                 FOLDERVIEW WINDOW 
  29596.  
  29597. METAFILE                VIEWPORT 
  29598.  
  29599. MINMAX                  WINDOW 
  29600.  
  29601. MINX                    WINDOW 
  29602.  
  29603. MINY                    WINDOW 
  29604.  
  29605. MIX ΓêÜ                   ARC ARCPOINTS AREA BITMAP CIRCLE CURVE ELLIPSE LINE 
  29606.                         OBJECT OUTLINE POINT POLYGON RECTANGLE SECTOR STRING 
  29607.  
  29608. MODAL                   VIEWCALCS VIEWORDER VIEWROWS VIEWTABLES WINDOW 
  29609.  
  29610. MODE                    AS400TRANS ENTRY FILE OBJECTSTORE SQLTRANS STREAM TABLE 
  29611.  
  29612. MODIFIED                IBMCHART IBMDATA IBMREPORT IBMSQLSTATEMENT IBMTABLE 
  29613.  
  29614. MODRECS                 DATASESSION 
  29615.  
  29616. MOVEX                   DEFINE OBJECT 
  29617.  
  29618. MOVEY                   DEFINE OBJECT 
  29619.  
  29620. MULTILINE               STRING 
  29621.  
  29622. NAME                    AS FILE FILEDLG FOLDERITEM IBMAPPLICATN IBMCHART 
  29623.                         IBMREPORT IBMSQLSTATEMENT IBMTABLE LINK MMFILE 
  29624.                         OBJECTSTORE REFERENCE STREAM TABLE 
  29625.  
  29626. NAMEHEADINGTEXT         FOLDER 
  29627.  
  29628. NAMEVISIBLE             FOLDERVIEW 
  29629.  
  29630. NATIVEFORMAT            LINK 
  29631.  
  29632. OBJECTCLASS             TABLE 
  29633.  
  29634. OBJECTNAME              COPYTO LINK LINKSHOW SEND SOURCECTRL STREAM 
  29635.  
  29636. OBJECTVIEW              WINDOW 
  29637.  
  29638. OL_ALL                  TEXT 
  29639.  
  29640. OL_COLOR                TEXT 
  29641.  
  29642. OL_DETAIL               TEXT 
  29643.  
  29644. OL_LEFT                 TEXT 
  29645.  
  29646. OL_OVER                 TEXT 
  29647.  
  29648. OL_RIGHT                TEXT 
  29649.  
  29650. OL_UNDER                TEXT 
  29651.  
  29652. OPENED                  FOLDERITEM 
  29653.  
  29654. OPERATION               SOURCECTRL TARGETCTRL 
  29655.  
  29656. OPERATIONS              SOURCECTRL 
  29657.  
  29658. ORDERDATA               LIST 
  29659.  
  29660. ORDERSIGNS              VIEWORDER 
  29661.  
  29662. ORDERVECTOR             VIEWORDER 
  29663.  
  29664. ORIGIN                  CHECK DROPENTRY DROPLIST ENTRY GRAPHIC GROUP LIST 
  29665.                         MMFILE PRESSPACE PUSH RADIO SCROLL SLE TEXT VALUE 
  29666.  
  29667. ORIGINATOR              PRINTER SOURCECTRL STREAM TARGETCTRL 
  29668.  
  29669. ORIGINX                 DEFINE ENTRY OBJECT 
  29670.  
  29671. ORIGINY                 DEFINE ENTRY OBJECT 
  29672.  
  29673. OVERFLOW                TEXT 
  29674.  
  29675. OWNER                   CLIPBOARD 
  29676.  
  29677. OWNERWINDOW             COPYTO LINKSHOW SEND VIEWCALCS VIEWORDER VIEWROWS 
  29678.                         VIEWTABLES WINDOW 
  29679.  
  29680. PATH                    IBMDATA 
  29681.  
  29682. PATTERN                 GRAPHIC WINDOW 
  29683.  
  29684. PCS                     PROFILE 
  29685.  
  29686. PERCENTAGE              IBMCHART 
  29687.  
  29688. PERSPECTIVE             IBMCHART 
  29689.  
  29690. PLACES                  PROFILE 
  29691.  
  29692. PLATFORM                SQLSESSION 
  29693.  
  29694. POINT                   FILE STREAM 
  29695.  
  29696. POPUPMENUREF            FOLDERITEM 
  29697.  
  29698. POSITION                MMFILE 
  29699.  
  29700. PREFIX                  OBJECTSTORE TABLE 
  29701.  
  29702. PRINTABLE               SOURCECTRL 
  29703.  
  29704. PROCLINE                AS 
  29705.  
  29706. PROCNAME                AS PRESSPACE 
  29707.  
  29708. PROTECT                 SLE 
  29709.  
  29710. RANGEEND                SCROLL 
  29711.  
  29712. RANGESTART              SCROLL 
  29713.  
  29714. READONLY                IBMSQLSTATEMENT IBMTABLE MMFILE 
  29715.  
  29716. REASON                  DATASESSION DATATRANS IBMAPPLICATN IBMCHART IBMDATA 
  29717.                         IBMREPORT IBMSQLTABLE IBMTABLE MMFILE 
  29718.  
  29719. REFERENCE               ARC ARCPOINTS CIRCLE CURVE ELLIPSE LINE LIST OUTLINE 
  29720.                         POINT POLYGON RECTANGLE SECTOR STREAM STRING 
  29721.  
  29722. RELATIONAL              PROFILE 
  29723.  
  29724. RELOBJECT               AS 
  29725.  
  29726. REPLACE                 PROFILE 
  29727.  
  29728. RESOURCE                BITMAP FOLDERITEM VALUE 
  29729.  
  29730. RESTARTABLE             LINK 
  29731.  
  29732. RETURNCODE              SYSTEM 
  29733.  
  29734. ROTATE                  DEFINE OBJECT 
  29735.  
  29736. ROTATED                 IBMCHART 
  29737.  
  29738. ROTATEX                 DEFINE OBJECT 
  29739.  
  29740. ROTATEY                 DEFINE OBJECT 
  29741.  
  29742. ROWS                    LIST TABLE VALUE 
  29743.  
  29744. RUN                     PROFILE 
  29745.  
  29746. SAVEPROMPT              IBMCHART IBMREPORT 
  29747.  
  29748. SCALE                   VALUE 
  29749.  
  29750. SCALED                  PUSH 
  29751.  
  29752. SCALEX                  DEFINE OBJECT 
  29753.  
  29754. SCALEY                  DEFINE OBJECT 
  29755.  
  29756. SCROLLEVENT             LIST 
  29757.  
  29758. SELECT                  AS 
  29759.  
  29760. SELECTABLE              ENTRY GRAPHIC SLE TEXT WINDOW 
  29761.  
  29762. SELECTABLE ΓêÜ            ARC ARCPOINTS AREA BITMAP CIRCLE CURVE DEFINE ELLIPSE 
  29763.                         LINE OBJECT OUTLINE POINT POLYGON RECTANGLE SECTOR 
  29764.                         STRING 
  29765.  
  29766. SELECTCELLS             LIST 
  29767.  
  29768. SELECTCOLS              LIST 
  29769.  
  29770. SELECTED ΓêÜ              ARC ARCPOINTS AREA BITMAP CIRCLE CURVE DEFINE ELLIPSE 
  29771.                         LINE OBJECT OUTLINE POINT POLYGON RECTANGLE SECTOR 
  29772.                         STRING 
  29773.  
  29774. SELECTION               FOLDERVIEW LIST 
  29775.  
  29776. SELECTMODE              LIST 
  29777.  
  29778. SELECTROWS              LIST 
  29779.  
  29780. SERVERNAME              AS 
  29781.  
  29782. SERVERTYPE              AS 
  29783.  
  29784. SESSION                 HLLAPI 
  29785.  
  29786. SHEAR                   STRING 
  29787.  
  29788. SHORTDATE               PROFILE 
  29789.  
  29790. SIZE                    STREAM STRING 
  29791.  
  29792. SIZEX                   BITMAP CHECK DROPENTRY DROPLIST ENTRY FOLDERVIEW 
  29793.                         GRAPHIC GROUP LIST MMFILE PRESSPACE PUSH RADIO SCROLL 
  29794.                         SLE TEXT VALUE VIEWPORT WINDOW 
  29795.  
  29796. SIZEY                   BITMAP CHECK DROPENTRY DROPLIST ENTRY FOLDERVIEW 
  29797.                         GRAPHIC GROUP LIST MMFILE PRESSPACE PUSH RADIO SCROLL 
  29798.                         TBAR TEXT VALUE VIEWPORT WINDOW 
  29799.  
  29800. SKIPREFRESH             GRAPHIC 
  29801.  
  29802. SLIDERPOS               SCROLL 
  29803.  
  29804. SOURCECTRL              FOLDERVIEW WINDOW 
  29805.  
  29806. SOURCENAME              TARGETCTRL 
  29807.  
  29808. SOURCETYPE              REFERENCE 
  29809.  
  29810. SQLSTATE                SQLSESSION SQLTRANS 
  29811.  
  29812. SQLSTRING               IBMSQLTABLE 
  29813.  
  29814. SQLTABLE                IBMSQLTABLE 
  29815.  
  29816. SRPI                    PROFILE 
  29817.  
  29818. STARTCOMMAND            LINK 
  29819.  
  29820. STATUS                  MMFILE SQLSESSION STREAM 
  29821.  
  29822. STYLE                   POINT 
  29823.  
  29824. SYSMENU                 WINDOW 
  29825.  
  29826. SYSTEM                  AS400SESSION 
  29827.  
  29828. TABACTION               ENTRY 
  29829.  
  29830. TABLE                   AS400TRANS DATATRANS IBMDATA SQLTRANS VIEWORDER 
  29831.  
  29832. TAGSTYLE                LIST 
  29833.  
  29834. TARGETCTRL              FOLDERVIEW WINDOW 
  29835.  
  29836. TARGETX                 FOLDERVIEW WINDOW 
  29837.  
  29838. TARGETY                 FOLDERVIEW WINDOW 
  29839.  
  29840. TEMPLOCATION            REFERENCE 
  29841.  
  29842. TEMPNAME                REFERENCE 
  29843.  
  29844. TEXT                    CHECK GROUP PUSH RADIO TEXT 
  29845.  
  29846. TEXTLIMIT               DROPENTRY ENTRY SLE 
  29847.  
  29848. THOUSEPAR               PROFILE 
  29849.  
  29850. THUMBSIZE               SCROLL 
  29851.  
  29852. TILT                    ARC ARCPOINTS ELLIPSE SECTOR 
  29853.  
  29854. TIME                    PROFILE 
  29855.  
  29856. TIMEFORMAT              MMFILE PROFILE 
  29857.  
  29858. TIMEOUT                 AS DDECLIENT MMFILE 
  29859.  
  29860. TIMESEPAR               PROFILE 
  29861.  
  29862. TITLE                   FILEDLG VIEWORDER VIEWTABLES WINDOW 
  29863.  
  29864. TITLEBAR                WINDOW 
  29865.  
  29866. TITLEINFO               LIST 
  29867.  
  29868. TOGGLE                  TBAR 
  29869.  
  29870. TOOLDATA                TBAR 
  29871.  
  29872. TOOLTEXT                TBAR 
  29873.  
  29874. TOPIC                   DDECLIENT DDESERVER LINK REFERENCE 
  29875.  
  29876. TOPROW                  LIST 
  29877.  
  29878. TRACE                   DDECLIENT DDESERVER SOURCECTRL TARGETCTRL 
  29879.  
  29880. TRACEAS                 AS 
  29881.  
  29882. TRACELEVEL              AS400SESSION DATASESSION MMFILE SQLSESSION 
  29883.  
  29884. TRACEPC                 AS 
  29885.  
  29886. TRACESERVER             AS 
  29887.  
  29888. TREELINEVISIBLE         FOLDERVIEW 
  29889.  
  29890. TREEVIEWINDENT          FOLDERVIEW 
  29891.  
  29892. TRIM                    DATATRANS 
  29893.  
  29894. TYPE                    AS FOLDERITEM IBMCHART STREAM TABLE 
  29895.  
  29896. TYPEHEADINGTEXT         FOLDER 
  29897.  
  29898. TYPEVISIBLE             FOLDERVIEW 
  29899.  
  29900. UNIFORM                 VIEWPORT 
  29901.  
  29902. UP                      TBAR 
  29903.  
  29904. USERID                  SQLSESSION 
  29905.  
  29906. VALUE                   DROPENTRY DROPLIST 
  29907.  
  29908. VERSION                 DATASESSION PROFILE 
  29909.  
  29910. VERTJUST                TEXT 
  29911.  
  29912. VERTSCROLL              ENTRY LIST 
  29913.  
  29914. VIEW                    FOLDERVIEW IBMTABLE 
  29915.  
  29916. VISIBLE                 CHECK COPYTO DROPENTRY DROPLIST ENTRY FOLDERITEM 
  29917.                         GRAPHIC GROUP LINKSHOW LIST MMFILE PRESSPACE PUSH RADIO 
  29918.                         SCROLL SEND SLE TBAR TEXT VALUE VIEWORDER WINDOW 
  29919.  
  29920. VISIBLE ΓêÜ               ARC ARCPOINTS AREA BITMAP CIRCLE CURVE DEFINE ELLIPSE 
  29921.                         LINE OBJECT OUTLINE POINT POLYGON RECTANGLE SECTOR 
  29922.                         STRING 
  29923.  
  29924. VOLUME                  MMFILE 
  29925.  
  29926. VSCRLBAR                WINDOW 
  29927.  
  29928. VSCRLBARPOSN            WINDOW 
  29929.  
  29930. VTHUMBSIZE              WINDOW 
  29931.  
  29932. WCSMAXX                 GRAPHIC 
  29933.  
  29934. WCSMAXY                 GRAPHIC 
  29935.  
  29936. WCSMINX                 GRAPHIC 
  29937.  
  29938. WCSMINY                 GRAPHIC 
  29939.  
  29940. WIDTH                   GRAPHIC POINT PRINTER WINDOW 
  29941.  
  29942. WINDOWSTATUS            HLLAPI 
  29943.  
  29944. WINDOWTITLE             FOLDERVIEW 
  29945.  
  29946. WINTITLE                HELP 
  29947.  
  29948. WORDWRAP                ENTRY TEXT 
  29949.  
  29950. X                       CHECK DROPENTRY DROPLIST ENTRY FOLDERITEM FOLDERVIEW 
  29951.                         GRAPHIC GROUP LIST MMFILE PRESSPACE PUSH RADIO SCROLL 
  29952.                         SLE TEXT VALUE VIEWPORT WINDOW 
  29953.  
  29954. X ΓêÜ                     BITMAP 
  29955.  
  29956. XEXTENT                 MMFILE 
  29957.  
  29958. Y                       CHECK DROPENTRY DROPLIST ENTRY FOLDERITEM FOLDERVIEW 
  29959.                         GRAPHIC GROUP LIST MMFILE PRESSPACE PUSH RADIO SCROLL 
  29960.                         SLE TEXT VALUE VIEWPORT WINDOW 
  29961.  
  29962. Y ΓêÜ                     BITMAP 
  29963.  
  29964. YEXTENT                 MMFILE 
  29965.  
  29966.  
  29967. ΓòÉΓòÉΓòÉ 222.2. Actions ΓòÉΓòÉΓòÉ
  29968.  
  29969. Action                  Objects 
  29970.  
  29971. ACTION                  IBMAPPLICATN 
  29972.  
  29973. ACTIVATE                LINK 
  29974.  
  29975. ADDFMTEXT               TARGETCTRL 
  29976.  
  29977. ADDFORMAT               LINK SOURCECTRL TARGETCTRL 
  29978.  
  29979. ADDLINK                 LINKSHOW 
  29980.  
  29981. ADDTYPE                 SOURCECTRL TARGETCTRL 
  29982.  
  29983. ADDTYPEEXT              TARGETCTRL 
  29984.  
  29985. ADVISE                  DDECLIENT DDESERVER 
  29986.  
  29987. AFTER                   TIMER 
  29988.  
  29989. AT                      TIMER 
  29990.  
  29991. ATTACH                  AS 
  29992.  
  29993. ATTRIB                  SYSTEM 
  29994.  
  29995. BITMAP                  GRAPHIC 
  29996.  
  29997. CALCOLUMNS              AS 
  29998.  
  29999. CHECK                   LIST 
  30000.  
  30001. CHECKPOINT              TABLE 
  30002.  
  30003. CHECKSYNTAX             AS 
  30004.  
  30005. CLEAR                   GRAPHIC 
  30006.  
  30007. CLIPBOARD               GRAPHIC 
  30008.  
  30009. CLOSE                   IBMAPPLICATN IBMSQLSTATEMENT LINK 
  30010.  
  30011. COLUMNS                 AS DATATRANS IBMDATA IBMTABLE SQLTRANS TABLE 
  30012.  
  30013. COMMAND                 AS AS400SESSION DATASESSION SQLSESSION SYSTEM 
  30014.  
  30015. COMMANDCODE             SYSTEM 
  30016.  
  30017. COMMIT                  DATASESSION SQLSESSION 
  30018.  
  30019. COMPRESS                IBMTABLE 
  30020.  
  30021. CONNECT                 HLLAPI 
  30022.  
  30023. CONTENTS                HELP 
  30024.  
  30025. CONTRACT                FOLDERVIEW 
  30026.  
  30027. CONVERTPOS              HLLAPI 
  30028.  
  30029. COPY                    SYSTEM 
  30030.  
  30031. COPYEATTRS              FILE OBJECTSTORE 
  30032.  
  30033. COPYOIA                 HLLAPI 
  30034.  
  30035. COPYPS                  HLLAPI 
  30036.  
  30037. COPYTO                  IBMCHART IBMREPORT IBMTABLE MMFILE 
  30038.  
  30039. CREATE                  LIST SQLTRANS 
  30040.  
  30041. CREATESVAR              AS 
  30042.  
  30043. CREATETEMP              AS SYSTEM 
  30044.  
  30045. CURSORBOX               LIST 
  30046.  
  30047. DBNAMES                 SQLSESSION 
  30048.  
  30049. DEACTIVATE              LINK 
  30050.  
  30051. DELETE                  SYSTEM 
  30052.  
  30053. DELETESVAR              AS 
  30054.  
  30055. DELETETEMP              SYSTEM 
  30056.  
  30057. DELIVER                 CLIPBOARD DDECLIENT 
  30058.  
  30059. DESTROY                 LIST 
  30060.  
  30061. DETAILS                 AS 
  30062.  
  30063. DIRECTORIES             SYSTEM 
  30064.  
  30065. DISABLE                 VALUE 
  30066.  
  30067. DISCARD                 IBMAPPLICATN IBMCHART IBMREPORT IBMSQLTABLE IBMTABLE 
  30068.                         MMFILE 
  30069.  
  30070. DISCONNECT              HLLAPI 
  30071.  
  30072. DISMISS                 HELP 
  30073.  
  30074. DISPLAY                 HELP 
  30075.  
  30076. DRIVES                  SYSTEM 
  30077.  
  30078. DROP                    AS 
  30079.  
  30080. EALIST                  FILEDLG 
  30081.  
  30082. EDIT                    CHECK DROPENTRY DROPLIST ENTRY GRAPHIC GROUP LIST SLE 
  30083.                         TEXT VALUE 
  30084.  
  30085. EMPTY                   CLIPBOARD 
  30086.  
  30087. ENABLE                  VALUE 
  30088.  
  30089. EQUALS                  LINK 
  30090.  
  30091. ERRORTEXT               AS 
  30092.  
  30093. EXCLUDETEMP             SYSTEM 
  30094.  
  30095. EXECUTE                 DDECLIENT 
  30096.  
  30097. EXPAND                  FOLDERVIEW 
  30098.  
  30099. EXPRESSION              SQLTRANS 
  30100.  
  30101. FIELDATTR               HLLAPI 
  30102.  
  30103. FIELDLENGTH             HLLAPI 
  30104.  
  30105. FIELDPOS                HLLAPI 
  30106.  
  30107. FIELDTOSTR              HLLAPI 
  30108.  
  30109. FILE                    SYSTEM 
  30110.  
  30111. FILES                   SYSTEM 
  30112.  
  30113. FILTER                  TBAR 
  30114.  
  30115. FINISHED                STREAM 
  30116.  
  30117. FLUSH                   WINDOW 
  30118.  
  30119. FMTEXTS                 TARGETCTRL 
  30120.  
  30121. FORMATS                 DDESERVER LINK SOURCECTRL TARGETCTRL 
  30122.  
  30123. GET                     CLIPBOARD FILE LIST 
  30124.  
  30125. GETASL                  STREAM 
  30126.  
  30127. GETDATA                 STREAM 
  30128.  
  30129. GETLINE                 STREAM 
  30130.  
  30131. GETNEXTROW              AS AS400TRANS DATATRANS SQLTRANS 
  30132.  
  30133. GETPREVROW              DATATRANS 
  30134.  
  30135. GETROW                  DATATRANS LIST 
  30136.  
  30137. GETSQL                  IBMSQLSTATEMENT 
  30138.  
  30139. GETSVAR                 AS 
  30140.  
  30141. GETTABLE                AS 
  30142.  
  30143. GETTITLE                LIST 
  30144.  
  30145. GOTOTOP                 AS AS400TRANS DATATRANS SQLTRANS 
  30146.  
  30147. HOTLINK                 LINK 
  30148.  
  30149. INCLUDETEMP             SYSTEM 
  30150.  
  30151. INDEX                   HELP 
  30152.  
  30153. INFO                    IBMDATA 
  30154.  
  30155. INFORM                  DDESERVER 
  30156.  
  30157. INQCALCS                IBMDATA 
  30158.  
  30159. INQCOLPROP              IBMDATA IBMTABLE 
  30160.  
  30161. INQCOLUMNS              IBMDATA IBMTABLE 
  30162.  
  30163. INQFIXEDCOLS            IBMTABLE 
  30164.  
  30165. INQGROUPBY              IBMDATA 
  30166.  
  30167. INQINFO                 IBMDATA 
  30168.  
  30169. INQKEYS                 IBMDATA IBMTABLE 
  30170.  
  30171. INQROWS                 IBMDATA IBMTABLE 
  30172.  
  30173. INQSUMMARYCALCS         IBMDATA 
  30174.  
  30175. INQTYPES                IBMDATA IBMTABLE 
  30176.  
  30177. ITEMS                   DROPENTRY DROPLIST 
  30178.  
  30179. JOIN                    IBMTABLE 
  30180.  
  30181. KEYS                    AS DATATRANS SQLTRANS TABLE 
  30182.  
  30183. LISTCAT                 AS 
  30184.  
  30185. LOAD                    AS400TRANS DATATRANS IBMDATA LINK REFERENCE SQLTRANS 
  30186.  
  30187. LOCK                    CLIPBOARD LIST 
  30188.  
  30189. MAX                     WINDOW 
  30190.  
  30191. METAFILE                GRAPHIC 
  30192.  
  30193. MIN                     WINDOW 
  30194.  
  30195. NOKEYS                  AS TABLE 
  30196.  
  30197. NORM                    WINDOW 
  30198.  
  30199. OPEN                    FILEDLG IBMAPPLICATN IBMCHART IBMREPORT IBMSQLSTATEMENT 
  30200.                         IBMSQLTABLE IBMTABLE 
  30201.  
  30202. ORDER                   VIEWORDER 
  30203.  
  30204. PAGESETUP               IBMREPORT 
  30205.  
  30206. PAUSE                   HLLAPI MMFILE 
  30207.  
  30208. PLACECURSOR             LIST 
  30209.  
  30210. PLAY                    MMFILE 
  30211.  
  30212. POST                    PRESSPACE 
  30213.  
  30214. PRINT                   GRAPHIC IBMCHART IBMREPORT IBMSQLTABLE IBMTABLE WINDOW 
  30215.  
  30216. PRINTREQUEST            SYSTEM 
  30217.  
  30218. PROCESS                 IBMCHART IBMREPORT 
  30219.  
  30220. PRODUCTCOLUMNS          IBMDATA 
  30221.  
  30222. PSTOSTRING              HLLAPI 
  30223.  
  30224. PUT                     CLIPBOARD FILE LIST PRINTER 
  30225.  
  30226. PUTASL                  STREAM 
  30227.  
  30228. PUTDATA                 STREAM 
  30229.  
  30230. PUTLINE                 STREAM 
  30231.  
  30232. PUTSQL                  IBMSQLSTATEMENT IBMSQLTABLE 
  30233.  
  30234. PUTSVAR                 AS 
  30235.  
  30236. PUTTABLE                AS 
  30237.  
  30238. PUTTITLE                LIST 
  30239.  
  30240. QUERYADVISES            DDESERVER 
  30241.  
  30242. QUERYCHECK              LIST 
  30243.  
  30244. QUERYCLASS              SYSTEM 
  30245.  
  30246. QUERYCURSOR             LIST 
  30247.  
  30248. QUERYFORMATS            CLIPBOARD DDECLIENT IBMCHART IBMDATA LINK 
  30249.  
  30250. QUERYLOCKED             LIST 
  30251.  
  30252. QUERYORDER              FOLDER WINDOW 
  30253.  
  30254. QUERYSELECTED           FOLDERVIEW 
  30255.  
  30256. QUERYTEMP               SYSTEM 
  30257.  
  30258. QUERYVIEWS              FOLDER 
  30259.  
  30260. QUERYWIDTH              LIST 
  30261.  
  30262. RECEIVEFILE             HLLAPI 
  30263.  
  30264. RECORD                  MMFILE 
  30265.  
  30266. REFRESH                 CHECK ENTRY GRAPHIC GROUP IBMAPPLICATN IBMSQLSTATEMENT 
  30267.                         IBMTABLE LIST PUSH RADIO SCROLL SLE TEXT VALUE WINDOW 
  30268.  
  30269. REFRESHDATA             IBMCHART IBMDATA IBMREPORT 
  30270.  
  30271. REGISTER                CLIPBOARD 
  30272.  
  30273. RELEASE                 HLLAPI 
  30274.  
  30275. RENAME                  SYSTEM 
  30276.  
  30277. REQUEST                 CLIPBOARD DDECLIENT LINK 
  30278.  
  30279. RESERVE                 HLLAPI 
  30280.  
  30281. RESET                   IBMCHART 
  30282.  
  30283. RESETDATA               IBMCHART 
  30284.  
  30285. RESETSYSTEM             HLLAPI 
  30286.  
  30287. RESETTABLE              AS 
  30288.  
  30289. RESTART                 LINK 
  30290.  
  30291. RESUME                  MMFILE 
  30292.  
  30293. ROLLBACK                DATASESSION SQLSESSION 
  30294.  
  30295. RUN                     IBMSQLSTATEMENT 
  30296.  
  30297. SAVE                    IBMCHART IBMDATA IBMREPORT IBMSQLSTATEMENT IBMTABLE 
  30298.                         MMFILE REFERENCE 
  30299.  
  30300. SAVETO                  FILE IBMAPPLICATN IBMREPORT OBJECTSTORE TABLE 
  30301.  
  30302. SEARCHFIELD             HLLAPI 
  30303.  
  30304. SEARCHPATH              SYSTEM 
  30305.  
  30306. SEARCHPS                HLLAPI 
  30307.  
  30308. SELANALYSIS             IBMCHART IBMREPORT 
  30309.  
  30310. SELAREA                 DROPENTRY SLE 
  30311.  
  30312. SELCOLS                 IBMREPORT 
  30313.  
  30314. SELDATA                 IBMCHART 
  30315.  
  30316. SELECT                  AS GRAPHIC 
  30317.  
  30318. SELECTTABLE             IBMCHART IBMREPORT 
  30319.  
  30320. SEND                    IBMCHART IBMREPORT IBMTABLE MAIL PRESSPACE SEND 
  30321.  
  30322. SENDFILE                HLLAPI 
  30323.  
  30324. SENDKEY                 HLLAPI 
  30325.  
  30326. SESSIONPARMS            HLLAPI 
  30327.  
  30328. SESSIONS                HLLAPI 
  30329.  
  30330. SETAXISTYPE             IBMCHART 
  30331.  
  30332. SETCALCS                IBMDATA 
  30333.  
  30334. SETCHECK                LIST 
  30335.  
  30336. SETCOLFORMAT            IBMREPORT 
  30337.  
  30338. SETCOLOR                LIST 
  30339.  
  30340. SETCOLPROP              IBMDATA IBMTABLE 
  30341.  
  30342. SETCOLTITLE             IBMREPORT 
  30343.  
  30344. SETCOLUMNS              AS IBMDATA IBMTABLE 
  30345.  
  30346. SETCOLWIDTH             IBMREPORT 
  30347.  
  30348. SETCUE                  MMFILE 
  30349.  
  30350. SETEXPR                 AS400TRANS DATATRANS SQLTRANS 
  30351.  
  30352. SETFIXEDCOLS            IBMTABLE 
  30353.  
  30354. SETGROUPBY              IBMDATA 
  30355.  
  30356. SETIMAGE                SOURCECTRL 
  30357.  
  30358. SETKEYS                 AS DATATRANS SQLTRANS TABLE 
  30359.  
  30360. SETOBJECTDATA           SYSTEM 
  30361.  
  30362. SETORDER                FOLDER WINDOW 
  30363.  
  30364. SETROWS                 IBMDATA IBMTABLE 
  30365.  
  30366. SETSELECTED             FOLDERVIEW 
  30367.  
  30368. SETSUMMARYCALCS         IBMDATA 
  30369.  
  30370. SETTINGS                PRINTER 
  30371.  
  30372. SETTITLE                IBMCHART 
  30373.  
  30374. SETTOPTITLE             IBMREPORT 
  30375.  
  30376. SETWIDTH                LIST 
  30377.  
  30378. SETXAXISLAB             IBMCHART 
  30379.  
  30380. SETYAXISLAB             IBMCHART 
  30381.  
  30382. SMISEND                 MAIL 
  30383.  
  30384. SNAPSHOT                AS400TRANS DATATRANS IBMDATA SQLTRANS 
  30385.  
  30386. SOURCE                  CLIPBOARD 
  30387.  
  30388. SPLIT                   IBMTABLE 
  30389.  
  30390. SQLTABLE                DATATRANS 
  30391.  
  30392. STATE                   TBAR 
  30393.  
  30394. STATUS                  CLIPBOARD HLLAPI 
  30395.  
  30396. STOP                    MMFILE 
  30397.  
  30398. STRINGRECT              GRAPHIC 
  30399.  
  30400. STRINGTOPS              HLLAPI 
  30401.  
  30402. STRTOFIELD              HLLAPI 
  30403.  
  30404. SURFACE                 VIEWCALCS VIEWROWS VIEWTABLES 
  30405.  
  30406. SYSTEM                  DDECLIENT DDESERVER HLLAPI 
  30407.  
  30408. TABLENAMES              SQLSESSION 
  30409.  
  30410. TARGET                  CLIPBOARD 
  30411.  
  30412. TRANSACTION             DATASESSION 
  30413.  
  30414. TYPEEXTS                TARGETCTRL 
  30415.  
  30416. TYPES                   SOURCECTRL TARGETCTRL 
  30417.  
  30418. UNADVISE                DDECLIENT 
  30419.  
  30420. UNCHECK                 LIST 
  30421.  
  30422. UNLOCK                  CLIPBOARD LIST 
  30423.  
  30424. UPDATE                  LIST 
  30425.  
  30426. USETMPSOURCE            IBMDATA 
  30427.  
  30428. VERIFYFORMAT            DDECLIENT LINK 
  30429.  
  30430.  
  30431. ΓòÉΓòÉΓòÉ 222.3. Events ΓòÉΓòÉΓòÉ
  30432.  
  30433. Event                   Objects 
  30434.  
  30435. ADVISE                  DDESERVER 
  30436.  
  30437. CONTRACT                FOLDERVIEW 
  30438.  
  30439. DATA                    DDECLIENT DROPENTRY ENTRY FOLDER FOLDERITEM LIST SLE 
  30440.  
  30441. DATASELECT              IBMTABLE 
  30442.  
  30443. DESKTOP                 CHECK DROPENTRY DROPLIST ENTRY FOLDERVIEW GRAPHIC GROUP 
  30444.                         LIST RADIO SCROLL SLE TEXT VALUE WINDOW 
  30445.  
  30446. DISCARD                 SOURCECTRL WINDOW 
  30447.  
  30448. DRAG                    DEFINE GRAPHIC 
  30449.  
  30450. ENTER                   WINDOW 
  30451.  
  30452. ERROR                   CLIPBOARD DDECLIENT DDESERVER LINK LINKSHOW SOURCECTRL 
  30453.  
  30454. ESCAPE                  FOLDERVIEW LIST WINDOW 
  30455.  
  30456. EXPAND                  FOLDERVIEW 
  30457.  
  30458. HELP                    HELP LIST 
  30459.  
  30460. INFORM                  HELP 
  30461.  
  30462. INITIATE                DDESERVER 
  30463.  
  30464. LISTDATA                LIST 
  30465.  
  30466. LISTSCROLL              LIST 
  30467.  
  30468. OPEN                    DEFINE FOLDER FOLDERITEM GRAPHIC LIST TEXT 
  30469.  
  30470. ORDER                   VIEWORDER 
  30471.  
  30472. PRINT                   SOURCECTRL SYSTEM WINDOW 
  30473.  
  30474. PROFILE                 PROFILE 
  30475.  
  30476. PROPERTIES              TBAR 
  30477.  
  30478. QUIT                    COPYTO DDECLIENT FOLDERVIEW IBMCHART IBMREPORT IBMTABLE 
  30479.                         LINK LINKSHOW MMFILE SEND WINDOW 
  30480.  
  30481. SCHEME                  WINDOW 
  30482.  
  30483. SCROLL                  SCROLL WINDOW 
  30484.  
  30485. SELECT                  CHECK DEFINE DROPLIST GRAPHIC LIST PUSH RADIO SLE TBAR 
  30486.                         TEXT VALUE WINDOW 
  30487.  
  30488. SIGNAL                  PRESSPACE 
  30489.  
  30490. SOURCE                  CLIPBOARD COPYTO DDECLIENT DDESERVER SEND SOURCECTRL 
  30491.  
  30492. TARGET                  CLIPBOARD DDECLIENT DDESERVER LINK TARGETCTRL 
  30493.  
  30494.  
  30495. ΓòÉΓòÉΓòÉ 223. Library and sample programs ΓòÉΓòÉΓòÉ
  30496.  
  30497. Included with Visualizer Development are a number of utility and sample 
  30498. programs that have been created using the product. 
  30499.  
  30500. Sample programs with source code 
  30501.  
  30502. Utility programs without source code 
  30503.  
  30504. User Library functions 
  30505.  
  30506.  
  30507. ΓòÉΓòÉΓòÉ 223.1. Sample programs with source code ΓòÉΓòÉΓòÉ
  30508.  
  30509. There are source code and window files for several sample applications. If you 
  30510. chose to install the samples, then the Development Samples folder contains a 
  30511. folder for samples in the installed language (called ENGLISH for the English 
  30512. version). Inspect these objects for more information on how to write code for 
  30513. menus, windows, and communication protocols. 
  30514.  
  30515. For a description of each sample, see its help. 
  30516.  
  30517.  
  30518. Syntax help
  30519. To examine the source code, use the Program editor. If you are not sure about 
  30520. the use of one the keywords, highlight the word and select Syntax help on the 
  30521. tool bar to display help for that keyword. (Some program keywords may not have 
  30522. a dedicated help entry however, and a general help message may be displayed.) 
  30523.  
  30524. Sample libraries of source code are provided in the FTB1DIR directory as 
  30525. FTDENUL1.LIB and in the Development Samples folder as OBJECTS.LIB and 
  30526. EXAMPLES.LIB. 
  30527.  
  30528. Use the Library menu in the Program editor to read and copy blocks. 
  30529.  
  30530.  
  30531. ΓòÉΓòÉΓòÉ 223.2. Utility programs without source code ΓòÉΓòÉΓòÉ
  30532.  
  30533. The utility programs listed below were also created using Visualizer 
  30534. Development.  The source code for them is not supplied, but they are useful 
  30535. demonstrations of the types of applications that can be created.  You may also 
  30536. find some of them useful in their own right.  However they are not actually 
  30537. part of the Visualizer Development product. 
  30538.  
  30539. Note:   No guarantee is made for the suitability of the sample programs and 
  30540.         applications and they are provided for educational use only. 
  30541.  
  30542. The applications range between simple and complex and give you some indications 
  30543. of how Visualizer Development can be used. Comprehensive online help is 
  30544. available. There is reference information (including syntax diagrams) for 
  30545. objects, attributes, functions, statements, and events. 
  30546.  
  30547. To obtain this help, you can: 
  30548.  
  30549. o Use Help Index on the Help menu 
  30550.  
  30551. o Use Syntax help on the Help menu of the Program editor 
  30552.  
  30553. o Use Contents or Search from within any Visualizer Development help 
  30554.  
  30555. o In the Program editor, position the typing cursor over any word in your own 
  30556.   code, and press the help key (F1). 
  30557.  
  30558. There is extensive hyperlinking throughout this help.  You may find it helpful 
  30559. to maximize the Help windows when you are using this facility for detailed 
  30560. information. 
  30561.  
  30562. Utility   Description 
  30563.  
  30564. Classer   This simple application applies the Visualizer Development class to 
  30565.           objects which have lost their class and cannot therefore be opened by 
  30566.           the system.  (The class will be lost if you edit an object with an 
  30567.           editor that does not support extended attributes.) 
  30568.  
  30569. Debugger  Use the debugger application to walk through your compiled ASL 
  30570.           applications. You can set break points in the ASL program that's 
  30571.           executing and query or modify any variables and objects in the 
  30572.           program. 
  30573.  
  30574.           From the menu bar, you can use: 
  30575.  
  30576.    Debug to perform all the debug step activities 
  30577.    Selected to set break points on lines, or add a variable to be watched 
  30578.    View to display the Data and Objects that are active in the current program 
  30579.    Help to display Help... 
  30580.  
  30581. Set DEBUGPATH in your config.sys to list the paths that will be searched for 
  30582. source code. The source code search order is as follows: 
  30583.  
  30584. Current location of the application to debug, 
  30585.  
  30586.    o <Module name>.PRG 
  30587.    o <Module name>.A80 
  30588.    o <Module name> 
  30589.  
  30590.           if this search is unsuccessful, then the paths in the DEBUGPATH 
  30591.           environment variable will be searched, 
  30592.  
  30593.    o <Module name>.PRG 
  30594.    o <Module name>.A80 
  30595.    o <Module name> 
  30596.  
  30597.           Use the on-line help provided with the application for more 
  30598.           information on how to debug applications. 
  30599.  
  30600. X_refer   This utility interrogates a program file and provides a list of the 
  30601.           variables contained within it and the program blocks which refer to 
  30602.           these variables.  There is also an indication of how many program 
  30603.           lines are comments and how many lines are executable. 
  30604.  
  30605. AppView   Visualizer Development puts all compiled output into application 
  30606.           files which cannot normally be read or changed without recompiling. 
  30607.           With this utility you can list the contents of an application or 
  30608.           objectstore and view any windows or string files they contain. 
  30609.  
  30610. StringEdit This is the most complex example provided. With this application you 
  30611.           can add string vectors to application files.  You can use these 
  30612.           vectors, for example, as look-up tables. 
  30613.  
  30614.           You can use ASL to create vectors for use as a look-up table at run 
  30615.           time.  With this application you can create such lists within the 
  30616.           application and store them statically rather create them dynamically. 
  30617.  
  30618.           The application creates and uses string files with an extension .STR. 
  30619.           Commenting is allowable in the source files, and the program 
  30620.           reference for each active line can be indicated.  The created string 
  30621.           vectors are then compiled into a new application while the source is 
  30622.           stored for future reference. 
  30623.  
  30624.           Since this application attempts to demonstrate a complete and 
  30625.           extensive application, it supports the clipboard, has online help, 
  30626.           and indicates how a file-handling application could be configured. 
  30627.  
  30628. Win_Doc   This application displays windows and allows you to look at the 
  30629.           attributes of controls on a window.  The attributes can also be 
  30630.           printed from the application. 
  30631.  
  30632.  
  30633. ΓòÉΓòÉΓòÉ 223.3. User Library functions ΓòÉΓòÉΓòÉ
  30634.  
  30635. This section contains a list of procedures which are available in the User 
  30636. Library.  The User Library is shipped with Visualizer, so you do not have to 
  30637. copy it to your destination systems. The User Library is supplied as the file 
  30638. USERLIB.A95. You can access the procedures in it by opening this file as an 
  30639. objectstore with a statement like: 
  30640.  
  30641.  
  30642. OPEN OBJECTSTORE MyLib,
  30643.   NAME     = "USERLIB.A95",
  30644.   LOCATION = S.Control.Path     ! Default path for the User library
  30645.  
  30646. then declaring the library procedures that you need, with a statement like: 
  30647.  
  30648.  
  30649. LIBRARY ASL "MyLib..AppDevl", FILE_PUT, THUMB
  30650. For example: 
  30651.  
  30652.  
  30653. LIBRARY ASL "MyLib..AppDevl",
  30654.  Files,          ! File selection dialog. Returns filename
  30655.  Thumb,          ! Re-Calculate Scroll Thumb size
  30656.  Help_Setup,     ! Load help files...
  30657.  File_Put,       ! Fast Load a file from disk into ASL array
  30658.  File_Get,       ! Fast Write a file to disk from and ASL array
  30659.  App_Help,       ! Filter standard Help menus selections.
  30660.  Print,          ! Std function to print Graphics, Windows or Text
  30661.  Trace           ! Program tracing/de-bugging
  30662.  
  30663. then calling the procedures as required, with statements like: 
  30664.  
  30665.  
  30666. CALL FILE_PUT(FileName, POINTER("VecName"))
  30667. ! The contents of VecName[0] are written to the
  30668. !  file named in the FileName variable.
  30669.  
  30670. Procedures available for use in your applications are listed below: 
  30671.  
  30672. APP_HELP 
  30673.           Filters help selections from a SELECT block. 
  30674.  
  30675.  
  30676.                     ON SELECT
  30677.                        IF APP_HELP() RETURN
  30678.                      = "t..win"
  30679.                     ON SELECT
  30680.                     DO
  30681.                       IF APP_HELP()
  30682.                         RETURN
  30683.                      ...
  30684.  
  30685. APP_ICON 
  30686.           Puts an application icon on a user application. 
  30687.  
  30688. AS_Send(File, Class, AppCode, ASName, Dialog) 
  30689.           Used to exchange Report and Chart specifications with Host AS. 
  30690.  
  30691.           Return codes from the function are: 
  30692.  
  30693.    0  Sent OK (though conversion may have failed) 
  30694.    1  Unknown error 
  30695.    2  AS object failed to open 
  30696.    3  Import canceled from password window 
  30697.    4  Host AS error receiving file 
  30698.  
  30699.  
  30700.                     RC = AS_Send(
  30701.                      "C:\DSS\MyRep",  ! Fully qualified name of
  30702.                                       ! file to be sent to Host AS
  30703.                      "REPORT"      ,  ! Class to be sent, REPORT or CHART
  30704.                      "DEV"         ,  ! The Host AS Application code
  30705.                                       !   to receive the file
  30706.                      "Repone"      ,  ! The Host AS file name
  30707.                      0             )  ! Dialogs or Messages to be shown?
  30708.                                       !   1=Yes, 0=No
  30709.                     IF RC > 0 ! Failed, take action to correct..
  30710.                     DO
  30711.                      ...
  30712.  
  30713. Dec2Hex(number) 
  30714.           Returns the formatted Hex character string of number. The returned 
  30715.           string is formatted as  "x0000 0000". 
  30716.  
  30717. EXPORTDATA(pStream, pTable) 
  30718.           Copies data from a table to a STREAM object in the format specified 
  30719.           by the FORMAT attribute of the STREAM object. 
  30720.  
  30721.           pStream is a pointer to a STREAM object, and pTable is a pointer to a 
  30722.           TABLE object. If pStream does not point to an SFILE or SMEMORY, or 
  30723.           pTable does not point to a TABLE, the call fails with error 7690. If 
  30724.           the FORMAT attribute of the STREAM is not set to a supported format, 
  30725.           or an error occurs during the export, the return code is nonzero. 
  30726.  
  30727.           The supported formats are: 
  30728.  
  30729.    "IXF"     Integrated exchange format 
  30730.    "PCIXF"   PC version of IXF supported by DB2 for OS/2 
  30731.    "DIF"     Data interchange format 
  30732.    "EDIF"    Extended DIF 
  30733.    "Flat"    ASCII file 
  30734.    "List"    A comma-separated value (CSV file) 
  30735.    "DBF"     dBASE III format 
  30736.    "Text"    Tab-separated text 
  30737.  
  30738.           For example, the following code opens a table named MYDATA in D:\DATA 
  30739.           and exports it to a new file named MYDATA.DIF in the same directory. 
  30740.  
  30741.  
  30742.                     OPEN TABLE TabHand,
  30743.                      NAME     = "MyData",
  30744.                      LOCATION = "D:\DATA"
  30745.  
  30746.                     OPEN SFILE stream,
  30747.                      NAME     = "MyData.DIF",
  30748.                      LOCATION = "D:\DATA",
  30749.                      MODE     = "WRITE",
  30750.                      FORMAT   = "DIF"
  30751.  
  30752.                     rc = EXPORTDATA(POINTER(stream[0]), POINTER(tabhand[0]))
  30753.  
  30754.           An SMEMORY object can be used to place a DIF file on the clipboard or 
  30755.           pass it to another program that is expecting a STREAM, without 
  30756.           putting the exported data on disk. 
  30757.  
  30758. FILE_GET (Filename, pVector) 
  30759.           Gets file from OS/2 and puts it in an ASL vector. 
  30760.  
  30761.  
  30762.                     CALL FILE_GET(filename, POINTER("vecname"))
  30763.            filename  is the fully qualified file name, and vecname  is the name 
  30764.           of the vector to be placed into or read from the file. 
  30765.  
  30766. FILE_PUT (Filename, pVector) 
  30767.           Puts ASL vector into an OS/2 file. 
  30768.  
  30769.  
  30770.                     CALL FILE_PUT(filename, POINTER("vecname"))
  30771.            filename  is the fully qualified file name, and vecname  is the name 
  30772.           of the vector to be placed into or read from the file. 
  30773.  
  30774. FILES(filename, location, class, window) 
  30775.           Allows selection from a list of OS/2 files. Returns the file name 
  30776.           selected by the end user. 
  30777.  
  30778.  
  30779.                     LET F_NAME = FILES ("myfile.fil", "D:\DSS","IBMTABLE","tables")
  30780.                        ! parameters are file name, location, class, and window name.
  30781.  
  30782. HELP_SETUP(helpfile,objectname) 
  30783.           Invokes Information Presentation Facility (IPF) against a help file 
  30784.           specified by the end user. 
  30785.  
  30786.  
  30787.                     ON START
  30788.                     DO
  30789.                       OPEN HELP help_h
  30790.                       ! help_h is handle for HELP object
  30791.                       CALL HELP_SETUP("myhelp.hlp","help_h")
  30792.                       ! myhelp.hlp is your compiled help file
  30793.  
  30794. IMPORTDATA(pTable, pStream) 
  30795.           Copies data from a STREAM object to a TABLE object in the format 
  30796.           specified by the FORMAT attribute of the STREAM object. 
  30797.  
  30798.            pTable  is a pointer to a TABLE object, and pStream  is a pointer to 
  30799.           a STREAM object. If pTable  does not point to a TABLE, or pStream 
  30800.           does not point to an SFILE or SMEMORY, the call fails with error 
  30801.           7690. If the FORMAT attribute of the STREAM is not set to a supported 
  30802.           format, or an error occurs during the import, the return code is 
  30803.           nonzero. 
  30804.  
  30805.           The supported formats are: 
  30806.  
  30807.    "IXF"     Integrated exchange format 
  30808.    "PCIXF"   PC version of IXF supported by DB2 for OS/2 
  30809.    "DIF"     Data interchange format 
  30810.    "Flat"    ASCII file 
  30811.    "List"    A comma-separated value (CSV file) 
  30812.    "DBF"     dBASE III format 
  30813.    "Text"    Tab-separated text 
  30814.  
  30815.           For example, the following code opens an empty table named MYDATA in 
  30816.           D:\DATA and imports data from the existing file named MYDATA.DIF in 
  30817.           the same directory. 
  30818.  
  30819.  
  30820.                     OPEN TABLE tabhand,
  30821.                      NAME="MyData",
  30822.                      LOCATION="D:\DATA",
  30823.                      MODE="WRITE"
  30824.                     OPEN SFILE stream,
  30825.                      NAME="MyData.DIF",
  30826.                      LOCATION="D:\DATA",
  30827.                      MODE="READ",
  30828.                      FORMAT="DIF"
  30829.                     rc = IMPORTDATA(POINTER(tabhand[0]), POINTER(stream[0]))
  30830.  
  30831. PARSE_LOC(location) 
  30832.           Resolves the current location. 
  30833.  
  30834.  
  30835.                     LET Location = PARSE_LOC(Lcn)
  30836.  
  30837. PRINT (handle,Description) 
  30838.           Prints Vectors, graphics and windows. 
  30839.  
  30840.  
  30841.                     LET description="myprint"
  30842.                     OPEN WINDOW win,,
  30843.                         TITLE = "My window",
  30844.                         SIZEX = 200,
  30845.                         SIZEY = 50
  30846.                     OPEN GRAPHIC fred, win,
  30847.                         X = 50,
  30848.                         Y = 50,
  30849.                         SIZEX = 100,
  30850.                         SIZEY = 100
  30851.                         DEFINE text[0]
  30852.                         INSERT Text[0] = "Mary"
  30853.                         INSERT Text[0] = "had "
  30854.                         INSERT Text[0] = "a   "
  30855.                         INSERT Text[0] = "little"
  30856.                         INSERT Text[0] = "lamb."
  30857.                     rc = PRINT (POINTER("Text"),Description)
  30858.                       ! or
  30859.                     rc = PRINT (POINTER("Win"),Description)
  30860.                       ! or
  30861.                     rc = PRINT (POINTER("fred"),Description)
  30862.  
  30863. PRINTREQUEST(PrinterName, Name, Dialog) 
  30864.           PRINTREQUEST will open a PRINTER object and set the objects 
  30865.           DESCRIPTION attribute to the selected printer (the default system 
  30866.           printer or one selected from a dialog). 
  30867.  
  30868.           PrinterName , if specified, should match one of the Workplace Shell 
  30869.           defined printers. If PrinterName  is specified as "*", the Workplace 
  30870.           Shell default printer is assumed. If PrinterName  is not specified or 
  30871.           there is no default printer, a list of printers is presented to the 
  30872.           user (subject to the setting of  Dialog ). 
  30873.  
  30874.           Dialog  controls the presentation of dialogs. The default is 1, but 
  30875.           the parameter can be set to 0 to suppress the presentation of 
  30876.           dialogs.  If the dialog is suppressed, the default printer specified 
  30877.           in Print Manager is used. 
  30878.  
  30879.           If specified, Name  should match the instance name of the calling 
  30880.           application. It is used to construct the title of the printer 
  30881.           selection dialog. It may be a character string of up to 255 bytes. If 
  30882.           not specified, the default title of Printer selection will be used. 
  30883.  
  30884.           After the PRINTREQUEST action has been issued (and any dialogs 
  30885.           closed), an ON PRINT event is generated. The ON PRINT event is passed 
  30886.           the handle to the open PRINTER object. 
  30887.  
  30888. Proc_Var() 
  30889.           The Proc_Var() function provides access to variables located in 
  30890.           another (nested) procedure.  For example if a user uses a dialog 
  30891.           object within one graphical procedure to assign a user variable, the 
  30892.           contents of that variable can be made available to other called 
  30893.           graphical procedures. 
  30894.  
  30895.           To use the function, link to the user library and include Proc_Var as 
  30896.           a required function (as shown in the OPEN OBJECTSTORE statement 
  30897.           above). The single parameter for the function is the name of the 
  30898.           required procedure variable: 
  30899.  
  30900.  
  30901.                     Name =Proc_Var("@Name")
  30902.  
  30903.           Name  is a procedure variable that the used has entered via a typed 
  30904.           response dialog. 
  30905.  
  30906. SAVEAS(filename,location) 
  30907.           Provides a save as dialog 
  30908.  
  30909.  
  30910.                     CALL SAVEAS(Filename,FileLocation)
  30911.  
  30912. SCROLL(n,entries,clones,topline) 
  30913.           Reacts to a scroll request. 
  30914.  
  30915.  
  30916.                     LET topline= SCROLL(1,entries,clones,topline)
  30917.  
  30918. SEND (FileName) 
  30919.           Used to send a file to another user with a mail system installed. 
  30920.  
  30921.  
  30922.                     rc = SEND (FileName)
  30923.  
  30924. TRACE() 
  30925.           The TRACE() function provides access to a trace log, the trace log is 
  30926.           filled by the application when the TRACE ON statement is executed. 
  30927.           The TRACE OFF statement stops the filling of the trace log.  Leaving 
  30928.           a block or procedure executes an automatic TRACE OFF.  If you want 
  30929.           the trace to continue in the next executed block, the next block must 
  30930.           contain another TRACE ON. 
  30931.  
  30932.           TRACE() will only work with programs compiled using the Program 
  30933.           editor. TRACE() can be called at any time during program execution to 
  30934.           display. the trace log. 
  30935.  
  30936.           To use the function, link to the user library and include TRACE as a 
  30937.           required function (as shown in the OPEN OBJECTSTORE statement above). 
  30938.           Include the TRACE ON and TRACE OFF statements at the desired points 
  30939.           for each block in your program.  The CALL to TRACE() need only occur 
  30940.           once, for example in the ON START block. 
  30941.  
  30942.           Compile and run your program.  When the application reaches the 
  30943.           TRACE() function, it displays a window containing the trace log. The 
  30944.           trace log updates dynamically and is additive. The CLEAR button in 
  30945.           the trace window reinitializes the trace log. 
  30946.  
  30947.           The trace remains available only while the Program editor which 
  30948.           compiled the program is still active.  (It is not enough to re-open 
  30949.           Program editor on the source code while you run a previously compiled 
  30950.           version. Even if there are no changes to the source, you must compile 
  30951.           the source from the Program editor for TRACE() to work.)  If you 
  30952.           close the editor, the provided trace will be of line numbers only. 
  30953.  
  30954.           Ensure that all TRACE statements and calls to the TRACE() function 
  30955.           are removed before finalizing your code. 
  30956.  
  30957. THUMB(entries,topline,clones) 
  30958.           Positions thumb on a scroll bar. 
  30959.  
  30960.  
  30961.                     LET T..mainwin'VSCRLBARPOSN=THUMB(entries, top_line, clones)
  30962.                        ! entries is the total number of entries in the list,
  30963.                        ! top_line is the starting line for the displayed list,
  30964.                        ! clones is the number of displayed clones
  30965.  
  30966. THUMBSIZE(entries, clones) 
  30967.           Controls size of thumb on a scroll bar. 
  30968.  
  30969.  
  30970.                     LET T..Mainwin'VTHUMBSIZE = THUMBSIZE(entries,clones)
  30971.  
  30972. VALID_NAME(filename,location) 
  30973.           Checks whether a file name and location are valid. 
  30974.  
  30975.  
  30976.                     LET Check = VALID_NAME(FileName, FileLoc)
  30977.  
  30978. ViewScreen(session) 
  30979.           Use ViewScreen to surface a host Communications Manager screen from 
  30980.           your ASL application.  The session  parameter is the communications 
  30981.           manager Short Session ID. 
  30982.  
  30983.  
  30984.                     rc = ViewScreen("A")! maximize the host A session
  30985.           The function returns the HLLAPI return code from the action (zero if 
  30986.           successful). 
  30987.  
  30988.  
  30989. ΓòÉΓòÉΓòÉ 224. Using the C programming language ΓòÉΓòÉΓòÉ
  30990.  
  30991. Programs written in the C language can be invoked as functions from within ASL 
  30992. applications. 
  30993.  
  30994. C programs invoked like this can: 
  30995.  
  30996. o Receive parameters and return a value 
  30997. o Access objectstores (subject to the same constraints as the invoking ASL 
  30998.   program) 
  30999. o Perform some of the special operations ASL programs can perform. 
  31000.  
  31001. C code can only be used if it is packaged as a Dynamic Link Library (DLL). The 
  31002. code can be 16-bit code compiled using the Large Model convention for calling 
  31003. the entry points, (all pointers must be far) or it can be 32-bit code. 
  31004.  
  31005. An ASL program can then incorporate a LIBRARY DLL statement to identify the C 
  31006. code entry points. The LIBRARY statement in ASL is described more fully in . 
  31007.  
  31008. C code entry points are called, by the CALL statement or as a function, in the 
  31009. same way as any other ASL entry point- CALL entry or entry(). The DLL is loaded 
  31010. on the first call to any of its entry points. It remains attached to the 
  31011. calling task until that task terminates. 
  31012.  
  31013. This diagram shows the relationships of the various components of ASL 
  31014. applications that include parts written in C. It shows a C function invoked by 
  31015. C(): 
  31016.  
  31017.  ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ      ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  31018.  Γöé         Γöé   all   Γöé       Γöé  C()   Γöé       Γöé
  31019.  Γöé  ASL program  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ>Γöé ASL     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ>Γöé  C program  Γöé
  31020.  Γöé  for the main  Γöé statements Γöé interpreter Γöé      Γöé  in a DLL  Γöé
  31021.  Γöé  dialog     Γöé       Γöé       Γöé<ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ       Γöé
  31022.  Γöé         Γöé       Γöé       Γöé  return  Γöé       Γöé
  31023.  Γöé         Γöé       ΓööΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ      ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  31024.  Γöé         Γöé         Γöé OdeDsGetHandleofVariable Γöé
  31025.  Γöé         Γöé         Γöé              Γöé
  31026.  Γöé         Γöé       ΓöîΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ      ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  31027.  Γöé         Γöé       Γöé       Γöé      Γöé       Γöé
  31028.  Γöé         Γöé       Γöé ASL     Γöé<ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ>Γöé  C      Γöé
  31029.  Γöé         Γöé       Γöéobjectstore  Γöé      Γöéfunction   Γöé
  31030.  Γöé         Γöé       Γöé manager   Γöé      Γöé  library   Γöé
  31031.  Γöé         Γöé       Γöé       Γöé      Γöé       Γöé
  31032.  ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ      ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  31033.  
  31034. The ASL interface to C 
  31035.  
  31036. The C interface to ASL 
  31037.  
  31038.  
  31039. ΓòÉΓòÉΓòÉ 224.1. The ASL interface to C ΓòÉΓòÉΓòÉ
  31040.  
  31041. Arguments passed internally to the function are described by a provided term, 
  31042. ODEDSARGS. This is a composite structure showing: 
  31043.  
  31044. o Where the returned value should be placed 
  31045. o How many arguments were given in the C function call 
  31046. o The value of each argument. 
  31047.  
  31048. It is described more fully in . 
  31049.  
  31050. The value returned by a function is a scalar of type ODEDSRC. It can be nonzero 
  31051. to signal an error, invoking the ASL program's ON ERROR block. 
  31052.  
  31053. Note:   The stack size available to a C program called from ASL is 16KB. 
  31054.  
  31055.  
  31056. ΓòÉΓòÉΓòÉ 224.2. The C interface to ASL ΓòÉΓòÉΓòÉ
  31057.  
  31058. C functions called from ASL programs can make use of ASL data and facilities by 
  31059. calling functions in a DLL which is provided. This DLL is ODECAPI.DLL. Its 
  31060. entry points and associated data structures are defined in the header file 
  31061. ODECAPI.H supplied with Visualizer Development. 
  31062.  
  31063.  ODECAPI.H  supports compilation by 16-bit C compilers or by the 32-bit IBM C 
  31064. SET/2 compiler. 
  31065.  
  31066. Accessing objectstore variables 
  31067.  
  31068. Data types in Value Control Blocks 
  31069.  
  31070. Passing arguments to C functions 
  31071.  
  31072. Return codes and error handling 
  31073.  
  31074. Functions for accessing objectstores 
  31075.  
  31076.  
  31077. ΓòÉΓòÉΓòÉ 224.2.1. Accessing objectstore variables ΓòÉΓòÉΓòÉ
  31078.  
  31079. Some of the functions require data values to be retrieved from or placed into 
  31080. objectstore variables. As the data type of such values cannot be assumed, this 
  31081. information must be included with the value itself. ODECAPI.H therefore 
  31082. includes a definition of a structure, ODEDSVCB (Value Control Block), for this 
  31083. purpose: 
  31084.  
  31085.  
  31086. typedef struct _ODEDSVCB    /* vcb Value Control Block  */
  31087.                             /* used for passing data    */
  31088.                             /* across the interface     */
  31089. {
  31090.   ODEDSTYPE      dstType;   /* Data type                */
  31091.   UCHAR          uchSpare;
  31092.   USHORT         usMaxLen;  /* String area max. length  */
  31093.   PDSBUF         plstString; /* Pointer to string area  */
  31094.   ODEDSELEMENT   edsVar;    /* Element Number           */
  31095.   union
  31096.   {
  31097.     DSVCBD        vcbdDate; /* Date                     */
  31098.     double        dFloat;   /* Floating long real       */
  31099.     ODEDSHANDLE   dshVar;   /* Handle Decision-Support  */
  31100.                             /* Component pointer        */
  31101.     SHORT         sInteger; /* Signed integer           */
  31102.     USHORT        usCurLen; /* Current string length    */
  31103.     LONG          lInteger; /* Signed 32-bit integer    */
  31104.     DSVCBT        vcbtTime; /* Time                     */
  31105.     USHORT        usInteger; /* Unsigned 16-bit         */
  31106.   } data;
  31107. } ODEDSVCB;
  31108.  
  31109. When the type ODEDSVCB is used in the declaration of variables, the C compiler 
  31110. must generate a packed structure (with no slack bytes for word alignment). 
  31111.  
  31112. Examples of how to use a Value Control Block are given with some of the 
  31113. functions described in . 
  31114.  
  31115.  
  31116. ΓòÉΓòÉΓòÉ 224.2.2. Data types in Value Control Blocks ΓòÉΓòÉΓòÉ
  31117.  
  31118. The first element of the structure defines the type of data the structure 
  31119. contains, and dictates the way the rest of the structure should be defined. The 
  31120. values it can take and the way the rest of the structure is used are as 
  31121. follows: 
  31122.  
  31123. NULL (ODE_DS_TYPE_NULL) 
  31124.           A null is being passed. The rest of the structure is ignored. 
  31125.  
  31126. Date (ODE_DS_TYPE_D) 
  31127.           The date type means the  data.vcbdDate  component should be valid. 
  31128.           This is a structure itself: 
  31129.  
  31130.  
  31131.                     typedef struct _DSVCBD   /* vcbd specifies a date */
  31132.                     {
  31133.                       USHORT    usYear;
  31134.                       UCHAR     uchMonth;
  31135.                       UCHAR     uchDay;
  31136.                       UCHAR     uchPeriod;
  31137.                     } DSVCBD;
  31138.  
  31139.           Each component is the numeric representation of that part of a date, 
  31140.           For example, the fourteenth of March 1990 would be represented by 
  31141.           usYear = 1990, uchMonth = 3, and  uchDay = 14. 
  31142.  
  31143. Float (ODE_DS_TYPE_F) 
  31144.           This is a double float value, in the component data.dFloat. 
  31145.  
  31146. ODE_DS_TYPE_H 
  31147.           A handle and element are being passed, to reference either an object 
  31148.           or a variable. The ASL POINTER() function generates values of this 
  31149.           type for a variable. An object identifier is also of this type. 
  31150.           Unlike the other types of data this can only be used for transferring 
  31151.           references to the C code. The components of the structure that are 
  31152.           instantiated are edsVar  and data.dshVar  the element and handle. The 
  31153.           element component is only of interest if the pointer is a reference 
  31154.           to an object instance. 
  31155.  
  31156. Signed Short Integer (ODE_DS_TYPE_I) 
  31157.           The data is treated as a signed short integer. The valid component of 
  31158.           the structure is data.sInteger. 
  31159.  
  31160. Signed Long Integer (ODE_DS_TYPE_L) 
  31161.           The data is treated as a signed long integer. The valid component of 
  31162.           the structure is data.lInteger. 
  31163.  
  31164. String (ODE_DS_TYPE_S) 
  31165.           This is a string. The length of the string is held in the component 
  31166.           data.usCurLen. The string pointer is plstString  and does not have to 
  31167.           be null terminated. 
  31168.  
  31169. Time (DE_DS_TYPE_T) 
  31170.           The time type is a structure itself: 
  31171.  
  31172.  
  31173.                     typedef struct _DSVCBT /* vcbt specifies a time */
  31174.                     {
  31175.                       UCHAR     uchHour;
  31176.                       UCHAR     uchMinute;
  31177.                       UCHAR     uchSecond;
  31178.                       UCHAR     uchCentisec;
  31179.                     } DSVCBT;
  31180.  
  31181.           As with the date structure each component is numeric. 
  31182.  
  31183. Unsigned short Integer (ODE_DS_TYPE_U) 
  31184.           The data in this case is in data.usInteger. 
  31185.  
  31186. Null Terminated String (ODE_DS_TYPE_V) 
  31187.           This type indicates the data is a null terminated string, thus the 
  31188.           plstString component is the only other valid component and must 
  31189.           contain a null terminated string. 
  31190.  
  31191. DBCS String (ODE_DS_TYPE_G) 
  31192.           Exactly similar to the type ODE_DS_TYPE_S except that the string in 
  31193.           question should contain DBCS characters 
  31194.  
  31195. Note:   The interface may change some data values. There may be truncation in 
  31196.         either direction, or a number given as ODE_DS_TYPE_U might be given 
  31197.         back as ODE_DS_TYPE_F (if ODE_DS_TYPE_U is not explicitly asked for). 
  31198.  
  31199.  
  31200. ΓòÉΓòÉΓòÉ 224.2.3. Passing arguments to C functions ΓòÉΓòÉΓòÉ
  31201.  
  31202. ODEDSARGS defines the composite argument that is passed by ASL to a C function: 
  31203.  
  31204.  
  31205. typedef struct
  31206.   {
  31207.     USHORT cArguments;          /* Number of arguments      */
  31208.     USHORT usSpare;             /* for alignment            */
  31209.     PODEDSVCB pvcbRetValue; /* Ptr to vcb for returned value */
  31210.     PODEDSVCB apvcbArguments[ODE_DS_MAX_ARGS];
  31211.            /* List of pointers to VCBs passed as parameters */
  31212.   } ODEDSARGS;
  31213.  
  31214. The values passed as parameters are not returned when the function ends. On 
  31215. return, if the entry point was called as a function, the data in  pvcbRetValue 
  31216. is its returned value. The cArguments  component contains the actual number of 
  31217. parameters in the array. The array size (and thus the maximum number of 
  31218. arguments) is defined in the header file, ODECAPI.H. The structure used for the 
  31219. returning value and passing parameters is described in . 
  31220.  
  31221. Numeric parameters may be passed in any of the numeric formats. 
  31222. OdeDSConvertVCB  may be used to convert to a specific numeric format. 
  31223.  
  31224.  
  31225. ΓòÉΓòÉΓòÉ 224.2.4. Return codes and error handling ΓòÉΓòÉΓòÉ
  31226.  
  31227. ODECAPI.H defines a data type ODEDSRC for return codes. This data type allows 
  31228. any nonnegative integer value. All of the DSS functions return a ODEDSRC value. 
  31229. Zero means successful execution. Anything else causes an ASL error to be raised 
  31230. with the ODEDSRC  value available in the  A.System.ErrorInfo  vector. 
  31231.  
  31232.  
  31233. ΓòÉΓòÉΓòÉ 224.2.5. Functions for accessing objectstores ΓòÉΓòÉΓòÉ
  31234.  
  31235. This section lists the C functions available for accessing ASL objectstores. 
  31236.  
  31237. For each function, a description and an example are given. In the examples: 
  31238.  
  31239. o The declaration: 
  31240.  
  31241.  
  31242.     ODEDSRC retc;
  31243.  
  31244.   has previously been given. 
  31245.  
  31246. o For 16-bit code, the Large model of C is assumed. Even so, the C far 
  31247.   attribute is used in all the function definitions and pointer declarations in 
  31248.   the header files to avoid dependence on any particular model. 
  31249.  
  31250. o A  +  in the first position of a comment indicates a parameter that is for 
  31251.   receiving a returned value. 
  31252.  
  31253. o The OdeDsGetHandleOfVariable function is often shown for completeness and 
  31254.   clarity. In practice,while handles may be passed as parameters, 
  31255.   OdeDsGetHandleOfVariable is more likely to be used during initialization. 
  31256.  
  31257. The following entry points are provided for the C code to utilize. A variety of 
  31258. actions can be performed, which essentially mirror the functionality of 
  31259. equivalent ASL statements. These entry points are defined along with any types 
  31260. required in the header ODECAPI.H. All the functions return with zero if they 
  31261. are successful. There are failure codes detailed in ODECAPI.H and one of these 
  31262. is returned when an error is detected. 
  31263.  
  31264. OdeDsGetHandleOfVariable 
  31265.           This function obtains the reference to a variable in the Visualizer 
  31266.           environment. It can, if required, create the variable. 
  31267.  
  31268. OdeDsDeleteContentsOfVariable 
  31269.           deletes the contents of a Visualizer variable. 
  31270.  
  31271. OdeDsDefineSizeOfVariable 
  31272.           defines or redefines the size of a Visualizer variable. 
  31273.  
  31274. OdeDsDeleteValue 
  31275.           deletes a specific value from a Visualizer variable. 
  31276.  
  31277. OdeDsDeleteVariable 
  31278.           deletes a Visualizer variable. 
  31279.  
  31280. OdeDsQuerySizeOfVariable 
  31281.           returns the number of instantiated elements in the variable. 
  31282.  
  31283. OdeDsGetKey 
  31284.           returns the row number in a table where the data values given match 
  31285.           the column values in the table, OR creates a new row with them. 
  31286.  
  31287. OdeDsQueryValue 
  31288.           returns the value in the specified handle, element pair. 
  31289.  
  31290. OdeDsQueryIndex 
  31291.           generate and return an index on a table using the alternate key 
  31292.           specified. 
  31293.  
  31294. OdeDsInsertValue 
  31295.           Inserts value given at the element specified in the variable denoted 
  31296.           by the handle. 
  31297.  
  31298. OdeDsDisplayMessage 
  31299.           Displays a message on the string, the text of which is contained in 
  31300.           the message file. 
  31301.  
  31302. OdeDsQueryVariableNames 
  31303.           Returns the list of names of the variables contained in the specified 
  31304.           group. 
  31305.  
  31306. OdeDsPutValue 
  31307.           inserts or replaces a value at the handle element specified. 
  31308.  
  31309. OdeDsPutTraceMessage 
  31310.           Writes the message given into the trace file. 
  31311.  
  31312. OdeDSGetAndSetBreak 
  31313.           Gets and, if required, sets the control break status. 
  31314.  
  31315. OdeDsCallAction 
  31316.           This entry point allows access to the actions upon an object 
  31317.           instance. 
  31318.  
  31319. OdeDsQueryAttr 
  31320.           This returns the value of a specified attribute of a specified 
  31321.           object. 
  31322.  
  31323. OdeDsModifyAttr 
  31324.           This modifies the value of the specified object attribute to be the 
  31325.           value specified. 
  31326.  
  31327.           OdeDsConvertVCB
  31328.           This converts the contents of a VCB to a specific data format. 
  31329.  
  31330.           OdeDsQueryCaseMapTable
  31331.           This function provides the case mapping table used to transform a 
  31332.           character to its upper-case equivalent. 
  31333.  
  31334.           OdeDsQueryCollatTable
  31335.           This function provides the collating sequence table used to transform 
  31336.           a character to its position in the sorting or collating sequence. 
  31337.  
  31338. OdeDsGetHandleOfVariable 
  31339.  
  31340. OdeDsDefineSizeOfVariable 
  31341.  
  31342. OdeDSDeleteContentsOfVariable 
  31343.  
  31344. OdeDSDeleteValue 
  31345.  
  31346. OdeDSDeleteVariable 
  31347.  
  31348. OdeDSQuerySizeOfVariable 
  31349.  
  31350. OdeDSDisplayMessage 
  31351.  
  31352. OdeDSGetKey 
  31353.  
  31354. OdeDSQueryValue 
  31355.  
  31356. OdeDSInsertValue 
  31357.  
  31358. OdeDSQueryIndex 
  31359.  
  31360. OdeDSQueryVariableNames 
  31361.  
  31362. OdeDSPutValue 
  31363.  
  31364. OdeDSPutTraceMessage 
  31365.  
  31366. OdeDSGetAndSetBreak 
  31367.  
  31368. OdeDSCallAction 
  31369.  
  31370. OdeDSQueryAttr 
  31371.  
  31372. OdeDsModifyAttr 
  31373.  
  31374. OdeDSConvertVCB 
  31375.  
  31376. OdeDSQueryCaseMapTable 
  31377.  
  31378. OdeDSQueryCollatTable 
  31379.  
  31380.  
  31381. ΓòÉΓòÉΓòÉ 224.2.5.1. OdeDsGetHandleOfVariable ΓòÉΓòÉΓòÉ
  31382.  
  31383. This function provides a reference to a Visualizer variable, the variable can 
  31384. be created or already exist. The reference will be required for use in other 
  31385. entry points in the interface. The reference is known as a handle and is valid 
  31386. only during the current session. The function definition is: 
  31387.  
  31388.  
  31389. ODEDSRC ODEENTRY OdeDsGetHandleOfVariable (
  31390.        PODEDSHANDLE  phdsVar,
  31391.        PCHAR         pszVarName,
  31392.        USHORT        usoption,
  31393.        PBOOL         pfNewVar);
  31394.  
  31395. The first parameter phdsVar is a pointer to the returning handle, (the type 
  31396. ODEDSHANDLE is defined in ODECAPI.H). The pszVarName is the name of the 
  31397. variable (ASCIIZ string). The third parameter allows the user to define if the 
  31398. variable is to be created or not, the values are defined as ODE_DS_CREATEIT and 
  31399. ODE_DS_DONT. The option to create a variable creates the variable only if it 
  31400. does not exist already. The final parameter is a flag. It is only valid when 
  31401. the ODE_DS_CREATEIT option is used, and it is set to TRUE if and only if, the 
  31402. variable is created. A newly created variable has an indeterminate type and 
  31403. shape. It can be explicitly shaped (using OdeDsDefineSizeOfVariable). Otherwise 
  31404. it becomes a scalar on its first use. 
  31405.  
  31406. In this example the user expects the variable to be created if it does not 
  31407. already exist. 
  31408.  
  31409.  
  31410. ODEDSHANDLE countref;
  31411. BOOL        created;
  31412. ODEDSRC     returncode;
  31413.  returncode = OdeDsGetHandleOfVariable
  31414.                (&countref,         /* Note must compile  */
  31415.                 "Count",           /* Large for address  */
  31416.                 ODE_DS_CREATIT,
  31417.                 &created);
  31418.  if (created)
  31419.  ...
  31420.  
  31421.  
  31422. ΓòÉΓòÉΓòÉ 224.2.5.2. OdeDsDefineSizeOfVariable ΓòÉΓòÉΓòÉ
  31423.  
  31424. This function allows the dimension of a variable to be defined or redefined, 
  31425. thus a single dimension array can be extended for example. The function does 
  31426. not work for all variables. If the reference is to a column of a table or a 
  31427. scalar with a valid integer value then one cannot change its dimension, it 
  31428. allows the redefinition only of single dimension arrays. The definition of the 
  31429. function is: 
  31430.  
  31431.  
  31432. ODEDSRC ODEENTRY OdeDsDefineSizeOfVariable (
  31433.        ODEDSHANDLE  hdsVar,
  31434.        ODEDSELEMENT edsVar,
  31435.        PODEDSVCB    pvcbInitVal);
  31436.  
  31437. The nearest ASL equivalent is the DEFINE statement, the equivalent of 
  31438.  
  31439.  
  31440. DEFINE newvar[10]
  31441.  
  31442. would be: 
  31443.  
  31444.  
  31445. ODEDSVCB    myvcb;          /* Vcb for initial value    */
  31446.   ODEDSHANDLE thatone;      /* Handle for the array     */
  31447.   ODEDSRC     retc;
  31448.   BOOL        created
  31449.   myvcb.type = DSS_TYPE_U;         /* Set integer type  */
  31450.   myvcb.data.u = 0;                /* Set value to zero */
  31451.   retc = OdeDsGetHandleOfVariable  /* Get Handle        */
  31452.             (&thatone,
  31453.              "NewArray",
  31454.              ODE_DS_CREATIT,
  31455.              &created
  31456.              );
  31457.   if (!retc && created)
  31458.     {
  31459.      retc =  OdeDsDefineSizeOfVariable
  31460.                 ( thatone,     /* define var to have 10 */
  31461.                   10,          /* elements              */
  31462.                   &myvcb );
  31463.  ...
  31464.  
  31465.  
  31466. ΓòÉΓòÉΓòÉ 224.2.5.3. OdeDSDeleteContentsOfVariable ΓòÉΓòÉΓòÉ
  31467.  
  31468. This function is used to remove all elements from a Visualizer variable. The 
  31469. function does not delete the variable itself.  The function just takes the 
  31470. handle of the variable. 
  31471.  
  31472.  
  31473. ODEDSRC ODEENTRY OdeDSDeleteContentsOfVariable (
  31474.        ODEDSHANDLE hdsVar);
  31475.                           /* handle of variable/vector */
  31476.  
  31477. If used successfully against an array then the array will have zero elements. 
  31478. The function is equivalent to the ASL CLEAR statement. 
  31479.  
  31480.  
  31481. ΓòÉΓòÉΓòÉ 224.2.5.4. OdeDSDeleteValue ΓòÉΓòÉΓòÉ
  31482.  
  31483. This function is used to delete an element, identified by its element number, 
  31484. from a Visualizer variable. 
  31485.  
  31486.  
  31487. ODEDSRC ODEENTRY OdeDSDeleteValue (
  31488.        ODEDSHANDLE  hdsVar,
  31489.        ODEDSELEMENT edsVar);
  31490.  
  31491. Example: 
  31492.  
  31493.  
  31494. ODEDSHANDLE somevar;          /* Handle of a variable  */
  31495.   ODEDSRC     retc;
  31496.  ...
  31497.                            /* Have to obtain ref to    */
  31498.                            /* var, most likely by use  */
  31499.                            /* of                       */
  31500.                            /* OdeDsGetHandleOfVariable */
  31501.   retc = OdeDSDeleteValue ( somevar, 5);
  31502.                  /* removes the 5 value from the array */
  31503.  
  31504. Note upon successful return the array contains one fewer elements. The above 
  31505. example is equivalent to the ASL DELETE statement. 
  31506.  
  31507.  
  31508. ΓòÉΓòÉΓòÉ 224.2.5.5. OdeDSDeleteVariable ΓòÉΓòÉΓòÉ
  31509.  
  31510. This function is used to delete a Visualizer variable. 
  31511.  
  31512.  
  31513. ODEDSRC ODEENTRY OdeDSDeleteVariable (
  31514.        ODEDSHANDLE hdsVar);
  31515.  
  31516. Example: 
  31517.  
  31518.  
  31519. ODEDSHANDLE somevar;       /* Handle of a variable     */
  31520.   ODEDSRC     retc;
  31521.  ...
  31522.                            /* Have to obtain ref to    */
  31523.                            /* var, most likely by use  */
  31524.                            /* of                       */
  31525.                            /* OdeDsGetHandleOfVariable */
  31526.   retc = OdeDSDeleteVariable( somevar );
  31527.  
  31528. This call destroys the variable being referenced. This leaves the handle 
  31529. referencing the variable, but it is marked not valid and is not be usable 
  31530. unless it is created again. 
  31531.  
  31532. The above example is equivalent to the ASL DELETE statement. 
  31533.  
  31534.  
  31535. ΓòÉΓòÉΓòÉ 224.2.5.6. OdeDSQuerySizeOfVariable ΓòÉΓòÉΓòÉ
  31536.  
  31537. This function returns the number of elements in an array (or one for a scalar). 
  31538. If the variable is not valid then the number of entries is not valid. 
  31539.  
  31540. The function for this is: 
  31541.  
  31542.  
  31543. ODEDSRC ODEENTRY OdeDSQuerySizeOfVariable (
  31544.        ODEDSHANDLE   hdsVar,
  31545.                           /* Handle of variable/vector */
  31546.        PODEDSELEMENT pedsElems);
  31547.              /* return number of elements in var/vector*/
  31548.  
  31549. For example if the number of entries in an array is unknown then: 
  31550.  
  31551.  
  31552. ODEDSHANDLE  somevar;      /* Handle of a variable     */
  31553.   ODEDSRC      retc;
  31554.   ODEDSELEMENT noofentries;
  31555.  ...
  31556.                            /* Have to obtain ref to    */
  31557.                            /* var, most likely by use  */
  31558.                            /* of                       */
  31559.                            /* OdeDsGetHandleOfVariable */
  31560.   retc = OdeDSQuerySizeOfVariable
  31561.             ( somevar,
  31562.               &noofentries);
  31563.  
  31564. This function is equivalent to the ASL statement ENTRIES. 
  31565.  
  31566.  
  31567. ΓòÉΓòÉΓòÉ 224.2.5.7. OdeDSDisplayMessage ΓòÉΓòÉΓòÉ
  31568.  
  31569. This function displays a message on the screen. 
  31570.  
  31571.  
  31572. ODEDSRC ODEENTRY OdeDSDisplayMessage (
  31573.        USHORT usMessageNo,
  31574.                       /* Number of message */
  31575.        USHORT usHelpPanelId,
  31576.              /* Id of Help Panel, 0 if None            */
  31577.        PCHAR  pszMessage,
  31578.              /* String to be inserted in message       */
  31579.              /* (if any)                               */
  31580.        PCHAR  puchButton);
  31581.              /* value of button pressed                */
  31582.              /* '1' = OK,    '2' = CANCEL, '3' = ABORT,*/
  31583.              /* '4' = RETRY, '5' = IGNORE, '6' == YES,  */
  31584.              /* '7' = NO,    '8' = ENTER               */
  31585.  
  31586. The first parameter is the number of a message. The second is the number of the 
  31587. help panel to be associated with the message (zero if none). The third is a 
  31588. string to be used as an insert (if there is one in the message) otherwise NULL. 
  31589. The final parameter is the address of a character to allow the button that was 
  31590. pushed by the user to be returned. The characters correspond to the value of 
  31591. button pressed: 
  31592.  
  31593. '1' OK 
  31594. '2' CANCEL 
  31595. '3' ABORT 
  31596. '4' RETRY 
  31597. '5' IGNORE 
  31598. '6' YES 
  31599. '7' NO 
  31600. '8' ENTER 
  31601.  
  31602. Example: 
  31603.  
  31604.  
  31605. ODEDSRC retc;
  31606.   CHAR    button;
  31607.  
  31608.  
  31609.   retc = OdeDSDisplayMessage
  31610.             (0,
  31611.              0,
  31612.             "Starting execution now...",
  31613.             &button);
  31614.  
  31615. This function is equivalent to the ASL DIALOG statement. 
  31616.  
  31617.  
  31618. ΓòÉΓòÉΓòÉ 224.2.5.8. OdeDSGetKey ΓòÉΓòÉΓòÉ
  31619.  
  31620. This function looks up a given key value in a given table and, if the given key 
  31621. is found, provides the corresponding element number. Otherwise depending on the 
  31622. option may generate the row with those values. 
  31623.  
  31624.  
  31625. ODEDSRC ODEENTRY OdeDSGetKey (
  31626.        ODEDSHANDLE   hdsVar,
  31627.              /* handle of a column in table            */
  31628.        USHORT        usOption,
  31629.              /* Option CREATEIT or DONT (if row does   */
  31630.              /* not exist already                      */
  31631.        PODEDSELEMENT pedsElemNum,
  31632.              /* Row number located or created          */
  31633.        PODEDSRETINFO pdsretFind,
  31634.              /* code if found or not or created        */
  31635.        USHORT        cNoKeys,
  31636.              /* Count of key values in array           */
  31637.        PODEDSVCB     avcbSearchKeys);
  31638.              /* array of values to use as search       */
  31639.              /* condition on key columns of the table  */
  31640.  
  31641. hdsVar    is the handle of an arbitrarily chosen column in the table (which 
  31642.           column is chosen has no bearing on the result of the function). 
  31643.  
  31644. usOption  which can take on of the following values: 
  31645.  
  31646.    ODEDSCREATEIT meaning "create a new key, and therefore a new row, if one of 
  31647.              this value does not already exist in the table". 
  31648.    ODEDSDONT meaning "don't create a new key". 
  31649.  
  31650. pedsElemNum is the place in which the row number corresponding to the given key 
  31651.           is returned. If the key doesn't exist, and ODEDSDONT was given as the 
  31652.           option, the element number of the next higher key in the table is 
  31653.           returned (number of entries plus 1, if there is no higher key). 
  31654.  
  31655. pdsretFind is the place where clarifying information about the key is returned. 
  31656.           It can take any of the following values: 
  31657.  
  31658.    ODE_DS_ROW_EXISTS meaning "the key was found in the table". 
  31659.    ODE_DS_ROW_NOTFOUND meaning "the key was not found, and has not been 
  31660.              created". 
  31661.    ODE_DS_ROW_CREATED meaning "the key didn't exist, but has been created". 
  31662.  
  31663. Example: 
  31664.  
  31665.  
  31666. ODEDSHANDLE  somecol;       /* Place for column handle */
  31667.   ODEDSELEMENT elno;        /* Place for element num.  */
  31668.   ODEDSRETINFO keyinfo;     /* Place for key info.     */
  31669.   ODEDSVCB     val;         /* Place for value.        */
  31670.   ODEDSRC      retc;
  31671.   val.type = ODE_DS_TYPE_V; /* Set string type.        */
  31672.   val.sptr = "Bilbo";       /* Set value to "Bilbo".   */
  31673.   val.maxlen = 5;           /* and set size of data.   */
  31674.   retc = OdeDsGetHandleOfVariable
  31675.              (&somecol,     /* Get handle of a column  */
  31676.               "t1.salary" );  /* in the table.         */
  31677.   retc = OdeDSGetKey
  31678.               (somecol,     /* Req'd column.           */
  31679.                ODE_DS_DONT, /* Don't create a new row. */
  31680.                &elno,       /* Returned element number.*/
  31681.                &keyinfo,    /* Returned key info.      */
  31682.                1,           /* One key value follows.  */
  31683.                &val );       /* Vcb for "Bilbo".       */
  31684.  
  31685. If the key Bilbo did not exist then the entry where it would exist is returned 
  31686. as the row number. If the function fails then the returns are not valid. 
  31687.  
  31688. The above example is equivalent to the ASL statement: 
  31689.  
  31690.  
  31691. LET elno = ROW(t1.salary{"Bilbo"},">=")
  31692.  
  31693. except that elno  is an ASL variable this time. 
  31694.  
  31695.  
  31696. ΓòÉΓòÉΓòÉ 224.2.5.9. OdeDSQueryValue ΓòÉΓòÉΓòÉ
  31697.  
  31698. This function is used to obtain a Visualizer data value. 
  31699.  
  31700.  
  31701. ODEDSRC ODEENTRY OdeDSQueryValue (
  31702.        ODEDSHANDLE  hdsVar,
  31703.              /* handle of variable                     */
  31704.        ODEDSELEMENT edsVar,
  31705.              /* element number of value in variable    */
  31706.        PODEDSVCB    pvcbValue,
  31707.              /* value returned                         */
  31708.        ODEDSTYPE    dstConv);
  31709.              /* Type val to be converted to for return */
  31710.  
  31711. If the conversion type is set to unknown, then the data is returned as the type 
  31712. that matches its content. Visualizer types and the corresponding C type for 
  31713. this are: 
  31714.  
  31715. NUMERIC                 may be any numeric type 
  31716. CHARACTER               ODE_DS_TYPE_S 
  31717. DATE                    ODE_DS_TYPE_D 
  31718. TIME                    ODE_DS_TYPE_T 
  31719. POINTER                 ODE_DS_TYPE_H 
  31720. GRAPHIC                 ODE_DS_TYPE_G 
  31721. NULL                    ODE_DS_TYPE_UNKNOWN. 
  31722.  
  31723. The data can be forced to a particular type, but note that if the type is 
  31724. incompatible the function fails. 
  31725.  
  31726.  
  31727. ODEDSHANDLE a_ptr;       /* Handle                     */
  31728.   ODEDSVCB    myvcb;     /* Place to receive answer.   */
  31729.   char s_area[DSS_MAXLEN];
  31730.                          /* In case answer is a string,*/
  31731.  
  31732.  ...
  31733.   myvcb.sptr = s_area;       /* connect area to vcb.   */
  31734.   myvcb.maxlen = ODE_DS_MAXLEN; /* Give length of area.*/
  31735.   retc = OdeDSQueryValue
  31736.              ( a_ptr, 3,  /* Get value of 3rd element, */
  31737.                &myvcb,    /* into this vcb, and        */
  31738.                DSS_TYPE_UNKNOWN);
  31739.                           /* mind how I get it.        */
  31740.  
  31741. This returns the value of the third element of the array referenced by a_ptr. 
  31742. If the element is set to zero then the first element of the array is accessed. 
  31743. The value is in myvcb. 
  31744.  
  31745. If the required variable is a scalar, use 1 for the element number. 
  31746.  
  31747.  
  31748. ΓòÉΓòÉΓòÉ 224.2.5.10. OdeDSInsertValue ΓòÉΓòÉΓòÉ
  31749.  
  31750. This function is used to insert a new element in a Visualizer array, and assign 
  31751. a value to that element. 
  31752.  
  31753.  
  31754. ODEDSRC ODEENTRY OdeDSInsertValue (
  31755.        ODEDSHANDLE  hdsVar,
  31756.              /* Handle referencing Variable            */
  31757.        ODEDSELEMENT edsVar,
  31758.              /* Element to be inserted into, 0 appends */
  31759.        PODEDSVCB    pvcbValue);
  31760.              /* Value to be inserted                   */
  31761.  
  31762. Example: 
  31763.  
  31764.  
  31765. ODEDSHANDLE a_ptr;         /* Place to receive handle. */
  31766.   ODEDSVCB    myvcb;       /* Place to receive answer. */
  31767.   ODEDSRC     retc;
  31768.   myvcb.sptr = "Bilbo";    /* Connect string to vcb.   */
  31769.   myvcb.maxlen = 5;        /* (Probably unnecessary.)  */
  31770.   retc = OdeDsGetHandleOfVariable
  31771.              ( &a_ptr,     /* Get handle for variable. */
  31772.                "MyArray" );
  31773.   retc = OdeDSInsertValue
  31774.              ( a_ptr, 3,   /* Insert 3rd        */
  31775.                &myvcb );   /* element ("Bilbo") */
  31776.  
  31777. If the function is successful, then a new element is created as element 3 in 
  31778. the Visualizer array MyArray, containing  "Bilbo". A failure leaves the 
  31779. variable unaffected. 
  31780.  
  31781. The above example is equivalent to the ASL statement: 
  31782.  
  31783.  
  31784. INSERT MyArray[3] = "Bilbo"
  31785.  
  31786.  
  31787. ΓòÉΓòÉΓòÉ 224.2.5.11. OdeDSQueryIndex ΓòÉΓòÉΓòÉ
  31788.  
  31789. This function generates a Visualizer array that will contain the row numbers of 
  31790. a table which are the index based on the keys given. 
  31791.  
  31792.  
  31793. ODEDSRC ODEENTRY OdeDSQueryIndex (
  31794.        ODEDSHANDLE  hdsVar,
  31795.              /* Handle of variable to receive the      */
  31796.              /* element numbers of the index           */
  31797.        USHORT       cbNoKeys,
  31798.              /* Count of the keys in the index         */
  31799.        PCHAR        achAscOrDesc,
  31800.              /* array of key directions, - descending  */
  31801.              /* + ascending. 1 to 1 correlation with   */
  31802.              /* vector of key handles                  */
  31803.        PODEDSHANDLE ahdsKeyRefs);
  31804.              /* vector of key handles                  */
  31805.  
  31806.  
  31807. ΓòÉΓòÉΓòÉ 224.2.5.12. OdeDSQueryVariableNames ΓòÉΓòÉΓòÉ
  31808.  
  31809. This function is used to obtain a list of Visualizer data object names, names 
  31810. of groups and tables within a data area, or names of variables or columns in a 
  31811. group or a table. The result is placed in a Visualizer variable, which can 
  31812. subsequently be accessed using other functions in the interface. 
  31813.  
  31814.  
  31815. ODEDSRC ODEENTRY OdeDSQueryVariableNames (
  31816.      ODEDSHANDLE   hdsVar,
  31817.              /* Handle of vector for return of names   */
  31818.      PCHAR         pszItemName,
  31819.              /* string denoting the item which         */
  31820.              /* contains the items whose names are     */
  31821.              /* returned                               */
  31822.      PODEDSELEMENT pedsElems);
  31823.              /* Number of entries in the result        */
  31824.  
  31825. Example: 
  31826.  
  31827.  
  31828. ODEDSHANDLE names;            /* Handle for WF array.  */
  31829.   ODEDSELEMENT size;          /* For size of array.    */
  31830.   retc = OdeDsGetHandleOfVariable
  31831.              (&names,         /* handle for variable   */
  31832.               "T..Names");
  31833.   retc = OdeDSQueryVariableNames
  31834.              (names, "User",  /* Get names of groups   */
  31835.               &size);         /* in User data area     */
  31836.  
  31837. If successful, the Visualizer variable T..Names contains a list of the names of 
  31838. all the groups and tables in the data area called .User. The C variable called 
  31839. names contains the handle of the Visualizer variable T..Names. If the function 
  31840. fails, T..Names is unchanged. 
  31841.  
  31842. The above example is equivalent to the ASL statement: 
  31843.  
  31844.  
  31845. NAMES Names = "User"
  31846.  
  31847.  
  31848. ΓòÉΓòÉΓòÉ 224.2.5.13. OdeDSPutValue ΓòÉΓòÉΓòÉ
  31849.  
  31850. This function is used to place a value in a Visualizer data element. 
  31851.  
  31852.  
  31853. ODEDSRC ODEENTRY OdeDSPutValue (
  31854.        ODEDSHANDLE  hdsVar,
  31855.              /* Handle of variable/vector              */
  31856.        ODEDSELEMENT edsVar,
  31857.              /* Element number within vector           */
  31858.        PODEDSVCB    pvcbValue);
  31859.              /* Value to be placed at that position    */
  31860.  
  31861. Example: 
  31862.  
  31863.  
  31864. ODEDSHANDLE ptr_array;       /* Handle for array of    */
  31865.                              /* pointers, established  */
  31866.                              /* by ASL program.        */
  31867.   ODEDSVCB ptr;              /* Place for handle.      */
  31868.   ODEDSVCB val;              /* Place for value.       */
  31869.   ODEDSRC  retc;
  31870.  ...
  31871.   val.type = DSS_TYPE_U;     /* Set integer type.      */
  31872.   val.data.usInteger = 19;   /* Set value to nineteen. */
  31873.  ...
  31874.   retc = OdeDsGetHandleOfVariable
  31875.             (&ptr_array,     /* Get handle of agreed   */
  31876.              "AgreedName");  /*    array of pointers   */
  31877.  ...
  31878.   retc = OdeDsQueryValue
  31879.             (ptr_array,10,   /* Required handle is 10th*/
  31880.              &ptr,           /* +element in ptr array. */
  31881.              DSS_TYPE_H);
  31882.  ...
  31883.   retc = OdeDsPutValue
  31884.             (ptr.data.h, 1,  /* Put established value  */
  31885.              &val);          /* (19) into    variable  */
  31886.  
  31887. If successful then the contents of the first or only element of the Visualizer 
  31888. variable whose identifying handle is in the tenth element of the Visualizer 
  31889. array called AgreedName will have been changed in accordance with the value 
  31890. given by the ODEDSVCB val. 
  31891.  
  31892. The above example is equivalent to the ASL statement: 
  31893.  
  31894.  
  31895. LET (AgreedName)[10] = 19
  31896.  
  31897. This example shows an alternative to OdeDsGetHandleOfVariable, for obtaining 
  31898. handles of Visualizer variables. It is assumed that some ASL program has 
  31899. previously established a Visualizer array of pointers (using the POINTER 
  31900. function), called Pointer. 
  31901.  
  31902.  
  31903. ΓòÉΓòÉΓòÉ 224.2.5.14. OdeDSPutTraceMessage ΓòÉΓòÉΓòÉ
  31904.  
  31905. OdeDSPutTraceMessage can be used to put a time stamped message in the system 
  31906. trace, S.System.Trace. 
  31907.  
  31908.  
  31909. ODEDSRC ODEENTRY OdeDSPutTraceMessage (
  31910.        PCHAR pszMessage);
  31911.                  /* String to be placed in trace       */
  31912.  
  31913. Example: 
  31914.  
  31915.  
  31916. retc = OdeDSPutTraceMessage ("Starting execution now...");
  31917.  
  31918. If successful then message has been added to the system trace file, 
  31919. S.System.Trace. 
  31920.  
  31921.  
  31922. ΓòÉΓòÉΓòÉ 224.2.5.15. OdeDSGetAndSetBreak ΓòÉΓòÉΓòÉ
  31923.  
  31924. This function can be used to check, and set or clear if desired, the status of 
  31925. control breaks. Once a control break is set the ON BREAK block executes upon 
  31926. return to ASL, (if, and only if, breaking is enabled). set fClear to TRUE to 
  31927. cause Ctrl+breaks to be cleared. 
  31928.  
  31929.  
  31930. ODEDSRC ODEENTRY OdeDSGetAndSetBreak (
  31931.        PODEDSRETINFO pdsretReturn,
  31932.                  /* Ctrl+Break status                  */
  31933.        USHORT        fClear);
  31934.                  /* Clear Ctrl+Break status            */
  31935.  
  31936.  
  31937. ΓòÉΓòÉΓòÉ 224.2.5.16. OdeDSCallAction ΓòÉΓòÉΓòÉ
  31938.  
  31939. This function performs actions against certain Visualizer objects. The handle 
  31940. and element pair of parameters must be passed to the code from ASL. Thus the 
  31941. objects that can be accessed must be open before the C code is executed (with 
  31942. the exception of data). The only other object than data that access is allowed 
  31943. to is the TABLE object. 
  31944.  
  31945. The call also takes an ASCIIZ string that is the action to be performed. The 
  31946. actions are detailed with the objects. The parameters are identical as for an 
  31947. action, thus if an action takes three parameters these must be provided, along 
  31948. with the count being set to three. 
  31949.  
  31950.  
  31951. ODEDSRC ODEENTRY OdeDSCallAction (
  31952.        ODEDSHANDLE  hdsVar,  /* 'Handle' of Object >   */
  31953.        ODEDSELEMENT cedsVar, /* 'Element' of Object>   */
  31954.                              /*  (received  as type    */
  31955.                              /* ODE_DS_TYPE_H)         */
  31956.        PCHAR        pszAction,
  31957.              /* String denoting the ACTION             */
  31958.        USHORT       cbArgs,
  31959.              /* Count of arguments in VCBs             */
  31960.        PODEDSVCB    avcbArgs,
  31961.              /* array of input arguments               */
  31962.        PODEDSVCB    pvcbResult);
  31963.              /* value returned by the action           */
  31964.  
  31965. To use this function on an object other than data one has to pass a pointer to 
  31966. the object id from ASL as a parameter. This provides (in the VCB) both the 
  31967. handle and the element that form the object instance information. 
  31968.  
  31969.  
  31970. ΓòÉΓòÉΓòÉ 224.2.5.17. OdeDSQueryAttr ΓòÉΓòÉΓòÉ
  31971.  
  31972. This is similar to the previous function, it operates on the same objects and 
  31973. requires the object to be identified in the same way. 
  31974.  
  31975. A single value is returned as object attributes have to be scalar. 
  31976.  
  31977.  
  31978. ODEDSRC ODEENTRY OdeDSQueryAttr (
  31979.        ODEDSHANDLE  hdsVar,
  31980.                 /* 'Handle' of Object >                */
  31981.        ODEDSELEMENT cedsVar,
  31982.                 /* 'Element' of Object>(received       */
  31983.                 /* as type ODE_DS_TYPE_H)              */
  31984.        PCHAR        pszAttr,
  31985.                 /* string denoting Attribute           */
  31986.        PODEDSVCB    pvcbVal,
  31987.                 /* The value of the attribute          */
  31988.        ODEDSTYPE    dstConv);
  31989.                 /* Type to converted the value to      */
  31990.  
  31991. To use this function on an object other than data, pass a pointer to the object 
  31992. id from ASL as a parameter. This provides (in the VCB) both the handle and the 
  31993. element that form the object instance information. 
  31994.  
  31995.  
  31996. ΓòÉΓòÉΓòÉ 224.2.5.18. OdeDsModifyAttr ΓòÉΓòÉΓòÉ
  31997.  
  31998. Again similar to the previous function only this time the value is applied to 
  31999. the attribute, not got from it. 
  32000.  
  32001.  
  32002. ODEDSRC ODEENTRY OdeDsModifyAttr (
  32003.        ODEDSHANDLE  hdsVar,
  32004.              /* 'Handle' of Object >                   */
  32005.        ODEDSELEMENT cedsVar,
  32006.              /* 'Element' of Object>(received          */
  32007.              /*   as type ODE_DS_TYPE_H)               */
  32008.        PCHAR        pszAttr,
  32009.              /* string denoting Attribute              */
  32010.        PODEDSVCB    pvcbVal);
  32011.              /* Value attribute to be set to           */
  32012.  
  32013. To use this function on an object other than data, pass a pointer to the object 
  32014. id from ASL as a parameter. This provides (in the VCB) both the handle and the 
  32015. element that form the object instance information. 
  32016.  
  32017.  
  32018. ΓòÉΓòÉΓòÉ 224.2.5.19. OdeDSConvertVCB ΓòÉΓòÉΓòÉ
  32019.  
  32020. This converts the contents of a VCB to a specific data format. 
  32021.  
  32022.  
  32023. ODEDSRC ODEENTRY OdeDSConvertVCB (
  32024.   PODEDSVCB      pvcbValue,
  32025.   ODEDSTYPE      dstConv);
  32026.  
  32027. The first parameter pvcbValue is a pointer to the VCB to be converted, and the 
  32028. second parameter dstConv is the type is is to be converted to. If dstConv 
  32029. specifies a string type, the VCB pointer variable plstString must point to the 
  32030. area where the result will be placed. 
  32031.  
  32032. This example converts the first argument to a USHORT. 
  32033.  
  32034.  
  32035. retc =
  32036.    OdeDsConvertVCB( args->apvcbArguments[0],ODE_DS_TYPE_U );
  32037.  
  32038.  
  32039. ΓòÉΓòÉΓòÉ 224.2.5.20. OdeDSQueryCaseMapTable ΓòÉΓòÉΓòÉ
  32040.  
  32041. This function provides the case mapping table used to transform a character to 
  32042. its uppercase equivalent. 
  32043.  
  32044.  
  32045. ODEDSRC ODEENTRY OdeDSQueryCaseMapTable(
  32046.   PCHAR          casemap);
  32047. The parameter casemap is a pointer to a 256-byte area which will receive the 
  32048. case mapping table. The contents of this table depend on the national language 
  32049. currently in use. 
  32050.  
  32051.  
  32052. ΓòÉΓòÉΓòÉ 224.2.5.21. OdeDSQueryCollatTable ΓòÉΓòÉΓòÉ
  32053.  
  32054. This function provides the collating sequence table used to transform a 
  32055. character to its position in the sorting or collating sequence. 
  32056.  
  32057.  
  32058. ODEDSRC ODEENTRY OdeDSQueryCollatTable(
  32059.   PCHAR          collate);
  32060. The parameter collate is a pointer to a 256-byte area which will receive the 
  32061. collating sequence table. The contents of this table depend on the national 
  32062. language currently in use. 
  32063.  
  32064.  
  32065. ΓòÉΓòÉΓòÉ 225. DDE C functions ΓòÉΓòÉΓòÉ
  32066.  
  32067. This section lists the C functions which provide the services allowing ASL 
  32068. developers to create server and client applications which exchange data and 
  32069. commands using the Dynamic Data Exchange (DDE) mechanism. These functions also 
  32070. allow developers writing in C to create similar applications directly because 
  32071. the services are callable from C programs. 
  32072.  
  32073. See the online reference manuals for OS/2 2.0 and the OS/2 Programming Guide 
  32074. Vol II, PM Window Programming Interface for more information on the DDE 
  32075. protocol. 
  32076.  
  32077. Sample DDE client and server programs are supplied with Visualizer Development. 
  32078.  
  32079. Introduction to DDE Services 
  32080.  
  32081. Functions 
  32082.  
  32083.  
  32084. ΓòÉΓòÉΓòÉ 225.1. Introduction to DDE Services ΓòÉΓòÉΓòÉ
  32085.  
  32086. Overview 
  32087.  
  32088.  
  32089. ΓòÉΓòÉΓòÉ 225.1.1. Overview ΓòÉΓòÉΓòÉ
  32090.  
  32091. The DDE services are made up of several function calls, the majority of which 
  32092. relate closely to the underlying DDE functions. There are also functions to 
  32093. manage the DDE environment (see below). 
  32094.  
  32095. The functions remove the inherent asynchronous processing where possible by 
  32096. only returning to the caller when the desired function has been performed. 
  32097. Exceptions are when DDE events, such as unsolicited termination requests or 
  32098. requests for changed data, are received. The caller can supply a function that 
  32099. will be called by DDE services to handle DDE events. 
  32100.  
  32101. Function calls are serialized within conversations. 
  32102.  
  32103. The caller of the DDE services supplies a pointer which will be updated to 
  32104. identify the response received and point to the DDE data structure when the 
  32105. data is available. It is the caller's responsibility to check the return codes 
  32106. and the responses to see if the operation was successful. 
  32107.  
  32108. DDE Environment 
  32109.  
  32110. DDE Event 
  32111.  
  32112. New data types 
  32113.  
  32114. List of DDE Service functions 
  32115.  
  32116. Tracing 
  32117.  
  32118. Error Information 
  32119.  
  32120.  
  32121. ΓòÉΓòÉΓòÉ 225.1.1.1. DDE Environment ΓòÉΓòÉΓòÉ
  32122.  
  32123. A DDE environment can be either a client or a server environment. 
  32124.  
  32125. It is established by a call to the DDE service function OdeDDOpen. It is a PM 
  32126. window environment and consists of an object window, a message queue which 
  32127. receives DDE messages, and its associated window procedure which runs on a 
  32128. separate OS/2 thread (called the DDE PM thread) to that of the DDE service 
  32129. caller. 
  32130.  
  32131. The DDE PM thread causes additional threads to be created, one per 
  32132. conversation, to process the messages it receives. 
  32133.  
  32134. Multiple DDE environments can be created by an application. 
  32135.  
  32136.  
  32137. ΓòÉΓòÉΓòÉ 225.1.1.2. DDE Event ΓòÉΓòÉΓòÉ
  32138.  
  32139. A DDE event is said to occur when a valid DDE message is received by an object 
  32140. window which is part of a DDE environment and the message is not a response to 
  32141. a previous message. Such a message is said to be an event message. 
  32142.  
  32143.  
  32144. ΓòÉΓòÉΓòÉ 225.1.1.3. New data types ΓòÉΓòÉΓòÉ
  32145.  
  32146. The following new data types are introduced: 
  32147.  
  32148. Type           Usage 
  32149.  
  32150. DDERESP        A structure containing the response to a DDE request. 
  32151.  
  32152. PDDERESP       A pointer to a DDERESP structure. 
  32153.  
  32154. HDDEENV        A structure containing the handle of a DDE environment. 
  32155.  
  32156. PHDDEENV       A pointer to a HDDEENV structure. 
  32157.  
  32158. HDDECONV       A structure containing the handle of a DDE conversation. 
  32159.  
  32160. PHDDECONV      A pointer to a HDDECONV structure. 
  32161.  
  32162. The above data types are defined in FTBDDE.H and are used in DDE Service 
  32163. function calls. 
  32164.  
  32165.  
  32166. ΓòÉΓòÉΓòÉ 225.1.1.4. List of DDE Service functions ΓòÉΓòÉΓòÉ
  32167.  
  32168. The function calls provided are: 
  32169.  
  32170. Function                      Description 
  32171.  
  32172. OdeDDOpen                     Establish a DDE environment. 
  32173.  
  32174. OdeDDShut                     Destroy a DDE environment. 
  32175.  
  32176. OdeDDInitiate                 Initiate a DDE conversation. 
  32177.  
  32178. OdeDDTerminate                Terminate a DDE conversation. 
  32179.  
  32180. OdeDDRequest                  Request a data item from a DDE server. 
  32181.  
  32182. OdeDDAdvise                   Request updates whenever a data item changes. 
  32183.  
  32184. OdeDDUnadvise                 Request that updates for a data item be 
  32185.                               discontinued. 
  32186.  
  32187. OdeDDExecute                  Send a command string to a server for execution. 
  32188.  
  32189. OdeDDPoke                     Send a data item to a server. 
  32190.  
  32191. OdeDDData                     Send a data item to a client. 
  32192.  
  32193. OdeDDAck                      Acknowledge a DDE function. 
  32194.  
  32195. OdeDDRegisterConversation     Register a conversation not initiated by DDE 
  32196.                               services. 
  32197.  
  32198. OdeDDGetMsg                   Get the next event message for a specified DDE 
  32199.                               conversation. 
  32200.  
  32201. OdeDDQueryServers             Query the applications and topics supported by 
  32202.                               all active servers. 
  32203.  
  32204. C function prototypes for the above functions can be found in FTBDDE.H. 
  32205.  
  32206. LINKER Import file definitions for the above functions can be found in 
  32207. FTBDDE.LIB. 
  32208.  
  32209. The functions are packaged in a DLL called FTBDDE.DLL. 
  32210.  
  32211. The functions use SYSTEM linkage. 
  32212.  
  32213.  
  32214. ΓòÉΓòÉΓòÉ 225.1.1.5. Tracing ΓòÉΓòÉΓòÉ
  32215.  
  32216. To assist problem determination with DDE, trace information can optionally be 
  32217. written which shows DDE Service function calls, PM DDE function calls, PM DDE 
  32218. messages and associated parameters. 
  32219.  
  32220. The information will be written to file FTBDDE in the directory identified by 
  32221. the FTB1DIR environment variable. 
  32222.  
  32223. Tracing is equivalent to the DDE tracing done in ASL. 
  32224.  
  32225.  
  32226. ΓòÉΓòÉΓòÉ 225.1.1.6. Error Information ΓòÉΓòÉΓòÉ
  32227.  
  32228. To assist problem determination with DDE, error messages are written to a file. 
  32229. Warning messages are also written to the file if DDE Tracing has been 
  32230. requested. 
  32231.  
  32232. The messages will be written to file FTBLOG in the directory identified by the 
  32233. FTB1DIR environment variable. 
  32234.  
  32235. Error information is also provided by the function return code and, optionally, 
  32236. in a reason code variable provided by the caller. 
  32237.  
  32238. Return Codes 
  32239.  
  32240. Return Codes 
  32241.  
  32242.  
  32243. ΓòÉΓòÉΓòÉ 225.2. Functions ΓòÉΓòÉΓòÉ
  32244.  
  32245. The functions are described below. More information can be found in the include 
  32246. file FTBDDE.H. 
  32247.  
  32248. OdeDDOpen 
  32249.  
  32250. OdeDDShut 
  32251.  
  32252. OdeDDInitiate 
  32253.  
  32254. OdeDDTerminate 
  32255.  
  32256. OdeDDRequest 
  32257.  
  32258. OdeDDAdvise 
  32259.  
  32260. OdeDDUnadvise 
  32261.  
  32262. OdeDDExecute 
  32263.  
  32264. OdeDDPoke 
  32265.  
  32266. OdeDDData 
  32267.  
  32268. OdeDDAck 
  32269.  
  32270. OdeDDRegisterConversation 
  32271.  
  32272. OdeDDGetMsg 
  32273.  
  32274. OdeDDQueryServers 
  32275.  
  32276. User-supplied Initiate function 
  32277.  
  32278. User-supplied Event function 
  32279.  
  32280. Function Return Codes 
  32281.  
  32282.  
  32283. ΓòÉΓòÉΓòÉ 225.2.1. OdeDDOpen ΓòÉΓòÉΓòÉ
  32284.  
  32285. Establish a DDE environment. 
  32286.  
  32287.  
  32288. ret = OdeDDOpen(UINT type,
  32289.       UINT (* _System  initfun) (
  32290.       HDDECONV, PDDEINIT, PVOID,
  32291.       PCHAR *, PCHAR *, PCONVCONTEXT *),
  32292.       void (* _System eventfun) (
  32293.       HDDECONV, PVOID),
  32294.       PVOID eventparm,
  32295.       PUINT pctrl_break,
  32296.       PCHAR pbreak_enabled,
  32297.       HDDEENV * phddeenv,
  32298.       UINT trace,
  32299.       PUINT pcode)
  32300.  
  32301. type           Identifies the type of environment to be created. 
  32302.  
  32303. initfun        See . Entry point of a function which will be called to process 
  32304.                WM_DDE_INITIATE messages for this DDE environment. Must be NULL 
  32305.                if this environment is a DDE Client. 
  32306.  
  32307. eventfun       See Entry point of a function which will be called to process 
  32308.                event messages for this DDE environment or NULL if this 
  32309.                environment does not support event messages. 
  32310.  
  32311. eventparm      Pointer to a parameter which will be passed to eventfun when it 
  32312.                is called to process event messages for this DDE environment or 
  32313.                NULL if no parameter is to be passed. 
  32314.  
  32315. pctrl_break    A pointer to a flag which, if set, will cause a wait for a 
  32316.                response from a DDE conversation partner to be suspended and 
  32317.                control returned to the caller of a DDE function as if a timeout 
  32318.                had occurred. 
  32319.  
  32320. pbreak_enabled  A pointer to a flag which determines whether or not the 
  32321.                pctrl_break flag is to be ignored the first five times it is 
  32322.                pressed. If FALSE the pctrl_break flag is ignored until it has 
  32323.                been pressed at least six times. If TRUE the pctrl_break flag is 
  32324.                honoured when it is pressed. 
  32325.  
  32326. phddeenv       A pointer to the handle of the created DDE environment. 
  32327.  
  32328. trace          Perform the debug action appropriate to the value. 
  32329.  
  32330. pcode          A pointer to an integer to receive additional information, if 
  32331.                available, about an error. 
  32332.  
  32333. Must be called before attempting to use DDE functions. initfun must be 
  32334. specified if a DD_TYP_SERVER environment is being opened. See  for more 
  32335. information. If eventparm is NULL all event messages will be discarded. This is 
  32336. only valid for a client environment which does not wish to issue ADVISE calls. 
  32337.  
  32338. The pctrl_break and pbreak_enabled parameters enable the user of DDE services 
  32339. to terminate a DDE request which has not completed in an acceptable time 
  32340. period. They are the only way to terminate a DDE request when an infinite 
  32341. timeout has been specified. The use of pctrl_break and pbreak_enabled should be 
  32342. considered when the value for the timeout parameter in other DDE service 
  32343. function is being chosen. 
  32344.  
  32345.  
  32346. ΓòÉΓòÉΓòÉ 225.2.2. OdeDDShut ΓòÉΓòÉΓòÉ
  32347.  
  32348. Destroy a DDE environment. 
  32349.  
  32350.  
  32351.  OdeDDShut(HDDEENV hddeenv,
  32352.            UINT timeout,
  32353.            UINT trace,
  32354.            PUINT pcode)
  32355.  
  32356. hddeenv     The handle of the DDE environment which is to be destroyed. 
  32357.  
  32358. timeout     If no response is received within timeout milliseconds, control is 
  32359.             returned to the caller. If timeout is zero, the service does not 
  32360.             wait for a response. If timeout is -1, the service waits until a 
  32361.             response is available. 
  32362.  
  32363. trace       Perform the debug action appropriate to the value. 
  32364.  
  32365. pcode       A pointer to an integer to receive additional information, if 
  32366.             available, about an error. 
  32367.  
  32368. Must be called when DDE functions are no longer required in this DDE 
  32369. environment. All active conversations will be terminated. The DDE environment 
  32370. to be destroyed should previously have been created by this application. 
  32371.  
  32372. If a Timeout occurs the ability of the OdeDDShut caller to use DDE services 
  32373. will not be affected. However,  it will not be possible to use this environment 
  32374. again and applications which are in conversation with the OdeDDShut caller may 
  32375. not have removed their references to it and they may require application 
  32376. specific action to ensure they can function correctly. 
  32377.  
  32378.  
  32379. ΓòÉΓòÉΓòÉ 225.2.3. OdeDDInitiate ΓòÉΓòÉΓòÉ
  32380.  
  32381. Initiate a DDE conversation. 
  32382.  
  32383.  
  32384.  OdeDDInitiate(HDDEENV hddeenv,
  32385.                CHAR * application,
  32386.                CHAR * topic,
  32387.                PCONVCONTEXT pcctxt,
  32388.                PDDERESP pdderesp,
  32389.                HDDECONV * phddeconv,
  32390.                UINT timeout,
  32391.                UINT trace,
  32392.                PUINT pcode)
  32393.  
  32394. hddeenv     Handle of DDE environment. 
  32395.  
  32396. application  Name of application. Must not be NULL. 
  32397.  
  32398. topic       Name of topic. Must not be NULL. 
  32399.  
  32400. pcctxt      A pointer to a conversation context structure or NULL. 
  32401.  
  32402. pdderesp    A pointer to the DDE response area which contains a pointer to the 
  32403.             DDEINIT structure which was returned by the server with which 
  32404.             conversation was established. 
  32405.  
  32406. phddeconv   A pointer to the handle of the conversation which was established, 
  32407.             or NULL if no conversation was established. 
  32408.  
  32409. timeout     If no response is received within timeout milliseconds, control is 
  32410.             returned to the caller. If timeout is zero, the service does not 
  32411.             wait for a response. If timeout is -1, the service waits until a 
  32412.             response is available. 
  32413.  
  32414. trace       Perform the debug action appropriate to the value. 
  32415.  
  32416. pcode       A pointer to an integer to receive additional information, if 
  32417.             available, about an error. 
  32418.  
  32419. The DDE environment for hddeenv  must have previously been created via a 
  32420. OdeDDOpen call. 
  32421.  
  32422. This call is valid for a client only. If a server responds which is already in 
  32423. conversation with this DDE environment, a return code will be set to indicate 
  32424. this and no new conversation will be established. If a Timeout occurs the 
  32425. conversation will be terminated. 
  32426.  
  32427.  
  32428. ΓòÉΓòÉΓòÉ 225.2.4. OdeDDTerminate ΓòÉΓòÉΓòÉ
  32429.  
  32430. Terminate a DDE conversation. 
  32431.  
  32432.  
  32433.  OdeDDTerminate(HDDECONV hddeconv,
  32434.                 UINT timeout,
  32435.                 UINT trace,
  32436.                 PUINT pcode)
  32437.  
  32438. hddeconv    Handle of DDE conversation 
  32439.  
  32440. timeout     If no response is received within timeout milliseconds, control is 
  32441.             returned to the caller. If timeout is zero, the service does not 
  32442.             wait for a response. If timeout is -1, the service waits until a 
  32443.             response is available. 
  32444.  
  32445. trace       Perform the debug action appropriate to the value. 
  32446.  
  32447. pcode       A pointer to an integer to receive additional information, if 
  32448.             available, about an error. 
  32449.  
  32450. If a Timeout occurs no further conversations with this conversation partner 
  32451. will be permitted from this DDE environment. It will be necessary to issue 
  32452. OdeDDShut and OdeDDOpen in order to re-establish such a conversation. 
  32453.  
  32454.  
  32455. ΓòÉΓòÉΓòÉ 225.2.5. OdeDDRequest ΓòÉΓòÉΓòÉ
  32456.  
  32457. Request a data item from a server application. 
  32458.  
  32459.  
  32460.  OdeDDRequest(HDDECONV hddeconv,
  32461.               PDDESTRUCT pddestruct,
  32462.               ULONG ddeoptions,
  32463.               PDDERESP pdderesp,
  32464.               UINT timeout,
  32465.               UINT trace,
  32466.               PUINT pcode)
  32467.  
  32468. hddeconv    Handle of DDE conversation 
  32469.  
  32470. pddestruct  A pointer to a DDESTRUCT  structure defining the data item 
  32471.             required. 
  32472.  
  32473. ddeoptions  Option list for WinDdePostMsg function. 
  32474.  
  32475. pdderesp    A pointer to the DDE response area which contains a pointer to the 
  32476.             DDESTRUCT structure which was returned by the server. 
  32477.  
  32478. timeout     If no response is received within timeout milliseconds, control is 
  32479.             returned to the caller. If timeout is zero, the service does not 
  32480.             wait for a response. If timeout is -1, the service waits until a 
  32481.             response is available. 
  32482.  
  32483. trace       Perform the debug action appropriate to the value. 
  32484.  
  32485. pcode       A pointer to an integer to receive additional information, if 
  32486.             available, about an error. 
  32487.  
  32488. The conversation must have previously been established using DDE services. 
  32489.  
  32490.  
  32491. ΓòÉΓòÉΓòÉ 225.2.6. OdeDDAdvise ΓòÉΓòÉΓòÉ
  32492.  
  32493. Request that a data item be sent whenever it changes. 
  32494.  
  32495.  
  32496.  OdeDDAdvise(HDDECONV hddeconv,
  32497.              PDDESTRUCT pddestruct,
  32498.              ULONG ddeoptions,
  32499.              PDDERESP pdderesp,
  32500.              UINT timeout,
  32501.              UINT trace,
  32502.              PUINT pcode)
  32503.  
  32504. hddeconv    Handle of DDE conversation 
  32505.  
  32506. pddestruct  A pointer to a DDESTRUCT  structure defining the data item 
  32507.             required. 
  32508.  
  32509. ddeoptions  Option list for WinDdePostMsg function. 
  32510.  
  32511. pdderesp    A pointer to the DDE response area which contains a pointer to the 
  32512.             DDESTRUCT structure which was returned by the server. 
  32513.  
  32514. timeout     If no response is received within timeout milliseconds, control is 
  32515.             returned to the caller. If timeout is zero, the service does not 
  32516.             wait for a response. If timeout is -1, the service waits until a 
  32517.             response is available. 
  32518.  
  32519. trace       Perform the debug action appropriate to the value. 
  32520.  
  32521. pcode       A pointer to an integer to receive additional information, if 
  32522.             available, about an error. 
  32523.  
  32524. If the client DDE environment has been opened with a NULL event function it 
  32525. will not be possible to process responses to ADVISE. In this case an error will 
  32526. be returned when OdeDDAdvise is called. 
  32527.  
  32528. The conversation must have previously been established using DDE services. 
  32529.  
  32530. If FACKREQ was set in the status field of pddestruct , it is the caller"s 
  32531. responsibility to issue the OdeDDAck function when it is ready to accept new 
  32532. data. This may be done in eventfun. 
  32533.  
  32534.  
  32535. ΓòÉΓòÉΓòÉ 225.2.7. OdeDDUnadvise ΓòÉΓòÉΓòÉ
  32536.  
  32537. Request that a previously established advise link be discontinued. 
  32538.  
  32539.  
  32540.  OdeDDUnadvise(HDDECONV hddeconv,
  32541.                PDDESTRUCT pddestruct,
  32542.                ULONG ddeoptions,
  32543.                PDDERESP pdderesp,
  32544.                UINT timeout,
  32545.                UINT trace,
  32546.                PUINT pcode)
  32547.  
  32548. hddeconv    Handle of DDE conversation 
  32549.  
  32550. pddestruct  A pointer to a DDESTRUCT  structure defining the data item to be 
  32551.             unadvised. 
  32552.  
  32553. ddeoptions  Option list for WinDdePostMsg function. 
  32554.  
  32555. pdderesp    A pointer to the DDE response area which contains a pointer to the 
  32556.             DDESTRUCT structure which was returned by the server. 
  32557.  
  32558. timeout     If no response is received within timeout milliseconds, control is 
  32559.             returned to the caller. If timeout is zero, the service does not 
  32560.             wait for a response. If timeout is -1, the service waits until a 
  32561.             response is available. 
  32562.  
  32563. trace       Perform the debug action appropriate to the value. 
  32564.  
  32565. pcode       A pointer to an integer to receive additional information, if 
  32566.             available, about an error. 
  32567.  
  32568. The conversation must have previously been established using DDE services. 
  32569.  
  32570.  
  32571. ΓòÉΓòÉΓòÉ 225.2.8. OdeDDExecute ΓòÉΓòÉΓòÉ
  32572.  
  32573. Send a command string to a server for execution. 
  32574.  
  32575.  
  32576.  OdeDDExecute(HDDECONV hddeconv,
  32577.               PDDESTRUCT pddestruct,
  32578.               ULONG ddeoptions,
  32579.               PDDERESP pdderesp,
  32580.               UINT timeout,
  32581.               UINT trace,
  32582.               PUINT pcode)
  32583.  
  32584. hddeconv    Handle of DDE conversation 
  32585.  
  32586. pddestruct  A pointer to a DDESTRUCT  structure defining the commands to be 
  32587.             executed. 
  32588.  
  32589. ddeoptions  Option list for WinDdePostMsg function. 
  32590.  
  32591. pdderesp    A pointer to the DDE response area which contains a pointer to the 
  32592.             DDESTRUCT structure which was returned by the server. 
  32593.  
  32594. timeout     If no response is received within timeout milliseconds, control is 
  32595.             returned to the caller. If timeout is zero, the service does not 
  32596.             wait for a response. If timeout is -1, the service waits until a 
  32597.             response is available. 
  32598.  
  32599. trace       Perform the debug action appropriate to the value. 
  32600.  
  32601. pcode       A pointer to an integer to receive additional information, if 
  32602.             available, about an error. 
  32603.  
  32604. The conversation must have previously been established using DDE services. 
  32605.  
  32606. Note that the caller will wait until the command string has executed. 
  32607.  
  32608.  
  32609. ΓòÉΓòÉΓòÉ 225.2.9. OdeDDPoke ΓòÉΓòÉΓòÉ
  32610.  
  32611. Send an unsolicited data item to a server application. 
  32612.  
  32613.  
  32614.  OdeDDPoke(HDDECONV hddeconv,
  32615.            PDDESTRUCT pddestruct,
  32616.            ULONG ddeoptions,
  32617.            PDDERESP pdderesp,
  32618.            UINT timeout,
  32619.            UINT trace,
  32620.            PUINT pcode)
  32621.  
  32622. hddeconv    Handle of DDE conversation 
  32623.  
  32624. pddestruct  A pointer to a DDESTRUCT  structure defining the data item to be 
  32625.             sent. 
  32626.  
  32627. ddeoptions  Option list for WinDdePostMsg function. 
  32628.  
  32629. pdderesp    A pointer to the DDE response area which contains a pointer to the 
  32630.             DDESTRUCT structure which was returned by the server. 
  32631.  
  32632. timeout     If no response is received within timeout milliseconds, control is 
  32633.             returned to the caller. If timeout is zero, the service does not 
  32634.             wait for a response. If timeout is -1, the service waits until a 
  32635.             response is available. 
  32636.  
  32637. trace       Perform the debug action appropriate to the value. 
  32638.  
  32639. pcode       A pointer to an integer to receive additional information, if 
  32640.             available, about an error. 
  32641.  
  32642. The conversation must have previously been established using DDE services. 
  32643.  
  32644.  
  32645. ΓòÉΓòÉΓòÉ 225.2.10. OdeDDData ΓòÉΓòÉΓòÉ
  32646.  
  32647. Send a data item from a server to a client application. 
  32648.  
  32649.  
  32650.  OdeDDData(HDDECONV hddeconv,
  32651.            PDDESTRUCT pddestruct,
  32652.            ULONG ddeoptions,
  32653.            UINT trace,
  32654.            PUINT pcode)
  32655.  
  32656. hddeconv    Handle of DDE conversation 
  32657.  
  32658. pddestruct  A pointer to a DDESTRUCT structure defining the data item to be 
  32659.             sent. 
  32660.  
  32661. ddeoptions  Option list for WinDdePostMsg function. 
  32662.  
  32663. trace       Perform the debug action appropriate to the value. 
  32664.  
  32665. pcode       A pointer to an integer to receive additional information, if 
  32666.             available, about an error. 
  32667.  
  32668. The conversation must have previously been established using DDE services. 
  32669.  
  32670. If the data is being sent as a result of an ADVISE and FACKREQ is set on the 
  32671. ADVISE, FACKREQ must be set on the OdeDDData response. In this case an ACK 
  32672. event will occur at the server when the client has sent an ACK to indicate that 
  32673. he is ready for more data. 
  32674.  
  32675.  
  32676. ΓòÉΓòÉΓòÉ 225.2.11. OdeDDAck ΓòÉΓòÉΓòÉ
  32677.  
  32678. Acknowledge a DDE function. 
  32679.  
  32680.  
  32681.  OdeDDAck(HDDECONV hddeconv,
  32682.           PDDESTRUCT pddestruct,
  32683.           ULONG ddeoptions,
  32684.           UINT trace,
  32685.           PUINT pcode)
  32686.  
  32687. hddeconv    Handle of DDE conversation 
  32688.  
  32689. pddestruct  A pointer to a DDESTRUCT structure defining the type of 
  32690.             acknowledgment. 
  32691.  
  32692. ddeoptions  Option list for WinDdePostMsg function. 
  32693.  
  32694. trace       Perform the debug action appropriate to the value. 
  32695.  
  32696. pcode       A pointer to an integer to receive additional information, if 
  32697.             available, about an error. 
  32698.  
  32699. The conversation must have previously been established using DDE services. 
  32700.  
  32701.  
  32702. ΓòÉΓòÉΓòÉ 225.2.12. OdeDDRegisterConversation ΓòÉΓòÉΓòÉ
  32703.  
  32704. Register that a DDE conversation has been established between two DDE 
  32705. environments. 
  32706.  
  32707.  
  32708.  OdeDDRegisterConversation(HDDEENV hddeenv,
  32709.                            HWND hwnd,
  32710.                            HDDECONV * phddeconv,
  32711.                            UINT timeout,
  32712.                            UINT trace,
  32713.                            PUINT pcode)
  32714.  
  32715. hddeenv     The handle of the caller"s DDE environment. 
  32716.  
  32717. hwnd        The handle of the window with which the caller"s DDE environment is 
  32718.             in conversation. 
  32719.  
  32720. phddeconv   A pointer to the handle of DDE conversation created by this 
  32721.             function. 
  32722.  
  32723. timeout     If no response is received within timeout milliseconds, control is 
  32724.             returned to the caller. If timeout is zero, the service does not 
  32725.             wait for a response. If timeout is -1, the service waits until a 
  32726.             response is available. 
  32727.  
  32728. trace       Perform the debug action appropriate to the value. 
  32729.  
  32730. pcode       A pointer to an integer to receive additional information, if 
  32731.             available, about an error. 
  32732.  
  32733. This function is intended to be used in situations where the conversation 
  32734. handles have been determined by some other mechanism (Drag/Drop for example). 
  32735.  
  32736. The DDE conversation handle returned by this function should be used in 
  32737. subsequent DDE service function calls. 
  32738.  
  32739.  
  32740. ΓòÉΓòÉΓòÉ 225.2.13. OdeDDGetMsg ΓòÉΓòÉΓòÉ
  32741.  
  32742. Get the next event message for a specified DDE conversation. 
  32743.  
  32744.  
  32745.  OdeDDGetMsg(HDDECONV hddeconv,
  32746.              PDDERESP pdderesp,
  32747.              UINT timeout,
  32748.              UINT trace,
  32749.              PUINT pcode)
  32750.  
  32751. hddeenv     Handle of DDE conversation 
  32752.  
  32753. pdderesp    A pointer to the DDE response area which contains a pointer to the 
  32754.             DDE data structure which was sent with the message. 
  32755.  
  32756. timeout     If no response is received within timeout milliseconds, control is 
  32757.             returned to the caller. If timeout is zero, the service does not 
  32758.             wait for a response. If timeout is -1, the service waits until a 
  32759.             response is available. 
  32760.  
  32761. trace       Perform the debug action appropriate to the value. 
  32762.  
  32763. pcode       A pointer to an integer to receive additional information, if 
  32764.             available, about an error. 
  32765.  
  32766.  
  32767. ΓòÉΓòÉΓòÉ 225.2.14. OdeDDQueryServers ΓòÉΓòÉΓòÉ
  32768.  
  32769. Return a structure which contains information on which servers are active and 
  32770. which topics they support. 
  32771.  
  32772.  
  32773.  OdeDDQueryServers(HDDEENV hddeenv,
  32774.                    CHAR * application,
  32775.                    CHAR * topic,
  32776.                    PCONVCONTEXT pcctxt,
  32777.                    PPDDEINIT ppddeinit,
  32778.                    UINT     maxservers,
  32779.                    PUINT    pactualservers,
  32780.                    UINT timeout,
  32781.                    UINT trace,
  32782.                    PUINT pcode)
  32783.  
  32784. hddeenv       Handle of a DDE client environment previously established by the 
  32785.               caller. 
  32786.  
  32787. application   The name of the application for which information is requested, 
  32788.               or NULL. 
  32789.  
  32790. topic         The name of the topic for which information is requested, or 
  32791.               NULL. 
  32792.  
  32793. pcctxt        A pointer to a conversation context structure or NULL. 
  32794.  
  32795. ppddeinit     A pointer to an area to receive the information. The information 
  32796.               will returned as an array of pointers to DDEINIT structures. 
  32797.  
  32798. maxservers    The maximum number of servers for which information is to be 
  32799.               returned. 
  32800.  
  32801. pactualservers  A pointer to a number which will contain the actual number of 
  32802.               servers whose information has been returned. 
  32803.  
  32804. timeout       If no response is received within timeout milliseconds, control 
  32805.               is returned to the caller. If timeout is zero, the service does 
  32806.               not wait for a response. If timeout is -1, the service waits 
  32807.               until a response is available. 
  32808.  
  32809. trace         Perform the debug action appropriate to the value. 
  32810.  
  32811. pcode         A pointer to an integer to receive additional information, if 
  32812.               available, about an error. 
  32813.  
  32814. The DDE environment for hddeenv  must have previously been created via a 
  32815. OdeDDOpen call. 
  32816.  
  32817. This call is valid for a client only. 
  32818.  
  32819. The DDEINIT structures returned by this function must be freed by the caller. 
  32820.  
  32821.  
  32822. ΓòÉΓòÉΓòÉ 225.2.15. User-supplied Initiate function ΓòÉΓòÉΓòÉ
  32823.  
  32824. Validate WM_DDE_INITIATE messages received by a DDE environment. 
  32825.  
  32826. The Initiate function indicates by its return code whether or not the request 
  32827. to initiate a conversation is to be accepted. 
  32828.  
  32829. Being caller-specific it is not possible to describe the processing for this 
  32830. routine in detail here. 
  32831.  
  32832. hddeconv      Handle of the DDE conversation which will be established if this 
  32833.               function accepts the conversation. 
  32834.  
  32835. pddeinit      A pointer to the DDEINIT structure which was sent with the 
  32836.               WM_DDE_INITIATE message. 
  32837.  
  32838. peventparm    A pointer to the event parameter which was specified on the 
  32839.               OdeDDOpen for this DDE environment. 
  32840.  
  32841. papplication  A pointer to the name of the application to be used in the 
  32842.               WinDdeRespond function call. 
  32843.  
  32844. ptopic        A pointer to the name of the topic to be used in the 
  32845.               WinDdeRespond function call. 
  32846.  
  32847. pconvcontext  A pointer to a conversation context structure to be used in the 
  32848.               WinDdeRespond function call. 
  32849.  
  32850.  
  32851. ΓòÉΓòÉΓòÉ 225.2.15.1. Return Codes ΓòÉΓòÉΓòÉ
  32852.  
  32853. This function should return a type UINT with one of the following values: 
  32854.  
  32855. TRUE        Accept this conversation. 
  32856.  
  32857. FALSE       Ignore this conversation. 
  32858. The Initiate function operates to the following specification: 
  32859.  
  32860. o It will be called from the PM window procedure for this DDE environment using 
  32861.   SYSTEM linkage and should be reentrant. 
  32862.  
  32863. o Addressing considerations - 32 bit mode 
  32864.  
  32865. o The Initiate function should complete processing in a timely manner because 
  32866.   it is called synchronously from a window procedure. 
  32867.  
  32868. o A DDE server environment must support one application and topic. Thus it is 
  32869.   not permissible for an Initiate function to return different values for 
  32870.   application and topic for different invocations in the same DDE environment. 
  32871.  
  32872. o If the Initiate function returns TRUE the papplication and ptopic pointers 
  32873.   must point to non-NULL strings. The pconvcontext pointer may either be NULL 
  32874.   or a pointer to a valid CONVCONTEXT structure. 
  32875.  
  32876. o The memory for the application, topic, and conversation context must not be 
  32877.   freed before the DDE environment has been shut. 
  32878.  
  32879.  
  32880. ΓòÉΓòÉΓòÉ 225.2.16. User-supplied Event function ΓòÉΓòÉΓòÉ
  32881.  
  32882. Respond to event messages received by a DDE environment. 
  32883.  
  32884. There will one instance of the event function for each conversation within a 
  32885. DDE environment. An example of an event message would be a DDE message being 
  32886. received which requested a data item. 
  32887.  
  32888. The event function may call DDE services to respond to an event. For instance, 
  32889. it may call OdeDDData in response to a OdeDDRequest event. 
  32890.  
  32891. Being caller-specific it is not possible to describe the processing for this 
  32892. routine in detail here. 
  32893.  
  32894. hddeconv    Handle of the DDE conversation for which this event function is 
  32895.             processing events. 
  32896.  
  32897. peventparm  A pointer to the event parameter which was specified on the 
  32898.             OdeDDOpen for this DDE environment or NULL if no event parameter 
  32899.             was specified. 
  32900.  
  32901.  
  32902. ΓòÉΓòÉΓòÉ 225.2.16.1. Return Codes ΓòÉΓòÉΓòÉ
  32903.  
  32904. This function should not return a value. 
  32905.  
  32906. The event function should operate to the following specification: 
  32907.  
  32908. o It will be called using SYSTEM linkage and should be reentrant. Each instance 
  32909.   of the event function will run on a separate thread. 
  32910.  
  32911. o Addressing considerations - 32 bit mode 
  32912.  
  32913. o Mandatory operations: 
  32914.  
  32915.    All events                      The function should obey the rules of PM DDE 
  32916.                                    as they relate to operations within a 
  32917.                                    conversation. 
  32918.  
  32919.                                    The function should issue OdeDDGetMsg in a 
  32920.                                    loop until the return code indicates that 
  32921.                                    the function is to terminate. 
  32922.  
  32923.    ADVISE/UNADVISE messages        It is the callers responsibility to provide 
  32924.                                    a mechanism to stop adviseing on a certain 
  32925.                                    item when an UNADVISE is received for that 
  32926.                                    item. 
  32927.  
  32928.    Termination                     OdeDDGetMsg will return an appropriate value 
  32929.                                    when an unsolicited terminate message is 
  32930.                                    received. 
  32931.  
  32932.                                    The function must not issue DDE services 
  32933.                                    which reference this conversation once it 
  32934.                                    has been asked to terminate. 
  32935.  
  32936.  
  32937. ΓòÉΓòÉΓòÉ 225.2.17. Function Return Codes ΓòÉΓòÉΓòÉ
  32938.  
  32939. DDE Services functions provide a return code to indicate their success or 
  32940. otherwise. The return codes are structured into ranges relating to user errors, 
  32941. environmental errors or internal errors. 
  32942.  
  32943. The different ranges of return codes are shown below. C constants are defined 
  32944. to delimit the ranges. 
  32945.  
  32946. User errors 
  32947.  
  32948. Environmental errors 
  32949.  
  32950. Internal errors 
  32951.  
  32952.  
  32953. ΓòÉΓòÉΓòÉ 225.2.17.1. User errors ΓòÉΓòÉΓòÉ
  32954.  
  32955. DD_RET_USER_FIRST               First message 
  32956.  
  32957. DD_RET_USER_LAST                Last message 
  32958.  
  32959. DD_RET_TYPE_INVALID             An invalid value for type was specified. User 
  32960.                                 action, correct the value and retry the 
  32961.                                 function call. 
  32962.  
  32963. DD_RET_SERIALISEFLAGS_INVALID   An invalid value for serialiseflags was 
  32964.                                 specified. User action, correct the value and 
  32965.                                 retry the function call. 
  32966.  
  32967. DD_RET_PHDDEENV_NULL            A NULL PHDDEENV pointer was specified. User 
  32968.                                 action, supply a valid pointer to a HDDEENV and 
  32969.                                 retry the function call. 
  32970.  
  32971. DD_RET_PHDDECONV_NULL           A NULL PHDDECONV pointer was specified. User 
  32972.                                 action, supply a valid pointer to a HDDECONV 
  32973.                                 and retry the function call. 
  32974.  
  32975. DD_RET_APPLICATION_NULL         A NULL application was specified. User action, 
  32976.                                 supply a non-NULL string and retry the function 
  32977.                                 call. 
  32978.  
  32979. DD_RET_TOPIC_NULL               A NULL topic was specified. User action, supply 
  32980.                                 a non-NULL string and retry the function call. 
  32981.  
  32982. DD_RET_PDDESTRUCT_NULL          A NULL PDDESTRUCT pointer was specified. User 
  32983.                                 action, supply a valid pointer to a DDESTRUCT 
  32984.                                 and retry the function call. 
  32985.  
  32986. DD_RET_PDDERESP_NULL            A NULL PDDERESP pointer was specified. User 
  32987.                                 action, supply a valid pointer to a DDERESP and 
  32988.                                 retry the function call. 
  32989.  
  32990. DD_RET_EF_NULL                  A NULL event function was specified. User 
  32991.                                 action, supply an event function and retry the 
  32992.                                 function call. 
  32993.  
  32994. DD_RET_INITFUN_INVALID          An initiate function was not supplied for a 
  32995.                                 DD_TYP_SERVER. User action, supply an initiate 
  32996.                                 function and retry the function call. 
  32997.  
  32998.  
  32999. ΓòÉΓòÉΓòÉ 225.2.17.2. Environmental errors ΓòÉΓòÉΓòÉ
  33000.  
  33001. DD_RET_ENV_FIRST                First message 
  33002.  
  33003. DD_RET_ENV_LAST                 Last message 
  33004.  
  33005. DD_RET_WAIT_TIMEOUT             No reply has been received within the specified 
  33006.                                 timeout period. User action, check the DDE 
  33007.                                 environment for missing or malfunctioning 
  33008.                                 components. Correct any problems found and 
  33009.                                 retry the operation. 
  33010.  
  33011. DD_RET_SIP                      The DDE environment specified on this function 
  33012.                                 call has previously been shut. User action, 
  33013.                                 investigate the reason why it has been shut. 
  33014.                                 Correct any problems found and retry the 
  33015.                                 operation. 
  33016.  
  33017. DD_RET_TIP                      The DDE conversation specified on this function 
  33018.                                 call has previously been terminated by this DDE 
  33019.                                 environment. User action, investigate the 
  33020.                                 reason why it has been terminated. Correct any 
  33021.                                 problems found and retry the operation. 
  33022.  
  33023. DD_RET_UTIP                     The DDE conversation specified on this function 
  33024.                                 call has previously been terminated by the 
  33025.                                 conversation partner. User action, investigate 
  33026.                                 the reason why it has been terminated. Correct 
  33027.                                 any problems found and retry the operation. 
  33028.  
  33029. DD_RET_INITIATE_FAILED          No response has been received to a 
  33030.                                 WinDdeInitiate function call. User action, 
  33031.                                 check the DDE environment for missing or 
  33032.                                 malfunctioning components. Correct any problems 
  33033.                                 found and retry the operation. 
  33034.  
  33035.  
  33036. ΓòÉΓòÉΓòÉ 225.2.17.3. Internal errors ΓòÉΓòÉΓòÉ
  33037.  
  33038. DD_RET_INT_FIRST                First message 
  33039.  
  33040. DD_RET_INT_LAST                 Last message 
  33041.  
  33042. User action. No user action is required. Contact IBM for further assistance. 
  33043.  
  33044. Chapter file for ftd94mst 
  33045.  
  33046.  
  33047. ΓòÉΓòÉΓòÉ 225.3. Dummy heading ΓòÉΓòÉΓòÉ
  33048.  
  33049. Dummy para 
  33050.  
  33051.  
  33052. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33053.  
  33054. expression is any expression that produces a numeric value. 
  33055.  
  33056.  
  33057. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33058.  
  33059. cosine is the cosine of the required angle. 
  33060.  
  33061.  
  33062. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33063.  
  33064. string1 is the destination string. 
  33065.  
  33066.  
  33067. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33068.  
  33069. string2 is the string to be inserted. 
  33070.  
  33071.  
  33072. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33073.  
  33074. number is the number of a word in string1 after which string2 is inserted. 
  33075.  
  33076. If number is zero, ADDWORD() inserts string2 at the start of string1. 
  33077.  
  33078. If number is omitted, ADDWORD() places string2 at the end of string1. 
  33079.  
  33080.  
  33081. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33082.  
  33083. separator is the character to be used as a word separator within the strings. 
  33084. It can only be a single character string. If it is omitted, the separator 
  33085. defaults to a space. 
  33086.  
  33087.  
  33088. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33089.  
  33090. expression is any numeric expression. 
  33091.  
  33092.  
  33093. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33094.  
  33095. type specifies the type of adjustment required, and takes one of the following 
  33096. values: (the values can be abbreviated to a single letter) 
  33097.  
  33098. "NEAREST"     Rounds to the nearest number. 5 is rounded up. 
  33099.  
  33100. "UP"          Adjusts to the next higher number in a positive direction. 
  33101.  
  33102. "DOWN"        Adjusts to the next lower number in a negative direction. 
  33103.  
  33104. "TRUNCATE"    Truncates the number (removes the low order digits). 
  33105.  
  33106. "BANKERS"     Rounds trailing 5s up if preceded by an odd number. Otherwise 
  33107.               rounds them down. 
  33108.  
  33109. If type is omitted, NEAREST is assumed. 
  33110.  
  33111.  
  33112. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33113.  
  33114. position specifies the number of decimal places required. A negative value for 
  33115. position means an equivalent adjustment to the integer, not decimal, part of 
  33116. the adjusted number. -1 rounds to tens,  -2 rounds to hundreds, and so on. 
  33117.  
  33118. If position is not specified, or is zero, the value is adjusted to provide an 
  33119. integer result. 
  33120.  
  33121.  
  33122. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33123.  
  33124. result is the array used to hold the result of the analysis. 
  33125.  
  33126. If only one input array is specified (col1), then result is a one-dimensional 
  33127. array. 
  33128.  
  33129. If a column array is specified (col2), then result is a two-dimensional array. 
  33130.  
  33131.  
  33132. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33133.  
  33134. col1 is the first array to be scanned. 
  33135.  
  33136.  
  33137. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33138.  
  33139. col1vals is the array containing the values to be scanned for in col1. All 
  33140. other values are ignored. 
  33141.  
  33142.  
  33143. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33144.  
  33145. col2 if specified, is the second array to be scanned. 
  33146.  
  33147.  
  33148. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33149.  
  33150. col2vals is the array containing the values to be scanned for in col2. All 
  33151. other values are ignored. 
  33152.  
  33153.  
  33154. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33155.  
  33156. col3sum is an array with its values accumulated in the elements of result. If 
  33157. omitted, a count of occurrences appears in result. 
  33158.  
  33159.  
  33160. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33161.  
  33162. sine is the sine of the required angle. 
  33163.  
  33164.  
  33165. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33166.  
  33167. tangent is the tangent of the required angle. 
  33168.  
  33169.  
  33170. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33171.  
  33172. ENABLE The BREAK ENABLE statement lets control breaks be recognized. A program 
  33173. that enables breaks should contain an ON BREAK block. A program that does not 
  33174. contain an ON BREAK block will be interrupted, but the break will remain 
  33175. outstanding for the calling task to handle. 
  33176.  
  33177.  
  33178. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33179.  
  33180. DISABLE The BREAK DISABLE statement causes breaks to be deferred. Multiple 
  33181. control breaks are recognized. After a sequence of six control breaks, a break 
  33182. event is signaled even under a BREAK DISABLE condition. On entry to any ON 
  33183. block, breaks are disabled. 
  33184.  
  33185.  
  33186. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33187.  
  33188. CHECK The BREAK CHECK statement lets a control break happen without changing 
  33189. the BREAK ENABLE or BREAK DISABLE state. 
  33190.  
  33191.  
  33192. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33193.  
  33194. CANCEL The BREAK CANCEL statement cancels any outstanding control breaks. 
  33195.  
  33196.  
  33197. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33198.  
  33199. SIMULATE The BREAK SIMULATE statement simulates control break entered by an end 
  33200. user at that point in the program. This is to allow programs to be tested. 
  33201.  
  33202.  
  33203. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33204.  
  33205. procedure is the name of a procedure, which must be defined elsewhere using a 
  33206. PROCEDURE or LIBRARY statement, or an indirect reference to such a procedure. 
  33207. object'action 
  33208.  
  33209.  
  33210. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33211.  
  33212. object'action is the name of an object action routine. 
  33213.  
  33214.  
  33215. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33216.  
  33217. parameter can be any expression. The value of this expression is passed to the 
  33218. routine. A maximum of twenty parameters can be passed in one CALL statement. 
  33219. For a direct CALL to a procedure, the number of parameters on the CALL must 
  33220. match the number of variables in the PROCEDURE statement. This restriction does 
  33221. not apply to indirect procedure calls using procedure pointers. In this case, 
  33222. parameter lists are truncated or extended with NULL values as necessary. For a 
  33223. CALL to an action routine, the number of parameters can vary and is as defined 
  33224. for the object involved. For a direct call to a procedure with no parameters, 
  33225. the enclosing parentheses () can be omitted. 
  33226.  
  33227.  
  33228. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33229.  
  33230. string is the string to be searched. 
  33231.  
  33232.  
  33233. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33234.  
  33235. number is the position of the word in the string. 
  33236.  
  33237.  
  33238. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33239.  
  33240. separator is the character to be used to separate the words in the string. 
  33241.  
  33242.  
  33243. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33244.  
  33245. dinput is a decimal integer. Up to 20 integers may be used to create the 
  33246. string. 
  33247.  
  33248.  
  33249. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33250.  
  33251. string is the string to be searched. 
  33252.  
  33253.  
  33254. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33255.  
  33256. number is the position of the word in the string. 
  33257.  
  33258.  
  33259. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33260.  
  33261. separator is the character to be used to separate the words in the string. 
  33262.  
  33263.  
  33264. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33265.  
  33266. variableref is the reference to the variable to be cleared. 
  33267.  
  33268.  
  33269. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33270.  
  33271. expression can be a variable or a one-dimensional array. 
  33272.  
  33273.  
  33274. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33275.  
  33276. start is the first element of the array given by expression that CLENGTH() is 
  33277. to test. The default is 1. 
  33278.  
  33279.  
  33280. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33281.  
  33282. end is the last element that CLENGTH() is to test. The default is the last 
  33283. element in expression. 
  33284.  
  33285.  
  33286. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33287.  
  33288. sep if provided, prevents the function from including trailing separators in 
  33289. the count of characters. 
  33290.  
  33291.  
  33292. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33293.  
  33294. expression1 An expression of any data type. 
  33295.  
  33296.  
  33297. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33298.  
  33299. expression2 An expression of any data type. 
  33300.  
  33301.  
  33302. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33303.  
  33304. option Controls the behaviour of NULLs: 
  33305.  
  33306. -1      Treat a NULL as lower than any non-NULL value. This is the default. 
  33307. 1       Treat a NULL as higher than any non-NULL value. 
  33308. 0       Treat a NULL as a NULL. 
  33309.  
  33310. The result of COMPARE() can be: 
  33311.  
  33312. -1        expression1 < expression2 
  33313. 1         expression1 > expression2 
  33314. 0         expression1 = expression2 
  33315. NULL      option is 0, and either expression1 or expression2 is NULL 
  33316.  
  33317.  
  33318. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33319.  
  33320. oldname is the original variable. 
  33321.  
  33322.  
  33323. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33324.  
  33325. newname is the variable to be copied to. 
  33326.  
  33327.  
  33328. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33329.  
  33330. StartElement is the start element in the source variable. (The default is 
  33331. element one.) 
  33332.  
  33333.  
  33334. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33335.  
  33336. Number is the number of elements to copy. (The default is all elements. If 
  33337. Number is greater than the number of elements, all elements are copied.) 
  33338.  
  33339.  
  33340. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33341.  
  33342. angle is the angle for which the cosine is required. 
  33343.  
  33344.  
  33345. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33346.  
  33347. expression is the data to be counted. It can consist of up to nine constants, 
  33348. scalars, or vectors, separated by commas. A complete vector can be checked by 
  33349. referring to its dictionary entry using the subscript [0]. 
  33350.  
  33351.  
  33352. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33353.  
  33354. target is the string onto which a new substring is to be overlaid. 
  33355.  
  33356.  
  33357. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33358.  
  33359. repstr is the new substring. 
  33360.  
  33361.  
  33362. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33363.  
  33364. num is number of the character (counting from the start of target, at which 
  33365. overlaying is to start. If num is omitted, overlaying starts at the first 
  33366. character in target. 
  33367.  
  33368.  
  33369. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33370.  
  33371. len is the number of characters in the target to be overlaid. The default is 
  33372. the length of repstr. 
  33373.  
  33374. If len is zero, repstr is inserted immediately before byte number num rather 
  33375. than overlaying any part of target. If len is greater than the length of 
  33376. repstr, repstr is not padded out to the right. Instead, the overlay still takes 
  33377. place but excess characters up to len are removed. (This allows a short 
  33378. substring to overlay a long substring.) 
  33379.  
  33380.  
  33381. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33382.  
  33383. pad is the SBCS character used for padding target if the length of target is 
  33384. less than number. Any pad parameter must be a single character. The default pad 
  33385. character is a space. 
  33386.  
  33387.  
  33388. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33389.  
  33390. string is the string to be padded. 
  33391.  
  33392.  
  33393. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33394.  
  33395. length is the total number of characters (not bytes) to which string is to be 
  33396. extended with pad characters. length must be at least as much as the original 
  33397. length of string, but no more than the maximum system string length. 
  33398.  
  33399.  
  33400. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33401.  
  33402. type specifies how the padding is applied: 
  33403.  
  33404. "L"   Leading-padding to the left of string 
  33405. "T"   Trailing-padding to the right of string 
  33406. "C"   Center-padding to both left and right of string. 
  33407.  
  33408. The default is "L". 
  33409.  
  33410.  
  33411. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33412.  
  33413. pad is the character with which the string is padded. pad must be a 
  33414. one-character string. The default pad character is a space. 
  33415.  
  33416.  
  33417. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33418.  
  33419. strip specifies whether leading or trailing blanks should be removed before 
  33420. padding: 
  33421.  
  33422. "B"   Both-leading and trailing spaces removed 
  33423. "N"   Neither-no leading or trailing spaces removed 
  33424. "L"   Leading-only leading spaces removed 
  33425. "T"   Trailing-only trailing spaces removed. 
  33426.  
  33427. The default is "B". 
  33428.  
  33429.  
  33430. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33431.  
  33432. expression1 gives a character string to be scanned. 
  33433.  
  33434.  
  33435. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33436.  
  33437. expression2 gives a string of one or more characters which are to be tested for 
  33438. within expression1. 
  33439.  
  33440.  
  33441. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33442.  
  33443. start is the character position within expression1 from which the scan is to 
  33444. start. The default for start is 1, the first character position. 
  33445.  
  33446. If start is beyond the position of the last character of expression1, start is 
  33447. assigned the position of the character at the end of the string.. 
  33448.  
  33449.  
  33450. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33451.  
  33452. end is the character position within expression1 at which the scan is to end. 
  33453. The default for end is the final character position. 
  33454.  
  33455. If the start position is greater than the end position, then scanning is done 
  33456. from the last character of the string expression1 backwards to end. 
  33457.  
  33458.  
  33459. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33460.  
  33461. compare specifies the type of scan to be carried out. It can be one of the 
  33462. comparison operators: 
  33463.  
  33464. "="     Search for the first occurrence of expression2 in expression1. Case of 
  33465.         characters is ignored for SBCS.  With DBCS, the characters are compared 
  33466.         on a case-sensitive basis. 
  33467.  
  33468. "\="    Search for the first nonoccurrence of expression2 in expression1. Case 
  33469.         of characters is ignored for SBCS.  With DBCS, the characters are 
  33470.         compared on a case-sensitive basis. 
  33471.  
  33472. "=="    Search for the first occurrence of expression2 in expression1. 
  33473.         Characters are compared on a case-sensitive basis. 
  33474.  
  33475. "\=="   Search for the first nonoccurrence of expression2 in expression1. 
  33476.         Characters are compared on a case-sensitive basis. 
  33477.  
  33478.  
  33479. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33480.  
  33481. type specifies the type of comparison to be performed: 
  33482.  
  33483. "*"     Search expression1 for the entire string in expression2 
  33484.  
  33485. "1"     Search expression1 for any character in expression2. 
  33486.  
  33487. The default for type is  "*". 
  33488.  
  33489.  
  33490. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33491.  
  33492. expression gives a value to be split. 
  33493.  
  33494.  
  33495. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33496.  
  33497. startpoint is the character position within expression from which the split is 
  33498. to start (that is, the part to be extracted starts at this character position). 
  33499. startpoint must be an integer. 
  33500.  
  33501.  
  33502. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33503.  
  33504. length gives the number of characters to be split off, or extracted. length is 
  33505. optional. If length is omitted, the default value is from startpoint to the end 
  33506. of the string. 
  33507.  
  33508.  
  33509. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33510.  
  33511. filler specifies the filler character. The filler character is any character 
  33512. which, when present, is used to pad out the extracted part to the value of 
  33513. length if there are not enough input characters.  This would happen if the 
  33514. number of characters between startpoint and the end of expression is less than 
  33515. the specified length. When a justify parameter is present, filler defaults to a 
  33516. blank (" "). filler only pads up to the maximum string length. 
  33517.  
  33518.  
  33519. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33520.  
  33521. justify specifies how the extracted characters are placed in the output string, 
  33522. assuming padding occurs. (If filler is not specified, a comma must be included 
  33523. if justify is to be specified.) 
  33524.  
  33525. The values permitted for justify are: 
  33526.  
  33527. "L" Left justify (default) 
  33528. "R" Right justify. 
  33529.  
  33530.  
  33531. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33532.  
  33533. string is the string to be trimmed. 
  33534.  
  33535.  
  33536. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33537.  
  33538. type specifies whether leading or trailing blanks should be removed: 
  33539.  
  33540. "B" Both-leading and trailing spaces removed 
  33541. "N" Neither-no leading or trailing spaces removed 
  33542. "L" Leading-only leading spaces removed 
  33543. "T" Trailing-only trailing spaces removed. 
  33544.  
  33545. The default is "B". 
  33546.  
  33547.  
  33548. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33549.  
  33550. string is the string to be tested. 
  33551.  
  33552.  
  33553. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33554.  
  33555. number is the number of the character required. 
  33556.  
  33557.  
  33558. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33559.  
  33560. separator is the separator to be used. The default separator is a space. 
  33561.  
  33562.  
  33563. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33564.  
  33565. variable is the string, or number to be converted. 
  33566.  
  33567. The parameter is optional, if omitted it defaults to the current date. 
  33568.  
  33569.  
  33570. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33571.  
  33572. format is the format which describes the date.  If it is omitted, the default 
  33573. short date format is used. 
  33574.  
  33575. If the input is unambiguous, it will be converted correctly whether it follows 
  33576. the specified format or not. 
  33577.  
  33578.  
  33579. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33580.  
  33581. options This is a list of any of the following keywords in any order. 
  33582.  
  33583. LOCAL     Data is local to a block. This is the default if the declaration is 
  33584.           within a block. 
  33585.  
  33586. TASK      Data is local to the task. This is the default if the declaration is 
  33587.           outside all blocks. 
  33588.  
  33589. GLOBAL    Data is global. 
  33590.  
  33591. NULL      Data may take NULL values. 
  33592.  
  33593. NONNULL   Data may not take NULL values. This is the default. 
  33594.  
  33595. CLEAR     The data is cleared when it is allocated. 
  33596.  
  33597. DEFINED   Storage is not allocated for the data until a DEFINE statement is 
  33598.           executed. This is only valid for TASK data. 
  33599.  
  33600.  
  33601. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33602.  
  33603. datatype This is one of ASL datatypes: 
  33604.  
  33605. o NUMERIC 
  33606. o CHARACTER 
  33607. o DATE 
  33608. o TIME 
  33609. o POINTER 
  33610. o GRAPHIC 
  33611. or it can be 
  33612.  
  33613. o UNTYPED 
  33614.  
  33615. indicating that the variable has no fixed data type. 
  33616.  
  33617. For GLOBAL data only, the datatype may also be any Object Class. 
  33618.  
  33619.  
  33620. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33621.  
  33622. limit This can be specified for CHARACTER, GRAPHIC and UNTYPED data, and limits 
  33623. the number of characters that can be held by the variable. If it is omitted, it 
  33624. defaults to [1]. 
  33625.  
  33626.  
  33627. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33628.  
  33629. name This is the name of the variable. It is a single-part name which follows 
  33630. normal name rules. This indicates that the data is an array, and specifies the 
  33631. extent and dimensions. Arrays can be one dimensional or two dimensional. If it 
  33632. is omitted, the variable is a scalar. 
  33633.  
  33634.  
  33635. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33636.  
  33637. initializer This is used to initialize a scalar, or all elements of an array. 
  33638. DECLARE statements must be placed at the top of the event or procedure, before 
  33639. any other ASL statements. 
  33640.  
  33641.  
  33642. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33643.  
  33644. variableref is the name of the array or table being defined. 
  33645.  
  33646.  
  33647. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33648.  
  33649. exp1 is an expression which, in the absence of expression exp2, gives a number 
  33650. which is the number of elements in a one-dimensional array. 
  33651.  
  33652. If exp1 is specified along with exp2, exp1 is the number of elements in the 
  33653. first dimension of a two-dimensional array. Both exp1 and exp2 can be integers 
  33654. or expressions which produce integers. 
  33655.  
  33656. If exp1 is given as an asterisk, then the variable is a one-dimensional array 
  33657. with no entries, typically a column of a table. The asterisk indicates that 
  33658. there can be any number of elements. 
  33659.  
  33660. The columns of a table are usually defined with an asterisk to indicate that 
  33661. there can be any number of rows. After applying DEFINE to each column, you must 
  33662. call the SETKEYS() action on the TABLE object in order to identify the key 
  33663. columns. 
  33664.  
  33665. When exp1 is an asterisk, exp2 and exp3 do not apply. 
  33666.  
  33667.  
  33668. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33669.  
  33670. exp3 is any expression, the value of which can be assigned to all new elements 
  33671. in the variable. 
  33672.  
  33673. If exp3 is not specified, then all elements of the variable are initialized to 
  33674. NULL. 
  33675.  
  33676.  
  33677. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33678.  
  33679. expression is the expression to be tested. If the data type is not NULL, the 
  33680. value 1 (true) is returned. Otherwise, the value 0 (false) is returned. 
  33681.  
  33682.  
  33683. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33684.  
  33685. radians is the value to be converted from radians to degrees. 
  33686.  
  33687.  
  33688. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33689.  
  33690. variableref is the variable which is the subject of the deletion.  This can be 
  33691. a scalar variable or an array. A complete row of a table of which variableref 
  33692. is a column can be deleted. If it is an array, all or selected elements of it 
  33693. can be deleted. 
  33694.  
  33695.  
  33696. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33697.  
  33698. expression1 gives up to 16 values in the key columns of a table, and these are 
  33699. used to identify the row in the table you wish to delete. 
  33700.  
  33701.  
  33702. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33703.  
  33704. expression2 specifies an element in a one-dimensional array. 
  33705.  
  33706.  
  33707. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33708.  
  33709. string is the string from which words are to be deleted. 
  33710.  
  33711.  
  33712. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33713.  
  33714. start is the number of the first word to be deleted. is the total number of 
  33715. words to be deleted. If number is omitted, all the words in the string after 
  33716. start are deleted. If number exceeds the number of remaining words, all 
  33717. remaining words are removed and no error results. 
  33718.  
  33719.  
  33720. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33721.  
  33722. separator is the character to be used as a word separator within the strings, 
  33723. and can only be a single-character string. It is optional and defaults to a 
  33724. space if omitted. 
  33725.  
  33726.  
  33727. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33728.  
  33729. messageid is the identifier of the message template to be used. 
  33730.  
  33731.  
  33732. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33733.  
  33734. text is the text to be inserted into the message template. 
  33735.  
  33736. The message templates are as follows: 
  33737.  
  33738. "FTB0001", "FTB10001" Progress message 
  33739. "FTB0002", "FTB10002" Information message 
  33740. "FTB0003", "FTB10003" Warning message 
  33741. "FTB0004", "FTB10004" Error message with OK push button only 
  33742. "FTB0005", "FTB10005" Error message with OK and Cancel push buttons 
  33743. "FTB0006", "FTB10006" Error message with Retry and Cancel push buttons 
  33744. "FTB0007", "FTB10007" Error message with Abort, Retry, and Ignore push buttons 
  33745. "FTB0008", "FTB10008" Error message with Yes and No push buttons. 
  33746.  
  33747. All message templates create a temporary window for displaying a message. The 
  33748. templates with four-digit numbers display a message prefix, including the text 
  33749. "FTB". The templates with five-digit numbers do not display the message prefix. 
  33750.  
  33751.  
  33752. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33753.  
  33754. expression1 is the dividend. 
  33755.  
  33756.  
  33757. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33758.  
  33759. expression2 is the divisor. 
  33760.  
  33761.  
  33762. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33763.  
  33764. expression3 is the numeric expression that will be returned when expression2 
  33765. evaluates to zero or NULL. If this parameter is omitted, NULL is returned when 
  33766. expression2 evaluates to zero or NULL, and no error message is shown. 
  33767.  
  33768.  
  33769. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33770.  
  33771. variable is a single-value variable. When a set of statements is executed 
  33772. repeatedly, variable is set at the start of each iteration. 
  33773.  
  33774.  
  33775. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33776.  
  33777. start gives the starting value for a range of values specified by start:limit. 
  33778. limit gives the final value for a range of values specified by start:limit. 
  33779.  
  33780. Repetition ends when the increment variable is greater than limit for 
  33781. incrementing loops, or less than limit for decrementing loops.  If this is true 
  33782. of the start value, the loop terminates immediately and statements is not 
  33783. executed. 
  33784.  
  33785.  
  33786. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33787.  
  33788. step is an optional step value which can accompany the range of values 
  33789. specified by start:limit. If this parameter is omitted, it defaults to 1. 
  33790.  
  33791.  
  33792. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33793.  
  33794. statements is one or more ASL statements to be grouped together by this 
  33795. DO...END. This may be empty. 
  33796.  
  33797.  
  33798. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33799.  
  33800. expr1 must be an expression which yields a value of data type DATE or TIME. 
  33801.  
  33802.  
  33803. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33804.  
  33805. expr2 may yield a value of the same type as expr1 or a number.  If it is a DATE 
  33806. or TIME value, then expr1 is subtracted from this value to provide the result. 
  33807. This result is expressed in the units specified by type, and is numeric. expr2 
  33808. - expr1 can be a positive or negative value. 
  33809.  
  33810. If expr2 is not a DATE or TIME value, then it must be a number, positive or 
  33811. negative, of whatever units are specified by type. expr1 is adjusted 
  33812. accordingly, and the result is a DATE or TIME. 
  33813.  
  33814.  
  33815. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33816.  
  33817. type gives the units of expr2. If expr1 is a DATE, type can be: 
  33818.  
  33819. "P"  Periods 
  33820. "D"  Days (default) 
  33821. "W"  Weeks 
  33822. "M"  Months 
  33823. "Y"  Years. 
  33824.  
  33825. If the data type of expr1 is DATE, then the default type is "D" (Days). 
  33826.  
  33827. If expr1 is a TIME, type can be: 
  33828.  
  33829. "H"  Hours 
  33830. "M"  Minutes 
  33831. "S"  Seconds (default) 
  33832. "C"  Hundredths of a second 
  33833. "T"  Thousandths of a second. 
  33834.  
  33835. If the data type of expr1 is TIME, then the default type is "T". 
  33836.  
  33837.  
  33838. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33839.  
  33840. period gives the number of periods in a day, and can be used only if expr1 is a 
  33841. date and type is "P". period can be any number between 2 and 48 (a day with 
  33842. just one period is merely a day).  The first possible period number in any date 
  33843. is always 0- so periods may range from 0 to 47. Note that, if you use multiple 
  33844. dates in a calculation, both must be based on the same number of periods per 
  33845. day. 
  33846.  
  33847. Unless period is specifically set, a date assignment always sets it to 0. 
  33848.  
  33849.  
  33850. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33851.  
  33852. statementlist is the set of statements to be executed if the associated IF 
  33853. condition is not met. 
  33854.  
  33855.  
  33856. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33857.  
  33858. reference is either the name of, or a pointer to, a vector, an array, or a 
  33859. column of a table. It can be an expression that evaluates to the name or 
  33860. pointer. 
  33861.  
  33862.  
  33863. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33864.  
  33865. number indicates the visual cue displayed in the pop-up window and whether the 
  33866. message prefix, including the text "FTB", is displayed. 
  33867.  
  33868. 1         Information sign and message prefix 
  33869. 2         Warning sign and message prefix 
  33870. 3         Stop sign and message prefix 
  33871. 10001     Information sign, no message prefix 
  33872. 10002     Warning sign, no message prefix 
  33873. 10003     Stop sign, no message prefix 
  33874.  
  33875.  
  33876. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33877.  
  33878. messagetext is the text of the message itself, and can be a text string, 
  33879. variable, expression, or any combination of these. 
  33880.  
  33881.  
  33882. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33883.  
  33884. parameter is a value for a variable which can be included in the text of 
  33885. messagetext. The values are separated by commas and substituted in the order in 
  33886. which they are listed into place-holder underscore (_) or caret (^) characters 
  33887. in the text. If messagetext is not present, the values of the variables are 
  33888. listed in the order in which the variables occur in the ERROR statement. 
  33889.  
  33890.  
  33891. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33892.  
  33893. expression is a string which contains an ASL language expression. 
  33894.  
  33895.  
  33896. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33897.  
  33898. base is the base for the exponentiation. If base is not specified, base e 
  33899. (2.718281828459) is assumed. 
  33900.  
  33901.  
  33902. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33903.  
  33904. expression is any number or numeric expression for the power to which base is 
  33905. raised. 
  33906.  
  33907.  
  33908. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33909.  
  33910. string is a string containing trigger characters followed by the names of 
  33911. global values. The names of the global values are returned in the result, and 
  33912. all other characters are replaced by blanks. 
  33913.  
  33914.  
  33915. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33916.  
  33917. trigger is one or more SBCS characters, any of which can be used to trigger the 
  33918. replacement of global values. If trigger is omitted, @ is assumed. 
  33919.  
  33920.  
  33921. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33922.  
  33923. number is the number for which the factorial is required. It should be an 
  33924. integer greater than or equal to 0 and less than 70. Real numbers are 
  33925. truncated. 
  33926.  
  33927. NULLs produce NULL. Any other value produces an error. 
  33928.  
  33929.  
  33930. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33931.  
  33932. number is the message number to be placed in ERROR. 
  33933.  
  33934.  
  33935. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33936.  
  33937. fill optional fill text to be associated with ERROR. 
  33938.  
  33939.  
  33940. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33941.  
  33942. statementlist is one or more statements to be executed if the CASE expression 
  33943. equals the value 0. 
  33944.  
  33945.  
  33946. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33947.  
  33948. ref is a one-dimensional array, or a column within a table. 
  33949.  
  33950.  
  33951. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33952.  
  33953. value is the value for which a position in the specified array is required. 
  33954.  
  33955.  
  33956. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33957.  
  33958. first The first element of the array within which the search is to be 
  33959. performed. If first is not supplied, it defaults to 1. If first is greater than 
  33960. last, then ref is searched in reverse order. 
  33961.  
  33962.  
  33963. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33964.  
  33965. last The last element of the array within which the search is to be performed. 
  33966. If last is not supplied, it defaults to the number of elements in the array. If 
  33967. last is less than first, then ref is searched in reverse order. 
  33968.  
  33969.  
  33970. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33971.  
  33972. compare specifies the type of find to be carried out, and can be any comparison 
  33973. operator: 
  33974.  
  33975. "<="    Less than or equal to 
  33976. "<"     Less than 
  33977. "\<"    Not less than 
  33978. ">="    Greater than or equal to 
  33979. ">"     Greater than 
  33980. "\>"    Not greater than 
  33981. "<>"    Not equal 
  33982. "="     Equal (not case sensitive) 
  33983. "\="    Not equal 
  33984. "=="    Equal (case sensitive) 
  33985. "\=="   Not equal (case sensitive). 
  33986.  
  33987. The default value for compare is "=". 
  33988.  
  33989.  
  33990. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33991.  
  33992. statementlist is a single statement or a block of statements. Any errors 
  33993. arising in statementlist are ignored. 
  33994.  
  33995.  
  33996. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  33997.  
  33998. location is the name of the location, with or without a trailing backslash (\). 
  33999.  
  34000.  
  34001. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34002.  
  34003. filename is the name of the file. 
  34004.  
  34005.  
  34006. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34007.  
  34008. vectorin is the vector containing the values to be gathered. 
  34009.  
  34010.  
  34011. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34012.  
  34013. quantity is a vector with its elements corresponding to the values in vectorin. 
  34014. These elements are used to produce sum, max, and min. 
  34015.  
  34016.  
  34017. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34018.  
  34019. unique is the vector into which the unique values are to be gathered. 
  34020.  
  34021.  
  34022. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34023.  
  34024. pos is a vector, each element of which contains a number giving the position of 
  34025. the first occurrence (in vectorin) of the corresponding unique value in unique. 
  34026.  
  34027.  
  34028. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34029.  
  34030. count is a vector, each element of which contains a number corresponding to a 
  34031. discrete value in unique. This is the number of times the unique value was 
  34032. found in vectorin. 
  34033.  
  34034.  
  34035. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34036.  
  34037. sum is a vector containing numbers corresponding to the unique values from 
  34038. vectorin. These numbers are an accumulation of the values in quantity 
  34039. associated with the values in unique. 
  34040.  
  34041.  
  34042. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34043.  
  34044. max is a vector containing the maximum values found in quantity for each value 
  34045. in unique. 
  34046.  
  34047.  
  34048. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34049.  
  34050. min is a vector containing the minimum values found in quantity for each value 
  34051. in unique. 
  34052.  
  34053.  
  34054. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34055.  
  34056. name is the name of the global value 
  34057.  
  34058.  
  34059. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34060.  
  34061. newvalue is a new value for the global. If this is used, the function returns 
  34062. the value before it is changed. 
  34063.  
  34064.  
  34065. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34066.  
  34067. condition is any expression. The result of condition is tested as true 
  34068. (nonzero) or false (zero). 
  34069.  
  34070.  
  34071. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34072.  
  34073. The keyword THEN introduces the statement, or set of statements, to be executed 
  34074. if condition is true. You can omit THEN, but your program is more readable if 
  34075. you include it. 
  34076.  
  34077.  
  34078. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34079.  
  34080. statementlist1 is a statement or set of statements to be executed if the 
  34081. condition is true. 
  34082.  
  34083.  
  34084. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34085.  
  34086. The keyword ELSE introduces statementlist2. statementlist2 is a statement or 
  34087. set of statements to be executed if condition is false. You can omit the entire 
  34088. ELSE block. 
  34089.  
  34090.  
  34091. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34092.  
  34093. condition is any expression. 
  34094.  
  34095.  
  34096. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34097.  
  34098. trueexpr is the expression returned if condition is true. 
  34099.  
  34100.  
  34101. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34102.  
  34103. falseexpr is the expression returned if condition is false. 
  34104.  
  34105.  
  34106. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34107.  
  34108. nullexpr is the expression returned if condition is NULL. 
  34109.  
  34110.  
  34111. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34112.  
  34113. order is the vector which holds the alternative sequence. INDEX places the 
  34114. number of the first reordered row into the first element of order. 
  34115.  
  34116.  
  34117. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34118.  
  34119. column The columns, major to minor, to be indexed. To index a column in 
  34120. descending order, prefix that column with a minus sign (-). 
  34121.  
  34122. Up to 16 columns are allowed. 
  34123.  
  34124.  
  34125. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34126.  
  34127. reference is the vector, or table column. 
  34128.  
  34129.  
  34130. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34131.  
  34132. expression gives the number of the element to be inserted into the vector. 
  34133.  
  34134.  
  34135. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34136.  
  34137. value can be used to supply the value of the new element. 
  34138.  
  34139.  
  34140. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34141.  
  34142. expression1 gives up to 16 values of key columns, which are used to allocate 
  34143. the row in the table. The other elements in the row are set to NULL values. 
  34144. Keys must be enclosed in {} braces. 
  34145.  
  34146.  
  34147. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34148.  
  34149. reference is the vector, or table column. 
  34150.  
  34151.  
  34152. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34153.  
  34154. expression gives the number of the element to be inserted in the vector. 
  34155.  
  34156.  
  34157. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34158.  
  34159. value can be used to supply the value of the new element. 
  34160.  
  34161.  
  34162. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34163.  
  34164. expression1 gives up to 16 values of key columns, which are used to allocate 
  34165. the row in the table. The other elements in the row are set to NULL values. 
  34166. Keys must be enclosed in {} braces. can be used to supply the value of the new 
  34167. element of the referenced column. 
  34168.  
  34169.  
  34170. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34171.  
  34172. string is the string to be operated on. 
  34173.  
  34174.  
  34175. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34176.  
  34177. number is the number of the loop to be iterated. Loops are numbered from the 
  34178. inside outwards.  If it is omitted, ITERATE applies to the innermost loop. 
  34179.  
  34180.  
  34181. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34182.  
  34183. number is the number of the outermost DO ... END block to be terminated. DO ... 
  34184. END blocks are numbered from the innermost block outwards, beginning with 1 
  34185. (the default). 
  34186.  
  34187.  
  34188. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34189.  
  34190. express can be a variable or a one-dimensional array. 
  34191.  
  34192.  
  34193. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34194.  
  34195. start is the first element of the array given by express that LENGTH() is to 
  34196. test. The default is 1. 
  34197.  
  34198.  
  34199. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34200.  
  34201. end is the last element that LENGTH() is to test. The default is the last 
  34202. element in express. 
  34203.  
  34204.  
  34205. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34206.  
  34207. sep if provided, prevents the function including trailing separators in the 
  34208. count of characters. 
  34209.  
  34210.  
  34211. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34212.  
  34213. reference is the variable, array element, or attribute which is to take a new 
  34214. value. It can be a simple name, a name subscripted by [ ] or { }, an indirect 
  34215. reference, or an attribute of any of these. 
  34216.  
  34217.  
  34218. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34219.  
  34220. operator can be  =, indicating a simple assignment of an expression, or a 
  34221. compound operation such as +=, indicating that expression is to be added to 
  34222. reference. See Assignments for a full list of compound operators. 
  34223.  
  34224.  
  34225. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34226.  
  34227. expression gives the value to be assigned. 
  34228.  
  34229.  
  34230. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34231.  
  34232. routine is the name of a procedure or function to be called from the library. 
  34233.  
  34234.  
  34235. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34236.  
  34237. library_name is the name of the ASL library. The name must be a constant (not a 
  34238. variable). 
  34239.  
  34240.  
  34241. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34242.  
  34243. dll_name is the name of the Dynamic Link Library file. The name must be a 
  34244. constant (not a variable). 
  34245.  
  34246.  
  34247. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34248.  
  34249. location is the path where the REXX command files can be found, or is the name 
  34250. of the REXX function library. The location must be a constant (not a variable). 
  34251.  
  34252.  
  34253. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34254.  
  34255. routine is the name of one or more procedures and functions declared as 
  34256. publicly available. 
  34257.  
  34258.  
  34259. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34260.  
  34261. procedure is the name of a procedure that can be called indirectly. 
  34262.  
  34263.  
  34264. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34265.  
  34266. expression is the number of new lines required in the output file, and sets the 
  34267. COUNT attribute to that number. It can be omitted and has a default value of 
  34268. one. 
  34269.  
  34270. If specified, expression must evaluate to a positive integer less than 256. 
  34271.  
  34272.  
  34273. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34274.  
  34275. name is the fully qualified name. 
  34276.  
  34277.  
  34278. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34279.  
  34280. base is the base for the logarithm. If base is not specified, the base of 
  34281. natural logarithms, e (2.718281828459), is assumed. If base is specified, it 
  34282. must be greater than 1 and less than 10**28. 
  34283.  
  34284.  
  34285. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34286.  
  34287. expression is any number or numeric expression for which a logarithm is 
  34288. required. 
  34289.  
  34290.  
  34291. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34292.  
  34293. expression consists of up to ten expressions of the same type (for example, 
  34294. numeric, character, or date). The type of the first value sets the data type to 
  34295. which the other expressions must conform.  If any of the other expressions is 
  34296. of a different data type from this value, it is ignored and cannot be 
  34297. converted. 
  34298.  
  34299. A complete vector can be checked by referring to its dictionary entry using the 
  34300. subscript [0]. 
  34301.  
  34302.  
  34303. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34304.  
  34305. messageid is the identifier of the message template to be used. 
  34306.  
  34307.  
  34308. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34309.  
  34310. parameter is the text to be inserted into the message template. 
  34311.  
  34312. The message templates are as follows: 
  34313.  
  34314. "FTB0001", "FTB10001" Progress message 
  34315. "FTB0002", "FTB10002" Information message 
  34316. "FTB0003", "FTB10003" Warning message 
  34317.  
  34318. All message templates create a temporary window for displaying a message. The 
  34319. templates with four-digit numbers display a message prefix, including the text 
  34320. "FTB". The templates with five-digit numbers do not display the message prefix. 
  34321.  
  34322.  
  34323. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34324.  
  34325. expression consists of up to ten expressions of the same type (for example, 
  34326. numeric, character, or date). The type of the first value sets the data type to 
  34327. which the other expressions must conform. If any of the other expressions is of 
  34328. a different data type from this value, it is ignored and cannot be converted. 
  34329.  
  34330. A complete vector can be checked by referring to its dictionary entry using the 
  34331. subscript [0]. 
  34332.  
  34333.  
  34334. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34335.  
  34336. object is the name of the object to be modified. 
  34337.  
  34338.  
  34339. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34340.  
  34341. att is an attribute that is to be modified. 
  34342.  
  34343.  
  34344. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34345.  
  34346. value is the new value for att. 
  34347.  
  34348.  
  34349. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34350.  
  34351. procedure is a reference to a procedure, with arguments if required. 
  34352.  
  34353.  
  34354. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34355.  
  34356. fullname is the fully qualified name. 
  34357.  
  34358.  
  34359. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34360.  
  34361. target is a variable which will be defined as a vector and which will contain a 
  34362. list of names.  The meaning of these names depends on the string to the right 
  34363. of the assignment, which can either contain an empty string, or the first or 
  34364. second part of a two-part name. 
  34365.  
  34366.  
  34367. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34368.  
  34369. If there is an  empty_string to the right of the assignment, target will 
  34370. contain a list of tables and objectstores which are currently open. This list 
  34371. will not include memory datastores. 
  34372.  
  34373.  
  34374. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34375.  
  34376. objectstore_prefix is a string containing only one word (the objectstore name) 
  34377. target will contain a list of data groups in that objectstore. 
  34378.  
  34379.  
  34380. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34381.  
  34382. objectstore_group is a string containing two words (which define the group) 
  34383. joined by a period. target will contain a list of data items in that group. 
  34384.  
  34385.  
  34386. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34387.  
  34388. value is the value to be checked. 
  34389.  
  34390.  
  34391. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34392.  
  34393. statementlist is one or more statements to be executed if the CASE expression 
  34394. returns a value of NULL. 
  34395.  
  34396.  
  34397. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34398.  
  34399. expression The value of expression is tested against a data type of NULL. If 
  34400. the data type is NULL, a value of 1 (true) is returned. Otherwise, a value of 0 
  34401. (false) is returned. 
  34402.  
  34403.  
  34404. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34405.  
  34406. event is the name of the event that triggers the block. 
  34407.  
  34408.  
  34409. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34410.  
  34411. parameter is a list of one or more variables that are associated with the 
  34412. event. 
  34413.  
  34414.  
  34415. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34416.  
  34417. class is the object class of which this instance is a member. The object class 
  34418. governs the attributes, actions, and events that the instance can have. 
  34419.  
  34420. (See the sections on specific objects for details of the attributes, actions, 
  34421. and events associated with each of these object classes.) 
  34422.  
  34423.  
  34424. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34425.  
  34426. instance is the name of the object instance being created. 
  34427.  
  34428.  
  34429. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34430.  
  34431. parent is the parent of this instance, if there is one. The parent attribute of 
  34432. the new object is set to this value. If the parent exists, the new object is 
  34433. automatically closed when the parent is closed. 
  34434.  
  34435. Some object classes expect a parent of a certain class. For example, a RADIO 
  34436. object expects a parent of class WINDOW. 
  34437.  
  34438. If parameter position is needed, the parameter for parent can be left blank as 
  34439. in: 
  34440.  
  34441. OPEN WINDOW main_entry,,"I.windows.basic_window",
  34442.      title="The main window",bgcolor="blue"
  34443.  
  34444. which opens a window and leaves the assignment of parentage to the system. 
  34445. saved_object 
  34446.  
  34447.  
  34448. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34449.  
  34450. saved_object is the name of an object that was previously saved. Specifying a 
  34451. saved object means that the attribute values of that object are given to this 
  34452. new object. 
  34453.  
  34454.  
  34455. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34456.  
  34457. attr is the name of one of the attributes of the class object. 
  34458.  
  34459.  
  34460. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34461.  
  34462. value is the value that attribute attr is to have when this instance of the 
  34463. object class is created. 
  34464.  
  34465.  
  34466. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34467.  
  34468. proc is a reference to a procedure in this program that is to be called to 
  34469. provide attribute values. The parentheses enclosing parms must be present even 
  34470. if the parameter list itself is empty. 
  34471.  
  34472. For details of individual objects that can be opened using the OPEN statement, 
  34473. see Summary of objects. 
  34474.  
  34475.  
  34476. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34477.  
  34478. statementlist is a single statement or a set of statements to be executed if 
  34479. the value of the CASE expression has not been identified by one of the 
  34480. preceding clauses of the CASE statement. If OTHERWISE introduces more than one 
  34481. statement, these statements must be enclosed in a DO...END block. 
  34482.  
  34483.  
  34484. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34485.  
  34486. target is the string onto which a new substring is to be overlaid. 
  34487.  
  34488.  
  34489. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34490.  
  34491. repstr is the new substring. 
  34492.  
  34493.  
  34494. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34495.  
  34496. num is number of the byte (counting from the beginning of target) at which 
  34497. overlaying is to start. If num is omitted, overlaying starts at the first 
  34498. character in target. 
  34499.  
  34500.  
  34501. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34502.  
  34503. len is the number of bytes of the target to be overlaid. The default is the 
  34504. length of repstr. 
  34505.  
  34506. If len is zero, repstr is inserted immediately before byte number num rather 
  34507. than overlaying any part of target. If len is greater than the length of 
  34508. repstr, repstr is not padded out to the right. Instead, the overlay still takes 
  34509. place but excess characters up to len are removed. (This allows a short 
  34510. substring to overlay a long substring.) 
  34511.  
  34512.  
  34513. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34514.  
  34515. pad is the SBCS character used for padding target if the length of target is 
  34516. less than num. Any pad parameter must be a single character. The default pad 
  34517. character is a space. 
  34518.  
  34519.  
  34520. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34521.  
  34522. string is the string to be padded. 
  34523.  
  34524.  
  34525. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34526.  
  34527. length is the length to which string is to be extended with pad characters. If 
  34528. length less than the original length of string, it will default to the actual 
  34529. length. length should not be greater than the maximum system string length. 
  34530.  
  34531.  
  34532. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34533.  
  34534. type specifies how the padding is applied: 
  34535.  
  34536. "L"   Leading - padding to the left of string 
  34537. "T"   Trailing - padding to the right of string 
  34538. "C"   Center - padding to both left and right of string. 
  34539.  
  34540. Default: "L" 
  34541.  
  34542.  
  34543. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34544.  
  34545. pad is the character to pad the string with. pad must be a one-character 
  34546. string. The default pad character is a space. 
  34547.  
  34548.  
  34549. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34550.  
  34551. strip specifies whether leading or trailing blanks should be removed before 
  34552. padding: 
  34553.  
  34554. "B"   Both - leading and trailing spaces removed 
  34555. "N"   None - no leading or trailing spaces removed 
  34556. "L"   Leading - only leading spaces removed 
  34557. "T"   Trailing - only trailing spaces removed. 
  34558.  
  34559. Default: "B" 
  34560.  
  34561.  
  34562. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34563.  
  34564. expression is the number of new pages required in the output file and sets the 
  34565. COUNT attribute.  It can be omitted and has a default value of one. If 
  34566. specified, expression must evaluate to a positive integer less than 256. 
  34567.  
  34568.  
  34569. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34570.  
  34571. string is a string for which a length in dialog units is required. 
  34572.  
  34573.  
  34574. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34575.  
  34576. window is an optional parameter that identifies a window.  PLENGTH() can then 
  34577. return the correct value for a window that does not use the default system 
  34578. font. 
  34579.  
  34580.  
  34581. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34582.  
  34583. varname is the name of the variable for which the pointer value is required. 
  34584.  
  34585.  
  34586. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34587.  
  34588. element1 is the element number within the target variable, if it is an array. 
  34589. If element1 is not specified, then it defaults to 1. 
  34590.  
  34591.  
  34592. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34593.  
  34594. element2 is the second element number within the target variable, if it is a 
  34595. two-dimensional array. If element2 is not specified, then it defaults to 1. 
  34596.  
  34597.  
  34598. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34599.  
  34600. expression is the number of the next position for output. 
  34601.  
  34602. If the current position is already beyond the required position, no spaces will 
  34603. be inserted. expression must evaluate to a positive integer. 
  34604.  
  34605.  
  34606. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34607.  
  34608. decimal_places is the number of decimal places used in the result of a 
  34609. calculation. 
  34610.  
  34611.  
  34612. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34613.  
  34614. * means the maximum number of decimal_places available. 
  34615.  
  34616.  
  34617. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34618.  
  34619. procedure is the name to be associated with the statement or block of 
  34620. statements which follows. 
  34621.  
  34622.  
  34623. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34624.  
  34625. parameter is a parameter which receives a value when the procedure is called or 
  34626. invoked as a function. parameter is optional, and the enclosing brackets () can 
  34627. be omitted if it is absent. Up to twenty parameters can be passed. 
  34628.  
  34629.  
  34630. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34631.  
  34632. procedurename is the name of the procedure for which a pointer is required. 
  34633.  
  34634.  
  34635. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34636.  
  34637. programalias is the alias name of the program to be queued for execution, as 
  34638. provided by START. 
  34639.  
  34640.  
  34641. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34642.  
  34643. eventkeyword is the name of the event to be signaled . The default is QUEUE to 
  34644. activate the ON QUEUE event block. 
  34645.  
  34646.  
  34647. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34648.  
  34649. parameter is a list of one or more parameters to be passed to the event 
  34650. signaled. 
  34651.  
  34652.  
  34653. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34654.  
  34655. degrees is the value to be converted from degrees to radians. 
  34656.  
  34657.  
  34658. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34659.  
  34660. min is the minimum for the resulting pseudo-random number. If min is not 
  34661. specified, 0 is assumed. 
  34662.  
  34663.  
  34664. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34665.  
  34666. max is the maximum for the resulting pseudo-random number. If max is not 
  34667. specified, 999 is assumed. 
  34668.  
  34669.  
  34670. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34671.  
  34672. seed is the seed number on which the resulting pseudo-random number is based. 
  34673. If seed is not specified, the previous result of RANDOM() is used as the seed. 
  34674. If RANDOM() is used for the first time in a task, and seed is not specified, a 
  34675. value based on the current time is used. 
  34676.  
  34677.  
  34678. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34679.  
  34680. oldname is the original variable reference. 
  34681.  
  34682.  
  34683. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34684.  
  34685. newname is the new variable reference. 
  34686.  
  34687.  
  34688. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34689.  
  34690. string is a string containing trigger characters followed by the names of 
  34691. global values. The names of the global values are replaced with the actual 
  34692. global values. 
  34693.  
  34694.  
  34695. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34696.  
  34697. trigger is one or more SBCS characters, any of which can be used to trigger the 
  34698. replacement of global values. If trigger is omitted, @ is assumed. 
  34699.  
  34700.  
  34701. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34702.  
  34703. expression gives the value to be returned. 
  34704.  
  34705.  
  34706. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34707.  
  34708. expression provides the value to be converted. 
  34709.  
  34710.  
  34711. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34712.  
  34713. variable is a variable, the data type of which is to be adopted by the value of 
  34714. expression. 
  34715.  
  34716.  
  34717. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34718.  
  34719. string is the string to be operated on. 
  34720.  
  34721.  
  34722. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34723.  
  34724. reference contains the column in the table, and one or more values of the 
  34725. table's key columns in braces. 
  34726.  
  34727.  
  34728. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34729.  
  34730. condition controls what is done if the row is not found: 
  34731.  
  34732. "="  Returns 0 if the matching row is not found 
  34733. ">=" If the row does not exist, returns the position at which the row would 
  34734.      appear if it were to be inserted. 
  34735.  
  34736. The default value for condition is "=". 
  34737.  
  34738.  
  34739. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34740.  
  34741. programalias is the alias name of the program to be run. 
  34742.  
  34743.  
  34744. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34745.  
  34746. eventkeyword is the name of the event to be signaled. The default is QUEUE to 
  34747. activate the ON QUEUE event block. 
  34748.  
  34749.  
  34750. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34751.  
  34752. parameter is a list of one or more parameters to be passed to the event 
  34753. signaled. 
  34754.  
  34755.  
  34756. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34757.  
  34758. expression1 is a character string to be scanned. 
  34759.  
  34760.  
  34761. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34762.  
  34763. expression2 is a string of one or more characters which are to be tested for 
  34764. within expression1. 
  34765.  
  34766.  
  34767. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34768.  
  34769. start is the character position within expression1 from which the scan is to 
  34770. start. The default for start is 1, the first character position. 
  34771.  
  34772.  
  34773. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34774.  
  34775. end is the character position within expression1 at which the scan is to end. 
  34776. The default for end is the final character position. 
  34777.  
  34778.  
  34779. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34780.  
  34781. compare specifies the type of scan to be carried out. It can be one of the 
  34782. comparison operators: 
  34783.  
  34784. "="     Search for the first occurrence of expression2 in expression1. Case of 
  34785.         characters is ignored for SBCS. With DBCS, the characters are compared 
  34786.         on a case-sensitive basis. 
  34787.  
  34788. "\="    Search for the first nonoccurrence of expression2 in expression1. Case 
  34789.         of characters is ignored for SBCS. With DBCS, the characters are 
  34790.         compared on a case-sensitive basis. 
  34791.  
  34792. "=="    Search for the first occurrence of expression2 in expression1. 
  34793.         Characters are compared on a case-sensitive basis. 
  34794.  
  34795. "\=="   Search for the first nonoccurrence of expression2 in expression1. 
  34796.         Characters are compared on a case-sensitive basis. 
  34797.  
  34798. The default comparison operator is  "=". 
  34799.  
  34800.  
  34801. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34802.  
  34803. type specifies the type of comparison to be performed: 
  34804.  
  34805. "*"  Search expression1 for the entire string in expression2 
  34806.  
  34807. "1"  Search expression1 for any character in expression2. 
  34808.  
  34809. The default for type is "*". 
  34810.  
  34811.  
  34812. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34813.  
  34814. string is any string. If string is the only parameter supplied, or if number is 
  34815. not supplied, the function returns the number of separate items in the string. 
  34816. An empty string ( "") produces a result of zero. 
  34817.  
  34818.  
  34819. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34820.  
  34821. number is a number. If number is specified, then SEPARATE() returns that item 
  34822. in the string. Otherwise it returns the number of items in the string. If the 
  34823. value of number exceeds the number of items in the string, then SEPARATE() 
  34824. returns an empty string ( ""). 
  34825.  
  34826.  
  34827. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34828.  
  34829. separator is the separator character used to separate the words in string. The 
  34830. default separator character is a space. 
  34831.  
  34832.  
  34833. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34834.  
  34835. instance is the instance of the object to be closed. 
  34836.  
  34837.  
  34838. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34839.  
  34840. programalias is the alias name of the program to be signaled. 
  34841.  
  34842.  
  34843. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34844.  
  34845. angle is the angle for which the sine is required. 
  34846.  
  34847.  
  34848. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34849.  
  34850. frequency can be either a value in hertz (cycles per second) between 36 and 
  34851. 15000, or a value in the range 1-5 corresponding to the following preset notes: 
  34852.  
  34853. 1  220 Hz 
  34854. 2  440 Hz 
  34855. 3  880 Hz 
  34856. 4  1760 Hz 
  34857. 5  3520 Hz 
  34858.  
  34859. If frequency is specified in the range 6-35 Hz, then no note is produced, but 
  34860. there is a delay (pause) of the specified duration. 
  34861.  
  34862.  
  34863. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34864.  
  34865. duration is the duration of the note in tenths of a second. The default value 
  34866. for duration is 1 (one tenth of a second). 
  34867.  
  34868.  
  34869. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34870.  
  34871. expression is the number of space or blank characters required in the output 
  34872. file.  This sets the COUNT attribute to that number. It can be omitted and has 
  34873. a default value of one. If specified, expression must evaluate to a positive 
  34874. integer which is in the range 0-255. 
  34875.  
  34876.  
  34877. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34878.  
  34879. expression gives a value to be split. 
  34880.  
  34881.  
  34882. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34883.  
  34884. start is the character position within expression from which the split is to 
  34885. start (that is, the part to be extracted starts at this character position). 
  34886. start must be an integer or a real number.  (Real numbers are truncated.) 
  34887.  
  34888.  
  34889. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34890.  
  34891. length gives the number of characters to be split off, or extracted. length is 
  34892. optional. If length is omitted, the default value is from start to the end of 
  34893. the string. 
  34894.  
  34895.  
  34896. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34897.  
  34898. fill specifies the filler character. The filler character is any character 
  34899. which, when present, is used to pad out the extracted part to the value of 
  34900. length if there are not enough input characters. This would happen if the 
  34901. number of characters between start and the end of expression is less than the 
  34902. specified length. When an align parameter is present, fill defaults to a blank 
  34903. (" "). fill only pads up to the maximum string length. 
  34904.  
  34905.  
  34906. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34907.  
  34908. align specifies how the extracted characters are placed in the output string, 
  34909. assuming padding occurs. 
  34910.  
  34911. The values permitted for align are: 
  34912.  
  34913. "L"   Left justify (Default) 
  34914. "R"   Right justify 
  34915.  
  34916.  
  34917. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34918.  
  34919. expression yields a value for which a square root is required. 
  34920.  
  34921.  
  34922. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34923.  
  34924. tasktype can be APPLICATION, MASTER, or PROGRAM. 
  34925.  
  34926.  
  34927. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34928.  
  34929. programalias is the name by which the program is referred to in later RUN or 
  34930. QUEUE statements. programalias must be a simple variable or an array element 
  34931. and is set by the START statement. 
  34932.  
  34933.  
  34934. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34935.  
  34936. modulename is the name of the module which is to be RUN. 
  34937.  
  34938. The second occurrence of the keyword START is optional. Its inclusion allows 
  34939. parameters to be passed to the ON START block of the program being started. 
  34940.  
  34941.  
  34942. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34943.  
  34944. parameter is a list of one or more parameters to be passed to the ON START 
  34945. block. A maximum of ten parameters can be passed. 
  34946.  
  34947.  
  34948. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34949.  
  34950. array is a one-dimensional or two-dimensional array. 
  34951.  
  34952.  
  34953. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34954.  
  34955. text is a text string which forms a template for the result. It can also be the 
  34956. name of a variable containing a string, or a concatenation of values. 
  34957.  
  34958.  
  34959. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34960.  
  34961. text can contain underscore (_) or caret (^) characters. These are replaced in 
  34962. the string by expression (and any subsequent expressions). A maximum of nine 
  34963. expressions can be used. 
  34964.  
  34965. Underscore inserts the expression into text without quotation marks. Caret 
  34966. causes the expression to be surrounded by single quotation marks before it is 
  34967. inserted. 
  34968.  
  34969.  
  34970. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34971.  
  34972. expression is the number of tab characters to insert. 
  34973.  
  34974. If the current position is already beyond the required position, no spaces will 
  34975. be inserted. expression must evaluate to a positive integer. 
  34976.  
  34977.  
  34978. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34979.  
  34980. angle is the angle for which the tangent is required. 
  34981.  
  34982.  
  34983. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34984.  
  34985. number is the number of the repeating block to be terminated. Blocks are 
  34986. numbered from the innermost outwards, beginning with 1. Nonrepeating blocks are 
  34987. excluded from the count. 
  34988.  
  34989.  
  34990. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34991.  
  34992. THEN The keyword THEN introduces a list of one or more statements to be 
  34993. executed if the condition is met. THEN can be omitted, but including it can 
  34994. make a program more readable. 
  34995.  
  34996.  
  34997. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  34998.  
  34999. statementlist is a statement or a set of statements to be executed if the 
  35000. condition (IF statement) is met. 
  35001.  
  35002.  
  35003. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35004.  
  35005. expression is the value to be converted. 
  35006.  
  35007. Optional, defaults to current time. 
  35008.  
  35009.  
  35010. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35011.  
  35012. format is the format which describes the time.  If it is omitted, the default 
  35013. time format is used. 
  35014.  
  35015.  
  35016. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35017.  
  35018. expression expression and subsequent expressions can be numeric values or 
  35019. expressions producing numeric values. A complete vector can be checked by 
  35020. referring to its dictionary entry using the subscript [0]. A TOTAL() function 
  35021. can include up to ten expressions. 
  35022.  
  35023.  
  35024. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35025.  
  35026. ON Starts a trace of all Visualizer statements as they are executed. 
  35027.  
  35028.  
  35029. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35030.  
  35031. OFF Turns off tracing. 
  35032.  
  35033.  
  35034. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35035.  
  35036. LINE Traces only the line numbers of these statements. 
  35037.  
  35038.  
  35039. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35040.  
  35041. BRANCH Traces only statements which change the flow of control through the 
  35042. program. 
  35043.  
  35044.  
  35045. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35046.  
  35047. string is the string to be trimmed. 
  35048.  
  35049.  
  35050. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35051.  
  35052. type specifies whether leading or trailing blanks should be removed: 
  35053.  
  35054. "B"   Both - leading and trailing spaces removed 
  35055. "N"   Neither - no leading or trailing spaces removed 
  35056. "L"   Leading - only leading spaces removed 
  35057. "T"   Trailing - only trailing spaces removed. 
  35058.  
  35059. Default: "B" 
  35060.  
  35061.  
  35062. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35063.  
  35064. statementlist is one or more statements to be executed if the CASE expression 
  35065. returns a value which is nonzero. 
  35066.  
  35067.  
  35068. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35069.  
  35070. stem is a string. If stem is included, the new string returned starts with 
  35071. stem. If stem is omitted, the default stem "FTB__" is used. 
  35072.  
  35073.  
  35074. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35075.  
  35076. length is the length of the string including the stem. If length is omitted, it 
  35077. defaults to the maximum length of names (20). 
  35078.  
  35079.  
  35080. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35081.  
  35082. expression is the condition to be tested. 
  35083.  
  35084.  
  35085. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35086.  
  35087. statementlist is a statement or a set of statements executed repeatedly until 
  35088. the condition specified in expression is met. 
  35089.  
  35090.  
  35091. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35092.  
  35093. string is the string to be converted to uppercase. 
  35094.  
  35095.  
  35096. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35097.  
  35098. value represents a value to be checked. A complete vector can be checked by 
  35099. referring to its dictionary entry using the subscript [0]. The function accepts 
  35100. up to nine values. 
  35101.  
  35102.  
  35103. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35104.  
  35105. array is a one-dimensional or two-dimensional array. 
  35106.  
  35107.  
  35108. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35109.  
  35110. ref is the vector to be verified. 
  35111.  
  35112.  
  35113. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35114.  
  35115. content is a variable whose content (and format in the case of dates and times) 
  35116. is used to check ref. 
  35117.  
  35118.  
  35119. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35120.  
  35121. start is the element position within ref from which the check is to start. The 
  35122. default for start is 1. 
  35123.  
  35124.  
  35125. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35126.  
  35127. end is the element position within ref at which the check is to end. The 
  35128. default for end is the final element position. 
  35129.  
  35130.  
  35131. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35132.  
  35133. compare is the type of verification applied: 
  35134.  
  35135. "="   ref is the same type as content or can be converted to the same type. 
  35136.  
  35137. "=="  ref is the same type as content. 
  35138.  
  35139.       No automatic conversion is carried out. 
  35140.  
  35141. "\="  ref is unequal to content. 
  35142.  
  35143. "\==" ref is unequal to content and cannot be converted to that content. 
  35144.  
  35145. The default value for compare is =. 
  35146.  
  35147.  
  35148. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35149.  
  35150. null If specified as 1 (true), causes VERIFY() to ignore NULL elements. 
  35151.  
  35152.  
  35153. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35154.  
  35155. programalias is the alias name of the program to wait for. 
  35156.  
  35157.  
  35158. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35159.  
  35160. expression is a potential value of the expression presented by the CASE 
  35161. statement. expression can be a simple value or a complex expression which 
  35162. includes operators. 
  35163.  
  35164.  
  35165. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35166.  
  35167. statementlist is one or more statements to be executed if the CASE expression 
  35168. equals the value given by WHEN expression. 
  35169.  
  35170. A WHEN statement can control a single statement or a set of statements. A set 
  35171. of statements must be enclosed in a DO...END block. 
  35172.  
  35173.  
  35174. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35175.  
  35176. expression is the condition to be tested. 
  35177.  
  35178.  
  35179. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35180.  
  35181. statementlist is a single statement, or a set of statements contained in a 
  35182. DO...END block. statementlist is executed repeatedly if and as long as the 
  35183. condition specified in expression is met. 
  35184.  
  35185.  
  35186. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35187.  
  35188. string is the string to be tested (in quotes). 
  35189.  
  35190.  
  35191. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35192.  
  35193. number is the number of the character required (if the nth character is a 
  35194. separator, the previous word position will be returned). 
  35195.  
  35196.  
  35197. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35198.  
  35199. separator is the separator to be used. The default separator is a space. 
  35200.  
  35201.  
  35202. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35203.  
  35204. string is the string to be operated on. 
  35205.  
  35206.  
  35207. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35208.  
  35209. number if supplied, specifies the number of the word to be returned from the 
  35210. string or the word at the beginning of a phrase to be returned. 
  35211.  
  35212.  
  35213. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35214.  
  35215. sep is the character to be used as separator. Any separator used must be a 
  35216. one-character string. DBCS characters cannot be used. The default separator is 
  35217. a space. 
  35218.  
  35219.  
  35220. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  35221.  
  35222. length is the total number of words in a phrase to be returned from the string.