Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: dumme_fragen am 14.01.04 - 12:36:05

Titel: Ansicht: Summe erstellen?
Beitrag von: dumme_fragen am 14.01.04 - 12:36:05
Moin!

Heute hab ich ein Problem mit einer Zeiterfassungs-DB.
Ich habe schon gesucht, aber leider nichts passendes gefunden...

Ich hoffe, ihr könnt mir helfen...
Und zwar brauche ich zu Controllingzwecken eine neue Ansicht.
In dieser soll die Gesamtsumme der für ein Projekt aufgewendeten Stunden angezeigt werden, mit dem gültigen Stundensatz multipliziert werden und dem Auftragswert gegenübergestellt werden.

Ich habe eine Maske "Prodaten", die erfasst einmalig Kunden und Projekt mit dem Auftragswert und weiteren Daten. Meine zweite Maske "mZeit" enthält die aufgebrachten Stunden pro Arbeitsgang für das Projekt. Jeder Mitarbeiter, der an einem Projekt gearbeitet hat, schreibt also ein neues dieser Dokumente.

So, nun zum Problem:
Ich habe bisher eine Ansicht, die mir die bisher erbrachten Zeiten anzeigt, indem "mZeit" per Auswahlformel für die Ansicht gewählt wird. Die Ansicht ist nach Kunden und nach Projekten kategorisiert, in der Projektkategorie stehen dann die betreffenden Zeitdokumente mit einer Spalte für die jeweils aufgewendete Zeit. Neben dem Namen des Projektes steht ja dann auch die Gesamtzeit für das Projekt. Aber wie bekomme ich diesen Wert in eine neue Ansicht? Der Wert soll dann mit dem Stundensatz multipliziert werden und dann die Differenz mit dem Auftragswert ausgegeben werden  ( das ist ja nicht das Problem).
Wie bekomme ich aber die Gesamtzeit in die neue Ansicht und den Auftragswert für das jeweilige Projekt aus dem Projektdokument (Maske "Prodaten")?

Vielen Dank schon im voraus!
Titel: Re:Ansicht: Summe erstellen?
Beitrag von: Don Pasquale am 14.01.04 - 12:40:41
Du kannst natürlich eine Ansicht erstellen in der die kumulierte Zeit
pro Kategorie oder ähnlichem angezeigt wird, aber darauf lassen sich leider keine berechnung anstellen.
Ich würde das mit Lotusscript über eine Collection machen.

Hat jemand andere Vorschläge ?

Ciao
Don Pasquale
Titel: Re:Ansicht: Summe erstellen?
Beitrag von: ata am 14.01.04 - 12:57:09
... ich würde die Summe im Projektdokument aktuell pflegen. Die Arbeitspakete werden als Antwortdokumente unter das Projekt gehängt. Mit LS und NotesDocument.Responses addierst du die verwendeten Zeiten und schreibst sie in das Projektdokument.

In deiner Ansicht arbeitest du dann mit den Hauptdokumenten...

Der Weg ist so zwar nicht zwingend gefordert, eröffnet aber neue Möglichkeiten im Projektdokument...

ata
Titel: Re:Ansicht: Summe erstellen?
Beitrag von: dumme_fragen am 14.01.04 - 14:57:55
@Don:
von Lotusscript hab ich überhaupt keinen Plan, wie wäre denn da ein Lösungsansatz?

@Ata:
Bekomme ich das nachträglich denn noch hin? In der DB sind mehr als 30.000 Doks drin...
Titel: Re:Ansicht: Summe erstellen?
Beitrag von: dumme_fragen am 15.01.04 - 07:56:42
wäre klasse, wenn mir jemand noch ein wenig helfen könnte... Danke!
Titel: Re:Ansicht: Summe erstellen?
Beitrag von: Don Pasquale am 15.01.04 - 11:01:12
@DF

Das ist etwas globalgalaktisch, ich zeige Dir zuerst mal, wie man
in Script eine Collection überhaupt erstellt :

Im Prinzip benötigst Du eine geschachtelte Schleife:
Pro Projekt in der View Prodaten musst Du die VIEW
mZeit einmal durchlaufen und die passenden Felder durchlaufen und addieren.
Soweit ich dass verstanden habe sind die Vorraussetzungen
gegeben, Dein Problem will ich mal als lösbar bezeichnen.


Hier erstmal ein BeispielCode für eine Collection

Du benötigst eine View die _SORTIERT_ ist und in
der ersten Spalte die ProjektID

Const Ansicht = "View über alle Prodaten"
Const ID = Suchkriterium

Dim view As NotesView    
Dim Session As New NotesSession
Dim dc As NotesDocumentCollection
Dim db As NotesDatabase    
Set db = session.CurrentDatabase
Set view = db.GetView( ANSICHT )
Set dc = view.GetAllDocumentsByKey(ID, True)
Set doc = dc.getfirstdocument
   
While Not (doc Is Nothing)
      
               ' Hier musst Du die projekt ID rauslesen und wieder eine Collection
               ' bilden über die View über alle mZeit Dokumente


   Set doc = dc.GetNextDocument(doc)
      
Wend