Nota fiscal
Olá pessoal!
Estou com algumas dúvidas:
1º Como faço para incluir o nº do pedido numa NF?
2º Como faço para incluir o nº da NF no canhoto?
3º Como faço para ajustar o espaçamento entre os caracteres na NF?
Tenho o código mas preciso fazer estas alterações.
Segue abaixo o código.
procedure TfmACFT1150.CancelarNF1Click(Sender: TObject);
begin
inherited;
Application.MessageBox(´O cancelamento de uma NF libera o processo para ser aproveitado em outra nota. A NF cancelada não podera ser reaproveitada´,´ATENÇÃO´,mb_iconwarning + mb_ok);
Application.CreateForm(TfmACFT1155,fmACFT1155);
fmACFT1155.ShowModal;
Close;
end;
procedure TfmACFT1150.ConsultarImpressas1Click(Sender: TObject);
begin
inherited;
iAuxTag := 5522;
Application.CreateForm(TfmACPV2105,fmACPV2105);
fmACPV2105.ShowModal;
end;
procedure TfmACFT1150.pPrint_Cabecalho;
begin
with RAWPrinter do
begin
BeginDoc;
//--- Padrao Epson FX ---//
WriteStr(#27 + 64); // limpar buffer e inicializar
WriteStr(27 + 67 + 0 + 12); // tamanho do formulario
WriteStr(27 + 15); // condensada
WriteStr(27 + ´A´ + 11); // espacamento entre linhas
LF;
LF;
LF;
if dmFaturamento.qyFATURAMENTO_MATRIXNATUREZA_OPERACAO.AsString = ´S´ then
WriteStr(´ X ´ + FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger)) //Saída
else
WriteStr(´ X ´ + FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger)); //Entrada
LF;
LF;
LF;
LF;
WriteStr(#27 + ´A´ + 11); // espacamento entre linhas
LF;
LF;
LF;
// LF;
// LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(edCFOP_DESCRICAO.Text),68,0));
WriteStr(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´CFOP´).AsString);
LF;
LF;
LF; //**
WriteStr(´ ´+fPrintText(fTiraAcento(edRazao.Text),130,0));
if Trim(edCNPJ.Text) = ´´ then
WriteStr(fPrintText(´ISENTO´,27,0)) //20
else
WriteStr(fPrintText(fFormataCNPJ(edCNPJ.Text),27,0)); //20
WriteStr(DateToStr(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´DT_EMISSAO_NF´).AsDateTime));
LF;
LF; //**
WriteStr(´ ´ + fPrintText(fTiraAcento(edEndereco.Text + ´,´ + edComplemento.Text),89,0)); //76
WriteStr(fPrintText(fTiraAcento(edBairro.Text),26,0));
if Trim(edCEP.Text) <> ´´ then
WriteStr(fPrintText(FormatFloat(´00000-000´,StrToFloat(edCEP.Text)),10,0));
WriteStr(´ ´+ DateToStr(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´DT_ENTRADA_NF´).AsDateTime));
LF;
LF;
WriteStr(´ ´+fPrintText(fTiraAcento(edCidade.Text),92,0)); //62
WriteStr(fPrintText((´(´ + dmFaturamento.qyClientes_Matrix.FieldByName(´DDD´).AsString + ´)´ + dmFaturamento.qyClientes_Matrix.FieldByName(´TELEFONE1´).AsString),19,0));
WriteStr(fPrintText(edUF.Text,07,0));
if Trim(edIE.Text) = ´´ then
WriteStr(fPrintText(´ISENTO´,50,0)) //45
else
WriteStr(fPrintText(edIE.Text,50,0)); //45
WriteStr(#27 + ´A´ + 14); // espacamento entre linhas
LF;
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
LF;
LF;
WriteStr(#27 + ´A´ + 08); // espacamento entre linhas
end;
end;
procedure TfmACFT1150.pPrint_Detalhe;
var
nValorTotal,nValorIPI : real;
sAliqICMS,sValorIPI,sIPI: string;
n,iLin,iLin2,i,h1 : integer;
begin
lPrintOK := False;
iLin := 24;
iLin2 := 0;
with RAWPrinter do
begin
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
// LF;
// LF;
WriteStr(27 + ´A´ + 8); // espacamento entre linhas
if mmOBSERVACOES.Lines.Count <> 0 then
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.Post;
for i := 0 to (mmOBSERVACOES.Lines.Count - 1) do
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.FieldByName(´OBSERVACAO´).AsString := mmOBSERVACOES.Lines[i];
dmPedidos.rxmPedidos_Itens.Post;
end;
end;
if (nAliqICMS = 7) or (nAliqICMS = 12) then
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.Post;
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.FieldByName(´OBSERVACAO´).AsString := ´BC RED. CONF. ART. 22 CONV. ICMS 24/91´;
dmPedidos.rxmPedidos_Itens.Post;
end;
dmPedidos.rxmPedidos_Itens.First;
while not dmPedidos.rxmPedidos_Itens.Eof do
begin
if Trim(dmPedidos.rxmPedidos_Itens.FieldByName(´CODPRODUTO´).AsString) <> ´´ then
begin
nValorTotal := (dmPedidos.rxmPedidos_Itens.FieldByName(´QUANTIDADE_FT´).AsFloat * dmPedidos.rxmPedidos_Itens.FieldByName(´PRECO_VD´).AsFloat);
nValorIPI := (nValorTotal * (dmPedidos.rxmPedidos_Itens.FieldByName(´IPI´).AsFloat / 100));
WriteStr(´ ´ + fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CODPRODUTO´).AsString,8,1));
WriteStr(´ ´ + fPrintText(fTiraAcento(dmPedidos.rxmPedidos_Itens.FieldByName(´DESC_NCM´).AsString),60,0)); //60
dmPedidos.rxmPedidos_Itens.Edit;
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CF´).AsString,2,0));
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CLASS_FISC´).AsString,4,0));
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´ST´).AsString,9,0)); //6
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´UNIDADE´).AsString,6,0));
WriteStr(fPrintText(FormatFloat(´#´,dmPedidos.rxmPedidos_Itens.FieldByName(´QUANTIDADE_FT´).AsFloat),11,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmPedidos.rxmPedidos_Itens.FieldByName(´PRECO_VD´).AsFloat),14,0));
WriteStr(fPrintText(FormatFloat(´#,0.00´,nValorTotal),18,0));
sAliqICMS:= FloatToStr(nAliqICMS);
WriteStr(fPrintText(sAliqICMS,6,0));
sIPI:= FloatToStr(dmPedidos.rxmPedidos_Itens.FieldByName(´IPI´).AsFloat);
WriteStr(fPrintText(sIPI,4,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,nValorIPI),5,1));
iLin2 := iLin2 + 1;
end;
LF;
dmPedidos.rxmPedidos_Itens.Next;
if (iLin2 > 18)and not(dmPedidos.rxmPedidos_Itens.eof) then
begin
LF;
LF;
LF;
LF;
pPrint_rodape;
pPrint_cabecalho;
iLin2 := 0;
end
else
LF;
// iLin2 := iLin2 + 1;
end;
while iLin2 < 18 do
begin
iLin2 := iLin2 + 1;
LF;
LF;
WriteStr(´ ´);
end;
end;
with RAWPrinter do
begin
WriteStr(#27 + ´A´ + 24); // espacamento entre linhas. Valor Antigo: 20
LF;
LF;
WriteStr(27 + ´A´ + 20); // espacamento entre linhas. Valor Antigo: 16
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMSSUBS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMSSUBS´).AsFloat),35,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsFloat),40,1));
LF;
WriteStr(fPrintText(FormatFloat(´#,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORFRETE´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORSEGURO´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_OUTRASDESPESAS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALIPI´).AsFloat),35,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALNF´).AsFloat),40,1));
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
LF;
LF;
WriteStr(27 + ´A´ + 20); // espacamento entre linhas
WriteStr(´ ´ + fPrintText(fTiraAcento(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´RAZAO´).AsString),113,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TIPOFRETE´).AsString,9,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TRANSPORTADORA_PLACA´).AsString,17,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TRANSPORTADORA_UF´).AsString,5,0));
WriteStr(fPrintText(fFormataCNPJ(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´CNPJCPF´).AsString),20,0));
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento((dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´ENDERECO´).AsString + ´,´ + dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´COMPLEMENTO´).AsString)),103,0));
WriteStr(fPrintText(fTiraAcento(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´CIDADE´).AsString),36,0));
WriteStr(fPrintText(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´UF´).AsString,5,0));
WriteStr(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´IERG´).AsString);
LF;
WriteStr(´ ´ + fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´QUANTIDADE´).AsString,27,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´ESPECIE´).AsString,35,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´MARCA´).AsString,30,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NUMERO´).AsString,30,0));
WriteStr(fPrintText(FormatFloat(´#,0.000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´PESOBRUTO´).AsFloat) + ´Kg´,27,0));
WriteStr(FormatFloat(´,0.000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´PESOLIQUIDO´).AsFloat) + ´Kg´);
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
for i := 0 to (mmDadosAdicionais.Lines.Count - 1) do
begin
LF;
WriteStr(´ ´ + mmDadosAdicionais.Lines[i]);
end;
for h1 := i to 09 do LF;
NextPage;
EndDoc;
BeginDoc;
WriteStr(#27 + 64); // limpar buffer e inicializar
WriteStr(18); // cancelar condensada
EndDoc;
end;
end;
procedure TfmACFT1150.pPrint_rodape;
var
i:integer;
cCf : array[0..8] of string;
begin
with RAWPrinter do
begin
WriteStr(27 + ´A´ + 11); // espacamento entre linhas
LF;
WriteStr(27 + ´A´ + 7); // espacamento entre linhas. Valor Antigo: 16
LF;
WriteStr(27 + ´A´ + 15); // espacamento entre linhas. Valor Antigo: 16
LF;
WriteStr(27 + ´A´ + 18); // espacamento entre linhas. Valor Antigo: 16
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMS´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMS´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsCurrency),25,1)); // preenchimento apenas
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsCurrency),30,1)); // preenchimento apenas
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsCurrency),30,1));
LF;
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORFRETE´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORSEGURO´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_OUTRASDESPESAS´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALIPI´).AsCurrency),30,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALNF´).AsCurrency),30,1));
LF;
LF;
WriteStr(´ ´+fPrintText(´*********************************´,79,0));
WriteStr(fPrintText(´**´,5,0));
WriteStr(fPrintText(´*******´,15,0));
WriteStr(fPrintText(´**´,8,0));
WriteStr(fPrintText(´***************´,20,0));
LF;
WriteStr(´ ´+fPrintText(´********************************´,72,0));
WriteStr(fPrintText(´*******************´,29,0));
WriteStr(fPrintText(´**´,5,0));
WriteStr(´****************´);
LF;
WriteStr(#27 + ´A´ + 07); // espacamento entre linhas. Valor Antigo: 16
LF;
LF;
WriteStr(´ ´+fPrintText(´**********´,10,0));
WriteStr(´ ´+fPrintText(´**********´,14,0));
WriteStr(´ ´+fPrintText(´**********´,16,0));
WriteStr(´ ´+fPrintText(´**********´,12,0));
WriteStr(´ ´+fPrintText(´**********´,17,0));
WriteStr(´ ´+fPrintText(´**********´,18,0));
LF;
WriteStr(´ ´+fPrintText(´**********´,10,0));
WriteStr(´ ´+fPrintText(´**********´,14,0));
WriteStr(´ ´+fPrintText(´**********´,16,0));
WriteStr(´ ´+fPrintText(´**********´,12,0));
WriteStr(´ ´+fPrintText(´**********´,17,0));
WriteStr(´ ´+fPrintText(´**********´,18,0));
LF;
WriteStr(´ ´+fPrintText(´**********´,10,0));
WriteStr(´ ´+fPrintText(´**********´,14,0));
WriteStr(´ ´+fPrintText(´**********´,16,0));
WriteStr(´ ´+fPrintText(´**********´,12,0));
WriteStr(´ ´+fPrintText(´**********´,17,0));
WriteStr(´ ´+fPrintText(´**********´,18,0));
LF;
WriteStr(´ ´+fPrintText(´**********´,10,0));
WriteStr(´ ´+fPrintText(´**********´,14,0));
WriteStr(´ ´+fPrintText(´**********´,16,0));
WriteStr(´ ´+fPrintText(´**********´,12,0));
WriteStr(´ ´+fPrintText(´**********´,17,0));
WriteStr(´ ´+fPrintText(´**********´,18,0));
WriteStr(#27 + ´A´ + 09); // espacamento entre linhas
LF;
for i := 0 to 8 do //(mmDadosAdicionais.Lines.Count - 1) do
begin
LF;
// WriteStr(´ ´ + copy(fTiraAcento(cCF[i]),1,33) +´ ´+ fTiraAcento(mmDadosAdicionais2.Lines[i]));
end;
WriteStr(´ pedido n.: ´+fPrintText(dmFaturamento.qyFATURAMENTO_MATRIXPEDIDOCLIENTE.AsString,20,0));
//rxmdFiscal.Close;
LF;
LF;
LF;
LF;
LF;
WriteStr(´ ´ + fPrintText(FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger),185,1));
NextPage;
end;
end;
procedure TfmACFT1150.pPrint;
var
nValorTotal,nValorIPI : real;
sAliqICMS,sValorIPI,sIPI: string;
n,iLin,i,h1 : integer;
begin
lPrintOK := False;
iLin := 24;
try
begin
with RAWPrinter do
begin
BeginDoc;
//--- Padrao Epson FX --
WriteStr(#27 + 64); // limpar buffer e inicializar
WriteStr(27 + 67 + 0 + 12); // tamanho do formulario
WriteStr(27 + 15); // condensada
LF;
LF;
LF;
LF;
LF;
WriteStr(#27 + ´A´ + 24); // espacamento entre linhas
//* VERIFICAR SE SEMPRE VAI SER NOTA DE SAIDA
if dmFaturamento.qyFATURAMENTO_MATRIXNATUREZA_OPERACAO.AsString = ´S´ then
begin
WriteStr(´ X´);
WriteStr(fPrintText(FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger),40,1));
end
else
begin
WriteStr(´ X´);
WriteStr(´ ´+fPrintText(FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger),40,1));
end;
LF;
LF;
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(dmVisualizacoesFAT.qyNaturezaOPLOOK.FieldByName(´DESCRICAO´).AsString),75,0));
WriteStr(dmVisualizacoesFAT.qyNaturezaOPLOOK.FieldByName(´CFOP´).AsString);
WriteStr(#27 + ´A´ + 20); // espacamento entre linhas
LF;
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(edRazao.Text),126,0));
WriteStr(fPrintText(fFormataCNPJ(edCNPJ.Text),36,0));
WriteStr(DateToStr(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´DT_EMISSAO_NF´).AsDateTime));
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(edEndereco.Text),102,0));
WriteStr(fPrintText(fTiraAcento(edBairro.Text),40,0));
if Trim(edCEP.Text) <> ´´ then
WriteStr(fPrintText(FormatFloat(´00000-000´,StrToFloat(edCEP.Text)),25,0));
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(edCidade.Text),85,0));
WriteStr(fPrintText((´(´ + dmFaturamento.qyClientes_Matrix.FieldByName(´DDD´).AsString + ´)´ + dmFaturamento.qyClientes_Matrix.FieldByName(´TELEFONE1´).AsString),30,0));
WriteStr(fPrintText(edUF.Text,10,0));
WriteStr(fPrintText(edIE.Text,20,0));
LF;
LF;
// WriteStr(´ (´ + fExtenso(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALNF´).AsFloat) + ´)´);
WriteStr(#27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
LF;
LF;
//VERIFICAR ESSA OPÇÃO QUE NÃO TEM NA TABELA TEMP. SOMENTE NA TABELA DE CLIENTES
if mmOBSERVACOES.Lines.Count <> 0 then
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.Post;
for i := 0 to (mmOBSERVACOES.Lines.Count - 1) do
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.FieldByName(´OBSERVACAO´).AsString := mmOBSERVACOES.Lines[i];
dmPedidos.rxmPedidos_Itens.Post;
end;
end;
if (nAliqICMS = 7) or (nAliqICMS = 12) then
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.Post;
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.FieldByName(´OBSERVACAO´).AsString := ´BC RED. CONF. ART. 22 CONV. ICMS 24/91´;
dmPedidos.rxmPedidos_Itens.Post;
end;
dmPedidos.rxmPedidos_Itens.First;
for n := 1 to iLin do
begin
if not dmPedidos.rxmPedidos_Itens.Eof then
begin
if Trim(dmPedidos.rxmPedidos_Itens.FieldByName(´CODPRODUTO´).AsString) <> ´´ then
begin
nValorTotal := (dmPedidos.rxmPedidos_Itens.FieldByName(´QUANTIDADE_FT´).AsFloat * dmPedidos.rxmPedidos_Itens.FieldByName(´PRECO_VD´).AsFloat);
nValorIPI := (nValorTotal * (dmPedidos.rxmPedidos_Itens.FieldByName(´IPI´).AsFloat / 100));
WriteStr(´ ´ + fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CODPRODUTO´).AsString,8,1));
WriteStr(´ ´ + fPrintText(fTiraAcento(dmPedidos.rxmPedidos_Itens.FieldByName(´DESC_NCM´).AsString),64,0));
dmPedidos.rxmPedidos_Itens.Edit;
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CLASS_FISC´).AsString,4,0));
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´ST´).AsString,6,0));
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´UNIDADE´).AsString,6,0));
WriteStr(fPrintText(FormatFloat(´#´,dmPedidos.rxmPedidos_Itens.FieldByName(´QUANTIDADE_FT´).AsFloat),11,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmPedidos.rxmPedidos_Itens.FieldByName(´PRECO_VD´).AsFloat),14,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,nValorTotal),18,0));
sAliqICMS:= FloatToStr(nAliqICMS);
WriteStr(fPrintText(sAliqICMS,6,0));
sIPI:= FloatToStr(dmPedidos.rxmPedidos_Itens.FieldByName(´IPI´).AsFloat);
WriteStr(fPrintText(sIPI,4,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,nValorIPI),5,1));
end;
LF;
dmPedidos.rxmPedidos_Itens.Next;
end
else
begin
LF;
end;
end;
WriteStr(#27 + ´A´ + 20); // espacamento entre linhas. Valor Antigo: 16
LF;
LF;
WriteStr(27 + ´A´ + 20); // espacamento entre linhas. Valor Antigo: 16
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMSSUBS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMSSUBS´).AsFloat),35,1));
WriteStr(fPrintText(FormatFloat(´#,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsFloat),40,1));
LF;
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORFRETE´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORSEGURO´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_OUTRASDESPESAS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALIPI´).AsFloat),35,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALNF´).AsFloat),40,1));
WriteStr(#27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
LF;
LF;
WriteStr(27 + ´A´ + 20); // espacamento entre linhas
WriteStr(´ ´ + fPrintText(fTiraAcento(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´RAZAO´).AsString),113,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TIPOFRETE´).AsString,9,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TRANSPORTADORA_PLACA´).AsString,17,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TRANSPORTADORA_UF´).AsString,5,0));
WriteStr(fPrintText(fFormataCNPJ(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´CNPJCPF´).AsString),20,0));
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento((dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´ENDERECO´).AsString + ´,´ + dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´COMPLEMENTO´).AsString)),103,0));
WriteStr(fPrintText(fTiraAcento(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´CIDADE´).AsString),36,0));
WriteStr(fPrintText(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´UF´).AsString,5,0));
WriteStr(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´IERG´).AsString);
LF;
WriteStr(´ ´ + fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´QUANTIDADE´).AsString,27,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´ESPECIE´).AsString,35,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´MARCA´).AsString,30,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NUMERO´).AsString,30,0));
WriteStr(fPrintText(FormatFloat(´#,0.000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´PESOBRUTO´).AsFloat) + ´Kg´,27,0));
WriteStr(FormatFloat(´#,0.000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´PESOLIQUIDO´).AsFloat) + ´Kg´);
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
for i := 0 to (mmDadosAdicionais.Lines.Count - 1) do
begin
LF;
WriteStr(´ ´ + mmDadosAdicionais.Lines[i]);
end;
for h1 := i to 09 do LF;
//***************************************
WriteStr(´ ´ + fPrintText(FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger),185,1));
//*******************************************
NextPage;
EndDoc;
end;
end;
RAWPrinter.BeginDoc;
RAWPrinter.WriteStr(27 + 64); // limpar buffer e inicializar
RAWPrinter.WriteStr(#18); // cancelar condensada
RAWPrinter.EndDoc;
finally
if not lPrintTest then
begin
lPrintOK := True;
lPrintFirst := True;
pDIU(´I´);
end;
//pOpen;
//pClose;
end;
end;
procedure TfmACFT1150.ImprimirTesteNF1Click(Sender: TObject);
begin
inherited;
lPrintTest := True;
pPrint;
end;
Sei que é grande mas sou iniciante e estou perdida.
Por favor me ajudem!!!!!!!!!!!!
Estou com algumas dúvidas:
1º Como faço para incluir o nº do pedido numa NF?
2º Como faço para incluir o nº da NF no canhoto?
3º Como faço para ajustar o espaçamento entre os caracteres na NF?
Tenho o código mas preciso fazer estas alterações.
Segue abaixo o código.
procedure TfmACFT1150.CancelarNF1Click(Sender: TObject);
begin
inherited;
Application.MessageBox(´O cancelamento de uma NF libera o processo para ser aproveitado em outra nota. A NF cancelada não podera ser reaproveitada´,´ATENÇÃO´,mb_iconwarning + mb_ok);
Application.CreateForm(TfmACFT1155,fmACFT1155);
fmACFT1155.ShowModal;
Close;
end;
procedure TfmACFT1150.ConsultarImpressas1Click(Sender: TObject);
begin
inherited;
iAuxTag := 5522;
Application.CreateForm(TfmACPV2105,fmACPV2105);
fmACPV2105.ShowModal;
end;
procedure TfmACFT1150.pPrint_Cabecalho;
begin
with RAWPrinter do
begin
BeginDoc;
//--- Padrao Epson FX ---//
WriteStr(#27 + 64); // limpar buffer e inicializar
WriteStr(27 + 67 + 0 + 12); // tamanho do formulario
WriteStr(27 + 15); // condensada
WriteStr(27 + ´A´ + 11); // espacamento entre linhas
LF;
LF;
LF;
if dmFaturamento.qyFATURAMENTO_MATRIXNATUREZA_OPERACAO.AsString = ´S´ then
WriteStr(´ X ´ + FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger)) //Saída
else
WriteStr(´ X ´ + FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger)); //Entrada
LF;
LF;
LF;
LF;
WriteStr(#27 + ´A´ + 11); // espacamento entre linhas
LF;
LF;
LF;
// LF;
// LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(edCFOP_DESCRICAO.Text),68,0));
WriteStr(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´CFOP´).AsString);
LF;
LF;
LF; //**
WriteStr(´ ´+fPrintText(fTiraAcento(edRazao.Text),130,0));
if Trim(edCNPJ.Text) = ´´ then
WriteStr(fPrintText(´ISENTO´,27,0)) //20
else
WriteStr(fPrintText(fFormataCNPJ(edCNPJ.Text),27,0)); //20
WriteStr(DateToStr(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´DT_EMISSAO_NF´).AsDateTime));
LF;
LF; //**
WriteStr(´ ´ + fPrintText(fTiraAcento(edEndereco.Text + ´,´ + edComplemento.Text),89,0)); //76
WriteStr(fPrintText(fTiraAcento(edBairro.Text),26,0));
if Trim(edCEP.Text) <> ´´ then
WriteStr(fPrintText(FormatFloat(´00000-000´,StrToFloat(edCEP.Text)),10,0));
WriteStr(´ ´+ DateToStr(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´DT_ENTRADA_NF´).AsDateTime));
LF;
LF;
WriteStr(´ ´+fPrintText(fTiraAcento(edCidade.Text),92,0)); //62
WriteStr(fPrintText((´(´ + dmFaturamento.qyClientes_Matrix.FieldByName(´DDD´).AsString + ´)´ + dmFaturamento.qyClientes_Matrix.FieldByName(´TELEFONE1´).AsString),19,0));
WriteStr(fPrintText(edUF.Text,07,0));
if Trim(edIE.Text) = ´´ then
WriteStr(fPrintText(´ISENTO´,50,0)) //45
else
WriteStr(fPrintText(edIE.Text,50,0)); //45
WriteStr(#27 + ´A´ + 14); // espacamento entre linhas
LF;
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
LF;
LF;
WriteStr(#27 + ´A´ + 08); // espacamento entre linhas
end;
end;
procedure TfmACFT1150.pPrint_Detalhe;
var
nValorTotal,nValorIPI : real;
sAliqICMS,sValorIPI,sIPI: string;
n,iLin,iLin2,i,h1 : integer;
begin
lPrintOK := False;
iLin := 24;
iLin2 := 0;
with RAWPrinter do
begin
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
// LF;
// LF;
WriteStr(27 + ´A´ + 8); // espacamento entre linhas
if mmOBSERVACOES.Lines.Count <> 0 then
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.Post;
for i := 0 to (mmOBSERVACOES.Lines.Count - 1) do
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.FieldByName(´OBSERVACAO´).AsString := mmOBSERVACOES.Lines[i];
dmPedidos.rxmPedidos_Itens.Post;
end;
end;
if (nAliqICMS = 7) or (nAliqICMS = 12) then
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.Post;
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.FieldByName(´OBSERVACAO´).AsString := ´BC RED. CONF. ART. 22 CONV. ICMS 24/91´;
dmPedidos.rxmPedidos_Itens.Post;
end;
dmPedidos.rxmPedidos_Itens.First;
while not dmPedidos.rxmPedidos_Itens.Eof do
begin
if Trim(dmPedidos.rxmPedidos_Itens.FieldByName(´CODPRODUTO´).AsString) <> ´´ then
begin
nValorTotal := (dmPedidos.rxmPedidos_Itens.FieldByName(´QUANTIDADE_FT´).AsFloat * dmPedidos.rxmPedidos_Itens.FieldByName(´PRECO_VD´).AsFloat);
nValorIPI := (nValorTotal * (dmPedidos.rxmPedidos_Itens.FieldByName(´IPI´).AsFloat / 100));
WriteStr(´ ´ + fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CODPRODUTO´).AsString,8,1));
WriteStr(´ ´ + fPrintText(fTiraAcento(dmPedidos.rxmPedidos_Itens.FieldByName(´DESC_NCM´).AsString),60,0)); //60
dmPedidos.rxmPedidos_Itens.Edit;
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CF´).AsString,2,0));
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CLASS_FISC´).AsString,4,0));
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´ST´).AsString,9,0)); //6
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´UNIDADE´).AsString,6,0));
WriteStr(fPrintText(FormatFloat(´#´,dmPedidos.rxmPedidos_Itens.FieldByName(´QUANTIDADE_FT´).AsFloat),11,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmPedidos.rxmPedidos_Itens.FieldByName(´PRECO_VD´).AsFloat),14,0));
WriteStr(fPrintText(FormatFloat(´#,0.00´,nValorTotal),18,0));
sAliqICMS:= FloatToStr(nAliqICMS);
WriteStr(fPrintText(sAliqICMS,6,0));
sIPI:= FloatToStr(dmPedidos.rxmPedidos_Itens.FieldByName(´IPI´).AsFloat);
WriteStr(fPrintText(sIPI,4,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,nValorIPI),5,1));
iLin2 := iLin2 + 1;
end;
LF;
dmPedidos.rxmPedidos_Itens.Next;
if (iLin2 > 18)and not(dmPedidos.rxmPedidos_Itens.eof) then
begin
LF;
LF;
LF;
LF;
pPrint_rodape;
pPrint_cabecalho;
iLin2 := 0;
end
else
LF;
// iLin2 := iLin2 + 1;
end;
while iLin2 < 18 do
begin
iLin2 := iLin2 + 1;
LF;
LF;
WriteStr(´ ´);
end;
end;
with RAWPrinter do
begin
WriteStr(#27 + ´A´ + 24); // espacamento entre linhas. Valor Antigo: 20
LF;
LF;
WriteStr(27 + ´A´ + 20); // espacamento entre linhas. Valor Antigo: 16
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMSSUBS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMSSUBS´).AsFloat),35,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsFloat),40,1));
LF;
WriteStr(fPrintText(FormatFloat(´#,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORFRETE´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORSEGURO´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_OUTRASDESPESAS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALIPI´).AsFloat),35,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALNF´).AsFloat),40,1));
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
LF;
LF;
WriteStr(27 + ´A´ + 20); // espacamento entre linhas
WriteStr(´ ´ + fPrintText(fTiraAcento(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´RAZAO´).AsString),113,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TIPOFRETE´).AsString,9,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TRANSPORTADORA_PLACA´).AsString,17,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TRANSPORTADORA_UF´).AsString,5,0));
WriteStr(fPrintText(fFormataCNPJ(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´CNPJCPF´).AsString),20,0));
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento((dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´ENDERECO´).AsString + ´,´ + dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´COMPLEMENTO´).AsString)),103,0));
WriteStr(fPrintText(fTiraAcento(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´CIDADE´).AsString),36,0));
WriteStr(fPrintText(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´UF´).AsString,5,0));
WriteStr(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´IERG´).AsString);
LF;
WriteStr(´ ´ + fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´QUANTIDADE´).AsString,27,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´ESPECIE´).AsString,35,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´MARCA´).AsString,30,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NUMERO´).AsString,30,0));
WriteStr(fPrintText(FormatFloat(´#,0.000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´PESOBRUTO´).AsFloat) + ´Kg´,27,0));
WriteStr(FormatFloat(´,0.000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´PESOLIQUIDO´).AsFloat) + ´Kg´);
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
for i := 0 to (mmDadosAdicionais.Lines.Count - 1) do
begin
LF;
WriteStr(´ ´ + mmDadosAdicionais.Lines[i]);
end;
for h1 := i to 09 do LF;
NextPage;
EndDoc;
BeginDoc;
WriteStr(#27 + 64); // limpar buffer e inicializar
WriteStr(18); // cancelar condensada
EndDoc;
end;
end;
procedure TfmACFT1150.pPrint_rodape;
var
i:integer;
cCf : array[0..8] of string;
begin
with RAWPrinter do
begin
WriteStr(27 + ´A´ + 11); // espacamento entre linhas
LF;
WriteStr(27 + ´A´ + 7); // espacamento entre linhas. Valor Antigo: 16
LF;
WriteStr(27 + ´A´ + 15); // espacamento entre linhas. Valor Antigo: 16
LF;
WriteStr(27 + ´A´ + 18); // espacamento entre linhas. Valor Antigo: 16
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMS´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMS´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsCurrency),25,1)); // preenchimento apenas
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsCurrency),30,1)); // preenchimento apenas
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsCurrency),30,1));
LF;
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORFRETE´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORSEGURO´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_OUTRASDESPESAS´).AsCurrency),25,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALIPI´).AsCurrency),30,1));
WriteStr(fPrintText(FormatFloat(´***********´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALNF´).AsCurrency),30,1));
LF;
LF;
WriteStr(´ ´+fPrintText(´*********************************´,79,0));
WriteStr(fPrintText(´**´,5,0));
WriteStr(fPrintText(´*******´,15,0));
WriteStr(fPrintText(´**´,8,0));
WriteStr(fPrintText(´***************´,20,0));
LF;
WriteStr(´ ´+fPrintText(´********************************´,72,0));
WriteStr(fPrintText(´*******************´,29,0));
WriteStr(fPrintText(´**´,5,0));
WriteStr(´****************´);
LF;
WriteStr(#27 + ´A´ + 07); // espacamento entre linhas. Valor Antigo: 16
LF;
LF;
WriteStr(´ ´+fPrintText(´**********´,10,0));
WriteStr(´ ´+fPrintText(´**********´,14,0));
WriteStr(´ ´+fPrintText(´**********´,16,0));
WriteStr(´ ´+fPrintText(´**********´,12,0));
WriteStr(´ ´+fPrintText(´**********´,17,0));
WriteStr(´ ´+fPrintText(´**********´,18,0));
LF;
WriteStr(´ ´+fPrintText(´**********´,10,0));
WriteStr(´ ´+fPrintText(´**********´,14,0));
WriteStr(´ ´+fPrintText(´**********´,16,0));
WriteStr(´ ´+fPrintText(´**********´,12,0));
WriteStr(´ ´+fPrintText(´**********´,17,0));
WriteStr(´ ´+fPrintText(´**********´,18,0));
LF;
WriteStr(´ ´+fPrintText(´**********´,10,0));
WriteStr(´ ´+fPrintText(´**********´,14,0));
WriteStr(´ ´+fPrintText(´**********´,16,0));
WriteStr(´ ´+fPrintText(´**********´,12,0));
WriteStr(´ ´+fPrintText(´**********´,17,0));
WriteStr(´ ´+fPrintText(´**********´,18,0));
LF;
WriteStr(´ ´+fPrintText(´**********´,10,0));
WriteStr(´ ´+fPrintText(´**********´,14,0));
WriteStr(´ ´+fPrintText(´**********´,16,0));
WriteStr(´ ´+fPrintText(´**********´,12,0));
WriteStr(´ ´+fPrintText(´**********´,17,0));
WriteStr(´ ´+fPrintText(´**********´,18,0));
WriteStr(#27 + ´A´ + 09); // espacamento entre linhas
LF;
for i := 0 to 8 do //(mmDadosAdicionais.Lines.Count - 1) do
begin
LF;
// WriteStr(´ ´ + copy(fTiraAcento(cCF[i]),1,33) +´ ´+ fTiraAcento(mmDadosAdicionais2.Lines[i]));
end;
WriteStr(´ pedido n.: ´+fPrintText(dmFaturamento.qyFATURAMENTO_MATRIXPEDIDOCLIENTE.AsString,20,0));
//rxmdFiscal.Close;
LF;
LF;
LF;
LF;
LF;
WriteStr(´ ´ + fPrintText(FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger),185,1));
NextPage;
end;
end;
procedure TfmACFT1150.pPrint;
var
nValorTotal,nValorIPI : real;
sAliqICMS,sValorIPI,sIPI: string;
n,iLin,i,h1 : integer;
begin
lPrintOK := False;
iLin := 24;
try
begin
with RAWPrinter do
begin
BeginDoc;
//--- Padrao Epson FX --
WriteStr(#27 + 64); // limpar buffer e inicializar
WriteStr(27 + 67 + 0 + 12); // tamanho do formulario
WriteStr(27 + 15); // condensada
LF;
LF;
LF;
LF;
LF;
WriteStr(#27 + ´A´ + 24); // espacamento entre linhas
//* VERIFICAR SE SEMPRE VAI SER NOTA DE SAIDA
if dmFaturamento.qyFATURAMENTO_MATRIXNATUREZA_OPERACAO.AsString = ´S´ then
begin
WriteStr(´ X´);
WriteStr(fPrintText(FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger),40,1));
end
else
begin
WriteStr(´ X´);
WriteStr(´ ´+fPrintText(FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger),40,1));
end;
LF;
LF;
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(dmVisualizacoesFAT.qyNaturezaOPLOOK.FieldByName(´DESCRICAO´).AsString),75,0));
WriteStr(dmVisualizacoesFAT.qyNaturezaOPLOOK.FieldByName(´CFOP´).AsString);
WriteStr(#27 + ´A´ + 20); // espacamento entre linhas
LF;
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(edRazao.Text),126,0));
WriteStr(fPrintText(fFormataCNPJ(edCNPJ.Text),36,0));
WriteStr(DateToStr(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´DT_EMISSAO_NF´).AsDateTime));
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(edEndereco.Text),102,0));
WriteStr(fPrintText(fTiraAcento(edBairro.Text),40,0));
if Trim(edCEP.Text) <> ´´ then
WriteStr(fPrintText(FormatFloat(´00000-000´,StrToFloat(edCEP.Text)),25,0));
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento(edCidade.Text),85,0));
WriteStr(fPrintText((´(´ + dmFaturamento.qyClientes_Matrix.FieldByName(´DDD´).AsString + ´)´ + dmFaturamento.qyClientes_Matrix.FieldByName(´TELEFONE1´).AsString),30,0));
WriteStr(fPrintText(edUF.Text,10,0));
WriteStr(fPrintText(edIE.Text,20,0));
LF;
LF;
// WriteStr(´ (´ + fExtenso(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALNF´).AsFloat) + ´)´);
WriteStr(#27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
LF;
LF;
//VERIFICAR ESSA OPÇÃO QUE NÃO TEM NA TABELA TEMP. SOMENTE NA TABELA DE CLIENTES
if mmOBSERVACOES.Lines.Count <> 0 then
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.Post;
for i := 0 to (mmOBSERVACOES.Lines.Count - 1) do
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.FieldByName(´OBSERVACAO´).AsString := mmOBSERVACOES.Lines[i];
dmPedidos.rxmPedidos_Itens.Post;
end;
end;
if (nAliqICMS = 7) or (nAliqICMS = 12) then
begin
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.Post;
dmPedidos.rxmPedidos_Itens.Append;
dmPedidos.rxmPedidos_Itens.FieldByName(´OBSERVACAO´).AsString := ´BC RED. CONF. ART. 22 CONV. ICMS 24/91´;
dmPedidos.rxmPedidos_Itens.Post;
end;
dmPedidos.rxmPedidos_Itens.First;
for n := 1 to iLin do
begin
if not dmPedidos.rxmPedidos_Itens.Eof then
begin
if Trim(dmPedidos.rxmPedidos_Itens.FieldByName(´CODPRODUTO´).AsString) <> ´´ then
begin
nValorTotal := (dmPedidos.rxmPedidos_Itens.FieldByName(´QUANTIDADE_FT´).AsFloat * dmPedidos.rxmPedidos_Itens.FieldByName(´PRECO_VD´).AsFloat);
nValorIPI := (nValorTotal * (dmPedidos.rxmPedidos_Itens.FieldByName(´IPI´).AsFloat / 100));
WriteStr(´ ´ + fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CODPRODUTO´).AsString,8,1));
WriteStr(´ ´ + fPrintText(fTiraAcento(dmPedidos.rxmPedidos_Itens.FieldByName(´DESC_NCM´).AsString),64,0));
dmPedidos.rxmPedidos_Itens.Edit;
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´CLASS_FISC´).AsString,4,0));
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´ST´).AsString,6,0));
WriteStr(fPrintText(dmPedidos.rxmPedidos_Itens.FieldByName(´UNIDADE´).AsString,6,0));
WriteStr(fPrintText(FormatFloat(´#´,dmPedidos.rxmPedidos_Itens.FieldByName(´QUANTIDADE_FT´).AsFloat),11,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmPedidos.rxmPedidos_Itens.FieldByName(´PRECO_VD´).AsFloat),14,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,nValorTotal),18,0));
sAliqICMS:= FloatToStr(nAliqICMS);
WriteStr(fPrintText(sAliqICMS,6,0));
sIPI:= FloatToStr(dmPedidos.rxmPedidos_Itens.FieldByName(´IPI´).AsFloat);
WriteStr(fPrintText(sIPI,4,0));
WriteStr(fPrintText(FormatFloat(´,0.00´,nValorIPI),5,1));
end;
LF;
dmPedidos.rxmPedidos_Itens.Next;
end
else
begin
LF;
end;
end;
WriteStr(#27 + ´A´ + 20); // espacamento entre linhas. Valor Antigo: 16
LF;
LF;
WriteStr(27 + ´A´ + 20); // espacamento entre linhas. Valor Antigo: 16
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_BASEICMSSUBS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORICMSSUBS´).AsFloat),35,1));
WriteStr(fPrintText(FormatFloat(´#,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORPRODUTOS´).AsFloat),40,1));
LF;
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORFRETE´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORSEGURO´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_OUTRASDESPESAS´).AsFloat),30,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALIPI´).AsFloat),35,1));
WriteStr(fPrintText(FormatFloat(´,0.00´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´FATURAMENTO_VALORTOTALNF´).AsFloat),40,1));
WriteStr(#27 + ´A´ + 12); // espacamento entre linhas
LF;
LF;
LF;
LF;
WriteStr(27 + ´A´ + 20); // espacamento entre linhas
WriteStr(´ ´ + fPrintText(fTiraAcento(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´RAZAO´).AsString),113,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TIPOFRETE´).AsString,9,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TRANSPORTADORA_PLACA´).AsString,17,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´TRANSPORTADORA_UF´).AsString,5,0));
WriteStr(fPrintText(fFormataCNPJ(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´CNPJCPF´).AsString),20,0));
LF;
WriteStr(´ ´ + fPrintText(fTiraAcento((dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´ENDERECO´).AsString + ´,´ + dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´COMPLEMENTO´).AsString)),103,0));
WriteStr(fPrintText(fTiraAcento(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´CIDADE´).AsString),36,0));
WriteStr(fPrintText(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´UF´).AsString,5,0));
WriteStr(dmVisualizacoesFAT.qyTRANSPORTADORA.FieldByName(´IERG´).AsString);
LF;
WriteStr(´ ´ + fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´QUANTIDADE´).AsString,27,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´ESPECIE´).AsString,35,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´MARCA´).AsString,30,0));
WriteStr(fPrintText(dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NUMERO´).AsString,30,0));
WriteStr(fPrintText(FormatFloat(´#,0.000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´PESOBRUTO´).AsFloat) + ´Kg´,27,0));
WriteStr(FormatFloat(´#,0.000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´PESOLIQUIDO´).AsFloat) + ´Kg´);
WriteStr(27 + ´A´ + 12); // espacamento entre linhas
LF;
for i := 0 to (mmDadosAdicionais.Lines.Count - 1) do
begin
LF;
WriteStr(´ ´ + mmDadosAdicionais.Lines[i]);
end;
for h1 := i to 09 do LF;
//***************************************
WriteStr(´ ´ + fPrintText(FormatFloat(´000000´,dmFaturamento.qyFATURAMENTO_MATRIX.FieldByName(´NF´).AsInteger),185,1));
//*******************************************
NextPage;
EndDoc;
end;
end;
RAWPrinter.BeginDoc;
RAWPrinter.WriteStr(27 + 64); // limpar buffer e inicializar
RAWPrinter.WriteStr(#18); // cancelar condensada
RAWPrinter.EndDoc;
finally
if not lPrintTest then
begin
lPrintOK := True;
lPrintFirst := True;
pDIU(´I´);
end;
//pOpen;
//pClose;
end;
end;
procedure TfmACFT1150.ImprimirTesteNF1Click(Sender: TObject);
begin
inherited;
lPrintTest := True;
pPrint;
end;
Sei que é grande mas sou iniciante e estou perdida.
Por favor me ajudem!!!!!!!!!!!!
Helenavv
Curtidas 0