You describe a field named "date", yet indicate that you have a menu for year and a sub menu for month. How have you implemented that interface?
Is date a field of type date when you check it in Manage | database | Fields?
for each year made a button that calls the report of the year.
now I want to detail every year / month.
I hope I have answered your question ...
Not completely. Is date a field of type date when you check the field type in Manage | Database | Fields?
If so, you can define two global fields, one for year, on for month and then use this script to find all records of the specified month and year:
Enter Find Mode
Set Field [YourTable::Date ; Ceiling ( Position ( "JanFebMarAprMayJunJulAugSepNovDec" ; Left ( YourTable::gMonthName ; 3 ) ; 1 ; 1 ) / 3 ) & "/*/" & YourTable::gYear ]
Set Error Capture [on]
Perform Find 
This requires that gMonthName and gYear be given global storage in field options and that gMonthName is the field formatted with a value list of Month Names. And date must truly be a field of type date, not text. I'm also assuming that your local settings are for MMDDYYYY dates.
yes Date is a date field.
i will try it right now.