fabio.avila Aprendiz

Registrado: Segunda-Feira, 11 de Junho de 2007 Mensagens: 292
|
Enviada: Qua Abr 16, 2008 4:54 pm Assunto: Imprimir em LPT1 |
|
|
Estou fazendo teste em uma impressora da Bematech para imprimir em uma impressora da Bematech LPT1.
Estou tendo muitas dificuldades, principalmente para ajustar as strings como posso obter ajuda?
o código está assim:
if modeloimp = 'LPT1'then
begin
{POSICIONA O PONTEIRO DA TABELA DE CLIENTES,
EM RELAÇÃO À TABELA DE venda}
//DMTabelas.IBCliente.locate('Codigo',DMTabelas.vendaCODCLIENTE.Value,[]);
{Relaciona a variável impressora com a
lpt1: - Poderia ser LPT, COM1,// Servidor/impressora}
AssignFile(IMPRESSORA,'LPT1:');
{abre a porta da impressão }
Rewrite(IMPRESSORA);
{envia caractere de controle para comprimir a impressão}
Write(IMPRESSORA);
{ Imprime a string "", alinhado à esquerda"-" dentro de uma área de quarenta caracteres}
Write(Impressora,Format('%-40s',[DatetoStr(Date)+' '+TimetoStr(Time)]));
{ Salta uma linha}
Writeln(Impressora);
Write(Impressora,Format('%-40s',['** COMPROVANTE NAO FISCAL **']));
{ Salta uma linha}
Writeln(Impressora);
Write(Impressora,Format('%-40s',['NAO VALE COMO COMPROVANTE FISCAL']));
{ Salta uma linha}
Writeln(Impressora);
{ ---- Impressão dos Dados do Consumidor-----}
{ Imprime a Razão Social, alinhado à esquerda dentro de uma área de 90 caracteres}
//Write (Impressora,Format('%-90s', [ DMTabelas.ibClienteNomeCli.Value]));
{ Imprime Endereço,alinhado à esquerda"-" dentro de uma área de 70 carcateres}
//Write(Impressora,Format('%-70s',[dmdados.tbClientesCli_Endereco.Value]));
{Imprime Bairro, dentro de uma área de 35 carcateres}
//Write(Impressora,Format('%-35s',[dmdados.tbClientesCli_Bairro.Value]));
{ Imprime CEP, dentro de uma área de 15 carcateres}
//Write(Impressora,Format('%-15s', [dmdados.tbClientesCli_CEP.Value]));
{Imprime a Data de Saída, baseada na Hora Atual e Salta para próxima Linha}
//Writeln(Impressora,DatetoStr(Date));
{----- Fase de Emissão dos Itens da Nota -----}
{ Zero variáveis}
{ Move o ponteiro de registro da tabela de Itens para o primeiro}
DMTabelas.itemvenda.First;
{ Início do Laço}
While not (DMTabelas.itemvenda.Eof) do
Begin
//Locate na tabela produto
DMTabelas.ibproduto.Locate('CodProd',(DMTabelas.itemvendaCODProd.Value),[]);
{ Imprime Código produto}
Write(Impressora,Format('%-15s', [(DMTabelas.ibProdutoCODBarras.Value)]));
{ Imprime Descrição do produto}
Write(Impressora,Format('%-68s', [DMTabelas.ibProdutoNomeProdRes.value]));
{ Imprime Quantidade Comercializada}
Write(Impressora,Format('%-15s',[DMTabelas.ItemVendaQtd.value]));
{ Imprime Preço Unitário produto}
Write(Impressora,Format('%-68s',[DMTabelas.ItemVendaUnitario.value]));
{ Imprime o valor Total do Item e salta uma linha}
Writeln(Impressora,Format('%-68s', [DMTabelas.ItemVendaSubTotal.Value]));
{ Próximo Item}
DMTabelas.itemvenda.next;
end;
{ laço de Itens}
{ Salta o núemro de linhas necessárias para completar o espaço restante de itens}
//For Contador:= 1 to (20- dmdados.tbItens.recordCount)do
{ Imprime o valor total dos produtos e salta uma linha}
Writeln(Impressora,Format('%-40s',[floattostr(falta)]));
{ Salta uma linhas}
Writeln(Impressora);
{ Imprime o valor total da Nota e salta uma linha}
Writeln(Impressora,Format('%-40s',[floattostr(pago)]));
{ Salta uma linhas}
Writeln(Impressora);
{ Fecha a porta de impressão}
System.Close(Impressora);
end; |
|