| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
mgadani Novato

Registrado: Sexta-Feira, 7 de Novembro de 2008 Mensagens: 66
|
Enviada: Sex Out 19, 2012 10:03 am Assunto: Numerar Linhas Selecionadas QuickReport |
|
|
Bom dia,
Estou com dificuldade em numerar um relatório somente com as linhas selecionadas no dbgrid ex:
Tenho uma consulta que me tras 10 registros
1 amanda
2 decio<-- selecionado
3 carlos
4 marcelo<-- selecionado
5 ricardo
6 claudio<-- selecionado
7 fernando
8 mario
9 silvio
10 luiz
quero imprimir somente estes registros selecionados, até ai tudo bem, mais quando imprimi ele aparece assim...
2 decio<-- selecionado
4 marcelo<-- selecionado
6 claudio<-- selecionado
eu até entendo porque ele faz assim, mais estou tentando que ele faça assim...
1 decio<-- selecionado
2 marcelo<-- selecionado
3 claudio<-- selecionado
quando crio um numerador para contar e incrementar as linhas ele conta todas as linhas do dataset e não somente as selecionadas no dbgrid...
se alguém tiver uma ideia de como fazer eu agradeceria muito...
valeu... |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Out 19, 2012 11:01 am Assunto: |
|
|
Bom dia,
Experimente fazer o seguinte:
- declare uma variável do tipo integer dentro do Form onde está o QuickReport, abaixo de private
- atribua zero a variável no evento BeforePrint do QuickReport
- some 1 a variável no evento BeforePrint da banda onde deve ser impresso o número, e utilize código para atribuir o valor da variável a um QRLabel para a impressão
Espero que ajude.
Editado pela última vez por imex em Qua Mar 08, 2023 11:23 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
mgadani Novato

Registrado: Sexta-Feira, 7 de Novembro de 2008 Mensagens: 66
|
Enviada: Sex Out 19, 2012 2:25 pm Assunto: |
|
|
| então IMEX eu já fiz isso, e mesmo assim quando ele passa pelo contador ele conta todas as linhas do dataset, e não as linhas que foram selecionadas no dbgrid. |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Out 19, 2012 3:42 pm Assunto: |
|
|
Não sei como você está fazendo para imprimir somente as linhas selecionadas no DBGrid, mas se você incrementar a variável somente quando uma linha vai ser impressa, acho que não tem como somar as outras linhas que não estão selecionadas.
Confirme também se o número que está sendo impresso é o valor da variável. |
|
| Voltar ao Topo |
|
 |
mgadani Novato

Registrado: Sexta-Feira, 7 de Novembro de 2008 Mensagens: 66
|
Enviada: Sex Out 19, 2012 3:57 pm Assunto: |
|
|
Então estou imprimindo a seleção a partir do BeforePrint do QuickReport
assim:
PrintBand := FormConsApont.DBGrid3.SelectedRows.CurrentRowSelected; |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Out 19, 2012 4:08 pm Assunto: |
|
|
E como você está incrementando o contador? Mais ou menos assim?
| Código: | PrintBand := FormConsApont.DBGrid3.SelectedRows.CurrentRowSelected;
if PrintBand then
begin
Inc(Contador);
QRLabelContador.Caption := FormatFloat('#,##0', Contador);
end; |
|
|
| Voltar ao Topo |
|
 |
mgadani Novato

Registrado: Sexta-Feira, 7 de Novembro de 2008 Mensagens: 66
|
Enviada: Seg Out 22, 2012 7:29 am Assunto: |
|
|
Bom dia...
é assim mesmo que estou fazendo...
e ele numera as linhas, seguindo do dataset e não do dbgrid... |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Out 22, 2012 9:42 am Assunto: |
|
|
Bom dia,
Não testei esse código que você está utilizando para imprimir somente as linhas selecionadas no DBGrid, mas se ele está funcionando corretamente, acho que o contador também deveria estar correto.
Você debugou ou experimente colocar um ShowMessage para acompanhar o valor do contador?
| Código: | PrintBand := FormConsApont.DBGrid3.SelectedRows.CurrentRowSelected;
if PrintBand then
begin
Inc(Contador);
ShowMessage(IntToStr(Contador));
QRLabelContador.Caption := FormatFloat('#,##0', Contador);
end; |
|
|
| Voltar ao Topo |
|
 |
|