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.
_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")
)
)
);
Nun sagt er mir aber das kein Konflikt bestehe
Die oberen schon, habe ich mittlerweile auch wieder rausgenommen.
aktueller 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
)
);
bin auch schon ein bisschen weiter, aber es passiert immer noch das er mir gar nichts meldet was eigentlich nicht sein darf
So nun kann ich beruhigt Feierabend machen.
_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
)
);
Hat dem ersten Versuch gehalten, Feinheiten werden morgen geprüft