2017-03-15 3 views
-1

Derzeit arbeite ich an einem Plantagenernte-System, das Dokumentdatum und Erntedatum haben. Das Dokumentdatum ist das Datum, an dem der Benutzer die Daten in das System eingibt. Das Erntedatum ist das Datum, an dem die Arbeiter ihre Plantage ernten.PowerBuilder 7 - DaysAfter Funktion

So Trick ist, muss ich das System so einstellen, dass Benutzer Erntedatum nicht eingeben kann, 7 Tage älter von Computerdatum, und kann auch kein zukünftiges Datum von Computerdatum eingeben.

Meine Frage ist, mit DaysAfter, wie die Anzahl der Tage zwischen Computer-Datum und Dokument Datum bestimmt wird. Und basierend auf der Anzahl der Tage wird das System einen Fehler ausgeben, der besagt, dass der Benutzer kein Erntedatum eingeben kann, das 7 Tage älter oder ein zukünftiges Datum vom Computerdatum ist.

Danke.

+0

Sorry, aber ich verstehe die Quest nicht Ion. –

+0

Verwenden Sie die Funktion DaysAfter, um die Tage zwischen Serverdatum (Computerdatum) und Dokumentdatum zu berechnen. Nehmen wir an, das Ergebnis ist 7 Tage, Benutzer kann nicht 7 Tage älter oder früher vom Serverdatum eingeben. – Voon

Antwort

0

Angenommen, Sie Ihr Dokument Datum docdate rufen Sie den Unterschied in Powerscript berechnen sich wie folgt: DaysAfter(today(), docdate)

aus dem Handbuch Genommen:

Diese Anweisung gibt 4:

daysafter (2002-12-20, 2002-12-24)

Diese Anweisung gibt -4:

012 zurück

daysafter (2002.12.24, 2002-12-20)

Sie können auch eine Gültigkeitsregel in Ihrem Datawindow-Code, Sie zu verhindern, dass zu viel Codierung.

1

Dies kann mithilfe der Validierungsfunktion des DataWindow-Objekts implementiert werden. Erstellen Sie eine Spalte mit diesen Eigenschaften:

  • Name = harvest_date
  • Type = date
  • Validation Expression = DaysAfter(Today(), Date(GetText())) between -7 and 0
  • Validierung Message = 'Harvest date must be within last 7 days.'
  • Bearbeiten :: leeren String NULL ist = [X] (geprüft)