Fórum Distribuição dos Registro em Etiquetas ??? #279781
02/05/2005
0
Wly
Curtir tópico
+ 0Posts
02/05/2005
Gandalf.nho
Gostei + 0
02/05/2005
Wly
Então por gentilesa mostre este seu exemplo :?: E como devo fazer este tipo de lançamento em branco, não sabendo fazer isso ??? Exemplefique para mim ... Atencipadamente agradeço pela ajuda 8)
Gostei + 0
02/05/2005
Anfm
A solução que eu criei, não sei se é a mais correta, mas foi a solução q eu encontrei.
Eu crio um relatório no quick report usando qrlabels em vez de qrdblabels criando quantas colunas eu preciso.
Ex: 5 colunas - 5 QRLabels alinhados nas posições corretas de cada um.
Crio uma váriável para dizer qual linha do relatório estou
private CurrentIndex: integer;
No evento BeforePrint
procedure Tqretiqueta.QuickRepBeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); begin CurrentIndex := 0; tbetiqueta.DatabaseName := diretorio; tbetiqueta.Open; tbetiqueta.First; end;
E no evento OnNeedData
procedure Tqretiqueta.QuickRepNeedData(Sender: TObject; var MoreData: Boolean); var preco : string; begin MoreData := (not tbetiqueta.eof); if MoreData then begin qrlnomeloja1.Caption := NomeLoja; qrlcodbar11.Caption := ´*´+tbetiqueta.fieldbyname(´Referencia´).AsString+´*´; tbetiqueta.Next; qrlnomeloja2.Caption := NomeLoja; qrlcodbar21.Caption := ´*´+tbetiqueta.fieldbyname(´Referencia´).AsString+´*´; tbetiqueta.Next; qrlnomeloja3.Caption := NomeLoja; qrlcodbar31.Caption := ´*´+tbetiqueta.fieldbyname(´Referencia´).AsString+´*´; tbetiqueta.Next; end; Inc(CurrentIndex); end;
Espero ter ajudado.
Gostei + 0
02/05/2005
Wly
Como é que vc criou as cinco 5 colunas ??? de que forma em simple detail ??? Observe a procedure ...
procedure TFrmSelEtiqSapato.btnPreviewClick(Sender: TObject); Const SqlTmpEtiqSapato : String = //********** Seleção do Pedido para tabela temporaria ******** ´Select calcado as Referencia, cores.cor, tam33, tam34, ´+ ´tam35, tam36, tam37, tam38, tam39 ´+ ´from itens_ped_calcado,cores ´+ ´where itens_ped_calcado.cor=cores.cod_cor ´+ ´and itens_ped_calcado.pedcalcado=:prnPedido ´; SqlTmpPrintSapato : String = //************ Inserir os Sapatos na tabela temporaria ******* ´Insert Into Tmp_EtiqSapato (Referencia,Cor,Tamanho) Values ´+ ´(:prnReferencia,:prnCor,:prnTamanho) ´; SQL_Sapatos : String = ´Select Referencia,Cor,Tamanho From Tmp_EtiqSapato ´; var I,J,K,L,M,A,B : Integer; begin dm.tblsapato.EmptyTable; with dm.qrySelect do begin Close; SQL.Clear; SQL.Add(SqlTmpEtiqSapato); ParamByName(´prnPedido´).asInteger := StrToInt(edtPedido.text); Open; First; While not Eof do begin T33:= 0;T34:= 0;T35:= 0;T36:= 0;T37:= 0;T38:= 0;T39:= 0; T33 := FieldByName(´Tam33´).AsInteger; if T33 > 0 then for I:= 1 to T33 do begin With dm.qryTmpSelect do begin Close; SQL.Clear; SQL.Add(SqlTmpPrintSapato); ParamByName(´prnReferencia´).asString := dm.qrySelect.fieldbyName(´Referencia´).AsString; ParamByName(´prnCor´).asString := dm.qrySelect.fieldbyName(´Cor´).AsString; ParamByName(´prnTamanho´).asString := ´33´; ExecSQL; end; end; T34 := FieldByName(´Tam34´).AsInteger; if T34 > 0 then for J:= 1 to T34 do begin With dm.qryTmpSelect do begin Close; SQL.Clear; SQL.Add(SqlTmpPrintSapato); ParamByName(´prnReferencia´).asString := dm.qrySelect.fieldbyName(´Referencia´).AsString; ParamByName(´prnCor´).asString := dm.qrySelect.fieldbyName(´Cor´).AsString; ParamByName(´prnTamanho´).asString := ´34´; ExecSQL; end; end; T35 := FieldByName(´Tam35´).AsInteger; if T35 > 0 then for K:= 1 to T35 do begin With dm.qryTmpSelect do begin Close; SQL.Clear; SQL.Add(SqlTmpPrintSapato); ParamByName(´prnReferencia´).asString := dm.qrySelect.fieldbyName(´Referencia´).AsString; ParamByName(´prnCor´).asString := dm.qrySelect.fieldbyName(´Cor´).AsString; ParamByName(´prnTamanho´).asString := ´35´; ExecSQL; end; end; T36 := FieldByName(´Tam36´).AsInteger; if T36 > 0 then for L:= 1 to T36 do begin With dm.qryTmpSelect do begin Close; SQL.Clear; SQL.Add(SqlTmpPrintSapato); ParamByName(´prnReferencia´).asString := dm.qrySelect.fieldbyName(´Referencia´).AsString; ParamByName(´prnCor´).asString := dm.qrySelect.fieldbyName(´Cor´).AsString; ParamByName(´prnTamanho´).asString := ´36´; ExecSQL; end; end; T37 := FieldByName(´Tam37´).AsInteger; if T37 > 0 then for M:= 1 to T37 do begin With dm.qryTmpSelect do begin Close; SQL.Clear; SQL.Add(SqlTmpPrintSapato); ParamByName(´prnReferencia´).asString := dm.qrySelect.fieldbyName(´Referencia´).AsString; ParamByName(´prnCor´).asString := dm.qrySelect.fieldbyName(´Cor´).AsString; ParamByName(´prnTamanho´).asString := ´37´; ExecSQL; end; end; T38 := FieldByName(´Tam38´).AsInteger; if T38 > 0 then for B:= 1 to T38 do begin With dm.qryTmpSelect do begin Close; SQL.Clear; SQL.Add(SqlTmpPrintSapato); ParamByName(´prnReferencia´).asString := dm.qrySelect.fieldbyName(´Referencia´).AsString; ParamByName(´prnCor´).asString := dm.qrySelect.fieldbyName(´Cor´).AsString; ParamByName(´prnTamanho´).asString := ´38´; ExecSQL; end; end; T39 := FieldByName(´Tam39´).AsInteger; if T39 > 0 then for A:= 1 to T39 do begin With dm.qryTmpSelect do begin Close; SQL.Clear; SQL.Add(SqlTmpPrintSapato); ParamByName(´prnReferencia´).asString := dm.qrySelect.fieldbyName(´Referencia´).AsString; ParamByName(´prnCor´).asString := dm.qrySelect.fieldbyName(´Cor´).AsString; ParamByName(´prnTamanho´).asString := ´39´; ExecSQL; end; end; Next; end; end; Try Application.CreateForm(TFrmEtiqSapato, FrmEtiqSapato); with FrmEtiqSapato do begin qrySapato.Close; qrySapato.SQL.Clear; qrySapato.SQL.Add(SQL_Sapatos); qrySapato.Open; Sapato.Preview; end; Finally FrmEtiqSapato.Free; dm.tblsapato.EmptyTable; end; end;
Gostei + 0
03/05/2005
Anfm
Gostei + 0
03/05/2005
Marcio.theis
Mas é pelo menos desta forma que eu utilizo e da certo...
Gostei + 0
03/05/2005
Wly
Mas é pelo menos desta forma que eu utilizo e da certo...[/quote:b68e58fa35]
Cara é o seguinte fiz o que disse porem estou com problemas de salto de pagina. Como evitar este salto de pagina, um vez a estiqueta contem varias linhas, Ok ??? Outra coisa no preview todos os dados estão aparecendo, ou seja, a cada 5 (cinco) registro aparece um nova pagina, OK !!!, no meu teste deu um total de 12 paginas, ficando inviavel, principalmente por a impressora esta dando um salto de pagina muinto grande (melhor dizendo um salto normal, porem no começo da pagina seguinte). A impressora que estou utilizando é uma LX-300+, como fazer para que ele evite este salto ???
Gostei + 0
03/05/2005
Marcio.theis
Eu tenho uma etiqueta aqui desta forma que é de duas colunas, ela esta configurada com o Top e Button = 0 e o Left e Right = 3, onde que o papel é Custom Size com o tamanho de 180,00 X 24,00, tendo o detail um tamanho de 22,49.
Gostei + 0
03/05/2005
Wly
Eu tenho uma etiqueta aqui desta forma que é de duas colunas, ela esta configurada com o Top e Button = 0 e o Left e Right = 3, onde que o papel é Custom Size com o tamanho de 180,00 X 24,00, tendo o detail um tamanho de 22,49.[/quote:3a1aa85752]
Mas me diga como vc fez para evita o salto de pagina, pois eu fiz, a mesma configuração sua, porem continua saltando pagina !!!
Gostei + 0
04/05/2005
Marcio.theis
Gostei + 0
12/06/2008
Thesketh
Montei no quickreporte as configs da etiqueta, assim a banda detail ficou certinha com o tamanho da etiqueta.
Agora quanto essa parte dos espaços eu resolvi assim:
Na minha tela pra selecionar os registros pra imprimir tem um campo pro usuário indicar em qual etiqueta ele quer que comece a impressão. Então eu tenho uma tabela temporária no meu banco de dados especifica pra imprimir as etiquetas, ai quando o usuário clica em gerar etiquetas, eu monto a tabela exatamente como eu quero, inserindo no inicio quantos registros em branco eu precisar e depois os dados necessários para as etiquetas. Funcionou direitinho.
Não sei se é a forma mais correta, uma vez que eu tenho que ficar gravando os dados no banco de dados mesmo que temporariamente.
Qualquer sugestão pra resolver essa questão é bem vinda.
Valeu!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)