AJUDAM ME - ERRO DE LOGICA
Olá pessoal,
Estou criando um relatório via Printer, estou usando um Picture Box para visualizar antes da impressão...
Estou tentando paginar o picutre; ja esta qse ok!
deem uma olhada:
O codigo esta paginando perfeitamente, cada pagina contem 20 registros; isso esta ok!
A Primeira pagina mostra 20 registros mas quando eu mudo para a segunda pagina ele mostra registros a mais..
Esta assim: Tabela contem 47 registros.. Pagina 1 - vai do codigo 1 ao 20
Mas a pagina 2 vai do 1 ao 40 - seria para ir do 21 ao 40; A parte do codigo do 21 ao 40 esta ok!
Creio q o erro esta no > IF <
Estou criando um relatório via Printer, estou usando um Picture Box para visualizar antes da impressão...
Estou tentando paginar o picutre; ja esta qse ok!
deem uma olhada:
PGAtual = ((20 * Pagina) - 20) + 1 [ô]1 a 20 / 21 a 40 / 31 a 50
PGFinal = (20 * Pagina)
MsgBox PGAtual [ô]21
MsgBox PGFinal [ô]40
Contador = 0
Picture1.Cls
With tbTemp
Do While Not tbTemp.EOF
Contador = Contador + 1
If Contador >= PGInicial And Contador <= PGFinal Then
Picture1.Print Tab(3); !codigo;
Picture1.Print Tab(15); !documento;
Picture1.Print Tab(30); !Historico;
Picture1.Print Tab(60); !Valor;
Picture1.Print Tab(75); !Situacao;
Picture1.Print Tab(93); !TIPO;
Picture1.Print Tab(110); !dt_Emissao;
Picture1.Print Tab(125); !dt_Vencimento; Tab(2)
End If
tbTemp.MoveNext
Loop
End With
tbTemp.Close
O codigo esta paginando perfeitamente, cada pagina contem 20 registros; isso esta ok!
A Primeira pagina mostra 20 registros mas quando eu mudo para a segunda pagina ele mostra registros a mais..
Esta assim: Tabela contem 47 registros.. Pagina 1 - vai do codigo 1 ao 20
Mas a pagina 2 vai do 1 ao 40 - seria para ir do 21 ao 40; A parte do codigo do 21 ao 40 esta ok!
Creio q o erro esta no > IF <
Você deve zerar o Contador.
Não da para zerar o Contador na lógica utilizada. Tente algo como isso:
If Contador < PGFinal Then
Picture1.Print Tab(3); !codigo;
Picture1.Print Tab(15); !documento;
Picture1.Print Tab(30); !Historico;
Picture1.Print Tab(60); !Valor;
Picture1.Print Tab(75); !Situacao;
Picture1.Print Tab(93); !TIPO;
Picture1.Print Tab(110); !dt_Emissao;
Picture1.Print Tab(125); !dt_Vencimento; Tab(2)
Else
Contador = 0
End If
Acabei de testar, mas nao deu!
A lógica seria assim: o contador vai contando desde do primeiro registro da tabela
vai de 1 a o limite de registros..
Entao eu vou colocar na pagina 1 os 20 primeiros registros
pagina 2 do reg 21 ao 40
Entao ficaria
tabela inicio = 0
contador = contador +1
if contador>= 21 and contador<=40 then
adicionar reg ao relatorio
endif
move ao proximo reg
entao ficaria entre 21 e 40 para o rel; mas sei la, nao vai..
A lógica seria assim: o contador vai contando desde do primeiro registro da tabela
vai de 1 a o limite de registros..
Entao eu vou colocar na pagina 1 os 20 primeiros registros
pagina 2 do reg 21 ao 40
Entao ficaria
tabela inicio = 0
contador = contador +1
if contador>= 21 and contador<=40 then
adicionar reg ao relatorio
endif
move ao proximo reg
entao ficaria entre 21 e 40 para o rel; mas sei la, nao vai..
Se eu colocar um Contador < Total Reg
Ele vai imprimir do 1 ao total
nao entre intervalo
de 20 a 40
Ele vai imprimir do 1 ao total
nao entre intervalo
de 20 a 40
Encontrei o erro
A variavel estava com problema;
entao fiz assim:
fiz o calculo dentro da comparação, funcionou agora...
A variavel estava com problema;
entao fiz assim:
fiz o calculo dentro da comparação, funcionou agora...
With tbTemp
Do While Not tbTemp.EOF
Contador = Contador + 1
If (Contador >= ((20 * Pagina) - 20) + 1 And Contador <= (20 * Pagina)) Then
Picture1.Print Tab(3); !codigo;
Picture1.Print Tab(15); !documento;
Picture1.Print Tab(30); !Historico;
Picture1.Print Tab(60); !Valor;
Picture1.Print Tab(75); !Situacao;
Picture1.Print Tab(93); !TIPO;
Picture1.Print Tab(110); !dt_Emissao;
Picture1.Print Tab(125); !dt_Vencimento; Tab(2)
End If
tbTemp.MoveNext
Loop
End With
Tópico encerrado , respostas não são mais permitidas