Have
you ever wanted to produce a printout from Delphi? Perhaps a complicated
report? Perhaps something simple? Yapi is an excellent printing component set - and
its free.
This Page Contents:
Yapi
Features
Is Yapi a Report Generator?
Why Yapi follows The
Delphi Philosophy
Advanced Printing Features
5 Minute Start
Standard vs. Professional
Version
Yapi Printer Output Samples
History of Yapi
The Down Loads and Installation
Pricing of Professional Version
Other Pages Contents:
Read what other have to say
Questions And Answers
Read an article submitted to a magazine on Yapi
Yapi
Features
Yapi provides an easy way to produce
many kinds of printed
documents from Delphi.
- Very, very simple to
learn and use.
If you can use "writeln" you can use yapi.
- Produces basic printing
with just a few lines of easy code.
- Produces professional
looking, sophisticated reports with a little more coding.
- More flexible that any report generator you've ever used.
- Works just as well with
non data base applications.
- Supports paging,
margins, tabs, print
preview screen etc.
- Supports print dialogue
boxes, page range selection, number of copies etc.
- Support for Wysiwyg
setting of fonts, margins, tabs, ect.
- Advanced text wrapping
features.
- "Rock Solid".
Yapi is 100% reliable.
- Support for bitmaps and
graphs (Professional Version Only).
- Free (The standard version
only).
Is Yapi a Report
Generator?
No. And this can be a good thing. Yapi won't
create your report for you. You have to code it yourself. Read on.
If you just want to
produce a simple report from a simple SQL query, then there any number of report generators
available. If you want to get smarter than that, then a report generator will almost
inevitably have trouble.
Report generators do two
tasks:
Report Content
Report Appearance
Programming the content parts of reports
is easy. A good database programmer knows
that the code required to step through an SQL query result takes a few minutes to write.
The hard part is the appearance.
This all the formatting, fonts, page breaks, margins, headers and footers, print preview etc.
etc. etc.
Unlike reporting tools, Yapi
leaves the content (the easy but important part) up to you, but it looks after
all of the appearance (the hard but less important part). This concept make
Yapi unique, and especially flexible.
If you want proof of this
concept then look at the
FishFacts.pdf. The
end of this report includes the Pascal code that produced it. Despite the
elaborate nature of the report, the code to produce it is just a simple loop
to traverse a database table, throwing each row of the TTable data into the
report as it goes.
One programmer spend a
week with QReport, downloaded Yapi then spent only an hour with it before
producing database reports.
With Yapi, you can code your
report content from any mix of data. This could come from a database,
the web, computed data, or whatever. It is then placed it in your report in the order you want it in.
If you are working with
three tier or Internet applications then you will almost inevitably be
concerned about controlling the communications load. Yapi allows this precise
control. See the Programmers Feedback
for an example of this kind of use.
Why Yapi
follows the Delphi Philosophy
In the late 80's and early
90's a range of 4GL languages appeared. The promise then, was that everybody
would be soon programming in new and highly productive ways. Now, over a
decade later, those of us that require high productivity still use Pascal, a
language I learnt in the late 70's. Why? The answer is that best productivity
doesn't necessarily come with higher level languages. Good basic languages
(and Pascal is very basic) can be extended with good environments and good
libraries (e.g. the VCL) to equal the productivity of any other development
environment.
Yapi follows the same
principles. Creating report content is by "good basic code", just as
Delphi is a "good basic 3GL". Yapi provides a highly productive environment
with high level tools in exactly the same was as Delphi.
Just as the "lower
level" of Pascal provides exceptional flexibility, so does the
"lower level" of programming with
Yapi.
Advanced
Printing Features
Although Yapi is easy
to use, it has many subtle features, and can be used to create very sophisticated
reports. In the two pdf files following, you will see yapi printouts that look as
if they were created by MS Word. To see what yapi can do for you read one of
these following pdfs.
QuickIntro.pdf.
A Quick Demo/Description.
YapiIntro.pdf. A Full Demo/Description
with pictures and grids.
As well as reading the
above PDFs, you can try downloading and running the executables that produced
them (in Exe.zip ). The source of the programs that
created these two PDFs are also provided as example code.
5 Minute Start
Yapi boasts a 5-minute start. Look at the PDF here
or down load the whole evaluation kit here. The whole
evaluation process takes about 15 minutes, and if you don't like Yapi you can
easily "clean it out" from your Delphi compiler.
The 5-minute start is all of the learning a programmer needs to start with
Yapi. You can use this tutorial with the
either the standard (free) or professional component set.
Standard
vs. Professional Version
The standard version of Yapi is available as a free component set. This doesn't contain all of the components, but is still a very effective piece of software, it just doesn't produce grids or graphics. You can download this, install it, and use it whenever you want a quick printout. All
of the financial reports for the banking system described below were be done with the free
version.
The professional version
contains the additional components for support of bitmaps, graphs, grids (like
string grids) etc.
Yapi
Printer Output Samples
The following PDFs were printed by Yapi. They are the actual printed output of Yapi using a
Docucom PDF writing Printer Driver. These
PDFs look exactly like the colour laser printout that would occur if a real
printer was chosen instead of the PDF writing printer driver.
FishFacts.pdf is a spectacular colored printout
produced by a modified version of Borland's FishFacts sample program. If you have the BDE installed and the standard Borland sample databases, you can download
the executable and try it. The source for this is provided with yapi samples,
or try the executable (in Exe.zip).
The GeneralDBReport demo is included as an example. This provides a very generic way to produce a report from any table or query.
You can run its executable (in Exe.zip) if you have the BDE/Examples installed.
Another example that shows how to produce control breaks is also
included, together with its executable (in Exe.zip).
Banking examples include a General
Ledger Report and a sample bank statement.
Yapi is not limited to database programming. Read some of the Programmer
feedback.
History of
Yapi
Yapi was "born" during the development of a banking system for a Credit Union.
This is a conventional database
program (with SQL Server), but with many complexities.
During a previous (non
database) project
Report Printer Pro 2.0 was evaluated. It now remains unused on the shelf. At the
start of the Credit Union project one of the team members evaluated QReport
and we rejected it. Subsequent surfing of the Borland's newsgroup for reports indicates that
it is not reliable. Our project team considers we had a lucky escape.
One of the most basic
financial reports indicates the insufficiency of these report generators (and probably other)
as follows:
The General Ledger
of the Credit Union Software contains groups that may contain other groups. It
is in fact organized as a tree structure. Production of the
General Ledger Report involved recursive techniques
(common with trees). Yapi dealt with this kind of programming easily.
This banking system also
proves the reliability of yapi. The banking software runs all day on many
machines in the different branches of the Credit Union. Yapi is used for all
the teller print outs (bank statements etc). In 10 months of operations with
thousands of printouts, not one problem has been reported that can be
attributed to yapi.
A sample bank statement
can be viewed.
The Down Loads and
Installation
Down loads are available for the Free Version and the Evaluation copy of the
Professional Version. The
manuals and program samples are available under a separate download. The
evaluation kit includes both the free versions and the manuals
All downloads are in zip files.
Installation is easy. Unzip the program download. Place
yapi.dcu yapi.dfm and yapiPack.bpl in your Delphi Lib subdirectory. Run
Delphi. Choose the component menu, Install Packages, Choose YapiPack.bpl. That's
it. De-installation if the reverse process.
The professional evaluation version provides a full set of components, but "spoils" the final printed output. It can be used for all development purposes.
For purchase of the full professional version
see the Yapi administrator.
There are some known problems in the evaluation version with
bitmaps on certain printers. These problems are fixed in the full professional version.
Version
2
Version 2 includes:
- New Functions
(including more detailed vertical control)
- paper.setlineat(3.2)
// Next line starts
at 3.2" from page top
- Text.writeatxy(4.2,31,'String');
// write at
position on page
writeatxy will operate
with text, grids, images, and paintboxes.
- Additional Utility
files offering:
- Single function call to
print a TQuery or a TTable
- Single function call to
print a stringgrid
- Simple Form to print
any SQL Statement. - Can be incorporated into your programs for user
defined reports
- Much Improved print preview
screen.
-
Ability
to same printout to a .csv file or a bitmap.
Pricing
Free Yapi (still a very effective
product) Supplied in the evaluation kit. |
0$ |
Yapi Pro single user, no source
Includes support up to 3 emails |
$95 |
Yapi Pro single user, with source
Includes support up to 3 emails |
$195 |
Yapi Pro+ 10 user source provided
Includes support up to 30 emails
Free updates for 1 year |
$495 |
Yapi Enterprise - no limit on users, source provided
Includes support up to 100 emails
Free updates for 2 years |
$995 |
Any queries or questions please
contact Most
emails will be answered, and suggestions, feedback or general discussion are very welcome.
|