Skip to main content

Notifications

Community site session details

Community site session details

Session Id :
Power Apps - Building Power Apps
Answered

Creating records from a Date Range

(0) ShareShare
ReportReport
Posted on by

I am trying to create records in a datasource (SQL Server) based on a user inputted date range. (The user supplies the first date (StartDate) and the last date (EndDate).

 

Utilizing the following code...

 

Set(TotalDays,RoundDown(DateDiff(StartDate.SelectedDate, EndDate.SelectedDate, Days) / 7, 0) * 5 +
Mod(5 + Weekday(EndDate.SelectedDate) - Weekday(StartDate.SelectedDate), 5) -
CountIf(PTDHolidays, Date >= StartDate.SelectedDate, Date <= EndDate.SelectedDate) + 1)

//Code supplied by Anh-Thu Chang, PowerApps Community Manager

...I am able to set a variable to the correct amount of dates (excluding weekends and our company holidays). So at this point I now know the first date, the last date and the amount of valid dates between them. From this I want to create a record in my datasource for each date. The records will be identical except for the date.

 

I've checked out all the posts about ForAll and Collections, as well as Lookup, Filter and Patch. What I can't figure out is how to iterate through this range, so I can record their individual values, say, in a Collection. Once I have them in a Collection then I can use ForAll and Patch to update my SQL datasource.

 

I hope I explained this clearly and somebody can steer me in the right direction. Any input will be appreciated.

  • JADANL123 Profile Picture
    24 on at
    Re: Creating records from a Date Range

    Thanks Carlos your code works perfectly. For my use case no filter for holidays/weekend was required so I adjusted your code like the following:

     

    ClearCollect(
     DaysToStore,
     Filter(
     AddColumns(
     [
     0,
     1,
     2,
     3,
     4,
     5,
     6,
     7,
     8,
     9,
     10,
     11,
     12,
     13,
     14,
     15,
     16,
     17,
     18,
     19,
     20,
     21,
     22,
     23,
     24,
     25,
     26,
     27,
     28,
     29,
     30,
     31,
     32,
     33,
     34,
     35,
     36,
     37,
     38,
     39,
     40,
     41,
     42,
     43,
     44,
     45,
     46,
     47,
     48,
     49
     ],
     "Day",
     DateAdd(
     StartDate.SelectedDate,
     Value,
     Days
     )
     ),
     Day <= EndDate.SelectedDate
     )
    )

     

  • bscramling Profile Picture
    on at
    Re: Creating records from a Date Range

    Carlos,

     

    Works perfectly. Man Happy

     

    Can't tell you how much I appreciate your effort in helping me out.

     

    I really appreciate it!

  • Verified answer
    CarlosFigueira Profile Picture
    on at
    Re: Creating records from a Date Range

    You can use an expression like this one to store all the days that you need to insert into a new collection. The idea is to create all possible days between the start and end dates (and for now you need to specify all the numbers from 0 to the maximum number of days yourself - the example below works for up to 50 days), then filter all of those that are either on a weekend or on a holiday.

    ClearCollect(
     DaysToStore,
     Filter(
     AddColumns(
     [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
     10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
     20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
     30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
     40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
     "Day",
     DateAdd(StartDate.SelectedDate, Value, Days)),
     Day <= EndDate.SelectedDate,
     Weekday(Day, StartOfWeek.Saturday) > 2,
     IsBlank(LookUp(PTDHolidays, Date = Day))))

    Hope this helps!

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

🌸 Community Spring Festival 2025 Challenge 🌸

WIN Power Platform Community Conference 2025 tickets!

Markus Franz – Community Spotlight

We are honored to recognize Markus Franz as our April 2025 Community…

Kudos to the March Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard

#1
WarrenBelz Profile Picture

WarrenBelz 146,587 Most Valuable Professional

#2
RandyHayes Profile Picture

RandyHayes 76,287 Super User 2024 Season 1

#3
Pstork1 Profile Picture

Pstork1 65,928 Most Valuable Professional

Leaderboard