Hi Yin,
I think you need to implement the BADI 'PT_ABS_REQ', where you need to check the status and throw an error that you have already applied for Cancellation of Approved leave.
To get all leave request with status u can use fm- PT_ARQ_REQLIST_GET
Regards,
Mohsin.