Jump to content

jmurray

Members
  • Posts

    401
  • Joined

  • Last visited

 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 jmurray

  1. The rendering is not done using a multi-pass process, so the filler has no idea what's coming next. The filler only ever knows about the total number of records in a set once it gets to the end of the set. This is why you can't put group totals into a header section unless you calculate them within a subreport (subreports are always rendered before their parent report). So there is your solution: precalculate everything by putting a subreport into the header section and store the returned values in variables until it's time to use them. Now remember that calculating the number of pages for each invoice is your problem. You will know how many records there are and you you should know how many records can be displayed on a single page. Go do the math. The downside is you have to run an additional query to get the totals, but there's no other way around it. . Post edited by: jmurray, at: 2007/02/23 03:47
  2. Design a subreport that has no headers or footers, just the detail section. It should produce a continuous list of rows (line items) for all invoices. Place the subreport into the detail section of the main report and size it to fit between the headers and footers. The main report will need to pass the invoice number to the subreport. The subreport will need to pass back any totals (such as dollar value subtotals). The main report should be grouped according to how you want to total things. If you group on invoice number then you would (for example) set up the group footer to display the returned subtotal, apply any taxes and discounts, and display the total for the invoice.
  3. Make sure you have no other static objects on the line (eg rectangle, line, static text box) as these will force the row to remain visible even if the text fields are removed.
  4. You can't at this point in development. The only external objects that can be embedded at the moment are images (eg. bmp, jpg, gif, etc)
  5. Further issues with scriptlet editing reported on the iReport forum: http://www.jasperforge.org/index.php?option=com_joomlaboard&Itemid=215&func=view&catid=9&id=21377#21377
  6. You need to use the exclamation mark to force inline insertion of a statement rather than a string. Say CLAUSE contains the text where id='200BA' select * from atable $P{CLAUSE}; would then result in the database engine seeing this: select * from atable "where id='200BA'"; Clearly wrong. But if you use the exclamation mark like this: select * from atable $P!{CLAUSE}; then the database engine will see this: select * from atable where id='200BA'; which is much more betterer. Post edited by: jmurray, at: 2007/02/14 02:39
  7. Unable to test this, but it should be something like: new java.lang.Boolean($F{sales_document_headertext1}.length() > 0 ? TRUE : FALSE) Of course you could deal in other data types, such as String: new java.lang.String($F{sales_document_headertext1}.length() > 0 ? "TRUE" : "FALSE") or numerics: new java.lang.Integer($F{sales_document_headertext1}.length() > 0 ? 1 : 0) or whatever you please. Have fun.
  8. http://www.jasperforge.org/index.php?option=com_docman&task=doc_download&gid=120&Itemid=248
  9. The only way to achieve what you want is to run two monitors side by side with iReport on one monitor and the rest of your desktop on the other.
  10. The only way to get anywhere near a solution for your problem is to use sub-reports.
  11. Please be aware that nothing is 'urgent' on the Internet.
  12. Duplicate post. Please refer to http://www.jasperforge.org/index.php?option=com_joomlaboard&Itemid=215&func=view&id=21334&catid=9 for follow up comentary
  13. Duplicate post. Please refer to http://www.jasperforge.org/index.php?option=com_joomlaboard&Itemid=215&func=view&id=21334&catid=9 for follow up comentary
  14. Duplicate post. Please refer to http://www.jasperforge.org/index.php?option=com_joomlaboard&Itemid=215&func=view&id=21334&catid=9 for follow up comentary
  15. This problem occurs when you leave the scriptlet editor open and close the source file in iReport. It may happen under other conditions. If you do have this problem then you need to close iReport, locate and delete the scriplet's .class file, and recompile everything after you open iReport again. Bug report has been placed on the forge. http://jasperforge.org/sf/go/artf1974?nav=1 Post edited by: jmurray, at: 2007/02/14 02:47
  16. iReport is a design time GUI front end for JasperReports. You would be better off calling the JasperReports engine instead, passing in the path to the source xml file and any parameters.
  17. You can find all you need to know about BigInteger from the API. Search Google for java.math.BigInteger You are looking for something like $P{someBigInteger}.longValue() Post edited by: jmurray, at: 2007/02/10 09:37
  18. This might sound really, really dumb but it should work (sorry, unable to test it at the moment). Build yourself a rectangle element that is the same height as the minimum band height that you need. Set its borders to "none" and its foreground and background colors to white. Make sure you "Send it to back" so that it doesn't get in the way. Now everything can float all it likes, but the band height should stay fixed. I can't understand why the band height would shrink if you have a Text Field "FixedRelativeToTop/Bottom" at the bottom of the band. I'll check it out on Monday.
  19. Yes, leave it "FixedRelativeToTop" Everything that is set to Float will float up, everything that is FixedRelativeToTop/Bottom will stay exactly where you placed it at design time.
  20. You have to be explicit with just about everything you do. Even a simple Default Value Expression needs to be cast correctly. For example, if you have a Patameter or Variable of (say) type java.lang.Integer then the expression for a default value of zero is not 0, it is new java.lang.Integer(0). The only exception is java.lang.String objects, where you can simply enter a literal string in double quotes. Often you will need to recast several times if you are doing calculations or formatting. The following example might help you to understand it better: http://www.jasperforge.org/index.php?option=com_mamblog&Itemid=109&task=show&action=view&id=239&Itemid=109 Check the section headed "Method 2. The Hard Way" as it breaks down a cast from Double to Long and back to Double for you.
  21. Your subreport will have a value in the $V{REPORT_COUNT} variable at fill time, usually the count of rows returned by the source query. In the case of an empty report it will be either: 0 if you set the report's "When no data" setting to "AllPagesNoData" or null if it is set to BlankPage or NoPages When you create the subreport control in you main report you wil need to pass the subreport's $V{REPORT_COUNT} variable's contents into your own variable (eg. $V{SUBREPORT_ROWCOUNT} ). This varable needs to be of type java.lang.Integer, have a default value expression of new java.lang.Integer(0), and have a calculation type value of "System". Its variable expression can be left blank. From there it's up to you as to how you use the variable, and how you trap and handle a value of null if necessary. Post edited by: jmurray, at: 2007/02/08 23:20
  22. Did you remember to copy tools.jar into your lib directory too. It's not distributed with iReports but is required if you want to start iReports because it contains all the basic java classes (like java.lang.String for example). tools.jar is distributed in the java SDK from Sun.
×
×
  • Create New...