To create a custom report, you just need a script (pl/sql, jsp, whatever) that can query your data and create an HTML file in the reports directory. I think most of the stock ones are using jsp but you could create a sql script instead.
Here's a sample command for using a sql script and passing in some parameters:
I shared the script to our DBA and said the following, he says he cannot grant execute permissions on it.
That oracle error is saying that it cannot find the object KNTARPT_TESTING_REPORT, not that it cannot execute it, as it is a procedure or function after I had a quick look at your script, you are passing parameters to it as if it is a function/procedure or a package. So the object KNTARPT_TESTING_REPORT does not exist in the database, it either needs to be created with another script or the name of the procedure/function you are trying to call is not correct. As this doesn't exist, I cannot grant execute permissions on it.