COMO AJUSTAR CLASSIFICACAO VIA OBJETO PRINTER?
Estou [ô]apanhando[ô] para gerar um relatório, gerado pelo objeto Printer, numa ordem que preciso seja
por ordem de clientes e por tÃtulo do filme emprestado. No meu sistema, quando o usuário clica no menu
<Impressão de Movimentação de Clientes>, a rotina de impressão é executada, listando todos os dados
que estão na tabela <Transações>, tabela esta indexada pelo nome dos clientes. Todavia, embora os
clientes venham em ordem alfabética, os filmes a eles associados vêm fora de ordem alfabética....
Exemplo:
Cliente Filme Retirado Data
Antonio Graciano A batalha de Argel 23/4/2009
Antonio Graciano Os Inconfidentes 1/3/2009
Antonio Graciano Indiana Jones 17/3/2009
Como a tabela é ordenada ao ser impressa:
[ô]RS.Index = [Ô]CodCliente[Ô] [ô]Organiza o relatório por nome de cliente.
Criei, paralelamente, uma rotina SQL, antes da impressão, que deveria ordenar a listagem:
[ô]DIM MeuRelatorio as String
[ô]MeuRelatorio = [Ô]Select * From Transações Order by NomeCli asc, NomeFilme asc[Ô]
[ô]Data1.RecordSource = MeuRelatorio
[ô]Data1.Refresh
Mesmo cancelando a linha do index, a instrução SQL acima não está organizando o relatório...
A plataforma é VB6. Alguém poderia apontar onde está a minha falha? Agradeço se algum dos
luminares que frequentam este forum puder ajudar.
Citação:[ô]MeuRelatorio = [Ô]Select * From Transações Order by NomeCli asc, NomeFilme asc[Ô]
Na seção de código que você apresentou, não consegui enxergar falha. Só para tirar uma dúvida, você armazena o nome ou o código do cliente na tabela transações?
O nome do cliente é que é armazenado na tabela, bem como o nome do filme...
Do jeito que está, ao evocar o indice durante a impressão, a relação é impressa por ordem do nome do cliente.
Assim, se ele tiver muitas retiradas (de filmes diferentes), o nome dele segue a ordem alfabética, o mesmo não
acontecendo com os filmes que ele retirou...
Como disse, a rotina SQL não muda nada no relatório. E, se retirar o indice, o relatório é impresso totalmente
sem ordem...
Do jeito que está, ao evocar o indice durante a impressão, a relação é impressa por ordem do nome do cliente.
Assim, se ele tiver muitas retiradas (de filmes diferentes), o nome dele segue a ordem alfabética, o mesmo não
acontecendo com os filmes que ele retirou...
Como disse, a rotina SQL não muda nada no relatório. E, se retirar o indice, o relatório é impresso totalmente
sem ordem...
E a� Tem alguém ai que possa ajudar?
Gera pelo Crystal Report...
Aconselho..
Estava usando relatorios feitos pelo obj printer, mas tive algumas dificuldade em exportar o relatorio
entao mudei parao Crystal report 8.5
não tive problemas
Aconselho..
Estava usando relatorios feitos pelo obj printer, mas tive algumas dificuldade em exportar o relatorio
entao mudei parao Crystal report 8.5
não tive problemas
Hã hã...
Eu sei que no Crystal dá. Mas preferi usar o Printer, já que o relatório é bem simples (aparece o nome do cliente, os filmes que ele retirou, em que data, e em que data devolveu). E sempre tem aquela coisa de [ô]escrever código[ô], o que praticamente não ocorre com o Crystal Reports. Já sei: sou meio da antiga (ainda utilizo o VB5 e 6) he he...
Se alguém conhecer alguma solução (ordenar a tabela por mais de um campo, com ou sem utilização do Index), agradeceria se compartilhasse.
Xyko.
Eu sei que no Crystal dá. Mas preferi usar o Printer, já que o relatório é bem simples (aparece o nome do cliente, os filmes que ele retirou, em que data, e em que data devolveu). E sempre tem aquela coisa de [ô]escrever código[ô], o que praticamente não ocorre com o Crystal Reports. Já sei: sou meio da antiga (ainda utilizo o VB5 e 6) he he...
Se alguém conhecer alguma solução (ordenar a tabela por mais de um campo, com ou sem utilização do Index), agradeceria se compartilhasse.
Xyko.
Sds XYKOVIEIRA!
O Ãndice que vc está usando não serve para o propósito que vc deseja, pois indexa somente o código dos clientes. Vc tem que criar um Ãndice que indexe o código do cliente (convertendo em string) + o nome do filme retirado.
O Ãndice que vc está usando não serve para o propósito que vc deseja, pois indexa somente o código dos clientes. Vc tem que criar um Ãndice que indexe o código do cliente (convertendo em string) + o nome do filme retirado.
A SQL está correta. O que deve tá pegando é alguma configuração do Data que tá reordenando o resultado da SQL. Deve ser o Ãndice mesmo. Faça o que o colega HELENO disse.
Ãndices, em bancos de dados voltados a estrutura(como é o caso do access, SQL server e Oracle), não servem para ordenar os dados, como era o caso do Clipper/FoxPro. Eles apenas fazem um cache desses dados para facilitar o trabalho das consultas. Delete o Ãndice e use ordenação SQL normal.
Tópico encerrado , respostas não são mais permitidas