vileman Ter 18 Set 2012, 00:14
Alexandre, boa noite
Já havia tentado fazer dessa forma também, ou seja, o formulário tem que permanecer aberto no momento em que abre o Relatório, no entanto, mesmo assim a rotina não obedece a quantidade que foi digitada como Ranking, e com relação a Consulta, realmente como disse em uma das mensagens anteriores a dificuldade está justamente quando tento retirar esse valor de "100" no modo SQL da Consulta e dá a mensagem de erro já mencionado.
Tentei criar uma consulta nova desde o início sem o valor de "100", deixando a própria Consulta criar a instrução SQL conforme os parâmetros passados nos critérios, e também acrescentando os comandos que você havia me passado, mas mesmo assim não funcionou de nenhuma das 2 formas, embora o formulário estivesse aberto.
Então fiz outro tipo de teste:
1) Na tabela T16_Expedientes criei o campo "Ranking" (Número/Inteiro longo)
2) Classifiquei esta tabela em ordem Decrescente pelo campo "ValAtualizado"
3) Neste novo campo numerei manualmente na sequencia de 1 até 1150 que é a quantidade de registros da Base de Dados.
Em resumo: A partir de então tenho o Ranking "numerado" dos Valores em ordem decrescente baseado no campo "ValAtualizado", no entanto, essa ordem de ranking é dinâmica pois os valores podem mudar a qualquer momento, visto que algum registro pode ser atualizado a qualquer momento, mudando inclusive o valor no campo "ValAtualizado" e também o tipo de Saldo Devedor (D) para Saldo Credor (C) ou vice-versa, dependendo de determinada situação do Expediente. (Lembrando que na Consulta são filtrados apenas os Saldos como "D"-Devedor).
Então, gostaria que se fosse possível que toda vez que clicasse no botão de comando que abre o relatório do Ranking que por sua vez seria baseado em uma Consulta que "lesse" a ordem do Ranking na Tabela T16_expedientes e listasse a quantidade informada dentro de 2 parametros: Ranking inicial e Ranking Final eu teria o Relatório da forma que é necessária com mais essa opção de selecionar a quantidade entre 2 intervalos, que aliás, já me pediram para fazer dessa forma, estou apenas aproveitando este tópico que está em aberto e trata desse mesmo assunto.
O teste que fiz, alterando de forma manual o campo "Ranking" conforme acima explicado, e mais o Relatório funcionaram perfeitamente, mas é humanamente impossível fazer isso de forma manual todas as vezes que um Relatório for solicitado.
O problema: É que eu não sei como tornar isso para que fique de forma automática, ou seja, fazer que a cada vez que a consulta fosse executada para apenas esse Relatório, o campo "Ranking" fosse automaticamente renumerado na Tabela T16_Expedientes baseando-se na ordem Decrescente do campo "ValAtualizado" e assim poder emitir o Relatório de forma satisfatória; pensei em usar Tabelas temporárias, mas não sei como aplicar, nesse caso em questão.
Em sendo possível tornar essa rotina automatizada como acima ou de outra forma, gostaria de saber se quando essa Rotina fosse rodada poderia trazer algum prejuízo ao BD, visto que é usado em Rede com BE e FE por 4 usuários.
Caso queira, posso enviar o arquivo com o teste acima citado.
Última edição por vileman em Ter 18 Set 2012, 00:16, editado 1 vez(es) (Motivo da edição : Correção de texto)