CaptainCasa framework: DOF export not working - java

We have a DOF grid defined programmatically where the export doesn't work for some reason.
Clipboard export works fine, but CSV, XML and PDF show the right number of rows/columns but empty data inside.
I debugged far enough to get to
org.eclnt.jsfserver.util.ExpressionManagerV#getValueForExpressionString(javax.faces.context.FacesContext, java.lang.String)
For some reason it returns empty string for all values in the broken scenarios, and returns the proper values for the clipboard export.
The expressionString passed is the same both times. It seems that the dispatcher cannot be resolved properly in the broken scenarios.
The export functionality works find across the rest of the DOF grids in our project.

Very difficult to guess for the reason, based on the current information. All the exports are using method "List<List> exportToStringListWholeGrid()" (class FIXGRIDBinding, inner class Exporter), so this is both used by Clipboard export and by other exports as well. - Could you maybe debug inside this method once for the clipboard export and once for the csv export and then check if you recognize any difference?

Ok, so my issue was that i had an expression like this:
d.d_3.SomePageUI.dofGrid.puis['whatever'].value
this expression would resolve the value of column "whatever" in the grid.
We had extra logic in the getter of dofGrid (don't ask why...), this extra logic would only crash when using CSV, PDF or XML exports (my guess it because a new window is opened and context changes somehow ?!)
Now the bad thing is that i didn't get an error "exception happened in getter dofGrid"
I got an error "dofGrid is NULL" :/

Related

Dynamic report using jrxml

I am using iReport version 5.6.
Right now we're analyzing the requirement for a new project where the requirement is as follows.
We have a report which is designed in jrxml with almost 20 fields where user has to scroll to the right to get all values and hence tedious for the user when result size is too large.
Suggested requirement is as to configure the jrxml in such a way that user can select the column name for which the report should be generated.
Related image
We have done study on this and found the only possible solution may be to create a jrxml for each possible combination which seems to be not efficient for our project.
Could you please suggest is there any possible way to handle this situation?
Instead of using a seperate .jrxml file for each "view" you could duplicate the bands and use printWhen expressions to determine which band to display. Not a lot better than having separate .jrxml files but at least all the logic will be in the same file.
Another idea is to use parameters like showColA,showColB etc. Use those parameters to determine the column headers and values of those columns (this could get a little messy though)

generate PDF calling information from database in javaFX

Good day to all. I am currently building a program that covers the review of product warranty applications. I'm doing it in javaFX using Netbeans. The program has the following scenes:
a screen where the information of each guarantee request is entered. all the information is stored in a table in a database. The interaction between the program and the database is done, in effect, through JDBC.
a screen where you can see a table that shows all the requests that have been saved. if a row is selected, a button that carries the third scene all the data of the request that was selected is enabled.
a screen where all the data of the tests that are made to the selected guarantee application are entered. The results are also stored in another table in the database.
After the application is evaluated, a warranty review report must be generated. Currently this format is generated in pdf from excel. What I want to do is that from the data results of the tests stored in the database I can dynamically generate the pdf formats from the program in javaFX. Is there a plugin to write these documents automatically? I'm good at writing texts in LaTEX, so if there is a way to generate the latex format from the program and call the necessary information from the database, it would be perfect. Thanks in advance for the help. Any indication or idea is welcome.
It seems like you have two core requirements:
Fetch data from the database suitable for reporting
Generate the report(s) in PDF from JavaFX but can fall back to LaTEX
What you really need seems like a PDF library for Java. I can suggest iText and Docmosis as good options (please note I work for Docmosis) - both are commercial for commercial products so you would have to buy.
Assuming you are using one of these libraries, the process for each report is:
execute the query to fetch the appropriate data for the report
manipulate the data if required to make the reporting stage simple
generate the report
Using iText you would write the query, the manipulation code and then the code to layout the report including the data.
Using Docmosis you would write the query, possibly some manipulation code (Docmosis can also work directly with your ResultSet) and the code to execute the report. The layout is designed in the template (Word or Libre Office Writer).
When you mention writing "these documents automatically" I assume you mean creating the PDF file format, which iText and Docmosis can do. If you mean creating the report layout itself, then you always need to design/write something to make the report do what you require.
I hope that helps.
Thank you very much for your response Paul! I had found something related to the libraries you mentioned, and indeed something like what I'm looking for. I notice that you are more in the subject. then, you do not know bookstore, preferably free, that gives me the possibility of doing the following (pseudo code):
take the row from the database
Save the information of that row in the attributes of a created class.
create text1: "the guarantee with reference" + object.attribute1 + "was not approved in view of the physical revision test indicated that" + object.attribute2 + "
create text2: "..."
...
create the text n: "..."
take text 1 and place it in the header of the pdf document
Take text 2, put it in bold and place it in the subtitle
Generate a table and fill it with the content of text 3, 4 ...
compile all information as a pdf, (word file, xls or others if possible)
I am clear that with the libraries that you recommend you can easily make items from
1 to 8, but I do not know if it is possible to enter the texts within a template created, so that the library accommodates all the texts in the respective zones of the template file. I imagine that this can easily be done with Latex, since everything is written in plain text.
I found a library called Java LaTeX Report (JLR) that allows me to do what I want. This information may be useful to someone. Thank you again for your answer Paul, if you consider the libraries that you mention do the job more easily than JLR please let me know!

how do I invert the display order in item-view in DSpace?

I wanted to invert the page of the display order of "item-view" in dspace think this table page is harmful to the user. I wanted to make the downloadable files were shown above the table. Which parameters should I change?
Your question did not specify which version of DSpace you are running. I assume you are using XMLUI since you tagged the question with xslt. Here is a solution referencing the Mirage theme in DSpace 5.x. (If my assumptions are incorrect, please update your question.)
The following code is used to display an item.
These lines display the metadata.
https://github.com/DSpace/DSpace/blob/dspace-5_x/dspace-xmlui/src/main/webapp/themes/Mirage/lib/xsl/aspect/artifactbrowser/item-view.xsl#L50-L52
These lines display the file objects.
https://github.com/DSpace/DSpace/blob/dspace-5_x/dspace-xmlui/src/main/webapp/themes/Mirage/lib/xsl/aspect/artifactbrowser/item-view.xsl#L54-L83
A simple first step would be to change the order of these calls in the xslt template.
The following page outlines how to customize XMLUI: https://wiki.duraspace.org/display/DSDOC5x/XMLUI+Configuration+and+Customization
Do you already have a custom theme? If so, override this template in your custom theme.
If not, you will want to read about XMLUI overlays. You will simply need to copy the files you wish to override into dspace/modules/xmlui/... and apply your changes there.

Java: How can I assemble/create a single instance for classification using a Weka generated model?

I've been searching for an answer to this for a while to no avail.
First a bit of background: I'm trying to create an AI for robocode using Weka.
I'm first logging the required data from a manual robot to an ARFF file, this is working as it should.
This data is then processed this using Weka and a model created, I'm then saving this file.
I can successfully import the model and classify a dataset that has been imported from another arff file and use the results.
What I want to do now is every time the game status changes is assemble an instance and classify it, to decide for example which way to move etc. using my previously saved model.
I've tried to look it up on the wiki: http://weka.wikispaces.com/Programmatic+Use
and this ibm tutorial: http://www.ibm.com/developerworks/opensource/library/os-weka3/ to name a couple, I've also been looking through the APIs but that hasn't given me much to go on.
Much of what I've tried is deprecated, for example creating a prototype with the attributes and fast vectors then creating an empty dataset. Then creating a new instance with the required values using somthing like inst.setvalue(attrib, value) and adding it to the dataset.
Also what about the class index, or the attribute I'm predicting, in the instance does it have to be null or set to missing or something, as surley I won't know that value as I'm trying to predict it?
So are there any ideas how I can go about this?
any help is greatly appreciated,
Thank you muchly.
Managed to find the answer a while ago.
For anyone else having trouble with this basically what you have to do is in the Weka manual included with every download, (its a pdf).
Page 202 onwards in the manual - Section 16.3 "Creating datasets in memory".
Follow the steps there and it works perfectly.

docx Template Docx4j replacing text in Java

Im new to Docx4j and my task is to replace some Text of a docx Template.
I read the getting Started Guide of docx4j but I don't think I fully understood the whole concept.
Well Anyway... I already tried [the unmashalling Template of Docx4j][1],
which worked fine with the given docx, but then I got the same Problem when I tried it on my own template
The Exceptions say, that the HashMap doesnt contain valid keys or values, and therefore it doesnt replace the placeholders.
I replaced the
<w:proofErr w:type="spellEnd"/>
by disabling the spellchecking, but it still didn't work... And it also takes quite some time to run the app.
In didn't understand the databound example in the Getting_Started.pdf, so I'm running out of options...
How can I simply replace some String-Texts from a docx?
EDIT:
I found out that if I add some Text to the unmarshallFromTemplate.docx and save it, that it wont replace the new lines of text.
the - Tags are somehow splitted into multiple Tags:
<w:p w:rsidR="002512F8" w:rsidRDefault="002512F8" w:rsidP="002512F8"><w:r><w:t>My</w:t></w:r><w:r w:rsidR="001A5174"><w:t xml:space="preserve"> favourite ice cream is ${DEGREE</w:t></w:r><w:r><w:t>}.</w:t></w:r><w:bookmarkStart w:id="0" w:name="_GoBack"/><w:bookmarkEnd w:id="0"/></w:p>
editing the Text in the document.xml, and adding the missing Information didnt help much.
well anyway here is the document.xml of the Template.docx that im using:
http://uploaded.net/file/vz4qr23o
EDIT 2:
Well guys. I found a quite suitable workaround for myself and dont know why it took so long to figure it out.
As I was saying: The runs where splited up, and the reason for this was the ${} in my opinion. Therefore I simply used a # before my Placeholders and rewrote every placeholder, so that it would all be in one run.
Had to switch couple of times to the document.xml and rewrite the passages but then it worked. Then I simply used a replace(placeholder, xml) and replaced the text of the marshalled document.xml, then I unmarshalled it again.
Worked. End of Story, fuck the nightly build or the mappings. THX
docx4j source code has been on GitHub for a while now; that svn repository is obsolete.
The equivalent sample is now called VariableReplace. That code is a bit more efficient, but you need to build it yourself, or use a current nightly build.
You'll probably find running VariablePrepare addresses your issue.
The placeholder search and replace code built in to docx4j works just fine, but if you're having issues with placeholders getting broken up by rsid entities, you need to ensure that you have grammar and spell-checking disabled when saving your "template" (i.e. source) document. This will help prevent your text runs becoming fragmented (note that you might want to disable proof-reading too, as that inserts bookmark tags here there and everywhere).
Once you've done the search and replace and have a new / updated document, you can re-enable spell-checking easily enough. This thread has more on RSIDs: turnoff rsid's spell check & grammar check in generated xml

Categories