Tratamento de objeto lista



  • Prezados colaboradores

    Tenho uma tabela que possui 12 colunas com valores para cada mês do ano Ex:
    Produto, ano, [b]Vlmes1, Vlmes2, Vlmes3, Vlmes4, Vlmes5, Vlmes6, Vlmes7, Vlmes8, Vlmes9, Vlmes10, Vlmes11, Vlmes12[/b]
    Quando eu passar por formulário o mês = 6, preciso pegar o conteúdo de Vlmes6 e os dois anteriores Vlmes5 e Vlmes4.
    Obs. o tratamento do mes 2 e 1 eu faço na entrada do formulário
    Já fiz o seguinte e não deu certo:
    1 - Abri consulta SQL = TabelaSQL (tabela)
    2 - Criei um objeto lista = Registro (variante)
    3 - Tabela para Lista (TabelaSQL) = (Registro)
    4 - obter objeto da lista (Registro, mes)
    Está me retornando o registro inteiro e só le o primeiro registro encerrando o processo.

    Desde já agradeço


  • Você precisa iterar a tabela...

    1) Obter campo
    2) Tabela - Próximo registro

    etc..

    Você está fazendo isso ?


  • Estou fazendo isto sim


  • [quote="alexcar"]Estou fazendo isto sim[/quote] Então não entendi... qual a dificuldade de se obter os valores dos campos que você quer ? No banco possui os registros que você está querendo buscar?


  • Estou enviando o fluxo para você entender melhor o meu problema.


  • O seu problema é:

    Você está passando tabela para lista...
    Não é assim que se itera uma tabela.

    Sua condicional da repetição está correta: você verifica se existem registros na tabela.

    Você deve chamar agora um processamento com a função Campo, passando a tabela e o campo que se deseja obter (você deve fazer isso para cada coluna que quiser obter).
    Depois que você obteve seus dados desta forma (isso obterá apenas 1 registro da primeira linha), você deve chamar a função - próximo registro.
    Então ficará neste loop até que a tabela não tenha mais registros a serem percorridos.

    T+
    ps: Da próxima vez, tente postar imagens. Assim outras pessoas podem visualizar e lhe auxiliar


  • Tudo Bem Marcio.
    Mas para pegar pela função Campo meu fluxo vai ficar muito grande, quando informar o mês = 4 eu vou pegar o Valor1, Valor2, Valor3 e Valor4. quando o mês = 5 eu pego o Valor5, Valor4, Valor3 e Valor2 até o mês = 12 pega Valor12, Valor11, Valor10 e Valor9
    Eu queria evitar isto com algo do tipo valor(indexado em mes), Valor(indexado em mes - 1), Valor(indexado em mes - 2), Valor(indexado em mes - 3).


  • [quote="alexcar"]Tudo Bem Marcio.
    Mas para pegar pela função Campo meu fluxo vai ficar muito grande, quando informar o mês = 4 eu vou pegar o Valor1, Valor2, Valor3 e Valor4. quando o mês = 5 eu pego o Valor5, Valor4, Valor3 e Valor2 até o mês = 12 pega Valor12, Valor11, Valor10 e Valor9
    Eu queria evitar isto com algo do tipo valor(indexado em mes), Valor(indexado em mes - 1), Valor(indexado em mes - 2), Valor(indexado em mes - 3).[/quote] Bom,

    Agora é questão de lógica. A forma como você vai fazer depende só de você. Indiquei apenas que seu fluxo estava errado.


  • Ok,
    Muito grato pela ajuda, já fiz por fluxo campo a campo mesmo.

Log in to reply