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

buscar temp-table via UPC

Discussão em 'EMS , HCM e Totvs 11' iniciado por lcpaulino, Abril 26, 2024.

  1. lcpaulino

    lcpaulino Membro Participativo

    Olá, através de uma UPC como retorno o conteúdo de uma temp-table (deixo o registro disponível para que eu possa acessar e a partir dai fazer as lógicas necessárias)?

    Quando é via EPC eu normalmente utilizo "getrecord", mas não está funcionando da forma como disponibilizaram o ponto de UPC.

    Eu já estou no

    Alguém poderia me ajudar?

    Abaixo segue o ponto de UPC do produto padrão (re0118a)

    /*Inicio do ponto UPC*/
    {method/custom.i &Event="before-bt-save"
    &Object="button"
    &ObjectHandle="THIS-PROCEDURE:HANDLE"
    &FrameHandle="FRAME {&frame-name}:HANDLE"
    &Table="tt-item-doc-orig-nfe-trad":U
    &RowidTable="tt-item-doc-orig-nfe-trad.r-rowid"}
    IF RETURN-VALUE = "NOK":U THEN DO:
    UNDO, RETURN NO-APPLY.
    END.
    /*Término do ponto UPC*/



    estou tentando assim e não está funcionando:
    IF p-ind-event = 'before-bt-save' AND
    p-ind-object = 'button' AND
    p-cod-table = 'tt-item-doc-orig-nfe-trad' THEN DO:
    ASSIGN h-handle = p-wgh-frame.
    RUN getRecord IN h-handle (OUTPUT TABLE tt-item-doc-orig-nfe-trad).
    FIND FIRST tt-item-doc-orig-nfe-trad NO-LOCK NO-ERROR.
    IF AVAIL tt-item-doc-orig-nfe-trad THEN DO:
    MESSAGE 'achou ' tt-item-doc-orig-nfe-trad.it-codigo
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
    END.
    ELSE DO:

    MESSAGE 'nao achou'
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
    END.
    END.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Parece que tem algo incompleto na sua postagem, poderia completar por favor?
  3. lcpaulino

    lcpaulino Membro Participativo

    Olá,

    Esse trecho abaixo eu retirei do fonte do programa oficial: re0118a.w

    Em anexo está a UPC que eu estou criando... onde o objetivo inicial é ter acesso a temp-table "tt-item-doc-orig-nfe-trad" (que contém o registro dos dados em tela quando o usuario confirma a alteração)

    Com a UPC do jeito que está, eu consigo chegar no evento "before-bt-save"... o quê eu não estou conseguindo é ficar com a temp-table disponível para que eu possa ler o conteúdo do registro.

    Geralmente eu consigo acessar a temp-table via UPC quando o programa oficial disponibiliza via "tt-epc", então, eu utilizo o "getRecord" e consigo obter acesso a temp-table... mas do jeito como disponibilizaram a temp-table no programa oficial eu não estou conseguindo.

    /*In¡cio do ponto UPC*/
    {method/custom.i &Event="before-bt-save"
    &Object="button"
    &ObjectHandle="THIS-PROCEDURE:HANDLE"
    &FrameHandle="FRAME {&frame-name}:HANDLE"
    &Table="tt-item-doc-orig-nfe-trad":U
    &RowidTable="tt-item-doc-orig-nfe-trad.r-rowid"}
    IF RETURN-VALUE = "NOK":U THEN DO:
    UNDO, RETURN NO-APPLY.
    END.
    /*T‚rmino do ponto UPC*/

    Arquivos Anexados:

  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Tenta assim:

    Código:
    DEF VAR bufferTempTable AS HANDLE.
    
    CREATE BUFFER bufferTempTable FOR TABLE "t-item-doc-orig-nfe-trad".
    
    bufferTempTable:FIND-FIRST("",NO-LOCK) NO-ERROR.
    
    IF bufferTempTable:AVAIL THEN DO:
         MESSAGE "EncontrouRegistro" SKIP bufferTempTable:BUFFER-FIELD("nome_de_algum_campo"):BUFFER-VALUE VIEW-AS ALERT-BOX.
    END.
    ELSE DO:
        MESSAGE "Não encontrado registro" VIEW-AS ALERT-BOX.
    END.
    
    Observações:
    1. Se ocorrer algum erro de sintax, olhe o help do progress, pq estou fazendo de memória
    2. BUFFER-VALUE tem que informar o índice se o campo que está lendo (buffer-field) for extent (array), exemplo:
    bufferTempTable:BUFFER-FIELD("nome_de_algum_campo"):BUFFER-VALUE(1)
  5. lcpaulino

    lcpaulino Membro Participativo

    Não deu erro de sintax, mas não encontrou o registro...
  6. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Escrevi errado ali o nome da temp-table

    Erro:
    CREATE BUFFER bufferTempTable FOR TABLE "t-item-doc-orig-nfe-trad".

    Correto:
    CREATE BUFFER bufferTempTable FOR TABLE "tt-item-doc-orig-nfe-trad".

Compartilhe esta Página