Telerik Forums
Reporting Forum
7 answers
459 views
Hi

What is the best way to view Telerik reports inside a silverlight application, also i wish to pass parameters for the report from the silverlight gui ( dates etc. )

Regards,

Vassil Petev
Telerik team
 answered on 15 Feb 2010
1 answer
58 views
Hello, this going to be a very specific scenario that I can't find any documentation on.

Scenario:
Basically, I have all of the reports that we usually run in the ReportViewer saved in the database with the conditional formatting rules and columns saved there as well.  Currently, there has been a pull to begin emailing certain reports to users in excel format, with the same conditional formatting rules as the ReportViewer.

Question:
Is there a way to run a report using the telerik reporting and set up the same conditional formatting without actually visualizing it in a ReportViewer?  Once this is done saving the file to excel on the server.

Thank you for your time and help in advance.

If I need to specify anymore information on this topic please ask.

Chris McMahan
Steve
Telerik team
 answered on 15 Feb 2010
2 answers
307 views
I created a Subreport that builds a chart that accepts a parameter  ( TerritoryId ),
when I run that report by itself it works fine. (see subreport.png )

When I create a Master report and pass in the parameter, the parameter seems to pass in ok. But the chart,
says Specified cast is not valid. (see master.png)
You can see from the msater.png that the parameter is being passed to the text box on the subreport, but not the chart.



The code for the  chart NeedDataSource on the subreport:
        private void chart1_NeedDataSource(object sender, EventArgs e) 
        { 
            Int64 territoryId = (Int64)this.ReportParameters["TerritoryId"].Value; 
 
            AdventureWorksDataSetTableAdapters.SalesByTerritoryTableAdapter adapter = new AdventureWorksDataSetTableAdapters.SalesByTerritoryTableAdapter(); 
            AdventureWorksDataSet.SalesByTerritoryDataTable data = adapter.GetData((Int32)territoryId); 
            Telerik.Reporting.Processing.Chart myChart = (Telerik.Reporting.Processing.Chart)sender; 
            myChart.DataSource = data.DefaultView; 
            chart1.PlotArea.XAxis.DataLabelsColumn = "OrderDate";             
            chart1.Series[0].DataYColumn = "AvgSales"
            chart1.Series[0].Type = Telerik.Reporting.Charting.ChartSeriesType.Bar; 
            chart1.Series[0].Name = "AvgSales for " + territoryId.ToString(); 
            chart1.PlotArea.XAxis.Appearance.LabelAppearance.RotationAngle = 90; 
 
        } 

The attached images are the subreport by itself, and the subreport inside a master report, passing in the parameter.

This just uses the AdventuresWork DB
The following  is the StoredProc used for the dataset.
create proc dbo.SalesByTerritory  
    @TerritoryId int = null 
as 
 
select top 10 T.TerritoryID, T.Nameconvert(varchar(5),S.OrderDate,101) as OrderDate, avg(S.SubTotal) as AvgSales 
from Sales.SalesTerritory T 
INNER JOIN Sales.SalesOrderHeader  S ON T.TerritoryID = S.TerritoryID 
WHERE (T.TerritoryID = @TerritoryID or @TerritoryId is null
group by T.TerritoryID, T.Name, S.OrderDate 
order by S.OrderDate, T.Name 


Here's how the designer code for the Master:
namespace sample 
    using System.ComponentModel; 
    using System.Drawing; 
    using System.Windows.Forms; 
    using Telerik.Reporting; 
    using Telerik.Reporting.Drawing; 
 
    partial class Master 
    { 
        #region Component Designer generated code 
        /// <summary> 
        /// Required method for telerik Reporting designer support - do not modify 
        /// the contents of this method with the code editor. 
        /// </summary> 
        private void InitializeComponent() 
        { 
            Telerik.Reporting.Drawing.StyleRule styleRule1 = new Telerik.Reporting.Drawing.StyleRule(); 
            Telerik.Reporting.Drawing.StyleRule styleRule2 = new Telerik.Reporting.Drawing.StyleRule(); 
            Telerik.Reporting.Drawing.StyleRule styleRule3 = new Telerik.Reporting.Drawing.StyleRule(); 
            Telerik.Reporting.Drawing.StyleRule styleRule4 = new Telerik.Reporting.Drawing.StyleRule(); 
            this.labelsGroupHeader = new Telerik.Reporting.GroupHeaderSection(); 
            this.territoryIDCaptionTextBox = new Telerik.Reporting.TextBox(); 
            this.nameCaptionTextBox = new Telerik.Reporting.TextBox(); 
            this.labelsGroupFooter = new Telerik.Reporting.GroupFooterSection(); 
            this.labelsGroup = new Telerik.Reporting.Group(); 
            this.pageHeader = new Telerik.Reporting.PageHeaderSection(); 
            this.reportNameTextBox = new Telerik.Reporting.TextBox(); 
            this.pageFooter = new Telerik.Reporting.PageFooterSection(); 
            this.currentTimeTextBox = new Telerik.Reporting.TextBox(); 
            this.pageInfoTextBox = new Telerik.Reporting.TextBox(); 
            this.reportHeader = new Telerik.Reporting.ReportHeaderSection(); 
            this.titleTextBox = new Telerik.Reporting.TextBox(); 
            this.detail = new Telerik.Reporting.DetailSection(); 
            this.territoryIDDataTextBox = new Telerik.Reporting.TextBox(); 
            this.nameDataTextBox = new Telerik.Reporting.TextBox(); 
            this.territoryDataSet = new sample.TerritoryDataSet(); 
            this.territoryDataSetTableAdapter1 = new sample.TerritoryDataSetTableAdapters.TerritoryDataSetTableAdapter(); 
            this.subReport1 = new Telerik.Reporting.SubReport(); 
            this.subReport2 = new sample.SubReport(); 
            ((System.ComponentModel.ISupportInitialize)(this.territoryDataSet)).BeginInit(); 
            ((System.ComponentModel.ISupportInitialize)(this.subReport2)).BeginInit(); 
            ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); 
            //  
            // labelsGroupHeader 
            //  
            this.labelsGroupHeader.Height = new Telerik.Reporting.Drawing.Unit(0.28125, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.labelsGroupHeader.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { 
            this.territoryIDCaptionTextBox, 
            this.nameCaptionTextBox}); 
            this.labelsGroupHeader.Name = "labelsGroupHeader"
            this.labelsGroupHeader.PrintOnEveryPage = true
            //  
            // territoryIDCaptionTextBox 
            //  
            this.territoryIDCaptionTextBox.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.territoryIDCaptionTextBox.Name = "territoryIDCaptionTextBox"
            this.territoryIDCaptionTextBox.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(3.1979167461395264, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.20000000298023224, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.territoryIDCaptionTextBox.StyleName = "Caption"
            this.territoryIDCaptionTextBox.Value = "TerritoryID"
            //  
            // nameCaptionTextBox 
            //  
            this.nameCaptionTextBox.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(3.2395832538604736, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.nameCaptionTextBox.Name = "nameCaptionTextBox"
            this.nameCaptionTextBox.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(3.1979167461395264, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.20000000298023224, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.nameCaptionTextBox.StyleName = "Caption"
            this.nameCaptionTextBox.Value = "Name"
            //  
            // labelsGroupFooter 
            //  
            this.labelsGroupFooter.Height = new Telerik.Reporting.Drawing.Unit(0.28125, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.labelsGroupFooter.Name = "labelsGroupFooter"
            this.labelsGroupFooter.Style.Visible = false
            //  
            // labelsGroup 
            //  
            this.labelsGroup.Bookmark = null
            this.labelsGroup.GroupFooter = this.labelsGroupFooter; 
            this.labelsGroup.GroupHeader = this.labelsGroupHeader; 
            //  
            // pageHeader 
            //  
            this.pageHeader.Height = new Telerik.Reporting.Drawing.Unit(0.28125, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.pageHeader.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { 
            this.reportNameTextBox}); 
            this.pageHeader.Name = "pageHeader"
            //  
            // reportNameTextBox 
            //  
            this.reportNameTextBox.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.reportNameTextBox.Name = "reportNameTextBox"
            this.reportNameTextBox.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(6.4166665077209473, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.20000000298023224, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.reportNameTextBox.StyleName = "PageInfo"
            this.reportNameTextBox.Value = "Master"
            //  
            // pageFooter 
            //  
            this.pageFooter.Height = new Telerik.Reporting.Drawing.Unit(0.28125, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.pageFooter.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { 
            this.currentTimeTextBox, 
            this.pageInfoTextBox}); 
            this.pageFooter.Name = "pageFooter"
            //  
            // currentTimeTextBox 
            //  
            this.currentTimeTextBox.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.currentTimeTextBox.Name = "currentTimeTextBox"
            this.currentTimeTextBox.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(3.1979167461395264, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.20000000298023224, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.currentTimeTextBox.StyleName = "PageInfo"
            this.currentTimeTextBox.Value = "=NOW()"
            //  
            // pageInfoTextBox 
            //  
            this.pageInfoTextBox.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(3.2395832538604736, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.pageInfoTextBox.Name = "pageInfoTextBox"
            this.pageInfoTextBox.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(3.1979167461395264, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.20000000298023224, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.pageInfoTextBox.Style.TextAlign = Telerik.Reporting.Drawing.HorizontalAlign.Right; 
            this.pageInfoTextBox.StyleName = "PageInfo"
            this.pageInfoTextBox.Value = "=PageNumber"
            //  
            // reportHeader 
            //  
            this.reportHeader.Height = new Telerik.Reporting.Drawing.Unit(0.80823493003845215, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.reportHeader.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { 
            this.titleTextBox}); 
            this.reportHeader.Name = "reportHeader"
            //  
            // titleTextBox 
            //  
            this.titleTextBox.Name = "titleTextBox"
            this.titleTextBox.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(6.4583334922790527, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.78740161657333374, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.titleTextBox.StyleName = "Title"
            this.titleTextBox.Value = "Master"
            //  
            // detail 
            //  
            this.detail.Height = new Telerik.Reporting.Drawing.Unit(2.2292652130126953, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.detail.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { 
            this.territoryIDDataTextBox, 
            this.nameDataTextBox, 
            this.subReport1}); 
            this.detail.Name = "detail"
            //  
            // territoryIDDataTextBox 
            //  
            this.territoryIDDataTextBox.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.territoryIDDataTextBox.Name = "territoryIDDataTextBox"
            this.territoryIDDataTextBox.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(3.1979167461395264, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.20000000298023224, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.territoryIDDataTextBox.StyleName = "Data"
            this.territoryIDDataTextBox.Value = "=Fields.TerritoryID"
            //  
            // nameDataTextBox 
            //  
            this.nameDataTextBox.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(3.2395832538604736, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.02083333395421505, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.nameDataTextBox.Name = "nameDataTextBox"
            this.nameDataTextBox.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(3.1979167461395264, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.20000000298023224, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.nameDataTextBox.StyleName = "Data"
            this.nameDataTextBox.Value = "=Fields.Name"
            //  
            // territoryDataSet 
            //  
            this.territoryDataSet.DataSetName = "TerritoryDataSet"
            this.territoryDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; 
            //  
            // territoryDataSetTableAdapter1 
            //  
            this.territoryDataSetTableAdapter1.ClearBeforeFill = true
            //  
            // subReport1 
            //  
            this.subReport1.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(0.099999986588954926, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.32926526665687561, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.subReport1.Name = "subReport1"
            this.subReport1.Parameters.Add(new Telerik.Reporting.Parameter("TerritoryId""=Fields.TerritoryID")); 
            this.subReport1.ReportSource = this.subReport2; 
            this.subReport1.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(5.7000007629394531, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(1.7000001668930054, Telerik.Reporting.Drawing.UnitType.Inch)); 
            this.subReport1.NeedDataSource += new System.EventHandler(this.subReport1_NeedDataSource); 
            //  
            // Master 
            //  
            this.DataSource = this.territoryDataSet; 
            this.Groups.AddRange(new Telerik.Reporting.Group[] { 
            this.labelsGroup}); 
            this.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { 
            this.labelsGroupHeader, 
            this.labelsGroupFooter, 
            this.pageHeader, 
            this.pageFooter, 
            this.reportHeader, 
            this.detail}); 
            this.PageSettings.Landscape = false
            this.PageSettings.Margins.Bottom = new Telerik.Reporting.Drawing.Unit(1, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.PageSettings.Margins.Left = new Telerik.Reporting.Drawing.Unit(1, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.PageSettings.Margins.Right = new Telerik.Reporting.Drawing.Unit(1, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.PageSettings.Margins.Top = new Telerik.Reporting.Drawing.Unit(1, Telerik.Reporting.Drawing.UnitType.Inch); 
            this.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Letter; 
            this.Style.BackgroundColor = System.Drawing.Color.White; 
            styleRule1.Selectors.AddRange(new Telerik.Reporting.Drawing.ISelector[] { 
            new Telerik.Reporting.Drawing.StyleSelector("Title")}); 
            styleRule1.Style.Color = System.Drawing.Color.Black; 
            styleRule1.Style.Font.Bold = true
            styleRule1.Style.Font.Italic = false
            styleRule1.Style.Font.Name = "Tahoma"
            styleRule1.Style.Font.Size = new Telerik.Reporting.Drawing.Unit(20, Telerik.Reporting.Drawing.UnitType.Point); 
            styleRule1.Style.Font.Strikeout = false
            styleRule1.Style.Font.Underline = false
            styleRule2.Selectors.AddRange(new Telerik.Reporting.Drawing.ISelector[] { 
            new Telerik.Reporting.Drawing.StyleSelector("Caption")}); 
            styleRule2.Style.Color = System.Drawing.Color.Black; 
            styleRule2.Style.Font.Name = "Tahoma"
            styleRule2.Style.Font.Size = new Telerik.Reporting.Drawing.Unit(11, Telerik.Reporting.Drawing.UnitType.Point); 
            styleRule2.Style.VerticalAlign = Telerik.Reporting.Drawing.VerticalAlign.Middle; 
            styleRule3.Selectors.AddRange(new Telerik.Reporting.Drawing.ISelector[] { 
            new Telerik.Reporting.Drawing.StyleSelector("Data")}); 
            styleRule3.Style.Font.Name = "Tahoma"
            styleRule3.Style.Font.Size = new Telerik.Reporting.Drawing.Unit(11, Telerik.Reporting.Drawing.UnitType.Point); 
            styleRule3.Style.VerticalAlign = Telerik.Reporting.Drawing.VerticalAlign.Middle; 
            styleRule4.Selectors.AddRange(new Telerik.Reporting.Drawing.ISelector[] { 
            new Telerik.Reporting.Drawing.StyleSelector("PageInfo")}); 
            styleRule4.Style.Font.Name = "Tahoma"
            styleRule4.Style.Font.Size = new Telerik.Reporting.Drawing.Unit(11, Telerik.Reporting.Drawing.UnitType.Point); 
            styleRule4.Style.VerticalAlign = Telerik.Reporting.Drawing.VerticalAlign.Middle; 
            this.StyleSheet.AddRange(new Telerik.Reporting.Drawing.StyleRule[] { 
            styleRule1, 
            styleRule2, 
            styleRule3, 
            styleRule4}); 
            this.Width = new Telerik.Reporting.Drawing.Unit(6.4583334922790527, Telerik.Reporting.Drawing.UnitType.Inch); 
            ((System.ComponentModel.ISupportInitialize)(this.territoryDataSet)).EndInit(); 
            ((System.ComponentModel.ISupportInitialize)(this.subReport2)).EndInit(); 
            ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); 
 
        } 
        #endregion 
 
        private GroupHeaderSection labelsGroupHeader; 
        private Telerik.Reporting.TextBox territoryIDCaptionTextBox; 
        private Telerik.Reporting.TextBox nameCaptionTextBox; 
        private GroupFooterSection labelsGroupFooter; 
        private Group labelsGroup; 
        private PageHeaderSection pageHeader; 
        private Telerik.Reporting.TextBox reportNameTextBox; 
        private PageFooterSection pageFooter; 
        private Telerik.Reporting.TextBox currentTimeTextBox; 
        private Telerik.Reporting.TextBox pageInfoTextBox; 
        private ReportHeaderSection reportHeader; 
        private Telerik.Reporting.TextBox titleTextBox; 
        private DetailSection detail; 
        private Telerik.Reporting.TextBox territoryIDDataTextBox; 
        private Telerik.Reporting.TextBox nameDataTextBox; 
        private TerritoryDataSet territoryDataSet; 
        private sample.TerritoryDataSetTableAdapters.TerritoryDataSetTableAdapter territoryDataSetTableAdapter1; 
        private Telerik.Reporting.SubReport subReport1; 
        private SubReport subReport2; 
 
    } 

And the desinger code for the SubReport:
namespace sample 
    using System.ComponentModel; 
    using System.Drawing; 
    using System.Windows.Forms; 
    using Telerik.Reporting; 
    using Telerik.Reporting.Drawing; 
 
    partial class SubReport 
    { 
        #region Component Designer generated code 
        /// <summary> 
        /// Required method for telerik Reporting designer support - do not modify 
        /// the contents of this method with the code editor. 
        /// </summary> 
        private void InitializeComponent() 
        { 
          Telerik.Reporting.Charting.ChartSeries chartSeries1 = new Telerik.Reporting.Charting.ChartSeries(); 
          Telerik.Reporting.ReportParameter reportParameter1 = new Telerik.Reporting.ReportParameter(); 
          this.detail = new Telerik.Reporting.DetailSection(); 
          this.textBox1 = new Telerik.Reporting.TextBox(); 
          this.chart1 = new Telerik.Reporting.Chart(); 
          this.textBox2 = new Telerik.Reporting.TextBox(); 
          ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); 
          //  
          // detail 
          //  
          this.detail.Height = new Telerik.Reporting.Drawing.Unit(4.2000002861022949, Telerik.Reporting.Drawing.UnitType.Inch); 
          this.detail.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { 
            this.textBox1, 
            this.chart1, 
            this.textBox2}); 
          this.detail.Name = "detail"
          //  
          // textBox1 
          //  
          this.textBox1.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(2.9000003337860107, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.099999986588954926, Telerik.Reporting.Drawing.UnitType.Inch)); 
          this.textBox1.Name = "textBox1"
          this.textBox1.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(2.3000001907348633, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.30000004172325134, Telerik.Reporting.Drawing.UnitType.Inch)); 
          this.textBox1.Style.Color = System.Drawing.Color.Blue; 
          this.textBox1.Style.Font.Size = new Telerik.Reporting.Drawing.Unit(14, Telerik.Reporting.Drawing.UnitType.Point); 
          this.textBox1.Value = "= Parameters.TerritoryId"
          //  
          // chart1 
          //  
          this.chart1.BitmapResolution = 96F; 
          this.chart1.ImageFormat = System.Drawing.Imaging.ImageFormat.Emf; 
          this.chart1.IntelligentLabelsEnabled = true
          this.chart1.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(0.30000004172325134, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.60000008344650269, Telerik.Reporting.Drawing.UnitType.Inch)); 
          this.chart1.Name = "chart1"
          this.chart1.PlotArea.XAxis.Appearance.CustomFormat = "MM/dd"
          this.chart1.PlotArea.XAxis.Appearance.ValueFormat = Telerik.Reporting.Charting.Styles.ChartValueFormat.ShortDate; 
          this.chart1.PlotArea.XAxis.IsZeroBased = false
          this.chart1.PlotArea.XAxis.MinValue = 1; 
          this.chart1.PlotArea.YAxis.IsZeroBased = false
          this.chart1.PlotArea.YAxis.MaxValue = 90; 
          this.chart1.PlotArea.YAxis.MinValue = 10; 
          this.chart1.PlotArea.YAxis.Step = 10; 
          chartSeries1.Name = "Series 1"
          this.chart1.Series.AddRange(new Telerik.Reporting.Charting.ChartSeries[] { 
            chartSeries1}); 
          this.chart1.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(5.1000003814697266, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(3.1000001430511475, Telerik.Reporting.Drawing.UnitType.Inch)); 
          this.chart1.NeedDataSource += new System.EventHandler(this.chart1_NeedDataSource); 
          //  
          // textBox2 
          //  
          this.textBox2.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(0.40000009536743164, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.099999986588954926, Telerik.Reporting.Drawing.UnitType.Inch)); 
          this.textBox2.Name = "textBox2"
          this.textBox2.Size = new Telerik.Reporting.Drawing.SizeU(new Telerik.Reporting.Drawing.Unit(2.4000000953674316, Telerik.Reporting.Drawing.UnitType.Inch), new Telerik.Reporting.Drawing.Unit(0.30000004172325134, Telerik.Reporting.Drawing.UnitType.Inch)); 
          this.textBox2.Style.Color = System.Drawing.Color.Blue; 
          this.textBox2.Style.Font.Size = new Telerik.Reporting.Drawing.Unit(14, Telerik.Reporting.Drawing.UnitType.Point); 
          this.textBox2.Value = "Passed in Parameter"
          //  
          // SubReport 
          //  
          this.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { 
            this.detail}); 
          this.PageSettings.Landscape = false
          this.PageSettings.Margins.Bottom = new Telerik.Reporting.Drawing.Unit(1, Telerik.Reporting.Drawing.UnitType.Inch); 
          this.PageSettings.Margins.Left = new Telerik.Reporting.Drawing.Unit(1, Telerik.Reporting.Drawing.UnitType.Inch); 
          this.PageSettings.Margins.Right = new Telerik.Reporting.Drawing.Unit(1, Telerik.Reporting.Drawing.UnitType.Inch); 
          this.PageSettings.Margins.Top = new Telerik.Reporting.Drawing.Unit(1, Telerik.Reporting.Drawing.UnitType.Inch); 
          this.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Letter; 
          reportParameter1.Name = "TerritoryId"
          reportParameter1.Type = Telerik.Reporting.ReportParameterType.Integer; 
          reportParameter1.UI.Visible = true
          reportParameter1.Value = "9"
          this.ReportParameters.Add(reportParameter1); 
          this.Style.BackgroundColor = System.Drawing.Color.White; 
          ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); 
 
        } 
        #endregion 
 
        private Telerik.Reporting.DetailSection detail; 
        private Telerik.Reporting.TextBox textBox1; 
        private Chart chart1; 
        private Telerik.Reporting.TextBox textBox2; 
    } 

Basically the subreport has a textbox that echos out the passed in parameter and the chart.
running it alone the textbox populates and the chart populates.

Running the MasterReport with the Subreport , the textbox populates but the chart causes the cast error.




Steve
Telerik team
 answered on 15 Feb 2010
3 answers
72 views
Dear Telerik,

Can you please help me, how do I do a group footer textbox which value based on group header textbox value.

For example. if the headerGroup textbox value is an "A" then the footerGroup textbox value should be the sum of "A".

Thank you for you Help
Molivia



Peter
Telerik team
 answered on 15 Feb 2010
1 answer
107 views

Hello,

My team is very excited to move into Telerik Reports, however we have first been trialling the software and came accross an issue that we are unable to solve.  Unfortunately we're on a tight deadline, and would sincerely appreciate any prompt responses.

[See Sample Project, Code & screenshot: http://www.addeight.net/telerik-issue.zip]


We are having trouble binding a sub report based on repeating datafrom a parent (master) report. What we need to be able to do is have a masterreport that repeats SolutionIDs (the primary key), and sub reports (which holdall the totals/information based off a single SolutionID). I cannot useFilters, as the data being returned in the sub reports is complicated.

We have seen these articles as references, and have tried (to our knowledge)everything in them:

http://www.telerik.com/community/forums/reporting/telerik-reporting/i-need-to-know-when-to-pass-parameters-to-a-subreport.aspx

http://www.telerik.com/documents/TelerikReporting-LearningGuide.pdf

http://www.telerik.com/community/forums/reporting/telerik-reporting/how-do-i-pass-parameters-to-subreport-sproc.aspx

http://www.telerik.com/support/kb/reporting/designing-reports/using-data-source-with-parameters-in-telerik-reporting.aspx

http://www.telerik.com/community/forums/reporting/telerik-reporting/how-to-set-datasource-of-a-sub-report.aspx

http://www.telerik.com/community/forums/reporting/telerik-reporting/set-subreport-datasource-programmatically.aspx#421286

http://www.telerik.com/ClientsFiles/product.videos/28/

Asyou can see by the screenshot attached (Screenshot.png in root of zip file), we are close. We have used the following code 


    Public Sub New() 

        InitializeComponent() 

 

        'bind the master's datasource 

        Dim cmdMaster As New SqlCommand("SELECT * FROM Solutions WHERE CompanyID=@CompanyID", cn) 

        cmdMaster.Parameters.AddWithValue("@CompanyID", 10) 

        Dim daMaster As New SqlDataAdapter(cmdMaster) 

        Dim dt As New DataTable("Solutions") 

        daMaster.Fill(dt) 

 

        Me.DataSource = dt 

        Me.DataMember = "Solutions" 

    End Sub 

 

    Private Sub SolutionDetails_NeedDataSource(ByVal sender As Object, ByVal e As System.EventArgs) Handles SolutionDetails.NeedDataSource 

        Dim item As Telerik.Reporting.Processing.ReportItemBase = TryCast(sender, Telerik.Reporting.Processing.ReportItemBase) 

        Dim dataRow As DataRowView = DirectCast(item.DataItem, DataRowView) 

        Dim adapter As New SqlDataAdapter("SELECT * FROM Solutions WHERE ID=@SolutionID", cn) 

        adapter.SelectCommand.Parameters.AddWithValue("@SolutionID", dataRow("ID")) 

 

        SolutionDetails.ReportSource.DataSource = adapter 

 

        Test_SolutionDetail1.Debug = dataRow("ID") 

        'Me.DataSource = adapter 

    End Sub 


 

Again, we need to have the sub report on each SolutionID, and we need to be able toquery data based off that SolutionID in the sub report.

We sincerely appreciate any help in advance, and cannot stress the tight deadline we are working with enough.  If you can help, we are more than happy to compensate you for your time!


Cheers!

Justin Brouwer
Top achievements
Rank 1
 answered on 15 Feb 2010
2 answers
207 views
when designing in my  own report class library,  sample.dll  so it can be used in my webapp,

the Integer Parameter  needs to be (Int64) or else I would get cast error.

           Int64 territoryId = (Int64)this.ReportParameters["TerritoryId"].Value; 
 

When the setting is Int64, i can click Preview and report comes up via the class library.  If it's set to int,

An error has occured while processing Chart 'chart1':
Specified cast is not valid.





But when I add this reference to my webapp to use the ReportViewer,
it doesn't like Int64 and gives the cast error, I debug in VS and see it's this line, so  I change it to  int, it works.
int territoryId = (int)this.ReportParameters["TerritoryId"].Value; 




I don't think this is what supposed to happen?
They are both .Net 3.5, the class and webapp are even in the same solution.
I'm using  Telerik Reporting Q3 2009  v. 3.2.9.1211  Trial

Khanh Nguyen
Top achievements
Rank 1
 answered on 13 Feb 2010
4 answers
185 views
I have datacolumn(LeadDate)  that is returned from SQL,
if the format is DateTime,  i get the following error:

An error has occured while processing Report '':
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

When applying the column to the xaxis of a chart.

Example of data with type of datetime from SQL:
LeadDate            DayActuals 
2010-02-01 00:00:00 27 
2010-02-02 00:00:00 48 
2010-02-03 00:00:00 23 
2010-02-04 00:00:00 56 
2010-02-05 00:00:00 31 
2010-02-06 00:00:00 19 
2010-02-07 00:00:00 24 
2010-02-08 00:00:00 27 
2010-02-09 00:00:00 62 
2010-02-10 00:00:00 6 

When the column is CONVERT(VARCHAR(8),LeadDate,1) as LeadDate , like below, there's no error.
But the Column is no longer DateFormat  and I'm not able to format the LeadDate column on the chart.
LeadDate    DayActuals 
02/01/10    27 
02/02/10    48 
02/03/10    23 
02/04/10    56 
02/05/10    31 
02/06/10    19 
02/07/10    24 
02/08/10    27 
02/09/10    62 
02/10/10    7 


I want to return the column as DateTime format so I can format the data on the xaxis using
using this technique: http://www.telerik.com/community/forums/reporting/telerik-reporting/how-to-format-x-axis-value-on-chart.aspx


Khanh Nguyen
Top achievements
Rank 1
 answered on 13 Feb 2010
1 answer
117 views
Telerik team,
I programmatically generate a report page, in which there is 3 charts and 2 tables.
When browser render this page, the first page only display the header section, the detail and footer section always go to the second page.  I would like  the the detail section to be displayed inside the first page too.
I searched the forum and found the problem may be solved by the article:
http://www.telerik.com/support/kb/reporting/general/problem-telerik-reporting-renders-blank-pages.aspx

I try all the solutions inside the article, except the one that remove the header section, none can solve my problem.

My problem is :
    can I split the report page in multiple page programmatically so that each page will have charts or spreadsheets be displayed

or does telerik report provide multiple detail sections to solve my page render problem.

if so, can you provide some example ?

Thanks in advance!

Qixiong
Peter
Telerik team
 answered on 12 Feb 2010
1 answer
502 views
Hi there,

I am currently learning to use Telerik reporting, and am stuck on something that should be simple, but I just can't figure it out !!

I have added a table to the designer view of my report.

In the "MyReport_NeedDataSource" method I simply want to add data to this table.

I don't want to bind the table to an SQL data source, I simply want to add the values programatically, row by row.

The table is already five columns wide, so I would like something like:

        table1.rows.add(new tablerow("value1", "value2", "value3", "value4", "value5");

        or even something like:

        table1.rows[0].cells[0] = "value1";
        table1.rows[0].cells[1] = "value2";
        table1.rows[0].cells[2] = "value3";
        table1.rows[0].cells[3] = "value4";
        table1.rows[0].cells[4] = "value5";

I'm sure there must be a way to do something like this. Please advise when able.

Kind regards, Ben.
Steve
Telerik team
 answered on 12 Feb 2010
1 answer
91 views
Hi all. We're developing a WPF project with Telerik Rad Controls for WPF and Telerik Open Access for our ORM. Now, we're moving to the reporting phase, and we want to use Telerik Reporting as well, but there are a couple of questions that I need to ask before we can decide to use it over Reporting Services:

  1. Does your ReportViewer support both local and remote processing modes? We need to be able to handle reports both locally and from a reporting server.
  2. Do you have an auto refresh feature for the report, like th one ein Reporting Services?

Thanks a lot.
Steve
Telerik team
 answered on 12 Feb 2010
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?