Telerik Forums
Reporting Forum
3 answers
300 views

Hi,

    I am pretty new to Telerik Reporting and I am using C# WPF.  I have set a datatable to the DataSource of Report. The datatable is generated correctly with all rows from specified DB. But it is not displayed in ReportViewer.  Below is my code snippet. Please advise.

 

            Telerik.Reporting.Report myReport = new Telerik.Reporting.Report();
            string selectCommand = @"SELECT * FROM Angle";
            string connectionString = @"Data Source=IndianSections.db3";

            using (var connection = new SQLiteConnection(connectionString))
            {
                using(var command = new SQLiteCommand(connection))
                {
                    connection.Open();
                    command.CommandText = selectCommand;
                    using (var reader = command.ExecuteReader())
                    {                        
                        SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(selectCommand, connectionString);
                        DataTable dataTable = new DataTable();
                        dataTable.Load(reader);
                        //dataAdapter.Fill(dataTable);
                        
                        var objectDataSource = new Telerik.Reporting.ObjectDataSource();
                        objectDataSource.DataSource = dataTable;

                        myReport.DataSource = objectDataSource;
                        
                        var reportSource = new Telerik.Reporting.InstanceReportSource();
                        reportSource.ReportDocument = myReport;

                        this.reportViewer.ReportSource = (reportSource as ReportSource);
                        this.reportViewer.RefreshReport();
                    }    
                   // connection.Close();
                }
            }

Todor
Telerik team
 answered on 16 Oct 2018
1 answer
1.6K+ views

Hello All, 

  I have my table of data, but above my table, I want to add two rows that will contain the report title, as well as the date rendered information. This information extends beyond what would fit into just one cell, so I'd like to merge the adjacent cells so everything is visible. I don't want to use a header for this information.

Thanks for your help.

Travis

 

Travis
Top achievements
Rank 1
 answered on 15 Oct 2018
1 answer
227 views

Hi,

I have been trying to reduce the checkbox width (Please refer to the attached image) by setting the size property.

this.checkBox1.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(2D), Telerik.Reporting.Drawing.Unit.Inch(0.079999998211860657D));

The height attribute works but when I try to change the width, the text part of the checkbox is getting cut off. It's very frustrating as I have spent a lot of time on it without getting the desired result.

Can you please assist me this issue.

Thanks,

Ashith.

 

 

Todor
Telerik team
 answered on 15 Oct 2018
1 answer
235 views

Hi. I try to use this example for create dynamically generated report. I'm want grouping output as described here.Only one change in code from documentation it change

group1.Groupings.Add(new Telerik.Reporting.Grouping("=Fields.ProductID"));

to

group1.Groupings.Add(new Telerik.Reporting.Grouping("=Fields.ProductID"));

 

As I understood this allow me output row with col1=1 in separate group with footer and header,  col1=2 in separate group with footer and header, and two col1=4 with separate group. But it not work as expected. I see one header, one footer and all data between this header and footer.
What I do wrong?
Thank you in advance.

Slava
Top achievements
Rank 1
 answered on 13 Oct 2018
1 answer
236 views
I have the Color and BackgroundColor bound in conditional formatting. When the foreground is supposed to print white it just comes out black. It only happens on certain printers, however I can create a notepad document with the same colors and it prints correctly. Any advise on how to fix the issue?
Todor
Telerik team
 answered on 12 Oct 2018
2 answers
1.0K+ views
Hi,

I've recently migrated from Q2 2011 to Q1 2013 and I can't seem to get the value of the parameter in code behind. I use this value to get the data in the ItemDataBinding event.
And I want to get the selected value in the ItemDataBinding event, but it is always null or it keeps the value if I set it 
manually.
this
.ReportParameters["GroupBy"].Value.ToString()
If I add a textbox in the editor with its value set to :Parameters.GroupBy.Value then the selected field is bound correctly.
Thanks for you help.

Edit: In fact I just realised that the way I'm getting the parameters value doesn't work at all and isn't specific to a report parameter with available values. So I've written my question again to be less specific.
Omar
Top achievements
Rank 1
 answered on 11 Oct 2018
3 answers
475 views

I have a report where someone could pass in a parameter to show "Detail" for the record.  The "detail" is tied to a second  within the Telerik Report.  I am unsure of how to get it to fire and show as it should.  I have added the primary  and displays the records in the group header.  

Attached is an image of what my report looks like SQLDatasource1 is the primary  and uses parameters passed in to display.  If input parameter DetailFlag = true then I want to show the Detail Record which is tied to SQLDataSource2.  

Tried the following in the code-behind but not displaying.

Private Sub detail_ItemDataBound(sender As Object, e As EventArgs) Handles detail.ItemDataBound
    Dim section As Processing.ReportSection = TryCast(sender, Processing.ReportSection)
    If section.Report.Parameters("DetailFlag").Value = "True" Then
        Table1.Visible = True
    Else
        Table1.Visible = False
    End If
    section.Style.BackgroundColor = groupHeaderSection.Style.BackgroundColor
End Sub
Private Sub pageHeaderSection1_ItemDataBound(sender As Object, e As EventArgs) Handles pageHeaderSection1.ItemDataBound
    Dim section As Telerik.Reporting.Processing.PageSection = TryCast(sender, Processing.PageSection)
    Dim txtAsOf As Processing.TextBox = DirectCast(Processing.ElementTreeHelper.GetChildByName(section, "txtAsOf"), Processing.TextBox)
    Dim txtReportParam As Processing.TextBox = DirectCast(Processing.ElementTreeHelper.GetChildByName(section, "txtReportParam"), Processing.TextBox)
    txtAsOf.Value = "AS OF " & Today.ToString("MM/dd/yyyy")
    txtReportParam.Value = "FOR " & section.Report.Parameters("Area").Value.ToString & " - " & section.Report.Parameters("Status").Value.ToString
End Sub
Ivan Hristov
Telerik team
 answered on 11 Oct 2018
4 answers
421 views
Does Telerik Reporting for ASP.Net offer a built-in way to control access to reports based on either the user name or user role (using ASP.Net membership)? Is there a best practice for managing data access? I'm not sure that SQL Server security will be of much use, since the connection will typically be made with a service account for ASP.Net, rather than the individual user's account.
Silviya
Telerik team
 answered on 11 Oct 2018
1 answer
239 views

One of the reports on my company's product, which uses Telerik Reporting R3 2016, is intermittently generating an error about resolving the dsGiftCard object data source that it uses. Sometimes, the report viewer says that it is unable to create a report instance, while other times it says that it is unable to get the parameters. The error only occurs on our deployments and not on our local builds. Our local builds load the report much faster. Usually the report loads fine, but this error generates on such a random basis my team is having trouble tracking it and finding out the cause. We're hoping someone here at Telerik can help us resolve this issue.

exceptionMessage: "An error has occurred while resolving 'dsGiftCard' data source: An error occurred while invoking data retrieval method."
exceptionType: "Telerik.Reporting.Processing.Data.ObjectDataSourceException"
message: "An error has occurred."
stackTrace: " at Telerik.Reporting.Processing.Data.ObjectDataSourceInstanceResolver.TryResolveAsMethodInvocationOnTarget(Type type, Func`1 resolveTarget, String dataMember, ObjectDataSourceParameterCollection parameters, Object& result) ↵ at Telerik.Reporting.Processing.Data.ObjectDataSourceInstanceResolver.TryResolveAsMethodInvocation(Object dataSource, String dataMember, ObjectDataSourceParameterCollection parameters, Object& instance) ↵ at Telerik.Reporting.Processing.Data.ObjectDataSourceInstanceResolver.ResolveDataSource(Object dataSource, String dataMember, Boolean evaluateParametersValues) ↵ at Telerik.Reporting.Processing.Data.ObjectDataProviderBase`1.ResolveDataSource() ↵ at Telerik.Reporting.Processing.Data.ObjectDataEnumerable.ResolveEnumerable() ↵ at Telerik.Reporting.Processing.Data.ObjectDataEnumerableBase.GetEnumerator() ↵ at Telerik.Reporting.Processing.Data.SeedDataAdapter.GroupData(IEnumerable`1 rawData) ↵ at Telerik.Reporting.Processing.Data.SeedDataAdapter.Execute(IEnumerable`1 data) ↵ at Telerik.Reporting.Processing.Data.ResultSetAdapter.Execute(IEnumerable`1 data) ↵ at Telerik.Reporting.Processing.Data.MultidimentionalDataProvider.Execute(MultidimensionalQuery query) ↵ at Telerik.Reporting.Processing.ReportParametersManager`1.CalculateParameterProperties(P parameter, IReportParameter parameterDef, IDictionary`2 parameterValues) ↵ at Telerik.Reporting.Processing.ReportParametersManager`1.Calculate(P parameter, IDictionary`2 parameterValues) ↵ at Telerik.Reporting.Processing.ReportParametersManager`1.CalculateChildren(P parameter, IDictionary`2 parameterValues) ↵ at Telerik.Reporting.Processing.ReportParametersManager`1.CalculateParameters(IDictionary`2 parameterValues) ↵ at Telerik.Reporting.Processing.DocumentParametersManager`1.CalculateParameters(IDictionary`2 values, Boolean ensureCalculated) ↵ at Telerik.Reporting.Processing.DocumentParametersManager`1.GetMergedParameters(IDictionary`2 values) ↵ at Telerik.Reporting.Services.WebApi.ReportsControllerBase.GetParameters(String clientID, ClientReportSource reportSource) ↵ at lambda_method(Closure , Object , Object[] ) ↵ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters) ↵ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken) ↵--- End of stack trace from previous location where exception was thrown --- ↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) ↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ↵ at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext() ↵--- End of stack trace from previous location where exception was thrown --- ↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) ↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ↵ at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext() ↵--- End of stack trace from previous location where exception was thrown --- ↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) ↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ↵ at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()"

 

Here is the C# method that the data source gets its data from:

public static DataTable RunReport(string sessionId, string paramsJson, int tableIndex, int? savedDataId, int reportId)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            DataSet ds = null;
            DataSet dsCache = null;
 
            try
            {
                var appSettings = new AppSettings();
                var expires = appSettings.Get("Cache.ExpirationInSeconds", 2);
                var urn = UrnId.CreateWithParts(sessionId, reportId.ToString(), paramsJson.GetHashCode().ToString());
                dsCache = _memCache.Get<DataSet>(urn);
                if (dsCache != null)
                {
                    _memCache.Replace(urn, dsCache, TimeSpan.FromSeconds(expires));
                    Log.Debug("Data found in cache");
                    return dsCache.Tables[tableIndex];
                }
                  
 
 
                ICacheClient cacheClient = null;
                if (appSettings.Get("Cache.Provider", "memory").ToLower() == "memory")
                    cacheClient = new MemoryCacheClient();
                else
                    cacheClient = AwsDynamoDbLogic.GetGenericDynamoDbCacheClient(AwsDynamoDbLogic.ResolveAwsDynamoDbSettings(new AppSettings()));
                var cdp = ConnectionDataProviderFactory.TryResolve(sessionId, cacheClient, appSettings);
 
                var dialectProvider = new MeevoSqlServerOrmLiteDialectProvider(() => cdp);
                var fac = new ReportDbConnectionFactory(cdp, dialectProvider);
 
                var repo = new ReportRepository(fac);
                var logic = new ReportLogic(repo);
 
                ds = AsyncContext.Run(() => logic.RunReportAsync(reportId, CancellationToken.None, paramsJson)) as DataSet;
 
                //Remove by pattern will enumerate through entire dictionary and remove all entries that have expired or macth the regex
                //lINE 331
                _memCache.RemoveByPattern("{0}*".Fmt(UrnId.CreateWithParts(sessionId)));
 
 
 
                _memCache.Add(urn, ds, TimeSpan.FromSeconds(expires));
 
                Log.Debug("Count of data sets is: " + ds?.Tables?.Count);
 
                if (ds == null)
                    Log.Debug("Data set is null");
                      
                return ds.Tables[tableIndex];
            }
            catch (Exception ex)
            {
                Log.Error("Source:\n" + ex.Source
                    + "\n\nTarget Site:" + ex.TargetSite
                    + "\n\nStack trace:\n" + ex.StackTrace
                    + "\nReport ID: " + reportId.ToString()
                    + "\nJson parameters: " + paramsJson
                    + "\nTable index: " + tableIndex
                    + "\n\nTable count: " + ds?.Tables?.Count
                    + "\n\nCached table count: " + dsCache?.Tables?.Count);
                throw;
            }
            finally
            {
                sw.Stop();
                Log.Debug("Execution Time: " + sw.ElapsedMilliseconds.ToString());
            }
        }

 

 

Anil
Top achievements
Rank 1
 answered on 10 Oct 2018
1 answer
115 views

Hi,

 

One of our customer has an issue to selected item from report parameters dropdown.

 

When dropdown is opened first time, all items shows correctly. After item selection, the first item disappear!?

 

This happens only IE 11 (version 11.2244.14393.0), no problems with Firefox or Chrome

 

What could cause this behavior?

 

BR,

Auvo

 

 

 

 

Silviya
Telerik team
 answered on 09 Oct 2018
Top users last month
Edmond
Top achievements
Rank 1
Iron
fabrizio
Top achievements
Rank 2
Iron
Veteran
RobMarz
Top achievements
Rank 2
Iron
Fakhrul
Top achievements
Rank 1
Iron
Tejas
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?