Autor Thema: Anhang auf einer Seite austauschen (LS)  (Gelesen 3249 mal)

Offline A+S

  • Junior Mitglied
  • **
  • Beiträge: 68
Anhang auf einer Seite austauschen (LS)
« am: 09.01.08 - 16:12:35 »
Hallo!

Ich habe in Notes eine Datenbank, die nur aus einer Seite besteht. Auf dieser Seite gibt es einen Anhang, der in unregelmässigen Abständen ausgetauscht werden soll. Dafür habe ich eine Aktion 'Anhang tauschen' eingefügt.

Ich habe jetzt auch schon ein paar Sachen ausprobiert, aber so wirklich komme ich nicht weiter. Ich kann auch im Script Debugger nirgends den Anhang entdecken. Nutze ich die falschen Objekte (NotesUIWorkspace, NotesUIDocument und NotesDocument habe ich durchsucht) oder geht das auf einer Seite im Allgemeinen nicht?

MfG
Kai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #1 am: 09.01.08 - 16:16:25 »
Wo ist jetzt die Schilderung Deines eigentlichen Problems? Wir haben absolut keine Ahnung, was Du bisher gemacht hast.

Bernhard

Offline A+S

  • Junior Mitglied
  • **
  • Beiträge: 68
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #2 am: 09.01.08 - 16:22:18 »
Ich war vielleicht ein bisschen schnell...

Bis jetzt habe ich im Script Debugger nach dem Anhang gesucht, damit ich herausfinden kann über welches Objekt ich überhaupt auf den Anhang ansprechen kann. Wie gesagt bin ich nicht fündig geworden und weiß deshalb nicht genau ob und wie ich an den Anhang komme. Jetzt würde ich gern wissen wie ich an den Anhang komme.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #3 am: 09.01.08 - 16:30:00 »
Wie instantiierst Du überhaupt Deine Seite? NotesUIWorkspace und Notes(UI)Document gehen natürlich nicht, Du musst Dir da das Designelement selber holen (NotesNoteCollection).
Und dann musst Du auf Item-Ebene sehr direkt den Austausch vornehmen.

Warum nimmst Du überhaupt den Umweg über eine Seite und nicht gleich ein Dokument (und damit basierend auf einer Maske), wo Du mit Bordmitteln weiter kommst?

Bernhard

Offline A+S

  • Junior Mitglied
  • **
  • Beiträge: 68
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #4 am: 09.01.08 - 16:35:48 »
Ich fand, dass sich die Seite angeboten hat, weil sie das einzige Element in der Datenbank ist und bleibt. Dass man nur über Umwege den Anhang tauschen kann war mir nicht bewusst. Jetzt werde ich wohl das Ganze doch noch mal in eine Maske packen. Erscheint mir einfacher.

Vielen Dank!


Offline A+S

  • Junior Mitglied
  • **
  • Beiträge: 68
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #5 am: 10.01.08 - 13:21:19 »
Hallo!

Ich habe es jetzt mal mit einer Maske versucht, bin aber auch nicht viel weiter als vorher. Wahrscheinlich habe ich es auch nicht so umgesetzt wie Bernhard es ursprünglich gemeint hat.

Es wird jetzt beim Öffnen der Datenbank direkt die Maske angezeigt. Auf der Maske liegt jetzt direkt der Anhang. Allerdings habe ich die gleichen Probleme wie bei der Seite.
Ich habe es dann mit der NotesNoteCollection versucht. So sieht mein Code bis jetzt aus:

   Dim doc As NotesDocument
   Dim vFileName As Variant
   Dim varFile As Variant
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim nc As NotesNoteCollection   
   Dim Attachment As NotesItem
   
   vFileName = ws.OpenFileDialog(False, "Bitte Datei auswählen:", "Excel-Dateien|*.xls|Alle Dateien|*.*", "I:")
   
   Set db = session.CurrentDatabase
   
   Set nc = db.CreateNoteCollection(False)
   Call nc.SelectAllFormatElements(False)
   nc.SelectForms = True
   Call nc.BuildCollection
   
   Set doc = db.GetDocumentByID(nc.GetFirstNoteId)
   
   'Set Attachment = doc.GetFirstItem("$FILE")

   Set fso=createobject("Scripting.FileSystemObject")
   Set wsh=createobject("WScript.Shell")
   Set varFile=fso.getfile(vFileName(0))
   doc.ReplaceItemValue "DateLastModified", varFile.DateLastModified   
   doc.ReplaceItemValue "$FILE",vFileName
   Call doc.Save(True,False)

Prinzipiell ändert die Routine auch die angegebenen Values. Aber ehrlich gesagt habe ich keine Ahnung wie es jetzt weitergehen soll oder ob der Ansatz überhaupt korrekt ist.

MfG
Kai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #6 am: 10.01.08 - 13:27:52 »
Damit bist Du tatsächlich an der selben Stelle wie mit der Seite.
Ich meinte: Erzeuge EIN Dokument, basierend auf einer Maske. Und dann die ganz normalen Bordmittel verwenden: NotesRichTextItem, EmbeddedObjects, EmbedObject usw.

Bernhard

Offline A+S

  • Junior Mitglied
  • **
  • Beiträge: 68
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #7 am: 10.01.08 - 14:04:14 »
Ich habe jetzt ein Dokument erstellt, muss jetzt aber mal ganz blöd fragen:

Wie kann ich das Dokument beim Starten der DB anzeigen lassen?  :-[

Driri

  • Gast
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #8 am: 10.01.08 - 14:09:15 »
Erstell von dem Dokument einen Dok-Link (Bearbeiten - Als Verknüpfung kopieren - Dokumentverknüpfung) und füg diesen in das "Über diese Datenbank"-Dokument ein.

In den Eigenschaften der DB stellst Du dann auf dem Tab mit der Rakete in den Startbedingungen auf "Erste Dokumentverknüpfung in "Über Datenbank"-Dokument" um.

Offline A+S

  • Junior Mitglied
  • **
  • Beiträge: 68
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #9 am: 10.01.08 - 14:16:34 »
Danke!

Das hat schon mal super geklappt. Mal schauen ob der Rest auch so gut geht.

Offline A+S

  • Junior Mitglied
  • **
  • Beiträge: 68
Re: Anhang auf einer Seite austauschen (LS)
« Antwort #10 am: 14.01.08 - 12:39:32 »
So es hat jetzt geklappt. Mit dem Arbeiten in einem Dokument ging es ja wirklich ganz easy. Ich habe die AddAttachment Routine benutzt. Hier der Vollständigkeit halber noch der Link: http://atnotes.de/index.php?topic=36362.0

Danke!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz