1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

013 - CRUD (manutenção de cadastros)

Discussão em 'Ambiente Web - Webspeed e/ou StarWeb FrameWork' iniciado por Agnaldo, Fevereiro 2, 2014.

  1. Agnaldo

    Agnaldo Membro Ativo

    PHP:
    FUNCTION salvar RETURNS LOGICAL ().

        
    ASSIGN emModoIncluir GET-VALUE("emModoIncluir").
        IF 
    emModoIncluir "SIM"
           
    THEN
               
    DO:
                  IF 
    lerCamposDaTela()
                     
    THEN
                         
    DO:
                            IF 
    CAN-FIND(Clientes WHERE Clientes.codigo codigo NO-LOCK
                               
    THEN
                                   ASSIGN mensagem        
    "Já existe um cliente cadastrado com o código " STRING(codigo) + "<br>" "Inclusão não realizada"
                                          
    erroNaValidacao "SIM".
                               ELSE
                                   DO:
                                      
    CREATE Clientes.
                                      
    ASSIGN Clientes.Codigo          codigo
                                             Clientes
    .Nome            nome
                                             Clientes
    .DataDeEntrada   dataDeEntrada
                                             Clientes
    .LimiteDeCredito limiteDeCredito
                                             Clientes
    .Representante   representante
                                             Clientes
    .Situacao        situacao
                                             Clientes
    .Tipo            tipo
                                             Clientes
    .GrandePorte     grandePorte.

                                      
    ASSIGN ponteiro STRING(ROWID(Clientes)).

                                      
    ASSIGN mensagem      "Inclusão realizada com sucesso"
                                             
    emModoIncluir "".
                                   
    END.
                         
    END.
                     ELSE
                         
    ASSIGN erroNaValidacao "SIM".
               
    END.
           ELSE
               DO:
                  IF 
    lerCamposDaTela()
                     
    THEN
                         
    DO:
                            
    FIND Clientes WHERE ROWID(Clientes) = TO-ROWID(ponteiroEXCLUSIVE-LOCK NO-WAIT NO-ERROR.
                            IF 
    NOT AVAILABLE Clientes
                               THEN
                                   
    IF LOCKED Clientes
                                      THEN
                                          
    DO:
                                             
    ASSIGN mensagem "Registro em uso por outro usuário. Tente novamente.".
                                             
    FIND Clientes WHERE ROWID(Clientes) = TO-ROWID(ponteiroNO-LOCK NO-ERROR.
                                          
    END.
                                      ELSE
                                          DO:
                                             
    ASSIGN mensagem "Registro corrente não esta mais disponivel. O primeiro esta sendo mostrado.".
                                             
    primeiro().
                                          
    END.
                               ELSE
                                   DO:
                                      
    ASSIGN Clientes.Nome            nome
                                             Clientes
    .DataDeEntrada   dataDeEntrada
                                             Clientes
    .LimiteDeCredito limiteDeCredito
                                             Clientes
    .Representante   representante
                                             Clientes
    .Situacao        situacao
                                             Clientes
    .Tipo            tipo
                                             Clientes
    .GrandePorte     grandePorte.
       
                                      
    ASSIGN mensagem "Alteração realizada com sucesso"
                                   
    END.
                         
    END.
                     ELSE
                         DO:
                            
    ASSIGN erroNaValidacao "SIM".
                            
    FIND Clientes WHERE ROWID(Clientes) = TO-ROWID(ponteiroNO-LOCK NO-ERROR.
                         
    END.
               
    END.

        RETURN 
    TRUE.

    END FUNCTION. /* salvar RETURNS LOGICAL () */


    FUNCTION buscaCorrente RETURNS LOGICAL ().

        
    FIND Clientes WHERE ROWID(Clientes) = TO-ROWID(ponteiroNO-LOCK NO-ERROR.
        IF 
    AVAILABLE Clientes
           THEN
               moveDadosParaVariaveisDeTela
    ().
           ELSE
               DO:
                  
    ASSIGN mensagem "Registro corrente não esta mais disponivel. O primeiro esta sendo mostrado".
                  
    primeiro().                                                                              
               
    END.

        RETURN 
    TRUE.

    END FUNCTION. /* buscaCorrente RETURNS LOGICAL () */


    FUNCTION excluir RETURNS LOGICAL ().

        
    DEFINE BUFFER bfClientes FOR Clientes.

        
    FIND Clientes WHERE ROWID(Clientes) = TO-ROWID(ponteiroEXCLUSIVE-LOCK NO-WAIT NO-ERROR.
        IF 
    NOT AVAILABLE Clientes
           THEN
               
    IF LOCKED Clientes
                  THEN
                      
    DO:
                         
    ASSIGN mensagem "Registro em uso por outro usuário. Tente novamente.".
                         
    FIND Clientes WHERE ROWID(Clientes) = TO-ROWID(ponteiroNO-LOCK NO-ERROR.
                      
    END.
                  ELSE
                      DO:
                         
    ASSIGN mensagem "Registro corrente não esta mais disponivel. O primeiro esta sendo mostrado.".
                         
    primeiro().
                      
    END.
           ELSE
               DO:
                  
    FIND bfClientes WHERE ROWID(bfClientes) = TO-ROWID(ponteiroNO-LOCK NO-ERROR.
                  
    FIND NEXT bfClientes NO-LOCK NO-ERROR.
                  IF 
    AVAILABLE bfClientes
                     THEN
                         ASSIGN ponteiro 
    STRING(ROWID(bfClientes)).
                     ELSE
                         DO:
                            
    FIND bfClientes WHERE ROWID(bfClientes) = TO-ROWID(ponteiroNO-LOCK NO-ERROR.
                            
    FIND PREV bfClientes NO-LOCK NO-ERROR.
                            IF 
    AVAILABLE bfClientes
                               THEN
                                   ASSIGN ponteiro 
    STRING(ROWID(bfClientes)).
                               ELSE
                                   
    ASSIGN ponteiro = ?.
                         
    END.

                  
    ASSIGN mensagem "Exclusão do registro " STRING(Clientes.Codigo) + " realizada com sucesso"
                  
    DELETE Clientes.
                  
    buscaCorrente().
               
    END.

    END FUNCTION. /* excluir RETURNS LOGICAL () */




    /* ************************************************************************* */ 
    /* ***                                                                   *** */        
    /* ***       Bloco principal (main block)                                *** */
    /* ***                                                                   *** */
    /* ************************************************************************* */ 


    /* *** Gera o header html *** */
    output-content-type("text/html").

    IF 
    REQUEST_METHOD "GET"  
       
    THEN
           
    DO:
              
    primeiro().
              
    montaTela().      
           
    END/* get */
       
    ELSE    
           DO:
              
    ASSIGN opcaoDoMenu GET-VALUE("opcaoDoMenu")
                     
    ponteiro    GET-VALUE("ponteiro").
             
              CASE 
    opcaoDoMenu:
                  
    WHEN "primeiro" THEN primeiro().
                  
    WHEN "ultimo"   THEN ultimo().
                  
    WHEN "anterior" THEN anterior().
                  
    WHEN "proximo"  THEN proximo().
                  
    WHEN "corrente" THEN buscaCorrente(). 
                  
    WHEN "salvar"   THEN salvar().
                  
    WHEN "excluir"  THEN excluir().
              
    END CASE.
                     
              
    montaTela().

           
    END/* post */






    /* ************************************************************************* */ 
    /* ***                                                                   *** */        
    /* ***       Bloco de procedures                                         *** */
    /* ***                                                                   *** */
    /* ************************************************************************* */ 





    /* *** Fim do arquivo *** */


    Curtiu?
    Até o próximo post.
    liliane, madmau e brazjuniorgyn curtiram isso.
  2. weiss_sbs

    weiss_sbs Membro Participativo

    Estou na parte em que coloca o arquivo .js e as imagens, porem não carrega as imagens, coloque um message do propath e esta achando os arquivos, oque pode ser ?

    Arquivos Anexados:

  3. Agnaldo

    Agnaldo Membro Ativo

    Vamos assumir o seguinte

    c:\programas -> pasta onde estão os programas que, para rodarem, estão na propath
    isso é Progress 4gl, sendo assim, usam propath
    Se fosse Unix/Linux seria algo como /home/programas


    c:\inetpub\wwwroot -> pasta raiz do web server, se for Windows com IIS
    c:\apache\htdocs -> pasta raiz do web server, se for Windows com Apache
    Se fosse Unix/Linux seria algo como /home/apache/wwww

    Note, são duas coisas em separado.
    Temos a pasta com programas 4GL, que são acessados pelo client Progress (no caso usando o SWFW - StarWeb FrameWork, ou o WebSPeed)

    E temos a pasta da WEB, que é a pasta que o browser encherga.

    quando voce faz
    http://teuServidor/imagens/casa.gif
    voce esta acessando, fisicamente, c:\inetpub\wwwroot\imagens\casa.gif.
    Idem para os arquivos do javascript.
    Sendo assim, os arquivos quer NÃO são 4gl progress precisam ficar na pasa do webserver.

    Na pasta dos programas Progress, aficam apenas os arquivos .p, que são acessados pela Propath.

    Ainda em tempo, de uma olhada na aula 10.
    O conhecimento necessário foi explicado e exemplificado lá.
    Última edição: Julho 24, 2014
  4. Agnaldo

    Agnaldo Membro Ativo

    .

Compartilhe esta Página