[RESOLVIDO] UPC no re2001, ao abrir simultaneamente a mesma n funciona

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

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

    Fujikan Sem Pontuação

    Bom dia,
    Efetuei o cadastro de uma UPC no re2001 afim de criar um botão falso, porem o mesmo não é criado no caso de se abrir uma segunda tela do mesmo.

    Segue abaixo para analise

    Código:
    /*******************************************************************************
    **                                                                            **
    **  Programa : upc/upoc0204-u00.p                                             **
    **  Descricao:                                                                **
    **  Data     :                                                                **
    **  Autor    :                                                                **
    **                                                                            **
    ********************************************************************************/
    
    /*
    {include/i-prgvrs.i UPRE2001-U00 2.06.00.000}
    {utp/ut-glob.i}
    */
    /* definicao de parametros de entrada */
    
    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.
    
    DEF NEW GLOBAL SHARED VAR wgh-bt-conf                             AS WIDGET-HANDLE NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wgh-fs-bt-conf                          AS WIDGET-HANDLE NO-UNDO.
    DEF NEW GLOBAL SHARED VAR h-frame-re2001                          AS HANDLE NO-UNDO.
    DEF NEW GLOBAL SHARED VAR h-br-table-re2001                       AS HANDLE NO-UNDO.
    
    /*--- Lógica Principal -------------------------------------------------------------------*/
    /* Message                                         */
    /*     "Evento............: " p-ind-event SKIP     */
    /*     "Objeto............: " p-ind-object Skip    */
    /*     "Handel do Obejto..: " p-wgh-object Skip    */
    /*     "Frame.............: " p-wgh-frame Skip     */
    /*     "Nome da tabela....: " p-cod-table Skip     */
    /*     "Rowid da tabela...: " STRING(p-row-table)  */
    /* View-as Alert-box.                              */
     
    IF  p-ind-event  = 'before-initialize'    AND 
        p-ind-object = 'CONTAINER'          
        THEN DO:                            
            assign h-frame-re2001  = p-wgh-frame:FIRST-CHILD
                   h-frame-re2001  = h-frame-re2001:FIRST-CHILD.
    
            DO WHILE VALID-HANDLE(h-frame-re2001) and not valid-handle(wgh-bt-conf) :
           
                if h-frame-re2001:type = "button" and
                   h-frame-re2001:name = "bt-atualizar" then
                    assign wgh-bt-conf = h-frame-re2001:handle.
    
    
                if valid-handle (wgh-bt-conf) then do:
    
                   /* DELETE OBJECT wgh-bt-conf. */
    
                   create button wgh-fs-bt-conf
                   assign frame                 = p-wgh-frame
                          width                 = wgh-bt-conf:WIDTH
                          height                = wgh-bt-conf:HEIGHT
                          label                 = wgh-bt-conf:LABEL
                          row                   = wgh-bt-conf:row
                          col                   = wgh-bt-conf:COL
                          TOOLTIP               = wgh-bt-conf:TOOLTIP
                          HELP                  = wgh-bt-conf:HELP
                          BGCOLOR               = 7
                          FLAT-BUTTON           = YES
                          NO-FOCUS              = YES
                          CONVERT-3D-COLORS     = NO
                          sensitive             = YES
                          visible               = YES.
    
                        ON 'choose':U OF wgh-fs-bt-conf persistent RUN upc/upre2001-u01.p.
    
                        wgh-fs-bt-conf:LOAD-IMAGE(wgh-bt-conf:IMAGE-UP) NO-ERROR.
                        wgh-fs-bt-conf:LOAD-IMAGE-UP(wgh-bt-conf:IMAGE-UP) NO-ERROR.
                        wgh-fs-bt-conf:LOAD-IMAGE-INSENSITIVE(wgh-bt-conf:IMAGE-INSENSITIVE) NO-ERROR.
    
                        wgh-bt-conf:SENSITIVE = NO NO-ERROR.
                        wgh-fs-bt-conf:MOVE-TO-TOP() NO-ERROR.
                        wgh-fs-bt-conf:MOVE-AFTER-TAB-ITEM(wgh-bt-conf) NO-ERROR.
    
                END.
      
                IF h-frame-re2001:TYPE = 'field-group' THEN
                    ASSIGN h-frame-re2001 = h-frame-re2001:FIRST-CHILD NO-ERROR.
                ELSE
                    ASSIGN h-frame-re2001 = h-frame-re2001:NEXT-SIBLING.
    
            END.
    END. 
    
    IF  p-ind-event  = 'before-initialize'   AND 
        p-ind-object = 'BROWSER'                  
        THEN DO:                            
            assign h-frame-re2001  = p-wgh-frame:FIRST-CHILD
                   h-frame-re2001  = h-frame-re2001:FIRST-CHILD.
    
            DO WHILE VALID-HANDLE(h-frame-re2001)and not valid-handle(h-br-table-re2001) :
           
    /*             MESSAGE h-frame-re2001:type                     */
    /*                     h-frame-re2001:NAME VIEW-AS ALERT-BOX.  */
    
                IF h-frame-re2001:type    = "browse" AND
                   h-frame-re2001:NAME    = "br-table" then
                    assign h-br-table-re2001 = h-frame-re2001:handle. 
      
                IF h-frame-re2001:TYPE    = 'field-group' THEN
                    ASSIGN h-frame-re2001 = h-frame-re2001:FIRST-CHILD NO-ERROR.
                ELSE
                    ASSIGN h-frame-re2001 = h-frame-re2001:NEXT-SIBLING.
    
            END.
    END. 
    
    
    /*
    &SCOPED-DEFINE p-def-var TRUE
    { upc/upc_pontos_campos.p c:\temp\re2001.txt}
    */
    
    /*
    RUN upc/upoc0204-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).
    */
    
    
    
    /********** fim alteração ***********/
    IF VALID-HANDLE(wgh-fs-bt-conf) AND
       valid-handle(wgh-bt-conf)  THEN
        wgh-fs-bt-conf:SENSITIVE = wgh-bt-conf:SENSITIVE.
    
    RETURN "OK".
    
    
    
  2. elmo

    elmo Membro Ativo

    Bom dia,
    Seu problema pode estar nas variaveis globais, aqui no forum tem algumas discursões sobre esse assunto e também como resolver.
    Fujikan curtiu isso.
  3. jaozi_nho

    jaozi_nho Membro Participativo

    Olá, nunca use variáveis globais para construir UPCs, pois sempre vai ter problemas ao abrir duas telas do mesmo programa.
    Fujikan curtiu isso.
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Alias, nunca use variaveis globais, não importa onde seja
    Fujikan curtiu isso.
  5. Fujikan

    Fujikan Sem Pontuação

    Muito obrigado pela dica, vou mudar para não utilizar variáveis globais.
  6. Fujikan

    Fujikan Sem Pontuação

    Alterado para não utilizar variáveis globais e o problema foi devidamente sanado.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página