Bem vindo ao meu blog, faça comentários ao meu código para tentarmos chegar a uma boa solução

quinta-feira, 26 de julho de 2007

Enviar

MailMessage theMailMessage = new MailMessage("from@email.com", "to@email.com");
theMailMessage.Body = "body email message here";
theMailMessage.Attachments.Add(new Attachment("pathToEmailAttachment"));
theMailMessage.Subject = "Subject here";
SmtpClient theClient = new SmtpClient("IP.Address.Of.Smtp");
theClient.UseDefaultCredentials = false;

System.Net.NetworkCredential theCredential = new System.Net.NetworkCredential("user@name.com", "password");

theClient.Credentials = theCredential;

theClient.Send(theMailMessage);

quinta-feira, 19 de julho de 2007

Primeiro dia do Mês

Exemplo:

Minimum ( {sp_rpt_listagem_Mapa_Fact;1.datai} )

Último dia do Mês (novas formas)

Uma forma:
  • Global datetimevar firstDate:= datetime(year(CurrentDateTime), month(CurrentDateTime),1,0,0,0) ;
  • Global datetimevar lastMonth:= dateadd("m",+0,firstDate); lastMonth:=dateadd("d",-1, lastMonth);

Outra forma:

If {table.date} in LastFullMonth Then
{table.date}
Else
0
Its Returns the Value if the date falls on any date from the previous month.
if today is 19/07/2007 its returns 31/07/2007

Último dia do Mês

Calculating the first of a target month is done differently depending on whether the target month is the current month or the month of a date field. If you are looking for the current month you can use: Minimum ( MonthToDate )This will give you the first day of the current month in any report. Not everyone realizes this but you can take the Minimum or Maximum of any one of the 27 date range functions Crystal provides. However, if the date is a database field, a formula or a parameter you need a different syntax. I use:

{Table.Date} - Day ( {Table.Date} ) + 1

The {Table.Date} field can be replaced with any Date value. If your field is a DateTime value you can add the DATE() function around the whole calculation to strip off the time:

DATE ( {Table.Date} - Day ( {Table.Date} ) + 1 )

Finding the last day of a month can be done several ways but I think the one below is the simplest. It can be used with any date value including the CurrentDate function:

DateAdd ('m' , 1 , {Orders.Order Date} - day({Orders.Order Date}) + 1) - 1

You will notice that the first formula is used within this one. I find the first of the target month, then use DateAdd to add one month and find the first of the following month. Finally I subtract 1 day to get the last day of the month. Note that DateAdd always returns a DateTime value. As above, you can use the DATE() function around this formula to strip off the time. These calculations are especially handy when you need rolling date columns that are all derived from a parameter date. By adding and subtracting more months you can calculate the first and last date of a whole range of months.

Optimização da função das Datas

Optimização feita pelo meu BOSS (Afonso Netsigma) --- ;-) Fixola

-- Retorna data como string
RETURNS nvarchar(25)ASBEGIN DECLARE @Datafmt nvarchar(25)
-- Verifica se a data é válida
IF @data Is Null SET @Datafmt = '' -- dia-mes-ano
ELSE IF @formato = 2
BEGIN set @Datafmt=convert(nvarchar(10),@data,105)
END -- somente dia
ELSE IF @formato = 3
BEGIN set @Datafmt=convert(nvarchar(2),@data,105)
END -- somente mês
ELSE IF @formato = 4
BEGIN set @Datafmt=convert(nvarchar(2),@data,101)
END -- somente Ano
ELSE IF @formato = 5 BEGIN set @Datafmt=convert(nvarchar(4),@data,112) END
-- mes/dia/ano
ELSE IF @formato = 6 BEGIN set @Datafmt=convert(nvarchar(10),@data,101) END -- mes-dia-ano ELSE IF @formato = 7 BEGIN set @Datafmt=convert(nvarchar(10),@data,110) END -- Formato Longo ELSE IF @formato = 8 BEGIN SET @Datafmt =Convert(varchar(2), @data,105) SET @Datafmt = @Datafmt + ' de ' -- concatena o mês SET @Datafmt = @Datafmt + CASE Month(@data) WHEN 1 THEN 'Janeiro' WHEN 2 THEN 'Fevereiro' WHEN 3 THEN 'Março' WHEN 4 THEN 'Abril' WHEN 5 THEN 'Maio' WHEN 6 THEN 'Junho' WHEN 7 THEN 'Julho' WHEN 8 THEN 'Agosto' WHEN 9 THEN 'Setembro' WHEN 10 THEN 'Outubro' WHEN 11 THEN 'Novembro' ELSE 'Dezembro' END SET @Datafmt = @Datafmt + ' de ' -- concatena o ano SET @Datafmt = @Datafmt + convert(nvarchar(4), @data, 112) END -- Formato Curto ELSE IF @formato = 9 BEGIN set @Datafmt=convert(nvarchar(11),@data,106) END -- mês/ano ELSE IF @formato = 10 BEGIN set @Datafmt=convert(nvarchar(11),@data,106) set @Datafmt=substring(@Datafmt,4,3)+'/'+substring(@Datafmt,8,4) END -- mm/yyyy ELSE IF @formato = 11 BEGIN set @Datafmt=convert(nvarchar(10),@data,103) set @Datafmt=substring(@Datafmt,4,7) END -- dd/mm/yyyy hh:mm (24h) ELSE IF @formato = 12 BEGIN set @Datafmt=convert(nvarchar(10),@data,103) + ' ' + convert(nvarchar(5),@data,108) END
-- dd/mm/yyyy (Default) = 1

ELSE
BEGIN set @Datafmt=convert(nvarchar(10),@data,103)
END
RETURN(@Datafmt)END

sexta-feira, 13 de julho de 2007

Cálculo de diferenças de Datas

SELECT DATEDIFF(day, '2007-04-01','2007-06-04' ) AS no_of_Dias

SELECT DATEDIFF(month, '2007-04-01','2007-06-04' ) AS no_of_Meses

SELECT DATEDIFF(year, '2007-04-01','2007-06-04' ) AS no_of_Anos

quinta-feira, 12 de julho de 2007

Função (Script) para trabalhar com Datas

/* Este script permite criar a função dbo.fn_dateformat a qual possibilita a formatação de uma
data em até 12 formatos diferentes.
Coloque o script sobre o Query Analyzer e execute o script na base de dados onde deseja que
a função seja criada.
OBS: Se desejar, use este script como um template para desenvolver sua própria função.
*/

USE PUBS
GO
IF EXISTS (SELECT [name] FROM sysobjects WHERE id = object_id('dbo.fn_dateformat') and xtype='FN')
DROP FUNCTION dbo.fn_dateformat
GO
CREATE FUNCTION dbo.fn_dateformat (@data smalldateTime, @formato int)
/***************************************************************************
Esta função permite formatar uma data em um dos formatos abaixo.
Parâmetros:
@data - data a ser formatada
@formato - determina o formato de saída para a data
Opções de formato:
1 - dia/mes/ano ->> 31/08/2005 (Default)
2 - dia-mes-ano ->> 31-08-2005
3 - Somente dia ->> 31
4 - Somente Mês ->> 08
5 - Somente Ano ->> 2005
6 - mes/dia/ano ->> 08/31/2005
7 - mes-dia-ano ->> 08-31-2005
8 - Formato Longo ->> 31 de Agosto de 2005
9 - Formato Curto ->> 31-Agosto-2005
10 - Mês/Ano ->> Agosto/2005
11 - Mês/Ano ->> 08/2005
12 - Dia/Hora ->> 31-08-2005 13:14
Exemplo:SELECT dbo.fn_dateformat(getdate(),1) as [dia/mes/ano]
SELECT dbo.fn_dateformat(getdate(),10) as [Mes/Ano]
SELECT dbo.fn_dateformat(getdate(),12) as [Dia/Hora]
Autor: Nilton Pinheiro
Website: http://www.mcdbabrasil.com.br
Baseado no Original: http://www.sqlservercentral.com/scripts/contributions/1568.asp

*******************************************************************************/
-- Retorna data como string
RETURNS nvarchar(20)
AS
BEGIN
DECLARE @Datafmt nvarchar(20)
-- Verifica se a data é válida
IF @data Is Null SET @Datafmt = ''
-- dia-mes-ano
ELSE IF @formato = 2
BEGIN
IF Day(@data) < datafmt =" '0'" datafmt =" Convert(varchar(2),Day(@data))" datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 3" datafmt =" ('0'" datafmt =" (Convert(varchar(2)," formato =" 4" datafmt =" '0'" datafmt =" Convert(varchar(2)," formato =" 5" datafmt =" (SELECT" formato =" 6" datafmt =" '0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 7" datafmt =" '0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 8" datafmt =" ('0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 9" datafmt =" ('0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 10" datafmt =" CASE" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 11" datafmt =" '0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 12" datafmt =" ('0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" ('0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt">