Dans cet article, nous allons explorer les différentes manières de mettre à jour un champ de type Date avec PowerApps. Toujours en utilisant la méthode Patch
La date du jour
Nous utilisons la méthode Now(). Cette dernière va renvoyer la date et l’heure actuelle
Patch(
Books,
bookSelected,
{
WithdrawalDate:Now()
}
)
Dans 3 mois
La méthode DateAdd permet d’ajouter une unité de temps à une date donnée. Cette méthode prend 3 paramètres :
- La date de départ : Aujourd’hui dans notre exemple
- L’unité : Ce chiffre peut être négatif (Retour vers le futur)
- Le type d’unité : de la milliseconde à l’année en passant par trimestre
Patch(
Books,
bookSelected,
{
WithdrawalDate:DateAdd(Now(),3,TimeUnit.Months)
}
)
A partir d’une date souhaitée
Nous utilisons la fonction Date() qui nécessite 3 chiffres dans l’ordre suivant : l’année, le jour et le mois.
Respecter bien l’ordre, car la fonction Date(2025, 12, 7) vous retournera le 7 décembre et non le 12 juillet 😉
Patch(
Books,
bookSelected,
{
WithdrawalDate:Date(2030,11,7)
}
)
A partir d’une date et d’une heure souhaitée
Deux méthodes, donc deux possibilités, mais le même résultat :
Avec Date() & Time()
Patch(
Books,
bookSelected,
{
WithdrawalDate:Date(2030,11,7) + Time(16,45,0)
}
)
Avec DateTime(), méthode qui combinent les deux précédentes en une seule et unique méthode
Patch(
Books,
bookSelected,
{
WithdrawalDate:DateTime(2030, 9, 19, 12, 45, 0)
}
)
A partir d’un DatePicker
Nous ajouter un DatePicker sur notre page, que nous désignons inDate.
Patch(
Books,
bookSelected,
{
WithdrawalDate:inDate.SelectedDate
}
)
A partir d’un DatePicker et d’un TimePicker (maison)
PowerApps fournit un DatePicker mais ce dernier ne comprends pas les heures. Par conséquent, nous allons en contruire un.
1. Ajouter un premier ComboBox pour gérer afficher les heures
Name : inHour
Items : ForAll(Sequence(12), Text(Value,"00"))
2. Ajouter un second ComboBox pour gérer afficher les minutes
Name : inMinute
Items : ForAll(Sequence(59), Text(Value,"00"))
4. Vous devriez obtenir les contrôles suivants :

3. Le patch sera ainsi le suivant :
Patch(
Books,
bookSelected,
{
WithdrawalDate:
inDate.SelectedDate
+ Time(inHour.Selected.Value, inMinute.Selected.Value, 00)
}
)