Autor Thema: datum vergleichen  (Gelesen 2570 mal)

Offline TripleH

  • Frischling
  • *
  • Beiträge: 38
  • Ich liebe dieses Forum!
datum vergleichen
« am: 11.01.04 - 19:26:56 »
Hallo!
Tut mir Leid das ich so oft Poste aber ich würd heut gern fertig
werden da ich ab morgen schon wieder an einem anderem arbeite.(zum
Glück hab ich da mehr Ahnung als von Notes:))

Und zwar hab ich wieder meine Kalkulationsmaske.
Da hab ich mein Status Feld das auf fällig gesetzt
werden soll wenn folegendes passiert:

dort ist ein Feld "zahlweise" (hier kann man wählen
zwischen monatlich und jährlich) und ein Feld
"vertragsbeginn" welches ein Datum Feld ist.

Beispiel wählt einer zahlweise monatlich und
vertragsbeginn 1.1.2004 dann müßte das Feld
am 1.02.2004 auf fällig gesetzt werden.

Das heißt das vorher die Fälligkeit berechnet werden
muss und die dann mit dem aktuellen Datum verglichen
werden muss.

Ich hab folgendes Skript entwickelt
wo ich allerdings nen par Dinge nicht hinbekomm.
Da alle Dokumente immer jedeb Tag abgefragt werden müssen
hab ich das Skript unter im Lesenzeichen links
andere/Datenbankressourcen/DatenbankSkript und
dort unter Postopen.

Sub Postopen(Source As Notesuidatabase)
   Dim s As NotesSession              
   Set s = New NotesSession
   Dim db As notesdatabase
   Set db = s.CurrentDatabase  
   Dim c As NotesDocumentCollection
   Set c = db.AllDocuments
   Dim vertragsbeginn As String
   Dim fällig As Integer
   
   Dim doc As NotesDocument
   For i = 1 To c.Count
      Set doc= c.GetNthDocument(i)
   Next
   Dim txt As String
   txt = doc.GetItemValue("vertragsbeginn")(0)
   If zahlweise = "monatlich" Then
      fällig = txt + "hier muss der Monat erhöht werden"
      "fällig muss jetzt mit dem aktuellen Datum
      verglichen werde und wenns gleich ist dann
      Status auf "fällig" setzen.
   Das gleiche dann für jährlich
      
      
      Call doc.ReplaceItemValue("Status","fällig")
      Call doc.Save(True,True)
   End If
End Sub



Ok das ists soweit wie ichs hinbekomm.

Ich hoffe jemand kann sich erbarmen damit ich einema
sehe wie es richtig geht und ein Musterbeispiel
hab da noch andre Dinge so ähnlich in mein Programm
ablaufen(ooh das wird ne lange nacht).

Ich dank euch ich hoffe ich hab mein Prob verständlich
erklärt..
wenn nicht fragt ruhig nach weil das möcht ich
unbedingt hinbekommen.

Gruß basti

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:datum vergleichen
« Antwort #1 am: 11.01.04 - 19:41:43 »
Sub Postopen(Source As Notesuidatabase)
   Dim s As NotesSession            
   Set s = New NotesSession
   Dim db As notesdatabase
   Set db = s.CurrentDatabase
   Dim c As NotesDocumentCollection
   Set c = db.AllDocuments
   Dim vertragsbeginn As String
   Dim fällig As Integer
   
   Dim doc As NotesDocument
   For i = 1 To c.Count
      Set doc= c.GetNthDocument(i)
   Next


bis hierher ist es gut, danach nicht mehr so.

   For i = 1 To c.Count
      Set doc= c.GetNthDocument(i)

hier muss dein Code rein, der jedes einzelne Dokument bearbeiten soll
wenn er außerhalb der Schleife steht (so wie bei deinem Beispielcode), dann wird genau ein Dokument bearbeitet, nämlich das Letzte in deiner Collection

   Next


Schreib doch mal in Pseudocode, was du in der Schleife tun möchtest
z.B.

Wenn Dokument ein Kalkulationsdokument ist dann
     ermittle Vertragsbeginn
     ermittle Zahlungsweise

etc.

und poste das dann mal, wenn du dadurch nicht selbst auf die Lösung kommst.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline TripleH

  • Frischling
  • *
  • Beiträge: 38
  • Ich liebe dieses Forum!
Re:datum vergleichen
« Antwort #2 am: 11.01.04 - 20:26:10 »
Hi, wie ich mir das dachte hab ich doch zuvor schon angesprochen aber ich versuchs nochmal.
Ich hab an den stellen den Quelltextrausgenommen da es sonst noch mehr nach wirrwar aussieht und nur das hier gepostet wo ich mir dacht das es ganz gut ist.

Sub Postopen(Source As Notesuidatabase)
  Dim s As NotesSession            
  Set s = New NotesSession
  Dim db As notesdatabase
  Set db = s.CurrentDatabase
  Dim c As NotesDocumentCollection
  Set c = db.AllDocuments
  Dim vertragsbeginn As String
  Dim fällig As Integer
 
  Dim doc As NotesDocument
  For i = 1 To c.Count
      Set doc= c.GetNthDocument(i)
 

eigentlich soll er nur die Dokumente durchsuchen die in der Ansicht "doppelt" sind das es sich dort um Kalkulationsdokumente handelt? reicht der Quelltext dazu nicht aus?

ok hier kommt also der Quelltext rein.

   Dim txt As String
   txt = doc.GetItemValue("vertragsbeginn")(0)
   If zahlweise = "monatlich" Then
      fällig = txt + "hier muss der Monat erhöht werden"
      "fällig muss jetzt mit dem aktuellen Datum
      verglichen werde und wenns gleich ist dann
      Status auf "fällig" setzen.
   Das gleiche dann für jährlich
     
     
      Call doc.ReplaceItemValue("Status","fällig")
      Call doc.Save(True,True)

 Next

 /auf der Variablen txt steht jetzt der Vertragsbeginn ist ein Datumsfeld (11.01.2004)
und dann kommt die abfrage wenn zahlweise "monatlich" dann
dann dann muss der Monat um eins erhöht werden und das Ergebnis soll auf der "fällig" Variable gespeichert werden.
Mein Problem ist kann man das so berechnen also den Monat erhöhen um eins wenn ich nur ein datumsfeld hab oder muss ich 3 draus machen?
dann vergleiche fällig mit aktuellem datum. ist es gleich dann setze Feld "Status" auf fällig.

      Call doc.ReplaceItemValue("Status","fällig")
      Call doc.Save(True,True)


Ich hab schon einiges gemacht hauptsächlich scheitert es wohl am datumsberechnung.
Um dann dann mit dem aktuellen Datum zu vergleichen hab ich als notlösung ein Feld in der Maske welches das anzeigt aber brauch man das überhaupt?

Ok ich hoff das ist nicht zu verwirrend vielleicht bin ich ja auch mal so gut wie du und kann hier Tipps geben zumindest werd ich dran arbeiten:)

Gruß

Basti



Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:datum vergleichen
« Antwort #3 am: 11.01.04 - 20:57:46 »
echt sorry, aber das is mir zu verwirrend im Moment. ich glaube, ich verstehe ungefähr, was du meinst. aber bitte versuche doch mal in kurzen Sätzen zu formulieren, wie dieser "Datumsvergleich" ablaufen soll. Ohne echten Code und Variablenbezeichnungen.
Das würde mir sehr helfen und dir wahrscheinlich auch.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline TripleH

  • Frischling
  • *
  • Beiträge: 38
  • Ich liebe dieses Forum!
Re:datum vergleichen
« Antwort #4 am: 11.01.04 - 21:48:10 »
Also jeder der hier schaut kann sich eine meiner Versuche das Prob zu erklären aussuchen.
Also den Datums´vergleich soll sein das ich abhängig von einem Datumsfeld und einem anderen Feld in dem monatlich steht
versuche das fälligkeitsdatum zu ermiiteln.
steht in dem einen Feld 15.01.2004 ist die fälligkeit bei 15.02.2004.
Und dies Fälligkeit soll mit dem aktuellen Datum verglichen werden.
Ich weiß ist nen bißchen verwirrend wenn mans nicht sieht aber ich hoffe das hilft meinen letzten Text besser zu verstehen.

Gruß Basti

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:datum vergleichen
« Antwort #5 am: 12.01.04 - 12:32:43 »
Ich weiß ist nen bißchen verwirrend wenn mans nicht sieht aber ich hoffe das hilft meinen letzten Text besser zu verstehen.

Hallo Basti,
es ist nicht das Technische, was uns hier Probleme bereitet
als vielmehr Deine sprachliche Beschreibung. Ein wenig Deine Rechtschreibung und Kommasetzung  verbessern wäre
sehr sehr hilfreich.
Nimm Dir ruhig eine Minute mehr zeit und lies Dein Posting
nochmal durch und korrigiere Flüchtigkeitsfehler und setze
lieber ein Komma zuviel als ein Komma zuwenig.

Ciao
Don Pasquale


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz