Fórum Erro com sequencia de regitros #322138

25/05/2006

0

Fiz um programa que imprime determinados relatorios. Fiz um preview personalizado. O usuario pode escolher quatos registros ele quer exibir por pagina. Se ele escolher 4, eu crio 4 qrlabels e faço um laço e conto quantos qrlabels tem e vou adicionando o conteudo da query nele e dando next.

no OnPreview do quickrep1 eu chamo o formulario com o preview personalizado.

no OnNeedData do QuickRep1 eu faço:

{ Gera mais uma linha enquanto não for final de arquivo }
MoreData := not (IBQ_Numeracao.Eof);

no OnBeforePrint do QuickRep1 eu abro a query e a posiciono no inicio do recordset.

IBQ_Numeracao.Open;
IBQ_Numeracao.First;

e no OnBeforePrint da Banda detail eu faço

for i := 1 to Total do
begin

Label := TQRAngledLabel(FindComponent(´Numeral´ + IntToStr(contador)));
if not (Label = nil) then
begin

with Label do
begin

Caption := ´ ´;

if not (IBQ_Numeracao.Eof) then
Caption := IBQ_Numeracao.FieldByName(´NUMERAL´).AsString;

end;

end;

IBQ _Numeracao.Next;

end;

O intuito disso eh, por ex: se escolher 4 registros por vez, ele imprimirá na primeira pagina:
1,2,3,4
5,6,7,8
9,10,11,12, ... etc

So que o IBQ_Numeracao está perdendo a sequencia.

por ex: tenho os registros de 800 a 1300 em ordem crescente na tabela, ele escolheu imprimir de 4 em 4 aí começa

800, 801, 802, 803,
804, 805, 806, 807,
...
832, 833, 958, 959 <-- Aqui ele perdeu a sequencia.
960, 961, 962, 963
...
996, 997, 834, 835 <-- Aqui ele volta de onde perdeu.

O mais estranho é que o total de registros sempre sai certo, porem se for uma quantidade grande de regitros dah esse erro, se for até uns 200 dah dah certo, + se passar disso dah esse erro.

Alguem tem alguma dica pra me dar ... Obrigado.


M@gnun

M@gnun

Responder

Posts

25/05/2006

Motta

Posso estar viajando mas creio que um ORDER BY na query mata a charada.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar