Ola pessoal, tudo bem com vocês? Este aula é só pra mostrar uma dica simples na impressão das etiquetas.
Problema: o usuário já removeu algumas etiquetas do formulários, e precisamos "pular" esses espaços. Veja um exemplo onde faltam 5 etiquetas:
Pra pular essas etiquetas, eu costumo gerar "registros falsos" na tabela temporária, e fazer um if durante a impressão. Veja como ficou o código no Delphi:
var
i, j: Integer;
x: String;
begin
// ABRE TABELA COM DADOS
qProdutos.Close;
qProdutos.SQL.Text := 'SELECT codigo, descricao, marca, preco_venda, ' +
'estoque, unidade, cod_barras FROM produtos';
qProdutos.Open;
// LIMPA TABELA TEMPORARIA
memDados.Close;
memDados.Open;
// PULAR ETIQUETAS DO INICIO
x := '0';
if InputQuery('Pular Etiquetas', 'Informe a quantidade de etiquetas a pular', x) then
begin
i := StrToIntDef(x, 0);
if i > 0 then
begin
for j := 1 to qProdutos.FieldByname('estoque').AsInteger do
begin
memDados.Append;
memDadosTexto1.AsString := 'X';
memDados.Post;
end;
end;
end;
while not qProdutos.Eof do
begin
for i := 1 to qProdutos.FieldByname('estoque').AsInteger do
begin
memDados.Append;
memDadosTexto1.AsString := qProdutos.FieldByname('codigo').AsString;
memDadosTexto2.AsString := qProdutos.FieldByname('descricao').AsString;
memDadosTexto3.AsString := qProdutos.FieldByname('marca').AsString;
memDadosTexto4.AsString := FormatFloat(',0.00', qProdutos.FieldByname('preco_venda').AsCurrency);
memDadosTexto5.AsString := qProdutos.FieldByname('cod_barras').AsString;
memDados.Post;
end;
qProdutos.Next;
end;
qProdutos.Close;
frxReport1.Clear;
frxReport1.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Etiquetas.fr3');
frxReport1.ShowReport;
end;
e como fica o código no FastReport, no beforePrint do MasterData:
Bom pessoal, é isso.
Problema: o usuário já removeu algumas etiquetas do formulários, e precisamos "pular" esses espaços. Veja um exemplo onde faltam 5 etiquetas:
Pra pular essas etiquetas, eu costumo gerar "registros falsos" na tabela temporária, e fazer um if durante a impressão. Veja como ficou o código no Delphi:
var
i, j: Integer;
x: String;
begin
// ABRE TABELA COM DADOS
qProdutos.Close;
qProdutos.SQL.Text := 'SELECT codigo, descricao, marca, preco_venda, ' +
'estoque, unidade, cod_barras FROM produtos';
qProdutos.Open;
// LIMPA TABELA TEMPORARIA
memDados.Close;
memDados.Open;
// PULAR ETIQUETAS DO INICIO
x := '0';
if InputQuery('Pular Etiquetas', 'Informe a quantidade de etiquetas a pular', x) then
begin
i := StrToIntDef(x, 0);
if i > 0 then
begin
for j := 1 to qProdutos.FieldByname('estoque').AsInteger do
begin
memDados.Append;
memDadosTexto1.AsString := 'X';
memDados.Post;
end;
end;
end;
while not qProdutos.Eof do
begin
for i := 1 to qProdutos.FieldByname('estoque').AsInteger do
begin
memDados.Append;
memDadosTexto1.AsString := qProdutos.FieldByname('codigo').AsString;
memDadosTexto2.AsString := qProdutos.FieldByname('descricao').AsString;
memDadosTexto3.AsString := qProdutos.FieldByname('marca').AsString;
memDadosTexto4.AsString := FormatFloat(',0.00', qProdutos.FieldByname('preco_venda').AsCurrency);
memDadosTexto5.AsString := qProdutos.FieldByname('cod_barras').AsString;
memDados.Post;
end;
qProdutos.Next;
end;
qProdutos.Close;
frxReport1.Clear;
frxReport1.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Etiquetas.fr3');
frxReport1.ShowReport;
end;
e como fica o código no FastReport, no beforePrint do MasterData:
Bom pessoal, é isso.
Comentários
Postar um comentário