Fórum imprimir direto #343443
19/07/2007
0
AssignFile(IMPRESSORA,´LPT1:´);
{abre a porta da impressão }
Rewrite(IMPRESSORA);
{envia caractere de controle para comprimir a impressão}
Write(IMPRESSORA);
Writeln(impressora,#27´0´);
{ Imprime o caractere ´x´ (marcando Nota de Saída) e salta para próxima linha}
Writeln(Impressora,Format(´¬52s´,[´X´]));
{ salta duas linhas}
Writeln(impressora,27´0´);
Writeln(impressora,27´0´);
Writeln(impressora,27´0´);
Writeln(Impressora,Format(´¬72s´,[qrcarnecodnota.AsString]));
{ Imprime a string ´Vendas´, alinhado à esquerda´-´ dentro de uma área de quarenta caracteres}
Write(Impressora,Format(´¬-30s´,[´VENDAS´]));
{ Imprime a string ´5.12´, e salta para próxima linha}
Writeln(Impressora,Format(´¬-42s´, [´5.12´]));
{ Salta duas linhas}
Writeln(impressora,27´0´);
Writeln(Impressora,27´0´);
{ ---- Impressão dos Dados do Consumidor-----}
{ Imprime a Razão Social, alinhado à esquerda dentro de uma área de 90 caracteres}
Write (Impressora,Format(´¬-50s´, [ qrcarnenome.Value]));
{ Imprime a CGC, alinhado à esquerda dentro de umaárea de 30 caracteres}
Write(Impressora,Format(´¬-20s´, [qrcarnecnpj.Value]));
{ Imprime a Data de Emissão, baseada na data atual e salta para próxima linha}
Writeln(Impressora,DatetoStr(qrcarnedata.Value));
{ Salta uma linha}
Writeln(Impressora,#27´0´);
{ Imprime Endereço,alinhado à esquerda´-´ dentro de uma área de 70 carcateres}
Write(Impressora,Format(´¬-41s´,[qrcarnelogradouro.Value +´,´+qrcarnenumero.Value]));
{Imprime Bairro, dentro de uma área de 35 carcateres}
bairros := qrcarnebairro.Value;
Write(Impressora,Format(´¬-18s´,[bairros]));
{ Imprime CEP, dentro de uma área de 15 carcateres}
Write(Impressora,Format(´¬-11s´, [qrcarnecep.Value]));
{Imprime a Data de Saída, baseada na Hora Atual e Salta para próxima Linha}
Writeln(Impressora,DatetoStr(qrcarnedata.Value));
{ Salta uma linha}
Writeln(Impressora,#27´0´);
{ Imprime Munícipio, dentro de uma área de 60 caracteres}
Write(Impressora, Format(´¬-30s´, [qrcarnecidade.Value]));
{ Imprime DD+Telefone, dentro de uma área de 30 caracteres}
fone := qrcarneFONE_RESIDENCIAL.AsString;
Write(Impressora,Format(´¬-16s´,[FONE]));
{ Imprime Estado (UF), dentro de uma área de 5 caracteres}
Write(Impressora,Format(´¬-5s´,[qrcarneestado.Value]));
{ Imprime Inscrição Estadual, dentro de uma área de 25 caracteres}
Write(Impressora,Format(´¬-19s´,[qrcarneINSCESTADUAL.AsString]));
{ Imprime a Hora de Saída, baseada na Hora Atual e Salta para próxima Linha}
Writeln(Impressora,TimetoStr(time));
{ Salta três linhas}
Writeln(Impressora);
Writeln(Impressora);
qrcarne.First;
{ Início do Laço}
While not (qrcarne.Eof) do
Begin
Write(Impressora,#15,Format(´¬-9s´,[qrcarnecodparcela.AsString]));
Write(Impressora,15,Format(´¬-10s´, [qrcarnedvencimento.AsString ]));
Write(Impressora,Format(´¬-3s´,[´ R$´]));
Writeln(Impressora,Format(´¬10.2f´,[qrcarnevalor.Value]));
qrcarne.next;
end;
For Contador:= 1 to (9- qrcarne.recordCount)do
Writeln(Impressora);
Writeln(Impressora,18,Format(´¬-80s´, [qrcarnelogradouro.Value +´,´+qrcarnenumero.Value +´-´+qrcarnebairro.Value+´-´+qrcarnecidade.Value]));
Writeln(Impressora);
Writeln(Impressora);
{----- Fase de Emissão dos Itens da Nota -----}
{ Zero variáveis}
Valorbase:=0;
valoricms:=0;
{ Move o ponteiro de registro da tabela de Itens para o primeiro}
qrrel.First;
{ Início do Laço}
While not (qrrel.Eof) do
Begin
{ Imprime Código produto}
Write(Impressora,#18,Format(´¬-7s´, [qrrelcodproduto.AsString]));
{ Imprime Descrição do produto}
produto:= qrrelnome_produto.value;
Write(Impressora,Format(´¬-36s´, [produto]));
Write(Impressora,Format(´¬-2s´,[´0´]));
Write(Impressora,Format(´¬-2s´,[qrrelTAMANHO.value]));
{ Imprime Quantidade Comercializada}
Write(Impressora,Format(´¬5s´,[qrrelquantidade.AsString]));
Write(Impressora,Format(´¬-3s´,[´ R$´]));
{ Imprime Preço Unitário produto}
Write(Impressora,Format(´¬8.2f´,[qrrelpreco_venda.Value]));
{ Imprime o valor Total do Item e salta uma linha}
Write(Impressora,Format(´¬-3s´,[´ R$´]));
Write(Impressora,Format(´¬9.2f´, [qrrelpreco_total.Value]));
Writeln(Impressora,Format(´¬-3s´,[´ 18¬´]));
{ Soma o valor Base de Cálculo do ICMS}
Valorbase:=ValorBase + qrrelpreco_total.Value;
{ Próximo Item}
qrrel.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 (16- qrrel.recordCount)do
Writeln(Impressora);
Write(Impressora,Format(´¬50s´,[´Valor do Desconto R$ ´]));
Writeln(Impressora,Format(´¬-10.2f´,[qrrelt_desc.Value]));
Writeln(Impressora);
//
servicos.First;
{ Início do Laço}
While not (servicos.Eof) do
Begin
Write(Impressora,Format(´¬-9s´,[servicosquantidade.AsString]));
desc := servicosdescricao.AsString;
Write(Impressora,Format(´¬-37s´, [desc]));
Write(Impressora,Format(´¬-3s´,[´R$ ´]));
Writeln(Impressora,Format(´¬10.2f´,[servicospreco_cdesc.Value]));
Valorserv:=Valorserv + servicospreco_cdesc.Value;
servicos.next;
end;
For Contador:= 1 to (5- servicos.recordCount)do
Writeln(Impressora);
Write(Impressora,Format(´¬70s´,[´R$ ´]));
{ Imprime o valor total dos produtos e salta uma linha}
Writeln(Impressora,Format(´¬10.2f´,[Valorserv]));
{ Salta duas linhas}
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
{ Cálculo do Imposto - baseada na Alíquota de 12¬}
valoricms:=(Valorbase*0.18);
{ Imprime Valor base}
Write(Impressora,Format(´¬-2s´,[´R$´]));
Write(Impressora,Format(´¬-13.2f´,[Valorbase]));
Write(Impressora,Format(´¬-2s´,[´R$´]));
{ Imprime Valor ICMS e salta ´p/ próxima linha}
Write(Impressora, Format(´¬-10.2f´,[ ValorICMS]));
Write(Impressora,Format(´¬43s´,[´R$´]));
Writeln(Impressora, Format(´¬-10.2f´,[ Valorbase]));
Writeln(Impressora);
Write(Impressora,Format(´¬70s´,[´R$´]));
{ Imprime o valor total da Nota e salta uma linha}
Writeln(Impressora,Format(´¬-10.2f´,[geral]));
{ Salta duas linhas}
Writeln(Impressora);
Writeln(Impressora);
{ Imprime informações transportador}
Writeln(Impressora,Format(´¬-30s´, [´o mesmo´]));
{ salta tr6es Linhas}
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
//
veiculos.First;
{ Início do Laço}
While not (veiculos.Eof) do
Begin
Write(Impressora,Format(´¬-12s´,[veiculosPATRIMONIO.Value]));
Writeln(Impressora,Format(´¬-30s´, [veiculosdescricao.AsString]));
veiculos.next;
end;
Writeln(impressora,#12);
{ Fecha a porta de impressão}
System.Close(Impressora);
queria arrumar um jeito de imprimir em varia paginas quando os itens passarem do numero linha agradeco toda ajuda
{abre a porta da impressão }
Rewrite(IMPRESSORA);
{envia caractere de controle para comprimir a impressão}
Write(IMPRESSORA);
Writeln(impressora,#27´0´);
{ Imprime o caractere ´x´ (marcando Nota de Saída) e salta para próxima linha}
Writeln(Impressora,Format(´¬52s´,[´X´]));
{ salta duas linhas}
Writeln(impressora,27´0´);
Writeln(impressora,27´0´);
Writeln(impressora,27´0´);
Writeln(Impressora,Format(´¬72s´,[qrcarnecodnota.AsString]));
{ Imprime a string ´Vendas´, alinhado à esquerda´-´ dentro de uma área de quarenta caracteres}
Write(Impressora,Format(´¬-30s´,[´VENDAS´]));
{ Imprime a string ´5.12´, e salta para próxima linha}
Writeln(Impressora,Format(´¬-42s´, [´5.12´]));
{ Salta duas linhas}
Writeln(impressora,27´0´);
Writeln(Impressora,27´0´);
{ ---- Impressão dos Dados do Consumidor-----}
{ Imprime a Razão Social, alinhado à esquerda dentro de uma área de 90 caracteres}
Write (Impressora,Format(´¬-50s´, [ qrcarnenome.Value]));
{ Imprime a CGC, alinhado à esquerda dentro de umaárea de 30 caracteres}
Write(Impressora,Format(´¬-20s´, [qrcarnecnpj.Value]));
{ Imprime a Data de Emissão, baseada na data atual e salta para próxima linha}
Writeln(Impressora,DatetoStr(qrcarnedata.Value));
{ Salta uma linha}
Writeln(Impressora,#27´0´);
{ Imprime Endereço,alinhado à esquerda´-´ dentro de uma área de 70 carcateres}
Write(Impressora,Format(´¬-41s´,[qrcarnelogradouro.Value +´,´+qrcarnenumero.Value]));
{Imprime Bairro, dentro de uma área de 35 carcateres}
bairros := qrcarnebairro.Value;
Write(Impressora,Format(´¬-18s´,[bairros]));
{ Imprime CEP, dentro de uma área de 15 carcateres}
Write(Impressora,Format(´¬-11s´, [qrcarnecep.Value]));
{Imprime a Data de Saída, baseada na Hora Atual e Salta para próxima Linha}
Writeln(Impressora,DatetoStr(qrcarnedata.Value));
{ Salta uma linha}
Writeln(Impressora,#27´0´);
{ Imprime Munícipio, dentro de uma área de 60 caracteres}
Write(Impressora, Format(´¬-30s´, [qrcarnecidade.Value]));
{ Imprime DD+Telefone, dentro de uma área de 30 caracteres}
fone := qrcarneFONE_RESIDENCIAL.AsString;
Write(Impressora,Format(´¬-16s´,[FONE]));
{ Imprime Estado (UF), dentro de uma área de 5 caracteres}
Write(Impressora,Format(´¬-5s´,[qrcarneestado.Value]));
{ Imprime Inscrição Estadual, dentro de uma área de 25 caracteres}
Write(Impressora,Format(´¬-19s´,[qrcarneINSCESTADUAL.AsString]));
{ Imprime a Hora de Saída, baseada na Hora Atual e Salta para próxima Linha}
Writeln(Impressora,TimetoStr(time));
{ Salta três linhas}
Writeln(Impressora);
Writeln(Impressora);
qrcarne.First;
{ Início do Laço}
While not (qrcarne.Eof) do
Begin
Write(Impressora,#15,Format(´¬-9s´,[qrcarnecodparcela.AsString]));
Write(Impressora,15,Format(´¬-10s´, [qrcarnedvencimento.AsString ]));
Write(Impressora,Format(´¬-3s´,[´ R$´]));
Writeln(Impressora,Format(´¬10.2f´,[qrcarnevalor.Value]));
qrcarne.next;
end;
For Contador:= 1 to (9- qrcarne.recordCount)do
Writeln(Impressora);
Writeln(Impressora,18,Format(´¬-80s´, [qrcarnelogradouro.Value +´,´+qrcarnenumero.Value +´-´+qrcarnebairro.Value+´-´+qrcarnecidade.Value]));
Writeln(Impressora);
Writeln(Impressora);
{----- Fase de Emissão dos Itens da Nota -----}
{ Zero variáveis}
Valorbase:=0;
valoricms:=0;
{ Move o ponteiro de registro da tabela de Itens para o primeiro}
qrrel.First;
{ Início do Laço}
While not (qrrel.Eof) do
Begin
{ Imprime Código produto}
Write(Impressora,#18,Format(´¬-7s´, [qrrelcodproduto.AsString]));
{ Imprime Descrição do produto}
produto:= qrrelnome_produto.value;
Write(Impressora,Format(´¬-36s´, [produto]));
Write(Impressora,Format(´¬-2s´,[´0´]));
Write(Impressora,Format(´¬-2s´,[qrrelTAMANHO.value]));
{ Imprime Quantidade Comercializada}
Write(Impressora,Format(´¬5s´,[qrrelquantidade.AsString]));
Write(Impressora,Format(´¬-3s´,[´ R$´]));
{ Imprime Preço Unitário produto}
Write(Impressora,Format(´¬8.2f´,[qrrelpreco_venda.Value]));
{ Imprime o valor Total do Item e salta uma linha}
Write(Impressora,Format(´¬-3s´,[´ R$´]));
Write(Impressora,Format(´¬9.2f´, [qrrelpreco_total.Value]));
Writeln(Impressora,Format(´¬-3s´,[´ 18¬´]));
{ Soma o valor Base de Cálculo do ICMS}
Valorbase:=ValorBase + qrrelpreco_total.Value;
{ Próximo Item}
qrrel.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 (16- qrrel.recordCount)do
Writeln(Impressora);
Write(Impressora,Format(´¬50s´,[´Valor do Desconto R$ ´]));
Writeln(Impressora,Format(´¬-10.2f´,[qrrelt_desc.Value]));
Writeln(Impressora);
//
servicos.First;
{ Início do Laço}
While not (servicos.Eof) do
Begin
Write(Impressora,Format(´¬-9s´,[servicosquantidade.AsString]));
desc := servicosdescricao.AsString;
Write(Impressora,Format(´¬-37s´, [desc]));
Write(Impressora,Format(´¬-3s´,[´R$ ´]));
Writeln(Impressora,Format(´¬10.2f´,[servicospreco_cdesc.Value]));
Valorserv:=Valorserv + servicospreco_cdesc.Value;
servicos.next;
end;
For Contador:= 1 to (5- servicos.recordCount)do
Writeln(Impressora);
Write(Impressora,Format(´¬70s´,[´R$ ´]));
{ Imprime o valor total dos produtos e salta uma linha}
Writeln(Impressora,Format(´¬10.2f´,[Valorserv]));
{ Salta duas linhas}
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
{ Cálculo do Imposto - baseada na Alíquota de 12¬}
valoricms:=(Valorbase*0.18);
{ Imprime Valor base}
Write(Impressora,Format(´¬-2s´,[´R$´]));
Write(Impressora,Format(´¬-13.2f´,[Valorbase]));
Write(Impressora,Format(´¬-2s´,[´R$´]));
{ Imprime Valor ICMS e salta ´p/ próxima linha}
Write(Impressora, Format(´¬-10.2f´,[ ValorICMS]));
Write(Impressora,Format(´¬43s´,[´R$´]));
Writeln(Impressora, Format(´¬-10.2f´,[ Valorbase]));
Writeln(Impressora);
Write(Impressora,Format(´¬70s´,[´R$´]));
{ Imprime o valor total da Nota e salta uma linha}
Writeln(Impressora,Format(´¬-10.2f´,[geral]));
{ Salta duas linhas}
Writeln(Impressora);
Writeln(Impressora);
{ Imprime informações transportador}
Writeln(Impressora,Format(´¬-30s´, [´o mesmo´]));
{ salta tr6es Linhas}
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
//
veiculos.First;
{ Início do Laço}
While not (veiculos.Eof) do
Begin
Write(Impressora,Format(´¬-12s´,[veiculosPATRIMONIO.Value]));
Writeln(Impressora,Format(´¬-30s´, [veiculosdescricao.AsString]));
veiculos.next;
end;
Writeln(impressora,#12);
{ Fecha a porta de impressão}
System.Close(Impressora);
queria arrumar um jeito de imprimir em varia paginas quando os itens passarem do numero linha agradeco toda ajuda
Famatec
Curtir tópico
+ 0
Responder
Posts
24/07/2007
Virus69
Eu sempre uso o RDPrint pra isso, segue abaixo a linha completa da nota fiscal
var
subtotal, total : currency;
linha : integer;
natureza : String[40];
begin
DM.IBClientes.close;
DM.IBClientes.SelectSQL.Clear;
DM.IBClientes.SelectSQL.add(´SELECT * FROM CLIENTES´);
DM.IBClientes.SelectSQL.ADD(´WHERE CODIGO = ´ + QuotedStr(dm.IBNotaCODCLI.Text) + ´´);
DM.IBClientes.Open;
total := 0;
// Parametros para o NOTA FISCAL...
rdprint1.TamanhoQteLinhas := 66; //66 Linhas (deve ser 1 quando for CUPOM)
rdprint1.TamanhoQteColunas := 96; // Largura da Bobina aprox. 7 cm (7 / 2.54 * 20)
rdprint1.FonteTamanhoPadrao := s20cpp; // Fonte Comprimido em 20 cpp
rdprint1.OpcoesPreview.Preview := FALSE;
RDprint1.PortaComunicacao := FRMPrincipal.EdImpressao.Text;
RDprint1.Abrir;
// imprime novo cabecalho da nota...
RDprint1.imp (01,103,´X´);
RDprint1.impf(01,145,dm.IBNotaCODIGO.text,[expandido,negrito]);
RDprint1.imp (02,40,dm.IBUsuarioENDERECO.text);
RDprint1.imp (03,40,dm.IBUsuarioBAIRRO.text + ´´ + dm.IBUsuarioCIDADE.text + ´´ + dm.IBUsuarioUF.text);
natureza := dm.IBNotaNATUREZA.text;
RDprint1.imp (05,01,natureza);
RDprint1.imp (05,55,dm.IBNotaCFOP.text);
RDprint1.imp (05,110,dm.IBUsuarioINSCRG.text);
// Destinatario / Remetente
RDprint1.imp(07,02,dm.IBNotaNOME.value);
RDprint1.imp(07,110,dm.IBClientesCPFCNPJ.value);
RDprint1.imp(07,148,dm.IBNotaDTEMISSAO.text);
RDprint1.imp(08,02,dm.IBClientesENDERECO.value);
RDprint1.imp(08,83,dm.IBClientesBAIRRO.value);
RDprint1.imp(08,98,dm.IBClientesCEP.value);
RDprint1.imp(10,02,dm.IBClientesCIDADE.Value);
RDprint1.imp(10,65,dm.IBClientesFONE.Value);
RDprint1.imp(10,98,dm.IBClientesUF.value);
RDprint1.imp(10,110,dm.IBClientesRGINSC.value);
RDprint1.imp(13,02,dm.IBNotaOBS1.TEXT);
// Itens da Nota Fiscal...
linha := 16; // Linha inicial dos produtos...
dm.IBDetNota.first;
while not dm.IBDetNota.eof do
begin
RDprint1.imp(linha,02,dm.IBDetNotaCODPRODUTO.asstring);
RDprint1.imp(linha,15,dm.IBDetNotaDESCRICAO.value);
RDprint1.imp(linha,79,dm.IBDetNotaLOTE.value);
RDprint1.imp(linha,95,dm.IBDetNotaST.value);
RDprint1.imp(linha,99,DM.IBDetNotaMEDIDA.value);
RDprint1.impval(linha,107,´#0´,DM.IBDetNotaQUANT.value,[]);
RDprint1.impval(linha,123,´,0.00´, DM.IBDetNotaVALORUNITARIO.value,[]);
subtotal := DM.IBDetNotaQUANT.value * DM.IBDetNotaVALORUNITARIO.value;
total := total + subtotal;
RDprint1.impval(linha,145,´#,0.00´, subtotal, []);
RDprint1.imp(linha,156,dm.IBDetNotaICMS.text);
inc(linha);
DM.IBDetNota.next;
end;
RDprint1.impval(42,135,´,0.00´, DM.IBNotaTOTALNOTA.value,[]);
RDprint1.impval(42,02,´,0.00´, DM.IBNotaBASECALCULO.value,[]);
RDprint1.impval(42,30,´,0.00´, DM.IBNotaVALORICMS.value,[]);
RDprint1.impval(44,135,´,0.00´, DM.IBNotaTOTALNOTA.value,[]);
RDprint1.imp(46,96,´1´);
RDprint1.imp(46,105,dm.IBNotaPLACA.TEXT);
RDprint1.imp(58,110,´AA´ + ´ ´ + dm.IBNotaSELO.TEXT);
RDprint1.imp(53,02,´DSP CLIENTE ... ´ + dm.IBClientesDSP.TEXT);
RDprint1.imp(54,02,´DSP LCR ... 24330050009/99 ´);
RDprint1.imp(55,02,dm.IBNotaOBS3.TEXT);
RDprint1.impf(62,145,dm.IBNotaCODIGO.text,[expandido,negrito]);
RDprint1.fechar;
CLOSE;
var
subtotal, total : currency;
linha : integer;
natureza : String[40];
begin
DM.IBClientes.close;
DM.IBClientes.SelectSQL.Clear;
DM.IBClientes.SelectSQL.add(´SELECT * FROM CLIENTES´);
DM.IBClientes.SelectSQL.ADD(´WHERE CODIGO = ´ + QuotedStr(dm.IBNotaCODCLI.Text) + ´´);
DM.IBClientes.Open;
total := 0;
// Parametros para o NOTA FISCAL...
rdprint1.TamanhoQteLinhas := 66; //66 Linhas (deve ser 1 quando for CUPOM)
rdprint1.TamanhoQteColunas := 96; // Largura da Bobina aprox. 7 cm (7 / 2.54 * 20)
rdprint1.FonteTamanhoPadrao := s20cpp; // Fonte Comprimido em 20 cpp
rdprint1.OpcoesPreview.Preview := FALSE;
RDprint1.PortaComunicacao := FRMPrincipal.EdImpressao.Text;
RDprint1.Abrir;
// imprime novo cabecalho da nota...
RDprint1.imp (01,103,´X´);
RDprint1.impf(01,145,dm.IBNotaCODIGO.text,[expandido,negrito]);
RDprint1.imp (02,40,dm.IBUsuarioENDERECO.text);
RDprint1.imp (03,40,dm.IBUsuarioBAIRRO.text + ´´ + dm.IBUsuarioCIDADE.text + ´´ + dm.IBUsuarioUF.text);
natureza := dm.IBNotaNATUREZA.text;
RDprint1.imp (05,01,natureza);
RDprint1.imp (05,55,dm.IBNotaCFOP.text);
RDprint1.imp (05,110,dm.IBUsuarioINSCRG.text);
// Destinatario / Remetente
RDprint1.imp(07,02,dm.IBNotaNOME.value);
RDprint1.imp(07,110,dm.IBClientesCPFCNPJ.value);
RDprint1.imp(07,148,dm.IBNotaDTEMISSAO.text);
RDprint1.imp(08,02,dm.IBClientesENDERECO.value);
RDprint1.imp(08,83,dm.IBClientesBAIRRO.value);
RDprint1.imp(08,98,dm.IBClientesCEP.value);
RDprint1.imp(10,02,dm.IBClientesCIDADE.Value);
RDprint1.imp(10,65,dm.IBClientesFONE.Value);
RDprint1.imp(10,98,dm.IBClientesUF.value);
RDprint1.imp(10,110,dm.IBClientesRGINSC.value);
RDprint1.imp(13,02,dm.IBNotaOBS1.TEXT);
// Itens da Nota Fiscal...
linha := 16; // Linha inicial dos produtos...
dm.IBDetNota.first;
while not dm.IBDetNota.eof do
begin
RDprint1.imp(linha,02,dm.IBDetNotaCODPRODUTO.asstring);
RDprint1.imp(linha,15,dm.IBDetNotaDESCRICAO.value);
RDprint1.imp(linha,79,dm.IBDetNotaLOTE.value);
RDprint1.imp(linha,95,dm.IBDetNotaST.value);
RDprint1.imp(linha,99,DM.IBDetNotaMEDIDA.value);
RDprint1.impval(linha,107,´#0´,DM.IBDetNotaQUANT.value,[]);
RDprint1.impval(linha,123,´,0.00´, DM.IBDetNotaVALORUNITARIO.value,[]);
subtotal := DM.IBDetNotaQUANT.value * DM.IBDetNotaVALORUNITARIO.value;
total := total + subtotal;
RDprint1.impval(linha,145,´#,0.00´, subtotal, []);
RDprint1.imp(linha,156,dm.IBDetNotaICMS.text);
inc(linha);
DM.IBDetNota.next;
end;
RDprint1.impval(42,135,´,0.00´, DM.IBNotaTOTALNOTA.value,[]);
RDprint1.impval(42,02,´,0.00´, DM.IBNotaBASECALCULO.value,[]);
RDprint1.impval(42,30,´,0.00´, DM.IBNotaVALORICMS.value,[]);
RDprint1.impval(44,135,´,0.00´, DM.IBNotaTOTALNOTA.value,[]);
RDprint1.imp(46,96,´1´);
RDprint1.imp(46,105,dm.IBNotaPLACA.TEXT);
RDprint1.imp(58,110,´AA´ + ´ ´ + dm.IBNotaSELO.TEXT);
RDprint1.imp(53,02,´DSP CLIENTE ... ´ + dm.IBClientesDSP.TEXT);
RDprint1.imp(54,02,´DSP LCR ... 24330050009/99 ´);
RDprint1.imp(55,02,dm.IBNotaOBS3.TEXT);
RDprint1.impf(62,145,dm.IBNotaCODIGO.text,[expandido,negrito]);
RDprint1.fechar;
CLOSE;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)