Autor Thema: Object NotesDatabase Property Categories  (Gelesen 1336 mal)

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Object NotesDatabase Property Categories
« am: 25.01.06 - 09:42:21 »
Hi Forum,

ich habe Schwierigkeiten beim programmatischen Setzen der Categories Eigenschaft des NotesDatabase Objekt. Der Code sieht aus wie folgt:

Zitat
01 Sub Initialize
02   
03   Dim uiws As New NotesUIWorkspace
04   
05   Dim ses As New NotesSession
06   Dim currentDb As NotesDatabase
07   
08   Dim tmpDialogBox As NotesDocument
09   Dim clickedOk As Boolean
10   Dim dbServer As String
11   Dim dbPath As String
12   Dim dbListInCatalog As Boolean
13   Dim dbCategories As Variant
14   Dim tmpCategories As Variant
15   Dim dbOverwriteCategories As Boolean
16   
17   Dim dbDirectory As NotesDbDirectory
18   Dim db As NotesDatabase
19   Dim dbIsOpen As Boolean
20   
21   Set currentDb = ses.CurrentDatabase
22   Set tmpDialogBox = currentDb.CreateDocument
23   
24   Call tmpDialogBox.ReplaceItemValue("form","dlgBox:SetDbCatalog")
25   
26   clickedOk = uiws.DialogBox("dlgBox:setDbCatalog",True,True,True,False,False,False,"Title",tmpDialogBox,True,True,False)
27   
28   If clickedOk Then
29      
30      dbServer = Cstr(tmpDialogBox.GetItemValue("$dbServer")(0))
31      dbPath = Cstr(tmpDialogBox.GetItemValue("$dbPath")(0))
32      dbListInCatalog = Cint(tmpDialogBox.GetItemValue("$dbListInCatalog")(0))
33      dbCategories = tmpDialogBox.GetItemValue("$dbCategories")
34      dbOverwriteCategories = Cint(tmpDialogBox.GetItemValue("$dbOverwriteCategories")(0))
35      
36      Set dbDirectory = New NotesDbDirectory(dbServer)
37      Set db = dbDirectory.GetFirstDatabase(DATABASE)
38      
39         While Not (db Is Nothing)
40            
41            If (dbPath = Left(db.FilePath,Len(dbPath))) Then
42               
43               dbIsOpen = db.Open("", "")
44               If dbIsOpen Then
45                  
46                  db.ListInDbCatalog = dbListInCatalog
47                  If Not (dbCategories(0) = "") Then
48                     If dbOverWriteCategories Then
49                        db.Categories = dbCategories
50                     Else 'dbOverWriteCategories
51                        tmpCategories = Arrayappend(db.Categories, dbCategories)
52                        db.Categories = tmpCategories
53                     End If 'dbOverWriteCategories
54                  End If 'Not (dbCategories(0) = "")
55                  
56               End If 'dbIsOpen
57               
58            End If '(dbPath = Left(db.FilePath,Len(dbPath)))
59            
60            Set db = dbDirectory.GetNextDatabase
61            
62         Wend 'Not (db Is Nothing)
63         
64      Call uiws.ViewRefresh
65      
66   End If 'clickedOk
67   
68 End Sub

Auf der Maske 'dlgBox:setDbCatalog' ist das Feld '$dbCategories' ein Textfeld mit Mehrfachwerten. Nach dem Auslesen des Feldes (dbCategories = tmpDialogBox.GetItemValue("$dbCategories"), Zeile 33) enthält die Variable 'dbCategories' ein StringArray mit den Werten, die in der Dialogbox eingegeben wurde (Beispiel: dbCategories(0) = "Test").

Wenn ich diesen Wert den db.Categories zuordne (db.Categories = dbCategories, Zeile 49) enthält db.Categories allerdings Müll (z.B. tAÝ€AÝ").

Kann mir jemand erklären, wo das Problem liegt?

Falls ihr weitere Angaben benötigt, sagt mir bitte welche.

Viele Grüße
Harry
« Letzte Änderung: 25.01.06 - 10:29:12 von HarryB »
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Object NotesDatabase Property Categories
« Antwort #1 am: 25.01.06 - 10:02:43 »
RTFM... denn wer lesen kann ist klar im Vorteil...

Auszug zu db.Categories aus der Designer- Hilfe:

Usage
The categories are separated by commas or semicolons in a single string.
These categories are also used for domain catalogs and searches.

ALSO: Array über Implode zum String machen und dann zuweisen.

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: Object NotesDatabase Property Categories
« Antwort #2 am: 25.01.06 - 10:28:51 »
RTFM... denn wer lesen kann ist klar im Vorteil...
Absolut, danke für den Hinweis.

Den Beitrag habe ich zwar x mal gelesen, bin aber meist am Datentyp (Variant) hängen geblieben.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz