[RESOLVIDO] Upc mudar valor do campo.

Discussão em 'EMS , HCM e Totvs 11' iniciado por Fujikan, Maio 28, 2014.

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

    Fujikan Sem Pontuação

    Boa tarde,

    Preciso alterar o deposito no programa re2001b, pois ele trás por padrão o do cadastro de itens, porem nos testes que fis ele só altera visualmente. Como eu faço para que ele realmente altere?
    Tentei também no evento AFTER-OPEN-QUERY mas não funcionou.

    Código:
    IF p-ind-event = "BEFORE-OPEN-QUERY" AND
       p-ind-object = "BROWSER"         AND
       p-row-table NE ?                 AND
       p-wgh-object:FILE-NAME = "inbrw/b06in367.w" THEN DO:
    
    
        ASSIGN c-handle-obj                  = fc-handle-obj("c-cod-depos,c-cod-localiz,bt-sav", p-wgh-frame).
           ASSIGN wh-esre2001-cod-depos       = WIDGET-HANDLE(ENTRY(1,c-handle-obj))
                  wh-esre2001-cod-localiz     = WIDGET-HANDLE(ENTRY(2,c-handle-obj))
                  wh-esre2001-bt-ok           = WIDGET-HANDLE(ENTRY(3,c-handle-obj)).
    
         ASSIGN wh-esre2001-cod-depos:SCREEN-VALUE = "CB0"
                wh-esre2001-cod-localiz: SCREEN-VALUE = "FUNDOS" .
    
          MESSAGE "teste-befire"
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    END.
  2. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Olá,

    O problema é que vc esta fazendo a alteração somente nas "variáveis" e não no registro, para vc conseguir o efeito desejado, vai precisar identificar o browse, pegar a handle do buffer, navegar se necessário, e atribuir o valor no buffer-field.

    Aqui tem um exemplo para você conseguir listar os campos do browser: http://www.4each.com.br/resources/listar-campos-de-browser-através-de-handle.30/

    Se precisar de mais ajuda, avisa ai.

    Abs.
    Fujikan curtiu isso.
  3. Fujikan

    Fujikan Sem Pontuação

    bom dia,
    Como o usuário não precisaria digitar o deposito, a função busca da ordem de compra, coloquei na VALIDATE, porem se eu cadastro a UPC não consigo excluir o item, clico no botao e nao ocorre nada

    Segue o codigo abaixo.


    RE2001B-U00.p

    Código:
    {include/i-prgvrs.i RE2001B-U00 2.06.00.000}
    /* {utp/ut-glob.i} */
    
    DEFINE INPUT PARAMETER p-ind-event      AS CHARACTER        NO-UNDO.
    DEFINE INPUT PARAMETER p-ind-object     AS CHARACTER        NO-UNDO.
    DEFINE INPUT PARAMETER p-wgh-object     AS HANDLE           NO-UNDO.
    DEFINE INPUT PARAMETER p-wgh-frame      AS WIDGET-HANDLE    NO-UNDO.
    DEFINE INPUT PARAMETER p-cod-table      AS CHARACTER        NO-UNDO.
    DEFINE INPUT PARAMETER p-row-table      AS ROWID            NO-UNDO.
    
    /*--- Lógica Principal -------------------------------------------------------------------*/
    
    /*  MESSAGE STRING(gr-doc-fisico)         */
    /*     VIEW-AS ALERT-BOX INFO BUTTONS OK. */
    
    RUN upc/esre2001b-u01.p (INPUT p-ind-event,
                               INPUT p-ind-object,
                               INPUT p-wgh-object,
                               INPUT p-wgh-frame,
                               INPUT p-cod-table,
                               INPUT p-row-table).
    RETURN RETURN-VALUE.
    
    RE2001B-U01.P

    Código:
    {include/i-prgvrs.i RE2001B-U01 2.06.00.000}
    {utp/ut-glob.i}
    
    /* Definicao de Funcoes */
    {tools\fc-handle-obj.i}
    
    /*--- Parâmetros -------------------------------------------------------------------------*/
    def input param p-ind-event  as char          no-undo.
    def input param p-ind-object as char          no-undo.
    def input param p-wgh-object as handle        no-undo.
    def input param p-wgh-frame  as widget-handle no-undo.
    def input param p-cod-table  as char          no-undo.
    def input param p-row-table  as rowid         no-undo.
    
    /*/* Define de Variaveis Globais */
    DEF NEW GLOBAL SHARED VAR wh-re2001b-bt-sav         AS WIDGET-HANDLE NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-re2001b-bt-sav-f       AS WIDGET-HANDLE NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-re2001b-btUpdateson1   AS WIDGET-HANDLE NO-UNDO.
    DEF NEW GLOBAL SHARED VAR rw-re2001b-row-ordem      AS ROWID         NO-UNDO. */
    
    DEF VAR c-handle-obj AS CHAR NO-UNDO.
    DEF NEW GLOBAL SHARED VAR gr-doc-fisico AS ROWID NO-UNDO.
    
    /*--- Lógica Principal -------------------------------------------------------------------*/
    /*                                                     */
    /* MESSAGE "p-ind-event:"    p-ind-event          SKIP */
    /*         "p-ind-object:"   p-ind-object         SKIP */
    /*         "p-wgh-object:"   string(p-wgh-object) SKIP */
    /*         "p-wgh-frame:"    string(p-wgh-frame)  SKIP */
    /*         "p-cod-table:"    p-cod-table          SKIP */
    /*         "p-row-table:"    string(p-row-table)  skip */
    /*         "Procedure:"      p-wgh-object:FILE-NAME    */
    /*         VIEW-AS ALERT-BOX INFO BUTTONS OK.          */
    
    
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001b-it-codigo          AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001b-sequencia          AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001b-numero-ordem        AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001b-numero-pedido        AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001-cod-estabel          AS CHAR NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001-cod-depos           AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001-cod-localiz          AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001-bt-inc          AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001-bt-ok          AS WIDGET-HANDLE NO-UNDO.
    
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001-bt-inc-f          AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-esre2001-bt-ok-f          AS WIDGET-HANDLE NO-UNDO.
    
    DEF VAR doc-fisico-emit-cgc AS CHAR NO-UNDO.
    DEF VAR ordem-compra-emit-cgc AS CHAR NO-UNDO.
    
    
    IF p-ind-event = "BEFORE-INITIALIZE" AND
       p-ind-object = "VIEWER"         AND
       p-wgh-object:FILE-NAME MATCHES "*v04in163*"  THEN DO: 
    
        ASSIGN c-handle-obj                 = fc-handle-obj("it-codigo,sequencia", p-wgh-frame).
        ASSIGN wh-esre2001b-it-codigo       = WIDGET-HANDLE(ENTRY(1,c-handle-obj)) 
               wh-esre2001b-sequencia       = WIDGET-HANDLE(ENTRY(2,c-handle-obj)).
                                                                     
    END.
    
    /* Pega handle do campo numero-ordem */
    if p-ind-event  = 'BEFORE-INITIALIZE' and
       p-ind-object = 'VIEWER'            and
       p-wgh-object:FILE-NAME MATCHES "*v05in163*"        then do:
       
       ASSIGN c-handle-obj                 = fc-handle-obj("numero-ordem,num-pedido", p-wgh-frame).
    
       ASSIGN wh-esre2001b-numero-ordem       = WIDGET-HANDLE(ENTRY(1,c-handle-obj)) 
              wh-esre2001b-numero-pedido      = WIDGET-HANDLE(ENTRY(2,c-handle-obj)).
    
    end.
    
    
    IF p-ind-event = "VALIDATE" AND
       p-ind-object = "VIEWER"         AND
       p-wgh-object:FILE-NAME MATCHES "*v04in163*"  THEN DO: 
    
    
    /*      MESSAGE   REPLACE(wh-esre2001b-numero-ordem:SCREEN-VALUE, ".", "" ) SKIP */
    /*                REPLACE(wh-esre2001b-numero-pedido:SCREEN-VALUE, ".", "" )     */
    /*                      VIEW-AS ALERT-BOX INFO BUTTONS OK.                       */
    
    
        FIND FIRST doc-fisico
             WHERE ROWID(doc-fisico) = gr-doc-fisico NO-LOCK NO-ERROR.
        IF AVAIL doc-fisico THEN DO:
    
            FIND emitente OF doc-fisico NO-LOCK NO-ERROR.
              ASSIGN doc-fisico-emit-cgc = emitente.cgc.
    
    
            FOR EACH rat-lote OF doc-fisico NO-LOCK
                WHERE rat-lote.it-codigo = wh-esre2001b-it-codigo:SCREEN-VALUE
                  AND rat-lote.sequencia = int(wh-esre2001b-sequencia:SCREEN-VALUE):
    
                 FIND FIRST ORDEM-COMPRA 
                        WHERE string(ORDEM-COMPRA.numero-ordem)  =REPLACE(wh-esre2001b-numero-ordem:SCREEN-VALUE, ".", "" ) NO-LOCK NO-ERROR.
    
                  IF AVAIL ordem-compra THEN DO:
                      ASSIGN rat-lote.cod-depos = ordem-compra.dep-almoxar.
                     
                      FIND emitente OF ordem-compra NO-LOCK NO-ERROR.
                        ASSIGN ordem-compra-emit-cgc = emitente.cgc.
    
    
                       IF   SUBSTRING(ordem-compra-emit-cgc,1,8) <> SUBSTRING(doc-fisico-emit-cgc,1,8)  THEN DO:
                           run utp/ut-msgs.p (input "show":U, input 17006, "FORNECEDOR DO PEDIDO DIFERENTE DA NF !!~~ CNPJ - ORDEM-COMPRA : " + ordem-compra-emit-cgc + " - CNPJ NF : " + doc-fisico-emit-cgc ).
                           RETURN "NOK":U.
                       END.
                       
                       
                  END.
                       
    
                    FIND FIRST es_item_receb
                         WHERE caps(es_item_receb.cod_depos) = ordem-compra.dep-almoxar
                            AND es_item_receb.it_codigo = ordem-compra.it-codigo NO-LOCK NO-ERROR.
    
                    IF NOT AVAIL es_item_receb THEN DO:
                        run utp/ut-msgs.p (input "show":U, input 17006, "ERRO~~ITEM " + rat-lote.it-codigo + " NÃO POSSUI LOCAIZACAO PARA O DEPOSITO  - " + rat-lote.cod-depos + " - PARAMETRIZAR NO ESCE020").
                    END.
                    ELSE DO:
                         ASSIGN rat-lote.cod-localiz = es_item_receb.cod_localiz.
                    END.
    
            END.
        END.
    END.
    
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página