This is a long thread. I may have misunderstood, but looks like you wanted me to share the code for my custom parcel report. Here is how I made it happen.
In the eSearch widget, in the _OnSearchFinish function, if only 1 parcel was selected (the report can only be generated by the print tool if 1 and only 1 parcel is selected), I set a few variables with data to be passed to the report, such as below and then publish this to the print tool:
if(results.features.length ===1){
var singleAPN = results.features[0].attributes.APN_FORMATTED;
var Address1 = results.features[0].attributes.ADDRESS;
this.publishData({
'target': 'Print',
'parcel': {"singleAPN":singleAPN,"Address1":Address1,"Address2":Address2}
},true);
}
In the print widget.js file, I override the onReceiveData function to listen for a target of "Print". If that data is received, then I query a map service to get all the report elements, and I allow the user to select the "report Layout". I had to make several modifications in the Print.js and Print\widget.js files, so they are attached here if you really want to dig into it. All my modifications are commented with 'nevco customization', so you should easily find my changes. Note that I also added some logic to strip some of the graphics out of the JSON because my print request was too long for our firewall, so just disregard that piece.