sexta-feira, 14 de setembro de 2012

Alteração de documento(s) a partir de uma Action no ToolsBar do Notes



1º Primeiro cria uma base local (no data). "Ex.: base.nsf"

2º Criar um formulário nesta base: Ex.: "fo_formAcao"

3º Criar a action no ToolsBar do Notes
@Command([Compose]; "":" base .nsf" ; " fo_formAcao ");

4º No Declarations adicionar o código: Dim ws As NotesUiWorksPace
Obs.: Essa variável deve estar não pode ser declarada na rotina que irá executar o código, a mesma deve ser global.

5º  Adicione no QueryOpen o código abaixo:


Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
On Error Goto trataerro

Set ws = New NotesUIWorkspace

Dim db As NotesDatabase

If( Not ws.CurrentView Is Nothing) Then
Set db = ws.CurrentView.View.Parent
Else
Msgbox "Visão corrente não encontrada!",16,"Operação Cancelada!"
Continue = False
Exit Sub
End If

If Not db Is Nothing Then
If  Not db.IsOpen Then
Call db.Open("","")
If Not db.IsOpen Then
Call db.Open(ws.CurrentView.View.Parent.Server,ws.CurrentView.View.Parent.filepath)
If Not db.IsOpen Then
Msgbox "Não foi possível setar a base",16,"Operação Cancelada!"
Continue = False
Exit Sub
End If
End If
End If

Dim col As NotesDocumentCollection
Set col = ws.CurrentView.Documents

If Not col Is Nothing Then
If col.Count > 0 Then

'EXECUTA O CÓDIGO NO(S) DOCUMENTO(S) SELECIONADO(S)

Msgbox "Alteração OK",48,"OK"
Else
Msgbox "Nenhum documento selecionado!",16,"Operação Cancelada"
End If
Else
Msgbox "Coleção não definida!",16,"Operação Cancelada"
End If
Continue = False
Else
Msgbox " Erro, base não setada!",16,"Operação CAncelada"
End If
Continue = False
Exit Sub

trataerro:
Msgbox " Erro na linha " & Cstr(Erl) & " do tipo " & Cstr(Err) & " " & Cstr(Erl),16,"Operação CAncelada"
Continue = False
Exit Sub
End Sub




Nenhum comentário:

Postar um comentário