Utilisez un programme LotusScript changer les icônes de base de données
Etes-vous une de ces personnes qui n'ont pas obtenu loin de l'espace de travail dans les notes 5 ou 6? Si oui, vous avez probablement appris à aimer les petites icônes sur chacune des bases de données. Cette astuce vous montre comment modifier par programme l'icône à l'aide de LotusScript en créant un agent tous les soirs, de sorte que chaque jour, vos utilisateurs auront une nouvelle icône pour voir. Vous pouvez même le configurer de sorte l'icône est changé à chaque fois que vous ouvrez la base de données. Pense que c'est stupide? Je peux vous dire par expérience que la mise en œuvre ce qui rend les utilisateurs veulent aller dans la base de données. Ils veulent voir ce que l '«icône de la journée" est, puis ils finissent par la lecture d'informations dans la base de données.
Il ya trois choses dont vous aurez besoin de savoir afin de changer l'icône de la base. Tout d'abord, vous avez besoin de savoir que l'icône est en fait un document Notes (tout comme chaque élément de conception) de sorte qu'il peut être manipulé comme n'importe quel document Notes. Deuxièmement, l'image réelle est stockée dans un champ spécial appelé iconbitmap. Troisièmement, vous avez besoin de connaître l'emplacement (dans la base de données) de l'icône de sorte que vous pouvez l'obtenir et de le manipuler. Cet emplacement varie de base de données à la base. Il ya plusieurs façons dans les notes 4 et 5 pour trouver l'emplacement par programme en utilisant l'API Notes. Notes 6 introduit une nouvelle manière en utilisant la classe NotesNoteCollection nouvelle. Mais qui est réellement exagéré pour cet exercice, parce que l'emplacement de l'icône, une fois la base de données a été créée, est fixé. Donc vous avez juste besoin de le regarder une fois et définir la valeur. Si vous voulez faire ce script générique et portable, alors vous pouvez regarder dans dynamiquement obtenir une poignée sur le document icône. Mais ici, nous allons simplement regarder une fois et il en rester là.
Pour rechercher l'emplacement de l'icône du document, dans les notes 5 aller à la Resources \ Autres dans le client concepteur, ou dans les notes 6 aller vers d'autres ressources \ Database. Sélectionnez l'icône (ne double-cliquez sur elle comme vous alliez pour le modifier), puis choisissez Propriétés Design. Et faire une note de l'ID du document (la valeur commençant par "NT"). Il s'agit d'une valeur hexadécimale, et c'est l'emplacement de l'icône du document dans la base de données. C'est ce que vous aurez besoin pour obtenir une poignée de l'élément de conception en tant que document.
Sub Initialize
Session de As NotesSession Nouveau
Dim db Comme NotesDatabase
IconDoc As NotesDocument
Newdoc As NotesDocument
Point As NotesItem
Set db = session.CurrentDatabase
Réglez iconDoc = db.GetDocumentById («13E»)
Réglez newdoc = db.createdocument
Appelez newDoc.ReplaceItemValue ("Form", "frmIcon")
Appel newDoc.replaceItemValue ("Descr", "(non décrit)")
Réglez = item iconDoc.GetFirstItem ("iconbitmap")
Appelez item.CopyItemToDocument (newdoc, "iconbitmap")
Appelez newDoc.Save (True, True, True)
End Sub
La valeur "13E" est l'emplacement de l'élément hexagonal icône du design dans la base de données exemple. Il sera très probablement différent dans chaque base de données. Cet agent constate que l'élément de conception, puis copie le domaine iconbitmap dans un nouveau document (document ordinaire, pas un élément de design). Le nouveau document reçoit un champ de formulaire et un champ de description. Ceux-ci sont fait juste que le document puisse paraître dans les vues, comme il le fait dans la base de données exemple. Le document ne doivent pas apparaître dans les vues si vous ne voulez pas qu'il.
Une fois que vous avez les documents construits, cela devient une question d'échanger sur le domaine iconbitmap sur le document icône du design actuel avec le même domaine sur un de ces documents pré-remplis. La base de données exemple a un agent qui swaps sur l'icône de la base de données actuelle avec l'icône stockée dans le document sélectionné.
Pour créer une "icône de la journée" agent programmé, vous aurez envie d'avoir d'abord la base de données d'icônes quelque part que l'agent programmé peut accéder. Dans Notes 5, il doit être sur le même serveur que l'agent programmé. Dans Notes 6, les agents programmés peuvent accéder aux serveurs d'autres tant qu'ils sont dignes de confiance, de sorte que la base de données pourrait être sur un autre serveur. L'agent prévue trouve la note icône du design, puis choisit au hasard une nouvelle icône et remplace le champ iconbitmap. Voici un agent qui effectue le travail:
Sub Initialize
Session de As NotesSession Nouveau
Dim currDb Comme NotesDatabase
IconDoc As NotesDocument
Dim iconDb Comme NotesDatabase
IconColl As NotesDocumentCollection
IconPos As long
NewIconDoc As NotesDocument
Point As NotesItem
Randomiser
Réglez currDb = session.CurrentDatabase
Réglez iconDoc = currDb.GetDocumentById ("11A")
Si iconDoc Is Nothing Then Exit Sub
Réglez iconDb = session.GetDatabase ("", "icons.nsf")
Si iconDb Is Nothing Then Exit Sub
Réglez iconColl = Une iconDb.AllDocuments
Si iconColl Is Nothing Then Exit Sub
iconPos = Int (Rnd () * iconColl.Count)
Réglez newIconDoc = iconColl.GetNthDocument (iconPos)
Si newIconDoc Is Nothing Then Exit Sub
Si Non newIconDoc.HasItem ("iconbitmap") Then Exit Sub
Appeler iconDoc.RemoveItem ("iconbitmap")
Réglez = item newIconDoc.GetFirstItem ("iconbitmap")
Si l'article n'est rien Then Exit Sub
Appelez item.CopyItemToDocument (iconDoc, "iconbitmap")
Appelez icondoc.Save (True, True, True)
End Sub
Notez que "11A" est le lieu icône dans la base de données que je change sur une base quotidienne, et "icons.nsf" est le chemin vers mes sources "Icônes de la Journée" base de données (la base de données de l'échantillon). L'agent choisit au hasard une icône de tous les documents disponibles icône de la source, puis remplace le champ spécial dans l'élément de la base de données actuelle icône du design avec le même champ spéciale à partir du document source.
Profitez de changer l'icône de votre base de données sur une base quotidienne!
Vu 7326 fois par 2389 spectateurs













