Autor Thema: LS: (Gesamt-)zeit berechnen  (Gelesen 3215 mal)

Offline wod

  • Frischling
  • *
  • Beiträge: 1
  • I love YaBB 1G - SP1!
LS: (Gesamt-)zeit berechnen
« am: 29.07.02 - 08:58:51 »
Hi, ich bin Lotus neuling und bekomme da etwas in der Programmierung nicht hin.

ich habe ein Datumsfeld (tStart) und ein Datumsfeld (tEnd) , in diesen beiden feldern werden Uhrzeiten gespeichert. Ich habe noch ein integerFeld (iLength).

Mein ziel ist es jetzt das in einem feld die Gesamtzeit angezeigt wird als Integer oder String.

Bsp : tStart = 08:00:00 ; tEnd = 16:00:00 ; iLength = 1
Als Ergebniss sollte dann kommen 7 . Also (tEnd - tStart)-iLength..


Kann mir jemand helfen?

Danke
Wolfgang



Habe kurz das Topic aussagekräftiger gemacht. Erhöht die Chance auf gute Antworten
« Letzte Änderung: 11.05.05 - 13:49:53 von Don Pasquale »

Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re: Lotus Programmierung
« Antwort #1 am: 31.07.02 - 12:45:31 »
Hi,

die func macht diese Berechnung, nur noch auf Deine Felder und Maske anpassen:

Sub ZeitBerechnen
     Dim workspace As New NotesUIWorkspace
     Dim uidoc As NotesUIDocument
     Set uidoc = workspace.CurrentDocument
     Dim k As  Variant, g As Variant, p As Variant    
     Dim ks As String, gs As String, zs As String,u As String
     Dim z As Double
     Dim i As Integer
     
     
    '************************** Gewählter Mitarbeiter
     u=uidoc.FieldGetText("txtMitarbeiter")
    '************************** Sind Kommt- und Geht-Zeit belegt?
     ks=uidoc.FieldGetText("datKommt")
     gs=uidoc.FieldGetText("datGeht")
     If (Isdate(ks) And Isdate(gs)) Then
           k=Timevalue(ks)
           g=Timevalue(gs)
           p=lookup("Intern\MitarbeiterAlternativ",u,"dblPause")
           If Not Isnumeric(p) Then p=0
         'Tatsächliche Arbeitszeit berechnen
           z=(g-k)*24
        'Pause wird nur abgezogen, wenn Arbeitszeit um 12:00
           If ((k<Timenumber(12,0,0)) And (g>=Timenumber(12,0,0))) Then z=z-p
         'Tatsächliche Arbeitszeit nur zuweisen, wenn realisitisch  
           If Not ((z >0) And (z<24)) Then
                 zs="Fehler"
           Else
              'in String umwandeln
                 zs=Format$(z,"0.00")
              'Dezimalzeichen korrigieren
                 i=Instr(zs,".")
                 If (i>0) Then Mid$(zs,i,1)=","
           End If
           Call uidoc.fieldsetText("dblStunden",zs)        
     End If
End Sub
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

Offline comet

  • Frischling
  • *
  • Beiträge: 37
Re: Lotus Programmierung
« Antwort #2 am: 09.05.05 - 10:12:38 »
gibts das auch mit abziehen der pause

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: Lotus Programmierung
« Antwort #3 am: 09.05.05 - 10:56:00 »
Hi,

wenn ich das richtig sehe, ist das schon mit drin.

...
p=lookup("Intern\MitarbeiterAlternativ",u,"dblPause")
If Not Isnumeric(p) Then p=0
 'Tatsächliche Arbeitszeit berechnen
 z=(g-k)*24
 'Pause wird nur abgezogen, wenn Arbeitszeit um 12:00
 If ((k<Timenumber(12,0,0)) And (g>=Timenumber(12,0,0))) Then z=z-p
...

Die Pausenzeit wird anscheinend aus einem anderen Dokument ausgelesen.

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

Offline Lossa

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.404
  • Geschlecht: Männlich
    • alphaTrain
Re: Lotus Programmierung
« Antwort #4 am: 11.05.05 - 12:23:03 »
Hi,

warum so kompliziert und mit Script?

Der Einfachste Fall ist:
EndeZeit - Anfangszeit => Anzahl Sekunden zw. diesen beiden Datums-/Uhrzeit werten. Dann brauchst du das ganze nur noch auf Minuten, Stunden, Tage etc. hochrechnen.
Fertig
Viele Grüße

Ulrich Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
HCL Certified Administrator
IBM Certified Advanced Application Developer (PCLP AD)
IBM Certified Advanced System Administrator (PCLP SA)
IBM Certified Instructor for System Administration and Application Development ( CLI)
IBM Certified Instructor for Websphere Software
IBM Certified Instructor for DB2
http://www.alphatrain.de
Lossa@alphatrain.de

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz