Autor Thema: Wochenende ausschließen  (Gelesen 5865 mal)

Offline Lurchi

  • Frischling
  • *
  • Beiträge: 48
  • Ich liebe dieses Forum!
Wochenende ausschließen
« am: 31.07.08 - 11:17:32 »
Hallole,

ich hab hier einen Code, der das Speichern des Dokumentes nur bis 13:00 Uhr des vortags zulässt.

Das Feld mit dem Datumswert lautet "Datum"

Die Formel klappt auch soweit sehr gut, nur hab ich jetzt das Problem, dass ich das Wochenende nicht ausschließen kann.
Beispiel: Freitags kann man das Dokument für Montag auch nach 13 Uhr erstellen.


Bei meinem Fall handelt es sich hierbei um eine Essensbestellung.

Hier der Code:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim doc As NotesDocument
   Set doc = Source.Document
   
   Dim item As NotesItem
   Set item = doc.GetFirstItem( "Datum" )
   
   Dim DatumEssen As NotesDateTime
   Set DatumEssen = item.DateTimeValue
   DatumEssen.LocalTime = DatumEssen.LocalTime + " 13:00:00"
   
   Dim AktuelleZeit As New NotesDateTime( "" )
   Call AktuelleZeit.SetNow
   
   Dim DifferenzSekunden As Long
   DifferenzSekunden = DatumEssen.TimeDifference( AktuelleZeit )
   
   If DifferenzSekunden < 86400 Then
      Msgbox "Bestellungen sind nur bis 13 Uhr des Vortags möglich." , 48, "Firma"
      Continue = False
      
   End If
End Sub




Hat jemand eine Idee, wie ich das Wochenende ausschließen kann??!!? Ich wär euch sehr dankbar!  :love:


Hochachtungsvoll
der Lurchi

EDIT: Boardsymbol geändert - Ulrich hat eine richtige Lösung genannt. Ich hoffe, das bisherige Symbol war nur ein Versehen ...
« Letzte Änderung: 01.08.08 - 23:15:54 von koehlerbv »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Wochenende ausschließen
« Antwort #1 am: 31.07.08 - 11:22:27 »
Gucke mal nach Weekday function in der Designer Hilfe
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Lurchi

  • Frischling
  • *
  • Beiträge: 48
  • Ich liebe dieses Forum!
Re: Wochenende ausschließen
« Antwort #2 am: 31.07.08 - 14:18:03 »
Hallo eknori,

danke für deine Antwort. Ich habe mir mal die "weekday function" angeschaut, leider stehe ich auf dem Schlauch, wie ich sie in mein Script einbauen muss.

Kannst du mir bei der Vorgehensweise behilflich sein?


Danke und Gruß
Lurchi

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Wochenende ausschließen
« Antwort #3 am: 31.07.08 - 14:26:41 »
Du nimmst dein DatumEssen und prüfst mit der weekday function, ob eine 1 oder eine 7 als Rückgabewert geliefert wird. Wenn ja, ist nix mit Essen und du kannst die Prüfung nach der Zeit abbrechen, wenn ein anderer Wert geliefert wird, ist es ein Wochentag und du prüfst imweiteren Verlauf noch auf 13:00 ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Lurchi

  • Frischling
  • *
  • Beiträge: 48
  • Ich liebe dieses Forum!
Re: Wochenende ausschließen
« Antwort #4 am: 07.08.08 - 11:09:52 »
Servus, eine Woche später.....


wir sitzen nun schon wieder an diesem Problem und raffen es nicht.

Wir wissen nicht, wie wir den Code aus der Hilfe in unser Code integrieren sollen.


Dim x As Variant, wd As Integer
x = DateNumber(1993, 7, 7)
wd% = Weekday(x)
Print wd%
' Output:
' 4



Help, I need somebody!

Gruß
der Lurchi

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wochenende ausschließen
« Antwort #5 am: 07.08.08 - 11:12:54 »
Wieso - funktioniert doch ...

Offline Lurchi

  • Frischling
  • *
  • Beiträge: 48
  • Ich liebe dieses Forum!
Re: Wochenende ausschließen
« Antwort #6 am: 07.08.08 - 11:17:52 »
Die Formel klappt auch soweit sehr gut, nur hab ich jetzt das Problem, dass ich das Wochenende nicht ausschließen kann.
Beispiel: Freitags kann man das Dokument für Montag auch nach 13 Uhr erstellen.


Und laut eknori kann man dies mit dem Code aus der Hilfe (siehe Beitrag oben). Wir wissen nur nicht, wie wir diesen in unseren integrieren sollen.

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Wochenende ausschließen
« Antwort #7 am: 07.08.08 - 11:25:57 »
du musst dann noch den Freitag mit dem Montag verknüpfen


DatumEssen.LocalTime = DatumEssen.LocalTime + " 13:00:00"


wenn Freitag, dann Bestellzeit auf Sonntag setzen oder so
er muss ja dann wissen, dass Sa/So wegfallen

Grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Fineas

  • Aktives Mitglied
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
  • PCLP Dev/Admin 5,6,7,8
Re: Wochenende ausschließen
« Antwort #8 am: 07.08.08 - 11:42:21 »
Hallo Lurchi,

die ganze Konstruktion macht einen recht komplizierten Eindruck.

Nimm doch einfach das Essensdatum und rechne auf der Grundlage zurück, um ein Datum zu bekommen, mit dem Du vergleichen kannst. Angenommen SA und SO lassen sich als Essensdatum nicht auswählen, wäre DI-FR das Limit bei einem Tag, Montags bei 3 Tagen.

Das geht sowohl mit Formel als auch mit Script recht simpel. Bei Bedarf kann ich ein Snippet zusammenstricken.

Gruß, Fineas!


Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Wochenende ausschließen
« Antwort #9 am: 07.08.08 - 12:47:45 »
Hallo Lurchi,

das folgende Konstrukt ist bestimmt nicht high-sophisticated, aber auch noch nach ein paar Jahren pfleg- und wartbar.

Dim Vorlauf As Long
Dim TageVorlauf As Long

Select Case weekday(DatumEssen)
Case 1 ' Sonntag
Tagevorlauf=2
Case 7 ' Samstag
Tagevorlauf=3
Case 6 ' Freitag
Tagevorlauf=4
Case Else
TageVorlauf=1
End Select

Vorlauf=Tagevorlauf*86400

   If DifferenzSekunden < Vorlauf Then
      Msgbox "Bestellungen sind nur bis 13 Uhr des Vortags möglich." , 48, "Firma"
      Continue = False
     
   End If

P.S.: ich verbinde mit Lurchi eigentlich keinen Menschen (ein Name stünde dir daher gut zu Gesicht), sondern noch den gleichnamigen Feuersalamander des Werbeperiodikums der Fa. Salamander, der mit seinen Freunden wilde Abenteuer erlebte, die immer mit einem Fest der Freunde und dem Schlußsatz "Salamander lebe hoch" endeten. Heinz Schubel und Erwin Kühlewein (ein Prokurist der Fa. Salamander !) haben die genialsten Geschichten gezeichnet und geschrieben - und ich habe in meiner Kindheit diese Heftchen natürlich gesammelt.
http://www.geocities.com/lurchi_online/intro.html
Situs vilate in isse tabernit.

Offline Lurchi

  • Frischling
  • *
  • Beiträge: 48
  • Ich liebe dieses Forum!
Re: Wochenende ausschließen
« Antwort #10 am: 07.08.08 - 14:29:00 »
Sodele, wir haben es nun geschaft. Hier das Ergebnis:

----------------------------------------
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
   Dim doc As NotesDocument
   Set doc = Source.Document
   
   Dim item As NotesItem
   Set item = doc.GetFirstItem( "Datum" )
   
   Dim x As Variant
   Dim wochentag As Integer
   
   
   x = Datenumber (Year(Today), Month(Today), Day(Today))
   wochentag = Weekday(x)
   
   
   
   Dim DatumEssen As NotesDateTime
   Set DatumEssen = item.DateTimeValue
   
   DatumEssen.LocalTime = DatumEssen.LocalTime + " 13:00:00"
   
   Dim AktuelleZeit As New NotesDateTime( "" )
   Call AktuelleZeit.SetNow
   
   Dim DifferenzSekunden As Long
   DifferenzSekunden = DatumEssen.TimeDifference( AktuelleZeit )
   
   Msgbox (wochentag)
   
   Select Case wochentag
   Case 6 To 7
      
      If DifferenzSekunden < 259200 Then
         Msgbox "Bestellungen für nächsten Montag sind nur bis Freitag 13:00 Uhr möglich." , 48, "Firma"
         Continue = False
      End If
   Case Else
      If DifferenzSekunden < 86400 Then
         Msgbox "Bestellungen sind nur bis 13 Uhr des Vortags möglich." , 48, "Firma"
         Continue = False
      End If
      
   End Select
   
End Sub

----------------------------------------


@ ALL
Wir bedanken uns für alle Antworten. Ihr wart uns eine große Hilfe!!!!


@ LN4ever:
Viele Grüße vom Ralf


Besonderen Dank geht an cebolina, der uns telefonisch tatkräftig unterstützt hat.



Schönen Tag noch,
der Lurchi

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wochenende ausschließen
« Antwort #11 am: 07.08.08 - 14:46:52 »
Wenn ich Freitags die Bestellung vergessen habe, mache ich es dann eben am Sonntag  ;D

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Wochenende ausschließen
« Antwort #12 am: 07.08.08 - 14:50:32 »
Hallo Ralf,

in dem jetzigen Konstrukt kann man Freitagmittag bis Samstag-Mittag das Essen für Dienstag bestellen, Samstag nach 13 Uhr dann aber nur noch für Mittwoch, dafür aber am Sonntag bis 13 Uhr wieder direkt für Montag.

Naja - und leise trollt sich Hopps, der Frosch vom Kampffeld der Essensvorbestellung bei Lurchi.

Gruß

Norbert
Situs vilate in isse tabernit.

Offline Lurchi

  • Frischling
  • *
  • Beiträge: 48
  • Ich liebe dieses Forum!
Re: Wochenende ausschließen
« Antwort #13 am: 07.08.08 - 14:52:44 »
@if (
           firma = sonntags geschlossen;
           "keine bestellung möglich";
             "")



 ;D ;D ;D ;D ;D ;D ;D ;D


Bei uns arbeitet keiner sonntags!

Nachtrag:

Samstags auch !  O0
« Letzte Änderung: 07.08.08 - 14:54:28 von Lurchi »

klaussal

  • Gast
Re: Wochenende ausschließen
« Antwort #14 am: 07.08.08 - 14:54:31 »
Zitat
Bei uns arbeitet keiner sonntags!

Noch nicht....
« Letzte Änderung: 07.08.08 - 16:07:07 von klauss »

Offline Fineas

  • Aktives Mitglied
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
  • PCLP Dev/Admin 5,6,7,8
Re: Wochenende ausschließen
« Antwort #15 am: 07.08.08 - 16:00:38 »
Wie wärs denn damit - in Ermangelung ausreichender Zeit in der Essenspause noch  nicht umfassend getestet:

_WD := @Weekday( @now );

_ORDERDATE := @If( _WD = 1; @Adjust( @Date( @Year(@today); @month(@today); @day(@today); 0;0;0 ); 0;0;1;0;0;0 ) ; _WD = 7; @Adjust( @Date( @Year(@today); @month(@today); @day(@today); 0;0;0 ); 0;0;2;0;0;0 ); @Now );

_TTO := @If( _WD = 6; -3; 0);

_LIMIT := @Adjust( @Date( @Year(FIELD_ESSENSDATUM); @Month(FIELD_ESSENSDATUM); @Day(FIELD_ESSENSDATUM);13;0;0 ); 0;0; _TTO; 0; 0; 0 );

@If( _LIMIT < _ORDERDATE; "Zu spät!"; "Glück gehabt!" )

Logik: Samstags und Sonntagsbestellungen werden wie Bestellungen Montag früh behandelt. Am Freitag muss das Essensdatum mindestens 3 Tage in der zukunft liegen. Das Ganze unter der Annahme, dass es am Wochenende nix zu Essen gibt.

Gruß, Fineas!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz