YAPI (yet Another Printer Interface)

Now offering Version 2

Down Loads:

Manuals and Source Code Samples

Exe.zip Dont bother to read all the fancy sales-pitch. Down load this zip of samples and try them directly  

Delphi 5

Free Standard Version

Evaluation of the Professional Version

Delphi 6

Version 1 only (sorry)

Free Standard Version

Evaluation of the Professional Version

Delphi 7

(compiled by Michael Lubecky)

Free Standard Version

Evaluation of the Professional Version

Delphi 2005

Free Standard Version

Evaluation of the Professional Version

I dont have a D8 compiler I will try an get one if there is demand .

Secure Credit Card Sales:

Payments

 queries and   feedback to:

 

 

 

 

 

 

 

 

 

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:

  1. 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.

  1. 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
  1. Much Improved print preview screen.
  2. 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.

© 2001, 2004 Yapi
Modified: December, 2004