Enabling Java User Function Library in Crystal Reports 2020 Designer - crystal-reports

Is there a way to enable and use Java UFL in Crystal Reports 2020 Designer?
In the designer itself you can choose to use only Java User Function Libraries in File > Options > Formula Editor > "UFL Support" dropdown menu.
I was able to code my own functions in Eclipse, building a jar of the library, but the problem is;
Where do I specify the location and name of the library to the designer?
This topic User Function Libraries in formulas (and many others) refers to a "Java Reporting Component Developer's Guide" to make Java UFL work, but I have not found it anywhere!
I also tried to add the jar under C:\Program Files (x86)\SAP BusinessObjects\java\lib and in similar folders, but had no success.
Any help will be appreciated
Thanks,
Enrico
Tried to find documentation, tried to locate jar file of the library under the designer installation path

Related

Understanding program organisation and basic terms

I've installed Jaspersoft Studio 6.2.2 in order to edit a couple of existing Jasper reports. Unless I missed something, nowhere in Getting Started documentation do they explain the basic terms specific to this program. They do explain the generic Jasper terms (report, data adapter, field...) but, when it comes to Jaspersoft Studio, they just instruct you to launch wizards and use the defaults. That isn't optimal for me because I prefer to have my work under source control and separated by customer/client rather than having everything together in a local folder within my Windows profile. I also have the impression that they omit stuff because they assume you're familiar with Eclipse (I'm not).
Could you please provide me with a quick overview of the basic terms and some tips about how to use them to effectively organise work:
Workspace
Project
Project Folder
... and some other I might be missing?
My view:
A workspace is a group projects that share some configuration/environment. In project setting, you can use a common workspace configuration or define a project specific configuration.
In java world, e.g. you can define different JDK compatibility per workspace.
In jasper world, e.g. for Chinese projects, you can have projects that all have zh_CN default language set when executing preview. Different fonts might be used in this workspace. No need to set it up for every new project created.
Every workspace has it's own set of data adapters and JRS server connections.
I usually have sources under "Project folder", not in workspace folder. I just import a project into the workspace (do not copy).
BTW. One project can be in multiple workspaces.

Define a Java 9 multi-moduled project in Eclipse

I'm trying out Java 9 Jigsaw module system (no module experience yet) and would like to use it for capsuling the classes within my project, but it's confusing.
According to this article it should be possible to have multiple modules within ONE project. I made a new project in Eclipse Oxygen (Java 9 is supported) with the same structure as shown in the article. But Eclipse keeps telling me that I must not have more than one module-info.java in a project.
I really don't know how to tell Eclipse that it should use the "multi-module-mode". And I really would appreciate not having to create a new project for every single module.
This works:
This not:
But according to this article something like that should work:
And how about deployment of a modularized project with Eclipse? There is nothing to see about the new jmod extension. Do I still export it as a runnable JAR file like before?
Notice that my questions refer to working with the IDE (no command line, I mean with an IDE that should be possible, right?) Thank you for enlightening me.
Currently, Eclipse requires you to create a separate project for each module (e. g. because each module has its own Java Build Path).
To understand this design decision, consider that Java modules correspond to OSGi bundles / Eclipse plug-ins and it has always been to have a separate project for each bundle/plug-in. If you come from the Maven world, you would probably expect a deeper folder structure instead. But modules are self-contained and combining several modules into one project would only add an additional folder level without meaning. However, Eclipse supports nested projects and so-called working sets if you need an additional folder level.
Exporting modules as images is planned for Eclipse 2019-03 (4.11), on March 20, 2019 (see Eclipse bug 518445). Exporting modules as JARs that can be used on the modulepath (-m) already works (see my video).
I don't know if this question is still open for an answer, but you can solve this problem by simply removing all source folders on the build path. At least this works for Eclipse 2021-12 version.
As you can see this is a demo project from the Official Gradle Guide Book and it has multiple modules. Each module has its own module-info.java.
project structure in IntelliJ IDEA
If I open this project in Eclipse it will give me the 'duplicated entries on module-info.java' error.
Eclipse shows the error
But if I delete all the source folders on the build path, the error is gone and the project can be built and run without problem.
project properties: Java build path
The only problem is that you have to build the project with Gradle so that it will produce the .jar of each module and you have to include them in the libraries later.
include all the .jar in libraries
I think this is probably the same solution mentioned by howlger above.

How to set project license header in a NetBeans Module?

Using NetBeans 8.1, how can I set a project license header for a NetBeans module? Specifically, I would like every new Java file I create to be populated with my license header.
I know how to achieve this for a regular NetBeans Java project. I specify the text I would like under the License Headers section of the project properties.
However, when I try to set the license header of a NetBeans Module project, there is no License Headers section in the module's project properties.
I would like to set this license at a project level as opposed to at a NetBeans level, because I would like my whole team to get the new template for any files they create. (I know I can change this for the NetBeans overall by going to Tools -> Template Manager and customizing it there. However, then my other team members won't get the header.)
I saw a similar question, but this was for a Maven project instead of a NetBeans module project.
Solution for NetBeans 8.2. (Likely works in 8.1, as 8.2 produces the error message described by OP.)
Create a text file with your license template text:
<#if licenseFirst??>
${licenseFirst}
${licensePrefix}Copyright 2017 Whoever you are
<#if licenseLast??>
${licenseLast}
2. Add the template to NetBeans
In the IDE, do Tools->Templates and open the Licenses node. Here you see the list of global license header templates. Press Add... then browse to and select your template file from step 1.
A new entry will appear under Licenses named 'license-XXX.txt' where XXX is your license file name -- all of it, so if you named your file 'license.txt' the new entry will be named 'license-license.txt.txt'. (Don't panic, you can rename it.)
I called mine FooLicense.
Set the license in your project.
Add the line
project.license=FooLicense
to nbproject/project.properties
Now when you create a new source, if will include the the specified license header.
Bonus! The setting is inherited from the suite project.
Setting the license in the suite project properties will apply the setting to all modules in the suite.
Setting the license in module projects overrides the suite license setting.
In theory, you can manually set a custom license file for your module project by adding this property to nbproject/project.properties.
project.licensePath=./nbproject/licenseheader.txt
Then create the new license template and save it to nbproject/licenseheader.txt.
Unfortunately, this seems to be broken in NetBeans 8.1. When I create new files, I get this error message instead of the custom license text: "Error reading included file Templates/Classes/C:\some\path\module1\Templates\Classes\licenseheader.txt"
Using one of the built-in license templates does work. To use the MIT license for example, add this property instead to nbproject/project.properties.
project.license=mit

How to create a Processing Language plugin for Eclipse?

I'm quite a noob programmer and I recently discovered Java Processing Language which can be run on Android.
So far I've been using a dedicated IDE to program it in but I've just found out I can program it in Eclipse which is my preferred IDE. The only problem is that they only tell you which libraries to import when creating a Processing project from a standard Java project. So every time I want to create a new project I have to create a Java project, go through all the import menus, search for the Processing system library, import the files, create a new class and import the library for the class.
Does anyone know how to create an eclipse plugin so I can just go to the NEW directory in eclipse and have a PROCESSING folder and a NEW PROCESSING PROJECT item that already has a generic class with the imported libraries?
I've been looking at online tutorials and I can't even figure out where to start.
The steps to create a Processing project from a Java one are explained here.
Thanks for any help!
I recommend having a look at the Proclipsing plugin which seems to do pretty much what you want to achieve. It's also open source so you can see how it was written and modify if you like.
A Processing project is a standard Java project with the Processing libraries added to build path. There is nothing more to Processing in this regard. So a specific Eclipse Processing plugin for this seems overkill (there are some other things like the different targets or samples that could make it useful though).
To easen up your current process: Create an Eclipse User Library for the Processing libraries. Menu Window > Preferences, Java > Build Path > User Libraries, New.... Add the Processing libraries. Now you can easily add the whole set to a project (right-click on the newly created Java project in the package explorer, Build Path > Add libraries > User Library).
If you want to change the standard template for Java classes to one including everything for Processing: Window > Preferences, Java > Code Style > Code Templates, Code > New Java files. This changes every newly created class, maybe it is better to just create a simple template to manually call at start: Java > Editor > Templates, New.... Then you would call the template every time you create a Processing main class but not for "normal" classes.
Ok... regarding the target audience of Processing a plugin may be a good idea. But then there is the dedicated Processing UI. Eclipse is not exactly a good introductory IDE.

BIRT Chart Engine not working

Im new to SWT and need to plot graphs and have chosen to use the BIRT Chart Engine framework, now I've read up online and I think I have installed the BIRT Framework by doing the following in Eclipse:
Help->Install New Software
I then copy the following link in the Work With box: http://download.eclipse.org/birt/update-site/4.2
It then installed everything - So i would have assumed. Now I would like to start developing but for some reason I can't import that packages eg import org.eclipse.birt.*; to start developing. Please any help to get me plotting graphs would be really appreciated
Double check the following:
Right-click your project ➡ Properties ➡ Java Build Path ➡ Libraries and confirm that the Birt library is contained in this list.
If not, add it by clicking on "Add library".