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

Dica Variável Shared não compartilhando valor

Discussão em 'Progress 4GL' iniciado por rodolfo.rcs, Março 15, 2022.

  1. rodolfo.rcs

    rodolfo.rcs Membro Participativo

    Pessoal, boa tarde.

    Temos um programa cadastro pai x filho que precisa de um campo adicional para direcionar a impressora no momento da inclusão do cadastro filho. As impressoras são carregadas no main block da viewer do cadastro pai.

    Adicionei uma variável new shared na viewer do cadastro pai para receber a lista de impressoras e na viewer do cadastro filho compartilhei ela como shared.

    Acontece que o valor alterado na tela do cadastro pai não atualiza o valor quando é chamado o programa do cadastro filho.

    Também estou com problema que ao chamar o programa filho apresenta erro de variável shared c-printer não criada.

    Teriam alguma dica para essa situação?
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Tem uma versão simples do código pra compartilhar?
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Tem uma versão simples do código pra compartilhar?
  4. rodolfo.rcs

    rodolfo.rcs Membro Participativo

    Rafael, boa tarde.
    Acho que são essas chamadas que estou utilizando no momento.

    /*Viewer cadastro pai*/
    //Definitions
    /* global variable definitions */
    DEFINE NEW SHARED VARIABLE c-printer AS CHAR NO-UNDO.
    DEFINE VARIABLE c-printers AS CHAR VIEW-AS COMBO-BOX NO-UNDO.
    /*Main Block*/
    ASSIGN c-printers:LIST-ITEMS = SESSION:GET-PRINTERS().
    /*Value-changed c-printers*/
    ASSIGN c-printer = c-printers:SCREEN-VALUE IN FRAME {&FRAME-NAME}.
    /*View Cadastro filho*/
    DEFINE SHARED VARIABLE c-printer AS CHAR NO-UNDO.
    /*em qualer ponto que coloco uma msg aparece sempre a primeira impressora da lista
    independente da selação do combo-box da c-printers*/
    /*Agora estou com erro que variável shared não foi criada na viewer filho*/
  5. rodolfo.rcs

    rodolfo.rcs Membro Participativo

    Rafael, boa tarde.
    Acho que são essas chamadas que estou utilizando no momento.

    /*Viewer cadastro pai*/
    //Definitions
    /* global variable definitions */
    DEFINE NEW SHARED VARIABLE c-printer AS CHAR NO-UNDO.
    DEFINE VARIABLE c-printers AS CHAR VIEW-AS COMBO-BOX NO-UNDO.
    /*Main Block*/
    ASSIGN c-printers:LIST-ITEMS = SESSION:GET-PRINTERS().
    /*Value-changed c-printers*/
    ASSIGN c-printer = c-printers:SCREEN-VALUE IN FRAME {&FRAME-NAME}.
    /*View Cadastro filho*/
    DEFINE SHARED VARIABLE c-printer AS CHAR NO-UNDO.
    /*em qualer ponto que coloco uma msg aparece sempre a primeira impressora da lista
    independente da selação do combo-box da c-printers*/
    /*Agora estou com erro que variável shared não foi criada na viewer filho*/
  6. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    não seria mais facil vc indicar que a impressora selecionada no programa pai se torne a padrão do sistema e dai o programa filho só manda pra impressora padrão ?
    Código:
                assign session:printer-name = impressora.
    
    e no seu programa filho vc só faz o "output to printer"

Compartilhe esta Página