Criar etiqueta no Delphi FastReport
Vamos utilizar dentro do fr3:
- 1 - BarCode
- 1 - MasterData;
- 1 - TFrxMemoView
Ajustar as propriedades ColumnsGap, Columns, ColumnsWidth de acordo com o tamanho das etiquetas que vocês irão necessitar
No BarCode tem que ser definido o BarType, e os campos de conexão com o banco de dados;
Normalmente no OnBeforePrint eu utilizo esse código ( Para não exibir o código de barras caso esteja em branco para não aparecer um código invalido ).
Vamos criar um TForm nele vamos colocar
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
BarCode2.Visible := <> '';
end;
Vamos criar um TForm nele vamos colocar
- 3 - TBitBtn;
- 1 - TClientDataSet; ( Ou no caso de vocês uma tabela de conexão com o banco de dados )
- 1 - TfrxReport;
- 1 - TfrxDBDataset;
- 1 - TfrxBarCodeObject;
Vamos colocar em tela assim
Agora vamos criar um função para verificar se o arquivo .fr3 existe
function TFSistema.Ler_Arquivo(AArquivo: String): Boolean;
var
lCaminho: String;
begin
lCaminho := ExtractFilePath(Application.ExeName) + 'Relatórios\' + AArquivo;
Result := FileExists(lCaminho);
if Result then
frxReport.LoadFromFile(lCaminho)
else Exception.Create('A pasta relatórios não pôde ser criada!' + SlineBreaK +
'Verifique as permissões de acesso com o Administrador da rede!');
end;
No evento de OnClick do botão Visualizar colocar o código abaixo e acrescenta o mesmo evento no do imprimir;
procedure TFSistema.btnVisualizarClick(Sender: TObject);
begin
if CDSEtiquetas_Teste.IsEmpty then begin
Application.MessageBox(Pchar('Seleção sem registros'), Pchar(Caption), MB_ICONINFORMATION + MB_OK + MB_DEFBUTTON1 + MB_SYSTEMMODAL);
Exit;
end;
if Ler_Arquivo('Etiquetas_6x16.fr3') then begin
frxTable.DataSet := CDSEtiquetas_Teste; {Joga a tabela de etiquetas para o relaório}
if Sender = btnVisualizar then
frxReport.ShowReport
else begin
frxReport.PrepareReport;
frxReport.Print;
end;
end;
end;
Resultado da impressão
Exemplo: Download do exemplo
bom dia.
ResponderExcluircomo eu faço para começar a imprimir da segunda etiqueta em diante, levando em consideração que a primeira já foi impressa
Imprimir as etiquetas lado a lado? E pela propriedade "Columns" do MasterData. Se não for isso fala ai.
ExcluirComo posso passar o número para o relatório para ser gerado o código de barras, sem ser pelo dataset ?
ResponderExcluirSem ser por DataSet acredito que não a como, pois outra forma seria por variável e assim todas etiquetas ficariam com o mesmo código de barras. Se descobrir outro modo escreve aqui.
ExcluirVALEU
ResponderExcluirDe nada :)
Excluircomo faço pra alterar o tipo de código de barras (EAN 13, etc...) em tempo de código antes da impressão...
ResponderExcluirNa parte do código do .Fr3 coloque o código entre o "Begin" e o "end" um isso utilize uma variável ou um combo antes de exibir o relatório para pedir qual o tipo dele ex:
Excluir( Se não der para compreender direito avisa ai faço um post sobre isso )
begin
case of
0 : BarCode2.BARTYPE := bcCode_2_5_industrial;
1 : BarCode2.BARTYPE := bcCode_2_5_interleaved;
2 : BarCode2.BARTYPE := bcCode_2_5_matrix;
3 : BarCode2.BARTYPE := bcCode128A;
4 : BarCode2.BARTYPE := bcCode128B;
5 : BarCode2.BARTYPE := bcCode128C;
6 : BarCode2.BARTYPE := bcCode39;
7 : BarCode2.BARTYPE := bcCode39Extended;
8 : BarCode2.BARTYPE := bcCode93;
9 : BarCode2.BARTYPE := bcCode93Extended;
10 : BarCode2.BARTYPE := bcCodeCodabar;
11 : BarCode2.BARTYPE := bcCodeEAN128A;
12 : BarCode2.BARTYPE := bcCodeEAN128B;
13 : BarCode2.BARTYPE := bcCodeEAN128C;
14 : BarCode2.BARTYPE := bcCodeEAN13;
15 : BarCode2.BARTYPE := bcCodeEAN8;
16 : BarCode2.BARTYPE := bcCodeMSI;
17 : BarCode2.BARTYPE := bcCodePostNet;
18 : BarCode2.BARTYPE := bcCodeUPC_A;
19 : BarCode2.BARTYPE := bcCodeUPC_E0;
20 : BarCode2.BARTYPE := bcCodeUPC_E1;
21 : BarCode2.BARTYPE := bcCodeUPC_Supp2;
22 : BarCode2.BARTYPE := bcCodeUPC_Supp5;
end;
De uma olhada nesse artigo http://anaprogramadorajunior.blogspot.com.br/2016/08/criar-etiqueta-no-fastreport_7.html
ExcluirResponda la se ajudou :)
Excelente Artigo me ajudou muito! mas tenho uma dúvida.
ResponderExcluirComo eu faria para imprimir de acordo com a quantidade que o usuário deseja?
Por exemplo: 3 etiquetas do produto x
Para ajudar melhor criei um exemplo no post
Excluirhttp://anaprogramadorajunior.blogspot.com.br/2016/08/criar-etiqueta-no-fastreport.html
Escreve la se ajudou
Muito Obrigado pela ajuda.
ResponderExcluir:)
Excluirnossa me ajudou muito, Obrigadooo !!!
ResponderExcluirshow, ate parece que fui que fiz
ResponderExcluirEu tenho problemas na segunda etiqueta em diante. No preview parede que vai da super certo. A etiqueta da fábricante tem 1 cm de margem nas quatro partes. Alterar a margem a direita e esquerda. Até aí tudo bem. Só que a margem ao topo de 1cm, tudo que faço nada da certo. Se coloco 1 cm a primeira linha da etiqueta fica ótimo. Porem a segunda linha não sai no local certo. Uso modelo desta estiqueta https://www.prontoprint.com.br/tag-em-papel-mod-jtc249-2500-tags-com-38-x-50mm
ResponderExcluirEra como se eu precisasse de mais um espaço pra descer pra segunda linha
Oie! Não sai no local certo? Não e o espaçamento entre as etiquetas? Se o espaço entre elas estiver errado ou ate mesmo o tamanho da etiqueta em si na próxima linha tende a ir mais para cima ou para baixo! Tem como enviar uma imagem de como esta saindo na segunda linha?
ExcluirBoa tarde! Parabens pelo artigo. Fiz um alteração no projeto para etiquetas com 3 colunas para imprimir em uma impressora de Gondola a ELGIN L42 na porta USB e quando mando a impressão sai em branco as etiquetas. Tem idéia do que pode ser? Agora se enviar de outro computador pela rede com a impressora compartilhada dá certo. Isso só acontece se a impressão for pelo micro onde a impressora está fisicamente instalada.
ResponderExcluirBoa tarde! Tentou verificar se os drives da impressora estão corretos? Ou tentar reinstalar?
ExcluirConsegui imprimir alterando a propriedade Endlessheight para true mas só sai a primeira fileira de etiquetas. tipo são 5 fileiras e só imprime a primeira. o que pode ser?
ExcluirA banda que estão os dados das etiquetas estão vinculados a um DataSet?(Tarja laranja). Verifica como estão as configurações de pagina do seu documento. Talvez tem contem alguma propriedade invalida. Pois a propriedade "Endlessheight" serve para para ser uma "altura sem fim "
ExcluirNa verdade está imprimindo a ultima fileira e não a primeira. Depois que percebi.
ExcluirOlá boa tarde! como faz para mudar a cor do código de barras?
ResponderExcluirolá qual a propriedade que deixa o textbox1 lado a lado? ou é na banda?
ResponderExcluirBoa noite! E na banda na propriedade "Columns"
ExcluirTenho relatório, mais mande imprimir as 3 colunas a elgin L42 empura etiquetas em branco
ResponderExcluirSe mandar a margem ou tamanho da etiqueta errado ele pode pular as etiquetas, tenta diminuir o tamanho dela
ExcluirCara que informação preciosa, parabéns amigo você é o mestre dos magos só que melhor que não desaparece quando agente precisa.
ResponderExcluirDesculpa Ana Paula, eu muito idiota acabei sendo machista, só porque não vi o seu nome digitei AMIGO e você é uma AMIGA, deve ter sido motivado pela pequena quantidade de moças desenvolvedoras, mas nada justifica meu machismo, mesmo que sem intenção, mais uma vez me desculpe.
ExcluirBom dia! kkkk Coisas que acontecem em uma área de maioria masculina
ExcluirOlá Ana. Estou precisando de uma ajuda. Então, como faço pra selecionar o produto em um DBGrid1 e mandar pra outra DBGrid2 e desta DBGrid2 gerar as etiquetas?
ResponderExcluirBoa tarde! Cria faz dois clientDataSet um com todos os produtos e outro em branco, coloca uma botão que quando adionar no segundo clientDataSet apaga do outro.
ExcluirOlá, Ana! Montei uma etiqueta seguindo seus tutoriais, só que estou com um problema. Quando vou fazer a impressão das etiquetas (etiqueta térmica duas colunas) as duas primeiras etiquetas saem corretas, mas as etiquetas da sequência saem fora das etiquetas como vc pode ver nessa foto - https://prnt.sc/1ao0qgv
ResponderExcluirPoderia me dar uma dica de onde estou errando?
Bom dia! Isso e margem tenta aumentar um pouco o tamanho da etiqueta ou as margens superior
ExcluirBom dia, Ana! Muito obrigado por sua resposta. Vou tentar aumentar a margem e se não funcionar o tamanho da etiqueta,
ExcluirBoa tarde, Ana! Fui alterando as margens e consegui fazer funcionar, o problema é que se eu coloco 20 etiquetas imprime corretamente, mas se ultrapassar as 20 o conteúdo começa a ser impresso fora da etiqueta.
ExcluirSempre que ocorre isso e problema de margem, por so ocorrer depois da 20º etiqueta provavel que seja a minima coisa que esta fora, talves uma margem superior que esteja milimeto errada
ExcluirMais uma vez obrigado! Estou fazendo os testes reduzindo a margem pouco a pouco pra ver se dá certo, pq pelo que notei quando chega na etiqueta 21/22 ela começa a imprimir mais embaixo e vai assim até a impressão ficar em duas etiquetas.
ExcluirMuito obrigado! Ajudou muito este seu exemplo.
ResponderExcluirolá!
ResponderExcluiruma perguntinha como faço para poder gera a quantidade da mesma etiqueta?
por exemplo: tenho um produto "MEIA" e dela que só gere 10 etiquetas do mesmo produto. como faço isso?
Ola boa tarde! De uma olhada nesse post que tem uma dica de como pode ser feito
Excluirhttps://anaprogramadorajunior.blogspot.com/2021/10/criar-etiqueta-e-definindo-quantidades.html
Parabéns pelo blog. Suas postagens ajudam muito. Sucesso na sua vida! Até mais
ResponderExcluir