Dúvida em código simples de impressão... Alguém me ajuda?

17/04/2003

0

Bom dia companheiros...

Vejam se podem me ajudar....

Estou imprimindo destinatários de boletos no verso das guias, e quanto ao código da emissão total dos destinatários está tudo OK, funciona da seguinte forma:

Coloco o ponteiro da tabela no fim da mesma, e vou varrendo a tabela do fim para o início, imprimindo cada registro que satisfaça a condição
definida pelo usuário. Este procedimento de varrer a tabela do fim para o inicio é devido a posição que os boletos saem na impressora, mas quanto a isso está tudo ok.

Acontece que tive que criar uma opção de impressão parcial dos destinatários das guias. Imaginem se porventura der um problema durante a impressão, que neste caso envolvem quase 400 guias por mês, foi necessário abrir ao usuário selecionar em qual destinatário a impressão foi paralizada para dar continuidade a impressão.

No caso da emissão total, vejam um resumo do código:

{Atribui a Impressora a um arquivo}
AssignPrn(PrintFile);
Rewrite(PrintFile);
{Define a fonte do Form}
Printer.Canvas.Font := Font;
Printer.Canvas.Font.Size := 12;
{Armazena a posiçào atual, criando um bookMark}
BookMark := dtmDados.QryBoletos.GetBookmark;
dtmDados.QryBoletos.DisableControls;
Try
[b:0c3140c929]dtmDados.QryBoletos.Last;[/b:0c3140c929]
while not dtmDados.QryBoletos.Bof do
Begin
writeln(PrintFile);
writeln(PrintFile);
writeln(PrintFile);
writeln(PrintFile);
dtmDados.qryBoletos.MoveBy(-1);
Write(PrintFile, #12)
End;
Finally
{Volta ao bookmark e o destroi}
dtmDados.qryBoletos.GotoBookmark (BookMark);
dtmDados.qryBoletos.FreeBookmark (BookMark);
dtmDados.qryBoletos.EnableControls;
System.Closefile (PrintFile);
End;



Vejamos... No caso da impressão parcial dos destinatários eu abri uma listagem para o usuário selecionar em qual registro foi paralizada a impressão,desta forma então, na hora de imprimir a emissão parcial dos destinatários eu tirei o comando: [b:0c3140c929]dtmDados.QryBoletos.Last;[/b:0c3140c929]
Porque se eu jogasse o ponteiro no final da tabela seriam impressos todos os destinatários novamente, o que quero é somente a partir do destinatário que o usuário selecionou.


Ao tirar esta linha do código, o delphi não executa a impressão. Porque?
Eu não conheço muito bem o comando Try- Finally, pois um companheiro do fórum que me passou este codigo de exemplo. Este erro tem algo a ver coma retirada do comando que coloca a tabela no final para iniciar a impressão?

Se alguém puder me ajudar, ficarei muito grato...

Um grande abraço a todos...

Pablo - Marília/SP


Pablo_lima

Pablo_lima

Responder

Posts

17/04/2003

Rebel_inside

hmmmm.. você pode tentar fazer o seguinte..

- definir uma variável do tipo bool (ex.: var [b:72ccfa4028]Continuar[/b:72ccfa4028]: Boolean; )
- De acordo com o que você quer fazer, especificar um valor para [b:72ccfa4028]Continuar[/b:72ccfa4028]
- No comando dataset.Last, substituir por if (not [b:72ccfa4028]Continuar[/b:72ccfa4028]) then dataset.Last;

acho que foi isso que você perguntou.
Espero ter ajudado


Responder

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

Aceitar