relatório esta mostrando registro duplo

Discussão em 'Comandos Básicos' iniciado por luizclairrodrigues, Setembro 23, 2011.

  1. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Caro colega,

    Neste caso, você poderia usar um radio-set (1=Ativo,2-Demitidos,3-Ambos) ou continuar a usando o Toggle-Box, onde ao selecionar ATIVOS saia somente ATIVOS, ao selecionar DEMITIDOS saia somente DEMITIDOS ou ao selecionar ATIVOS e DEMITIDOS saia os 2.

    O que aconteceu na sua lógica, é quem em cada situação você está lendo a tabela funcionário, criando a tabela temporária e dando um display, não tem necessidade disto, você pode fazer o seguinte:

    01) Fazer a leitura da tabela funcionario criando a temp-table somente dos registros selecionados:

    Código:
    
    /*****************Lógica Programa*************************/
    for each funcionario no-lock 
       where ((funcionario.dat_desligto_func <> ? and tt-param.TOGGLE-3 = yes) /* Pega somente os DEMITIDOS */
          or  (funcionario.dat_desligto_func  = ? and tt-param.TOGGLE-3 = no) /* Pega somente os ATIVOS */
         and funcionario.cod_pis             >= tt-param.pis-ini 
         and funcionario.cod_pis             <= tt-param.pis-fim 
         and funcionario.cdn_funcionario     >= tt-param.cdn_funcionario-ini 
         and funcionario.cdn_funcionario     <= tt-param.cdn_funcionario-fim:
    
        run pi-acompanhar in h-acomp(input "Cod: " + string(funcionario.cdn_funcionario)).
    
        create  tt-funcionario.
        assign  tt-funcionario.codigo   = funcionario.cdn_funcionario
                tt-funcionario.nome     = funcionario.nom_pessoa_fisic
                tt-funcionario.pis      = funcionario.cod_pis
                tt-funcionario.situacao = if funcionario.dat_desligto_func = ? then "Ativo" else "Demitido".
    
    end.
    
    
    02) Depois de acordo com a classificação fazer o display, conforme abaixo:

    Código:
    
    if tt-param.classifica = 1 then /***********por código*****/
    
        for each tt-funcionario no-lock
              by tt-funcionario.codigo:
        
            disp tt-funcionario.codigo   column-label "Código"
                 tt-funcionario.nome     column-label "Nome"
                 tt-funcionario.pis      column-label "Numero Pis"
                 tt-funcionario.situacao column-label "Ativo/Demitido"
                 with stream-io width 200.
        
        end.
    
    end.
    else do:
    
        for each tt-funcionario no-lock
              by tt-funcionario.pis:
        
            disp tt-funcionario.codigo   column-label "Código"
                 tt-funcionario.nome     column-label "Nome"
                 tt-funcionario.pis      column-label "Numero Pis"
                 tt-funcionario.situacao column-label "Ativo/Demitido"
                 with stream-io width 200.
        
        end.
    
    end.
    
    

Compartilhe esta Página