Yes it is possible. We have done this in our system.
* First you have to make it possible to open the report by it's name (slightly changing the query Get Report Item ID and the ticket template InReportTicket.htm/Custom_InReportTicket.js). Of course you have to leave the possibility to get the report record by it's ITEM_ID if the name attribute is not supplied in your customized query.
* Next you have to change the function RunReport() allowing to supply the report name as attribute. This is just an example of Custom_InCall.js for the Call entity:
function RunReport(z_report_name)
{
mda = Main.document.all;
if (mda.ENTITY_TYPE != null) {
if(!z_report_name || z_report_name==''){
var z_report_name="CALL%20REPORT";
}
NewReportWindow(mda.ID.value, z_report_name, mda.CALL_NUMBER.value, mda.ENTITY_TYPE.value, CallCoreEntityRef);
}
else
InAlert(LoadText(322),LoadText(1671, "ENTITY_TYPE"));
}
* And at last you can add an extra button(-s) for the custom ticket printing in the entity details form. In example:
<input type="button" name="BTN_PRINT2" class="But-TB-Print2" onClick="parent.RunReport('CALL_REPORT_HIST')" title="Print Ticket (with History)" tabindex="100">
I hope this will help you a bit to fetch some ideas.
Gytis