Autor Thema: LS CLASS: Template Settings  (Gelesen 6880 mal)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
LS CLASS: Template Settings
« am: 28.08.02 - 10:14:05 »
Wer schon einmal bei etlichen Datenbanken die Einstellungen für das designtemplate manuell ändern musste, der wird diese kleine Klasse sicherlich gut gebrauchen können ( für den Fall, dass er noch einmal eine andere Schablone eintragen muss )  ;D ;D

Const INFOPARSE_TITLE = 0
Const INFOPARSE_CATEGORIES = 1
Const INFOPARSE_CLASS =  2
Const INFOPARSE_DESIGN_CLASS = 3

Const NSF_INFO_SIZE = 128

Declare Function W32_NSFDbOpen Lib "nnotes.dll" Alias "NSFDbOpen" ( Byval szDBName As String, dwDBHandle As Long) As Integer
Declare Function W32_NSFDbClose Lib "nnotes.dll" Alias "NSFDbClose" ( Byval dwDBHandle As Long) As Integer
Declare Function W32_NSFDbInfoGet Lib "nnotes.dll" Alias "NSFDbInfoGet" (Byval dwDBHandle As Long, Byval szInfoBuffer As String) As Integer
Declare Function W32_NSFDbInfoSet Lib "nnotes.dll" Alias "NSFDbInfoSet" (Byval dwDBHandle As Long, Byval szInfoBuffer As String) As Integer
Declare Sub W32_NSFDbInfoModify Lib "nnotes.dll" Alias "NSFDbInfoModify" (Byval szInfoBuffer As String, Byval wWhat As Integer, Byval szNewVal As String)
Declare Sub W32_NSFDbInfoParse Lib "nnotes.dll" Alias "NSFDbInfoParse" (Byval szInfoBuffer As String, Byval wWhat As Integer, Byval szRetVal As String, wRetLen As Integer)

Class NotesTemplateSettings
     
     Private szInfoBuffer As String * NSF_INFO_SIZE
     Private szDatabase As String
     Private dwDBHandle As Long
     Private rc As Integer
     Private wFlag As Integer
     
     Sub New (inpNotesDatabase As NotesDatabase)    
           
           wFlag = False
           szInfoBuffer = String(NSF_INFO_SIZE,0)
           If inpNotesDatabase Is Nothing Then
                 Exit Sub
           End If
           
           If inpNotesDatabase.Server = "" Then
                 szDatabase = inpNotesDatabase.filepath
           Else
                 szDatabase = inpNotesDatabase.Server + "!!" + inpNotesDatabase.Filepath
           End If
           
           rc = W32_NSFDbOpen(szDatabase,Me.dwDBHandle)
           If rc <> 0 Then
                 Exit Sub
           End If
           
           rc = W32_NSFDbInfoGet(dwDBHandle, szInfoBuffer)
           If rc <> 0 Then
                 Call W32_NSFDbClose(dwDBHandle)          
                 Exit Sub
           End If
           
           wFlag = True
     End Sub
     
     Sub Delete
           If wFlag Then W32_NSFDbClose(dwDBHandle)
     End Sub
     
     Public Property Get DesignTemplateName As String
           If Not wFlag Then Exit Property
           Dim szRetVal As String * NSF_INFO_SIZE
           Dim rc As Integer
           szRetVal = String(NSF_INFO_SIZE,0)
           Call W32_NSFDbInfoParse (szInfoBuffer, INFOPARSE_DESIGN_CLASS ,szRetVal, NSF_INFO_SIZE -1)
           DesignTemplateName = Left(szRetVal,Instr(szRetVal,Chr(0))-1)
     End Property
     
     Public Property Get TemplateName As String
           If Not wFlag Then Exit Property
           Dim szRetVal As String * NSF_INFO_SIZE
           Dim rc As Integer
           szRetVal = String(NSF_INFO_SIZE,0)
           Call W32_NSFDbInfoParse (szInfoBuffer, INFOPARSE_CLASS ,szRetVal, NSF_INFO_SIZE -1)
           TemplateName = Left(szRetVal,Instr(szRetVal,Chr(0))-1)
     End Property
     
     Public Property Set DesignTemplateName As String
           If Not wFlag Then Exit Property
           Call W32_NSFDbInfoModify(szInfoBuffer, INFOPARSE_DESIGN_CLASS, DesignTemplateName)
           rc = W32_NSFDbInfoSet(dwDBHandle,szInfoBuffer)
           If rc <> 0 Then
                 Exit Property
           End If
     End Property
     
     Public Property Set TemplateName As String
           If Not wFlag Then Exit Property
           Call W32_NSFDbInfoModify(szInfoBuffer, INFOPARSE_CLASS, TemplateName)
           rc = W32_NSFDbInfoSet(dwDBHandle,szInfoBuffer)
           If rc <> 0 Then
                 Exit Property
           End If
     End Property
     
End Class
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Ayhan

  • Aktives Mitglied
  • ***
  • Beiträge: 102
  • Geschlecht: Männlich
  • Geht immer!
    • fabrique d' images ebusiness GmbH
Re: LS CLASS: Template Settings
« Antwort #1 am: 28.08.02 - 10:42:36 »
Cool, kann man gut gebrauchen...

Danke eknori
;D
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Ayhan

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re: LS CLASS: Template Settings
« Antwort #2 am: 28.08.02 - 10:46:07 »
yep, danke :-)

*ich glaub Dir mal, daß es geht  :P*
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Zimmi

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re: LS CLASS: Template Settings
« Antwort #3 am: 28.08.02 - 11:10:16 »
Hi eknori,

ich hoffe, dass ich es nicht brauchen werde, aber besser man hat den Code für alle Fälle ...

Vielen Dank
Zimmi
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Dirk Heimbürger

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Re: LS CLASS: Template Settings
« Antwort #4 am: 30.03.09 - 12:04:50 »
Hallo eknori,

ich verwende deine Klasse seit langem, um eine größere Anzahl von Datenbanken mit einem neuen Schablonennamen zu versehen. Vielen Dank für diese nützliche Funktion !!!

Jetzt ist mir aber aufgefallen, das nach dem Lauf der Design-Task auf dem Server wieder der alte Schablonenname drin steht.
Bei dem Convert-Task passiert das übrigens nicht.
Wenn ich nach der Änderung des Schablonennamens aber per Hand in den Datenbankeigenschaften an den Schablonennamen ein Leerzeichen anhänge und wieder entferne, bleibt der Name nach dem Lauf des Design-Task erhalten.

Das tritt bei mir unter Domino/Notes 7.03 auf. Habe ich die Klasse nicht richtig eingebunden oder bin ich auf einen Fehler gestoßen?

Viele Grüße
Dirk
MfG Dirk

Domino 8.5.3FP3 + Ext.Lib
Client 8.5.3FP3 + Ext.Lib

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz