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

CC0300B verificar parcelas

Discussão em 'EMS , HCM e Totvs 11' iniciado por marco.luques, Junho 4, 2021.

  1. marco.luques

    marco.luques Membro Ativo

    Caros amigos

    Preciso fazer uma UPC para verificar a quantidade alterada das parcelas na tela CC0300B, antes de salvar

    Para isso preciso fazer um for each na table tt-prazo-compra dessa tela.

    Encontrei um ponto de UPC chamado "BEFORE-SAVE-RECORD"

    Mas não consigo alcançar essa temp-table pela upc.


    vi tambem que é passado uma raw transformada em character no parametro p-cod-table da tabela tt-ordem-compra, mas nao consegui converter em temp-table novamente.

    Alguém tem idéia de como fazer isso? se é que é possível?
  2. rlfritz

    rlfritz Membro Ativo

    Opa ... eu tive uma situação parecida, porém em outro programa. No meu caso, a tabela temporária estava associada a um browser.
    Eu precisava verificar (e até mesmo alterar) dados da temp-table.

    O programa UPC, recebe os parâmetros básicos ... onde tem o p-wgh-frame

    Código:
    
    DEFINE VARIABLE wh-browse AS HANDLE      NO-UNDO.
    DEFINE VARIABLE wh-buffer AS HANDLE      NO-UNDO.
    DEFINE VARIABLE wh-query AS HANDLE      NO-UNDO.
     
    define variable itensBrowse   as integer    no-undo.
    define variable camposBrowse  as integer    no-undo.
    
    
    /*Rodo um programa específico que "descobre" o handle de um objeto.*/
    run especifico/utils/findWidget.p("brSon1" ,"browse", p-wgh-frame , output wh-browse).   (programa em anexo).
    
    
            assign wh-query  = wh-browse:query
                   wh-buffer  = wh-query:get-buffer-handle(1) .
                   
            repeat itensBrowse = 1 to wh-query:NUM-RESULTS :
                        if itensBrowse = 1 then 
                            wh-query:get-first().
                        else
                            wh-query:get-next().
       
                    repeat camposBrowse = 1 to wh-buffer:num-fields:
                        IF wh-buffer:buffer-field(camposBrowse):NAME = "cod-depos" THEN DO:   /* nome do campo que procuro é cod-depos */
       
                           ASSIGN wh-buffer:buffer-field(camposBrowse):BUFFER-VALUE = "EXP" .    /*  altera o conteúdo do campo para EXP */
       
                        END.
                    END.
            END.
       
       
            wh-browse:REFRESH() .
    
    
    
    
    Veja se isso te ajuda!

    Arquivos Anexados:

  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    o campo tipo RAW não tem a tabela, tem um registro, ou seja, vc tem que ter uma temp-table com as mesmas definições, vc então faz um create na sua tabela e pelo comando raw vc joga o registro pra dentro, então a primeira coisa a verificar tabela da upc, se está vindo um registro pra cada linha da tabela, dai vc popula e faz o que precisa, possivelmente, se vc alterar informações na sua temp-table, depois vc transforma de novo o registro pra RAW e devolve pra rotina ...
  4. marco.luques

    marco.luques Membro Ativo

    Deu certo Robert...seu código funcionou.

    Muito Obrigado.

    Valeu também pela resposta Richard...
    rlfritz curtiu isso.

Compartilhe esta Página