web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / How to set on checkbox...
Power Apps
Unanswered

How to set on checkbox value of leave Request template error

(0) ShareShare
ReportReport
Posted on by 12
halfday test balance_6.png
halfday test balance_5.png
Categories:
I have the same question (0)
  • v-yutliu-msft Profile Picture
    Microsoft Employee on at

    Hi @Erng2 ,

    I've read the two issues that you posted.

    Based on the formula that you provided, please do not add directly the formula provided by others below the original formula.

    You need to understand evert part's formula's meaning.

    Firstly, this formula is to calculate the amount of days:

    If(
     Fullday_2.Value,
     Set(vDaysLeave,
     RoundDown(DateDiff(LeaveStartDatePicker_3.SelectedDate, LeaveEndDatePicker_3.SelectedDate, Days) / 7, 0) * 5 +
     Mod(5 + Weekday(LeaveEndDatePicker_3.SelectedDate) - Weekday(LeaveStartDatePicker_3.SelectedDate), 5)
     + If(AM_1.Value,0.5,1)
     + If(PM_1.Value,-0.5)
     - CountIf(HolidaysCollection,Date>=LeaveStartDatePicker_3.SelectedDate,Date<=LeaveEndDatePicker_3.SelectedDate)
     )
    ,
     AM_1.Value || PM_1.Value,
     Set(vDaysLeave,
     0.5
     )
    )

    Variable vDaysLeave represents the requested days.

    Secondly, please find where the original formula need the requested days.

    Obviously, that is this part:

    Set(_inclusiveTotalDaysRequested, DateDiff(LeaveStartDatePicker.SelectedDate, LeaveEndDatePicker.SelectedDate, Days) + 1)

    So you just need to replace the original requested day with your new requested day.

     

    To sum up, try to set LeaveStartDatePicker's OnSelect like this:

    If(LeaveStartDatePicker.SelectedDate <= LeaveEndDatePicker.SelectedDate,
    If(
     Fullday_2.Value,
     Set(_inclusiveTotalDaysRequested,
     RoundDown(DateDiff(LeaveStartDatePicker.SelectedDate, LeaveEndDatePicker.SelectedDate, Days) / 7, 0) * 5 +
     Mod(5 + Weekday(LeaveEndDatePicker.SelectedDate) - Weekday(LeaveStartDatePicker.SelectedDate), 5)
     + If(AM_1.Value,0.5,1)
     + If(PM_1.Value,-0.5)
     - CountIf(HolidaysCollection,Date>=LeaveStartDatePicker.SelectedDate,Date<=LeaveEndDatePicker.SelectedDate)
     )
    ,
     AM_1.Value || PM_1.Value,
     Set((_inclusiveTotalDaysRequested,
     0.5
     )
    );
     Set(_numFullWeeks, RoundDown(_inclusiveTotalDaysRequested / 7, 0));
     Set(_numFullDaysPartialWeek, _inclusiveTotalDaysRequested - _numFullWeeks * 7);
     Concurrent(Set(_startWeekday, Weekday(LeaveStartDatePicker.SelectedDate)), Set(_endWeekday, Weekday(LeaveEndDatePicker.SelectedDate)));
     //calculates the number of business days in the partial week left over after whole weeks are subtracted out of total days requested
     If(_numFullDaysPartialWeek = 6, 
     If(_startWeekday <= 2, Set(_numPartialWeekdays, 5), Set(_numPartialWeekdays, 4)
     ),
     _numFullDaysPartialWeek = 5,
     If(_startWeekday = 2, Set(_numPartialWeekdays, 5), _startWeekday = 1 || _startWeekday = 3 || _startWeekday = 4, Set(_numPartialWeekdays, 4), Set(_numPartialWeekdays, 3)
     ),
     _numFullDaysPartialWeek = 4,
     If(_startWeekday = 2 || _startWeekday = 3, Set(_numPartialWeekdays, 4), _startWeekday = 1 || _startWeekday = 4, Set(_numPartialWeekdays, 3), Set(_numPartialWeekdays, 2)
     ),
     _numFullDaysPartialWeek = 3,
     If(_startWeekday = 6 || _startWeekday = 7, Set(_numPartialWeekdays, 1), _startWeekday = 1 || _startWeekday = 5, Set(_numPartialWeekdays, 2), Set(_numPartialWeekdays, 3)
     ),
     _numFullDaysPartialWeek = 2,
     If(_startWeekday = 7, Set(_numPartialWeekdays, 0), _startWeekday = 1 || _startWeekday = 6, Set(_numPartialWeekdays, 1), Set(_numPartialWeekdays, 2)),
     _numFullDaysPartialWeek = 1,
     If(_startWeekday = 1 || _startWeekday = 7, Set(_numPartialWeekdays, 0), Set(_numPartialWeekdays, 1)
     ),
     _numFullDaysPartialWeek = 0, Set(_numPartialWeekdays, 0)
     );
     Set(_workDaysInRequest, _numFullWeeks * 5 + _numPartialWeekdays); 
     Set(_holidaysInRequest, CountIf(HolidaysCollection, StartDate >= LeaveStartDatePicker.SelectedDate, StartDate <= LeaveEndDatePicker.SelectedDate));
     Set(_requestedDays, _workDaysInRequest - _holidaysInRequest)
    )
    

     

     

     

     

    Best regards,

  • Erng2 Profile Picture
    12 on at

    Hi @v-yutliu-msft 

    Thank you for your advice.

     

    I've tried the test many times already. 

    I follow you sent

    Formula :  set "LeaveStartDatePicker"s OnSelect like this:

     
     
     

    "

    Spoiler (Highlight to read)

    //**** CALCULATION USED TO DETERMINE TOTAL WORK DAYS REQUESTED ****

    If(LeaveStartDatePicker.SelectedDate <= LeaveEndDatePicker.SelectedDate,If(Fullday_2.Value, Set(_inclusiveTotalDaysRequested,
    RoundDown(DateDiff(LeaveStartDatePicker_3.SelectedDate, LeaveEndDatePicker.SelectedDate, Days) / 7, 0) * 5 +
    Mod(5 + Weekday(LeaveEndDatePicker.SelectedDate) - Weekday(LeaveStartDatePicker.SelectedDate), 5)
    + If(Morning_1.Value,0.5,1)
    + If(Afternoon_1.Value,-0.5)
    - CountIf(HolidaysCollection,StartDate>=LeaveStartDatePicker.SelectedDate,StartDate<=LeaveEndDatePicker.SelectedDate)), Morning_1.Value || Afternoon_1.Value,Set(_inclusiveTotalDaysRequested, 0.5);

    Set(_numFullWeeks, RoundDown(_inclusiveTotalDaysRequested / 7, 0));
    Set(_numFullDaysPartialWeek, _inclusiveTotalDaysRequested - _numFullWeeks * 7);
    Concurrent(Set(_startWeekday, Weekday(LeaveStartDatePicker.SelectedDate)), Set(_endWeekday, Weekday(LeaveEndDatePicker.SelectedDate))));

    //calculates the number of business days in the partial week left over after whole weeks are subtracted out of total days requested
    If(_numFullDaysPartialWeek = 6,
    If(_startWeekday <= 2, Set(_numPartialWeekdays, 5), Set(_numPartialWeekdays, 4)
    ),
    _numFullDaysPartialWeek = 5,
    If(_startWeekday = 2, Set(_numPartialWeekdays, 5), _startWeekday = 1 || _startWeekday = 3 || _startWeekday = 4, Set(_numPartialWeekdays, 4), Set(_numPartialWeekdays, 3)
    ),
    _numFullDaysPartialWeek = 4,
    If(_startWeekday = 2 || _startWeekday = 3, Set(_numPartialWeekdays, 4), _startWeekday = 1 || _startWeekday = 4, Set(_numPartialWeekdays, 3), Set(_numPartialWeekdays, 2)
    ),
    _numFullDaysPartialWeek = 3,
    If(_startWeekday = 6 || _startWeekday = 7, Set(_numPartialWeekdays, 1), _startWeekday = 1 || _startWeekday = 5, Set(_numPartialWeekdays, 2), Set(_numPartialWeekdays, 3)
    ),
    _numFullDaysPartialWeek = 2,
    If(_startWeekday = 7, Set(_numPartialWeekdays, 0), _startWeekday = 1 || _startWeekday = 6, Set(_numPartialWeekdays, 1), Set(_numPartialWeekdays, 2)),
    _numFullDaysPartialWeek = 1,
    If(_startWeekday = 1 || _startWeekday = 7, Set(_numPartialWeekdays, 0), Set(_numPartialWeekdays, 1)
    ),
    _numFullDaysPartialWeek = 0, Set(_numPartialWeekdays, 0)
    );
    Set(_workDaysInRequest, _numFullWeeks * 5 + _numPartialWeekdays);
    Set(_holidaysInRequest, CountIf(Holidays, StartDate >= LeaveStartDatePicker.SelectedDate, StartDate <= LeaveEndDatePicker.SelectedDate));
    Set(_requestedDays, _workDaysInRequest - _holidaysInRequest);

    );

    //**** CALCULATION USED TO DETERMINE TOTAL WORK DAYS REQUESTED ****If(LeaveStartDatePicker.SelectedDate <= LeaveEndDatePicker.SelectedDate,If(Fullday_2.Value, Set(_inclusiveTotalDaysRequested,RoundDown(DateDiff(LeaveStartDatePicker_3.SelectedDate, LeaveEndDatePicker.SelectedDate, Days) / 7, 0) * 5 +Mod(5 + Weekday(LeaveEndDatePicker.SelectedDate) - Weekday(LeaveStartDatePicker.SelectedDate), 5)+ If(Morning_1.Value,0.5,1)+ If(Afternoon_1.Value,-0.5)- CountIf(HolidaysCollection,StartDate>=LeaveStartDatePicker.SelectedDate,StartDate<=LeaveEndDatePicker.SelectedDate)), Morning_1.Value || Afternoon_1.Value,Set(_inclusiveTotalDaysRequested, 0.5);Set(_numFullWeeks, RoundDown(_inclusiveTotalDaysRequested / 7, 0));Set(_numFullDaysPartialWeek, _inclusiveTotalDaysRequested - _numFullWeeks * 7);Concurrent(Set(_startWeekday, Weekday(LeaveStartDatePicker.SelectedDate)), Set(_endWeekday, Weekday(LeaveEndDatePicker.SelectedDate))));//calculates the number of business days in the partial week left over after whole weeks are subtracted out of total days requestedIf(_numFullDaysPartialWeek = 6,If(_startWeekday <= 2, Set(_numPartialWeekdays, 5), Set(_numPartialWeekdays, 4)),_numFullDaysPartialWeek = 5,If(_startWeekday = 2, Set(_numPartialWeekdays, 5), _startWeekday = 1 || _startWeekday = 3 || _startWeekday = 4, Set(_numPartialWeekdays, 4), Set(_numPartialWeekdays, 3)),_numFullDaysPartialWeek = 4,If(_startWeekday = 2 || _startWeekday = 3, Set(_numPartialWeekdays, 4), _startWeekday = 1 || _startWeekday = 4, Set(_numPartialWeekdays, 3), Set(_numPartialWeekdays, 2)),_numFullDaysPartialWeek = 3,If(_startWeekday = 6 || _startWeekday = 7, Set(_numPartialWeekdays, 1), _startWeekday = 1 || _startWeekday = 5, Set(_numPartialWeekdays, 2), Set(_numPartialWeekdays, 3)),_numFullDaysPartialWeek = 2,If(_startWeekday = 7, Set(_numPartialWeekdays, 0), _startWeekday = 1 || _startWeekday = 6, Set(_numPartialWeekdays, 1), Set(_numPartialWeekdays, 2)),_numFullDaysPartialWeek = 1,If(_startWeekday = 1 || _startWeekday = 7, Set(_numPartialWeekdays, 0), Set(_numPartialWeekdays, 1)),_numFullDaysPartialWeek = 0, Set(_numPartialWeekdays, 0));Set(_workDaysInRequest, _numFullWeeks * 5 + _numPartialWeekdays);Set(_holidaysInRequest, CountIf(Holidays, StartDate >= LeaveStartDatePicker.SelectedDate, StartDate <= LeaveEndDatePicker.SelectedDate));Set(_requestedDays, _workDaysInRequest - _holidaysInRequest););
     

     

    halfday test balance_8.png
  • v-yutliu-msft Profile Picture
    Microsoft Employee on at

    Hi @Erng2 ,

    The logic of calculating date including half day is a little complex.

    I suggest you modify the original formulas little by little.

     

     

    Best regards,

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Launch!

Jump in, show your community spirit, and win prizes!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the April Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
Valantis Profile Picture

Valantis 385

#2
Vish WR Profile Picture

Vish WR 367

#3
timl Profile Picture

timl 340 Super User 2026 Season 1

Last 30 days Overall leaderboard