Autor Thema: CopyAllItems  (Gelesen 1587 mal)

Offline Sese

  • Frischling
  • *
  • Beiträge: 47
  • Geschlecht: Männlich
  • Toller Bursche!!!
CopyAllItems
« am: 30.05.03 - 10:18:30 »
Hallo zusammen.

Ich habe probleme mit einer Funktion.

Ich will über eine Aktion in einem Dokument eine Kopie dieses Dokumentes erstellen. Das ganze sollte geschehen, ohne das orignial im Edit-Modus zu öffnen (bzw. im Backend-Bereich).

Ich habe in der Notes-Hilfe folgende Code gefunden:

Code
Dim session As New NotesSession
Dim db As NotesDatabase
Dim docA As NotesDocument
Dim docB As NotesDocument
Set db = session.CurrentDatabase
'...set value of docA...
Set docB = New NotesDocument( db )
Call docA.CopyAllItems( docB, True )
Call docB.Save( True, True )

Dieser funktioniert jedoch nicht.

Hat jemand eine Idee, wie ich das lösen kann ?

Vielen Dank im voraus.

Gruß
Sebastian
Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät ;-)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:CopyAllItems
« Antwort #1 am: 30.05.03 - 10:24:31 »
... wo initialisierst du das docA ?

ata
« Letzte Änderung: 30.05.03 - 10:24:46 von ata »
Grüßle Toni :)

Offline Sese

  • Frischling
  • *
  • Beiträge: 47
  • Geschlecht: Männlich
  • Toller Bursche!!!
Re:CopyAllItems
« Antwort #2 am: 30.05.03 - 10:33:59 »
... wo initialisierst du das docA ?

?? Ich glaube, daß genau da mein Problem liegt, bzw. ich nicht weiß wie ??

Ich habe den Code direkt aus er Notes-Hilfe übernommen. Der Degugger sagt auch, daß er docA nicht findet !

Wie müsste ich docA denn initialisieren ?

Danke .

Gruß
SESE
Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät ;-)

klaussal

  • Gast
Re:CopyAllItems
« Antwort #3 am: 30.05.03 - 10:43:46 »
... als BEiSPIEL !:
Code
Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim notesDate As New NotesDateTime ("")
   Dim docNew As NotesDocument
   Dim rtitem As NotesRichTextItem
   Dim varDummy As Variant
   
   Set db = session.currentDatabase
   Set uidoc = ws.currentDocument
   Set doc = uidoc.document
   
   
   varDummy = ws.Prompt( PROMPT_YESNO, "Schliessen", "Sie wollen eine neue Insolvenz öffnen. " _ 
   & Chr(13) & "Möchten Sie wirklich fortfahren ? "_
   & Chr(13) + "Danach kann das Dokument nicht mehr bearbeitet werden !!!")
   If Not Cstr(varDummy) = "1" Then
      Exit Sub
   End If
   
   If Trim(doc.name(0)) = "" Or Trim(doc.strasse(0)) = ""  Or Trim(doc.plz(0)) = ""  Or Trim(doc.ort(0)) = "" Then
      Msgbox "Einige Felder sind noch nicht ausgefüllt. " _
      & Chr(13) + "Aktion wird abgebrochen !"
      Exit Sub
   End If
   
   Call notesDate.setNow
   doc.akte_ende = notesDate.dateOnly
   Call doc.save(True, False)
   Call uidoc.close
   
   Set docNew = db.createDocument
   docNew.Form = "maske_insolvenz"
   docNew.name = doc.name(0)
   docNew.HRB = doc.HRB(0)
   docNew.strasse = doc.strasse(0)
   docNew.plz = doc.plz(0)
   docNew.ort = doc.ort(0)
   docNew.akte_beginn = notesDate.dateOnly
   
   Set rtitem = New NotesRichTextItem( docNew, "sonstiges" )
   Call rtitem.AppendDocLink( doc, "Link zur AGS" )
   Call docNew.save(True, True)
   Set uidoc = ws.EditDocument(True, docNew)
End Sub
« Letzte Änderung: 30.05.03 - 10:45:32 von klaussal »

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:CopyAllItems
« Antwort #4 am: 30.05.03 - 11:14:41 »
Hi,

versuch's doch mal so:

Zitat
Dim session As New NotesSession
Dim db As NotesDatabase
Dim docA As NotesDocument
Dim docB As NotesDocument
Dim collection As NotesDocumentCollection

Set db = session.CurrentDatabase
'...set value of docA...
Set collection = db.UnprocessedDocuments

Set docA = collection.GetFirstDocument
While Not (docA Is Nothing)
  Set docB = New NotesDocument( db )
  Call docA.CopyAllItems( docB, True )
  Call docB.Save( True, True )
  Set docA = collection.GetNextDocument(docA)
Wend


Damit werden alle markierten Dokumente in der Ansicht, in der die Aktion enthalten ist, dupliziert.


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

Offline Sese

  • Frischling
  • *
  • Beiträge: 47
  • Geschlecht: Männlich
  • Toller Bursche!!!
Re:CopyAllItems
« Antwort #5 am: 30.05.03 - 14:47:55 »
Habs hinbekommen.

Es fehlte "nur" das :

Code
Set doc = uidoc.document

wie es klaussal gemacht hat.

Ich weiß ich hab dafür ein UIDOC benutzt, aber es geht mir nur darum, daß das zu kopierende Dokument nicht mehr im Edit-Mode geöffnet werden darf, jedoch einige Felder darin geändert werden müssen (z.B. archivieren).

Danke Leute.

Gruß
SESE
Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät ;-)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz