Jump to content

ghudson_1

Members
  • Posts

    284
  • Joined

  • Last visited

  • Days Won

    3

 Content Type 

Forum

Downloads

Featured Visualizations

Knowledge Base

Documentation (PDF Downloads)

Blog

Documentation (Test Area)

Documentation

Dr. Jaspersoft Webinar Series

Security Advisories

Events

Profiles

Everything posted by ghudson_1

  1. And are you referring to interactivity filtering/sorting, or input controls? If the former, there is a save button that can be selected if they have permission.
  2. what is evaluation time of the variable? http://community.jaspersoft.com/wiki/variables#Evaluation_Time
  3. In early 6.x 'hyperlink when expression' doesn't work when hyperlinkType="ReportExecution", but in 6.2.1 this is supposed to be fixed. What version are you using, and what is the hyperlinkType? Also note, the stacking mentioned by kkriplani is fine but can break sort/filter activity of JIVE.
  4. From the 6.x samples you can add /organizations/organization_1/adhoc/topics/Cascading_multi_select_topic to a dashboard, and you'll see that the cascading behavior works. You can add a second report which relies on the same parameters and the cascading nature still works. But in certain data conditions, certain datasource relationships, the cascading nature will break and parameter values aren't set propertly. In the database for the sample above, the relationship of states to countries is 1 to 1. But if you alter the data to mexico and canada share a state name, then things break. A defect has been filed.
  5. Yes, mongo queries in reports can be parameterized (and set via input controls, etc) , for example: http://community.jaspersoft.com/wiki/how-query-mongo-isodate-data-parameter You second question seems to be missing a word or two, so it isn't clear what you are asking, but REST webservices can be used to read and set input control values for a report execution.
  6. if using some custom auth, not internal, you could check the authenticationProcessingFilterEntryPoint bean
  7. Are you using normal 'internal' authentication and the normal login page? If so, then to handle timeout redirect you would probably have to make some customization involving flows. You can familiarize yourself with Spring Webflow API, and the "Adding a Custom JSP Page in a Spring Web Flow" section of the Ultimate Guide might give you an overview of how Spring Webflow impacts JRS. Upon session timeout/invalidation, a user is redirected to the home flow, but you could recreate flows, perhaps add custom code to "handle" a different redirection during session timeout.
  8. The v2/reports service includes methods for reading and setting input controls. Is that what you need? Syntax from the webservices doc: http://<host>:<port>/jasperserver[-pro]/rest_v2/reports/path/to/report/inputControls/
  9. i'm curious if a different error server-side also also occurring. Anything juicy in jasperserver.log?
  10. Table column footer cells actually end up rendering as a page footer band in a subreport generated for the table. Therefore if you want to exclude the column footer cells you'll need to define a property for pageFooter. <property name="net.sf.jasperreports.export.xlsx.exclude.origin.band.1" value="pageFooter"/> A defect or feature request for improvement in the product for this issue has already been filed against JR Library 6.2.x
  11. for another user, the solution was Window > Show View > Other > General > Outline
  12. Issue DescriptionThere are sample databases, domains, reports, topics, domain security files, ad hoc views, etc that can be added to a JRS instance during installation. These are added by default when you do not use the "minimal" flag with js-install.bat/sh. They can also be added to a pre-existing instance. These are helpful for reproducing issues that are easily replicated by the support team. They are also a helpful educational tool for perusing complex resources for the sake of learning, comparison and contrast, etc, like cascading input controls, domain security files, crosstab aggregate calculated fields (only with Postgres repo), charts, etc. When using repository databases other than Postgres you can get the underlying sample data, sources and domains, but you won't have the /public/samples directory which contains richer samples of dashboards, complex ad hoc views and charts, which accompanies a Postgres-based repository. However you can request an export from support of this directory. ResolutionYou can add the samples by running scripts which create and populate two database tables, then import resources into the repository. Via command-line, from the buildomatic directory of your JRS install media, ensure your default_master.properties is still pointing to the environment expected (refer to Install Guide). Then run the following six commands in order: js-ant create-sugarcrm-dbjs-ant create-foodmart-dbjs-ant load-sugarcrm-dbjs-ant load-foodmart-dbjs-ant update-foodmart-dbjs-ant import-sample-data-proRestart the webapp. For background see "Installing the WAR File Manually" in the Install Guide Note:If you are not using Postgres are your repository database, but want to see the sample dashboards and complex ad hoc views you should consider downloading and installing the bundled installer which will create a tomcat instance and postgres database instance for you. This will allow you to see the samples in a test that is quick and easy to install. Ref. Case 00022402
  13. Issue Description It is possible to use an external REST service returning JSON data as a direct report datasource. Resolution Via the TIBCO JasperReports® API, you can make use of HTTP sources, which can return JSON. See the following json data source sample doc: http://jasperreports.sourceforge.net/sample.reference/jsondatasource/index.html#jsondatasource As you'll see in the above sample, you can specify jrxml properties which define where the source should come from. As the notes mention, you can use parameters or properties to specify the source. Following is an example of a remote http source: "dude" The attached metallica.zip contains a JasperReports® Server JS-export containing a report and input controls which query the JSON-based apple Itunes search. Also The unsupported community project, "Web Service Data source", available as an extension here https://community.jaspersoft.com/project/web-service-data-source, provides more flexible REST/JSON Web Service interactions than the standard JSON data source described above which only offers GET. For flexibility and rich functionality that is supported, see the HTTP Data Adapter shipped described here http://jasperreports.sourceforge.net/sample.reference/httpdataadapter/index.html#httpdataadapter and here https://community.jaspersoft.com/documentation/tibco-jaspersoft-studio-user-guide/v750/connecting-web-service-using-json-data-adapter Ref. Case 00063016
  14. Issue DescriptionYou might need to identify all dependencies (Input Control, Report, Ad Hoc View or Domain) associated with a specific datasource, like "Foodmart Data Source JNDI." ResolutionYou'll need to perform SQL queries via a database client against the repository tables. Datasources are defined in a few different tables, like jijndijdbcdatasource, jijdbcdatasource, jibeandatasource, etc - but their unique ID is also within the JIResource table. Every resource has a record in JIResource, and this is where you'll find descriptions, labels, parent_folder, children_folders, etc. So in the case of a JNDI source, you look it up in JIResource by name instead of having to use the jijndijdbcdatasource table. Reports and Ad Hoc Views are in their own tables, which each have a reportDataSource field, which can be paired with JIResource.id. If you know the datasource name, for example FoodMartDataSourceJNDI (find name in properties) or label, get its "id" by look up in JIResource using the clause where JIResource.name=FoodMartDataSourceJNDI For reports, ft it's JIResource.id = 500 you could do the following to find report names using the datasource: select jireportunit.id, jireportunit.reportDataSource, jiresource.name from jireportunit join jiresource on jireportunit.id = jiresource.id where jireportunit.reportDataSource = 500[/code]For Ad Hoc Views, use select jiadhocdataview.id, jiadhocdataview.reportDataSource, jiresource.name from jiadhocdataview join jiresource on jiadhocdataview.id = jiresource.id where jiadhocdataview.reportDataSource = 500[/code]For domains, each jidomaindatasource record pairs up with a jidomaindatasourcedsref record which contains ref_id which points back to JIResource.id: select * from jidomaindatasource, jidomaindatasourcedsref where njidomaindatasource.id = jidomaindatasourcedsref.slds_id and jidomaindatasourcedsref.ref_id = 500[/code]Input Controls within a report take their datasource from the report, so there isn't anything to lookup regarding a datasource for them. But standalone or shared (aka global) Input Controls can also be found via the "id", like: select jiinputcontrol.id as id, jiquery.id as queryid, jiresource.name, jiresource.label, jiresourcefolder.URI as URI FROM jiquery JOIN jiinputcontrol ON jiquery.id = jiinputcontrol.list_query join jiresource ON jiinputcontrol.id = jiresource.id join jiresourcefolder ON jiresourcefolder.id = jiresource.parent_folder where jiquery.datasource=500[/code]Query resources can also be found via the "id", like: SELECT jiquery.id AS queryid, jiresource.name, jiresource.label, jiresourcefolder.URI AS URIFROM jiqueryJOIN jiresourceON jiquery.id = jiresource.id JOIN jiresourcefolderON jiresourcefolder.id = jiresource.parent_folderWHERE jiquery.datasource=500[/code]Ad Hoc Views dependent on DomainsThis was tested on 7.9.0: SELECT r.name AS Domain_Name, rf.name AS Folder_Name, r2.name AS Adhoc_View_Name FROM jiresource r, jiadhocdataview adv, jiresource r2, jiresourcefolder rf WHERE adv.reportdatasource = r.id AND r2.id = adv.id AND r.resourcetype ='com.jaspersoft.commons.semantic.datasource.SemanticLayerDataSource' AND r2.parent_folder = rf.idORDER BY r.name, rf.name, r2.name;[/code]Ref. Case 00064043
  15. Issue DescriptionHow to identify folders that contain no resources via sql ResolutionThe following postgres-friendly query is an example that returns the URI of folders within a subdirectory of a hypothetical organization named ORAMM that contain no content (no resources like reports, files, incput controls, datasources, etc), though they could contain other folders: select jiresourcefolder.id as emptyFolderID, jiresourcefolder.uri, jiresource.parent_folder from jiresource right outer join jiresourcefolder on jiresource.parent_folder = jiresourcefolder.id where jiresource.parent_folder ISNULL and jiresourcefolder.uri like '/organizations/ORAMM/Users/%' Ref. Case 00061308
  16. Issue DescriptionIt is possible to dynamically limit the number of rows in a Table Component? ResolutionSomething like a printWhenExpression or break element could be complicated, so the easiest approach is to limit the number records being fetched from the resultsSet via the REPORT_MAX_COUNT parameter: This can be used for a maindataset, but also can be passed to subreports and tables as a parameter (and you can populate this via a variable from the main report or inbound param as well): <datasetRun subDataset="Table Dataset 1" uuid="d490fc27-f7c7-4cf5-a8fc-99945ead94a4"> <datasetParameter name="REPORT_MAX_COUNT"> <datasetParameterExpression><![CDATA[new Integer(5)]]></datasetParameterExpression> </datasetParameter> Ref. Case 00049521
  17. ghudson_1

    3-D Bubble html5 chart

    Issue DescriptionA previous wiki describes effects to render color and fill opacity in html5 bubble charts: http://community.jaspersoft.com/wiki/sample-report-showing-bubble-color-setting-html5-charts You can also populate a fillcolor option (see http://api.highcharts.com/highcharts#series<bubble>.marker.fillColor), supplying radial gradients and stops for a 3d effect, like: http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/bubble-3d/ ResolutionUsing JasperReports Server v6.1.0, use the same jrxml from the sample above, but add a bucketProperty and a contributorProperty for fill color like following: <bucketProperty name="fillColor"> <![CDATA["(function(){return { radialGradient: { cx: 0.4, cy: 0.3, r: 0.7 }, stops: [ [0, 'rgba(255,255,255,0.5)'], [1, 'rgba(51,102,255,0.5)'] ] }})()"]]> </bucketProperty> ... <hc:contributorProperty name="marker.fillColor" valueType="Bucket" value="series.fillColor"/> The function returns the json data representing the radialGradient option and stops options. Remember to ensure com.jaspersoft.jasperreports.highcharts.function.properties.allowed=true in jasperreports.properties See attached example. Ref. Case 00060688 3d_bubble.jrxml
  18. Issue DescriptionA customer was manipulating a measure in their Ad Hoc View, selecting "Change Summary Calculation" and choosing "Average". This injects a SUM function into the SQL query being generated at runtime, and this query resulted in an error returned from the database: java.sql.SQLDataException: [TIBCO][sqlServer JDBC Driver][sqlServer] Arithmetic overflow error converting expression to data type int. [/code] According to Microsoft Sql Server, this error means that the sum of this field (the measure field) was giant, larger than an integer's maxiumum possible value. The customer researched the error and found that Microsofts recommends using CAST sql functions to get around the problem. ResolutionA new customer function, added to their WEB-INFapplicationContext-semanticLayer.xml file, is required to create the desired cast/convert effect. Create the function and restart the appserver, then use this function in a calculated field for the problematic field which needs the CAST. Once the calculated field is dragged into the Ad Hoc view display the sql snippet containing the CAST will be inserted into the complete sql statement. In WEB-INFapplicationContext-semanticLayer.xml, we have generators that are specific to a database type which are defined which help render the appropriate sql. The Postgres - specific bean, postgreSQLGenerator, contains a few example functions that make use of cast(). An example using 'cast' also would be: <entry key="custom_IntToReal"> <value>"cast(" + sqlArgs[0] + " as real)" </value> </entry>[/code]Your new calculatedField would make use of this custom function with syntax like: custom_IntToReal(YourTable1.IntegerFieldX) Ref. Case 00059179
  19. Issue DescriptionCustomer wants to disable, hide or block the lo gin page when the request is coming from outside their intranet. They only want the login page to be available when the JasperReports Server accessed from inside their corporate network domains. ResolutionYour network administrators and appserver admins should address this problem like they'd address any other web-based application. There are many ways to tackle this type of problem, via firewall rules or reverse proxy servers, etc. But one way to address this at an appserver level, if using Tomcat7, is to configure a org.apache.catalina.filters.RemoteAddrFilter to only allow IP address that match your intranet's IP addrs. See https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Address_Filter Basically you'll modify the webappsjasperserver-proWEB-INFweb.xml of JasperReports Server to add a new filter. The filter will contain a mapping with a url-pattern of your login URL. It will map to a RemoteAddrFilter filter which defines the IP addresses that you make comparisons to for deciding 'deny' or 'allow'. You can use regular expressions for flexibility. Here is an simple example for a different app from stackoverflow.com: <filter> <filter-name>Remote Address Filter</filter-name> <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class> <init-param> <param-name>allow</param-name> <!-- or deny --> <param-value>10\.10\.1[12]\..*</param-value> <!-- regexp for your ip addresses --> </init-param> </filter> <filter-mapping> <filter-name>Remote Address Filter</filter-name> <url-pattern>*/admin</url-pattern> <!-- the url of your admin page or login page, etc --> </filter-mapping>
  20. Issue DescriptionA customer encountered an error while trying to a database function in a domain's new calculated field or new derived table. The function was based on syntax that is valid for their database. The error in the jasperserver.log was: [toc]TEIID30068 The function 'unix_timestamp(CaseBase.dateCreated)' is an unknown form. Check that the function name and number of arguments is correct.[/code]ResolutionThe customer was using a domain based on a virtual datasource. The error states that TEIID isn't familiar with the function specified. The customer needed to use TEIID's syntax & functions since you are using a virtual datasource which are based on the TEEID library. They were using MySQL syntax like: unix_timestamp(CaseBase.dateCreated) Based on TEEID documentation they needed to syntax like: FROM_UNIXTIME (CaseBase.dateCreated) The following documentation should be helpful in cases like this: https://docs.jboss.org/author/display/TEIID/Scalar+Functionshttps://docs.jboss.org/author/display/TEIID/String+FunctionsRef. Case 00057441
  21. Issue DescriptionDomain designer can truncate lengthy field names. When viewing the query this can cause confusion, this could also be problematic if the truncated name matched the name of a calculated field that a user created ResolutionOracle has 30-char limits on fieldnames passed in sql queries, hence the reason why truncation occurs in oracle. The workarounds are to rename calculated fields, or if the problem wasn't related to calculated fields, you might need to the tweak schema by manually editing the xml and modifying the resourceID is fields, and jointree ids. Ref. Case 00059525
  22. QuestionIs there a way to go directly to search results in Jasper Server via url, much like how we can get to a specific report via url? AnswerYou can link to a search result, by trying flow.html?_flowId=searchFlow&folderUri= but you'll need to ensure you pass some filters or else nothing will return. For example, like: http://localhost:8080/jasperserver-pro/flow.html?_flowId=searchFlow&folderUri=/public/Samples/Reports&filterId=resourceTypeFilter&filterOption=resourceTypeFilter-all Doing the above without a filterId or filterOption won't return any results. filterId could be several values like scheduleFilter, resourceTypeFilter, etc. A few filterOptions to try are: resourceTypeFilter-all (will return everything) resourceTypeFilter-reports resourceTypeFilter-domains resourceTypeFilter-dashboards resourceTypeFilter-adhocView resourceTypeFilter-reportOutput resourceTypeFilter-view resourceTypeFilter-dataSourcesAlso you could return a search-style view or a library-style view based upon a search-string: http://localhost:8080/jasperserver-pro/flow.html?_flowId=searchFlow&mode=library&searchText=samples OR http://localhost:8080/jasperserver-pro/flow.html?_flowId=searchFlow&mode=search&searchText=samples Ref. Case 00058460
  23. Recently a pro customer encountered this problem. It was resolved by deleting their tomcat work dir for jasperserver-pro webapp (aka $CATALINA_HOME/work/Catalina/localhost/jasperserver-pro"). The theory is that upon upgrade the work directory was not properly cleared by deployment scripts, so the work dir retained some old JSPs (they were using version 5.5 just prior) and these older classes were compiled with different versions of classes than 6.x would afford.
×
×
  • Create New...