Office System

The Office Developer Blog (by Luiz Cláudio C. V. Rocha - São Paulo, Brazil)

December 2007 - Posts

SharePoint SDK em português

Uma boa novidade para a comunidade de desenvolvedores Office do Brasil é a disponibilidade do SDK (Software development Kit) do Office SharePoint Server 2007 e do Office SharePoint Services 3.0 em português.

A iniciativa é muito boa, pois temos grande carência de material sobre SharePoint em português, e o SDK é uma excelente fonte para quem está iniciando e também para quem já tem alguma experiência.

O conteúdo é diariamente enriquecido pelos moderadores do Wiki, dentre os quais estão MVPs e especialistas em SharePoint.

Mais detalhes sobre a iniciativa: http://mvplead.spaces.live.com/blog/cns!FE52798789F5F661!515.entry

SDK em português do SharePoint Server: http://msdnwiki.microsoft.com/pt-br/mtpswiki/ms496201.aspx

SDK em português do MOSS: http://msdnwiki.microsoft.com/pt-br/mtpswiki/ms472057.aspx 

 

 

VBA - Converter números para horas (Ex: 2,5 para 2:30)

Como no Access a exibição de horas é limitada (só vai até 23:59), é uma prática comum usar números Single nos cálculos. A exibição nos relatórios, porém, precisa ser no formato de horas.

Para converter um número Single para uma String no formato de horas, a seguinte função pode ser usada:

 

'**************************************************
'Módulo escrito por Luiz Cláudio C. V. Rocha
'Data: 20/3/2001
'Funções para se trabalhar com horas acima de 24h
'************************************************** 

Public Function HrStr(dblHora As Double) As String
'Pega um valor numérico e o converte para Horas/Minutos
'Ex: 123,5 = "123:30"
'Ex: 23,9833333333333 = "23:59"

Dim strHoras As String
Dim strMinutos As String

'Pega as horas (parte inteira)
strHoras = CStr(Fix(dblHora))

'Pega os minutos
strMinutos = Format$(Abs((dblHora - Fix(dblHora)) * 60), "00")

'Verifica se o total de minutos é 60
If strMinutos = "60" Then
strMinutos = "00"
strHoras = CStr(CDbl(strHoras) + 1)
End If

'Concatena os dois
HrStr = strHoras & ":" & strMinutos

End Function

Esta outra função faz o contrário: pega um string no formato de horas e converte para número:

Public Function HrDbl(stHora As String) As Double
'Converte um string de hora (formato (h)hh:mm) para Double
'Ex: "135:30" = 135,5
'Ex: "23:59" = 23,9833333333333
Dim dblHoras As Double
Dim intMinutos As Integer
Dim blnDoisPontos As Boolean, blnNum As Boolean
Dim strNum As String

'Verifica se o sinal de dois pontos ':' está na terceira casa
'da direita para esquerda
If Asc(Left(Right(stHora, 3), 1)) = 58 Then
    blnDoisPontos = True
Else
    blnDoisPontos = False
End If

'Verifica se o resto dos dígitos são numéricos
strNum = Left(stHora, Len(stHora) - 3) & Right(stHora, 2)
If IsNumeric(strNum) = True Then
    blnNum = True
Else
    blnNum = False
End If

'Sai do procedimento se o formato estiver incorreto
If (blnDoisPontos = False) Or (blnNum = False) Then
    MsgBox "Informe a hora no formato hh:mm", vbCritical + vbOKOnly
    Exit Function
End If

'Pega os minutos
If CDbl(strNum) < 0 Then
    intMinutos = CInt(Right(strNum, 2)) * (-1)
Else
    intMinutos = CInt(Right(strNum, 2))
End If

'Pega as horas
dblHoras = Fix(CDbl(Left(strNum, Len(strNum) - 2)))

'Calcula a hora
HrDbl = dblHoras + (intMinutos / 60)

End Function

Anexei um exemplo mostrando como usar. 

SmartPhone acessando Exchange Server - Erro de certificado

Como passo boa parte da semana visitando clientes, adquiri um SmartPhone (Motorola MotoQ, com Windows Mobile 5) com o objetivo de acessar meu e-mail e de usá-lo como modem para meu notebook (por meio da tecnologia 3G/EVDO).

Quando passei a hospedar o servidor de e-mail (Exchange Server 2007) na empresa, precisei configurar o acesso no ActiveSync. Isto não é difícil, pois não precisamos colocar configurações do servidor, apenas o endereço do Outlook Web Access e as credenciais de acesso.

Ao executar a sincronização, porém, foi mostrado um erro de certificado e o processo foi abortado. Motivo: o Exchange da minha empresa usa conexão segura, mas o certificado não é público, é privado. Alguns certificados públicos (VeriSign, Thawte, Cybertrust, etc.) são reconhecidos pelo SmartPhone, mas os privados precisam ser instalados (a segurança não pode ser configurada para nível baixo).

 Como instalar o certificado?

1) Conecte o SmartPhone ao computador e ative o ActiveSync.

2) Abra a estrutura de pastas do SmartPhone.

3) Crie uma pasta "\Storage".

4) Copie para a pasta "\Storage" o mesmo arquivo ".cer" usado no computador Desktop para acessar o servidor (o administrador de rede pode fornecer este arquivo).

5) Pelo gerenciador de arquivos do SmartPhone, execute o arquivo ".cer".

Se a instalação falhar (como no meu caso), faça o download da ferramenta  SPAddCert, disponível aqui: http://support.microsoft.com/kb/841060/en-us

O download é um arquivo zip.

6) Extraia deste zip o arquivo SpAddCert.exe e copie-o para o SmartPhone (pode ser no Storage Card).

7) Execute, pelo gerenciador de aquivos do SmartPhone, o SpAddCert. Ele vai procurar na pasta "\Storage" o arquivo ".cer" e fazer a instalação.

Agora você conseguirá acessar o Exchange normalmente.

Obs: se o aparelho estiver configurado para sincronizar e-mails com o Outlook do desktop, você precisará desmarcar a opção e-mail.