[RESOLVIDO] Colocar Descrição de Item COM UPC CD1720 aprova documentos

Discussão em 'EMS , HCM e Totvs 11' iniciado por startbit, Fevereiro 3, 2010.

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

    startbit Membro Participativo

    BOm...

    Na aprovação de documentos no datasul (CD1720, CD1720A) não mostra a descrição do item.
    Sem contato com o fonte da datasul pensei em criar uma UPC para mostrar em tela detalhes do item que se está aprovando.
    A questão é que na aprovação em massa, após o assign a tela só troca os dados dos fill, no entanto não estou conseguindo utilizar algum evento para capturar novamente a ROWID que é utilizada após o assign.

    Segue abaixo minha lógica primária, capturando o ROWID no after-initialize.
    Código:
    /* 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.
    
    /* Variáveis */
    def var c-objeto as char no-undo.
    def new global shared var wh-fill  as widget-handle no-undo.
    def new global shared var tx-label as widget-handle no-undo.
    DEF NEW GLOBAL SHARED VAR wh-btn   AS WIDGET-HANDLE NO-UNDO.
    
    
    /* Procedures */
    
    PROCEDURE pi-consulta:
        ASSIGN wh-fill:SCREEN-VALUE = "".
        FIND FIRST doc-pend-aprov WHERE ROWID(doc-pend-aprov) = p-row-table NO-LOCK NO-ERROR.  
            IF AVAILABLE doc-pend-aprov THEN DO:
                FIND FIRST ITEM WHERE item.it-codigo = doc-pend-aprov.it-codigo NO-LOCK NO-ERROR.
                    IF AVAILABLE ITEM THEN ASSIGN wh-fill:SCREEN-VALUE = item.desc-item.
                    MESSAGE ITEM.it-codigo ITEM.desc-item VIEW-AS ALERT-BOX.
                                             END.
    END.
    
    /* Início */
    assign c-objeto = entry(num-entries(p-wgh-object:private-data, "~/"), p-wgh-object:private-data, "~/").
    
    /* Eventos */
    IF p-ind-event = "INITIALIZE" THEN DO: /*MESSAGE "INICIALIZANDO" VIEW-AS ALERT-BOX.*/
    
    create text tx-label
            assign frame        = p-wgh-frame
                   format       = "x(17)"
                   width        = 8
                   screen-value = "Desc. Item:"
                   row          = 5.5
                   col          = 27
                   fgcolor      = 0
                   visible      = NO. 
    
    create fill-in wh-fill                         
             assign frame              = p-wgh-frame         
                    side-label-handle  = tx-label:HANDLE
                    format             = "x(255)"             
                    width              = 18                  
                    height             = 0.77                
                    row                = 5.4                 
                    col                = 35                  
    /*                 bgcolor            = 1 */
    /*                 fgcolor            = 0 */
                    label              = "Desc. Item" 
                    visible            = yes                 
                    sensitive          = YES
                    READ-ONLY          = NO.
    END.
    
    IF p-ind-event = "After-initialize" THEN DO: 
       RUN pi-consulta.                         
     END.                                         
    /*                                              */
    /* IF p-ind-event = "Assign" THEN DO:           */
    /* /*     MESSAGE "Antes DO wait". */           */
    /* RUN pi-consulta.                             */
    /* /*     MESSAGE "Após pi". */                 */
    /* END.                                         */
    
    
    
    
    
    
    
  2. startbit

    startbit Membro Participativo

    Vixi... Ta difícil a coisa.
  3. doglans

    doglans Sem Pontuação

    Cara, seguinte,

    De acordo com seu diagnostico, não existe pontos, você pode pegar o handle dos fill-ins e analisar dentro do programa o momento que eles deixam de ser iguais aos registros disponiveis na tabela com o rowid..

    e consegue pegar os valores dos fill-ins, ou ainda,

    você pode rodar o comando

    log-maneger e ver no log gerado quais as bo's que o programa passa, após isso crie upc para bo e analise os pontos, provavelmente terá ponto após o assign.. .

    Qualquer dúvida entre em contato,
    doglans.esidio@totvs.com.br
  4. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Olá,

    Até onde tentei a algum tento atrás, não era possível mostrar automaticamente, o que acabei fazendo foi criar uma UPC gravando os handles dos campos que eu queria buscar a referência como new global shared, e criei um botão que lia estas variáveis globais e fazia as devidas verificações para mostrar os item(s).

    []'s
  5. carlosfgn

    carlosfgn Sem Pontuação

    Amigos,
    alguém possui algum exemplo prático pra resolver esse problema?

    Grato,
    Carlos Neto
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página