Autor Thema: NoRefresh-Haken bei Designelementen per Script setzen  (Gelesen 4618 mal)

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
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
« Letzte Änderung: 20.07.05 - 15:21:41 von SKL74 »
Domino, Notes, Sametime

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #1 am: 23.06.05 - 20:53:47 »
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.

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #2 am: 24.06.05 - 16:22:53 »
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
Domino, Notes, Sametime

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #3 am: 24.06.05 - 17:32:07 »
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
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


ascom40

  • Gast
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #4 am: 27.06.05 - 12:47:07 »
Hi

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

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

Jo

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #5 am: 27.06.05 - 20:28:17 »
Danke für den Hinweis Jo.
War mir so noch nicht aufgefallen, aber stimmt, hab das gerade getestet.

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #6 am: 19.07.05 - 14:50:51 »
Hallo,

komme leider erst jetzt wiedr dazu, mich mit dem Script zu beschäftigen. Leider bin ich aber noch nicht viel weiter.

Habe mir den Code von TMC angeschaut und auch hoffentlich verstanden. Der Code erstellt Collection und durchläuft alle Designelemente. Und ich könnte die Elemente bearbeiten.

Ich brauche aber nicht alle sondern nur das DB-Icon. Das muss ich doch noch irgendwie selektieren, oder?

Sebastian
Domino, Notes, Sametime

ascom40

  • Gast
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #7 am: 19.07.05 - 15:19:58 »
Hallo Sebastian,

wie war der Urlaub  8)

du musst da alle Designelemente durchlaufen und dann mit dem Construct

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

feststellen, wann du das Icon erreicht hast.

Dann statt obiger "Msgbox" das Flag entsprechend setzen und docdesign saven.

Aber Vorsicht, ich hab da schonmal erlebt, dass die so zurechgestutzten Datenbanken (ohne Designtask-Lauf) plötzlich ein Mischdesign aus aktuellem und vorherigen Design hatten, da war das Geschrei groß  >:D

Ein "load convert ..." hat das wieder korrigiert und auch gleich das Icon aktualisiert.

Jo

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #8 am: 19.07.05 - 18:03:13 »
Hi,

mein Code sieht jetzt so aus:

If docDesign.HasItem("IconBitmap") Then
Call docdesign.ReplaceItemValue( "$Flags", "R" )
Call docdesign.Save( True, True )
End If

Getestet und für gut befunden.
Der läuft kurz vor dem Design Task und ev. Fehler, die entstehen, sollten danach wieder ok sein.

Mal sehen. Danke für Eure Hilfe.

cu
Sebastian
Domino, Notes, Sametime

Offline datenbanken24

  • Senior Mitglied
  • ****
  • Beiträge: 390
  • Geschlecht: Männlich
  • Stammgast
    • datenbanken24
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #9 am: 19.07.05 - 18:23:12 »
Zitat
Ich brauche aber nicht alle sondern nur das DB-Icon. Das muss ich doch noch irgendwie selektieren, oder?

Das paßt zwar nicht ganz zur Frage oben,
aber wenn Du wirklich nur das Designelement mit dem DB-Icon suchst,
das hat immer die gleiche ID "FFFF0010"

Set doc = db.GetDocumentByID("FFFF0010")
'This is the Icon Design Element


doc.ReplaceItemValue("$Flags", doc.GetItemValue("$Flags")(0) & "x" )
'Where x is the flag value you want to set

doc.Save (...)

http://www.atnotes.de/index.php?topic=17582.0

Dort kann man aber nur die Gestaltungseigenschaften der gesamten Datenbank ändern - nicht für jedes Designelement.

Gruß,
Uwe

ascom40

  • Gast
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #10 am: 19.07.05 - 18:37:05 »
Hallo,

Code
If docDesign.HasItem("IconBitmap") Then 
Call docdesign.ReplaceItemValue( "$Flags", "R" )
Call docdesign.Save( True, True )
End If

das passt so IMHO, wenn was am Design hinterher auffällig ist, ist auch schnell der convert über die Mehlfiles mit dem entsprechenden Template drübergerannt, um das Design wieder zu korrigieren. Müssen die Looser halt mal leiden  ;D

Am 29 ist übrigens SysAdminsDay http://www.sysadminsday.de Ich bin angemeldet.

Jo



Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #11 am: 20.07.05 - 00:01:45 »
Call docdesign.ReplaceItemValue( "$Flags", "R" )

Achtung, mit dem simplen Replace wäre ich sehr vorsichtig, da dort auch andere Flags vorhanden sind.
Wenn Du das R setzen willst, würde ich den Inhalt aus $Flags in ein String auslesen, R daran setzen und zurückschreiben mit ReplaceItemValue.
Willst Du das umgekehrt, also R rausnehmen, würde ich auch hier wieder $Flags-Inhalt in String setzen, das R "herausoperieren" mit bekannten String-Mitteln und das String wieder zurückschreiben.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #12 am: 20.07.05 - 15:21:00 »
Hallo,

scheint bei den gewählten DB's geklappt zu haben.  :)
Werde versuchen die Änderungen von TMC noch mit einzubauen.

Danke für Eure Hilfe.

cu
Sebastian
Domino, Notes, Sametime

Offline regedit

  • Aktives Mitglied
  • ***
  • Beiträge: 118
  • Geschlecht: Männlich
Re: NoRefresh-Haken bei Designelementen per Script setzen
« Antwort #13 am: 29.07.05 - 08:25:22 »
Ich hatte unten angegebenes Problem unter anderem Topic gestellt und wurde auf diesen Thread verwiesen. Da ich mich mit Scripting nicht so auskenne, kann ich dem ganzen hier leider nur zur hälfte folgen. Kann mir jemand näher erläutern, wie ich z.B. den Haken ($Flags "P") aus der Ansicht "Kontakte" in der lokalen Names.nsf der User, welche in verschiedenen Verzeichnissen auf unterschiedlichen Fileservern liegt, herausnehmen kann?
Daraus könnte ich dann schließen, was ich mit den anderen Ansichten und Masken machen muß.

Gruß
Holger

     Probleme bei Schablonenwechsel
« am: 28.07.05 - 18:30:14 »    
Hallo,

habe folgendes Problem:
Ich möchte über den convert-Befehl die persönliche Names.nsf der User von der Schablone R5.06a auf R6.5.2 umstellen, was er auch teilweise macht.
in der R5 Schablone sind bei einigen Ansichten und Masken Haken gesetzt bei "Durch Aktual./Ersetz. der Gestaltung nicht änderbar". Dementsprechend sieht die neue Names auch halb alt, halb neu aus. Habt Ihr eine Idee, wie ich dieses Problem lösen kann, da es doch einige Viele User mit vielen verschiedenen Userverzeichnisse betrifft.

!!HELP!! V1.6
Domino Server V6.5.6 FP1 (Windows 2003 Server)
Notes Client V6.5.5 (TS-Client / Win 2003 TS-Server)
Notes Client V6.5.5 (Win XP)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz