Probleminha Com Etiquetas!
Olá Pessoal!
Estou fazendo um sistema comum de controle de estoque, onde eu tenho q gerar um certo número de etiquetas por produto. Até ai tudo bem.
o que eu Queria saber é se existe alguma tecnica para evitar ´Disperdicios´ de etiquetas. por Ex:
Eu tenho um cartela com 10 etiquetas, e só preciso imprimir 3 etiquetas
ficaram 7 etiquetas na cartela, como faço para na próxima impressão o programa imprimir apartir do 4 espaço da cartela?
Vou fazer as etiquetas no QuickReport do Delphi 6 utilizando Interbase.
Vou colocar no Quick uma banda dtail com 2 colunas, será q tem como eu deixar em branco as 3 primeiras linhas e imprimir a imformação apartir da 4 linha?
Gostaria de saber a opinião de v6, agradeço desde já....flw
Estou fazendo um sistema comum de controle de estoque, onde eu tenho q gerar um certo número de etiquetas por produto. Até ai tudo bem.
o que eu Queria saber é se existe alguma tecnica para evitar ´Disperdicios´ de etiquetas. por Ex:
Eu tenho um cartela com 10 etiquetas, e só preciso imprimir 3 etiquetas
ficaram 7 etiquetas na cartela, como faço para na próxima impressão o programa imprimir apartir do 4 espaço da cartela?
Vou fazer as etiquetas no QuickReport do Delphi 6 utilizando Interbase.
Vou colocar no Quick uma banda dtail com 2 colunas, será q tem como eu deixar em branco as 3 primeiras linhas e imprimir a imformação apartir da 4 linha?
Gostaria de saber a opinião de v6, agradeço desde já....flw
Daniel Martins
Curtidas 0
Respostas
Daniel Martins
08/03/2006
Problema Resolvido!
Fiz um Formulário onde o usuário informa qtas etiquetas ele quer imprimir, e tbm qtos espaços em branco tem na cartela.
por ex:
Imprimir 5 etiquetas
a cartela tem 3 espaços em branco
entao eu monto em um ClientDataSet Virtual os 3 registros em branco e os 5 registros com o codigo de barras e imprimo no quick com uma banda detail direcionada para o ClientDataSet Normal.
Fiz um Formulário onde o usuário informa qtas etiquetas ele quer imprimir, e tbm qtos espaços em branco tem na cartela.
por ex:
Imprimir 5 etiquetas
a cartela tem 3 espaços em branco
entao eu monto em um ClientDataSet Virtual os 3 registros em branco e os 5 registros com o codigo de barras e imprimo no quick com uma banda detail direcionada para o ClientDataSet Normal.
GOSTEI 0
Helio Nascimento
08/03/2006
Caro amigo DAniel S Martins
Voce poderia postar aqui a seu codigo da solução?
Voce poderia postar aqui a seu codigo da solução?
GOSTEI 0
Daniel Martins
08/03/2006
naum sei como eu coloco img mas o código da unit é esse:
unit ufrmConfEtiqueta;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DB, DBClient, Grids, DBGrids, Mask,
DBCtrls;
type
TfrmConfEtiqueta = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Bevel1: TBevel;
Bevel2: TBevel;
btnImprirmir: TBitBtn;
Label8: TLabel;
cdsEtiquetas: TClientDataSet;
cdsEtiquetasBARRAS: TStringField;
BitBtn1: TBitBtn;
edtBarras: TEdit;
cdsConfEtiqueta: TClientDataSet;
cdsConfEtiquetaNUMETIQUETAS: TIntegerField;
cdsConfEtiquetaESPACOS: TIntegerField;
cdsConfEtiquetaALTURAFOLHA: TIntegerField;
cdsConfEtiquetaLARGURAFOLHA: TIntegerField;
cdsConfEtiquetaNUMCOLUNAS: TIntegerField;
cdsConfEtiquetaMARGEMSUPERIOR: TIntegerField;
cdsConfEtiquetaMARGEMINFERIOR: TIntegerField;
dsConfEtiqueta: TDataSource;
edtNumEtiquetas: TDBEdit;
edtNumEspacos: TDBEdit;
edtAlturaFolha: TDBEdit;
edtLarguraFolha: TDBEdit;
edtNumColunas: TDBEdit;
edtMargemSuperior: TDBEdit;
edtMargemInferiror: TDBEdit;
Label9: TLabel;
edtMargemEsquerda: TDBEdit;
Label10: TLabel;
edtMargemDireita: TDBEdit;
cdsConfEtiquetaMARGEMESQUERDA: TIntegerField;
cdsConfEtiquetaMARGEMDIREITA: TIntegerField;
procedure btnImprirmirClick(Sender: TObject);
procedure edtNumEtiquetasExit(Sender: TObject);
procedure edtNumEspacosExit(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Procedure ValoresDefault;
Procedure GeraRegistrosEtiquetas;
end;
var
frmConfEtiqueta: TfrmConfEtiqueta;
implementation
uses uQrpEtiquetas;
{$R *.dfm}
{ TForm1 }
procedure TfrmConfEtiqueta.ValoresDefault;
begin
edtNumEtiquetas.Text :=´0´ ;
edtNumEspacos.Text :=´0´ ;
edtNumColunas.Text :=´02´ ;
edtAlturaFolha.Text :=´297´;
edtLarguraFolha.Text :=´210´;
edtMargemSuperior.Text :=´10´ ;
edtMargemInferiror.Text :=´10´ ;
edtMargemEsquerda.Text :=´10´ ;
edtMargemDireita.Text :=´10´ ;
end;
procedure TfrmConfEtiqueta.btnImprirmirClick(Sender: TObject);
begin
//testes iniciais, excluir lixos
if cdsConfEtiqueta.State in [dsEdit,dsInsert] then
begin
cdsConfEtiqueta.Post;
end;
GeraRegistrosEtiquetas;
//Cria a Impressão
QrpEtiquetas:=TQrpEtiquetas.create(self);
try
(* carrega Configurações*)
//Tipo de Papel
//QrpEtiquetas.Page.PaperSize:=Custom;
//Altura e Largura
QrpEtiquetas.Page.Length :=StrToInt(edtAlturaFolha.Text);
QrpEtiquetas.Page.Width :=StrToInt(edtLarguraFolha.Text);
//Número de Colunas
QrpEtiquetas.Page.Columns:=StrToInt(edtNumColunas.Text);
//Margens
QrpEtiquetas.Page.TopMargin :=StrToInt(edtMargemSuperior.Text );
QrpEtiquetas.Page.BottomMargin :=StrToInt(edtMargemInferiror.Text);
QrpEtiquetas.Page.LeftMargin :=StrToInt(edtMargemEsquerda.Text );
QrpEtiquetas.Page.RightMargin :=StrToInt(edtMargemDireita.Text );
//Mostra a impressão
QrpEtiquetas.Preview;
Finally
//Limpa
QrpEtiquetas.Free;
end;
end;
procedure TfrmConfEtiqueta.edtNumEtiquetasExit(Sender: TObject);
begin
if edtNumEtiquetas.Text = ´´ then
begin
edtNumEtiquetas.Text := ´0´;
end;
end;
procedure TfrmConfEtiqueta.edtNumEspacosExit(Sender: TObject);
begin
if edtNumEspacos.Text = ´´ then
begin
edtNumEspacos.Text := ´0´;
end;
end;
procedure TfrmConfEtiqueta.GeraRegistrosEtiquetas;
var
NumEtiquetas, EspacosVazios,x:Integer;
begin
NumEtiquetas:=0; EspacosVazios:=0;
NumEtiquetas :=StrToInt(edtNumEtiquetas.Text);
EspacosVazios:=StrToInt(edtNumEspacos.Text);
if not cdsEtiquetas.IsEmpty then
begin
cdsEtiquetas.First;
while not cdsEtiquetas.Eof do
begin
cdsEtiquetas.Delete;
end;
end;
for x:=0 to EspacosVazios-1 do
begin
cdsEtiquetas.Insert;
// cdsEtiquetasBARRAS.AsString:=edtBarras.Text;
cdsEtiquetas.Post;
end;
for x:=0 to NumEtiquetas-1 do
begin
cdsEtiquetas.Insert;
cdsEtiquetasBARRAS.AsString:=edtBarras.Text;
cdsEtiquetas.Post;
end;
cdsEtiquetas.Close;
cdsEtiquetas.Open;
end;
procedure TfrmConfEtiqueta.BitBtn2Click(Sender: TObject);
begin
GeraRegistrosEtiquetas;
end;
procedure TfrmConfEtiqueta.BitBtn1Click(Sender: TObject);
begin
if cdsConfEtiqueta.IsEmpty then
begin
cdsConfEtiqueta.Insert;
ValoresDefault;
cdsConfEtiqueta.Post;
end;
if not cdsConfEtiqueta.IsEmpty then
begin
cdsConfEtiqueta.Edit;
ValoresDefault;
cdsConfEtiqueta.Post;
end;
end;
end.GOSTEI 0
Daniel Martins
08/03/2006
Espero q seja de ajuda
GOSTEI 0
Helio Nascimento
08/03/2006
Amigo DAniel S Martins
Resolveu. Obrigado pela sua atenção..
Saudações/Hélio
Resolveu. Obrigado pela sua atenção..
Saudações/Hélio
GOSTEI 0