home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a084 / 2.ddi / CKSAMPLE / SELECT.SPR < prev    next >
Encoding:
Text File  |  1993-05-25  |  19.5 KB  |  661 lines

  1. *       *********************************************************
  2. *       *                                                         
  3. *       * 05/18/93             SELECT.SPR                13:43:56 
  4. *       *                                                         
  5. *       *********************************************************
  6. *       *                                                         
  7. *       * Steven Hsu, Wayne Lampel                                
  8. *       *                                                         
  9. *       * Copyright (c) 1993 Microsoft                            
  10. *       * One Microsoft Way                                       
  11. *       * Redmond, WA  98052                                      
  12. *       *                                                         
  13. *       * Description:                                            
  14. *       * This program was automatically generated by GENSCRN.    
  15. *       *                                                         
  16. *       *********************************************************
  17.  
  18. DO CASE
  19. CASE _WINDOWS
  20.  
  21.     
  22.     #REGION 0
  23.     REGIONAL m.currarea, m.talkstat, m.compstat
  24.     
  25.     IF SET("TALK") = "ON"
  26.         SET TALK OFF
  27.         m.talkstat = "ON"
  28.     ELSE
  29.         m.talkstat = "OFF"
  30.     ENDIF
  31.     m.compstat = SET("COMPATIBLE")
  32.     SET COMPATIBLE FOXPLUS
  33.     
  34.     *       *********************************************************
  35.     *       *                                                         
  36.     *       *               Windows Window definitions                
  37.     *       *                                                         
  38.     *       *********************************************************
  39.     *
  40.     
  41.     IF NOT WEXIST("_qfx0tfl28")
  42.         DEFINE WINDOW _qfx0tfl28 ;
  43.             AT  0.000, 0.000  ;
  44.             SIZE 13.538,71.833 ;
  45.             TITLE " Select " ;
  46.             FONT "MS Sans Serif", 8 ;
  47.             STYLE "B" ;
  48.             NOFLOAT ;
  49.             NOCLOSE ;
  50.             SHADOW ;
  51.             NOMINIMIZE ;
  52.             DOUBLE
  53.         MOVE WINDOW _qfx0tfl28 CENTER
  54.     ENDIF
  55.     
  56.     
  57.     *       *********************************************************
  58.     *       *                                                         
  59.     *       *          SELECT/Windows Setup Code - SECTION 2          
  60.     *       *                                                         
  61.     *       *********************************************************
  62.     *
  63.     
  64.     #REGION 1
  65.     PRIVATE exitaction, selectcolumn, removecolumn
  66.     EXTERNAL ARRAY columnlist
  67.     
  68.     IF (ALEN(fromlist) < 2)
  69.         ?? CHR(7)
  70.         WAIT WINDOW "No query tables in FROM list"
  71.         RETURN
  72.     ENDIF
  73.     
  74.     exitaction   = 1  && <OK>
  75.     selectcolumn = 1
  76.     removecolumn = 1
  77.     
  78.     PRIVATE ALL LIKE ncols, nselects, i
  79.     
  80.     *
  81.     *    Build selected columns list
  82.     *
  83.     DEFINE POPUP selespop SCROLL MARGIN MARK " "
  84.     
  85.     nselects = ALEN(selectlist) - 1
  86.     FOR i = 1 TO nselects
  87.         DEFINE BAR (i) OF selespop PROMPT selectlist[i]
  88.     ENDFOR
  89.     *
  90.     *    Build available columns list
  91.     *
  92.     DEFINE POPUP selecpop SCROLL MARGIN MARK " "
  93.     
  94.     DO buildclist
  95.     
  96.     dimension templist(1)
  97.     barcnt = 1
  98.     
  99.     ncols = ALEN(columnlist) - 1
  100.     FOR i = 1 TO ncols
  101.         columnname = '"' + columnlist[i] + '"'
  102.         if not inselectlist(&columnname)
  103.             templist(barcnt) = columnlist[i]
  104.             barcnt = barcnt + 1
  105.             dimension templist(barcnt)
  106.         endif
  107.     ENDFOR
  108.     
  109.     = ASORT(templist,1,ALEN(templist) - 1)
  110.     
  111.     nselects = ALEN(templist) - 1
  112.     FOR i = 1 TO nselects
  113.         DEFINE BAR (i) OF selecpop PROMPT templist[i]
  114.     ENDFOR
  115.     
  116.     
  117.     
  118.     *       *********************************************************
  119.     *       *                                                         
  120.     *       *              SELECT/Windows Screen Layout               
  121.     *       *                                                         
  122.     *       *********************************************************
  123.     *
  124.     
  125.     #REGION 1
  126.     IF WVISIBLE("_qfx0tfl28")
  127.         ACTIVATE WINDOW _qfx0tfl28 SAME
  128.     ELSE
  129.         ACTIVATE WINDOW _qfx0tfl28 NOSHOW
  130.     ENDIF
  131.     @ 1.923,1.667 GET SelectColumn ;
  132.          PICTURE "@&N" ;
  133.         POPUP SeleCPop ;
  134.         SIZE 10.385,30.000 ;
  135.         DEFAULT " " ;
  136.         FONT "MS Sans Serif", 8 ;
  137.         STYLE "" ;
  138.         VALID _qfx0tflur()
  139.     @ 10.692,29.167 GET ExitAction ;
  140.         PICTURE "@*VT \!OK" ;
  141.         SIZE 1.769,12.167,0.615 ;
  142.         DEFAULT 1 ;
  143.         FONT "MS Sans Serif", 8 ;
  144.         STYLE "B"
  145.     @ 0.538,1.500 SAY "Columns of query tables:"  ;
  146.         FONT "MS Sans Serif", 8 ;
  147.         STYLE "B"
  148.     @ 2.000,44.167 GET RemoveColumn ;
  149.          PICTURE "@&N" ;
  150.         POPUP SeleSPop ;
  151.         SIZE 10.385,30.600 ;
  152.         DEFAULT " " ;
  153.         FONT "MS Sans Serif", 8 ;
  154.         STYLE "" ;
  155.         VALID _qfx0tfm13()
  156.     @ 0.615,44.000 SAY "Columns to list:"  ;
  157.         FONT "MS Sans Serif", 8 ;
  158.         STYLE "B"
  159.     @ 4.385,29.167 GET moveAct ;
  160.         PICTURE "@*VN \<Add >>;<< \<Remove" ;
  161.         SIZE 1.769,12.833,0.615 ;
  162.         DEFAULT 1 ;
  163.         FONT "MS Sans Serif", 8 ;
  164.         STYLE "B" ;
  165.         VALID _qfx0tfm6f()
  166.     
  167.     IF NOT WVISIBLE("_qfx0tfl28")
  168.         ACTIVATE WINDOW _qfx0tfl28
  169.     ENDIF
  170.     
  171.     READ CYCLE MODAL ;
  172.         WHEN _qfx0tfmba()
  173.     
  174.     RELEASE WINDOW _qfx0tfl28
  175.     
  176.     #REGION 0
  177.     IF m.talkstat = "ON"
  178.         SET TALK ON
  179.     ENDIF
  180.     IF m.compstat = "ON"
  181.         SET COMPATIBLE ON
  182.     ENDIF
  183.     
  184.  
  185. CASE _DOS
  186.  
  187.     
  188.     #REGION 0
  189.     REGIONAL m.currarea, m.talkstat, m.compstat
  190.     
  191.     IF SET("TALK") = "ON"
  192.         SET TALK OFF
  193.         m.talkstat = "ON"
  194.     ELSE
  195.         m.talkstat = "OFF"
  196.     ENDIF
  197.     m.compstat = SET("COMPATIBLE")
  198.     SET COMPATIBLE FOXPLUS
  199.     
  200.     *       *********************************************************
  201.     *       *                                                         
  202.     *       *                MS-DOS Window definitions                
  203.     *       *                                                         
  204.     *       *********************************************************
  205.     *
  206.     
  207.     IF NOT WEXIST("_qfx0tfmke")
  208.         DEFINE WINDOW _qfx0tfmke ;
  209.             FROM INT((SROW()-14)/2),INT((SCOL()-78)/2) ;
  210.             TO INT((SROW()-14)/2)+13,INT((SCOL()-78)/2)+77 ;
  211.             TITLE " Select " ;
  212.             NOFLOAT ;
  213.             NOCLOSE ;
  214.             SHADOW ;
  215.             NOMINIMIZE ;
  216.             DOUBLE ;
  217.             COLOR SCHEME 1
  218.     ENDIF
  219.     
  220.     
  221.     *       *********************************************************
  222.     *       *                                                         
  223.     *       *          SELECT/MS-DOS Setup Code - SECTION 2           
  224.     *       *                                                         
  225.     *       *********************************************************
  226.     *
  227.     
  228.     #REGION 1
  229.     PRIVATE exitaction, selectcolumn, removecolumn
  230.     EXTERNAL ARRAY columnlist
  231.     
  232.     IF (ALEN(fromlist) < 2)
  233.         ?? CHR(7)
  234.         WAIT WINDOW "No query tables in FROM list"
  235.         RETURN
  236.     ENDIF
  237.     
  238.     exitaction   = 1  && <OK>
  239.     selectcolumn = 1
  240.     removecolumn = 1
  241.     
  242.     PRIVATE ALL LIKE ncols, nselects, i
  243.     
  244.     *
  245.     *    Build selected columns list
  246.     *
  247.     DEFINE POPUP selespop SCROLL MARGIN MARK " "
  248.     
  249.     nselects = ALEN(selectlist) - 1
  250.     FOR i = 1 TO nselects
  251.         DEFINE BAR (i) OF selespop PROMPT selectlist[i]
  252.     ENDFOR
  253.     *
  254.     *    Build available columns list
  255.     *
  256.     DEFINE POPUP selecpop SCROLL MARGIN MARK " "
  257.     
  258.     DO buildclist
  259.     
  260.     dimension templist(1)
  261.     barcnt = 1
  262.     
  263.     ncols = ALEN(columnlist) - 1
  264.     FOR i = 1 TO ncols
  265.         columnname = '"' + columnlist[i] + '"'
  266.         if not inselectlist(&columnname)
  267.             templist(barcnt) = columnlist[i]
  268.             barcnt = barcnt + 1
  269.             dimension templist(barcnt)
  270.         endif
  271.     ENDFOR
  272.     
  273.     = ASORT(templist,1,ALEN(templist) - 1)
  274.     
  275.     nselects = ALEN(templist) - 1
  276.     FOR i = 1 TO nselects
  277.         DEFINE BAR (i) OF selecpop PROMPT templist[i]
  278.     ENDFOR
  279.     
  280.     
  281.     
  282.     *       *********************************************************
  283.     *       *                                                         
  284.     *       *               SELECT/MS-DOS Screen Layout               
  285.     *       *                                                         
  286.     *       *********************************************************
  287.     *
  288.     
  289.     #REGION 1
  290.     IF WVISIBLE("_qfx0tfmke")
  291.         ACTIVATE WINDOW _qfx0tfmke SAME
  292.     ELSE
  293.         ACTIVATE WINDOW _qfx0tfmke NOSHOW
  294.     ENDIF
  295.     @ 1,1 GET SelectColumn ;
  296.          PICTURE "@&N" ;
  297.         POPUP SeleCPop ;
  298.         SIZE 11,30 ;
  299.         DEFAULT " " ;
  300.         VALID _qfx0tfn44() ;
  301.         COLOR SCHEME 2
  302.     @ 9,32 GET ExitAction ;
  303.         PICTURE "@*VT \!OK" ;
  304.         SIZE 1,12,0 ;
  305.         DEFAULT 1
  306.     @ 0,1 SAY "Columns of query tables:" ;
  307.         SIZE 1,24, 0
  308.     @ 1,45 GET RemoveColumn ;
  309.          PICTURE "@&N" ;
  310.         POPUP SeleSPop ;
  311.         SIZE 11,30 ;
  312.         DEFAULT " " ;
  313.         VALID _qfx0tfna6() ;
  314.         COLOR SCHEME 2
  315.     @ 0,45 SAY "Columns to list:" ;
  316.         SIZE 1,16, 0
  317.     @ 4,32 GET moveAct ;
  318.         PICTURE "@*VN \<Add >>;<< \<Remove" ;
  319.         SIZE 1,12,1 ;
  320.         DEFAULT 1 ;
  321.         VALID _qfx0tfnf1()
  322.     
  323.     IF NOT WVISIBLE("_qfx0tfmke")
  324.         ACTIVATE WINDOW _qfx0tfmke
  325.     ENDIF
  326.     
  327.     READ CYCLE MODAL ;
  328.         WHEN _qfx0tfnj7()
  329.     
  330.     RELEASE WINDOW _qfx0tfmke
  331.     
  332.     #REGION 0
  333.     IF m.talkstat = "ON"
  334.         SET TALK ON
  335.     ENDIF
  336.     IF m.compstat = "ON"
  337.         SET COMPATIBLE ON
  338.     ENDIF
  339.     
  340.  
  341. ENDCASE
  342.  
  343.  
  344. *       *********************************************************
  345. *       *                                                         
  346. *       * _QFX0TFLUR           SelectColumn VALID                 
  347. *       *                                                         
  348. *       * Function Origin:                                        
  349. *       *                                                         
  350. *       * From Platform:       Windows                            
  351. *       * From Screen:         SELECT,     Record Number:    9    
  352. *       * Variable:            SelectColumn                       
  353. *       * Called By:           VALID Clause                       
  354. *       * Object Type:         List                               
  355. *       * Snippet Number:      1                                  
  356. *       *                                                         
  357. *       *********************************************************
  358. *
  359. FUNCTION _qfx0tflur     &&  SelectColumn VALID
  360. #REGION 1
  361. DO add
  362. RETURN .T.
  363.  
  364.  
  365. *       *********************************************************
  366. *       *                                                         
  367. *       * _QFX0TFM13           RemoveColumn VALID                 
  368. *       *                                                         
  369. *       * Function Origin:                                        
  370. *       *                                                         
  371. *       * From Platform:       Windows                            
  372. *       * From Screen:         SELECT,     Record Number:   12    
  373. *       * Variable:            RemoveColumn                       
  374. *       * Called By:           VALID Clause                       
  375. *       * Object Type:         List                               
  376. *       * Snippet Number:      2                                  
  377. *       *                                                         
  378. *       *********************************************************
  379. *
  380. FUNCTION _qfx0tfm13     &&  RemoveColumn VALID
  381. #REGION 1
  382. DO remove
  383. RETURN .T.
  384.  
  385.  
  386. *       *********************************************************
  387. *       *                                                         
  388. *       * _QFX0TFM6F           moveAct VALID                      
  389. *       *                                                         
  390. *       * Function Origin:                                        
  391. *       *                                                         
  392. *       * From Platform:       Windows                            
  393. *       * From Screen:         SELECT,     Record Number:   14    
  394. *       * Variable:            moveAct                            
  395. *       * Called By:           VALID Clause                       
  396. *       * Object Type:         Push Button                        
  397. *       * Snippet Number:      3                                  
  398. *       *                                                         
  399. *       *********************************************************
  400. *
  401. FUNCTION _qfx0tfm6f     &&  moveAct VALID
  402. #REGION 1
  403. IF (moveact == 1)
  404.     IF (selectcolumn > 0)
  405.         DO ADD
  406.     ENDIF
  407. ELSE
  408.     DO remove
  409. ENDIF
  410.  
  411.  
  412. *       *********************************************************
  413. *       *                                                         
  414. *       * _QFX0TFMBA           Read Level When                    
  415. *       *                                                         
  416. *       * Function Origin:                                        
  417. *       *                                                         
  418. *       *                                                         
  419. *       * From Platform:       Windows                            
  420. *       * From Screen:         SELECT                             
  421. *       * Called By:           READ Statement                     
  422. *       * Snippet Number:      4                                  
  423. *       *                                                         
  424. *       *********************************************************
  425. *
  426. FUNCTION _qfx0tfmba     && Read Level When
  427. *
  428. * When Code from screen: SELECT
  429. *
  430. #REGION 1
  431. if alen(templist) < 2
  432.     show get moveact,1 disabled
  433. else
  434.     show get moveact,1 enabled
  435. endif
  436. if alen(selectlist) < 2
  437.     show get moveact,2 disabled
  438. else
  439.     show get moveact,2 enabled
  440. endif
  441.  
  442. *       *********************************************************
  443. *       *                                                         
  444. *       * _QFX0TFN44           SelectColumn VALID                 
  445. *       *                                                         
  446. *       * Function Origin:                                        
  447. *       *                                                         
  448. *       * From Platform:       MS-DOS                             
  449. *       * From Screen:         SELECT,     Record Number:    2    
  450. *       * Variable:            SelectColumn                       
  451. *       * Called By:           VALID Clause                       
  452. *       * Object Type:         List                               
  453. *       * Snippet Number:      5                                  
  454. *       *                                                         
  455. *       *********************************************************
  456. *
  457. FUNCTION _qfx0tfn44     &&  SelectColumn VALID
  458. #REGION 1
  459. DO Add
  460. SelectColumn = SelectColumn + 1
  461. RETURN .T.
  462.  
  463. *       *********************************************************
  464. *       *                                                         
  465. *       * _QFX0TFNA6           RemoveColumn VALID                 
  466. *       *                                                         
  467. *       * Function Origin:                                        
  468. *       *                                                         
  469. *       * From Platform:       MS-DOS                             
  470. *       * From Screen:         SELECT,     Record Number:    5    
  471. *       * Variable:            RemoveColumn                       
  472. *       * Called By:           VALID Clause                       
  473. *       * Object Type:         List                               
  474. *       * Snippet Number:      6                                  
  475. *       *                                                         
  476. *       *********************************************************
  477. *
  478. FUNCTION _qfx0tfna6     &&  RemoveColumn VALID
  479. #REGION 1
  480. DO Remove WITH RemoveColumn
  481. RETURN .T.
  482.  
  483. *       *********************************************************
  484. *       *                                                         
  485. *       * _QFX0TFNF1           moveAct VALID                      
  486. *       *                                                         
  487. *       * Function Origin:                                        
  488. *       *                                                         
  489. *       * From Platform:       MS-DOS                             
  490. *       * From Screen:         SELECT,     Record Number:    7    
  491. *       * Variable:            moveAct                            
  492. *       * Called By:           VALID Clause                       
  493. *       * Object Type:         Push Button                        
  494. *       * Snippet Number:      7                                  
  495. *       *                                                         
  496. *       *********************************************************
  497. *
  498. FUNCTION _qfx0tfnf1     &&  moveAct VALID
  499. #REGION 1
  500. IF (moveact == 1)
  501.     IF (selectcolumn > 0)
  502.         DO ADD
  503.     ENDIF
  504. ELSE
  505.     DO remove
  506. ENDIF
  507.  
  508.  
  509. *       *********************************************************
  510. *       *                                                         
  511. *       * _QFX0TFNJ7           Read Level When                    
  512. *       *                                                         
  513. *       * Function Origin:                                        
  514. *       *                                                         
  515. *       *                                                         
  516. *       * From Platform:       MS-DOS                             
  517. *       * From Screen:         SELECT                             
  518. *       * Called By:           READ Statement                     
  519. *       * Snippet Number:      8                                  
  520. *       *                                                         
  521. *       *********************************************************
  522. *
  523. FUNCTION _qfx0tfnj7     && Read Level When
  524. *
  525. * When Code from screen: SELECT
  526. *
  527. #REGION 1
  528. if alen(templist) < 2
  529.     show get moveact,1 disabled
  530. else
  531.     show get moveact,1 enabled
  532. endif
  533. if alen(selectlist) < 2
  534.     show get moveact,2 disabled
  535. else
  536.     show get moveact,2 enabled
  537. endif
  538.  
  539.  
  540. *       *********************************************************
  541. *       *                                                         
  542. *       *   SELECT/MS-DOS Supporting Procedures and Functions     
  543. *       *                                                         
  544. *       *********************************************************
  545. *
  546.  
  547. #REGION 1
  548. FUNCTION inselectlist
  549. PARAMETER columnname
  550.  
  551. PRIVATE nselects, i
  552.  
  553. nselects = ALEN(selectlist) - 1
  554. FOR i = 1 TO nselects
  555.     IF (columnname == selectlist[i])
  556.         RETURN .T.
  557.     ENDIF
  558. ENDFOR
  559.  
  560. RETURN .F.
  561.  
  562.  
  563. PROCEDURE add
  564.  
  565. PRIVATE nselects, ncolumns, columnname
  566.  
  567. ncolumns = ALEN(templist) - 1
  568. IF (ncolumns < selectcolumn)
  569.     RETURN
  570. ENDIF
  571. columnname = templist[SelectColumn]
  572. *
  573. *    Add column to select list
  574. *
  575. nselects = ALEN(selectlist)
  576. selectlist[nSelects] = columnname
  577. DIMENSION selectlist[nSelects + 1]
  578. = ASORT(selectlist,1,ALEN(selectlist) - 1)
  579.  
  580. FOR i = 1 TO nselects
  581.     DEFINE BAR (i) OF selespop PROMPT selectlist(i)
  582. ENDFOR
  583.  
  584. = ADEL(templist, selectcolumn)
  585. dimension templist(alen(templist)-1)
  586. RELEASE BAR ALL OF selecpop
  587. ntables = ALEN(templist)  - 1
  588. FOR i = 1 TO ntables
  589.     tablename = '"' + templist[i] + '"'
  590.     DEFINE BAR (i) OF selecpop PROMPT templist[i]
  591. ENDFOR
  592.  
  593. if alen(templist) < 2
  594.     show get moveact,1 disabled
  595. else
  596.     show get moveact,1 enabled
  597. endif
  598. if alen(selectlist) < 2
  599.     show get moveact,2 disabled
  600. else
  601.     show get moveact,2 enabled
  602. endif
  603.  
  604. removecolumn = 1
  605. if selectcolumn > alen(templist) - 1
  606.     selectcolumn = alen(templist) - 1
  607. endif
  608.  
  609. SHOW GET removecolumn
  610. SHOW GET selectcolumn
  611.  
  612. RETURN
  613.  
  614.  
  615. PROCEDURE remove
  616.  
  617. PRIVATE nselects, i
  618.  
  619. nselects = ALEN(selectlist) - 1
  620. IF (nselects < 1)
  621.     RETURN
  622. ENDIF
  623. colname = selectlist(removecolumn)
  624. = ADEL(selectlist, removecolumn)
  625. DIMENSION selectlist[nSelects]
  626.  
  627. RELEASE BAR ALL OF selespop
  628. nselects = nselects - 1
  629. FOR i = 1 TO nselects
  630.     DEFINE BAR (i) OF selespop PROMPT selectlist[i]
  631. ENDFOR
  632.  
  633. nfroms = ALEN(templist)
  634. templist[nFroms] = colname
  635. DIMENSION templist[nFroms + 1]
  636. = ASORT(templist,1,ALEN(templist) - 1)
  637. FOR i = 1 TO nfroms
  638.     DEFINE BAR (i) OF selecpop PROMPT templist[i]
  639. ENDFOR
  640.  
  641. if alen(templist) < 2
  642.     show get moveact,1 disabled
  643. else
  644.     show get moveact,1 enabled
  645. endif
  646. if alen(selectlist) < 2
  647.     show get moveact,2 disabled
  648. else
  649.     show get moveact,2 enabled
  650. endif
  651.  
  652. selectcolumn= 1
  653. if removecolumn > alen(selectlist) - 1
  654.     removecolumn = alen(selectlist) - 1
  655. endif
  656.  
  657. SHOW GET removecolumn
  658. SHOW GET selectcolumn
  659.  
  660. RETURN
  661.