Okay so you want to kick off an SSRS report that apparently has two datasets that you capture (are you combining these two datasets? or showing them separately?). The one is using Stored Proc and the the other is an openquery or open rowset,
I'm presuming these two data sources are separate servers, even if they aren't, the Stored Procedure seems the way to go since you know it will work - may sound like a dumb question but why not use the stored procedure for both of the dataset calls? Can you not used a stored proc for the openquery that you were trying to do?