Autor Thema: Dialogbox Response- doc erstellen  (Gelesen 1752 mal)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Dialogbox Response- doc erstellen
« am: 24.01.05 - 09:21:18 »
Hallo,

Ich habe ein Problem mit dem Erstellen eines Anwort-doc's mittels Button vom Haupt-doc.

Das ist mein Button:
restliche Declaration ist in einer Library

Sub Click(Source As Button)
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   Dim dlgdoc As NotesDocument
   Set dlgdoc = db.CreateDocument
   dlgdoc.Form = "breakdown"
   dlgdoc.ParentUNID =doc.UNID(0)
   dlgdoc.ID =doc.ID(0)
   dlgdoc.SubProcess =doc.SubProcess(0)
   dlgdoc.SubProcessNr =doc.SubProcessNr(0)
   dlgdoc.Division= doc.Division(0)
   Call dlgdoc.Save(True,False)
   erg = ws.dialogBox("Breakdown",True,True,False,False,False,False,"Eingabe",dlgdoc,True,False,True)
'neu   erg = ws.dialogBox("Breakdown",True,True,False,True,True,False,"Eingabe",dlgdoc,True,False,True)
   If erg <> False Then
      Msgbox dlgdoc.Operation(0)
      Call dlgdoc.MakeResponse( doc )
      Call dlgdoc.Save( True, False )
      Call uidoc.Refresh
   Else
      Call dlgdoc.Remove(True)
   End If
   
End Sub

Das Problem liegt offensichtlich bei erg = ws.dialogbox.... und dort im speziellen bei noNewFields , noFieldUpdate
Wenn ich diese beiden auf False setze dann bekomm ich bei der Msgbox den Wert aber ich möchte nicht habe das er mir mein Hauptdoc ändert was er jedoch bei dieser Einstellung macht.
Hat jemand schon das Problem gehabt oder gibt es einen besseren Lösungsweg oder muss ich einfach nachdem die Felder im Hauptdoc erstellt wurden diese wieder löschen oder soll ich das erstellen der Response-doc's im Querysave der Anwort-Maske machen?
Bin für jeden Vorschlag dankbar.
« Letzte Änderung: 24.01.05 - 14:02:54 von robertpp »
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

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: Dialogbox Response- doc erstellen
« Antwort #1 am: 24.01.05 - 09:38:29 »
Hi,

wieso machst du es überhaupt über einen Dialog? Erstelle doch die Antwort direkt.


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

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: Dialogbox Response- doc erstellen
« Antwort #2 am: 24.01.05 - 10:09:59 »
Es ist so, dass im Hauptdoc einige Sachen ausgewählt werde. Mit diesen Infos wird dann ein Anwortdoc erstellt wobei der Benutzer im Anwortdoc noch einige zusätliche Angaben macht, deshalb ein Dialog.
Es wäre schon möglich das ganz einfach nur als normales Doc zu öffnen nur dann sieht der user halt nicht wirklich das er eine Antwort auf das doc schreibt!
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

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: Dialogbox Response- doc erstellen
« Antwort #3 am: 24.01.05 - 10:43:53 »
Hi,

eine Alternative wäre z.B. so was:

Du erstellst eine sep. Maske mit den entsprechenden Feldern für den Dialog. Dann übernimmst du die Werte aus dem Hauptdok, zeigst den Dialog an und erstellst dann ein neues Dok und übernimmst die Werte.

Sub Click(Source As Button)
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim docNew As NotesDocument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   Dim dlgdoc As NotesDocument
   Set dlgdoc = db.CreateDocument
   dlgdoc.Form = "DialogMaske"
   dlgdoc.ParentUNID =doc.UNID(0)
   dlgdoc.ID =doc.ID(0)
   dlgdoc.SubProcess =doc.SubProcess(0)
   dlgdoc.SubProcessNr =doc.SubProcessNr(0)
   dlgdoc.Division= doc.Division(0)
   erg = ws.dialogBox("DialogMaske",True,True,False,False,False,False,"Eingabe",dlgdoc,True,False,True)
'neu   erg = ws.dialogBox("Breakdown",True,True,False,True,True,False,"Eingabe",dlgdoc,True,False,True)
   If erg <> False Then
      Msgbox dlgdoc.Operation(0)
      Set docNew = db.CreateDocument
      docNew.Form = "Breakdown"
      docNew.ParentUNID =dlgdoc.ParentUNID
      'weitere Felder

      Call docNew.MakeResponse( doc )
      Call docNew.Save( True, False )
   End If
   
End Sub

So oder so ähnlich könnte das funktionieren. Es gibt aber bestimmt noch andere Wege und sogar vielleicht noch einfachere. Aber auf die Schnelle ist mir im Moment nur dieser eingefallen.


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

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: Dialogbox Response- doc erstellen
« Antwort #4 am: 24.01.05 - 10:55:35 »
Das Problem dabei ist aber das ich wenn ich die Dialogbox schließe dann hab ich keine Bezug mehr zu Felder die neu erstellt wurde. Das einzige was ich mir vorstellen kann ist, dass ich im Queryclose ein neues doc erstelle oder überhaupt dort schon das Response doc erstelle da ich ja im Feld ParentUNID die ID vom Hauptdoc habe.
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

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: Dialogbox Response- doc erstellen
« Antwort #5 am: 24.01.05 - 11:13:29 »
Hi,

aber sicher hast du noch ein Bezug zu den Feldern der Dialogbox. Das ganze Dokument ist noch im Speicher vorhanden und du kannst darauf zugreifen. So was hab ich schon x-mal gemacht.


Axel

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

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: Dialogbox Response- doc erstellen
« Antwort #6 am: 24.01.05 - 14:02:35 »
Hab das Problem jetzt fast so gelöst wie ich es eh schon gehabt habe, war auch ein kleiner Denkfehler meiner Seite. Er kann mir ja nichts ins Hauptdoc zurückschreiben weil ich ja schon ein eigenes doc für die Dialogbox gemacht habe.

Sub Click(Source As Button)
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim pdoc As NotesDocument
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   Dim dlgdoc As NotesDocument
   Set dlgdoc = db.CreateDocument
   dlgdoc.Form = "breakdown"
   dlgdoc.ParentUNID =doc.UNID
   dlgdoc.ID =doc.ID(0)
   dlgdoc.SubProcess =doc.SubProcess(0)
   dlgdoc.SubProcessNr =doc.SubProcessNr(0)
   dlgdoc.Division= doc.Division(0)
   Call dlgdoc.Save(True,False)
   erg = ws.dialogBox("Breakdown",True,True,False,False,False,False,"Eingabe",dlgdoc,True,False,True)
   If erg <> False Then
      Set pdoc = db.GetDocumentByUNID(dlgdoc.ParentUNID(0))
      Call dlgdoc.MakeResponse( pdoc )
      Call dlgdoc.Save( True, False )
      Call uidoc.Refresh
   Else
      Call dlgdoc.Remove(True)
   End If
End Sub
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz