[RESOLVIDO] Browser Upc

Discussão em 'EMS , HCM e Totvs 11' iniciado por Will, Março 15, 2010.

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

    Will Membro Participativo

    Olá pessoal tenho um programa, cujo possui um browser, via epc terei que alterar o valor de alguns campos desse browser.
    Lá vem a dúvida, como faço para indicar o campo de um browser e alterar o valor od mesmo?

    Vlwwwww
  2. Will

    Will Membro Participativo

  3. Will

    Will Membro Participativo

    Código:
    define input param p-ind-event  as char          no-undo.
    define input param p-ind-object as char          no-undo.
    define input param p-wgh-object as handle        no-undo.
    define input param p-wgh-frame  as widget-handle no-undo.
    define input param p-cod-table  as char          no-undo.
    define input param p-row-table  as rowid         no-undo.
    
    DEF VAR wh-objeto                    AS WIDGET-HANDLE NO-UNDO.
    def var c-char                       as char.
    def var h_frame                      as widget-handle no-undo.
    DEF NEW GLOBAL SHARED VAR bt-valida   AS WIDGET-HANDLE NO-UNDO.
    Def New Global Shared Var h-query As Handle No-undo.
    DEF NEW GLOBAL SHARED VAR wh-sequencia   AS WIDGET-HANDLE                    NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-sequencia1  AS WIDGET-HANDLE                    NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-sequencia2  AS WIDGET-HANDLE                    NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-sequencia3  AS WIDGET-HANDLE                    NO-UNDO.
    
       if can-query (p-wgh-object,"file-name") then
          assign c-char = entry(num-entries(p-wgh-object:file-name,"~/"),p-wgh-object:file-name,"~/").
    
       assign wh-objeto  = p-wgh-frame:FIRST-CHILD.
       do while valid-handle(wh-objeto):
          if wh-objeto:name = "br-table" then do:
             assign h-query = wh-objeto:query.
             MESSAGE VALID-HANDLE(h-query)
                     p-ind-event 
                     p-ind-object
                     p-wgh-object
                     p-wgh-frame 
                     p-cod-table 
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
             IF VALID-HANDLE(h-query) then DO:
                wh-sequencia   = h-query:GET-BROWSE-COLUMN(1).
                wh-sequencia1  = h-query:GET-BROWSE-COLUMN(2).
       
                message  wh-sequencia skip wh-sequencia1
                   VIEW-AS ALERT-BOX INFO BUTTONS OK.
             end.
          end.
          if wh-objeto:TYPE = 'field-group' then
             assign wh-objeto = wh-objeto:first-child.
          else
             assign wh-objeto = wh-objeto:next-sibling.
       end.
    
    
    postando o código se alguém puder me ajudar agradeço
  4. Will

    Will Membro Participativo

    Código:
    /*****************************************************************************  
    *      Programa .....: ecc0523.p                                             *  
    *      Data .........: Novemfro de 2004                                      *  
    *      Autor ........: Xcode Informatização Ltda.                            *  
    *      Cliente ......: FRAS-LE S.A.                                          *
    *      Sistema ......: CC - Compras                                          *  
    *      Programador ..: Evandro Pezzi                                         *  
    *      Objetivo .....: EPC COnsulta Pendência Comprador                      *  
    *----------------------------------------------------------------------------*  
    *      VERSAO            DATA        RESPONSAVEL    MOTIVO                   *  
    *      2.04.00.000      19/11/2004   Evandro        Desenvolvimento          *  
    *****************************************************************************/ 
    /* EPC para sobrepor a descrição do item quando ele for GENERICO pela
       narrativa da ordem */
    
    {utp/ut-glob.i}
    
    DEF NEW GLOBAL SHARED VAR wh-it-codigo  AS WIDGET-HANDLE                    NO-UNDO. 
    DEF NEW GLOBAL SHARED VAR wh-nr-ordem   AS WIDGET-HANDLE                    NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-it-desc    AS WIDGET-HANDLE                    NO-UNDO. 
    DEF NEW GLOBAL SHARED VAR wh-req-nom    AS WIDGET-HANDLE                    NO-UNDO. 
    DEF NEW GLOBAL SHARED VAR wh-nr-reqis   AS WIDGET-HANDLE                    NO-UNDO. 
    
    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.
    
    def var c-objeto                     as character       no-undo.
    
    def new global shared var wh-br-ordens     as widget-handle   no-undo.
    def new global shared var wh-br-cotacoes   as widget-handle   no-undo.
    def new global shared var wh-br-pedidos    as widget-handle   no-undo.
    
    def var h-frame                       as handle          no-undo.
    
    assign c-objeto = entry(num-entries(p-wgh-object:file-name,"~/"),p-wgh-object:file-name, "~/") no-error.
    /***
    if p-ind-object = "browser" 
    then
    message 'Nome progrm: ' c-objeto                      skip
            'Nome evento: ' p-ind-Event                   skip
            'Nome objeto: ' p-ind-object                  skip
            'WHO:         ' string ( p-wgh-object )       skip
            'WHF:         ' string ( p-wgh-frame )        skip
            'WHF Nome:    ' string ( p-wgh-frame:name )   skip
            'Nome tabela: ' p-cod-table                   skip
            'RowiD tabela:' string ( p-row-table )       skip view-as alert-box.
    ***/
    
    /* OBS, o value-changed é o ponto que sempre passa quando acessa o browse **/
    
    
    if  c-objeto     = "b13in055.w"       and
        p-ind-event  = "AFTER-OPEN-QUERY" and   /* browse de solicitacoes */
        p-ind-object = "browser"
    then do:
        assign h-frame = p-wgh-frame:first-child.
        assign h-frame = h-frame:first-child.
    
        do while valid-handle(h-frame):
           if h-frame:type <> "field-group"
           then do:
               if h-frame:name = "br-table"
               then do:
                  assign wh-br-ordens = h-frame.
                  wh-nr-reqis   = wh-br-ordens:GET-BROWSE-COLUMN(1).
                  wh-it-codigo  = wh-br-ordens:GET-BROWSE-COLUMN(3).
                  wh-it-desc    = wh-br-ordens:GET-BROWSE-COLUMN(4).
                  wh-req-nom    = wh-br-ordens:GET-BROWSE-COLUMN(5).
                  find item no-lock where item.it-codigo  = wh-it-codigo:screen-value and
                                          item.tipo-contr = 4 no-error.
                  if avail item then
                     wh-it-desc:screen-value = item.narrativa.
                  find requisicao no-lock where requisicao.nr-requisicao = int(wh-nr-reqis:screen-value) no-error.
                  if avail requisicao then
                     wh-req-nom:screen-value = requisicao.nome-abrev.
               end.
           end.
           assign h-frame = h-frame:next-sibling.
        end.
    end.
    ae glera,aprte do problema resolvido, alterei a upc,e agora a mesma,está substituindo ovalor corretamente, com um porém, elsomente substitui o valor qdo eu tiver apenas um registro no browser, se tiver mais de um, a upc substitui apenas o valor da primeira linha e logo após o programa retorna ao valor de origem....
  5. Will

    Will Membro Participativo

    eae glera, seguinte consegui um "pouco" de progresso nesse meu desenvolvimento, onde eu verifico meu evento, estou verificando também o meu p-ind-event = "AFTER-VALUE-CHANGED". A fimde que o valor da minha coluna seja alterado no momento que o usuário mudar de umacoluna para outra. Identifiquei através de MESSAGES que a upc altera o valor, porém depois volta ao volar de origem. Mas nãoconsegui identificar o evento que realiza isto. Estou postando o código atualizado se alguém puer ajudar agradeço.

    Código:
    {utp/ut-glob.i}
    
    DEF NEW GLOBAL SHARED VAR wh-it-codigo  AS WIDGET-HANDLE                    NO-UNDO. 
    DEF NEW GLOBAL SHARED VAR wh-nr-ordem   AS WIDGET-HANDLE                    NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-it-desc    AS WIDGET-HANDLE                    NO-UNDO. 
    DEF NEW GLOBAL SHARED VAR wh-req-nom    AS WIDGET-HANDLE                    NO-UNDO. 
    DEF NEW GLOBAL SHARED VAR wh-nr-reqis   AS WIDGET-HANDLE                    NO-UNDO. 
    
    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.
    
    def var c-objeto                     as character       no-undo.
    
    def new global shared var wh-br-ordens     as widget-handle   no-undo.
    def new global shared var wh-br-cotacoes   as widget-handle   no-undo.
    def new global shared var wh-br-pedidos    as widget-handle   no-undo.
    
    def var h-frame                       as handle          no-undo.
    
    assign c-objeto = entry(num-entries(p-wgh-object:file-name,"~/"),p-wgh-object:file-name, "~/") no-error.
      /* p-ind-object = "browser" */
    if c-objeto = "b13in055.w" then
    message 'Nome progrm: ' c-objeto                      skip
            'Nome evento: ' p-ind-Event                   skip
            'Nome objeto: ' p-ind-object                  skip
            'WHO:         ' string ( p-wgh-object )       skip
            'WHF:         ' string ( p-wgh-frame )        skip
            'WHF Nome:    ' string ( p-wgh-frame:name )   skip
            'Nome tabela: ' p-cod-table                   skip
            'RowiD tabela:' string ( p-row-table )       skip view-as alert-box.
    
    
    /* OBS, o value-changed ‚ o ponto que sempre passa quando acessa o browse **/
    /*MESSAGE p-ind-event
            p-ind-object
             c-objeto
       VIEW-AS ALERT-BOX INFO BUTTONS OK.*/
    
    
    
    
    if  c-objeto     = "b13in055.w"            and
        (p-ind-event  = "AFTER-OPEN-QUERY"     or
         p-ind-event  = "AFTER-VALUE-CHANGED"  or
         p-ind-event  = "VALUE-CHANGED")       and   /* browse de solicitacoes */
        p-ind-object = "browser"          then do:
        assign h-frame = p-wgh-frame:first-child.
        assign h-frame = h-frame:first-child.
    
        do while valid-handle(h-frame):
           if h-frame:type <> "field-group"
           then do:
               if h-frame:name = "br-table"
               then do:
                  assign wh-br-ordens = h-frame.
                  wh-nr-reqis   = wh-br-ordens:GET-BROWSE-COLUMN(1).
                  wh-it-codigo  = wh-br-ordens:GET-BROWSE-COLUMN(3).
                  wh-it-desc    = wh-br-ordens:GET-BROWSE-COLUMN(4).
                  wh-req-nom    = wh-br-ordens:GET-BROWSE-COLUMN(5).
                  find item no-lock where item.it-codigo  = wh-it-codigo:screen-value and
                                          item.tipo-contr = 4 no-error.
                  if avail item then
                     wh-it-desc:screen-value = item.narrativa.
                  find requisicao no-lock where requisicao.nr-requisicao = int(wh-nr-reqis:screen-value) no-error.
                  if avail requisicao then
                     wh-req-nom:screen-value = requisicao.nome-abrev.
                  MESSAGE wh-req-nom:screen-value
                     VIEW-AS ALERT-BOX INFO BUTTONS OK.
               end.
           end.
           assign h-frame = h-frame:next-sibling.
        end.
    end.
    
    
    
    
  6. mcarril

    mcarril Membro Participativo

    Não ficou clara a sua pergunta.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página