Domino 9 und frühere Versionen > ND6: Entwicklung

NoRefresh-Haken bei Designelementen per Script setzen

(1/3) > >>

theBastian:
Hallo,

ich habe einige Datenbanken, deren Designelemente einen Haken bei NoRefresh "tragen". Diesen würde ich gern entfernen.  :(

Da ich aber faul bin, und nicht in jeder DB rumsausen will, suche ich eine Alternative.  :-\

Gibts dafür vielleicht einen Scriptbefehl oder eine Klasse?

Dank Euch im voraus.

cu
Sebastian

TMC:
Mit der NotesNoteCollection - Klasse hast Du Zugriff auf die Designelemente als NotesDocuments.

Im Item $Flags steckt diese Information.

Ist dort im String ein "P" enthalten, so ist die Eigenschaft "Prohibit Design Refresh" gesetzt.
Am besten liest Du also $Flags in ein String aus, entfernst per Script das P, schreibst das String wieder zurück und speicherst.

theBastian:
Hi,

habe mit dieser Klasse noch nicht gearbeitet und steige da leider nicht so richtig durch. Hieße das also am Beispiel des Icons einer DB:

erst mal Collection erstellen (Help-DB)?

Dim session As New NotesSession
  Dim db As NotesDatabase
  Set db = session.CurrentDatabase
  Dim nc As NotesNoteCollection
  Set nc = db.CreateNoteCollection(False)
  nc.SelectIcon = True
  Call nc.BuildCollection

habe ich jetzt eine Collection oder das Docs?
Kann ich jetzt mit GetItem zugreifen oder?

Ich habe keinen Plan.  :(

cu
Sebastian

TMC:
Also ans NotesDocument kommt man meines Wissens nur mit einem Mini-Workaround.


--- Code: --- On Error Goto ErrorHandler

Dim session As New NotesSession
Dim db As NotesDatabase
Dim ncol As NotesNoteCollection
Dim strNoteID As String
Dim docDesign As NotesDocument
Dim lngCount As Long
Set db = session.CurrentDatabase
Set ncol = db.CreateNoteCollection(False) 'empty collection

Call ncol.SelectAllDesignElements(True) ' wir brauchen alle Designelemente

'Use BuildCollection to compile the collection. You must build before the collection can be used.
Call ncol.BuildCollection

strNoteID = ncol.GetFirstNoteId
Do While Not(strNoteID = "")
Set docDesign = db.GetDocumentByID(strNoteID)

'---------- HIER KOMMT NUN DEIN CODE REIN
'Mit docDesign hast Du Zugriff auf ein Designelement als NotesDocument-Objekt

lngCount = lngCount + 1
strNoteID = ncol.GetNextNoteId(strNoteID)
Loop

Msgbox lngCount & " Designelemente bearbeitet."


GoOut:
Exit Sub
ErrorHandler:
Msgbox "Error #" & Err & " — " & Error$ & " (line: " & Erl & ")", 48, "Runtime error"
Resume GoOut
--- Ende Code ---

ascom40:
Hi


--- Code: ---If docDesign.HasItem("IconBitmap") Then
    Msgbox "Treffer ! Datenbankicon erwischt"
End If

--- Ende Code ---

da hat das Item $Flags aber meines Wissens KEINEN Inhalt, wenn "R" drinsteht, wird das Design aktualisiert.

Jo

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln