Archive

Posts Tagged ‘Lotus Script’

Lotus Script: esportare la lista degli allegati presenti in una vista in un file di testo

October 22nd, 2008 Nicola 2 comments

Questa piccola sub scorre tutti gli elementi di una vista, e ogni volta che trova un documento con un allegato fa queste due cose:

  • In più estrae tutti gli allegati.
  • inserisce una nuova riga in un file di testo, con le informazioni UniversalID, nome del file allegato ed il percorso di dove viene estratto, separate da un “;”.

Accetta in ingresso: il nome del database, il nome della vista, il percorso dove vengono estratti gli allegati, ed il nome del file di testo da andare a scrivere.

Sub esporta(strDatabase as String, view as NotesView, strPercorso as String, strNomeFile as String)Dim sessione As NotesSession

Dim db As NotesDatabase
Dim doc As NotesDocument
Dim view As NotesView
Dim rtitem As NotesRichTextItem
Dim dbSorgente As NotesDatabase
Dim fileNum As Integer

Set sessione = New NotesSession
Set dbSorgente = sessione.GetDatabase("", strDatabase)
Set view = dbSorgente.GetView( view )

fileNum% = Freefile()
Open strNomeFile For Append As fileNum%

Set doc = view.GetFirstDocument
While Not doc Is Nothing

Set rtitem = doc.getfirstitem("body")
Forall o In rtitem.EmbeddedObjects

If ( o.Type = EMBED_ATTACHMENT ) Then

Call o.ExtractFile( strPercorso & o.Source )
Print #fileNum%, doc.UniversalID & ";" & o.Source & ";" & strPercorso

End If

End Forall
Set doc = view.GetNextDocument(doc)

Wend

Close fileNum%

Messagebox("Esportazione terminata con successo")

Exit Sub

ProcessError:

Messagebox("Errore, impossibile generare il file")

End Sub

Categories: Notes Tags: ,

Shared Action, viste e documenti selezionati

October 10th, 2008 Nicola No comments

Quello che ho imparato a fare è: inserire un pulsante nella ActionBar di una vista. L’azione che deve essere svolta si deve applicare solo ad un documento (quello selezionato). E’ tutto molto semplice:

Si crea una nuova Action da qua:

Il codice dell’evento click può essere:

Dim sessione As New NotesSession
Dim dbCurrent As NotesDatabase
Dim collDocs As notesdocumentcollection
Dim DocSel As notesdocument
Dim strId As StringOn Error Goto ProcessErrorSet dbCurrent = sessione.CurrentDatabase
Set collDocs = dbCurrent.UnprocessedDocumentsIf collDocs.count = 1 Then

Set docSel = collDocs.getfirstdocument
If Not DocSel Is Nothing Then

strId = docSel.UniversalID
Messagebox("Ecco il mio documento! " & strId)

... faccio tutto quello che devo fare

End If

Else

Messagebox("E necessario selezionare un documento per volta.")

End If

Il comando dbCurrent.UnprocessedDocuments restituisce tutti i documenti “spuntati” in quel momento nella vista (se nessuno è spuntato restituisce comunque quello selezionato).

Ora è sufficiente aggiungere nell’Action Bar della vista l’Action appena creata:

Categories: Notes Tags: ,

Esportare un word in pdf da Lotus Notes, utilizzando Word 2007

October 3rd, 2008 Nicola No comments

Word 2007 ha la possibilita, previa installazione di un plugin, di esportare il documento in formato pdf. Ho usato questa funzione per esportare in pdf un documento word aperto da uno script notes.

L’apertura del file è sempre la stessa:

Set wordAppObject = CreateObject("Word.Application")
Set wordDocObject = wordAppObject.Documents.Open("c:\prova.doc")

Se si prova a registrare una macro in word, esportando in pdf si ottiene la seguante istruzione:

wordDocObject.ExportAsFixedFormat OutputFileName:= filepdf,
                                  ExportFormat:=wdExportFormatPDF,
                                  OpenAfterExport:=False, 
                                  OptimizeFor:=wdExportOptimizeForOnScreen, 
                                  Range:=wdExportAllDocument,
                                  From:=1, To:=1,
                                  Item:=wdExportDocumentContent,
                                  IncludeDocProps:=True,
                                  KeepIRM:=True,
                                  CreateBookmarks:=wdExportCreateNoBookmarks,
                                  DocStructureTags:=True,
                                  BitmapMissingFonts:=True,
                                  UseISO19005_1:=False

La documentazione della funzione ExportAsFixedFormat si trova qua:

http://msdn.microsoft.com/en-us/library/bb256835.aspx

dove vengono descritti tutti i parametri. Questa istruzione, trasformata in una istruzioni lotus script diventa:

Call wordDocObject.ExportAsFixedFormat(filepdf,
                                            17,
                                         False,
                                             0,
                                             0,
                                             1,
                                             1,
                                             0,
                                          True,
                                          True,
                                              0,
                                           True,
                                           True,
                                           False  )

Dove ho sostituito alle costanti di word i valori presi dalle tabelle qui sotto:

WdExportFormat

wdExportOptimizeForOnScreen

wdExportAllDocument

a href=”http://www.nicolacolonna.it/wp-content/uploads/2008/10/pdf3.gif”>

WdExportItem

WdExportCreateBookmarks

Inserire una immagine in un documento Word da Lotus Notes

October 3rd, 2008 Nicola No comments

Il punto di partenza è un segnalibro in Word, che si chiama “immagine”.

Il codice per aprire il word è sempre quello:

Set wordAppObject = CreateObject("Word.Application.8")
Set wordDocObject = wordAppObject.Documents.Open("mioWord.doc")

Calcolo la posizione del segnalibro:

For i = 1 To wordDocObject.formFields.Count

If "immagine" = Ucase(wordDocObject.formfields(i).name) Then

IndiceBookMark = i
Exit For

End If

Next

Selezione il segnalibro trovato:

wordDocObject.formFields(IndiceBookMark).select

Inserisco l’immagine:

Call wordAppObject.Selection.InlineShapes.AddPicture("c:\miaImmagine.gif")

Inviare una mail contenente un link ad un documento in Notes

September 30th, 2008 Nicola No comments


Set docMemo = New NotesDocument(dbCurrent)docMemo.Form = "Memo"
docMemo.Sendto = "nicola.colonna@ngi.it"
docMemo.Subject = "Ciao"

Set rt = New NotesRichTextItem( docMemo, "Body" )

Call rt.appendtext("Ciao")
Call rt.AppendDocLink(documentoLinkato, "Questa descrizione comparirà nella status bar")

Call docMemo.send(True)

Categories: Notes Tags: ,