0

情况: 我正在开发一个应用程序,您可以在其中预订所选日期和时间的电台,持续时间为 1、2 或 4 小时。应用程序的用户界面。

问题:防止重复预订的最佳方法是什么?它们也可能不重叠。

重要表格:

  1. Booking(BookingStation、Begin、End、Duration、Owner) 查看数据表
  2. 持续时间(时间、分钟、长度)查看数据表
  3. 站(名称、编号)查看数据表

显示车站的画廊“项目”中的代码:

SortByColumns(
Filter(
    Stations;
    Not(
        Name in Filter(
            Bookings;
            (Begin >= VarBeginDateTime && End <= varEndDateTime && Name <> BookingStation.Name);
            (Begin <= VarBeginDateTime && End <= varEndDateTime && Name <> BookingStation.Name);
            (Begin >= VarBeginDateTime && Begin <= varEndDateTime && End >= varEndDateTime && Name <> BookingStation.Name);
            (Begin <= VarBeginDateTime && End >= varEndDateTime && Name <> BookingStation.Name)
        ).Name
    )
);
"cr8fc_number";
Ascending
)

OnSelect 按钮 Book 中的代码:

 Set(varNumDuration; varDuration);;

// Make booking
Patch(Bookings; Defaults(Bookings); 
{Begin: VarBeginDateTime}; 
{End: varEndDateTime}; 
{BookingStation: varStationSelected};
{Duration: varDuration});;

// Send mail
Office365Outlook.SendEmailV2("john@doe.com";"Confirmation booking "&varStationSelectedText;" 
Dear "& varMyDetails.FullName & "," & "<br><br>These are your booking details:" &
"<br><br>Start: "&VarBeginDateTime & "<br> End: "&varEndDateTime& "<br> Duration: "&varDurationText& "<br> Station: "&varStationSelectedText 
& "<br><br> Kind regards, <br> Booking station app");;

// Next screen
Navigate(ConfirmationScreen);;
4

1 回答 1

0

这不是一个 PowerApps 问题,而是一个逻辑问题。

假设您有一个下午 1 点到 2 点的约会。然后你需要检查一些事情:

  1. 我的新约会的开始时间是否大于或等于现有约会的结束时间。
  2. 我的新约会的结束时间是否小于或等于我现有约会的开始时间。

如果是这种情况,您有一个空位并且知道预订是安全的。

例如,另一种方法是筛选当天的预订并执行 CountRows 以检查在所选时间段内是否已经有预订。

吉拉克

于 2022-01-14T14:59:41.153 回答