차량 운행 등록을 위해 일정을 기존 차량이 일정이 등록되어 있는지 확인하는 방법
1. 종료 일자 변경을 하여 기간 설정
2. 시작 일자와 종료 일자 사이의 날짜를 계산하여 컬렉션 만들기
3. 만들어진 컬렉션의 일자와 사용 등록된 일자가 있으면 경고 메시지 출력
4. 경고 메시지가 나타나면 저장 메뉴는 DisplayMode = Disabled 로 설정
세부 설정
1. 종료 일자 변경하여 시작 일자 ~ 종료 일자 사이의 날짜를 계산하여 컬렉션 만들기
종료 일자 OnChange 속성 값 설정
// colInbetweenDates 컬렉션 초기화 Clear(colInbetweenDates); With( { // varDateDiff 변수에 시작 일자와 종료 일자 사이 기간의 개수 추출 // 예) 시작 일자 : 2023-01-06, 종료 일자 : 2023-01-11 결과 : 4 // 여기서 시작 일자, 종료 일자는 별도 처리를 위해 재외 varDateDiff: DateDiff( StartDataCardValue_1.SelectedDate, EndDataCardValue_1.SelectedDate - 1 ) }, // ForAll, Sequence를 사용하여 해당 일수 추출 // 시작 일자 기준으로 계산하여 날짜를 컬렉션에 저장 ForAll( Sequence(varDateDiff), Collect( colInbetweenDates, { no: First( Sort( colInbetweenDates, no, Descending ) ).no + 1, date: DateAdd( StartDataCardValue_1.SelectedDate, Value ), betweenDate: "" } ) ) ); // 현재 컬렉션에 caroperation 데이터에 등록되어 있는 시작 일자 // 종료 일자의 기간과 차량을 확인하여 일정이 있으면 true로 설정 ForAll( RenameColumns( colInbetweenDates, "no", "ENo" ), Patch( colInbetweenDates, LookUp( colInbetweenDates, no = ENo ), { betweenDate: CountRows( Filter( AddColumns( caroperation, "NewStartDate", StartDate ), StartDate <= date And carname = carDropdown_1.SelectedText.carname, EndDate >= date ) ) > 0 } ) ); |
3. 만들어진 컬렉션의 일자와 사용 등록된 일자가 있으면 경고 메시지 출력
경고 메시지의 Visible 속성
// 만들기 인지 아닌지 확인하여 만들기일 경우 해당 기간에 true가 있는지 확인 // BetweenDateResultLabel_2.Text = "false" 값은 시작 일과 종료 일자 계산 결과 이며 // 여기서는 다루지 않음 If( varNew, CountRows( Filter( colInbetweenDates, betweenDate = "true" ) ) > 0 Or BetweenDateResultLabel_2.Text = "false" ) |
4. 경고 메시지가 나타나면 저장 버튼은 DisplayMode = Disabled 로 설정
저장 버튼 DisplayMode 속성
If(!IsBlank(DataCardValue1.Text) && !WarringLabel4_1.Visible && !StarVisible57_1.Visible ,DisplayMode.Edit,DisplayMode.Disabled) |
댓글