home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / intra2_17 / rexx / sort.irx < prev   
Text File  |  1995-08-05  |  2KB  |  78 lines

  1. /* INTRA_sort.irx  by Frank Maesen                                */
  2. /* $VER: INTRA_sort.irx 1.1 (5.8.1995)                            */
  3. /* Example Arexx program for controlling INTRA by Bart Vanhaeren  */
  4. /* This demo sorts out an invoice database file by date.          */
  5. /* It is very slow, but it shows you how you can use the GETDATA  */
  6. /* and SETDATA commands.                                          */
  7.  
  8. OPTIONS RESULTS
  9.  
  10. IF POS('rexxsupport.library',SHOW('libs'))=0 THEN
  11.   nill=ADDLIB('rexxsupport.library',0,-30,0)
  12.  
  13. IF POS('INTRAREXX', SHOW('PORTS'))=0 THEN DO
  14.   SAY "*** Start INTRA first !!!"
  15.   EXIT(0)
  16.  END
  17.  
  18. ADDRESS (TRIM(SUBSTR(SHOW('PORTS'),POS('INTRAREXX',SHOW('PORTS')),12)))
  19.  
  20. SCREENTOFRONT
  21. LOCKGUI NORENDER
  22.  
  23. REQUESTNOTIFY PROMPT "ARexx script start ..."
  24. REQUESTRESPONSE PROMPT "This script will sort all invoices by date !!!"
  25. IF RESULT=0 THEN DO
  26.    REQUESTNOTIFY PROMPT "Quitting ARexx script ..."
  27.    UNLOCKGUI
  28.    EXIT(0)
  29.   END
  30.  
  31. INVOICES
  32. IF RC~=0 THEN DO
  33.   OPEN
  34.   IF RC~=0 | RESULT=0 THEN DO
  35.      REQUESTNOTIFY PROMPT "Quitting ARexx script ..."
  36.      UNLOCKGUI 
  37.      EXIT(0)
  38.     END
  39.  END
  40.  
  41. INVOICES
  42. number=RESULT
  43.  
  44. IF number > 1 THEN DO
  45.    DO i=number-1 TO 1 BY -1
  46.       DO j=1 to i
  47.          READ j
  48.          GETDATA DATE TRADER DESCRIPTION AMOUNT
  49.          record1=RESULT
  50.          PARSE VAR RESULT '"'data1'"' nill
  51.          data1=RIGHT(data1,2)||RIGHT(LEFT(data1,5),2)||LEFT(data1,2)
  52.  
  53.          READ j+1
  54.          GETDATA DATE TRADER DESCRIPTION AMOUNT
  55.          record2=RESULT
  56.          PARSE VAR RESULT '"'data2'"' nill
  57.          data2=RIGHT(data2,2)||RIGHT(LEFT(data2,5),2)||LEFT(data2,2)
  58.  
  59.          IF data1 > data2 THEN DO
  60.             PARSE VAR record1 '"'dat1'"' '"'tra1'"' '"'des1'"' '"'amo1'"'
  61.             SETDATA DATE dat1 TRADER '"'tra1'"' DESCRIPTION '"'des1'"' AMOUNT amo1
  62.             REWRITE j+1
  63.  
  64.             READ j
  65.             PARSE VAR record2 '"'dat2'"' '"'tra2'"' '"'des2'"' '"'amo2'"'
  66.             SETDATA DATE dat2 TRADER '"'tra2'"' DESCRIPTION '"'des2'"' AMOUNT amo2
  67.             REWRITE j
  68.  
  69.            END
  70.         END
  71.      END
  72.   END
  73.  
  74. POSITION BOF
  75. REQUESTNOTIFY PROMPT "ARexx script is done ..."
  76. UNLOCKGUI
  77. EXIT(0)
  78.