Domino 9 und frühere Versionen > ND8: Entwicklung
Zeitüberschneidung prüfen
bikerboy:
Hallo habe heute einen Code geschrieben, der auf Zeitüberschneidungen Prüfen soll, bevor ein neuer Eintrag in eine List aufgenommen wird.
Dazu gehe ich vor jeder Eintragung die Liste durch und überprüfe Sie mit folgendem Code.
Das die Werte leer sind wird von vorneherein unterdrückt. Wichtig der Code hat heute Mittag gefunzt.
--- Code: ---_startDate := @TextToTime(trvl_Pos_StartDATE);
_startTime := @TextToTime(trvl_Pos_StartTIME);
_endDate := @TextToTime(trvl_Pos_EndDATE);
_endTime := @TextToTime(trvl_Pos_EndTIME);
@If(_startDate > _endDate ; @Return(@Prompt([Ok]; _errorTitle; _errorStartBeforeEnd));"");
@If(_startDate = _endDate & _endTime < _startTime ; @Return(@Prompt([Ok]; _errorTitle; _errorStartBeforeEnd_Time));"");
_tmpStartDate := _startDate ;
_tmpEndDate := _endDate ;
_tmpDays := 0;
@Transform(posDataString ; "_position" ;
@Do(
_startDate_Pos := @TextToTime(@Left(@Right(_position;_dLim1 + "StartDate" + _dLim2);_dLim1));
_startTime_Pos := @TextToTime(@Left(@Right(_position;_dLim1 + "StartTime" + _dLim2);_dLim1));
_endDate_Pos := @TextToTime(@Left(@Right(_position;_dLim1 + "EndDate" + _dLim2);_dLim1));
_endTime_Pos := @TextToTime(@Left(@Right(_position;_dLim1 + "EndTime" + _dLim2);_dLim1));
@If(
_startDate > _startDate_Pos & _endDate < _endDate_Pos ; @Return(@Prompt([Ok];_errorTitle;_errorConflict));
_startDate = _endDate_Pos & _startTime < _endTime_Pos; @Return(@Prompt([Ok];_errorTitle;_errorConflict));
_endDate = _startDate_Pos & _endTime > _startTime_Pos; @Return(@Prompt([Ok];_errorTitle;_errorConflict));
_startDate < _startDate_Pos & _endDate > _startDate_Pos; @Return(@Prompt([Ok];_errorTitle;_errorConflict));
@Prompt([Ok];"Hinweis"; "Kein Konflikt")
)
)
);
--- Ende Code ---
Nun sagt er mir aber das kein Konflikt bestehe
bikerboy:
So neue Erkenntnisse
bei der ersten Fehlereingabe bekommt er das mit, meckert es an, wenn ich dann nochmal auf den selben Knopf drücke, dann meckert er nicht, sagt mir nicht , dass es keine Konflikt gibt und setzt die Position einfach ein
m3:
Wozu diese ganzen @TextToTime Dingens? Sind das keine Datums/Zeitfelder?
bikerboy:
Die oberen schon, habe ich mittlerweile auch wieder rausgenommen.
aktueller Code:
--- Code: ---_startDate := trvl_Pos_StartDATE;
_startTime := trvl_Pos_StartTIME;
_endDate := trvl_Pos_EndDATE;
_endTime := trvl_Pos_EndTIME;
@If(_startDate > _endDate ; @Return(@Prompt([Ok]; _errorTitle; _errorStartBeforeEnd));"");
@If(_startDate = _endDate & _endTime < _startTime ; @Return(@Prompt([Ok]; _errorTitle; _errorStartBeforeEnd_Time));"");
@Transform(posDataString ; "_position" ;
@Do(
@Prompt([Ok]; "Test" ; _position);
_startDate_Pos := @TextToTime(@Left(@Right(_position;_dLim1 + "StartDate" + _dLim2);_dLim1));
_startTime_Pos := @TextToTime(@Left(@Right(_position;_dLim1 + "StartTime" + _dLim2);_dLim1));
_endDate_Pos := @TextToTime(@Left(@Right(_position;_dLim1 + "EndDate" + _dLim2);_dLim1));
_endTime_Pos := @TextToTime(@Left(@Right(_position;_dLim1 + "EndTime" + _dLim2);_dLim1));
@If(
_startDate > _startDate_Pos & _endDate < _endDate_Pos; @Return(@Prompt([Ok];"Fehler1";_errorConflict));
_startDate < _startDate_Pos & _endDate > _endDate_Pos; @Return(@Prompt([Ok];"Fehler2";_errorConflict));
_startDate > _startDate_Pos & _startDate < _endDatePos; @Return(@Prompt([Ok];"Fehler3";_errorConflict));
_endDate > _startDate_Pos & _endDate < _endDatePos; @Return(@Prompt([Ok];"Fehler4";_errorConflict));
_startDate = _endDate_Pos & _startTime < _endTime_Pos; @Return(@Prompt([Ok];"Fehler5";_errorConflict));
_endDate = _startDate_Pos & _endTime > _startTime_Pos; @Return(@Prompt([Ok];"Fehler6";_errorConflict));
@Prompt([Ok];"Hinweis"; "Kein Konflikt")
);@True
)
);
--- Ende Code ---
bin auch schon ein bisschen weiter, aber es passiert immer noch das er mir gar nichts meldet was eigentlich nicht sein darf
bikerboy:
So nun kann ich beruhigt Feierabend machen.
--- Code: ---_startDate := trvl_Pos_StartDATE;
_startTime := trvl_Pos_StartTIME;
_endDate := trvl_Pos_EndDATE;
_endTime := trvl_Pos_EndTIME;
_startDateTime := @TextToTime(@Text(_startDate) + " " + @Text(_startTime));
_endDateTime := @TextToTime(@Text(_endDate) + " " + @Text(_endTime));
@If(_startDate > _endDate ; @Return(@Prompt([Ok]; _errorTitle; _errorStartBeforeEnd));"");
@If(_startDate = _endDate & _endTime < _startTime ; @Return(@Prompt([Ok]; _errorTitle; _errorStartBeforeEnd_Time));"");
@Transform(posDataString ; "_position" ;
@Do(
@Prompt([Ok]; "Test" ; _position);
_startDate_Pos := @Left(@Right(_position;_dLim1 + "StartDate" + _dLim2);_dLim1);
_startTime_Pos := @Left(@Right(_position;_dLim1 + "StartTime" + _dLim2);_dLim1);
_endDate_Pos := @Left(@Right(_position;_dLim1 + "EndDate" + _dLim2);_dLim1);
_endTime_Pos := @Left(@Right(_position;_dLim1 + "EndTime" + _dLim2);_dLim1);
_startDateTime_Pos := @TextToTime(@Text(_startDate_Pos) + " " + @Text(_startTime_Pos));
_endDateTime_Pos := @TextToTime(@Text(_endDate_Pos) + " " + @Text(_endTime_Pos));
@If(
_startDateTime > _startDateTime_Pos & _endDateTime < _endDateTime_Pos ; @Return(@Prompt([Ok];"Fehler1";_errorConflict));
_startDateTime < _startDateTime_Pos & _endDateTime > _endDateTime_Pos ; @Return(@Prompt([Ok];"Fehler2";_errorConflict));
_startDateTime > _startDateTime_Pos & _startDateTime < _endDateTime_Pos ; @Return(@Prompt([Ok];"Fehler3";_errorConflict));
_endDateTime < _startDateTime_Pos & _endDateTime < _endDateTime_Pos ; @Return(@Prompt([Ok];"Fehler4";_errorConflict));
""
);@True
)
);
--- Ende Code ---
Hat dem ersten Versuch gehalten, Feinheiten werden morgen geprüft
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln