Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. Tenho a mesma versão que vem com o delphi 7 .. o ultimo código que te passei funciona nele. abraço
  2. Em component > install packages ir em C:\Arquivos de programas\Borland\Delphi2007\Bin e adicionar o dcltqr70.bpl abraço
  3. Veja este artigo http://www.linhadecodigo.com.br/Artigo.aspx?id=687 abraço
  4. Oi amigos ... meu micro ficou alguns dias em conserto... problemas na placa mãe. Não achei que iriam sentir minha falta... rs abraços
  5. -906 335544744 max_att_exceeded Maximum user count exceeded.Contact your database administrator. O erro pode ser porque abriu uma tabela inumeras vezes e não a fechou: ibtable1.closedatabases; pode ser tambem pelo total de acessos por usuarios que a versão suporta ( Licenças ) ... o interbase 6.5 e 7.0 não tem limite abraço
  6. Em uma rede interna de 3 computadores ... optei por usar o Paradox ( sem problemas de desempenho ) Em outra rede interna de 7 computadores ... optei por usar o Interbase/ Firebird ( sem problemas com mais de 100.000 registros ) Numa rede na internet .. optei por usar o MYSQL ( a velocidade depende da conexão, do numero de acessos e da versão do MYSQL no servidor ) OBS: O interbase versão 6.5 ou 7.0 trabalha muito bem com 15 micros .... mas o importante não é tanto o banco de dados e sim a configuração do micro que será usado como servidor de dados. abraço
  7. funciona do mesmo jeito para o Firebird Use um Timer para ficar atualizando de tempos em tempos os dados no DBgrid abraço
  8. Vi que tem muitos procurando por uma rotina assim Façam bom uso :rolleyes: function FNUMD(Objeto: TEdit; Texto, VKey: String; Espaco, Decimal: Integer): String; Var vChar, vDiv : String; I : Integer; begin vDiv := '1'; For I := 1 to Decimal do vDiv := vDiv + '0'; vChar := copy(Texto,1,length(Texto)); if (vchar = '') or (vchar = '0') then vchar := vkey else vchar := vchar + vkey; While ( pos( ',', vChar ) > 0 ) or ( pos( '.', vChar ) > 0 ) do begin Delete( vChar, pos( '.', vChar ), 1 ); Delete( vChar, pos( ',', vChar ), 1 ); end; Objeto.MaxLength := Espaco; Objeto.Text := Format('%*.*n',[Espaco,Decimal,StrToFloat(vchar)/StrToInt(vDiv)]); Objeto.SelStart := length(Objeto.text); end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if pos('R$',Edit1.Text) > 0 then Edit1.Clear; if key = #13 then begin Edit1.text := format('%20s',['R$ '+ trim(Edit1.text)]); exit; end; if not (key in ['0'..'9',',', #8]) then key := #0 else FNUMD(Edit1,trim(Edit1.text),key,20,2); end; OBS: O Edit aceita somente numeros, que serão digitados da direita para esquerda em formato de moeda Ao digitar um enter o edit finalizará recebendo o simbolo 'R$' antes do numero abraço
  9. Veja se encontra nas apostilas http://www.delphimais.com/uploads/$mydirname/rave.zip http://www.nevrona.com/files/ravedevguide5.pdf abraço
  10. Qual é a versão do Rave que esta usando ?
  11. Não é nele e sim no objeto Band Com o objeto Band1 selecionado, altere as seguintes propriedades: BandStyle: Nessa opção marque: Body Header (Cabeçalho) First (Primeira página) New Page (Nova página) ControllerBand: DataBand1 abraço
  12. Neste caso o Custom size deve ter as medidas da folha como se fosse paisagem abraço
  13. Exemplo: inserir uma imagem no cabeçalho do relatório. Volte ao código do evento PrintHeader e altere conforme código abaixo: var Bitmap : TBitmap; begin with Sender as TBaseReport do begin BitMap := TBitmap.Create; try Bitmap.LoadFromFile('logo_codegear.bmp'); PrintBitmapRect(1.0,1.0,2.0,2.0, Bitmap); finally FreeAndNil(Bitmap); end; SetFont('Arial',12); Bold := True; ... end Basicamente o que foi feito ? Foi declarado uma variável do tipo TBitMap, instanciada a variável, carregamos a imagem na mesma, após isso o método PrintBitmapRect foi utilizado passando, o x e y de localização e o x e y de tamanho, poderíamos também utilizar o método PrintBitmap onde ao invés de passar o x e y de tamanho, passaríamos o x e y de escala da imagem. abraço
  14. Já experimentou usar assim: abraço
  15. Veja se este artigo ajuda: http://www.devmedia.com.br/articles/viewcomp.asp?comp=8007 abraço
  16. Veja : http://www.softplatz.net/shots/16594-src.gif http://www.esbconsult.com/esbraveviewer.zip Apostilas que podem ajudar http://scriptbrasil.com.br/forum/index.php...st&p=562601 abraço
  17. Image := TJPEGImage.Create; [Error] untDmVistomax.pas(151): Incompatibles types: 'String' and 'TJPEGImage'; [Fatal Error] VistoMax.dpr(7): Could not compile used unit 'untDmVistomax.pas' Tipos incompatíveis: String e TJPEGImage Image: TJPEGImage; Voce deve procurar e tirar do seu código onde existe uma definição para a variavel Image como string Voce mesmo responde parte do problema: Só existem 2 componentes no rave que posso usar: "Bitmap" e "Metafile". Se a imagem armazenada no banco de dados não for BMP, dá erro de formato Motivo pelo qual foi usada esta rotina para ler o formato JPG e transformá-lo em BMP uses JPEG; 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; OBS: Acho que a versão do Rave que voce esta usando não permite o uso direto do formato JPG, caso contrario poderia usar a outra rotina para imprimir 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; Neste caso voce pode tentar No evento onGetRow do seu TRvDataSetConnection chame a procedure: CarregaRaveImagem(NomeDoRelatorio.Page1,NomeDoComponenteImagemNoRave,CaminhoDaImagem); Connection.DoGetRow; Crie esta procedure no seu projeto (na Unit onde estiver os componentes do rave): procedure CarregaRaveImagem(rvPagina,rvImagemNome,bdArquivo:String); var B: TRaveBitmap; P: TRavePage; Jpg: TJpegImage; begin // Cria Objeto JPEGImage para carregar o arquivo Jpeg. Jpg := TJpegImage.Create; try // Pesquisa componentes dentro do projeto rave. P := RvSisterm.ProjMan.FindRaveComponent(rvPagina, nil) as TRavePage; B := RvSisterm.ProjMan.FindRaveComponent(rvImagemNome, P) as TRaveBitmap; // verifica se existe um JPG referente a imagem if FileExists(bdArquivo) then begin // Carrega o arquivo do disco. Jpg.LoadFromFile(bdArquivo); // Atribui ao Rave Bitmap component. B.Image.Assign(Jpg); end; finally Jpg.Free; end; end; abraço
  18. Compilei este código.. não tem erros unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure ReportSystem1DecodeImage(Sender: TObject; ImageStream: TStream; ImageType: String; Bitmap: TBitmap); procedure ReportSystem1Print(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses JPEG; 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; 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; end. O primeiro converte a imagem JPG para BMP O Segundo Imprime a imagem JPG em um tamanho especifico Outros componentes http://www.delphiarea.com/products/delphi-...onents/picshow/ http://www.torry.net/pages.php?id=104 Ou faça uma busca no forum http://scriptbrasil.com.br/forum/index.php...mp;highlite=jpg abraço
  19. Poxa Pirambu ... acho que voce tem um bom conhecimento na linguagem, então não deveria ser tão dificil para voce conseguir resolver este pequeno problema. Veja a mudança no código: function FNUMD(Objeto: TEdit; Texto, VKey: String; Espaco, Decimal: Integer): String; Var vChar, vDiv : String; I : Integer; begin vDiv := '1'; For I := 1 to Decimal do vDiv := vDiv + '0'; vChar := copy(Texto,1,length(Texto)); if (vchar = '') or (vchar = '0') then vchar := vkey else vchar := vchar + vkey; While ( pos( ',', vChar ) > 0 ) or ( pos( '.', vChar ) > 0 ) do begin Delete( vChar, pos( '.', vChar ), 1 ); Delete( vChar, pos( ',', vChar ), 1 ); end; Objeto.MaxLength := Espaco; Objeto.Text := Format('%*.*n',[Espaco,Decimal,StrToFloat(vchar)/StrToInt(vDiv)]); Objeto.SelStart := length(Objeto.text); end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if pos('R$',Edit1.Text) > 0 then Edit1.Clear; if key = #13 then begin Edit1.text := format('%20s',['R$ '+ trim(Edit1.text)]); exit; end; if not (key in ['0'..'9',',', #8]) then key := #0 else FNUMD(Edit1,trim(Edit1.text),key,20,2); end; abraço
  20. Veja este post http://www.forumweb.com.br/foruns/index.ph...post__p__180861 abraço
  21. OBS: dm.ESTAVD3.Edit; dm.ESTAVD3.Open; corrija: dm.ESTAVD3.Open; dm.ESTAVD3.Edit; abraço
  22. Veja estes posts: http://scriptbrasil.com.br/forum/index.php...st&p=458260 http://scriptbrasil.com.br/forum/index.php...st&p=462351 http://scriptbrasil.com.br/forum/index.php...=salvar+imagens abraço
  23. Só lembrando : O codigo de barras deve ser do tipo varchar e não integer O ultimo digito é o digito verificador e não é gravado no banco ( o campo devera ter apenas 12 numeros ) ... este digito é gerado na leitura do código procedure TFvendas.EditCodBarraKeyPress(Sender: TObject; var Key: Char); Veja que voce esta usando o metodo OnKeyPress.... não deveria, pois o leitor funciona como se voce estivesse digitando cada numero do código, ou seja, o metodo será chamado uma vez para cada numero que o leitor está lendo. Esse código deveria estar no evento OnExit do Edit procedure TFvendas.EditCodBarraExit(Sender: TObject); begin try tbproduto.IndexDefs.Clear; tbproduto.IndexName := 'bycodbarra'; tbproduto.IndexDefs.Update; tbproduto.open; tbproduto.FindNearest([trim(EditCodbarra.Text)]); except on EDBEngineError do MessageDlg('Erro na busca! Tente novamente.', mtError, [mbOK], 0); end; begin if EditCodPed.Text='' then begin Showmessage('Escolha Nova Venda, para continuar'); abort; end; tbitem.insert; tbitem['codigo']:= tbproduto['codigo']; tbitem['nome']:= tbproduto['item']; tbitem['Qtd']:= 1; tbitem['vrunit']:= tbproduto['venda']; tbitem['data']:=DateTostr(now); tbitem.post; EditCodbarra.Clear; EditCodbarra.SetFocus; end; end; abraço
  24. Jhonas

    Somando Valores

    Faça uma busca no forum sobre o assunto http://scriptbrasil.com.br/forum/index.php...ighlite=qrgroup abraço
  25. A sua query esta correta, e para cada qrgroup voce deve utilizar a propriedade Expression e colocar o campo que sera chave para cada grupo ... e use uma banda Detail para cada QRGroup linkando-o ao QRGroup a que pertence, usando a propriedade LinkBand do Detail exemplo LinkBand = QGRoup1 abraço
×
×
  • Criar Novo...