Manipulando um Browse

Discussão em 'Comandos Básicos' iniciado por fdantas, Fevereiro 3, 2009.

  1. fdantas

    fdantas Administrator Moderador

    /******************** STATEMENTS**************************************
    **
    ** ENABLE (DEF BROWSE...)
    ** E possivel habilitar cada uma das
    ** colunas de um BROWSE para interacao.
    **
    ** VIEW-AS ALERT-BOX QUESTION (MESSAGE...)
    ** Gera o icon de Questao do window.
    **
    ** x = b-cust:INSERT-ROW("AFTER") (METHOD)
    ** Cria uma linha apos o hightlight
    ** no BROWSE.
    **
    ** ROW-LEAVE (Event)
    ** Evento que acontece sempre que o
    ** hightlight abandona uma linha do
    ** BROWSE.
    **
    ** b-cust:NEW-ROW (Attribute)
    ** Retorna yes ou no se foi criado uma
    ** nova linha no BROWSE.
    **
    ** x = b-cust:CREATE-RESULT-LIST-ENTRY().
    ** Confirma criacao de qualquer alteracao
    ** no BROWSE.
    **
    **********************************************************************/

    Código:
    DEF VAR x  AS LOGICAL.              
    DEF VAR y  AS LOGICAL.              
    
    DEF BUTTON bt-fim LABEL "&Ok" 
                            SIZE 10 BY 1.
    DEF BUTTON bt-inc LABEL "&Inclui"  
                            SIZE 10 BY 1.
    
    DEF QUERY q-cust FOR customer.
    DEF BROWSE b-cust QUERY q-cust
        DISPLAY customer.cust-num 
                customer.name
                customer.credit-limit
        ENABLE  customer.name
                customer.credit-limit
                WITH SIZE 47 BY 7.6 SEPARATORS.  
                
    OPEN QUERY q-cust FOR EACH customer.
    
    DEFINE FRAME a
            SKIP(1)  SPACE(3) b-cust
            SKIP(2)  bt-inc  AT ROW 12  COLUMN 04 SKIP(1) 
            bt-fim           AT ROW 12  COLUMN 15 SKIP(1)
            WITH CENTERED ROW 1
            VIEW-AS DIALOG-BOX SIZE 60 BY 15.
    DISPLAY b-cust bt-fim WITH FRAME a.
    ENABLE ALL WITH FRAME a.       
    
    ON CHOOSE OF bt-inc  
      DO:          
       MESSAGE "Nova Linha?" 
           VIEW-AS ALERT-BOX QUESTION
           BUTTONS YES-NO UPDATE y.   
       IF y THEN     
          x = b-cust:INSERT-ROW("AFTER").
       ELSE 
          MESSAGE "INCLUSAO CANCELADA"
             VIEW-AS ALERT-BOX INFORMATION.
      END. 
      
    ON ROW-LEAVE OF BROWSE b-cust 
      DO:
       IF b-cust:NEW-ROW IN FRAME a THEN 
          DO:                                       
             CREATE customer.
             ASSIGN INPUT BROWSE b-cust
                    customer.name
                    customer.credit-limit.
             DISPLAY customer.cust-num 
                    WITH BROWSE b-cust. 
             OPEN QUERY q-cust FOR EACH customer.
          END.                                               
       x = b-cust:CREATE-RESULT-LIST-ENTRY().
      END.
          
    WAIT-FOR CHOOSE OF bt-fim.  
    
    CLOSE QUERY q-cust.

Compartilhe esta Página