Autor Thema: Tabelle aus bestehenden Dokumenten erstellen  (Gelesen 4643 mal)

Offline Kiezkicker

  • Junior Mitglied
  • **
  • Beiträge: 60
Tabelle aus bestehenden Dokumenten erstellen
« am: 03.02.06 - 15:07:17 »
Hallo,

in einer DB habe ich folgendes vor:

es existieren mehrere Dokumente mit den Feldern Name, Wert1, Wert2, Wert3. Nun möchte ich mehrere Dokumente in der Ansicht markieren und es soll über eine separate Maske, eine in der Maske bestehende Tabelle mit den Feldern der verschiedenen Dokumente befüllt und ausgedruckt werden (@Command[FilePrint]; "Druckmaske").

Beispiel:

Name     Wert1   Wert2   Wert3
Jan           5            2            3
Peter        2            4            9
Klaus        4            7            8

Habe bisher nicht sinnvolles gefunden. Ist dieses mit einfachen Mitteln möglich?

Danke im Voraus

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #1 am: 03.02.06 - 15:12:38 »
Definiere "einfache Mittel".  ::) :P
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #2 am: 03.02.06 - 15:14:36 »
Das einfachste wäre, hierfür eine Ansicht zu definieren, die man Ausdrucken kann!

Eine echte Tabelle mit Script ist mit einfachen mitteln nicht möglich.

Gruss
Chris

Offline Kiezkicker

  • Junior Mitglied
  • **
  • Beiträge: 60
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #3 am: 03.02.06 - 15:31:36 »
Gint es denn die Möglichkeit beim Drucken einer Ansicht über und unter der Ansicht Text zu ergänzen? Bzw. kann man eine Ansicht in eine Maske "einfügen"

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #4 am: 03.02.06 - 15:41:21 »
Ja es gibt seit R5 die Möglichkeit eine Ansicht (als eingebettetes Object) in einer Seite oder Maske einzubetten.

Ich bin mir allerdings hier nicht sicher, ob man das "gut" ausgedruckt bekommt.

Offline VB3Bernd

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Männlich
  • Danke!
Gleiches Problem
« Antwort #5 am: 06.02.06 - 13:53:36 »
Hallo zusammen,

habe das gleiche Problem. Mehrere Doks, deren Werte -der Übersicht wegen- in ein Dokument mit einer Tabelle eingestellt werden sollen.

Gibt es da ein "einfaches" Skript? (Bin in Skript noch Anfänger und kann mich durchwursteln, wenn ich einen Anfang habe  :-\).

Danke schonmal
Bernd
SYSTEM
Domino 9.0.1 FP10 HF983
Client Win10 mit Notes 12.0.0
(Revision 20210514.0921)
Mail-Schablone 9.1.0 (20.03.18)
-----------------------------------
Man wird nicht zwischen Weihnachten und Neujahr dick, sondern zwischen Neujahr und Weihnachten! ;-)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #6 am: 06.02.06 - 15:47:33 »
wenn die Länger der Texte einigermassen Konstant ist, dann könnte man das so machen:

1. Maske definieren ("PrintForm" mit der Tabelle, x Felder

NameWert 1[/td
FELD1FELD2

Die Felder jeweils: berechnet, Mehrfachwerte, Mehrfachwerte getrennt anzeigen mit "Neue Zeile"

Dann einen Agenten (läuft auf selektierte Dokumente) mit folgendem Script:

Dim ws as New NotesUIWorkspace
Dim ses as New NotesSession
Dim db as NotesDatabase
Dim dc as NotesDocumentCollection

dim printDoc as NotesDocument
Dim doc as NotesDocument

Dim item1 as NotesItem, item2 as NotesItem

Set db = ses.CurrentDatabase
set dc = db.UnporcessedDocuments

set printDoc = new NotesDOcument( db )
printDoc.Form = "PrintForm"
set item1 = New NotesItem( printDoc , "FELD1" )
set item2 = New NotesItem( printDoc , "FELD2" )

For i = 1 to dc.Count
  set doc = dc.GetNthDocument( i )
  call item1.AppendToTextList( doc.GetItemValue( "Quell-Feldname1" )( 0 ) )
  call item2.AppendToTextList( doc.GetItemValue( "Quell-Feldname2" )( 0 ) )
Next
call ws.EditDocument( True, printDoc )

dann hat man das Dokument mit der Tabelle auf dem Screen und muss es nur noch drucken...


HTH
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Kiezkicker

  • Junior Mitglied
  • **
  • Beiträge: 60
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #7 am: 06.02.06 - 16:16:33 »
Hallo,

ich habe es mit der eingebetteten Ansicht gelöst, klappt auch super. Gibt es eine Möglichkeit auf die Summer einer Spalte aus dieser Ansicht zurückzugreifen? Soll als Vorgabewert für ein Feld dienen

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #8 am: 06.02.06 - 16:21:21 »
Guckst Du hier: http://atnotes.de/index.php?topic=28405.0

Das ist im Wesentlichen die gleiche Thematik.

Bernhard

Offline VB3Bernd

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Männlich
  • Danke!
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #9 am: 06.02.06 - 16:50:40 »
@tode

Vielen Dank für Deinen Code.
Ich würde gerne alle Dokumente in der Ansicht "Import" abarbeiten, meine Ziel-Felder heißen "Prod" und "Jan".
Ich habe versucht, Dein Skript abzuändern ... Ergebnis =  ???

Hier der Code:
   Dim ws As New NotesUIWorkspace
   Dim ses As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim dc As NotesDocumentCollection
   
   Dim printDoc As NotesDocument
   Dim doc As NotesDocument
   
   Dim item1 As NotesItem , item2 As NotesItem
   
   Set db = ses.CurrentDatabase
   Set view = db.GetView("Import")
   Set doc = view.getfirstdocument
   
   Set printDoc = New NotesDocument( db )
   printDoc.Form = "Auswertungsdokument3"
   Set item1 = New NotesItem( printDoc , "Prod" )
   Set item2 = New NotesItem( printDoc , "Jan" )
   
   Do While dc Is Nothing
      Set dc = doc.GetNextDocument ( doc )
      Call item1.AppendToTextList( doc.GetItemValue( "PRODBEZ" )( 0 ) )
      Call item2.AppendToTextList( doc.GetItemValue( "ERTRAG_JAN" )( 0 ) )
   Loop
   Call ws.EditDocument( True, printDoc )

Nun erscheinen die Zeilen mit Set item1 / item2 rot und als Fehlermeldung kommt:
"Missing argument to constructor for: NOTESITEM"

Was mache ich falsch?

Bernd
SYSTEM
Domino 9.0.1 FP10 HF983
Client Win10 mit Notes 12.0.0
(Revision 20210514.0921)
Mail-Schablone 9.1.0 (20.03.18)
-----------------------------------
Man wird nicht zwischen Weihnachten und Neujahr dick, sondern zwischen Neujahr und Weihnachten! ;-)

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #10 am: 06.02.06 - 17:01:34 »
Zwei Treffer an einem Tag. Schau hier nach da gibt es so was. Unter Report Vorlagen und Reporting.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #11 am: 06.02.06 - 17:04:33 »
@VB3Bernd

Set item1 = New NotesItem( printDoc, "Prod", "")

Analog item2

==> Du musst als dritten Parameter einen Wert fuer das "neue" Feld angeben.

==> siehe auch design-Help !

Andreas

Offline VB3Bernd

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Männlich
  • Danke!
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #12 am: 06.02.06 - 17:34:49 »
Danke - so funktionierts   :D   !!!!
Grüße
Bernd
SYSTEM
Domino 9.0.1 FP10 HF983
Client Win10 mit Notes 12.0.0
(Revision 20210514.0921)
Mail-Schablone 9.1.0 (20.03.18)
-----------------------------------
Man wird nicht zwischen Weihnachten und Neujahr dick, sondern zwischen Neujahr und Weihnachten! ;-)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #13 am: 06.02.06 - 17:53:02 »
Du machst so ziemlich alles falsch... Code abändern ist schön und gut, aber sau- gefährlich, wenn man nicht versteht, was da passiert:

Zunächst mal: mein code war einfach so dahingepinselt, ohne den Notes- Script- Editor, und da sind nun mal Fehler drin...

1. Fehler
Wie die Fehlermeldung besagt: NotesItem benötigt nicht 2 Argumente wie in meinem Beispiel sondern 3. Mit einem kleinen Blick in die Designer- Hilfe zur Notes- Item- Klasse hättest Du das selbst rausfinden können...
richtig:
set item = new NotesItem( doc , "FELD1" , "" )

2. Fehler
die GetNextDocument- Methode der View- Klasse liefert ein NotesDocument zurück, keine NotesDocumentCollection.
3. Fehler
While dc is nothing
Abgesehen davon, dass Du auf "doc" abfragen solltest, wird diese Schleife nur einmal durchlaufen, nämlich so lange bis doc gesetzt wurde.... Richtig wäre NOT doc is nothing

4. Fehler
bei Deinem Code wird das erste Dokument in der Ansicht übersprungen, weil Du "GetNext..." machst, bevor Du die Felder ausliest.

Also: Wenn schon jemand ausnahmsweise Code postet, dann gilt:

1. Code verstehen
2. Code verstehen
3. Code verstehen
und DANN
4. Code anpassen.

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline VB3Bernd

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Männlich
  • Danke!
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #14 am: 06.02.06 - 18:02:32 »
@tode

o.k., o.k. - Du hast uneingeschränkt recht  :-[

Mein "so funktionierts" hat natürlich nur mit Deinem Code geklappt, meinen habe ich weggeschmissen ...

Ich muss noch viel lernen, trotzdem Danke für die Hilfe.
Bernd
SYSTEM
Domino 9.0.1 FP10 HF983
Client Win10 mit Notes 12.0.0
(Revision 20210514.0921)
Mail-Schablone 9.1.0 (20.03.18)
-----------------------------------
Man wird nicht zwischen Weihnachten und Neujahr dick, sondern zwischen Neujahr und Weihnachten! ;-)

Offline Kiezkicker

  • Junior Mitglied
  • **
  • Beiträge: 60
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #15 am: 13.02.06 - 14:44:58 »
Nun habe ich eine weitere Frage. In meiner eingebetteten Ansicht habe ich alle "Bestellungen" der morgigen Tages (@tomorrow) anzeigen lassen. Nun soll das Datum aber vorgegeben werden können. Ist es möglich in der Ansichtsauswahl das Datum, welches in der Maske ausgewählt wurde auszulesen. Meine ersten Versuche scheiterten.
Gibt es sonst eine Möglichkeit das Datum für die Ansichtsauswahl vorzugeben?

Danke im Voraus

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #16 am: 13.02.06 - 16:28:14 »
1. eingebettete Ansicht kategorisieren nach Datum
2. In der Maske: Eingebettete Ansicht -> Einzelne Kategorie anzeigen: Formel: DatumsFeld
3. Feld erstellen, Name "DatumsFeld" , bearbeitbar, und dafür sorgen, dass nach Änderungen im Feld die Maske refreshed wird.

HTH
Tode

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Kiezkicker

  • Junior Mitglied
  • **
  • Beiträge: 60
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #17 am: 14.02.06 - 17:14:12 »
1. eingebettete Ansicht kategorisieren nach Datum
2. In der Maske: Eingebettete Ansicht -> Einzelne Kategorie anzeigen: Formel: DatumsFeld
3. Feld erstellen, Name "DatumsFeld" , bearbeitbar, und dafür sorgen, dass nach Änderungen im Feld die Maske refreshed wird.

Danke für die detaillierten Antworten!

Eine letzte Frage habe ich noch:
Ist es möglich die Summe der Kategorie in der eingebetteten Ansich anzuzeigen? In der Ansicht ist die Summe aktiviert, aber wahrscheinlich weil die Kategorien ja ausgeblendet werden wird die Summe in der eingebetteten Ansicht nicht angezeigt. Kann man die Summer in die Ansicht bekommen? Oder gibt es eine anderen Lösungsansatz?

Thx

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Tabelle aus bestehenden Dokumenten erstellen
« Antwort #18 am: 14.02.06 - 17:24:34 »
Eine Summe bekommst Du (wie Du schon richtig vermutet hast) in einer embedded view nicht angezeigt.
Du kannst aber ein computed for display-Feld in der Maske hernehmen, um mittels @Sum (@dbLookup (...)) Dir die Summe on the fly berechnen zu lassen.

HTH,
Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz