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

Duvida Usar Classes

Discussão em 'Progress 4GL' iniciado por Marcelo Torres, Outubro 21, 2020.

  1. Marcelo Torres

    Marcelo Torres Sem Pontuação

    Boa tarde!

    Como usar uma classe que está num arquivo CLS ou que foi feita em Progress?

    No arquivo CLS tem a definição de uma classe (com suas propriedades, métodos e eventos), a dúvida é justamente como usar esta classe definida num programa Progress.


    Obrigado!

    Marcelo Torres
  2. Renan Cano

    Renan Cano Membro Participativo

    Poderia postar esse arquivo CLS que contem a Classe? Quero ver se consigo te ajudar...
  3. Renan Cano

    Renan Cano Membro Participativo

    A principio é algo simples, vc define no propath o diretorio onde esta as suas classes.
    Digamos que seu arquivo.cls está em "C:\classes" então deve estar incluido esse endereço no propath.
    Ai no seu arquivo .p vc pode definir uma variavel do tipo class e depois instanciar um objeto para acessar as propriedades e metodos.

    //Exemplo de como definir uma variavel do tipo da classe
    DEF VAR nome_variavel AS CLASS nome_class NO-UNDO.

    //Exemplo Instanciando um objeto
    nome_variavel = new nome_class().

    //Exemplo acessando metodos
    nome_variavel:metodo_da_classe("parametros do metodo").

    Espero ter ajudado :)
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Olá, eu uso classes, como eu uso, criei uma pastas chamada totvs, ou seja, em minha estrutura tenho t:\_custom\totvs, o meu propath vai até o _custom, não precisa por a pasta das classes no propath.
    vc abre um .p por exemplo e faz:
    using totvs.cadastro.*.

    depois vc faz ....
    define variable cliente as Cliente no-undo.

    assign cliente = new Cliente().

    depois sai usando os metodos da classe ....
    cliente:find(1).
    if cliente:existe() then do: .....

    E assim vai ....
    Eu tive que criar uma infra de tratamento de erros pra classe, por que o progress trata os erros sem problemas, vc lança um erro numa classe que é chamada por uma classe que é chamada por uma classe que é chamada por uma aplicação, ele vai voltando tudo isso sem problemas, mas vc não tem o motivo do erro, só sabe que deu erro ...
    Então eu criei uma infra que é extensão da classe de erros do progress pra tratar isso, usando os throws e catchs da vida.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    se quiser algo mais detalhado, meu skype é richard.edgar.cruz, tem uns detalhes que precisam ser dado atenção pra tudo funcionar certinho.
  6. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    o grande detalhe de usar classes no progress é que o progress tem alguns comandos que são muito simples e praticos, um for each por exemplo, não tem outro tipo de comando que possa superar um for each, se for em classes, vc tem que ficar fazendo find next, find prev, find last e lendo os campos de registro atraves dos metodos, ou vc informar uma faixa de dados, ele popular uma temp-table e te retorna a temp-table, fica bonito a classe assim, mas pouco pratico, dependendo do range de registros, fica lento, ler a tabela, popular uma temp-table, passar a temp-table pro seu aplicativo, dai lá vc usar for each pra ler a temp-table, ou ainda, vc popular a temp-table dentro da classe e fazer metodos de findNext e ler os campos, acaba com a sua performance, então vc tem que achar um meio termo pro uso.

Compartilhe esta Página