quarta-feira, 4 de agosto de 2010

Criar o campo do tipo Lista

Sub CriaCampoLista(docA,docB As NotesDocument,CampoA,CampoB, Tipo As String)
' ===> Objetivo:
' ===> Criar o campo do tipo Lista
' Parâmetros
' docA = Documento de origem
' docB = Documento destino, onde deseja criar o CampoB
' CampoA = Nome do campo de origem
' CampoB = Nome do campo destino
' Tipo de Campo (Autor, Leitor ou nada)

On Error Goto trataerro

If docA.HasItem(CampoA) Then

Set item = docA.GetFirstItem(CampoA)

Dim Vet() As String
i = 0
Forall v In item.Values
Redim Preserve Vet(i)

' setando o vetor
Vet(i) = Cstr(v)

i = i + 1
End Forall

' Criando o campo no documento destino
Call CriaCampo(docB,CampoB,Vet,Tipo)
End If

Exit Sub

End Sub

Sub AlteraCampo(docD As NotesDocument, Campo,ValorA,ValorN,Tipo As String)
' ===> Objetivo:
' ===> Altera um campo caso exista um determinado valor (ValorA),
' substituindo pelo novo valor (ValorN)

' Parâmetros
' docD = Documento
' Campo = Nome do Campo que deseja recriar
' ValorA= Valor que deseja excluir no "Campo"
' ValorN= Valor que deseja incluir no "Campo"
' Tipo = Tipo do Campo, podendo ser AUTHORS (Autor),
' READERS (Leitor) ou sem especificação


' verificando se existe o campo
If docD.HasItem(Campo) Then

' setando o campo
Set item = docD.GetFirstItem(Campo)

' se encontrou o valorA, coloca o novo valorN
If item.Contains( ValorA ) Then
Dim vet() As String
j = 0
x = 0
' recriando os valores do campos carregando no vetor
Forall v In item.values
' coloca somente os valores # do ValorA
If (v <> ValorA) And (v <> "") Then
Redim Preserve vet(x)
vet(x) = v
x = x + 1
End If
End Forall

Redim Preserve vet(x)
' colocando o novo valorN no vetor
vet(x) = ValorN

' Remove o campo
Call item.Remove

' Cria o campo
' Se Tipo Autor
If Tipo = "Autor" Then
Set Item = New NotesItem(docD, Campo, vet, AUTHORS)
End If

' Se Tipo Leitor
If Tipo = "Leitor" Then
Set Item = New NotesItem(docD, Campo, vet, READERS)
End If

' Sem Tipo
If Tipo = "" Then
Set Item = New NotesItem(docD, Campo, vet)
End If

item.IsSummary = True

End If
End If
End Sub

Nenhum comentário:

Postar um comentário