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

Urgente Atualizar Browse com 2 telas

Discussão em 'Progress 4GL' iniciado por Renan Cano, Setembro 8, 2020.

  1. Renan Cano

    Renan Cano Membro Participativo

    Entao na verdade é apenas um browse no primeiro programa e uma temp-table compartilhada, mas tipo eu preciso que ao gravar os dados na segunda tela o browse da primeira ja atualize e exiba os dados, para exemplificar melhor o programa do datasul FT4003 faz exatamente o que eu preciso fazer conforme a imagem abaixo:

    exemplo.PNG

    minha temp-table está definida nos dois programas assim:

    DEF NEW GLOBAL SHARED TEMP-TABLE teste
    FIELD nome as char.


    O Browse está no primeiro programa, porem apenas no segundo eu insiro os dados na tabela.
    Entao quando pelo segundo programa eu inserir os dados na tebela, quero atualizar o browse no primeiro programa para exibir esses dados.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    nossa, não usa global shared não, pessima pratica, bem, primeiro, no datasul funciona porque é tabela de banco, a segunda tela salva o registro e quando volta do botão que chamou a tela, ele faz um refresh() no browse, ou ainda, usando o que te expliquei passando handle do programa, vc cria uma procedure pra fazer o refresh do browse, dai quando clicar no botão salvar, vc faz run refresh in handlePai() por exemplo, mas com o uso de temp-tables, é aquilo que te falei, toda vez que clicar no OK ou em SALVAR vc tem que devolver a temp-table atualizada para o programa pai e ele atualiza o browser, eu já desisti desse modelo de desenvolvimento, se as telas não 100% especificas, eu uso browse editavel, que alias, o nosso colega Rafael me deu dicas muito preciosas sobre a manipulação de browsers através de handles.
  3. Renan Cano

    Renan Cano Membro Participativo

    Poiseh na verdade eu to fazendo uns testes antes, mas o projeto real vai ser tudo via UPC e algumas telas custom, no caso basicamente vai ter uma tela custom pra inserir as informações nas tabelas do datasul e uma UPC no programa que tem o browse que preciso que seja atualizado.

    Vou tentar avançar aqui com essa ideia que me passou, obrigado por enquanto.
  4. Renan Cano

    Renan Cano Membro Participativo

    Consegui fazer usando 2 temp-table, como recomendou abandonei o GLOBAL SHARED.

    Agora vou precisar de ajuda para uma melhor compreenção do código, pois gosto de entender para usar em diversas ocasiões, me corrija no que estiver errado.

    Quando eu dou um RUN programa2 usando o (THIS-PROCEDURE), no programa 2 eu consigo acessar as procedures do programa 1?
    ai passo como parametro a segunda temp-table.

    mas antes do parametro coloquei o IN handlePai aqui ficou minha duvida como essa definição sabe que esse handle é referente ao programa 1, em que momento essa atribuição acontece.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    ok, vamos lá, quando vc faz o run programa2.w(THIS-PROCEDURE), vc está passando o handle de VC MESMO para o programa2.w, lembra que no programa2.w eu fiz define input parameter handlePai as handle no-undo. ????? esse ponto que o programa2 está recebendo o handle do programa1

    Agora sim, vc tem acesso a todas as procedures do programa1 atraves do handle dele;
  6. Renan Cano

    Renan Cano Membro Participativo

    Nossa muito obrigado mesmo, entendi bem, essa informação vai ser muito util no meu dia-a-dia, inclusive peguei mais um detalhes sobre trabalhar com parametros em outra postagem que vc ajudou ou pessoa, com certeza vai ser algo que vou usar bastante daqui em diante, mais uma vez obrigado!

Compartilhe esta Página