Escolher itens de uma consulta para gerar relatório

Delphi

23/04/2008

Olá,


estou com 2 dúvidas e não sei que direção tomar:

1. Se o resultado de uma consulta me traz por exemplo 30 registros, mas o dbrepeater está configurado para mostrar só 10, como fazer para que quando clique em um botão ele me mostre os outros 10 e assim por diante, já tentei com o MoveBy(), mas só funciona com a primeira leva de 10;

2. Como fazer para escolher dentre os registros resultados de uma consulta, quais os que serão impressos, eu pensei em colocar um campo imprimir do tipo boolean , e um checkbox no dbrepeater para que quando se clicar, ele armazenar true no campo imprimir, só tá dando errado, quando marco os que eu quero, na tabela acontece algo estranho, o 1º é duplicado, subtituindo um outro aleatoriamente e só esse fica com o campo imprimir true.

Alguma sugestão?


Fajo

Fajo

Curtidas 0

Respostas

Webmoura

Webmoura

23/04/2008

Boa tarde

Vamos la a sua primeira pergunta, a forma mais facio de andar e a seguinte no componente tabela ou query que voce deve ter ligado ao dbgrid tem duas opcoes que vao determinar para voce os registros que serao mostrados ok

entao vamos la supondo que voce tem 30 registros e esta mostrando os 15 primeiro e quer mostrar os outros 15 e so voce colocar no evendo on click do botao o seguinte comando

$this->tabela->LimiteStart = 14;//ele vai comecar a mostrar a partir do 15 registro
$this->tabela->LimiteCount = 15;//ele so vai mostrar 15 registros

pronto, espero ter ajudado
webmoura


GOSTEI 0
Fajo

Fajo

23/04/2008

Blz webmoura, mas e se eu tiver 100 registros? e quiser de 10 em 10


GOSTEI 0
Webmoura

Webmoura

23/04/2008

Boa tarde

voce tem varias maneiras de fazer isso encrementando os valores, usando tags, ifs. mais vamos la vou dar um exemplo bem simples que pode resolver

no botao de proximo voce coloca o seguinte comando

$this->tabela->LimitStart = $this->tabela->LimitStart +10;
$this->tabela->LimitCount = 10;//este vai ser sempre este valor pois sempre vai exibir so 10


no botao de voltar voce coloca o comando assim

if (!$this->tabela->LimitStart==10)//faco o if para validar que o minimo de registros e 10
{
$this->tabela->LimitStart = $this->tabela->LimitStart - 10;
}
else
{
$this->tabela->LimitStart = 10;
}
$this->tabela->LimitCount = 10;//este vai ser sempre este valor pois sempre vai exibir so 10

faca os teste, espero ter ajudado
Abraco
webmoura


GOSTEI 0
Fajo

Fajo

23/04/2008

Ajudou e muito webmoura, obrigado, só falta agora o 2º problema, mas já valeu muito.


GOSTEI 0
Webmoura

Webmoura

23/04/2008

Bom dia, vamos ao segundo problema

este e um pouco mais complicado de resolver, mais antes quero te perguntar se entendi bem a pergunta, para que assim eu nao responda bobeira ok

o que voce quer fazer e o seguinte, vamos supor que dentro dos 10 primeiros registros que apareceram voce quera imprimir apenas 3 deles, tipo selecionar e depois apertar o imprimir, seria isso

fico no aguardo
abraco


GOSTEI 0
Fajo

Fajo

23/04/2008

Isso mesmo, dentro do resultado de uma consulta, quero escolher quais vou imprimir.


GOSTEI 0
Winigma

Winigma

23/04/2008

Olá amigo, vi a resposta ai e achei interessante, mais achei meio que desgastante, pq ao invés de usar esse código vc não usa um pager?
assim vc não precisa usar uma unica linha de código, e mostra a quantidade de registro que quiser na pagina, claro que vc terá que usar o dbrepeat tbm...


GOSTEI 0
POSTAR