En forms10g, comme en forms 6, en forms 3, etc, il est possible d'avoir des champs de type date. Dans les tables d'une base Oracle 9i, ou 7, ou 6, etc. il est possible d'avoir des champs de type date.
Pour qu'un utilisateur puisse saisir une date, il faut créer un formulaire en mode layout contenant un champ de type date. Il y aura probablement aussi un bouton "OK" ou "Générer facture mensuelle". Ce bouton sera associé à une requête SQL qui contiendra quelque chose comme select sum(prest_mt) from tb_prestation where dt_prest > to_date(to_char(dt_saisie, 'yyyymm') || '01', 'yyyymmdd') and dt_prest <= dt_saisie. Ou mieux ce bouton fera appel à une procédure en PL/SQL qui fera une boucle sur tout ce qu'il y a à facturer à l'aide d'un curseur (voir le mot cursor dans la documentation). Le résultat sera renvoyé dans des zones prévues à cet effet dans le formulaire. Il y aura aussi un bouton "Imprimer" qui lancera un report construit avec Oracle Report Builder ou un autre outil.
Bon courage !