Autor Thema: Automatisches anlegen von Ordern und Outlines  (Gelesen 1884 mal)

Offline seerow

  • Aktives Mitglied
  • ***
  • Beiträge: 180
  • Geschlecht: Männlich
  • alles wird gut........
Automatisches anlegen von Ordern und Outlines
« am: 08.02.06 - 12:20:21 »
Hallihallo!

Ich habe folgendes Problem. Ich teste gerade die Erstellung von Gliederungseinträgen per Knopfdruck in einer Maske.

Das heißt: Der User klickt auf einen Knopf, dann wird er nach einem Namen für den Gliederungseintrag gefragt, und darauf hin wird ein Ordner und ein Gliederungseintrag, der auf diesen Ordner verweist, erstellt.

Das funktioniert auch alles, aber erst, wenn ich die Gliederung im Designer einmal öffne, mir die neuen Einträge anzeigen lasse und die Gliederung schließe und dabei abspeichere.

Ich hab die Datenbank auch im Client geschlossen und wieder geöffnet, das brachte keine Veränderung. Außerdem hab ich im Code daran gedacht, am Ende alles zu speichern ... ich finde einfach meinen Fehler nicht...

Hier ist der Code, der das alles macht:

Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim outline As NotesOutline
	Dim oe1 As NotesOutlineEntry
	Dim oe2 As NotesOutlineEntry
	Dim oe3 As NotesOutlineEntry
	Dim oe4 As NotesOutlineEntry
	Dim entry As NotesOutlineEntry
	Dim customer As Variant
	
	Set db = session.CurrentDatabase
	
	customer = workspace.Prompt (PROMPT_OKCANCELEDIT, "new customer...", "Please provide the new customer name.")
	
	If Not Isempty (customer) Then
		
		'legt die outline Einträge an
		Set outline = db.GetOutline("otl_mail")
		Set entry = outline.Createentry(customer)
		Set oe1 = outline.CreateEntry("supplier mails", entry, True, True)
		Set oe2 = outline.CreateEntry("report mails", entry, True, True)
		Set oe3 = outline.CreateEntry("event mails", entry, True, True)
		Set oe4 = outline.CreateEntry("garbage mails", entry, True, True)
		
		'setzt das Icon im outline
		entry.ImagesText = "folders.gif"
		oe1.ImagesText = "folders.gif"
		oe2.ImagesText = "folders.gif"
		oe3.ImagesText = "folders.gif"
		oe4.ImagesText = "folders.gif"
		
		'legt die Foldern an
		Call db.EnableFolder(customer + "_supplierbox")
		Call db.EnableFolder(customer + "_reportbox")
		Call db.EnableFolder(customer + "_eventbox")
		Call db.EnableFolder(customer + "_garbagebox")
		
		'setzt die Einträge im outline an
		Call oe1.SetNamedElement(db, customer + "_supplierbox", OUTLINE_CLASS_FOLDER)
		Call oe2.SetNamedElement(db, customer + "_reportbox", OUTLINE_CLASS_FOLDER)
		Call oe3.SetNamedElement(db, customer + "_eventbox", OUTLINE_CLASS_FOLDER)
		Call oe4.SetNamedElement(db, customer + "_garbagebox", OUTLINE_CLASS_FOLDER)
		
		Call outline.AddEntry(oe1)
		Call outline.AddEntry(oe2)
		Call outline.AddEntry(oe3)
		Call outline.AddEntry(oe4)
		Call outline.Save()
	End If
	
End Sub
MFG Antonio

-----------------------------------------------------------------------

Ordentliche Menschen sind selten genial,
geniale selten Ordentlich............

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Automatisches anlegen von Ordern und Outlines
« Antwort #1 am: 08.02.06 - 14:03:36 »
Hi
Ich denke mal ohne schliessen der DB und erneutes Öffnen gehts nicht. (evtl. über API?)

Outlines sind recht mühsam in dieser Hinsicht. Hab mal ein Portal mit diesen Dingern aufgebaut


Was mich ein wenig verwundert:
warum machst Du zuerst ein set oe1=outline.CreateEntry()
und am schluss nochmals ein outline.addEntry(oe1)?

Was für NotesVersion verwendest Du?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline seerow

  • Aktives Mitglied
  • ***
  • Beiträge: 180
  • Geschlecht: Männlich
  • alles wird gut........
Re: Automatisches anlegen von Ordern und Outlines
« Antwort #2 am: 08.02.06 - 14:43:52 »
Hi,

Zitat
Ich denke mal ohne schliessen der DB und erneutes Öffnen gehts nicht. (evtl. über API?)

Das mit Notes schließen und neu starten bringt leider nix, habe sogar nen komplettes killNotes gemacht -> ohne Erfolg. (Mit API kenne ich mich leider nicht aus)

Zitat
Was mich ein wenig verwundert:
warum machst Du zuerst ein set oe1=outline.CreateEntry()
und am schluss nochmals ein outline.addEntry(oe1)?

naja irgendwie habe ich probiert und getestet, und leider ging es nur auf diese Weise.
MFG Antonio

-----------------------------------------------------------------------

Ordentliche Menschen sind selten genial,
geniale selten Ordentlich............

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Automatisches anlegen von Ordern und Outlines
« Antwort #3 am: 08.02.06 - 15:44:55 »
Das outline ist doch irgendwo eingebettet oder?

Evtl. bringt es etwas wenn Du die Seite/Maske wo das Outline eingebettet ist, speicherst.
Via NoteID oder NotesNoteCollection kannst Du nach dem Element suchen.
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz