Das ist ein guter Hinweis!
Interessanterweise sind die Angaben, die per XML-Export und die im Icon stecken nicht deckungsgleich. ShowInOpenDialog lässt sich leider auch nicht über die $Flags ändern :(.
Zurzeit läuft mein Programm wie folgt
1. $Flags sichern
2. DB-Properties per XML in String exportieren
3. String anpassen
4. String als XLM wieder einlesen
5. $Flags rücksichern.
Dabei bleiben alle Settings erhalten - bis auf: "Allow Document locking". Da muss ich noch Lösung finden.
'$-Flags sichern
Set doc = db.GetDocumentByID("FFFF0010")
flags = doc.~$Flags(0)
'XML-Export
Set nc = db.CreateNoteCollection(False)
nc.SelectAllDesignElements False
nc.BuildCollection
Set exporter = s.CreateDXLExporter
xml_string = exporter.Export(nc)
'Ändern
If InStr(xml_string,"showinopendialog='true'") > 0 Then
ElseIf InStr(xml_string,"showinopendialog='false'") > 0 Then
xml_string = Join(Split(xml_string, "showinopendialog='false'"),"showinopendialog='true'")
Else
xml_string = Join(Split(xml_string, "title='"),"showinopendialog='true' title='")
End If
'XML-ReImport
Set importer = s.CreateDXLImporter
importer.ReplaceDBProperties = True
importer.Import xml_string,db
'Flags zurückschreiben
doc.~$flags = flags
Call doc.Save (True, False)