home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a040 / 2.ddi / SHRWARE4.ARC / MSAEXPR.INC < prev    next >
Encoding:
Text File  |  1988-06-03  |  2.3 KB  |  115 lines

  1. <<* MSAEXPR.INC *>>
  2. <<#
  3.  
  4. function setquerymax : integer
  5. begin
  6.   select all fields
  7.     select fields on (fldtyp $ 'CDLN') and fldget
  8.   if fldtotal > 42
  9.     RETURN 42
  10.   else
  11.     RETURN fldtotal
  12.   endif
  13.   <<*---Leave FILTER active---*>>
  14. end setquerymax
  15.  
  16.  
  17. procedure GenExprBody
  18. string  alpha
  19. integer total
  20. begin
  21. #>>
  22. PARAMETER expr
  23. PRIVATE row,fldnum,fldmax,phrase,connector
  24. row = 20
  25. expr = ""
  26. phrase = ""
  27. connector = " "
  28. <<GenColor( 0,'WINDOW' )>>
  29. @ 2,0 CLEAR
  30. <<GenColor( 0,'PROMPT' )>>
  31. @ 22,0 SAY PromptBar
  32. <<GenColor( 0,'WINDOW' )>>
  33. @ 1,0 SAY ""
  34. <<#
  35.   if feat( featals )
  36.     select all databases
  37.     total := setquerymax
  38.     genln( 'fldmax = ',total )
  39.     GenQueryTable( total )
  40.   elsif ismultials
  41.     genln( 'DO CASE' )
  42.     forall databases
  43.       genln( 'CASE dbfarea = "',dbfcount,'"' )
  44.       total := setquerymax
  45.       genln( 'fldmax = ',total )
  46.       GenQueryTable( total )
  47.     endfor
  48.     genln( 'ENDCASE' )
  49.   else
  50.     total := setquerymax
  51.     genln( 'fldmax = ',total )
  52.     GenQueryTable( total )
  53.   endif
  54. #>>
  55. *
  56. IF fldmax = 0
  57.    @ 23,0 SAY "No fields to build expression"
  58.    WAIT
  59.    RETURN
  60. ENDIF
  61. *
  62. DO WHILE .T.
  63.    fldnum = 0
  64.    @ row+1,0
  65.    @ row,0
  66.    @ row,0 SAY "Enter FIELD #";
  67.            GET fldnum PICTURE "@Z 99" RANGE 0,fldmax
  68.    READ
  69.    IF fldnum = 0
  70.       EXIT
  71.    ENDIF
  72.    *
  73. <<if ismultials and not feat(featals)>>
  74.    DO CASE
  75.   <<forall databases>>
  76.     <<alpha := chr( dbfcount + 64 )>>
  77.    CASE dbfarea = {"}{dbfcount}{"}
  78.       DO {fileprefix}_{alpha}PHR WITH row,fldnum,phrase
  79.   <<endfor>>
  80.    ENDCASE
  81. <<else>>
  82.    DO {fileprefix}_PHRA WITH row,fldnum,phrase
  83. <<endif>>
  84.    DO CASE
  85.    CASE "" = expr
  86.       expr = phrase
  87.    CASE connector = "A"
  88.       expr = expr + ".AND." + phrase
  89.    OTHERWISE
  90.       expr = expr + ".OR." + phrase
  91.    ENDCASE
  92.    * ---Display expression.
  93.    @ row+3,0 SAY expr
  94.    * ---Get CONNECTOR selection.
  95.    @ row+1,0
  96.    @ row,0
  97.    connector = "*"
  98.    DO WHILE .NOT. (connector $ " AO")
  99.       connector = " "
  100.       @ row,0 SAY "Enter CONNECTOR" GET connector PICTURE "!"
  101.       READ
  102.    ENDDO
  103.    DO CASE
  104.    CASE connector = " " .OR. LEN(expr) > 100
  105.       EXIT
  106.    CASE connector = "A"
  107.       @ row+3,0 SAY expr + ".AND."
  108.    OTHERWISE
  109.       @ row+3,0 SAY expr + ".OR."
  110.    ENDCASE
  111. ENDDO
  112. <<end>> <<*GenExprBody*>>
  113.  
  114. <<* EOF: MSAEXPR.INC *>>
  115.