[RESOLVIDO] Criar UPC -> RE1001D

Discussão em 'EMS , HCM e Totvs 11' iniciado por Gustavo R. Hruschka, Junho 16, 2016.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. Gustavo R. Hruschka

    Gustavo R. Hruschka Sem Pontuação

    Boa tarde pessoal!

    Preciso criar uma UPC no RE1001D (guia Despesa), para tratar os arquivos XML das Despesas Acessórias.

    Pesquisei uma forma aqui no FORUM mas não consigo pegar os valores dos campos, conforme parte do código abaixo (declarei as variáveis).

    Alguém poderia me dar uma luz?
    Obrigado.

    if p-ind-event = 'before-assign' THEN
    do:
    ASSIGN h-objeto = p-wgh-frame:FIRST-CHILD.
    ASSIGN h-objeto = h-objeto:FIRST-CHILD.
    DO WHILE VALID-HANDLE(h-objeto):
    if h-objeto:name = "cod-emitente" THEN assign v-cod-emitent = int(h-objeto:screen-value).
    IF h-objeto:NAME = "nat-operacao" THEN ASSIGN v-nat-operacao = h-objeto:SCREEN-VALUE.
    IF h-objeto:NAME = "cb-cod-observa" THEN ASSIGN v-cod-observa = h-objeto:SCREEN-VALUE.
    IF h-objeto:NAME = "cod-estabel" THEN ASSIGN v-cod-estabel = h-objeto:SCREEN-VALUE.
    IF h-objeto:NAME = "serie-docto" THEN ASSIGN v-serie-docto = h-objeto:SCREEN-VALUE.
    IF h-objeto:NAME = "i-nro-docto" THEN ASSIGN v-nro-docto = h-objeto:SCREEN-VALUE.
    assign h-objeto = h-objeto:NEXT-SIBLING.
    END.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    eu acredito que vc esteja no ponto (p-ind-event) errado, faça na sua UPC, no inicio dela ....
    Código:
             message "Evento........: " p-ind-event         skip
                     "Objeto........: " p-ind-object        skip
                     "Nome objeto ..: " c-objeto            skip
                     "Handle Objeto.: " p-wgh-object        skip
                     "Frame.........: " p-wgh-frame         skip
                     "Tabela........: " p-cod-table         skip
                     "Rowid.........: " string(p-row-table) skip
                     view-as alert-box info buttons ok.         
    
    e descubra em qual ponto em que o seu codigo consegue validar os dados, porque no before-assign, o programa já está em uma procedure tela e nem tem mais a tela em foco.
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    veja que a upc manda o p-row-table, se o ponto que vc precisa é o before-assign, usa esse campo pra ler a tabela e pegar os dados direto dela, sem precisar se preocupar com os dados em tela.
  4. Gustavo R. Hruschka

    Gustavo R. Hruschka Sem Pontuação

    Bom dia Richard!

    Então, coloquei a mensagem em questão e é mesmo no "before-assign", pois a validação deve ocorrer quando clicar no botão "OK" da tela.
    Vou testar pra pegar os dados da -row-table e lhe aviso quando conseguir fazer isso.

    De qualquer forma, muito obrigado pela sua atenção!!!
    Abraço.
  5. Gustavo R. Hruschka

    Gustavo R. Hruschka Sem Pontuação

    Perfeito Richard, deu certo!!!

    Fiz o seguinte....

    FIND despesa-aces NO-LOCK WHERE rowid(despesa-aces) = p-row-table NO-ERROR.
    IF AVAIL despesa-aces THEN DO:
    ...............
    END.


    Muito obrigado!
    Abraços
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página