Pular para o conteúdo principal

Curso Fast Report - Aula 07.1 - Pulando etiquetas

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.


Comentários