Anwering my own question, just incase it helps someone, here is what l have so far that meets my purpose and reports (not fully tested but seems to work fine) .
I have a table (l use all the time in applications) that basically has a few fields such as ControlID, ScreenID, CultureID, LabelText, ToolTipText, etc which holds all textual data for my applications the trick l use for my trial of Telerik reports (until l find something better, solution, not telerik) is to have the report datasource set to a query that basically says get the string values where ScreenID = 'ID of some report'. My ControlID field holds textural id's such as textBoxName, labelDate etc and in order to be able to use these as a datasource with just a single row l pivot the table so l can get the ControlID field values as the Column Names with the LabelText values for the respective control i.e the pivot will produce:
Column Names - textBoxFirstName, textBoxLastName, textBoxDateOfBirth
Row values "First name", "Surname", "Date of birth"
Using the data explorer l just drag the apporiapriate item on to the report surface. For table headers where the table has its own datasource I just add a blank group to the detail section, and add the column headers in there using the report datasource (my controlid values) etc.
Hope the above helps anyone, until a better anwser is provided
Paul.
P.S Some sql to get you started if you want to try this.
Create Procedure aps.usp_GetReportText_ByScreenID
(
@ScreenID int
)
As
SET FMTONLY OFF -- the magic ingredient for report designer / new to me
Declare @ColumnNames nvarchar(max)
Declare @ColumnSchema nvarchar(max)
Declare @TableSql nvarchar(max)
Declare @DataSql nvarchar(max)
Select
@ColumnNames = Coalesce(@ColumnNames + ',[' + cast(ControlNameID as nvarchar) + ']','[' + cast(ControlNameID as nvarchar)+ ']'),
@ColumnSchema = Coalesce(@ColumnSchema + ',[' + cast(ControlNameID as nvarchar) + '] nvarchar(4000) Null','[' + cast(ControlNameID as nvarchar)+ '] nvarchar(4000) Null')
From
aps.ScreenTexts
Where
ScreenID = @ScreenID -- i.e 1 could be for Customer Report
Group By
ControlNameID
Set @DataSql = N'Select ' + @ColumnNames + ' From (Select LabelText, ControlNameID From aps.ScreenTexts Where ScreenID = ' + Cast(@ScreenID As nvarchar) + ') As a Pivot (Min(LabelText) For ControlNameID In (' + @ColumnNames + ') ) As b'
Create table #ReportScreenTexts(JustForCreate int)
Set @TableSql = N'Alter Table #ReportScreenTexts Add ' + @ColumnSchema + '; Alter Table #ReportScreenTexts Drop Column JustForCreate;'
Execute(@TableSql)
Insert Into #ReportScreenTexts Execute(@DataSql)
Select * From #ReportScreenTexts
Return @@Error
Go