Autor Thema: Zeiten berechnen, die über 24 Stunden hinausgehen  (Gelesen 1841 mal)

Offline geissbock

  • Aktives Mitglied
  • ***
  • Beiträge: 131
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Hallo Helfer,
folgende Problematik, an der ich mir momentan leider die Zähne ausbeiße:
In einer Maske werden Einsatzzeiten von drei Mitarbeitern zu einem Einsatz in drei unterschiedlichen Textfelder in der Form 01:00 für z.B. 1 Stunde erfasst. Im Exiting Event der einzelnen Felder wird dann die Summe der Einsatzzeiten gebildet in ein Feld Gesamtzeit geschrieben. Unten seht ihr den Code, den ich derzeit dazu benutze. Das Problem entsteht, wenn die Gesamtzeit 24 Stunden überschreitet. Ist das in dieser Konstellation überhaupt berechenbar und wenn ja, wie wäre dann die korrekte Vorgehensweise?
Vielen Dank schon mal:

Sub BerechneEinsatzdauerNeu(Aufwand1 As String, Aufwand2 As String, Aufwand3 As String, Dauerfeld As String, doc As NotesUIDocument)
   Dim a1, a2, a3, summe
      
      a1 = Cdat(doc.FieldGetText(Aufwand1))
      a2 = Cdat(doc.FieldGetText(Aufwand2))
      a3 = Cdat(doc.FieldGetText(Aufwand3))
      summe = a1+a2+a3
      
      
      If summe <= 0 Then summe=summe+1
         If Fraction (summe) = 0 And _
            doc.FieldGetText(Aufwand1) <> "00:00" And _
            doc.FieldGetText(Aufwand2) <> "00:00" And _
            doc.FieldGetText(Aufwand1) <> "00:00" Then
            doc.FieldSetText Dauerfeld, "24:00"
         Else
            doc.FieldSetText Dauerfeld, Format$(summe,"hh:nn")
         End If
      
      
      
   
End Sub

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: Zeiten berechnen, die über 24 Stunden hinausgehen
« Antwort #1 am: 26.06.13 - 10:14:17 »
Warum arbeitest du mit Textfeldern zur Eingabe?

Warum konvertierst du den Text in Datumswerte, die du dann zusammenrechnest?


Ich würde wie folgt an die Sache rangehen:
1. die geleisteten Stunden als Zahlen erfassen
2. die Zahlen zusammenrechnen
3. die Summe als Zahl für ggf. notwendige weitere Berechnungen im Dokument speichrn
4a. die Summe so umrechnen, dass Tage, Stunden, Minuten dabei rauskommen
4b. Ein für Menschen gut lesbares Ergebnis anzeigen

Gruß
Dirk
Gruß Dirk

Aktuelle Notesumgebung
~800 BasicClients 9.0.1 FP9 SHF55
  10 FullClients 9.0.1 FP7 SHF143
    7 DominoServer 9.0.1 FP9 HF 139 / 64 Bit

Offline geissbock

  • Aktives Mitglied
  • ***
  • Beiträge: 131
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Zeiten berechnen, die über 24 Stunden hinausgehen
« Antwort #2 am: 26.06.13 - 10:45:03 »
Hallo Dirk,
danke für die Antwort. Noch etwas zum Hintergrund. Es handelt es sich um eine alte DB, die ich auch nur übernommen habe. Es sollen halt Stunden und Minuten in einem Feld erfasst werden und deshalb ist es Text. Wenn ich das jetzt ändere muss ich tausende alte Docs neu berechnen. Die Umwandlung in Datumswerte hat dann Stunden und Minuten korrekt summiert und das hat auch alles funktioniert bis jetzt zum ersten Mal mehr als 24 Stunden zusammengekommen sind.
Aber vielleicht hast Du recht und ich lege mir versteckte Zahlenfelder an und teile den Textstring entsprechend in Stunden und Minuten auf und rechne damit. Hatte halt gedacht, es gibt noch eine andere Möglichkeit, die ich nicht kenne oder sehe.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz