
tiberiusart
Membros-
Total de itens
6 -
Registro em
-
Última visita
Sobre tiberiusart

tiberiusart's Achievements
0
Reputação
-
Não deu!!! vou tentar explicar melhor: Tenho a tabela produtos, Codprod,Produto,Qde,Preço....., o que eu quero é imprimir etiquetas com diversas quantidades diferentes Ex. PRODUTO QDE PREÇO A 3 0,00 B 1 0,00 C 1 0,0 D 10 0,0 Assim até completar a quantidade de etiquetas que cabem ne pagina, completando ela passa para a outra pagina. Continuo tentando e espero que mais menbros postem comentarios, vito que pela visitação do tópico tem mais pessoas com o mesmo problema, por enquanto é só até mais amigo Churc, Abraços
-
Continua dando o mesmo erro, gerando N pagianas infinitamente.....
-
Ola Churc, vai ai o codigo: unit unEtiqueta; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, RpDefine, RpBase, RpSystem, StdCtrls, rpDevice, DB, ADODB, Grids, DBGrids, jpeg, ExtCtrls, ShellApi, DBClient; type TFrmEtiquetas = class(TForm) RvSystem1: TRvSystem; Button1: TButton; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Edit4: TEdit; Label5: TLabel; Edit5: TEdit; Label6: TLabel; Edit6: TEdit; Image1: TImage; Label7: TLabel; procedure Button1Click(Sender: TObject); procedure RvSystem1Print(Sender: TObject); procedure Label7Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var FrmEtiquetas: TFrmEtiquetas; implementation {$R *.dfm} procedure TFrmEtiquetas.Button1Click(Sender: TObject); begin RVSystem1.SystemPrinter.MarginBottom := 1; RVSystem1.SystemPrinter.MarginLeft := 1; RVSystem1.SystemPrinter.MarginTop := 1; RVSystem1.SystemPrinter.MarginBottom := 1; RVSystem1.SystemPrinter.Units := unCM; RVSystem1.SystemPrinter.UnitsFactor := 2.54; rpDev.Copies := 1; RVSystem1.SystemPrinter.Copies := rpDev.Copies; rpDev.Orientation := poPortrait; RVSystem1.SystemPrinter.Orientation := rpDev.Orientation; RVSystem1.SystemPreview.FormState := wsMaximized; RVSystem1.SystemSetups := RVSystem1.SystemSetups - [ssAllowSetup]; rpDev.SelectPaper('A4',false); RVSystem1.SystemPreview.RulerType := rtBothCm; RVSystem1.Execute; end; procedure TFrmEtiquetas.RvSystem1Print(Sender: TObject); Var Factor : Double; CurLabel : Integer; CurCol : Double; CurRow : Double; MarginTop : Double; MarginLeft : Double; LabelRow : Integer; LabelRows : Integer; LabelCols : Integer; LabelWidth : Double; LabelHeight : Double; V : Real; iCount,iUnidades : Integer; begin //--------------------------------------------------------------------------- // Configurações externas do formulario de Etiquetas //--------------------------------------------------------------------------- MarginLeft := StrToFloat(Edit1.Text);// Margem esquerda para impressao da primeira etiqueta MarginTop := StrToFloat(Edit2.Text);// Margem superior para impressao da primeira etiqueta LabelWidth := StrToFloat(Edit3.Text);// Largura da Etiqueta LabelHeight := StrToFloat(Edit4.Text);// Altura da Etiqueta LabelRows := StrToInt(Edit5.Text); // Numero de linhas de etiquetas LabelCols := StrToInt(Edit6.Text); // Numero de colunas de etiquetas //--------------------------------------------------------------------------- CurLabel := 0; // Retorna o numero da etiqueta que está sendo impressa LabelRow := 0; // Retorna o numero atual da linha de etiquetas em impressao ADOQuery1.Close; ADOQuery1.SQL.Text := 'SELECT * FROM PRODUTOS'; ADOQuery1.Open; iUnidades := ADOQuery1.FieldbyName('Qde').AsInteger; RVSystem1.BaseReport.SetFont('Arial',8); V:= ADOQuery1.FieldByName('VALOR').AsFloat; While not ADOQuery1.Eof do begin Factor := (CurLabel Mod LabelCols); // um pequeno artificio matematico pra calcular CurCol := (Factor*LabelWidth)+MarginLeft; // a posicao de cada etiqueta dinamicamente. CurRow := (LabelRow * LabelHeight) + MarginTop; RVSystem1.BaseReport.GotoXY(CurCol,CurRow); // Imprime na posicao calculada acima RVSystem1.BaseReport.Bold := False; RVSystem1.BaseReport.PrintLeft( ADOQuery1.FieldByName('PRODUTO').AsString,CurCol); RVSystem1.BaseReport.NewLine; RVSystem1.BaseReport.Bold := True; RVSystem1.BaseReport.PrintLeft('R$ ' + Formatfloat('###,###,##0.00', V), CurCol);;RVSystem1.BaseReport.NewLine; RVSystem1.BaseReport.Bold := False; RVSystem1.BaseReport.PrintLeft( ADOQuery1.FieldByName('FORNECEDOR').AsString,CurCol); RVSystem1.BaseReport.NewLine; RVSystem1.BaseReport.PrintLeft( 'NUMERO: '+Format('%0.5d',[Curlabel]),CurCol); RVSystem1.BaseReport.NewLine; Inc(CurLabel); //TROCA DE LINHA DE ETIQUETA // Se preencheu uma linha de etiquetas, reposiciona na margem e calcula a posicao da proxima etiqueta If Factor=LabelCols-1 Then Inc(LabelRow); // TROCA DE PAGINA // Se preencheu uma pagina de etiquetas, reinicializa a impressao If LabelRow>=LabelRows Then Begin LabelRow := 0; RVSystem1.BaseReport.NewPage; end; end; ADOQuery1.Next; end; procedure TFrmEtiquetas.Label7Click(Sender: TObject); begin ShellExecute(0,'open','http://www.qualquercoisa.com.br','',nil,sw_shownormal); end; procedure TFrmEtiquetas.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; end. Abraços
-
Ola Churc, testei sua informação, quase deu certo.Talvez o erro é meu só que não sei como arrumar. QUANDO MANDO IMPRIMIR AS ETIQUETA ELE NÃO SAI DO LOOP, FICA GERANDO N PAGIANAS....
-
Já vi que muitos visitaram este post, mas ninguém ainda me respondeu. Onde estão os feras em Rave!!!
-
Tenho um programinha de cadastro de produtos, onde imprimo lista de produtos e de fornecedores. Na lista de produto o campo valor sai R$ 1,00 normal, mas quando vou imprimir a etiqueta de preço ele sai 1. Some o R$ e os zeros da dieita. como resolver isto. SEGUE O CODIGO DA IMPRESSÃO DE ETIQUETA: unit unEtiqueta; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, RpDefine, RpBase, RpSystem, StdCtrls, rpDevice, DB, ADODB, Grids, DBGrids, jpeg, ExtCtrls, ShellApi; type TFrmEtiquetas = class(TForm) RvSystem1: TRvSystem; Button1: TButton; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Edit4: TEdit; Label5: TLabel; Edit5: TEdit; Label6: TLabel; Edit6: TEdit; Image1: TImage; Label7: TLabel; procedure Button1Click(Sender: TObject); procedure RvSystem1Print(Sender: TObject); procedure Label7Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var FrmEtiquetas: TFrmEtiquetas; implementation {$R *.dfm} procedure TFrmEtiquetas.Button1Click(Sender: TObject); begin RVSystem1.SystemPrinter.MarginBottom := 1; RVSystem1.SystemPrinter.MarginLeft := 1; RVSystem1.SystemPrinter.MarginTop := 1; RVSystem1.SystemPrinter.MarginBottom := 1; RVSystem1.SystemPrinter.Units := unCM; RVSystem1.SystemPrinter.UnitsFactor := 2.54; rpDev.Copies := 1; RVSystem1.SystemPrinter.Copies := rpDev.Copies; rpDev.Orientation := poPortrait; RVSystem1.SystemPrinter.Orientation := rpDev.Orientation; RVSystem1.SystemPreview.FormState := wsMaximized; RVSystem1.SystemSetups := RVSystem1.SystemSetups - [ssAllowSetup]; rpDev.SelectPaper('A4',false); RVSystem1.SystemPreview.RulerType := rtBothCm; RVSystem1.Execute; end; procedure TFrmEtiquetas.RvSystem1Print(Sender: TObject); Var Factor : Double; CurLabel : Integer; CurCol : Double; CurRow : Double; MarginTop : Double; MarginLeft : Double; LabelRow : Integer; LabelRows : Integer; LabelCols : Integer; LabelWidth : Double; LabelHeight : Double; begin //--------------------------------------------------------------------------- // Configurações externas do formulario de Etiquetas //--------------------------------------------------------------------------- MarginLeft := StrToFloat(Edit1.Text);// Margem esquerda para impressao da primeira etiqueta MarginTop := StrToFloat(Edit2.Text);// Margem superior para impressao da primeira etiqueta LabelWidth := StrToFloat(Edit3.Text);// Largura da Etiqueta LabelHeight := StrToFloat(Edit4.Text);// Altura da Etiqueta LabelRows := StrToInt(Edit5.Text); // Numero de linhas de etiquetas LabelCols := StrToInt(Edit6.Text); // Numero de colunas de etiquetas //--------------------------------------------------------------------------- CurLabel := 0; // Retorna o numero da etiqueta que está sendo impressa LabelRow := 0; // Retorna o numero atual da linha de etiquetas em impressao ADOQuery1.Close; ADOQuery1.SQL.Text := 'SELECT * FROM PRODUTOS'; ADOQuery1.Open; RVSystem1.BaseReport.SetFont('Arial',8); While not ADOQuery1.Eof do Begin Factor := (CurLabel Mod LabelCols); // um pequeno artificio matematico pra calcular CurCol := (Factor*LabelWidth)+MarginLeft; // a posicao de cada etiqueta dinamicamente. CurRow := (LabelRow * LabelHeight) + MarginTop; RVSystem1.BaseReport.GotoXY(CurCol,CurRow); // Imprime na posicao calculada acima RVSystem1.BaseReport.Bold := True; RVSystem1.BaseReport.PrintLeft( ADOQuery1.FieldByName('PRODUTO').AsString,CurCol); RVSystem1.BaseReport.NewLine; RVSystem1.BaseReport.Bold := False; ****************************************************** RVSystem1.BaseReport.PrintLeft( ADOQuery1.FieldByName *('VALOR').AsString,CurCol);RVSystem1.BaseReport.NewLine; * ****************************************************** LINHA QUE ESTA DANDO O ERRO É ESTA MARCADA RVSystem1.BaseReport.PrintLeft( ADOQuery1.FieldByName('FORNECEDOR').AsString,CurCol); RVSystem1.BaseReport.NewLine; Inc(CurLabel); //TROCA DE LINHA DE ETIQUETA // Se preencheu uma linha de etiquetas, reposiciona na margem e calcula a posicao da proxima etiqueta If Factor=LabelCols-1 Then Inc(LabelRow); // TROCA DE PAGINA // Se preencheu uma pagina de etiquetas, reinicializa a impressao If LabelRow>=LabelRows Then Begin LabelRow := 0; RVSystem1.BaseReport.NewPage; End; ADOQuery1.Next; End; end; procedure TFrmEtiquetas.Label7Click(Sender: TObject); begin ShellExecute(0,'open','http://www.aden.com.br','',nil,sw_shownormal); end; procedure TFrmEtiquetas.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; end.