Strona główna > Lotus Notes samouczek , LotusScript , Uwagi Designer > Użyj programu LotusScript Zmiana ikon Database

Użyj LotusScript programu Zmiana ikon Database

Czy jesteś jednym z tych ludzi, którzy nie mają zdobyć od pracy w uwagach 5 lub 6? Jeśli tak, to prawdopodobnie kochać ikonki na każdej z baz danych. Ta porada pokazuje, jak programowo zmienić ikonę za pomocą LotusScript, tworząc noc agenta, więc każdego dnia użytkownicy będą mieć nową ikonę, aby zobaczyć. Można nawet skonfigurować go tak, ikona zmienia się przy każdym otwarciu bazy danych. Że to jest głupi? Mogę powiedzieć z doświadczenia, że ​​wdrożenie to sprawia, że ​​użytkownicy chcą, aby przejść do bazy danych. Chcą zobaczyć, co "ikony dnia", a potem kończy się czytanie informacji w bazie danych.

Są trzy rzeczy, musisz wiedzieć, aby zmienić ikonę bazy danych. Po pierwsze, musisz wiedzieć, że ikona jest rzeczywiście dokumentu programu Notes (tak jak każdy element projektu), więc można nią manipulować, jak każdy dokument Notes. Po drugie, rzeczywisty obraz jest przechowywany w specjalnym polu zwanym IconBitmap. Po trzecie, trzeba znać położenie (w bazie danych) z ikony, dzięki czemu można go pobrać i manipulować. Tej lokalizacji waha się od bazy do bazy danych. Istnieją sposoby, w uwagach 4 i 5, aby znaleźć miejsce programowo przy użyciu API Notes. Notes 6 wprowadził nowy sposób, korzystając z nowej klasy NotesNoteCollection. Ale to faktycznie przesada, do tego ćwiczenia, ponieważ położenie ikon, gdy baza danych została utworzona, jest stała. Więc po prostu trzeba to sprawdzić raz i ustawić wartość. Jeśli chcesz, aby ten skrypt ogólne i przenośny, można przyjrzeć się dynamicznie się uchwyt do dokumentu ikonę. Ale tu musimy po prostu szukać go raz i tak zostawić.

Aby wyszukać lokalizację dokumentu ikona, w Notes 5 przejdź do Resources \ Inne w kliencie projektanta lub w Notes 6 przejść do innych \ Resources bazy danych. Zaznacz ikonę (nie dwukrotnie kliknij na nią jak miałeś do edycji) i przejdź do Właściwości projektu. I zanotuj identyfikator dokumentu (wartość zaczynające się od "NT"). To jest wartość szesnastkowa, a jest to miejsce dokumentu ikona w bazie danych. To czego potrzebujesz, aby uzyskać uchwyt do elementu projektu jako dokumentu.

Sub Initialize
Dim sesji As New NotesSession
Dim db As NotesDatabase
Dim iconDoc Jak NotesDocument
Dim newDoc Jak NotesDocument
Dim poz Jak NotesItem

Set db = session.CurrentDatabase
Ustaw iconDoc db.GetDocumentById = ("13E")
Ustaw newDoc = db.createdocument
Zadzwoń newDoc.ReplaceItemValue ("Formularz", "frmIcon")
Zadzwoń newDoc.replaceItemValue ("descr", "(nieopisana)")
Set item = iconDoc.GetFirstItem ("IconBitmap")
Zadzwoń item.CopyItemToDocument (newDoc "IconBitmap")
Zadzwoń newDoc.Save (True, True, True)
End Sub

Wartość "13E" to hex lokalizacji element projektu ikona w przykładowej bazie danych. To najprawdopodobniej będzie inny w każdej bazie danych. Agent ten stwierdzi, że element projektu, a następnie kopiuje IconBitmap pola do nowego dokumentu (zwykłego dokumentu, a nie element projektu). Nowy dokument zostanie pola formularza i polu opisu. Są to zrobić tylko, aby dokument mógł pojawić się w poglądach, jak ma to miejsce w przykładowej bazie danych. W dokumencie nie muszą pojawiać się w poglądach, jeśli nie chcesz.

Po dokumentów zbudowany, staje się sprawą wymieniając IconBitmap pole właściwego dokumentu projektowania ikonę z tym samym polu na jeden z tych dokumentów wstępnie wypełnione. Przykładowa baza danych ma agenta, który zamienia ikony na aktualnej bazy danych z ikoną przechowywane w wybrany dokument.

Aby utworzyć "ikony dnia" agent z planem, będziemy chcieli, aby najpierw bazy danych ikon gdzieś, że zaplanowane agent może uzyskać dostęp. W Notes 5, musi być na tym samym serwerze, co planowane agenta. W Notes 6, planowane środki mogą uzyskać dostęp do innych serwerów, o ile są zaufane, więc baza danych może być na innym serwerze. Planowany środek znajduje pamiętać projekt ikonę, a następnie losowo wybiera nową ikonę i zastępuje IconBitmap dziedzinie. Poniżej znajduje się agent, który działa:

Sub Initialize
Dim sesji As New NotesSession
Dim currDb Jak NotesDatabase
Dim iconDoc Jak NotesDocument
Dim iconDb Jak NotesDatabase
Dim iconColl Jak NotesDocumentCollection
Dim iconPos As Long
Dim newIconDoc Jak NotesDocument
Dim poz Jak NotesItem

Losowo
Ustaw currDb = session.CurrentDatabase
Ustaw iconDoc currDb.GetDocumentById = ("11A")
Jeśli iconDoc Is Nothing Then Exit Sub
Ustaw iconDb = session.GetDatabase ("", "icons.nsf")
Jeśli iconDb Is Nothing Then Exit Sub
Ustaw iconColl = iconDb.AllDocuments
Jeśli iconColl Is Nothing Then Exit Sub
iconPos = Int (Rnd () * iconColl.Count)
Ustaw newIconDoc = iconColl.GetNthDocument (iconPos)
Jeśli newIconDoc Is Nothing Then Exit Sub
Jeśli nie newIconDoc.HasItem ("IconBitmap") Then Exit Sub
Zadzwoń iconDoc.RemoveItem ("IconBitmap")
Set item = newIconDoc.GetFirstItem ("IconBitmap")
Jeśli pozycja Is Nothing Then Exit Sub
Zadzwoń item.CopyItemToDocument (iconDoc "IconBitmap")
Zadzwoń icondoc.Save (True, True, True)
End Sub

Zauważ, że "11A" to miejsce, ikona w bazie danych Jestem zmiany każdej nocy, i "icons.nsf" to ścieżka do źródła "Icons Of The Day" bazy danych (próby). Środek losowo wybiera ikonę z wszystkich dostępnych dokumentów ikona źródła, a następnie zastępuje specjalne pole w bieżącej bazie danych jest element projektu ikona z tym samym polu specjalne z dokumentu źródłowego.

Ciesz zmieniając ikonę bazy danych każdej nocy!

Oglądane 7078 razy przez 2313 widzów

  1. Nie ma jeszcze komentarzy.
  1. Brak trackbacków.