Fórum Delphi 7 , Imprimir em uma Bematech 4200 , #454206
04/09/2013
0
Estou desenvolvendo um tela que imprime Ticket 78mm x 40mm
No seguinte esquema
NOME DA EMPRESA - label1 Data - label4
CNPJ - label 2 Hora - label5
ENDEREÇO - label3
CAIXA COM OPÇÕES - combobox1 CAIXA COM AS QUANTIDADES - combobox2
Como crio o botão "IMPRIMIR" , para que no cupom saia a label 1, label 2 , label 3 , label 4 , label 5 e no combobox1 seleciona o item na lista e no combobox2 a quantidade do item, mas porem a quantidade determina o numero de cupom que a impressora BEMATECH 4200 irá imprimir e cortar.
Se alguém puder me ajudar Aguardo
Dario Tebaldi
Curtir tópico
+ 0Posts
04/09/2013
Marcos Oliveira
Ficaria mais ou menos assim:
var
i: Integer;
begin
RichEdit1.Lines.Add(Label1.Caption);
RichEdit1.Lines.Add(Label2.Caption);
RichEdit1.Lines.Add(Label3.Caption);
RichEdit1.Lines.Add(Label4.Caption);
RichEdit1.Lines.Add(Label5.Caption);
if PrintDialog1.Execute then
begin
for i := 0 to StrToInt(ComboBox2.Text) - 1 do
RichEdit1.Print('');
end;
end;
Espero ter ajuado.
Att,
Marcos
Gostei + 0
05/09/2013
Dario Tebaldi
Muito obrigado, deu certinho...
Só preciso de uma orientação, ao voltar na tela para imprimir novos TICKETs, fica gravado o anterior se mandar imprimir novamente imprimi o anterior e o atual na mesma pagina , tem um comando que ao clicar em OK (para imprimir na tela do printDialog) quando voltar no FORM apagar o que tem escrito no RichEdit.
Aguardo, e mais uma vez Obrigado!
Gostei + 0
05/09/2013
Marcos Oliveira
RichEdit1.Clear;
ou
RichEdit1.Lines.Clear;
Os dois códigos funcionam.
Att,
Marcos
Gostei + 0
05/09/2013
Dario Tebaldi
Perfeito...
Obrigado!
Gostei + 0
05/09/2013
Marcos Oliveira
Gostei + 0
10/09/2013
Dario Tebaldi
Estou com um programa e estou tentando compilar ele, mas esta dando acusando a ultima linha já tentei varios procedimentos e não passa dessas ultimas linhas, pode me ajudar e verificar se há algum erro, segue abaixo:
program LANCHONETE;
uses
Forms,
unmenu in 'UNMENU.PAS' ,
uncadprodutos in 'uncadprodutos.pas' ,
uncadgrupos in 'uncadgrupos.pas' ,
uncadfornecedores in 'uncadfornecedores.pas' ,
uncadfuncionarios in 'uncadfuncionarios.pas' ,
uncadclientes in 'uncadclientes.pas' ,
unvendas in 'UNVENDAS.PAS' ,
unbalcao in 'UNBALCAO.PAS' ,
unconpedidos in 'unconpedidos.pas' ,
uncaixadiario in 'uncaixadiario.pas' ,
unConfig in 'unConfig.pas' ,
unQrClientes in 'unQrClientes.pas' {qrClientes: TQuickRep},
unQrFornecedores in 'unQrFornecedores.pas' {qrFornecedores: TQuickRep},
unQrFuncionarios in 'unQrFuncionarios.pas' {qrFuncionarios: TQuickRep},
unQrGrupos in 'unQrGrupos.pas' {qrGrupos: TQuickRep},
unQrProdutos in 'unQrProdutos.pas' {qrProdutos: TQuickRep},
unQrConsumidos in 'unQrConsumidos.pas' {qrConsumidos: TQuickRep},
unQrCaixa in 'unQrCaixa.pas' {qrCaixa: TQuickRep},
unMovimento in 'unMovimento.pas' ,
unConProdutos in 'unConProdutos.pas' ,
unQrEstoque in 'unQrEstoque.pas' {qrEstoque: TQuickRep},
unSobre in 'unSobre.pas' ; ------------------------------------esta linha para a RUN
{$R *.res}
begin -------------------------------------------aqui tambem trava
Application.Initialize;
Application.Title := 'LANCHONETE';
Application.CreateForm(TfrmPrincipal, frmPrincipal);
Application.Run;
end.
Aguardo, obrigado!
Gostei + 0
10/09/2013
Marcos Oliveira
Att,
Marcos
Gostei + 0
10/09/2013
Dario Tebaldi
Gostei + 0
10/09/2013
Marcos Oliveira
Se sim, certifique-se que você os instalou corretamente, e se estão presentes na Library Path do Delphi.
Se não estiver usando nenhum componente da RXLib, procure a Unit RXCtrls no seu form principal e exclua ela da declaração "Uses".
Att,
Marcos
Gostei + 0
10/09/2013
Dario Tebaldi
Como posso diminuir este espaçamento para encaixar em uma bobina 78mm e também diminuir o espaço das linhas deixar padrão, ao final da impressão a impressora cortar a pagina:
procedure TfrmVendas.btnF5Click(Sender: TObject);
var Impressora : TextFile;
i :Integer;
begin
AssignFile(Impressora,frmprincipal.vImp1);
Rewrite(Impressora);
Write(Impressora,#15);
WriteLn(Impressora);
WriteLn(Impressora);
WriteLn(Impressora,Format('%-50s',[frmprincipal.vEmpresa]));
WriteLn(Impressora,Format('%-50s',[frmprincipal.vEndereco + ' - ' + frmprincipal.vBairro]));
WriteLn(Impressora,Format('%-50s',[frmprincipal.vCidade + ' - Fone: ' + frmprincipal.vFone]));
WriteLn(Impressora,Format('%-50s',['-----------------------------------------------------------']));
WriteLn(Impressora,Format('%-50s',['Pedido No.: ' + inttostr(tabpedidosCodigo.AsInteger)]));
WriteLn(Impressora,Format('%-50s',['Nome......: ' + tabpedidosNome.Value]));
WriteLn(Impressora,Format('%-50s',['Endereco..: ' + tabpedidosEndereco.Value]));
WriteLn(Impressora,Format('%-50s',['Referencia: ' + tabpedidosReferencia.Value]));
WriteLn(Impressora,Format('%-50s',['Bairro....: ' + tabpedidosBairro.Value + ' ' + 'Fone: ' + tabpedidosTelefone.Value]));
WriteLn(Impressora,Format('%-30s',['Data......: ' + datetostr(date) + ' ' + 'Hora: ' + timetostr(now)]));
WriteLn(Impressora);
WriteLn(Impressora,Format('%-50s',['QTDE. PRODUTO VALOR UN VALOR TOTAL']));
WriteLn(Impressora,Format('%-50s',['-----------------------------------------------------------']));
tabprodpedidos.First;
while not(tabprodpedidos.eof) do begin
if tabprodpedidosQuantidade.Value = 0.5 then
Write(Impressora,Format('%-6.5s',['1/2']))
else if tabprodpedidosQuantidade.Value = 0.33 then
Write(Impressora,Format('%-6.5s',['1/3']))
else if tabprodpedidosQuantidade.Value = 0.25 then
Write(Impressora,Format('%-6.5s',['1/4']))
else
Write(Impressora,Format('%-6.5s',[FloatToStr(tabprodpedidosQuantidade.Value)]));
Write(Impressora,Format('%-30.30s',[tabprodpedidosNomeProduto.Value]));
Write(Impressora,Format('%-12.2m',[tabprodpedidosValor.Value]));
WriteLn(Impressora,Format('%-2m',[tabprodpedidosValorTotal.Value]));
tabprodpedidos.Next;
end;
WriteLn(Impressora);
WriteLn(Impressora,Format('%-50s',['Obs.: ' + tabpedidosObs1.Value]));
WriteLn(Impressora,Format('%-50s',[' ' + tabpedidosObs2.Value]));
Write(Impressora,#15);
Write(Impressora,Format('%-36.31s',['TAXA DE ENTREGA.:']));
Write(Impressora,#18);
WriteLn(Impressora,Format('%2m',[tabpedidosAcrescimo.Value]));
Write(Impressora,#15);
Write(Impressora,Format('%-36.31s',['TOTAL DO PEDIDO.:']));
Write(Impressora,#18);
WriteLn(Impressora,Format('%2m',[tabpedidosTotal.Value]));
Write(Impressora,#15);
Write(Impressora,Format('%-36.31s',['VALOR A SER PAGO:']));
Write(Impressora,#18);
WriteLn(Impressora,Format('%2m',[tabpedidosPago.Value]));
Write(Impressora,#15);
Write(Impressora,Format('%-36.31s',['TROCO...........:']));
Write(Impressora,#18);
WriteLn(Impressora,Format('%2m',[tabpedidosTroco.Value]));
Write(Impressora,#15);
WriteLn(Impressora,Format('%-50s',['-----------------------------------------------------------']));
WriteLn(Impressora,Format('%-50s',['Entregador: ' + tabpedidosEntregador.Value]));
WriteLn(Impressora,Format('%-50s',['AGRADECEMOS A PREFERENCIA !']));
for i:=0 to StrToInt(vEspaco) do
WriteLn(Impressora);
System.Close(Impressora);
end;
Aguardo, Obrigado!
Gostei + 0
10/09/2013
Marcos Oliveira
Quanto a cortar o papel, você tem que enviar um comando para a impressora.
Consulte o tópico abaixo da Bematech, e veja se vai te atender.
[url]http://partners.bematech.com.br/2011/06/edicao-75-acionando-a-guilhotina-na-minimpressora-nao-fiscal/[/url]
Se não conseguir, me fale.
Att,
Marcos
Gostei + 0
10/09/2013
Dario Tebaldi
Gostei + 0
10/09/2013
Marcos Oliveira
Você arrumando isso, pode ser que resolva o problema do espaçamento entre linhas.
Att,
Marcos
Gostei + 0
11/09/2013
Dario Tebaldi
Sabe como resolver este erro :
tabconfpedidos: Cannot perform this operation on a closed dataset
Obrigado
Gostei + 0
11/09/2013
Marcos Oliveira
Você está tentando acessar uma tabela que está fechada. Você deve dar um "active := true" nela.
Att,
Marcos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)