[RESOLVIDO] for each

Discussão em 'EMS , HCM e Totvs 11' iniciado por Will, Dezembro 17, 2009.

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

    Will Membro Participativo

    eu estou rodando o seguinte código
    Código:
    FOR EACH movto-estoq WHERE nro-docto = "0220565":
        MESSAGE movto-estoq.nro-docto
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END.
    porém, o sistema fica processando e trava, alguém sabe o que pode ser???????
    Nem chega a executar a mensagem.
  2. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Will,

    Pode ser o seguinte, estava tabela só tem um índice com o campo nro-docto, e ainda é o segundo. O índice é DOCUMENTO, que é ordenado na seqüência:
    1 - serie-docto
    2 - nro-docto
    3 - cod-emitente
    4 - nat-operacao

    Tente incluir, a serie na pesquisa pode torná-la rápida, se não tiver tente referenciar o índice:
    Código:
    FOR EACH movto-estoq  no-lock use-index documento WHERE nro-docto = "0220565":
        MESSAGE movto-estoq.nro-docto
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END.
    T+
  3. turks

    turks Membro Participativo

    Olá Cobra, cara acho que estou com um problema parecido, veja se pode me ajudar quero que apareça no DISP, na tabela movto-estoq o campo conta-contabil as contas de 412055120100000 até 412055120199999, porem quando eu executo o código abaixo o progress trava, e não me mostra o DISP.

    Será que é problema de índice também?

    Código:
    FOR EACH movto-estoq NO-LOCK WHERE movto-estoq.conta-contabil >= "412055120100000"
                                   AND movto-estoq.conta-contabil <= "412055120199999":
    
        DISP movto-estoq.conta-contabil
             movto-estoq.dt-trans
             movto-estoq.cod-estabel
             movto-estoq.cod-emitente
             movto-estoq.cod-depos.
    END.
  4. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Artur,

    Acho que também pode ser, pela mesma situação este campo esta no índice como segundo, é o único em que está no índice, e é o data-conta que contém:
    1 - dt-trans
    2 - conta-contabil

    Tenta incluir o período no seu filtro, ou verifique outros campos, o problema é que a tabela movto-estoq contém toda a movimentação de todos os itens.

    Quando apresentar este tipo de problema, tentem verificar os índices disponíveis e utilizar no seu filtro os campos na mesma ordem, ou caso contrário tente forçar a utilização do índice que contenha o campo.

    Para verificar os índices, acesso o Data Dictionary, menu Options, opção Index Mode, ou Shift + F10, selecione o índice na última coluna, e clique no botão Index Properties.

    Existem outras formas de descobrir qual o índice que o programa/compilador utiliza para executar a verificação. Mas agora não tenho aqui para passar.

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

Compartilhe esta Página