ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

como Criar impressao de lista e relatorio???

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
cr4zyluiz
Novato
Novato


Registrado: Sexta-Feira, 2 de Abril de 2010
Mensagens: 7

MensagemEnviada: Sex Abr 02, 2010 1:38 am    Assunto: como Criar impressao de lista e relatorio??? Responder com Citação

Bom Dia.. estou desenvolvendo um sistema de cadastro e impressao. para controle de entrega de leite de uma igreja...

estou usando o sql server 2005 e o delphi 2007
estou com algumas dificuldades..

1ª é como salvar foto jpg dentro do banco para cada cadastrado.
no momento esta assim a função de salvar a foto:
procedure TFrmCadBeneficiario.Button3Click(Sender: TObject);
begin
inherited;
if OpenPictureDialog1.Execute then
begin
DBImage1.picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;

2ª eu até to conseguindo adcionar os cadastros novos.. porém naum estou conseguindo excluir.:
procedure TFrmCadBeneficiario.BtnExcluirClick(Sender: TObject);
begin
inherited;
DM.ClientSataSet1.delete;
end;

e 3ª porém a q eu acho bem mais complicada... preciso fzer uma tela pra impressão... tem q ser impressão em lista pra controle e a impressao do formulario em si.. como se fosse um crachá com foto e tudo mais...o fonte dessa parte ficou extremamente grande e complexo pra mim eu usei o quickrep para fzer o form do relatorio.. mais ele naum aparece nada!

se alguem puder me dar uma ajuda.. eh de extrema urgência issu..

vlw! qq coisa me add no msn cr4zyluiz@hotmail.com
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
betosurf
Novato
Novato


Registrado: Sexta-Feira, 19 de Setembro de 2008
Mensagens: 50

MensagemEnviada: Sex Abr 02, 2010 10:05 am    Assunto: Re: como Criar impressao de lista e relatorio??? Responder com Citação

cr4zyluiz escreveu:
Bom Dia.. estou desenvolvendo um sistema de cadastro e impressao. para controle de entrega de leite de uma igreja...

estou usando o sql server 2005 e o delphi 2007
estou com algumas dificuldades..

1ª é como salvar foto jpg dentro do banco para cada cadastrado.
no momento esta assim a função de salvar a foto:
procedure TFrmCadBeneficiario.Button3Click(Sender: TObject);
begin
inherited;
if OpenPictureDialog1.Execute then
begin
DBImage1.picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;

2ª eu até to conseguindo adcionar os cadastros novos.. porém naum estou conseguindo excluir.:
procedure TFrmCadBeneficiario.BtnExcluirClick(Sender: TObject);
begin
inherited;
DM.ClientSataSet1.delete;
end;

e 3ª porém a q eu acho bem mais complicada... preciso fzer uma tela pra impressão... tem q ser impressão em lista pra controle e a impressao do formulario em si.. como se fosse um crachá com foto e tudo mais...o fonte dessa parte ficou extremamente grande e complexo pra mim eu usei o quickrep para fzer o form do relatorio.. mais ele naum aparece nada!

se alguem puder me dar uma ajuda.. eh de extrema urgência issu..

vlw! qq coisa me add no msn cr4zyluiz@hotmail.com



1º. Não salve a imagem no banco de dados, e sim o caminho da imagem. O que eu faço: A imagem está no meus documentos, o usuários seleciona aquela imagem, com isso o sistema faz uma cópia da imagem para uma pasta Imagens dentro do sistema, o caminho da imagem ficará C:\meusistema\imagens\foto.jpg.

2º.
Depois do delete de um ApplyUpdates.


No quickreport para aparecer algo você precisa colocar bands.. coloca uma banda detail e coloque alguma qrlabel dentro que você verá que sairá impressão..

Quickreport1.Preview. (para visualizar)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
cr4zyluiz
Novato
Novato


Registrado: Sexta-Feira, 2 de Abril de 2010
Mensagens: 7

MensagemEnviada: Sex Abr 02, 2010 2:03 pm    Assunto: Responder com Citação

Beto... blza... soh q no report eu to usando um QuickRep e um QrBand...
vc conhece algum post q explique qual linkage q fais.. ouw algum exemplo..

o Quickreport1.Preview eu jah to usando e naum aparece nada nele...

e na questao da foto vo tentar fzer desse jeito!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
betosurf
Novato
Novato


Registrado: Sexta-Feira, 19 de Setembro de 2008
Mensagens: 50

MensagemEnviada: Sex Abr 02, 2010 5:45 pm    Assunto: Responder com Citação

Eu faço assim:

1º. Adiciona o quickreport, coloca uma banda e na sua propriedade BandType coloca Title. Coloca um qrSubDetail e na sua propriedade DataSet ligo com uma query(ibquery1), que você adicionará nessa mesma tela do quickreport..

2º. Essa IBQuery1 liga com a DataBase que está no DM, e liga com a sua tabela.

3º. Adicione dois qrtext no qrsubdetail, ligue com a ibquery1.. coloque o nome e endereço (por exemplo).

se eu quero listar todos os clientes eu faço um sql:
ibquery1.close;
ibquery1.sql.clear;
ibquery1.sql.add('select * from clientes');
ibquery1.open;
quickreport.preview;

muito importante:
* não esqueça de ligar o qrSubDetail com o ibquery1 pela propriedade dataset.

qquer coisa estamos ai..
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
cr4zyluiz
Novato
Novato


Registrado: Sexta-Feira, 2 de Abril de 2010
Mensagens: 7

MensagemEnviada: Sex Abr 02, 2010 5:49 pm    Assunto: Quase lah! Responder com Citação

MEu Querido conseguiii.... Só q um outro detalhe eh q toda veis q vai pra impressao ele vai todos os registros.. to tentando colocar uma opção de imprimir tudo ou só oq está selecionado... mais agora fiquei meio sem idéia de como fazer!
e também naum consegui o da foto...
voce disse pra eu salvar uma copia da foto em um diretorio dentro da pasta do sistema q eu to fzendo certo?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
betosurf
Novato
Novato


Registrado: Sexta-Feira, 19 de Setembro de 2008
Mensagens: 50

MensagemEnviada: Sex Abr 02, 2010 8:19 pm    Assunto: Re: Quase lah! Responder com Citação

cr4zyluiz escreveu:
MEu Querido conseguiii.... Só q um outro detalhe eh q toda veis q vai pra impressao ele vai todos os registros.. to tentando colocar uma opção de imprimir tudo ou só oq está selecionado... mais agora fiquei meio sem idéia de como fazer!
e também naum consegui o da foto...
voce disse pra eu salvar uma copia da foto em um diretorio dentro da pasta do sistema q eu to fzendo certo?


Pra colocar a imagem você faz assim:

Adiciona um componente image na tela.
Adiciona um componente chamado openpicturedialog.
Adiciona dois botões: localizar e salvar.

No botão localizar, o código abaixo:
Código:
   
var
 foto:string;
begin
 image1.Picture.Assign(JPG2Bmp(OpenPictureDialog1.FileName));
 foto:=extractfilename(OpenPictureDialog1.filename);
 DM.ClientesQueryFOTO.Value:='C:\pasta_do_sistema\imagens\'+foto;
end;


no botão salvar, o código abaixo:
(com isso ele copia a foto de onde estiver para a pasta imagens do seu sistema, não esqueça de criar uma pasta chamada imagens dentro da pasta do seu sistema).
Código:

var
  Origem, Destino: string;
begin
  Origem := OpenPictureDialog1.FileName;
  Destino := DM.ClientesQueryFOTO.Value;
  if not CopyFile(PChar(Origem), PChar(Destino), false) then
   ShowMessage('Erro ao copiar ' + Origem + ' para ' + Destino);
end;


utilize a função abaixo para o botão de localizar funcionar, é só copiar e colar em qualquer lugar do form.

Código:

Function JPG2Bmp(Arquivo: TFileName): TBitmap;
var
  Img: TPicture;
begin
  Img := TPicture.Create;
  Result := TBitmap.Create;
  try
    Img.LoadFromFile(Arquivo);
    Result.Height := Img.Height;
    Result.Width := Img.Width;
    Result.Assign(Img.Graphic);
  finally
    Img.Free;
  end;
end;


não esqueça de delarar no uses do form o:
jpeg
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
betosurf
Novato
Novato


Registrado: Sexta-Feira, 19 de Setembro de 2008
Mensagens: 50

MensagemEnviada: Sex Abr 02, 2010 8:23 pm    Assunto: Responder com Citação

já para aparecer somente o que você quer no relatório você faz via sql..

o sql que lhe falei é para mostrar todos os clientes..
Código:
'select * from clientes'


se você quer somente clientes que comecem com a letra A, indiferente de ser maiuscula ou minuscula;
Código:
'select * from clientes where upper(nome) like "a%" ';


se você quer todos os clientes em ordem alfabetica:
Código:
'select * from clientes order by nome'
[/code]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
cr4zyluiz
Novato
Novato


Registrado: Sexta-Feira, 2 de Abril de 2010
Mensagens: 7

MensagemEnviada: Sex Abr 02, 2010 9:11 pm    Assunto: Responder com Citação

entaum na imagem tah dando um erro.. meio estranho ateh.. tentei com o dbimage e o timage...
Function JPG2Bmp(Arquivo: TFileName): TBitmap;
var
Img: TPicture;
begin
Img := TPicture.Create;
Result := TBitmap.Create;
try
Img.LoadFromFile(Arquivo);
Result.Height := Img.Height;
Result.Width := Img.Width;
Result.Assign(Img.Graphic); //nessa linha!
finally
Img.Free;
end;
end;

"cannot assign a TOleGraphic to a tBitmap."

agora a do relatório to tentando fzer o seguinte.. qdo o cadastro for salvo ele marcar a data q foi alterado e para impressao um campo para imprimir td e um parar imprimir por data.. no caso por dia...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
betosurf
Novato
Novato


Registrado: Sexta-Feira, 19 de Setembro de 2008
Mensagens: 50

MensagemEnviada: Sex Abr 02, 2010 10:02 pm    Assunto: Responder com Citação

estranho, no uses do form está setado as duas propriedades abaixo?
Graphics, jpeg
veja e se não der me avise.

Já no quickreport você pode adicionar dois datetimepicker.

e no select assim:
Código:

'select * from clientes'+
' where data between "' +
  FormatDateTime('yyyy/mm/dd', (DateTimePicker1.Date)) + '" and "' +
  FormatDateTime('yyyy/mm/dd', (DateTimePicker2.Date)) + '"'


com isso você lista de uma data a outra.. lembrando que no banco de dados o campo data deve obrigatoriamente ser do tipo date e não string (char,varchar).

é isso, qquer coisa to aqui..
to fazendo uma nova tela de venda pra um sistema meu, qquer coisa escreve ai.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
cr4zyluiz
Novato
Novato


Registrado: Sexta-Feira, 2 de Abril de 2010
Mensagens: 7

MensagemEnviada: Sex Abr 02, 2010 11:01 pm    Assunto: Responder com Citação

entaum.. estaum sim tanto o jpeg qto o Graphic em uses.. e continua no mesmo erro.. tbm to achando estranho....

acho q jah falei q eu tentei tanto como Timage e com o Tdbimage...
Crying or Very sad

o outro eu to tentando.. to colcando o campo pro usuario preencher a data q foi criado o registro.. tava tentando colocar pra preencher automatico mais naum sei pq num aceito..

tinha feito o Dbedit receber o formatdatetime na hora de salvar.. mais num foi!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
betosurf
Novato
Novato


Registrado: Sexta-Feira, 19 de Setembro de 2008
Mensagens: 50

MensagemEnviada: Sex Abr 02, 2010 11:21 pm    Assunto: Responder com Citação

Pra preencher automatico a data faz assim:
DM.clientesqueryDATA.asstring:=formatdatetime('dd/mm/yyyy',date);

use asstring, ao invez de value.. porque assim ele transforma em string para salvar a data no padrão dd/mm/aaaa.
Tipo na hora que clicar no botão gravar você usa o codigo que lhe falei, assim ele grava do banco de dados no formato dd/mm/aaaa.

E no relatório no quickreport você usa o datetimepicker, como na outra mensagem que lhe falei anteriormente.

----------
sobre a imagem, eu particularmente uso o Timage..
agora sobre esse erro eu particularmente não sei nem o que lhe dizer, pois pra fim funciona 100%..

essa função você está colocando aonde? coloque logo abaixo do

{$R *.dfm}
Function JPG2Bmp(Arquivo: TFileName): TBitmap;
var
Img: TPicture;
begin
.
.
.

-----------------
qquer coisa to ae..
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
cr4zyluiz
Novato
Novato


Registrado: Sexta-Feira, 2 de Abril de 2010
Mensagens: 7

MensagemEnviada: Sex Abr 02, 2010 11:37 pm    Assunto: Responder com Citação

Cara to apanhando.. vamo lah... pra pesquisar por data lah q eu te falei..

coloquei no caso dois edit.. to tentando fzer um laço pra ele buscar as datas do edit e jogar esse periodo no formulario.. mais cara.. to apanhando do delphi...

esse eh meu primeiro sistema pra cliente....

=/

e cara acho q eu te passai errado... o q eu to usando pra imprimir o relatorio eh o rave Report....

se der me adciona no msn cr4zyluiz@hotmail.com

vlw
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
cr4zyluiz
Novato
Novato


Registrado: Sexta-Feira, 2 de Abril de 2010
Mensagens: 7

MensagemEnviada: Dom Abr 04, 2010 7:56 pm    Assunto: UP!!! Responder com Citação

bom.. consegui fzer o carregamento da foto.. mais ele salvando o caminho num Dbedit e puxando por ali mesmo... agora estou com outro problema q eh na conexao..

quando eu rodo o sistema e vou incluir um novo cadastro ele abre a tela mais quando eu vou salvar ele aparece uma mensagem de erro na linha "End;" dizendo que naum foi possivel realizar a transação porque foi excedida!

quem puder me ajudar nissu e eu nao sei como faço pra fechar o programa e fzer um install.. pq todos os caminhos do sistema esta feito em cima do meu COmputador... qro q no install ele jah arrume de acordo com o COmputador do usuario

Obrigado!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB