[RESOLVIDO] UPC Adicionar Coluna Browse FT4001

Discussão em 'EMS , HCM e Totvs 11' iniciado por lucasiam, Maio 9, 2017.

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

    bootstrapmaster Moderator Moderador Equipe de Suporte

    teria que ver se o pessoal da totvs colocou o codigo dentro do evento ou se deu run em alguma procedure no programa, dai descobrir a procedure, vc poderia na upc fazer run ..... in handleProgram.
  2. lucasiam

    lucasiam Membro Participativo

    O complicado de reescrever todo o comportamento nativo da browse é que ele é cheio de detalhes/perfumarias: inicialmente, vem em itálico. Quando o usuário clica no botão pra selecionar o embarque, fica negrito. Dependendo das condições do Resumo, fica em outra cor. É bem chatinho.

    Vou ver com o pessoal da TOTVS se eles passam detalhes de como isso está escrito... se eles me passam o nome da procedure. Mas acho que infelizmente, só via consultoria :/

    De qualquer forma, muito obrigado pelas dicas e pela ajuda.
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Esse é o row-display original, veja que lá no final tem uma chamada de UPC que vc pode usar pra sua customização, mas acredito que o campo que vc criar não vai sofrer os efeitos da perfumaria.
    Código:
    ON ROW-DISPLAY OF brSon1 IN FRAME fPage1
    DO:
        DEFINE VARIABLE res-calculado AS INTEGER     NO-UNDO.
    &IF '{&bf_dis_versao_ems}' >= '2.07' &THEN
                ASSIGN res-calculado = 4.
    &ELSE
                ASSIGN res-calculado = 2.
    &ENDIF
    
    
        if  avail tt-res-cli then do:
    
            &IF "{&bf_dis_versao_ems}":U >= "2.062":U &THEN
                FOR FIRST embarque
                    WHERE embarque.nr-embarque = tt-res-cli.nr-embarque NO-LOCK:
                    ASSIGN c-eq-cod-estabel = embarque.cod-estabel.
                END.
    
                /* Engenharia Separacao MFT x Embarques */
                {eqp/eq9999.i1}
            &ELSE
                IF  NOT AVAIL para-fat THEN
                    FIND FIRST para-fat NO-LOCK NO-ERROR.
    
                ASSIGN l-eq-log-aloca-ord-produc = (SUBSTRING(para-fat.char-1,97,1) = "1":U).
            &ENDIF
           
            if  l-eq-log-aloca-ord-produc then do:
    
                assign l-possui-ordens = no.
                run retornaResumoPossuiOrdem in h-bodi317va(input  tt-res-cli.nr-embarque,
                                                            input  tt-res-cli.nr-resumo,
                                                            input  tt-res-cli.nome-abrev,
                                                            output l-possui-ordens,
                                                            output l-proc-ok-aux).
    
                /* indica que o resumo possui ordens de produ‡Æo e nÆo ser  poss¡vel efetuar o c lculo */
                if  l-possui-ordens then
                    assign tt-res-cli.log-2 = no
                           tt-res-cli.nr-resumo:fgcolor    in browse brSon1 = 4
                           tt-res-cli.nome-abrev:fgcolor   in browse brSon1 = 4
                           tt-res-cli.cod-cond-pag:fgcolor in browse brSon1 = 4
                           tt-res-cli.no-ab-reppri:fgcolor in browse brSon1 = 4
                           tt-res-cli.mo-codigo:fgcolor    in browse brSon1 = 4
                           tt-res-cli.peso-liq-tot:fgcolor in browse brSon1 = 4
                           tt-res-cli.peso-bru-tot:fgcolor in browse brSon1 = 4
                           tt-res-cli.situacao:fgcolor     in browse brSon1 = 4
                           tt-res-cli.nat-operacao:fgcolor in browse brSon1 = 4
                           btCalculo:sensitive             in frame fPage0  = no
                           btSimulacao:sensitive           in frame fPage0  = no.
            end.
    
            if  tt-res-cli.situacao < res-calculado then do: /* Dispon¡vel para c lculo */
                if  tt-res-cli.log-2 then /* Indica que o resumo est  selecionado para c lculo */
                    assign tt-res-cli.nr-resumo:font       in browse brSon1 = 6
                           tt-res-cli.nome-abrev:font      in browse brSon1 = 6
                           tt-res-cli.cod-cond-pag:font    in browse brSon1 = 6
                           tt-res-cli.no-ab-reppri:font    in browse brSon1 = 6
                           tt-res-cli.mo-codigo:font       in browse brSon1 = 6
                           tt-res-cli.peso-liq-tot:font    in browse brSon1 = 6
                           tt-res-cli.peso-bru-tot:font    in browse brSon1 = 6
                           tt-res-cli.situacao:font        in browse brSon1 = 6
                           tt-res-cli.nat-operacao:font    in browse brSon1 = 6
                           btCalculo:sensitive             in frame fPage0  = yes
                           btSimulacao:sensitive           in frame fPage0  = yes.
                else do:
                    assign tt-res-cli.nr-resumo:font    in browse brSon1 = 2
                           tt-res-cli.nome-abrev:font   in browse brSon1 = 2
                           tt-res-cli.cod-cond-pag:font in browse brSon1 = 2
                           tt-res-cli.no-ab-reppri:font in browse brSon1 = 2
                           tt-res-cli.mo-codigo:font    in browse brSon1 = 2
                           tt-res-cli.peso-liq-tot:font in browse brSon1 = 2
                           tt-res-cli.peso-bru-tot:font in browse brSon1 = 2
                           tt-res-cli.situacao:font     in browse brSon1 = 2
                           tt-res-cli.nat-operacao:font in browse brSon1 = 2.
    
                   find first b-tt-res-cli
                        where b-tt-res-cli.log-2 = yes no-lock no-error.
                   assign btCalculo:sensitive   in frame fPage0  = avail b-tt-res-cli
                          btSimulacao:sensitive in frame fPage0  = avail b-tt-res-cli.
               end.
            end.
            else
                if  tt-res-cli.situacao = res-calculado then /* Resumo calculado */
                    assign tt-res-cli.nr-resumo:fgcolor    in browse brSon1 = 12
                           tt-res-cli.nome-abrev:fgcolor   in browse brSon1 = 12
                           tt-res-cli.cod-cond-pag:fgcolor in browse brSon1 = 12
                           tt-res-cli.no-ab-reppri:fgcolor in browse brSon1 = 12
                           tt-res-cli.mo-codigo:fgcolor    in browse brSon1 = 12
                           tt-res-cli.peso-liq-tot:fgcolor in browse brSon1 = 12
                           tt-res-cli.peso-bru-tot:fgcolor in browse brSon1 = 12
                           tt-res-cli.situacao:fgcolor     in browse brSon1 = 12
                           tt-res-cli.nat-operacao:fgcolor in browse brSon1 = 12.
                else /* Resumo confirmado no estoque */
                    assign tt-res-cli.nr-resumo:fgcolor    in browse brSon1 = 9
                           tt-res-cli.nome-abrev:fgcolor   in browse brSon1 = 9
                           tt-res-cli.cod-cond-pag:fgcolor in browse brSon1 = 9
                           tt-res-cli.no-ab-reppri:fgcolor in browse brSon1 = 9
                           tt-res-cli.mo-codigo:fgcolor    in browse brSon1 = 9
                           tt-res-cli.peso-liq-tot:fgcolor in browse brSon1 = 9
                           tt-res-cli.peso-bru-tot:fgcolor in browse brSon1 = 9
                           tt-res-cli.situacao:fgcolor     in browse brSon1 = 9
                           tt-res-cli.nat-operacao:fgcolor in browse brSon1 = 9.
        end.
    
           
        RUN pi-ExecutaEPC ("HabilitaCalculaEmbarque","CONTAINER",{&WINDOW-NAME}:HANDLE,FRAME {&FRAME-NAME}:HANDLE,"embarque",tt-embarque.r-Rowid).
        IF  RETURN-VALUE = "NOK":U THEN
            ASSIGN btCalculo:SENSITIVE                  IN FRAME fPage0 = NO
                   MENU-ITEM m_Clculo_da_nota:SENSITIVE IN MENU mbMain  = NO.
    
    END.
    
  4. lucasiam

    lucasiam Membro Participativo

    Usei a "HabilitaCalculaEmbarque" e rolou certinho. Os únicos pontos negativos foram:
    Conforme você previu, meu campo não sofreu os efeitos de perfumaria, mas até aí... tranquilo.
    Tive que tornar global a variável handle que criei pro campo data de entrega.

    Muito obrigado Richard!!

    O código ficou assim:
    Código:
    IF p-ind-event  = 'HabilitaCalculaEmbarque' THEN
    DO:
        FIND FIRST pre-fatur
             WHERE pre-fatur.cdd-embarq = INT(wh-ft4001-cdd-embarq:SCREEN-VALUE)
               AND pre-fatur.nr-resumo  = hBuffer:BUFFER-FIELD("nr-resumo"):BUFFER-VALUE NO-LOCK NO-ERROR.
    
        IF AVAIL pre-fatur THEN DO:
            FIND FIRST ped-venda
                 WHERE ped-venda.nome-abrev = pre-fatur.nome-abrev
                   AND ped-venda.nr-pedcli  = pre-fatur.nr-pedcli NO-LOCK NO-ERROR.
    
            IF AVAIL ped-venda THEN
                ASSIGN hdt-entrega:SCREEN-VALUE = STRING(ped-venda.dt-entrega,"99/99/9999").
        END.
      
    END.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    pra não usar variavel global, tem como, mas dá trabalho, como vc criou em outro ponto a coluna, nessa sessão ta criada e fim de papo, então, vi que nesse ponto de UPC ele passa o handle da frame, dai vc teria que, partindo da frame, achar o handle do browse, e depois achar o handle da sua coluna, dai só usar.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página