Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flavioavilela

Imprimir Quickreport

Recommended Posts

galera, é o seguinte:

eu montei um formulário para que possa ser impresso umas etiquetas... eu coloco lá, os produtos que eu quero que seja impresso... esses dados estão sendo guardados dentro de uma query........ escolho em qual etiqueta desejo começar a imprimir e clico em imprimir e aparece o preview do quickreport..... os nomes dos produtos que eu escolhi pra imprimir estão todos lá, só que, por exemplo... eu tenho uma folha de etiqueta ai 3x10... e optei pra começar a impressão na coluna 1 linha 4...... quando clica no imprimir que aparece o preview do quickreport, aparece que vai ser impresso na coluna 1 linha 5....... se eu escolho pra imprimir na coluna 2 linha 7, quando clica no imprimir, que aparece o preview do quickreport, aparece que vai ser impresso na coluna 2 linha 9..... se eu escolho pra imprimr na coluna 3 linha 7, quando clica no imprimir, que aparece o preview do quickreport, aparece vai ser impresso na coluna 3 linha 10.... e assim por diante.... ou seja, sai tudo desconfigurado..... já mexi em tudo quanto é jeito e nao sai... já configurei o papel de várias formas, já troquei de folha de etiqueta e nao sai nada..... gostaria de sabe oq q pode estar acontecendo nisso...... segue abaixo, o código que estou utilizando para criar as etiquetas para ser escolhido e também o código de como estou informando as medidas do papel que estou imprimindo...:

 

cria etiqueta

procedure TFrmEtiquetas.CriaEtiqueta(NColuna, NLinha: integer);
var
  x, y: integer;
  LarguraColunas, AlturaColunas: double;
  Etiqueta: TLabel;
  Tag: integer;
  Esquerda, Topo: integer;
begin
  for x := PanelEtiquetas.ComponentCount - 1 downto 0 do
	begin
	  Etiqueta:= TLabel(PanelEtiquetas.Components[x]);
	  PanelEtiquetas.RemoveControl(Etiqueta);
	  Etiqueta.Parent:= nil;
	  Etiqueta.Free;
	  Etiqueta:= nil;
	end;
	PanelEtiquetas.Refresh;

	LarguraColunas:= PanelEtiquetas.Width/NColuna;
	AlturaColunas:= PanelEtiquetas.Height/NLinha;
	Tag:= 0;
	Esquerda:= 0;
	Topo:= 0;

	for x := 1 to NColuna do
	  begin
		for y := 1 to NLinha do
		  begin
			inc(tag);
			Etiqueta:= TLabel.Create(PanelEtiquetas);
			Etiqueta.Alignment:= taCenter;
			Etiqueta.Parent:= PanelEtiquetas;
			Etiqueta.AutoSize:= false;
			Etiqueta.Height:= Trunc(AlturaColunas);
			Etiqueta.Width:= Trunc(LarguraColunas);
			Etiqueta.Caption:= InttoStr(Tag);
			Etiqueta.Tag:= Tag;
			Etiqueta.Left:= Esquerda;
			Etiqueta.Top:= topo;
			Etiqueta.Color:= clSilver;
			Etiqueta.Visible:= true;
			Etiqueta.OnClick:= ClickEtiqueta;
			
			topo:= topo + Etiqueta.Height;
		  end;
			topo:= 0;
			Esquerda:= Esquerda + Etiqueta.Width;  
	  end;
	   
end;

informa as medidas do papel

procedure TFrmEtiquetas.BBtnImprimirClick(Sender: TObject);
begin
  //qtde colunas
  FrmEtiquetas_Produtos.QuickRep1.Page.Columns:= dm.qrycadastro_etiquetasEtiqueta_Linha.AsInteger;

  //Altura etiqueta
  FrmEtiquetas_Produtos.QRExpr1.Size.Height := dm.qrycadastro_etiquetasAltura_Etiqueta.AsFloat * 10;

  //Largura etiqueta
  FrmEtiquetas_Produtos.QRExpr1.Size.Width := DM.qrycadastro_etiquetasLargura_Etiqueta.AsFloat * 10;

  //Altura coluna
  FrmEtiquetas_Produtos.QrDados.Size.Height:= dm.qrycadastro_etiquetasDistancia_Vertical.AsFloat * 10;

  //Largura coluna
  //mEtiquetas_Produtos.QrDados.Width:= dm.qrycadastro_etiquetasDistancia_Horizontal.AsFloat * 10;

  //Tamanho Fonte
  FrmEtiquetas_Produtos.QRExpr1.Font.Size:= dm.qrycadastro_etiquetasTamanho_Fonte.AsInteger;
  
  //Margem Esquerda
  FrmEtiquetas_Produtos.QuickRep1.Page.LeftMargin:= dm.qrycadastro_etiquetasMargem_Lateral.AsFloat * 10;

  //Margem direita
  FrmEtiquetas_Produtos.QuickRep1.Page.RightMargin:= dm.qrycadastro_etiquetasMargem_Lateral.AsFloat * 10;
  FrmEtiquetas_Produtos.QuickRep1.Page.Length:= 279.00;
  FrmEtiquetas_Produtos.QuickRep1.Page.Width:= 215.90;
  //margem superior
  FrmEtiquetas_Produtos.QuickRep1.Page.TopMargin:= dm.qrycadastro_etiquetasMargem_Superior.AsFloat * 10;

  //margem inferior
  FrmEtiquetas_Produtos.QuickRep1.Page.BottomMargin:= dm.qrycadastro_etiquetasMargem_Inferior.AsFloat * 10;

  FrmEtiquetas_Produtos.EtiquetaInicial:= EtiquetaSelecionada;
  FrmEtiquetas_Produtos.QuickRep1.Preview;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso já que armazena em BD, porque não insere itens em branco dentro do BD, sendo que cada um representa uma etiqueta, ordenando pelos mesmos, digamos que deseja que comece a impressão na coluna 1 linha 5, então teria de inserir 8 etiquetas em branco, para preencher os espaços superiores...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.