Utilizzare il programma LotusScript modificare le icone di database
Sei una di quelle persone che non hanno ottenuto lontano dal lavoro in Notes 5 o 6? Se è così, probabilmente avete imparato ad amare le piccole icone su ciascuno dei database. Questo trucco vi mostra come modificare l'icona con LotusScript con la creazione di un agente di notte, in modo che ogni giorno gli utenti avranno una nuova icona per vedere. Si potrebbe anche impostarlo in modo l'icona viene modificata ogni volta che si apre il database. Penso che questo sia stupido? Posso dirvi per esperienza che l'implementazione di questo rende gli utenti vogliono entrare nel database. Vogliono vedere che cosa l '"icona del giorno" è, e poi finiscono la lettura di informazioni nel database.
Ci sono tre cose che avrete bisogno di sapere per cambiare l'icona del database. In primo luogo, è necessario sapere che l'icona è in realtà un documento di Notes (proprio come ogni elemento di design) in modo che possa essere manipolato come un qualsiasi documento di Notes. In secondo luogo, l'immagine effettivo viene memorizzato in un campo speciale chiamato IconBitmap. In terzo luogo, è necessario conoscere la posizione (nel database) dell'icona in modo da poter ottenere e manipolarla. Tale posizione varia da database a database. Ci sono molti modi in Notes 4 e 5 per trovare la posizione di programmazione utilizzando l'API Notes. Notes 6 ha introdotto un nuovo modo di utilizzare la nuova classe NotesNoteCollection. Ma che in realtà è eccessivo per questo esercizio, perché la posizione dell'icona, una volta che il database è stato creato, è fissato. Quindi, basta guardare in su una volta e impostare il valore. Se si vuole fare questo script generico e portatile, allora si può guardare in modo dinamico ottenere un handle al documento sull'icona. Ma qui ci basta guardare in alto una volta e lo lasciamo così.
Per cercare la posizione del documento icona, in Notes 5 vanno alle risorse \ Altri client designer, o in Notes 6 andare in altri \ risorse del database. Evidenziare l'icona (non doppio clic su di esso come se stessi andando a modificarlo) e andare alla proprietà di progettazione. E prendere nota del l'ID del documento (il valore che inizia con "NT"). Questo è un valore esadecimale, e questa è la posizione del documento icona all'interno del database. Questo è quello che vi serve per ottenere un handle per il design come elemento di un documento.
Sub Initialize
Sessione di As New NotesSession
Db As NotesDatabase
IconDoc As NotesDocument
Newdoc As NotesDocument
Item As NotesItem
Set db = session.CurrentDatabase
Set iconDoc db.GetDocumentById = ("13E")
Set newdoc = db.createdocument
Call newDoc.ReplaceItemValue ("Form", "frmIcon")
Chiama newDoc.replaceItemValue ("Descr", "(non descritta)")
Impostare la voce = iconDoc.GetFirstItem ("IconBitmap")
Chiamare item.CopyItemToDocument (newdoc, "IconBitmap")
Chiamare newDoc.Save (True, True, True)
End Sub
Il valore "13E" è la posizione del hex elemento di design icona nel database di esempio. E 'più probabile che sarà diverso in ogni database. Questo agente ritiene che elemento di design, quindi copia il campo IconBitmap in un nuovo documento (documento regolare, non un elemento di design). Il nuovo documento diventa un campo di modulo e un campo descrizione. Questi sono fatto proprio in modo che il documento può apparire in vista, come avviene nel database di esempio. Il documento non deve apparire in vista se non si desidera.
Dopo aver costruito i documenti, diventa una questione di scambiare il campo IconBitmap sul documento effettivo di progettazione icona con lo stesso campo su una di queste pre-popolate documenti. Il database di esempio ha un agente che gli scambi l'icona sul database corrente con l'icona memorizzata nel documento selezionato.
Per creare un "icona del giorno" agente pianificato, ti consigliamo di avere prima il database di icone da qualche parte che l'agente pianificato può accedere. In Notes 5, deve essere sullo stesso server, come l'agente pianificato. In Notes 6, gli agenti pianificati altri server possono accedere, purché siano sicuri, in modo che il database potrebbe essere su un altro server. L'agente in programma trova la nota icona del design, poi sceglie casualmente una nuova icona e sostituisce il campo IconBitmap. Ecco un agente che fa il lavoro:
Sub Initialize
Sessione di As New NotesSession
CurrDb As NotesDatabase
IconDoc As NotesDocument
IconDb As NotesDatabase
IconColl As NotesDocumentCollection
IconPos As Long
NewIconDoc As NotesDocument
Item As NotesItem
Randomize
Set currDb = session.CurrentDatabase
Set iconDoc currDb.GetDocumentById = ("11A")
Se iconDoc Is Nothing Then Exit Sub
Set iconDb = session.GetDatabase ("", "icons.nsf")
Se iconDb Is Nothing Then Exit Sub
Impostare iconColl = iconDb.AllDocuments
Se iconColl Is Nothing Then Exit Sub
iconPos = Int (Rnd () * iconColl.Count)
Set newIconDoc = iconColl.GetNthDocument (iconPos)
Se newIconDoc Is Nothing Then Exit Sub
If Not newIconDoc.HasItem ("IconBitmap") Then Exit Sub
Call iconDoc.RemoveItem ("IconBitmap")
Impostare la voce = newIconDoc.GetFirstItem ("IconBitmap")
Se la voce Is Nothing Then Exit Sub
Chiamare item.CopyItemToDocument (iconDoc, "IconBitmap")
Chiamare icondoc.Save (True, True, True)
End Sub
Si noti che "11A" è la posizione delle icone nel database sto cambiando su base giornaliera, e "icons.nsf" è il percorso per la mia fonte "Icons Of The Day" database (il database di esempio). L'agente sceglie casualmente un'icona da tutti i documenti disponibili icona della sorgente, e quindi sostituisce il campo speciale nell'elemento sull'icona del database in corso di progettazione con lo stesso campo speciale dal documento di origine.
Godetevi cambiare l'icona del database ogni notte!
Visto 7265 volte da 2373 spettatori













