Forum Discussion
PowerApps Form Default Date as Selected Date from Calendar View
GaboX I've come at this a few different ways so far. My current approach involves hiding the hour and minute dropdowns when "all day" is toggled 'on'. Then on the data card for the start and end date fields I use an if within the "update" field. I like this approach since I don't have to track what the user had selected as a start/end time in the case of the user deciding they didn't want all day after all (since changing the values in the actual dropdowns would mean when the fields are visible again they would be set to 00:00 and 23:59 respectively). This way if the user toggles off All Day then they just see their originally selected values (which would be what is submitted).
Note: DataCardValue2 is my Toggle control.
Start date: if all day then submit the selected date component only, otherwise submit selected date and time.
If(DataCardValue2.Value,
DateValue1.SelectedDate,
DateValue1.SelectedDate
+ Time(
Value(HourValue1.Selected.Value),
Value(MinuteValue1.Selected.Value), 0
)
)
End date: if all day then submit the selected date with the time set to 23:59, otherwise submit selected date and time.
If(DataCardValue2.Value,
DateValue2.SelectedDate
+ Time(23, 59, 0),
DateValue2.SelectedDate
+ Time(
Value(HourValue2.Selected.Value),
Value(MinuteValue2.Selected.Value), 0
)
)
Sorry for the long winded response. I tend to overexplain.
Thanks, Jeff_Lacarte. That's close to what I did too, although what I updated was the hour dropdowns instead of the Start and End datacards (00:00 to start and 23:59 to end when the toggle is on).
What I didn't like with the whole time selection idea though is that the hours and mins. are in separate dropdowns. Since this is for an absence tracker, I don't really need all the hours and all the mins, at least in our case. It's more like half-hour intervals. Also, when requesting time off in a normal schedule, that'd mean 6:00-18:00 max.
So what I did was change the Hour dropdown Items values to half-hour intervals:
(DataCardValue9 is my "All day Toggle)
Start
If(DataCardValue9.Value;
["00:00"];
["06:00";"06:30";"07:00";"07:30";
"08:00";"08:30";"09:00";"09:30";
"10:00";"10:30";"11:00";"11:30";
"12:00";"12:30";"13:00";"13:30";
"14:00";"14:30";"15:00";"15:30";
"16:00";"16:30";"17:00";"17:30";
"18:00"])
End
If(DataCardValue9.Value;
["23:59"];
["06:00";"06:30";"07:00";"07:30";"08:00";
"08:30";"09:00";"09:30";"10:00";"10:30";
"11:00";"11:30";"12:00";"12:30";"13:00";
"13:30";"14:00";"14:30";"15:00";"15:30";
"16:00";"16:30";"17:00";"17:30";"18:00"])
That way I could do this in the Hour Default value:
Start
If(DataCardValue9.Value;
"00:00";
Text((Parent.Default)
;DateTimeFormat.ShortTime24))
End
If(DataCardValue9.Value;
"23:59";
Text((Parent.Default);DateTimeFormat.ShortTime24))
I also got rid of the Mins. dropdown and change the Start and End datacards' update value to:
Start
DateValue1.SelectedDate
+ Time(Value(Left(HourValue1.Selected.Value;2));
Value(Right(HourValue1.Selected.Value;2)); 0)
End
DateValue2.SelectedDate
+ Time(Value(Left(HourValue2.Selected.Value;2));
Value(Right(HourValue2.Selected.Value;2)); 0)
In the end, it looks something like this:
I decided not to hide the time dropdown when the toggle was on, so it looks like this when it's selected:
I guess I tend to overexplain too
- Jeff_LacarteNov 16, 2021Brass ContributorNice GaboX. I might have to switch to how you've done it. I agree, one dropdown is better than the two. The user has to click far too much with such a simple form. Even in the date picker, they click the date then have to click "OK".
- PxlNov 24, 2021Copper ContributorDid you ever find a way to do it through PowerApps? Trying to do the same thing and not finding a method that works, I think the answer is somewhere within InputTextPlaceHolder but I cannot find anything that makes it select based on what the user chooses
- Jeff_LacarteNov 25, 2021Brass ContributorUnfortunately no, not yet.