Autor Thema: Haupt- und Antwortdokumente  (Gelesen 3800 mal)

Offline BMT216A

  • Junior Mitglied
  • **
  • Beiträge: 57
  • Geschlecht: Männlich
  • Wodka-Martini: Geschüttelt, nicht gerührt!
Haupt- und Antwortdokumente
« am: 05.08.10 - 11:11:10 »
Hallo Notesler,

ich habe eine Frage zur Erstellung von Antwortdokumenten.
Mit Haupt- und Antwortdokumenten arbeite ich eigentlich schon länger, hatte aber noch nie folgende Anforderung:

Ich soll:

1. Das Haupdokument erstellen, und aus diesem gleich eine Antwortdokument erstellen. Dies klappt auch und ich mache das wei im HowTo aus dem Forum beschrieben. (Script)
 
2. Das jetzt geöffnete Antwortdokument soll gleich wieder so einen Button haben, um eine Antwort auf das in 1 erstellte Haupdokument zu erstellen.

Und hier liegt mein Problem. Ich komme zwar so weit, dass ich wieder eine Antwort auf 2 erstellen kann, aber das will/soll ich nicht.

Ich wäre über einen kleinen Gedankenanstoss sehr sehr dankbar :-)
Wahrscheinlich ist es nur eine Kleinigkeit, aber manchmal sieht man den Wald vor lauter Bäumen nicht.

Viele Grüße Christian
Wenn man nicht spürt, dass man lebt, wird das Leben sinnlos.

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

Ich traue jedem. Ich traue nur nicht dem Teufel, der in jedem steckt.

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: Haupt- und Antwortdokumente
« Antwort #1 am: 05.08.10 - 11:20:40 »
Du könntest z.B. die UniversalID des Hauptdokuments in dem Antwortdokument speichern. Wenn du jetzt in dem ersten Antwortdokument auf den von dir beschriebenen Button klickst, dann könntest du dir an Hand der UniversalID das Hauptdokument holen und das Zweite Antwortdokument mit der MakeResponse Methode dem Hauptdokument zuweisen.

Ich hoffe ich habe deine Anforderung richtig verstanden.
Gruss
Lloyd

Offline BMT216A

  • Junior Mitglied
  • **
  • Beiträge: 57
  • Geschlecht: Männlich
  • Wodka-Martini: Geschüttelt, nicht gerührt!
Re: Haupt- und Antwortdokumente
« Antwort #2 am: 05.08.10 - 11:27:59 »
Hi Lloyd,

die UniversalID des Hauptdokuments hab ich im Hauptdokument in ein Feld <HauptUNID> geschrieben. In meinem Antwortdokument hab ich ein Feld <$REF> mit dem Wert <HauptUNID> so funktioniert ja dann auch mein Doklink aus der Antwort auf das Hauptdokument.

Wenn ich dich richtig versatnden habe, muss ich meinem Script nur mitteilen, dass aus dem gerade geöffnetet Antwortdokument auf das Dokument mit der UNID <HauptUNID> eine Antwort zu erstellen ist.

Wenn das geht, sollte es ja möglich sein, x Antworten nach ein ander über einen Button auf das Hauptdok zu erstellen.

Ich hoffe ich schreibe hier nicht zu unverständlich.

Ciao
Wenn man nicht spürt, dass man lebt, wird das Leben sinnlos.

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

Ich traue jedem. Ich traue nur nicht dem Teufel, der in jedem steckt.

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: Haupt- und Antwortdokumente
« Antwort #3 am: 05.08.10 - 11:46:23 »
Ja das geht so.

Folgende Funktionen könnten hilfriech sein. Hier im Forum und in der Designerhilfe sind jede Menge Beispiele dazu.

Mit der Funktion kannst du dir das Hauptdokument wiede als doc holen
GetDocumentByUniqueID(uid As String)

Hier teilst du dem Antwortdokument mit, welches sein zugehöriges Hauptdokument ist.
Set doc2 = uidoc.Document
Call doc2.MakeResponse( doc )
Call doc2.Save(True,False)
Gruss
Lloyd

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Haupt- und Antwortdokumente
« Antwort #4 am: 05.08.10 - 12:54:57 »
Du bekommst die UNID des Hauptdokumentes auch mit

        notesDocument.ParentDocumentUNID


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline BMT216A

  • Junior Mitglied
  • **
  • Beiträge: 57
  • Geschlecht: Männlich
  • Wodka-Martini: Geschüttelt, nicht gerührt!
Re: Haupt- und Antwortdokumente
« Antwort #5 am: 06.08.10 - 15:32:33 »
Hi,

irgendwie sitz ich wohl grad auf der Leitung.
Hier ist mein Code, mit dem ich die Antwort auf die Antwort erstelle, also nicht das was ich will.
Habe jetzt schon geraume Zeit damit verbracht es zu ändern, aber es klappt nicht.
Wäre einer von Euch so freundlich mir die Zeilen so anzupassen, dass es klappt.

Vielen Dank

Sub ErstelleAntwort
   Const FORMNAME_RESPONSE$ = "TOP"
   Const ERR_NODOCSEL_TITLE$ = "Fehler: Es ist kein Hauptdokument gewählt!"
   Const ERR_NODOCSEL_MSG$ = "Es muss ein Dokument gewählt sein um eine Antwort erstellen zu können."
   
   Dim uiws As New NotesUIWorkspace
   Dim uidocNew As NotesUIDocument
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim docSel As NotesDocument
   Dim docNew As NotesDocument
   
   'Aktuelle Datenbank
   Set db = session.CurrentDatabase
   
   'Aktuelles Dokument als NotesDocument
   If Not uiws.CurrentDocument Is Nothing Then
      'Dokument mit Maske geöffnet
      Set docSel = uiws.CurrentDocument.Document   
      'Dokument in Ansicht selektiert
   Elseif Not session.DocumentContext Is Nothing Then
      Set docSel = session.DocumentContext                  
   End If
   'User hat kein Dokument ausgewählt um eine Antwort ersetllen zu können
   If docSel Is Nothing Then                                    
      Msgbox ERR_NODOCSEL_MSG, 48, ERR_NODOCSEL_TITLE
      Exit Sub
   End If
   
   'Neues Backend Antwortdokument erstellen
   Set docNew = db.CreateDocument
   Call docNew.ReplaceItemValue("Form", FORMNAME_RESPONSE)
   Call docNew.MakeResponse(docSel)
   
   'Neues Dokument im Frontend öffnen
   Call uiws.EditDocument(True, docNew)
   
   
End Sub
Wenn man nicht spürt, dass man lebt, wird das Leben sinnlos.

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

Ich traue jedem. Ich traue nur nicht dem Teufel, der in jedem steckt.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Haupt- und Antwortdokumente
« Antwort #6 am: 06.08.10 - 19:14:04 »
Der Code sieht auf den ersten Blick eigentllich ganz ok aus. Das einzigste was mich auf Anhieb etwas stört ist das hier:

Call docNew.ReplaceItemValue("Form", FORMNAME_RESPONSE)

Versuch's mal so:

...
   'Neues Backend Antwortdokument erstellen
   Set docNew = db.CreateDocument
   Call docNew.Form = FORMNAME_RESPONSE$
   Call docNew.ComputeWithForm(True, False)
   Call docNew.MakeResponse(docSel)
   
   'Neues Dokument im Frontend öffnen
   Call uiws.EditDocument(True, docNew)
...

Beschreib' mal genauer was nicht funktioniert. Was sagt der Debugger zu dem Thema?

Axel


Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Haupt- und Antwortdokumente
« Antwort #7 am: 06.08.10 - 19:21:21 »
Wenn ich das als Dau-in richtig sehe, machst du das von einem Antwortdokument aus, richtig?

Dann ist docSel bereits ein Antwortdokument, und wenn du an dieses ein neues Antwortdokument hängst, ist das dann richtigerweise ein Antwort-zu-Antwortdokument.
Du musst von docSel im Backend auf das Hauptdokument zugreifen (siehe 1. Beitrag Axel, danach 2. Beitrag Lloyd).
Dann trägst du im Abschnitt Antwortdokument erstellen dort, wo bisher docSel eingetragen ist, das Hauptdokument ein.
Dann sollte das funktionieren.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline BMT216A

  • Junior Mitglied
  • **
  • Beiträge: 57
  • Geschlecht: Männlich
  • Wodka-Martini: Geschüttelt, nicht gerührt!
Re: Haupt- und Antwortdokumente
« Antwort #8 am: 09.08.10 - 15:14:37 »
Hallo Notesler(innen),

wie in meinem ersten Post geschrieben, manchmal sieht man den Wald vor lauter Bäumen nicht. Die Lösung war so einfach, wie von Axel und Lloyd geschrieben.

Ich hab es jetzt so gelöst.
Hier noch der Code.

Sub Erstelle_x_Antwort
   
   '******************************************************************************
   'Erstelle_x_Antwort
   'hiemit sollen n Antworten aus einem Antwortdokument auf ein
   'Haupdokument erstellt werden.
   'Versionskontrolle:
   'V1.00 Erstellt 09.08.2010 xxx
   '******************************************************************************    
   
   'Deklaration der Variablen, die nur hier genutzt werden,
   'alle anderen sind in der Scriptbibliothek unter (Declarations) zu finden
   Dim Hauptdokument As NotesDocument
   Dim Antwortdokument As NotesDocument
   
   
   Set ws  = New NotesUIWorkspace
   Set session =  New NotesSession
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   Set db = session.CurrentDatabase
   
   'allseits bekannt
   cr = Chr(10) & Chr(13)   
   
   'Dem Hauptdokument eintrichtern, dass es genau das Hauptdokument über doc.ParentDocumentUNID ist
   Set Hauptdokument = db.GetDocumentByUNID(doc.ParentDocumentUNID)   
   
   'Neues Backend Antwortdokument zum aktuellen Dokument erstellen
   Set Antwortdokument = db.CreateDocument
   Call Antwortdokument.ReplaceItemValue("Form", "TOP")
   Call Antwortdokument.MakeResponse(Hauptdokument)
   
   'Neues Dokument (hier Antwort auf Haupdokument) im Frontend öffnen
   Call ws.EditDocument(True, Antwortdokument)
   
   'Alles in der Welt endet durch Zufall und Ermüdung.
   'Heinrich Heine
   
End Sub


Wenn man nicht spürt, dass man lebt, wird das Leben sinnlos.

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

Ich traue jedem. Ich traue nur nicht dem Teufel, der in jedem steckt.

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Haupt- und Antwortdokumente
« Antwort #9 am: 10.08.10 - 07:31:43 »
Und man kann sich im Best Practices nochmal sehr eingehend mit dem Thema beschäftigen.
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz