Valentina Reports FAQ
License
Q: What can be used for free?
1) Valentina Server is available in an evaluation version and free for specific customers. Valentina Server incorporates Valentina Reports Server. You can begin to work with Valentina Reports immediately.
The visual tool for creating reports is incorporated into Valentina Studio Pro, a commercial product.
2) Valentina Report ADK as a client to Valentina Server is free but licensed. You can develop many kinds of applications using different ADKs (e.g. VPHP, VNET, ObjC, …)that are built around the database and reporting features of Valentina Server.
Q: What can be purchased?
1) The commercial version of Valentina Studio is required to visually create reports.
2) Valentina Report ADK lets you embed a local Valentina Report engine into your application.
3) Valentina Server is required for commercial use and multiple connections.
4) Valentina Developer Network, aka VDN lets you deploy copies of Valentina Embedded Server to your customers.
Q: Can I test it before buying?
Yes of course.
1) Valentina Studio – without PRO serial is able:
create a new .vsp file (local or on Valentina Server), but it will create a RAM-table for reports. As a result, reports will not be saved to the disk. All the features do work and can be tested. You can, for example: create few reports, design them, connect to datasources, see preview, …
open an existed .vsp file and work with it, but you cannot create new reports there.
2) Valentina Server - you can get an evaluation license of VServer with 5 connections, and use it as (DB Server + Report Server) with both Valentina Studio and Valentina ADKs.
3) Valentina ADK - without serials in the Valentina.InitReports() will generate reports with watermark “DEMO”, but you can write and test your own code.
Each Valentina ADK have few examples of reports with prepared .vsp files.
If you want to prepare own .vsp file with own reports, then (!!!) you should do this with the help of Valentina Server, because in this way you can create new .vsp file and reports using VStudio and then connect from ADK application to use them until VServer restart.
Note, that VServer in this case just helps to work around limits of Valentina Studio DEMO mode. If you already have VStudio Pro license then you can just create your own .vsp file and test it directly from your ADK application.
Documentation
General
Q: Can I use a report created against mySQL with other databases?
YES. Report itself by default is database-independent. You can design report using e.g. mySQL tables, but later switch to PostgreSQL. For report it is important only to get cursor having fields with the same names and compatible types.
* [TIP] If needed, you can make other DB be similar using SELECT fld as 'CorrectName' syntax in the query.
* EXCEPTION from this rule is case, when you change property of a report to use SQL of Datasource instead of Valentina SQL. In this case you become able to use specific SQL commands of your datasource DB, for example PostgreSQL, but it is obvious that such report will not work with mySQL or others.
Reports & ADK
Q: Can I use Reports created in the Valentina Studio with my Xojo (C#, C++, Director, LiveCode, PHP, NET, ... ) application?
YES of course.
To support this each Valentina ADK has two classes
VProject - to open Valentina Project .vsp file and manage reports
VReport - to produce report in PDF or another format.
Also Valentina offers extended SELECT command as SELECT … FOR REPORT
to produce cursor with BLOB field, which contains result report. This feature allows to use reports even by clients, which do not have VProject/VReport classes, e.g. by ODBC driver.
Q: How technically does the Valentina Reports engine "embed" into my app?
In the vcomponents folder VREPORT.DLL presents, which is a runtime Report Engine.
Q: Can a report be modified at runtime by my application?
NO. Report is designed in the Valentina Studio Pro and application via ADK can use it only as it is, providing some dataset and values for parameters in expression fields.
Valentina Reports have conditions in controls, this allows to make templates flexible enough to change behavior depending on data.
Q: Can users of my application change/tune reports?
Yes, if they have a copy of Valentina Studio Pro and access to the project.
Q: How difficult is it to add reports once a project is released? Same for updating existing reports?
It is not difficult at all. Just open your existing .vsp file and make new report(s). If you need to change the code of your app it will depend on how you have coded it.
Q: Can I build a report from array data?
No, but you can insert values of this array into the TMP table (it can be also TMP+RAM table) of a database and use that table as data source for the report.
Q: How to refer the fields of the report query if they have the same names but different original tables?
It is necessary to add aliases for fields with the same names.
Valentina Reports are query-based. Not all of the database engines give information about the original table the query was built on, so we can't distinguish fields with the same name but from different tables.
Datasources
Deployment
Q: HOW TO prepare my application for deployment?
For each ADK in the Valentina Wiki presents a section with Manual. In a manual presents section “Deployment” where instruction and (may be) helper scripts are given.
Q: I use (REAL Studio/Livecode). I have only (Mac/Win/Lin) computer. Can I build final app for other platforms?
Let us give few points to answer this.
Most archives of Valentina ADK contains platform specific libraries. This means that usually, a MAC archive does not have windows and linux libraries.
For cross-platform tools like REAL Studio and LiveCode, it is possible to compile executable application for other platforms. But still it is required to use archives for other platforms to get libraries for other platforms and copy them into App folder.
To extract libraries from archives for other
OS, usually it needs to have that
OS, as true computer or as virtual machine.
Do not consider this as a big problem, because with sure you need to have that OSes to be able to test/debug your application before send to users.
Q: Can I print a report directly to a printer?
YES. Valentina Studio and Valentina ADKs (since version 6.3) are able to print a report to a printer.
In a case a server project is used for reports generation it is also possible to print a report to printer, installed in the system, where Valentina Server is running, so there is no need to install this printer for all client systems.
Reports & VServer
Projects
Q: Can I put *.vsp file under a Valentina Server while it runs?
Yes. This is why we have a mechanism of registration of a Valentina Project (as well as a database) to a Valentina Server.
Q: HOW TO put an existing Valentina Project (.vsp) under Valentina Server control (i.e. Register Project)?
Keep in mind a simple rule: Databases and Projects are objects of the same level and behavior from point of view of VSERVER. So for projects all operations and even SQL commands are symmetric.
To put your project under VSERVER control you should:
Copy/move your Valentina Project file (*.vsp) in the closed state into 'VServer/projects' folder. VServer can be running at this time.
Register new project in Valentina Studio using menu Server > Register Project, or with the REGISTER PROJECT
SQL command.
Q: Can I keep Valentina Project under mySQL/PostgreSQL/else?
NO. Because:
Valentina Server contains vreport.dll, which is Valentina report engine. This allows to Valentina Server to be 2 in 1: DB Server + Report Server.
Valentina Server has special protocol commands to work with reports;
Valentina Server has special SQL commands to work with reports;
VREPORT.DLL is linked to VKERNEL.DLL and uses its powerful features to generate reports.
General
Q: What is advantage to keep reports under VSERVER?
Advantages are GREAT!
You have a single place where reports are stored, so you will be able to change .vsp file to the newer one easily. Imagine you deploy solution to a school with 1 vserver and 100 clients around. It is much simpler to replace .vsp file on a single computer than on 100.
You can have thin client which connects to VServer and gets generated report as PDF/JPG/…
Remote clients can print reports directly to printers, attached to system, where VServer is working, without need to install drivers or made any additional adjustments on their side.
Development team can do collective work around single Valentina Project.
Q: Who generates a report when a Valentina Client APP asks for that?
Let us remind you that Valentina Server is a standalone application with embedded Valentina Kernel Engine and Valentina Report Engine. These engines present in the vserver/vcomponents folder as vkernel.dll and vreport.dll.
Your application also includes vcomponents folder, although you can remove vkernel and vreport DLLs if you want only vclient app. But if you do not remove them, then your application also contains report engine.
So answer is: you can tune your solution in two ways:
client-side reports.
server-side reports.
For client-side reports your app should include vreport.dll in vcomponents. In this case your app can open local .vsp file and then app/vreport.dll will talk to a remote DB Servers to get data from them and generate VReport using this cursor as data source. App/vcomponents/report.dll will do the job.
For the server-side reports, vsp file is located in vserver/projects folder and is opened by vserver itself. Your app can be a thing vclient (without vkernel and vreport dlls), so it should ask VServer to generate a report.
In both cases the same code is used. You should change only 2 lines of the code: the local path or the name using VConnection.
Q: When should be used "SELECT ... FOR REPORT" SQL command?
It is the only way for a client to get report from VServer if the client cannot use VProject/VReport classes from native Valentina API. In particular, Valentina ODBC driver provides to client only SQL to communicate.
Reports & VKERNEL.DLL
Report Design
You can design reports using Valentina Studio Pro.
Layouts
Drawing
Calculations