|
O código que corre por trás de um
formulário de Outlook é normalmente escrito em VBScript, uma
linguagem simples, portável e que possivelmente conhece sobretudo
da utilização nas páginas da Internet para o Microsoft Internet
Explorer. O VBScript vem incluido no Internet Explorer, mas também
pode ser feito o download separademente, juntamente com os
componente DCOM. Deve também ter à mão, documentação sobre esta
linguagem, uma vez que o Outlook não inclui informação sobre as
funções, métodos e objectos do VBScript.
O VBScript normalmente é actualizado com novas
versões do Internet Explorer, mas convém ter a certeza de que
versão está a trabalhar, uma vez que existem certos tipos de
funções que vão desaparecendo e não podem ser utilizadas.
Em breve vou colocar nesta página, alguns
exemplos das possibilidades de utilização do VBScript e da sua
utilização com os formulários de Outlook. Também algumas
documentação e exemplos práticos para os utilizadores
interessados.
Exemplos de código:
Este exemplo de código serve para desactivar
um controlo quando se selecciona o outro.
A página modificada é Ticket.
Os controlos são CheckBox1 e ChekBox2.
Os campos são Sim, Não e Anos de experiencia.
Sub Item_CustomPropertyChange(ByVal FieldName)
Set MyPage = Item.GetInspector.ModifiedFormPages("Ticket")
Select Case FieldName
Case "Sim" 'if user selects Sim
MyPage.Controls("CheckBox1").value = false
MyPage.Controls("Anos de experiência").enabled = true
Case "Não"
MyPage.Controls("CheckBox2").value = false
MyPage.Controls("Anos de experiência").enabled = false
End Select
End Sub
|
Este exemplo é necessário quando os
utilizadores têm de preencher um campo obrigatoriamente:
Os campos Modelo computador, Sistema operativo
e Software são campos e não controlos.
Sub Send_click
Item.Save
End Sub
Function Item_Write
If Item.UserProperties.find("Modelo computador") = "" Then
MsgBox "Deverá preencher o Modelo do PC!"
Item_Write = False
Exit Function
End If
If Item.UserProperties.find("Sistema operativo") = "" Then
MsgBox "Deverá preencher o Sistema Operativo!"
Item_Write = False
Exit Function
End If
If Item.UserProperties.find("Software") = "" Then
MsgBox "Deverá preencher o Software!"
Item_Write = False
Exit Function
End If
End Function
|
Código para revelar o nome de utilizador
actual.
|
Sub CommandButton1_Click()
MsgBox "O nome de
utilizador é " &
Application.GetNameSpace("MAPI").CurrentUser
End Sub
|
Criar itens (com números sequênciais) numa
pasta.
|
Sub
Item_Open()
' Set the Outlook NameSpace
Set olns = Application.GetNameSpace("MAPI")
' Set the folder to the Contacts folder
Set myFolder = olns.GetDefaultFolder(olFolderContacts)
' #1/1/4501# is Outlook's internal representation of an
empty data value.
If Item.LastModificationTime = #1/1/4501# Then
' Item is a brand new item
MsgBox "New Item"
If Item.Mileage = "" Then
' We're creating the first item in the folder
Item.Mileage = 1
Else
' Increment the index in the Mileage field
Item.Mileage = CStr(CInt(Item.Mileage) + 1)
End If
' The following 3 lines re-publish the form to the
Contacts folder with the
' new index number in the Mileage field.
Set myForm = Item.FormDescription
myForm.Name = myFormName
myForm.PublishForm olFolderRegistry, myFolder
Else
' Item is an existing item
MsgBox "Existing Item, doing nothing"
End If
End Sub
|
Preencher uma caixa de listagem ou caixa de combinação
através do VBScript.
|
Sub
Item_Open()
' Sets the name of page on the form (P.2)
Set FormPage =
Item.GetInspector.ModifiedFormPages("P.2")
' Sets Control to a list box called ListBox1.
Set Control =
FormPage.Controls("ListBox1")
' Assign values to the list box.
Control.PossibleValues = "Blue;Green;Red;Yellow"
End
Sub |
Como utilizar o
ActiveX - XPrint para imprimir um formulário:
1) Faça download do ficheiro xprint.ocx p/ c:\windows\system
2) Registe o ficheiro (regsvr32 xprint.ocx)
|
'* Imprimir com o X Print
Dim objInsp
Dim objPage1
Dim objXPrint1
Function Item_Open()
Set objInsp = Item.GetInspector
Set objXPrint1 =
Item.GetInspector.ModifiedFormPages("Message").XPrint1
objXPrint1.Preview = False
objXPrint1.Controls =
Item.GetInspector.ModifiedFormPages("Message").Controls
End Function
Sub cmdPrint_Click()
objXPrint1.PrintForm
End Sub |
|