Ir para conteúdo
Fórum Script Brasil

RafaelemeNt

Membros
  • Total de itens

    43
  • Registro em

  • Última visita

Tudo que RafaelemeNt postou

  1. Jhonas, obrigado pela atenção. Final de semana que vem, farei vários testes sobre isso. Espero que consigo resolver o problema. Domingo que vem, no mais tardar segunda-feira eu posto os resultados aqui. Obrigado.
  2. Olá Jhonas, obrigado pelo interesse. Estou usando apenas figuras JPEG no sistema. Todas redimensionadas para aproximadamente 800x600px com tamanho médio de 70 KB. Eis o código da Unit que faz a gravação no banco de dados e copia as figuras: unit untFrmCarregarImagem; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtDlgs, StdCtrls, Buttons, ExtCtrls; type TfrmCarregarImagens = class(TForm) GroupBox4: TGroupBox; Label35: TLabel; GroupBox5: TGroupBox; Label30: TLabel; Panel2: TPanel; imgChassi: TImage; btnCarregaChassi: TBitBtn; btnLimpaChassi: TBitBtn; cbChassi: TComboBox; GroupBox6: TGroupBox; Label31: TLabel; Panel4: TPanel; imgMotor: TImage; btnCarregaMotor: TBitBtn; btnLimpaMotor: TBitBtn; cbMotor: TComboBox; GroupBox7: TGroupBox; Label32: TLabel; Panel5: TPanel; imgPlaca: TImage; btnCarregaPlaca: TBitBtn; btnLimpaPlaca: TBitBtn; cbPlaca: TComboBox; GroupBox8: TGroupBox; Panel6: TPanel; imgExtra: TImage; btnCarregaExtra: TBitBtn; btnLimpaExtra: TBitBtn; edtCaminho: TEdit; GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; Panel1: TPanel; imgExtra2: TImage; btnCarregaExtra2: TBitBtn; btnLimpaExtra2: TBitBtn; cbExtra2: TComboBox; edtExtra2: TEdit; GroupBox2: TGroupBox; Label3: TLabel; Label4: TLabel; Panel3: TPanel; imgExtra3: TImage; btnCarregaExtra3: TBitBtn; btnLimpaExtra3: TBitBtn; cbExtra3: TComboBox; edtExtra3: TEdit; btnConfirmar: TBitBtn; btnLimpar: TBitBtn; btnIncluir: TBitBtn; OpenPictureDialogChassi: TOpenPictureDialog; OpenPictureDialogMotor: TOpenPictureDialog; OpenPictureDialogPlaca: TOpenPictureDialog; OpenPictureDialogExtra: TOpenPictureDialog; OpenPictureDialogExtra2: TOpenPictureDialog; OpenPictureDialogExtra3: TOpenPictureDialog; procedure Gravar; procedure btnCarregaChassiClick(Sender: TObject); procedure btnLimpaChassiClick(Sender: TObject); procedure btnCarregaMotorClick(Sender: TObject); procedure btnLimpaMotorClick(Sender: TObject); procedure btnCarregaPlacaClick(Sender: TObject); procedure btnLimpaPlacaClick(Sender: TObject); procedure btnCarregaExtraClick(Sender: TObject); procedure btnLimpaExtraClick(Sender: TObject); procedure btnCarregaExtra2Click(Sender: TObject); procedure btnLimpaExtra2Click(Sender: TObject); procedure btnCarregaExtra3Click(Sender: TObject); procedure btnLimpaExtra3Click(Sender: TObject); procedure btnIncluirClick(Sender: TObject); procedure btnConfirmarClick(Sender: TObject); procedure btnLimparClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var frmCarregarImagens: TfrmCarregarImagens; implementation uses untDmModelo, untFrmGerarLaudo, untFrmRelatorio; {$R *.dfm} procedure TfrmCarregarImagens.Gravar; begin dmModelo.cdsGerarLaudos.FieldByName('NOME').AsString := frmGerarLaudo.edtNome.Text; if frmGerarLaudo.rbCpf.Checked = True then dmModelo.cdsGerarLaudos.FieldByName('CPFCNPJ').AsString := frmGerarLaudo.mEdtCpf.Text; if frmGerarLaudo.rbCnpj.Checked = True then dmModelo.cdsGerarLaudos.FieldByName('CPFCNPJ').AsString := frmGerarLaudo.mEdtCnpj.Text; dmModelo.cdsGerarLaudos.FieldByName('PLACA').AsString := frmGerarLaudo.mEdtPlaca.Text; dmModelo.cdsGerarLaudos.FieldByName('MARCA').AsString := frmGerarLaudo.edtMarca.Text; dmModelo.cdsGerarLaudos.FieldByName('ANOFABRICACAO').AsString := frmGerarLaudo.edtAnoFabricacao.Text; dmModelo.cdsGerarLaudos.FieldByName('COR').AsString := frmGerarLaudo.edtCor.Text; dmModelo.cdsGerarLaudos.FieldByName('RENAVAM').AsString := frmGerarLaudo.edtRenavam.Text; dmModelo.cdsGerarLaudos.FieldByName('MODELO').AsString := frmGerarLaudo.edtModelo.Text; dmModelo.cdsGerarLaudos.FieldByName('ANOMODELO').AsString := frmGerarLaudo.edtAnoModelo.Text; dmModelo.cdsGerarLaudos.FieldByName('COMBUSTIVEL').AsString := frmGerarLaudo.edtCombustivel.Text; dmModelo.cdsGerarLaudos.FieldByName('CHASSI').AsString := frmGerarLaudo.edtChassi.Text; dmModelo.cdsGerarLaudos.FieldByName('MOTOR').AsString := frmGerarLaudo.edtMotor.Text; dmModelo.cdsGerarLaudos.FieldByName('CAMBIO').AsString := frmGerarLaudo.edtCambio.Text; dmModelo.cdsGerarLaudos.FieldByName('DIFERENCIAL').AsString := frmGerarLaudo.edtDiferencial.Text; dmModelo.cdsGerarLaudos.FieldByName('CAIXADEDIRECAO').AsString := frmGerarLaudo.edtCaixaDeDirecao.Text; dmModelo.cdsGerarLaudos.FieldByName('BOMBAINJETORA').AsString := frmGerarLaudo.edtBombaInjetora.Text; dmModelo.cdsGerarLaudos.FieldByName('EIXO1').AsString := frmGerarLaudo.edt1Eixo.Text; dmModelo.cdsGerarLaudos.FieldByName('EIXO2').AsString := frmGerarLaudo.edt2Eixo.Text; dmModelo.cdsGerarLaudos.FieldByName('EIXO3').AsString := frmGerarLaudo.edt3Eixo.Text; dmModelo.cdsGerarLaudos.FieldByName('PLAQUETA').AsString := frmGerarLaudo.edtPlaqueta.Text; dmModelo.cdsGerarLaudos.FieldByName('CARROCERIA').AsString := frmGerarLaudo.edtCarroceria.Text; dmModelo.cdsGerarLaudos.FieldByName('LOTACAO').AsString := frmGerarLaudo.edtLotacao.Text; dmModelo.cdsGerarLaudos.FieldByName('TONELAGEM').AsString := frmGerarLaudo.edtTonelagem.Text; dmModelo.cdsGerarLaudos.FieldByName('ALIENACAO').AsString := frmGerarLaudo.edtAlienacao.Text; dmModelo.cdsGerarLaudos.FieldByName('ARRENDAMENTO').AsString := frmGerarLaudo.edtArrendamento.Text; dmModelo.cdsGerarLaudos.FieldByName('TRIBUTARIA').AsString := frmGerarLaudo.edtTributaria.Text; dmModelo.cdsGerarLaudos.FieldByName('ADMINISTRATIVA').AsString := frmGerarLaudo.edtAdministrativa.Text; dmModelo.cdsGerarLaudos.FieldByName('RESERVADOMINIO').AsString := frmGerarLaudo.edtReservaDominio.Text; dmModelo.cdsGerarLaudos.FieldByName('DEFINEEXTRA').AsString := 'Hodômetro'; dmModelo.cdsGerarLaudos.FieldByName('DEFINEEXTRA2').AsString := edtExtra2.Text; dmModelo.cdsGerarLaudos.FieldByName('DEFINEEXTRA3').AsString := edtExtra3.Text; dmModelo.cdsGerarLaudos.FieldByName('PATHCHASSI').AsString := caminho_chassi; dmModelo.cdsGerarLaudos.FieldByName('PATHMOTOR').AsString := caminho_motor; dmModelo.cdsGerarLaudos.FieldByName('PATHPLACA').AsString := caminho_placa; If not (OpenPictureDialogExtra.FileName = '') then dmModelo.cdsGerarLaudos.FieldByName('PATHEXTRA').AsString := caminho_extra; If not (OpenPictureDialogExtra2.FileName = '') then dmModelo.cdsGerarLaudos.FieldByName('PATHEXTRA2').AsString := caminho_extra2; If not (OpenPictureDialogExtra3.FileName = '') then dmModelo.cdsGerarLaudos.FieldByName('PATHEXTRA3').AsString := caminho_extra3; dmModelo.cdsGerarLaudos.FieldByName('OBSERVACAO').AsString := frmGerarLaudo.memoObservacao.Text; dmModelo.cdsGerarLaudos.FieldByName('CHASSICONFBIN').AsString := cbChassi.Text; dmModelo.cdsGerarLaudos.FieldByName('MOTORCONFBIN').AsString := cbMotor.Text; dmModelo.cdsGerarLaudos.FieldByName('PLACACONFBIN').AsString := cbPlaca.Text; dmModelo.cdsGerarLaudos.FieldByName('EXTRA2CONFBIN').AsString := cbExtra2.Text; dmModelo.cdsGerarLaudos.FieldByName('EXTRA3CONFBIN').AsString := cbExtra3.Text; dmModelo.cdsGerarLaudos.FieldByName('DATA').AsDateTime := frmGerarLaudo.dtpHoje.Date; dmModelo.cdsGerarLaudos.FieldByName('VIDROS').AsString := frmGerarLaudo.edtVidros.Text; dmModelo.cdsGerarLaudos.FieldByName('HODOMETRO').AsString := frmGerarLaudo.edtHodometro.Text; end; procedure TfrmCarregarImagens.btnCarregaChassiClick(Sender: TObject); begin if OpenPictureDialogChassi.Execute then begin imgChassi.Picture.LoadFromFile(OpenPictureDialogChassi.FileName); edtCaminho.Text := OpenPictureDialogChassi.FileName; end; end; procedure TfrmCarregarImagens.btnLimpaChassiClick(Sender: TObject); begin imgChassi.Picture := Nil; OpenPictureDialogChassi.FileName := ''; caminho_chassi := ''; edtCaminho.Clear; end; procedure TfrmCarregarImagens.btnCarregaMotorClick(Sender: TObject); begin if OpenPictureDialogMotor.Execute then begin imgMotor.Picture.LoadFromFile(OpenPictureDialogMotor.FileName); edtCaminho.Text := OpenPictureDialogMotor.FileName; end; end; procedure TfrmCarregarImagens.btnLimpaMotorClick(Sender: TObject); begin imgMotor.Picture := Nil; OpenPictureDialogMotor.FileName := ''; caminho_motor := ''; edtCaminho.Clear; end; procedure TfrmCarregarImagens.btnCarregaPlacaClick(Sender: TObject); begin if OpenPictureDialogPlaca.Execute then begin imgPlaca.Picture.LoadFromFile(OpenPictureDialogPlaca.FileName); edtCaminho.Text := OpenPictureDialogPlaca.FileName; end; end; procedure TfrmCarregarImagens.btnLimpaPlacaClick(Sender: TObject); begin imgPlaca.Picture := Nil; OpenPictureDialogPlaca.FileName := ''; caminho_placa := ''; edtCaminho.Clear; end; procedure TfrmCarregarImagens.btnCarregaExtraClick(Sender: TObject); begin if OpenPictureDialogExtra.Execute then begin imgExtra.Picture.LoadFromFile(OpenPictureDialogExtra.FileName); edtCaminho.Text := OpenPictureDialogExtra.FileName; end; end; procedure TfrmCarregarImagens.btnLimpaExtraClick(Sender: TObject); begin imgExtra.Picture := Nil; OpenPictureDialogExtra.FileName := ''; caminho_extra := ''; edtCaminho.Clear; end; procedure TfrmCarregarImagens.btnCarregaExtra2Click(Sender: TObject); begin if OpenPictureDialogExtra2.Execute then begin imgExtra2.Picture.LoadFromFile(OpenPictureDialogExtra2.FileName); edtCaminho.Text := OpenPictureDialogExtra2.FileName; end; end; procedure TfrmCarregarImagens.btnLimpaExtra2Click(Sender: TObject); begin imgExtra2.Picture := Nil; OpenPictureDialogExtra2.FileName := ''; caminho_extra2 := ''; edtCaminho.Clear; end; procedure TfrmCarregarImagens.btnCarregaExtra3Click(Sender: TObject); begin if OpenPictureDialogExtra3.Execute then begin imgExtra3.Picture.LoadFromFile(OpenPictureDialogExtra3.FileName); edtCaminho.Text := OpenPictureDialogExtra3.FileName; end; end; procedure TfrmCarregarImagens.btnLimpaExtra3Click(Sender: TObject); begin imgExtra3.Picture := Nil; OpenPictureDialogExtra3.FileName := ''; caminho_extra3 := ''; edtCaminho.Clear; end; procedure TfrmCarregarImagens.btnIncluirClick(Sender: TObject); begin dmModelo.cdsGerarLaudos.Append; btnConfirmar.Enabled := True; end; procedure TfrmCarregarImagens.btnConfirmarClick(Sender: TObject); var auxiliar : String; begin if ((OpenPictureDialogChassi.FileName = '') or (OpenPictureDialogMotor.FileName = '') or (OpenPictureDialogPlaca.FileName = '')) then MessageDlg('Somente Imagens "EXTRA" podem ficar em Branco.', mtError, [mbOk], 0) else begin auxiliar := frmGerarLaudo.mEdtPlaca.Text; dia := DateToStr(frmGerarLaudo.dtpHoje.Date); dia := StringReplace(dia, '/', '', [rfReplaceAll, rfIgnoreCase]); //Copia os arquivos para a pasta Imagens direto no Servidor -> (D:\modelo\imagens\) //Acrescenta o nome aos novos arquivos //Nome formado por: PATH + DDMMAAAA_ (Data) + PLACA + especificação imgChassi.Picture.SaveToFile('\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_chassi.jpg'); caminho_chassi := '\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_chassi.jpg'; imgMotor.Picture.SaveToFile('\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_motor.jpg'); caminho_motor := '\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_motor.jpg'; imgPlaca.Picture.SaveToFile('\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_placa.jpg'); caminho_placa := '\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_placa.jpg'; if not (OpenPictureDialogExtra.FileName = '') then begin imgExtra.Picture.SaveToFile('\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_extra.jpg'); caminho_extra := '\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_extra.jpg'; end; if not (OpenPictureDialogExtra2.FileName = '') then begin imgExtra2.Picture.SaveToFile('\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_extra2.jpg'); caminho_extra2 := '\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_extra2.jpg'; end; if not (OpenPictureDialogExtra3.FileName = '') then begin imgExtra3.Picture.SaveToFile('\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_extra3.jpg'); caminho_extra3 := '\\modelo01\modelo$\imagem\' + dia + '_' + auxiliar + '_extra3.jpg'; end; Gravar; dmModelo.cdsGerarLaudos.ApplyUpdates(0); MessageDlg('Laudo Gravado com Sucesso. Gerando Relatório.', mtConfirmation, [mbOk], 0); dmModelo.cdsPesquisaLaudo.Close; dmModelo.cdsPesquisaLaudo.CommandText := 'select FIRST 1 * from LAUDOS order by CODIGO desc'; dmModelo.cdsPesquisaLaudo.Open; dmModelo.cdsPesquisaLaudo.Refresh; frmGerarLaudo.Limpar; Application.CreateForm(TfrmRelatorio,frmRelatorio); frmRelatorio.QRCompositeReport1.Prepare; frmRelatorio.QRCompositeReport1.Preview; FreeAndNil(frmRelatorio); Close; end; end; procedure TfrmCarregarImagens.btnLimparClick(Sender: TObject); begin imgChassi.Picture := Nil; imgMotor.Picture := Nil; imgPlaca.Picture := Nil; imgExtra.Picture := Nil; imgExtra2.Picture := Nil; imgExtra3.Picture := Nil; OpenPictureDialogChassi.FileName := ''; OpenPictureDialogMotor.FileName := ''; OpenPictureDialogPlaca.FileName := ''; OpenPictureDialogExtra.FileName := ''; OpenPictureDialogExtra2.FileName := ''; OpenPictureDialogExtra3.FileName := ''; edtCaminho.Clear; edtExtra2.Clear; edtExtra3.Clear; caminho_chassi := ''; caminho_motor := ''; caminho_placa := ''; caminho_extra := ''; caminho_extra2 := ''; caminho_extra3 := ''; cbChassi.ItemIndex := -1; cbMotor.ItemIndex := -1; cbPlaca.ItemIndex := -1; cbExtra2.ItemIndex := -1; cbExtra3.ItemIndex := -1; end; procedure TfrmCarregarImagens.FormCreate(Sender: TObject); begin btnConfirmar.Enabled := False; end; procedure TfrmCarregarImagens.FormClose(Sender: TObject; var Action: TCloseAction); begin OpenPictureDialogChassi.FreeOnRelease; OpenPictureDialogMotor.FreeOnRelease; OpenPictureDialogPlaca.FreeOnRelease; OpenPictureDialogExtra.FreeOnRelease; OpenPictureDialogExtra2.FreeOnRelease; OpenPictureDialogExtra3.FreeOnRelease; dmModelo.cdsGerarLaudos.CancelUpdates; end; end. Agradeço por qualquer ajuda ou sugestão. Abraços
  3. Senhores, alguma sugestão? Ainda estou com o problema... Se quiserem, eu disponibilizo todos os códigos Delphi, Banco, ScreenShots e etc.... Muito obrigado.
  4. Obrigado por responder Jhonas. Desculpe não ter respondido antes, estava viajando e só consegui ver esse final de semana. Acrescentei a liberação que você sugeriu. Eu coloquei o código abaixo dentro do evento "onClose" do formulário do Relatório (frmRelatorio). FreeAndNil(QuickRep1); FreeAndNil(QuickRep2); Seria isso? O Código compilou sem erros. Colocarei em teste e depois postarei os resultados. Agradeço sua ajuda. Abraços,
  5. Boa noite senhores. Desculpem abrir novamente o tópico, porém o meu pesadelo voltou. Eu pensei que havia resolvido o problema, mas eu só retardei. Explicarei melhor o que está acontecendo, desde o início. Criei uma pequena aplicação para gerar Laudos técnicos de vistoria de Veículos. O laudo precisa conter informações de veículos e principalmente as FOTOS da vistoria. Assim sendo, criei a aplicação com Delphi 7 + QuickReport + IBExpert + Firebird 1.5 + Componentes DBExpress. Basicamente, a aplicação salva em Banco de Dados apenas o CAMINHO da imagem, e usa esse caminho posteriormente para carregar e gerar o relatório. São 6 fotos ao total. A aplicação funciona dentro do esperado até a geração do Relatório. O usuário consegue visualizar todas as informações corretamente, assim como as fotos. Porém, ao mandar IMPRIMIR, "às vezes", alguma das imagens some. Não é sempre que isso acontece. Pode acontecer 3 vezes no dia, como pode acontecer 3 vezes na semana, independemente do número de relatórios.Exemplo: São 6 fotos. Chassi, Motor, Placa, Hodômetro, Plaqueta e FotoAdicional. O usuário consegue gerar alguns relatórios, mas depois a imagem não aparece na IMPRESSÃO. Se o usuário fechar o relatório e abrir novamente, às vezes é possível imprimir corretamente, mas outras vezes não. Ouvi falar que poderia ser um erro de relatório interno, ou seja, algum problema com o QuickReport. Então, baixei e instalei o pacote do Fortes Report mas infelizmente o problema é O MESMO. Abaixo está relacionado tudo da parte Relatório que eu criei. Criação Dinâmica do Relatório: Application.CreateForm(TfrmRelatorio,frmRelatorio); frmRelatorio.QRCompositeReport1.Prepare; frmRelatorio.QRCompositeReport1.Preview; FreeAndNil(frmRelatorio); A Unit do Formulário: unit untFrmRelatorio; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QRCtrls, QuickRpt, ExtCtrls, Jpeg; type TfrmRelatorio = class(TForm) QuickRep1: TQuickRep; QRBand1: TQRBand; QRLabel1: TQRLabel; QRCompositeReport1: TQRCompositeReport; QRBand3: TQRBand; QuickRep2: TQuickRep; QRLabel3: TQRLabel; QRLabel4: TQRLabel; QRLabel5: TQRLabel; QRImage1: TQRImage; QRSysData1: TQRSysData; QRLabel6: TQRLabel; QRLabel7: TQRLabel; QRDBText1: TQRDBText; QRShape1: TQRShape; QRLabel8: TQRLabel; QRLabel9: TQRLabel; QRDBText2: TQRDBText; QRLabel10: TQRLabel; QRDBText3: TQRDBText; QRShape2: TQRShape; QRLabel11: TQRLabel; QRLabel12: TQRLabel; QRLabel13: TQRLabel; QRLabel14: TQRLabel; QRLabel15: TQRLabel; QRLabel16: TQRLabel; QRLabel17: TQRLabel; QRLabel18: TQRLabel; QRLabel19: TQRLabel; QRLabel20: TQRLabel; QRLabel21: TQRLabel; QRLabel22: TQRLabel; QRLabel23: TQRLabel; QRLabel24: TQRLabel; QRLabel25: TQRLabel; QRLabel26: TQRLabel; QRLabel27: TQRLabel; QRLabel28: TQRLabel; QRLabel29: TQRLabel; QRLabel30: TQRLabel; QRLabel31: TQRLabel; QRLabel32: TQRLabel; QRLabel33: TQRLabel; QRLabel34: TQRLabel; QRLabel35: TQRLabel; QRLabel36: TQRLabel; QRLabel37: TQRLabel; QRLabel38: TQRLabel; QRDBText4: TQRDBText; QRDBText5: TQRDBText; QRDBText6: TQRDBText; QRDBText7: TQRDBText; QRDBText8: TQRDBText; QRDBText9: TQRDBText; QRDBText10: TQRDBText; QRDBText11: TQRDBText; QRDBText12: TQRDBText; QRDBText14: TQRDBText; QRDBText15: TQRDBText; QRDBText16: TQRDBText; QRDBText17: TQRDBText; QRDBText18: TQRDBText; QRDBText19: TQRDBText; QRDBText20: TQRDBText; QRDBText21: TQRDBText; QRDBText22: TQRDBText; QRDBText23: TQRDBText; QRDBText24: TQRDBText; QRDBText25: TQRDBText; QRDBText26: TQRDBText; QRDBText27: TQRDBText; QRDBText28: TQRDBText; QRDBText29: TQRDBText; QRShape3: TQRShape; QRDBRichText1: TQRDBRichText; QRShape4: TQRShape; QRLabel39: TQRLabel; QRMemo1: TQRMemo; QRLabel40: TQRLabel; QRShape5: TQRShape; QRBand2: TQRBand; QRLabel44: TQRLabel; QRLabel45: TQRLabel; QRLabel46: TQRLabel; QRSysData2: TQRSysData; QRLabel47: TQRLabel; QRLabel48: TQRLabel; QRBand5: TQRBand; QRLabel50: TQRLabel; QRLabel51: TQRLabel; QRShape6: TQRShape; QRLabel52: TQRLabel; QRShape7: TQRShape; QRShape8: TQRShape; QRShape11: TQRShape; QRShape12: TQRShape; QRShape9: TQRShape; QRShape10: TQRShape; QRLabel53: TQRLabel; QRLabel54: TQRLabel; QRLabel55: TQRLabel; QRDBText31: TQRDBText; QRDBText32: TQRDBText; QRDBText33: TQRDBText; QRLabel56: TQRLabel; QRLabel57: TQRLabel; QRShape13: TQRShape; QRShape14: TQRShape; QRLabel41: TQRLabel; QRLabel42: TQRLabel; QRShape15: TQRShape; QRShape16: TQRShape; QRLabel43: TQRLabel; QRLabel49: TQRLabel; QRImageChassi: TQRImage; QRLabel58: TQRLabel; QRDBText34: TQRDBText; QRImageMotor: TQRImage; QRLabel59: TQRLabel; QRDBText35: TQRDBText; QRImagePlaca: TQRImage; QRLabel60: TQRLabel; QRDBText36: TQRDBText; QRImageExtra: TQRImage; QRImageExtra2: TQRImage; QRLabel62: TQRLabel; QRDBText38: TQRDBText; QRImageExtra3: TQRImage; QRLabel63: TQRLabel; QRDBText39: TQRDBText; QRImage2: TQRImage; QRDBText30: TQRDBText; QRLabel2: TQRLabel; QRImage3: TQRImage; QRImage4: TQRImage; QRLabel64: TQRLabel; QRLabel65: TQRLabel; QRDBText40: TQRDBText; QRDBText41: TQRDBText; QRDBText13: TQRDBText; QRLabel66: TQRLabel; QRLabel67: TQRLabel; procedure QRCompositeReport1AddReports(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var frmRelatorio: TfrmRelatorio; caminho_chassi, caminho_motor, caminho_placa, caminho_extra, caminho_extra2, caminho_extra3 : String; implementation uses untDmModelo; {$R *.dfm} procedure TfrmRelatorio.QRCompositeReport1AddReports(Sender: TObject); begin //Preciso de Duas páginas para todas as informações. Na página 1 aparecem os dados e na Página 2 as FOTOS. QRCompositeReport1.Reports.Add(QuickRep1); // Página da Frente QRCompositeReport1.Reports.Add(QuickRep2); //Página do Verso end; procedure TfrmRelatorio.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; frmRelatorio.Release; frmRelatorio := nil; end; procedure TfrmRelatorio.FormCreate(Sender: TObject); begin //Variáveis recebem o caminho das imagens caminho_chassi := dmModelo.cdsPesquisaLaudo.FieldByName('PATHCHASSI').AsString; caminho_motor := dmModelo.cdsPesquisaLaudo.FieldByName('PATHMOTOR').AsString; caminho_placa := dmModelo.cdsPesquisaLaudo.FieldByName('PATHPLACA').AsString; caminho_extra := dmModelo.cdsPesquisaLaudo.FieldByName('PATHEXTRA').AsString; caminho_extra2 := dmModelo.cdsPesquisaLaudo.FieldByName('PATHEXTRA2').AsString; caminho_extra3 := dmModelo.cdsPesquisaLaudo.FieldByName('PATHEXTRA3').AsString; //Os componentes de imagem recebem a IMAGEM para formar o Relatório QRImageChassi.Picture.LoadFromFile(caminho_chassi); QRImageMotor.Picture.LoadFromFile(caminho_motor); QRImagePlaca.Picture.LoadFromFile(caminho_placa); if not (caminho_extra = '') then begin QRImageExtra.Picture.LoadFromFile(caminho_extra); end; if not (caminho_extra2 = '') then begin QRImageExtra2.Picture.LoadFromFile(caminho_extra2); end; if not (caminho_extra3 = '') then begin QRImageExtra3.Picture.LoadFromFile(caminho_extra3); end end; end. Refiz o relatório com o Fortes Report, mas o problema continua. Por favor, não tenho experiência com relatórios. Se estou fazendo alguma besteira, por favor, me alertem! Agradeço a atenção.
  6. Concordo! Você quer que o DBEdit seja ligado ao campo código porém exiba qual é o funcionário? Você realizará outra ação com o campo do funcionário ou só exibição? Talvez você precise usar o componente DBLookUpComboBox. Com ele você pega valores de uma tabela, e grava em outra! abraços
  7. boa tarde Jhonas! Obrigado pela sua ajuda! Acrescentei o código de bloqueio de Input no meu código. Agora, consegui resolver o problema. Primeiramente, a rotina que eu havia colocado para carregar as imagens para o QRImage estava no lugar errado. Eu deveria ter colocado no onCreate do FORM do Relatório. Segundo: realmente, o tamanho das imagens estava influenciando. Embora todas fossem Jpeg, elas tinham dimensões enormes, de 4000 x 3000 ou um pouco menor. Diminuindo as dimensões, seu tamanho foi pra em torno de 100Kb cada uma, e assim o programa funcionou normalmente. Agradeço a atenção dispensada! Muito obrigado mesmo pela sua ajuda, ela é sempre muito importante.
  8. Para complementar, eis o código que carrega as imagens para o relatório. Não sei se ajuda, mas eu já tentei colocar ele em outros eventos como: beforePrint e onStartPage. Sem sucesso, continua o mesmo problema. //Variaveis locais recebendo caminho das imagens a ser exibidas caminho_chassi := dmModelo.cdsPesquisaLaudo.FieldByName('PATHCHASSI').AsString; caminho_motor := dmModelo.cdsPesquisaLaudo.FieldByName('PATHMOTOR').AsString; caminho_placa := dmModelo.cdsPesquisaLaudo.FieldByName('PATHPLACA').AsString; caminho_extra := dmModelo.cdsPesquisaLaudo.FieldByName('PATHEXTRA').AsString; caminho_extra2 := dmModelo.cdsPesquisaLaudo.FieldByName('PATHEXTRA2').AsString; caminho_extra3 := dmModelo.cdsPesquisaLaudo.FieldByName('PATHEXTRA3').AsString; //Carregando as 3 imagens obrigatórias QRImageChassi.Picture.LoadFromFile(caminho_chassi); QRImageMotor.Picture.LoadFromFile(caminho_motor); QRImagePlaca.Picture.LoadFromFile(caminho_placa); /Se houver imagens não-obrigatórias, elas são carregas. senão, deixa vazio if not (caminho_extra = '') then begin QRImageExtra.Picture.LoadFromFile(caminho_extra); end else begin QRLabel61.Enabled := False; end; if not (caminho_extra2 = '') then begin QRImageExtra2.Picture.LoadFromFile(caminho_extra2); end else begin QRLabel62.Enabled := False; end; if not (caminho_extra3 = '') then begin QRImageExtra3.Picture.LoadFromFile(caminho_extra3); end else begin QRLabel63.Enabled := False; end; end;
  9. Bom dia srs, Tenho uma aplicação, feita com Delphi 7 + Firebird 1.5 + DBExpress+ QuickReport. É um software de vistoria de veículos. São inseridos dados, imagens da vistoria e o software gera um laudo impresso. As imagens que são inseridas no programa, são copiadas para uma outra pasta do do computador, e são renomeadas. Posteriormente são recuperadas para fazer o relatório. O problema é: o relatório é montado normalmente, e todas as imagens da vistoria aparecem. Porém, quando eu mando imprimir, algumas imagens não são impressas (apenas algumas imagens da vistoria, e não partes do relatório). São 06 imagens da vistoria. Às vezes, a imagem número 02 não é impressa, às vezes a 03 não é impressa, e outras vezes NENHUMA imagem é impressa. Se por exemplo falhar a impressão da imagem 02, e eu mandar imprimir novamente o relatório, outras imagens que foram impressas anteriormente falham. Reparei algumas coisas: 01) Se não movimentar o mouse após mandar imprimir, TODAS AS IMAGENS SÃO IMPRESSAS. (Senhores, não estou louco. Eu fiz 15 testes seguidos, testando o que eu citei a pouco, e nas 15 vezes aconteceu o que era previsto: se eu movesse o mouse, falhava alguma [ou todas] as imagens; se eu não movesse o mouse, era tudo impresso corretamente). 02) Esse erro acontece em uma máquina de placa-mãe Intel, com processador ATOM e 2 GB de RAM. Essa máquina foi formatada, instalado o Windows XP Professional com todas atualizações, e apenas instalado os programas básicos. Essa falha, acontece nela, mas não em um outro computador, de capacidade de processamento inferior. Gostaria que o srs me ajudassem, dando alguma sugestão ou opinião sobre o assunto. Estou sem alternativas de testes (pelo menos, não consigo mais pensar em nenhuma). Agradeço a atenção dos senhores.
  10. isso eu não tinha tentado! muito obrigado pela dica, vou tentar agora mesmo! depois eu posto o resultado obrigado pela atenção Jhonas!! abraço
  11. Anti-virus: desativei para realizar o teste e mesmo assim, não funcionou. Firewall: Acrescentei o software como exceção, e também adicionei a porta do firebird 3050, não funcionou. Definição incorreta: aí eu já não saberia nem como testar, uma vez que eu não utilizei portas na programação. Como citei, configurei o aliases.conf do firebird e acrescentei as DLL's necessárias. Em outras máquinas funciona dentro do esperado, porém nessa máquina em específico não. Quando eu me referi a "incompatibilidade de hardware", na realidade eu quis dizer algo como problema na placa de rede. Seria possível? Eu não consigo entender, nem achar uma lógica para isso tudo. Mais uma vez, obrigado pelo interesse e pela atenção Jhonas abraços,
  12. Olá Jhonas, obrigado por responder Eu testei isso também e não funciona. Para analisar a situação em OUTRA máquina, troquei o servidor. Mudei o executável, o banco de lugar, e as configurações de rede local (pois a minha aplicação depende de uma pasta compartilhada no servidor). Ou seja, inverti os papéis: a máquina que era cliente virou servidor e o servidor virou cliente. Para minha surpresa: FUNCIONOU. As configurações típicas, feitas normalmente. Firebird, compartilhamento de pastas, configuração das propriedades no Delphi... tudo a mesma coisa. Só me resta afirmar que foi uma "incompatibilidade de hardware". Isso seria possível? A aplicação só funcionar localmente e não receber acessos via rede, seria um problema de hardware? Já que, trocando o computador, a aplicação funciona dentro do esperado, recebendo conexões da rede. É a primeira vez que vejo isso. Alguém já passou por isso antes?
  13. Para completar: Fiz o teste da seguinte forma: peguei a minha máquina de desenvolvimento e coloquei momentaneamente como servidora da aplicação. Aí SIM, a aplicação no cliente roda. Ao transportar o meu sistema para outra máquina, e transformar esta em servidor, a aplicação deixa de funcionar EM REDE, e fica funcionando apenas localmente. Olhando o arquivo firebird.txt (LOG), notei o erro: SERVER (Client) Sun Nov 29 19:34:27 2009 INET/inet_error: connect errno = 10060 Alguma idéia????
  14. Boa tarde senhores. Tenho uma aplicação, que deve funcionar em rede. Para isso, utilizei Delphi7 + DBExpress + Firebird 1.5 A aplicação funciona dentro do esperado, tanto na máquina de desenvolvimento, quanto na máquina SERVIDORA (uma máquina com apenas o Windows XP instalado, atualizada e Firebird 1.5 completo - superserver) O banco de dados está nessa máquina, referenciado no aliases.conf do firebird através de: dbmodelo = d:\Program Files\modelo\database\modelo.fdb Na aplicação Delphi, o componente SQLConnection está definido com: Connected := True database := modelo01:dbmodelo Onde, modelo01 é o nome da própria máquina servidora. A rede funciona corretamente, é possível acessar às pastas compartilhadas, e enxergar o banco de dados. O problema é: as outras máquinas da rede não conseguem executar o sistema. Copiei as DLL's necessárias (midas, dbexpint) e é claro, instalei o Firebird 1.5, também de maneira completa - superserver. Quando eu tento executar a aplicação numa máquina cliente, o sistema não abre e aparece uma tela de erro do Windows, dizendo que o programa executou uma operação ilegal e será fechado. Pergunta se eu desejo enviar um relatório de erros à Microsoft. O que poderia ser isso? Como resolvo esse problema?
  15. Olá Andreza, eu não entendi muito bem sua dúvida. O que você precisa exatamente? Quanto mais detalhes você der, mais fácil fica de entender! Você precisa de duas páginas no Rave ??? Uma diferente da outra??
  16. Perfeito. Funcionou certinho, do jeito que eu precisava! Página 01 e Página 02, com as informações da mesma tabela, mas divididas igualmente entre os espaços! valeu Micheus!!! Muito obrigado mesmo!
  17. Micheus, muito obrigado pela resposta! Vou testar aqui agora, e depois eu mando um feedback! Agradeço a atenção.
  18. Bom dia srs, A minha dúvida é: como fazer para criar um relatório com 2 páginas. Tenho uma tabela que guarda informações de Vistoria de Veículos e também armazena o caminho para imagens (não armazeno mais as imagens no banco, agora apenas o caminho delas). Tenho que exibir todas as informações no relatório, e as 6 imagens também! Como as imagens precisam de uma tamanho mínimo para ficar nítidas, não é possível colocar em apenas uma página. Portanto, precisaria colocar as informações em uma página, e as fotos em outra. Preciso de ajuda. Gostaria que a solução fosse em QuickReport pois o Rave não aceita imagens JPG. Por favor, aguardo sugestões. Obrigado,
  19. Boa noite senhores. Tenho uma consulta que retorna alguns registros do banco da dados. O usuário têm a necessecidade de ter 2 tipos de relatórios: um geral, e outro detalhando cada venda de cada vendedor. Por isso, criei 2 relatórios no RAVE : o relatorio_geral.rav e relatorio_parcial.rav O problema é que só exibe o PRIMEIRO relatório que eu clicar. Exemplo: se eu mando abrir o relatorio_geral.rav , abre normalmente mas não abre o relatorio_parcial. Para conseguir visualizar o relatorio_parcial, eu preciso fechar a aplicação e executar novamente. O mesmo acontece na ordem inversa. AMBOS os relatórios exibem as informações corretamente, mas é inviável o usuário ter que fechar a aplicação para poder exibir o outro relatório. Alguém poderia me explicar o que estou fazendo de errado e como resolver isso? Obrigado pela atenção de todos.
  20. Olá amigo.. sinceramente, não entendi sua pergunta. Poderia explicar mais detalhadamente seu problema, ou pelo menos o que você pretende fazer? Quanto mais informações você der, mais fácil fica de tentarmos ajudar. Abraço
  21. Olá Jhonas, Agradeço demasiadamente a atenção dispensada! Eu tinha um prazo muito curto para apresentar essa aplicação, e tive que apelar para o bom e velho QuickReport. Porém, o problema do JPG no RAVE me intrigou. Agradeço muito sua ajuda. Vou estudar direito esse código, fazer os testes e postar aqui os resultados. Agora, uma última pergunta. Qual é a versão do Rave que você utiliza? Se não for a versão que 5.0, que vem com o Delphi 7, como faço para atualizar a minha? Abraços
  22. Olá Jhonas, obrigado pela atenção Eu tentei compilar junto a minha aplicação e aparece o erro na linha Image := TJPEGImage.Create; ... incompatibilidade de tipos. Porém, o problema não é na aplicação. Eu consegui carregar as imagens JPG para a aplicação, e inclusive consigo até gravar no Banco de Dados. Meu grandissíssimo problema é exibi-las no relatório, criado no Rave. Só existem 2 componentes no rave que posso usar: "Bitmap" e "Metafile". Tentei utilizar ambos, mas sem sucesso. Se a imagem armazenada no banco de dados não for BMP, dá erro de formato. É tão raro exibir imagens JPG armazenadas no banco de dados, via Relatórios RAVE??? Desde a manhã estou procurando material sobre isso e não acho. Agradeço a atenção.
  23. Olá amigo Jhonas Obrigado por responder. Por coincidência, esse foi justamente o tópico em que eu vi esse componente. Porém, quando tento acessar o link para download desse componente, sou enviado a uma página com assunto totalmente diferente. Pesquisei aqui no Sript Brasil também, porém, ainda não vi ninguém com um problema parecido. Contudo, continuei procurando, e achei 2 rotinas para serem executadas, que, PELO QUE EU ENTENDI, elas transformam a imagem JPEG para o formato nativo do Rave Report. As rotinas são essas: uses JPEG; procedure TForm1.ReportSystem1Print(Sender: TObject); var Stream: TMemoryStream; Image: TJPEGImage; begin With Sender as TBaseReport do begin Stream := TMemoryStream.Create; Image := TJPEGImage.Create; try Image.LoadFromFile('image1.jpg'); Image.SaveToStream(Stream); Stream.Position := 0; PrintImageRect(1,1,3,3.5,Stream,'JPG'); finally Image.Free; Stream.Free; end; { tryf } end; { with } end; procedure TForm1.ReportSystem1DecodeImage(Sender: TObject; ImageStream: TStream; ImageType: String; Bitmap: TBitmap); var Image: TJPEGImage; begin If ImageType = 'JPG' then begin Image := TJPEGImage.Create; // Create a TJPEGImage class try Image.LoadFromStream(ImageStream); // Load up JPEG image from ImageStream Image.DIBNeeded; // Convert JPEG to bitmap format Bitmap.Assign(Image); finally Image.Free; end; end; { if } end; Porém, estou com um pequeno problema na linha: Image := TJPEGImage.Create; Eu recebo a mensagem de erro: [Error] untDmVistomax.pas(151): Incompatibles types: 'String' and 'TJPEGImage'; [Fatal Error] VistoMax.dpr(7): Could not compile used unit 'untDmVistomax.pas' Porém, esse exemplo eu peguei diretamente no site da Nevrona.com mas não consigo usar! Pra falar a verdade, eu não entendi muito bem o que esse código faz, mas gostaria de testá-lo. Agradeço a atenção, e fico no aguardo de sugestões e opiniões. Rafael Henrique
  24. Bom dia srs Estou com dúvidas em relação à utilização de Imagens no RaveReport. O problema é: tenho armazenado já em minha tabela (num campo BLOB) uma imagem JPG. O problema, é que preciso exibir essa imagem no relatório, em Rave. Fiz testes com relação à imagens BMP e funcionou corretamente, mas JPEG não. Pesquisei a respeito de um componente chamado "JPEG Image Component ver 1.0", porém não consigo achá-lo para download. Alguém já utilizou? Ele funciona para essa finalidade que preciso? Onde posso encontrá-lo? Se alguém tiver alguma outra sugestão para que eu exiba os jpgs no relatório, também aceito!! Não importam os meios, mas sim os objetivos. Agradeço a atenção dos srs, Rafael Henrique
  25. Perdoe pela ignorância. Instalei o firebird na máquina cliente, ativei todos os datasets e agora tenho um outro problema: assim que mando executar a aplicação aparece a tela do windows: Este programa encontrou um problema e precisa ser fechado E pede pra enviar um relatório de erros para Microsoft. Não tenho a mínima idéia do que seja isso. Alguma idéia??
×
×
  • Criar Novo...