hi,
also das is die page wo ich mir die infos hergezogen hab:
http://www.dominopower.com/iss…t/issue199908/design.html
wichtig is halt das du die ansicht erstellst und nachher den agent drüber laufen lässt.
-> Call doc.ReplaceItemValue("$FormulaClass", "4") für die 4 solltest du
2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 usw. (natürlich als text)
einsetzen um eben alles ausser die dokumente (die sind ja "1") zu sehen.
hier ein bischen aus einer quick'n'dirty programmierung von mir:
ZitatAlles anzeigen
Sub Initialize
'siehe auch http://www.dominopower.com/iss…t/issue199908/design.html
'1. spalte der ansicht sollte so aussehen
%REM
Type := @If(
@Contains($Flags;"m");"Outline";
@Contains($Flags;"G3");"Navigator";
@Contains($Flags;"3FY");"Folder";
@Contains($Flags;"s");"ScriptLibrary";
@Contains($Flags;"C34yQ");"Shared Actions";
@Contains($Flags;"U");"Subform";
@Contains($Flags;"Ci");"Image";
@Contains($Flags;"Y");"View";
@Contains($Flags;"J");"Database";
@Contains($Flags;"W");"Page";
@Contains($Flags;"#");"Frameset";
(@Contains($Flags;"f")|@Contains($Flags;"L"));"Filter (e.g. Agents)";
($Flags="C" | $Flags="CD"); "Form";
(@IsAvailable($Title) & @IsAvailable($Fields)) ;@If(($Title = $Fields);"Shared Field"; "Form");
@Contains($Flags;""); "Form ?";
("Unknown: " + $Flags));
ImplodeTitle:=@Implode($Title;"|");
Title:=@Left(ImplodeTitle+"|";"|");
CascadedTitle:=@If(@Contains(Title;"\\");"\\"+@LeftBack(Title;"\\");"");
Type+CascadedTitle
%END REM
On Error Goto errorhandle
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dbdir As NotesDbDirectory
'mail db der user
Dim db_mail As NotesDatabase
Dim view_mail As NotesView
Dim doc_view_mail As NotesDocument
Dim doc_mail As NotesDocument
Dim tmp_doc_mail As NotesDocument
Dim s_server As String
Dim s_mask As String
Dim s_flags As String
Dim s_db As String
Dim s_view As String
Dim i_db As Integer
Dim i As Integer
'formulaclass.log
Dim fileName As String
Dim fileNum As Integer
'userliste
Dim fileName1 As String
Dim fileNum1 As Integer
Dim inputstring1 As String
s_server = "cn=ln101w05/ou1=allendorf/o=viessmann/c=de"
'pfad der durchsucht werden soll
's_mask$ = "d:\lotus\domino\data\mail\*.nsf"
s_mask$ = "mail\"
'name der ansicht in den mail db der user
s_view$ = "(Designelemente)"
i_db% = 0
i% = 0
Set dbdir = session.GetDbDirectory(s_server$)
Set db = session.CurrentDatabase
'log initialisieren
fileNum% = Freefile()
fileName$ = "h:\formulaclass.log"
Open fileName$ For Output As fileNum%
Print #fileNum%, Now & " - Start des Logs"
Print #fileNum%, Now & " ----------------------------------------"
'userliste initialisieren
fileNum1% = Freefile()
fileName1$ = "h:\all.txt"
Open fileName1$ For Input As fileNum1%
Line Input #fileNum1%, inputstring1$
Do While Not Eof(fileNum1%)
'Set db_mail = dbdir.GetFirstDatabase(DATABASE)
Set db_mail = session.GetDatabase(s_server$, Right(inputstring1$, Len(inputstring1$) - 21)) 'd:\lotus\domino\data\ abziehen
If db_mail Is Nothing Then
Print #fileNum%, Now & " - ERROR: " & s_server$ & "!!" & inputstring1$
Else
Print #fileNum%, Now & " - " & db_mail.Filepath
If Lcase(Left(db_mail.Filepath, Len(s_mask$))) = Lcase(s_mask$) Then
i_db% = i_db% + 1
If Right$(Cstr(i_db%), 2) = "00" Then
Print Now & " - " & i_db%
End If
'Call db_mail.Open("", "")
If Not db_mail.IsOpen Then
Call db_mail.Open("", "")
End If
If db_mail.IsOpen Then
Print #fileNum%, Now & " - " & db_mail.Title
Print #fileNum%, Now & " - TEMPLATE: " & db_mail.Designtemplatename
Set view_mail = db_mail.GetView(s_view$)
If view_mail Is Nothing Then
Print #fileNum%, Now & " - FEHLER: Ansicht " & s_view$ & " nicht gefunden"
Else
Set doc_view_mail = db_mail.GetDocumentByUNID(view_mail.UniversalID)
Call doc_view_mail.ReplaceItemValue("$FormulaClass", "65534")
doc_view_mail.Save True, True
Set view_mail = Nothing
Set view_mail = db_mail.GetView(s_view$) 'damit der index neu aufgebaut wird!
Call view_mail.Refresh
Set doc_mail = view_mail.GetFirstDocument
Do While Not doc_mail Is Nothing
Set tmp_doc_mail = doc_mail
Set doc_mail = view_mail.GetNextDocument(doc_mail)
'Print #fileNum%, Now & " - $Title = " & tmp_doc_mail.~$Title(0)
'Print #fileNum%, Now & " - $Flags = " & tmp_doc_mail.~$Flags(0)
'über/benutzen dieser datenbank
s_flags$ = tmp_doc_mail.~$Flags(0)
If tmp_doc_mail.~$Title(0) = "" _
And tmp_doc_mail.~$Flags(0) = "" Then
If tmp_doc_mail.HasItem("$Body") Then
tmp_doc_mail.~$Flags = "R"
Call tmp_doc_mail.Save(True, False, True)
Print #fileNum%, Now & " - AKTUALISIERE: über/benutzen dieser datenbank"
Print #fileNum%, Now & " - $Flags alt: " & s_flags$
Print #fileNum%, Now & " - $Flags neu: " & tmp_doc_mail.~$Flags(0)
i% = i% + 1
End If
End If
'datenbank script
s_flags$ = tmp_doc_mail.~$Flags(0)
If tmp_doc_mail.~$Title(0) = "Database Script" _
And tmp_doc_mail.~$Flags(0) = "t34QP" Then
tmp_doc_mail.~$Flags = RemoveP(s_flags$)
Call tmp_doc_mail.Save(True, False, True)
Print #fileNum%, Now & " - AKTUALISIERE: datenbank script"
Print #fileNum%, Now & " - $Flags alt: " & s_flags$
Print #fileNum%, Now & " - $Flags neu: " & tmp_doc_mail.~$Flags(0)
i% = i% + 1
End If
'ansichten / nicht alle, da bestimmte ansichten sonderflags haben!
s_flags$ = tmp_doc_mail.~$Flags(0)
If tmp_doc_mail.~$Flags(0) = "YP" _
Or tmp_doc_mail.~$Flags(0) = "PY" Then
tmp_doc_mail.~$Flags = RemoveP(s_flags$)
Call tmp_doc_mail.Save(True, False, True)
Print #fileNum%, Now & " - AKTUALISIERE: ansicht " & tmp_doc_mail.~$Title(0)
Print #fileNum%, Now & " - $Flags alt: " & s_flags$
Print #fileNum%, Now & " - $Flags neu: " & tmp_doc_mail.~$Flags(0)
i% = i% + 1
End If
'masken / nicht alle, da bestimmte masken sonderflags haben!
'gemeinsam genutze felder
s_flags$ = tmp_doc_mail.~$Flags(0)
If tmp_doc_mail.~$Flags(0) = "P" _
Or (Instr(s_flags$, "C") > 1 _
And Instr(s_flags$, "P") > 1) Then
If tmp_doc_mail.HasItem("$Fields") Then
If Ubound(tmp_doc_mail.~$Fields) = 0 Then
tmp_doc_mail.~$Flags = RemoveP(s_flags$)
Call tmp_doc_mail.Save(True, False, True)
Print #fileNum%, Now & " - AKTUALISIERE: feld " & tmp_doc_mail.~$Title(0)
Print #fileNum%, Now & " - $Flags alt: " & s_flags$
Print #fileNum%, Now & " - $Flags neu: " & tmp_doc_mail.~$Flags(0)
Else
tmp_doc_mail.~$Flags = RemoveP(s_flags$)
Call tmp_doc_mail.Save(True, False, True)
Print #fileNum%, Now & " - AKTUALISIERE: maske " & tmp_doc_mail.~$Title(0)
Print #fileNum%, Now & " - $Flags alt: " & s_flags$
Print #fileNum%, Now & " - $Flags neu: " & tmp_doc_mail.~$Flags(0)
End If
i% = i% + 1
End If
End If
'agents
s_flags$ = tmp_doc_mail.~$Flags(0)
If Instr(s_flags$, "f") > 1 _
And Instr(s_flags$, "3") > 1 _
And Instr(s_flags$, "P") > 1 Then
'das "P" aus s_flags$ entfernen
tmp_doc_mail.~$Flags = RemoveP(s_flags$)
Call tmp_doc_mail.Save(True, False, True)
Print #fileNum%, Now & " - AKTUALISIERE: agent " & tmp_doc_mail.~$Title(0)
Print #fileNum%, Now & " - $Flags alt: " & s_flags$
Print #fileNum%, Now & " - $Flags neu: " & tmp_doc_mail.~$Flags(0)
i% = i% + 1
End If
'script librarys
s_flags$ = tmp_doc_mail.~$Flags(0)
If Instr(s_flags$, "s") > 1 _
And Instr(s_flags$, "3") > 1 _
And Instr(s_flags$, "4") > 1 _
And Instr(s_flags$, "P") > 1 Then
'das "P" aus s_flags$ entfernen
tmp_doc_mail.~$Flags = RemoveP(s_flags$)
Call tmp_doc_mail.Save(True, False, True)
Print #fileNum%, Now & " - AKTUALISIERE: script library " & tmp_doc_mail.~$Title(0)
Print #fileNum%, Now & " - $Flags alt: " & s_flags$
Print #fileNum%, Now & " - $Flags neu: " & tmp_doc_mail.~$Flags(0)
i% = i% + 1
End If
%REM
If tmp_doc_mail.~$Title(0) = "" _
And tmp_doc_mail.~$Flags(0) = "" Then
'tmp_doc_mail.Remove(True)
i% = i% + 1
End If
%END REM
Loop
End If
End If
End If
Print #fileNum%, Now & " ----------------------------------------"
'nächste datenbank holen
'Set db_mail = dbdir.GetNextDatabase
End If
Line Input #fileNum1%, inputstring1$
Loop
Close fileNum1%
Print #fileNum%, Now & " - Ende des Logs"
Close fileNum%
Print "datenbanken geprüft " & i_db%
Print "gelöscht " & i%
Exit Sub
errorhandle:
Print "FEHLER: " & Err() & " in Zeile " & Erl() & " (" & Error & ")"
Print #fileNum%, Now & " - FEHLER: " & Err() & " in Zeile " & Erl() & " (" & Error & ")"
Resume Next
End Sub
und
ZitatAlles anzeigen
Function RemoveP(s_flags As String) As String
RemoveP = ""
For i% = 1 To Len(s_flags$)
If Mid(s_flags$,i%,1) = "P" Then
'ignorieren
Else
RemoveP = RemoveP + Mid(s_flags$,i%,1)
End If
Next
End Function
hoffe man kann es einigermassen lesen + verstehen.
mit notes6 gehts glaube etwas eleganter ...