quarta-feira, 27 de maio de 2009

Resultados no rodapé do GridView

Boenas pessoal, retornando depois de um baita tempo sem postar aki...

Esta semana precisei exibir resultados no rodapé do GridView, aki no blog tem um post sobre o DataGrid, porém é um pouco diferente.

Vamos calcular a média dos valores de uma coluna, sem precisar ir ao banco para tal. No evento DataBound do Grid View:

var
  soma:Integer
begin
  for I := 0 to GridView1.Rows.Count - 1 do
  begin
  Soma := Soma+Int32.Parse(GridView1.Rows[I].Cells[1].Text);
  end;
end;

Esse loop irá percorrer as linhas e somará os valores da coluna 1 do grid. Após isso basta calcular a média, para isso crie uma variável 'media' do tipo Double:

media := Soma/I;

Pronto, agora basta mostrar o resultado no rodapé:

GridView1.FooterRow.Cells[0].Text := 'Média dos Valores:';
GridView1.FooterRow.Cells[0].HorizontalAlign := HorizontalAlign.Right;
GridView1.FooterRow.Cells[1].Text := media.ToString('n');
GridView1.FooterRow.Cells[1].HorizontalAlign := HorizontalAlign.Center;

Na coluna 0 estamos mostrando o texto e na 1 a média dos valores já formatada.

Um abraço.

PS: Não esqueçam de visitar o Blog do Signori !

terça-feira, 5 de maio de 2009

Enviando e-mail no DELPHI for ASP.NET utilizando GMail

Olá pessoal, neste pequeno tutorial pretendo mostrar um exemplo simples de envio de e-mail em ASP.NET utilizando os serviços do Gmail e DELPHI 2007 for .NET, dica do Edinei.

Primeiramente vamos criar uma nova aplicação, File -> New -> ASP.NET Web Application.



Feito isso, adicione três TextBox, um Button e uma Label, renomeie a propriedade ID das textboxes para: txbdestinatario, txbassunto e txbmensagem respectivamente, a Label para lblretorno e o Button para btnenviar, aumente o tamanho das textboxes de acordo com sua preferência e mude a propriedade textMode da txbmensagem para “Multiline”. Apague o que tiver na propriedade Text da lblretorno e mude a propriedade Text do btnenviar para “Enviar E-mail”. O formulário deve ficar parecido com o da imagem abaixo.



O txtdestinatario vai receber o endereço de e-mail que se deseja enviar uma mensagem, txbassunto o assunto e txbmensagem a mensagem, a lblretorno irá mostrar se o e-mail foi enviado com sucesso ou se ocorreu algum erro durante o envio e o btnenviar chamará a função de envio de e-mail.

Para usar as funções de envio de e-mail do .NET, é necessário adicionar as seguintes bibliotecas na uses.


Uses
System.Net.Mail, System.Net.Configuration, System.Text, System.Net;

Feito isso, de um duplo clique no btnenviar e implemente a função que vai enviar o e-mail através do serviço de envio de e-mail da Google, o gmail, veja função abaixo.

procedure TDefault.btnEnviar_Click(sender: TObject; e: System.EventArgs);
var
EmailRemetente: string;
NomeRemetente: string;
Mail: MailMessage;
Client: SmtpClient;
begin
Mail := MailMessage.create;
Client := SmtpClient.create;
EmailRemetente := 'seuEmail@gmail.com'; // O e-mail do remetente
NomeRemetente := 'Seu Nome'; // O nome do remetente
try
Mail.&To.Add(txbDestinatario.text); // Destinatário
Mail.From := MailAddress.create(EmailRemetente, NomeRemetente, System.Text.Encoding.UTF8);
Mail.Subject := txbassunto.text; // Assunto do E-mail
mail.SubjectEncoding := System.Text.Encoding.UTF8;
mail.Body := txbmensagem.text; // Mensagem do e-mail
mail.BodyEncoding := System.Text.Encoding.UTF8;
mail.IsBodyHtml := true;
mail.Priority := MailPriority.High; // Prioridade do E-Mail
client.Credentials := NetworkCredential.create(EmailRemetente, 'AquiSuaSenha'); // usuário e senha do Gmail
client.Port := 587; // Esta porta é a utilizada pelo Gmail para envio
client.Host := 'smtp.gmail.com'; // Definindo o provedor que irá disparar o e-mail
client.EnableSsl := true; // Gmail trabalha com Server Secured Layer
try
client.Send(mail);
lblretorno.text := 'E-mail enviado com sucesso!';
except on erro:exception do
lblretorno.text := 'Erro ao tentar enviar e-mail. '+erro.message;
end;
finally
client.free;
mail.free;
end;
end;

Depois de implementada a função é só compilar e executar (CTRL+SCHIFT+F9) para testar o envio de e-mails.

Até.

Referências: http://www.devmedia.com.br/articles/viewcomp.asp?comp=12520