Autor Thema: Druck von mehreren Dokumenten in einer Ansicht  (Gelesen 1901 mal)

Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Druck von mehreren Dokumenten in einer Ansicht
« am: 26.09.06 - 21:08:21 »
Hallo zusammen,

Ich zermarter mir gerade den Kopf zu folgendem Thema:
Es sollen mehrere Dokumente in einer Ansicht markiert und in einer Druckmaske angezeigt werden (Tätigkeitsbericht). Und zwar nach folgendem Schema:

In der Ansicht: Name1   Abteilung1   Tätigkeit1   Datum1   Kostenstelle1
                        Name1   Abteilung1   Tätigkeit2   Datum2   Kostenstelle1
                        Name1   Abteilung1   Tätigkeit3   Datum3   Kostenstelle1

In der Maske:

Name
Abteilung
Kostenstelle
____________________________

Datum1   Tätigkeit1
Datum2   Tätigkeit2
Datum3   Tätigkeit3

Mein Konzept sieht jetzt folgendermaßen aus:

Aktion "Druckmaske erzeugen" in der Ansicht mit "SubCreatePrintForm(uidoc As NotesUIDocument) usw...", Befüllung der Felder der Druckmaske mit den Werten aus der Hauptmaske. Diese Maske dann einfach mit "@Command([FilePrint]) ausdrucken.

Meine Probleme dabei:

Die Aktion "Druckmaske erzeugen" kann nicht von einer Ansicht aufgerufen werden, da die im Skript enthaltenen Felder in der Ansicht nicht gefunden werden können. Die Aktion lässt sich nur von der Dokument-Maske aus aufrufen, hier werden die Felder gefunden. Somit funktioniert dann aber die Option nicht mehr, mehrere Dokumente durch Markieren gleichzeitig in die Druckmaske aufzunehmen.

Seid mir nicht böse, aber hier stehe ich gerade voll auf dem Schlauch. Kann mir jemand vielleicht nen Tip geben bzw. den Weg aufzeigen, wie man das lösen könnte?     

Vielen Dank!
Gere


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Druck von mehreren Dokumenten in einer Ansicht
« Antwort #1 am: 26.09.06 - 22:35:00 »
Es wäre jetzt interessant, mehr über Deine bisherigen Bemühungen zu erfahren, denn sowas lässt sich selbstverständlich und ohne weiteres realisieren (wobei mir die Logik, die hinter dem Header
Name
Abteilung
Kostenstelle
noch unklar ist, da man in einer Ansicht ja zunächst mal beliebige Dokumente auswählen kann. Aber auch sowas lässt sich machen (wenn mehrere Namen / Abteilungen / Kostenstellen) gefunden werden.

Was aber auf jeden Fall nicht funktioniert: Du kannst soetwas nicht mit @functions / @commands erreichen, hierfür ist LotusScript erforderlich.

Und jetzt: Mehr Input, mehr Output.

Bernhard

Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Re: Druck von mehreren Dokumenten in einer Ansicht
« Antwort #2 am: 27.09.06 - 07:43:16 »
Hallo Bernhard,

Das war mir klar  ;D

Folgendermaßes will ich mit einer Aktion die Druckmaske befüllen:

____________________________________________________________

Sub CreatePrintForm(uidoc As NotesUIDocument)
   
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim printdoc As NotesDocument
   Dim nam As NotesName
   Dim profiledoc As NotesDocument
   Dim counter As Integer
   Dim puidoc As NotesUIDocument
   
   On Error Goto ErrorSection
   
   Set s = New NotesSession
   Set db = s.CurrentDatabase
   Set profiledoc = db.GetProfileDocument("Profil", "Profil")
   Set doc = uidoc.Document
   
   Set printdoc = db.CreateDocument
   printdoc.Form = "DocPrint"
   printdoc.CreatedBy = doc.CreatedBY(0)
   printdoc.ServiceLocation = doc.ServiceLocation(0)
   
                usw usw usw...

   
   If Not (doc.CreatedBy(0) = "") Then
      Set nam = s.CreateName(doc.CreatedBy(0))
      printdoc.CreatedBy = nam.Common
   End If
   
   If Not (doc.ServiceLocation(0) = "") Then
      printdoc.ServiceLocation = doc.ServiceLocation(0)
   End If
   
   usw usw usw...
   
   printdoc.Remarks = profiledoc.Remarks(0)
   printdoc.ReportNumber = Cstr(profiledoc.ReportNumber(0))
   
   counter = profiledoc.ReportNumber(0)
   counter = counter + 1
   Call profiledoc.ReplaceItemValue("ReportNumber", counter)
   Call profiledoc.Save(True, False)
   
   Call ws.EditDocument(True, printdoc)
   Set puidoc = ws.CurrentDocument
   
   Call SetMeasurementValues(doc, puidoc, db)

                'Füllen des Feldes DocID mit der Document UNID

                Call doc.ReplaceItemValue("DocID", udoc.UniversalID)
   Call ws.EditDocument(True, doc)
   
   Exit Sub
   
ErrorSection:
   'Return Error Number and Error Message
   boxType% = 0 + 64
   flag = Messagebox("Ein interner Fehler ist aufgetreten: "& Str(Err) & " (" & Error$ & "), Zeile " & Str(Erl()) & ". Bitte geben Sie beide Angaben an IT weiter.", boxType%, "Interner Fehler")
   Exit Sub
   
End Sub

_______________________________________________________________________

Ich habe nun eine versteckte Ansicht gemacht, die die Werte aus der DocPrint-Maske anzeigt.
Da ich ja nicht nun weiß, wieviele Dokumente zum Druck markiert werden, habe ich jetzt mal 9 Zeilen in der Druckmaske geschaffen. Die Schwierigkeit ist jetzt, diese dynamisch zu füllen. Mein Ansatz hier ist:

Sub SetMeasurementValues(doc As NotesDocument, uidoc As NotesUIDocument, db As NotesDatabase)
   
   Dim v As NotesView
   Dim sdoc As NotesDocument
   Dim dc As NotesDocumentCollection
   Dim i As Integer
   Dim c As Integer
   Dim dt As NotesDateTime
   
   On Error Goto ErrorSection
   
   Set v = db.GetView("(PrintByID)")
   Set dc = v.GetAllDocumentsByKey(Cstr(doc.UniversalID), True)
   
   i = 0
   c = 1   
   
   If (dc.Count > 0) Then
      
      Set sdoc = dc.GetFirstDocument
      'Call uidoc.FieldSetText("Type", sdoc.Type(0))
      
      While Not sdoc Is Nothing
         
         DateFieldName = "Date_" & Cstr(i)
         TimeSFieldName = "TimeS_" & Cstr(i)
         TimeEFieldName = "TimeE_" & Cstr(i)
         DescriptionFieldName = "Description_" & Cstr(i)
         
                      usw usw usw...
            
         c = c + 1
         i = i + 1
         Set sdoc = dc.GetNextDocument(sdoc)
      Wend
      
      Call uidoc.Save
      Call uidoc.Refresh
   End If
   
   Exit Sub
   
ErrorSection:
   'Return Error Number and Error Message
   boxType% = 0 + 64
   flag = Messagebox("Ein interner Fehler ist aufgetreten: "& Str(Err) & " (" & Error$ & "), Zeile " & Str(Erl()) & ". Bitte geben Sie beide Angaben an IT weiter.", boxType%, "Interner Fehler")
   Exit Sub
   
   
End Sub

_______________________________________________________________________

So, und irgendwie hab ich da wohl in meiner Taktik nen Denkfehler drin. Kann mir jemand auf die Sprünge helfen?

Danke + Gruss Gere


Offline PsychoDad

  • Frischling
  • *
  • Beiträge: 36
  • Geschlecht: Männlich
  • ...und wer weint um mich? Argentinien!?
Re: Druck von mehreren Dokumenten in einer Ansicht
« Antwort #3 am: 27.09.06 - 08:57:02 »
Hallo!
Ich würde dieses Problem ganz einfach lösen:
Du erstellt eine Druckmaske mit der Option "Formeln übernehmen Werte des gewählten Dokumentes".

Die Felder Namen; Abteilung und Kostenstelle sind in sich selbst berechnet (werden vom in der Ansicht markierten Dokument übernommen).
Die Felder Datum und Tätigkeit berechnen sich mit einem Lookup nach dem Namen ( besser der Pers-Nr oder ähnliches ).
Dann reicht Dir eine Aktionsschaltfläche in der Ansicht mit einem @command([compose];"Druckmaske") und ein File Print. Am besten noch mit SaveOptions arbeiten, damit Du Deine DB nicht zumüllst.

Ach so: Für einen Tätigskeitbericht wirst Du sicher noch einen Zeitraum ( KW, Monat ) oder sonstiges brauchen. Also den Lookup dementsprechend anpassen ;)

Gruß
Frank

P.S
Ich würde ein Profildokument nicht als counter nehmen - ich habe da schon einige merkwürdige Ergebnisse erzielt.
« Letzte Änderung: 27.09.06 - 08:59:45 von PsychoDad »
Die Titanic wurde von Profis gebaut - die Arche Noah von einem Amateur...

Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Re: Druck von mehreren Dokumenten in einer Ansicht
« Antwort #4 am: 28.09.06 - 13:55:05 »
Hallo Frank,

Du hast eigentlich recht. Ich hab das jetzt mal im Test so nachgebaut, nur die Option in der Druckmaske "Formeln übernehmen aus gewähltem Dokument" zieht leider nicht. Es werden dann immer alle Dokumente in der Druckmaske angezeigt.

Woran liegt das?

Gruss Gere

Offline PsychoDad

  • Frischling
  • *
  • Beiträge: 36
  • Geschlecht: Männlich
  • ...und wer weint um mich? Argentinien!?
Re: Druck von mehreren Dokumenten in einer Ansicht
« Antwort #5 am: 29.09.06 - 07:51:52 »
HI!

Hm - schwer zu sagen - aber Du mußt jetzt natürlich nur noch ein Dokument markieren, da sich die Tätigkeitszeiten ja per Lookup berechnen.
Du hast doch bestimmt soetwas wie ein Mitarbeiterstammblatt, oder!? Daraus würde ich die Erstellung der Tätigkeitsberichte anstoßen - evtl. würde ich die dann doch speichern und dort in einer eingebetten Ansicht anzeigen - das wäre doch schick!
Gruß
Frank
Die Titanic wurde von Profis gebaut - die Arche Noah von einem Amateur...

Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Re: Druck von mehreren Dokumenten in einer Ansicht
« Antwort #6 am: 29.09.06 - 08:09:14 »
Guten Morgäähn.

Gibts eigentlich irgendwie ne Möglichkeit, markierte Dokumente in eine andere Ansicht zu kopieren bzw. in einer Ansicht nur die markierten Dokumente anzuzeigen? Das wäre der Clou.

Hab mir nämlich nen Workaround um mein Problem gebastelt, der das erforderlich machen würde. Dann wäre alles in Butter.

Gruss Gerhard

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Druck von mehreren Dokumenten in einer Ansicht
« Antwort #7 am: 29.09.06 - 08:18:17 »
Schau in der Hilfe mal nach PutToFolder.

Das könnte Dir weiterhelfen.
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 )

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Druck von mehreren Dokumenten in einer Ansicht
« Antwort #8 am: 29.09.06 - 15:30:27 »
@Command([ViewShowOnlySelected]) leistet genau das, was du willst.

Und wen du in der Ansicht noch eine Maskenformel einbaust, kannst du die Dokumente von dort auch mit einer speziellen (Druck)Maske drucken.

Gruß

Norbert
Situs vilate in isse tabernit.

Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Re: Druck von mehreren Dokumenten in einer Ansicht
« Antwort #9 am: 02.10.06 - 16:08:37 »
Hallo Norbert,

Danke für den Tip, aber das funktioniert auch nicht. Das was in einer Ansicht dann angezeigt wird ist ja nur eine Dokumentauswahl, aber in der Druckmaske werden alle Dokumente der Ansicht übernommen (auch die, die nicht angezeigt werden).

Gruss Gere

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz