Report Builder, ODBC, Crystal Reports, or Progress 4GL?

A couple of clarifications and side notes for any one who actually read the
post below:

-Report builder pales in comparison to crystal, exept for the fact that
report builder has native access to the progress database (but unfortunately
no other database). Crystal has more complex logical operations, but when
combined with the limitations of ODBC, the debate of whether to use RB or
Crystal/ODBC is largely an arbitrary matter.

-A multi tier or modular approach could just as easily be implemented in
provision. I don't want to suggest for a nanosecond that MS technology is
superior to Progress. In our case though, it was cheaper, and the extra
money we didn't spend on provision has gone towards necessary training.
Provision would also enable one to populate physical database tables with
the results of a complex query, then run a report builder report based on
those results. That way, the need for an interem data export format (xml,
dbf, csv) is elimiated.

~Thaddeus

-----Original Message-----
From: Thad Jacobs [mailto:tjacobs@...]
Sent: Wednesday, June 19, 2002 9:34 AM
To: 'vantage@yahoogroups.com'
Subject: RE: [Vantage] Report Builder, ODBC, Crystal Reports, or
Progress 4GL ??


Malcom,

Knowing the requirements for the report that you are being asked to design
would be most helpful.

I'd say the best way to get the data from the database is using the Progress
4GL.

Some would say its ODBC, but I have decided against that option, because of
the security and reliability concerns in our particular environment. You'll
find that switching to ODBC often limits the complexity of the joins you can
do (though it depends on the drivers you use, and the particular joins you
are doing). In some cases your reports will perform slower (though in some
cases they may actually speed up). However, until I can trust an ODBC
connection to perform reliably as a progress 4gl client connection, I'm
going to hold off.

However, the best way to display report data to the user is Crystal.
Microsoft ditched their own report designer and when with Crystal Reports,
which is integrated with visual studio .net. Epicor has chosen crystal for
all reports that we will send to customers.

Report builder is decent, but pales in comparison to crystal.

However, the tricky parts are:

(a) getting the required information from the user. The tendency is to use
crystal parameter fields, but in order for that approach to work, crystal
has to have access to all the information the user could possibly want.
This means for to run a crystal report for which the user selects one part,
you have to export the entire part master. So if a user wants to run a
custom indented B.O.M, you are going to export all the indented BOM's in the
database, and then prompt the user for the one they wish to run?

The solution is to create a graphical user interface for which the user can
select from a list of parts, then you run the indented BOM export for just
the part the user selects, then you run a crystal report based on that
export.

The two options I've used for Graphical user interface:

- Progress 4GL coding: It is possible to create a custom graphical user
interface using just the procedure editor. However it is a bit time
consuming, and you are somewhat limited in your GUI options without the
$5000 Provision environment, which is the Visual environment for creating
progress apps, such as vantage.

- Visual Basic: Based on your past programming experience, I believe with a
good tutorial book, you could be designing and implementing visual basic
apps in a month or so. The environment is significantly less costly than
provision, and designing a user interface is very intuitive. Visual Basic
is very powerful, considering what the BASIC language was ment for in the
first place. You can't get as under-the-hood as you can in C or C++, but a
DB programmer shouldn't have to be getting under the hood. In visual studio
.NET, visual basic becomes even more powerful. With just VB and ODBC, you
could potentially mitigate the need for doing any 4GL coding.

However, as far as complex database queries goes, I'd say 4GL kicks SQL's or
VB's butt. So I had to find a way to use 4GL, visual basic, and crystal, in
a way that I could write reports that are always current, never based on an
export from the night before. And never taking more than a minute to run
even our most complex daily report.

So here's the setup I've come up with:

-Progress 4GL queries for all data access, data exported to XML. XML has
superceded the CSV format in my setup, primarily because CSV does not store
data format information, and it is up to a parser to guess the datatype.
Plus, once I migrate to a .NET based GUI, having XML as the interem data
export format will be quite beneficial, in more ways than one.

-A Visual Basic Class module that uses simple syntax to pass parameters to a
progress query, and convert the results of a 4GL query to an ADO recordset.

-Reports designed in Crystal.

-Graphical user interface created in visual basic. I create menu programs
for each department, which launch various reports for the department. In
document control, they type a part number, hit enter, and the latest BOM
prints. In accounting, they click on a vendor tab, double click a vendor,
and the transactions for the last month display. The date range can be
modified using a pick-and-choose calender.

For quick one-time reports, I often just write a CSV export, then format it
in excel manually.

As Progress's ODBC implementation improves, I may consider adding that to my
toolset, for simpler queries.

If I had the Provision environment, I admit my development scheme would be a
bit less complex. However, the multi-tier programming approach I've to
developed out of necessity will greatly help if I decide to change something
drastic. Say I decide to go with an entirely web based GUI, all I have to
do is convert my gui code, and modify my VB class module to work in web
server environment. My progress queries will still work, without a change
in code. Say we decide to go with SQL version of vantage three versions down
the road, all I have to do is rewrite the 4GL queries into SQL stored
procedures, and change very little code in the GUI portions of my
applications. Not that I plan or desire to ever convert to a SQL vantage
implementation. If I want to change from XML format to say, a DBF file, all
I have to do is modify my 4GL {XML.I} file to accommodate the new format,
and I don't have to change a single line of code in the progress queries.

Though I don't claim my system is absolutely perfect, I do hope I've
developed it so that an improvement in one area of the system won't require
unnecessary code changes in other portions of the system.

It is possible to write a 4GL program that sends data to an export, and
launches a crystal report based on the export, without having any visual
basic in the picture. This approach might very well be what you need for
your particular complex report, depending on the desired user selection
criteria. Let me know what you are looking for in your report, and I'd be
glad to assist.

Best Regards,

Thaddeus Jacobs
Information Solutions Developer
Kinematic Automation, Inc.
mailto:tjacobs@...








-----Original Message-----
From: Malcolm Spann [mailto:Malcolm@...]
Sent: Tuesday, June 18, 2002 12:57 PM
To: vantage@yahoogroups.com
Subject: [Vantage] Report Builder, ODBC, Crystal Reports, or Progress
4GL ??



While not a computer 'newbie', I'm afraid that most of my 'programming'
experience is a bit 'out of date'. In another life, I wrote a lot of
database programs (using dBase/Clipper), and I've done work in basic (the
pre-Visual type). And, I'm afraid that 15 years of CNC programing
experience doesn't help here either <lol>

In this life, I've been writing reports in Report Builder for a couple of
years now, and feel fairly comfortable with it. I know my way around the
Vantage data tables pretty well, and have a good feel of what Report Builder
can and can not do. Recently, I've been asked to write a report that I just
don't think is possible with Report Builder (too many tables, joins, etc.)

As I understand it, my other options are:

1) Use ODBC to allow another program/language to connect to Vantage's data
table
2) Use Crystal Reports (which uses ODBC itself, doesn't it?), or
3) Use the Progress 4GL language directly

Since I have not been given the time nor budget to get the necessary
training in any of these, and no experience with any of these, can someone
offer pros & cons, opinions and/or suggestions on which method to choose?
Any 'How-To Guide for Dummies'? Any form of step-by-step instructions are
especially welcome!

Thanks in advance!

============================================
Malcolm Spann
MIS
Malmberg Engineering
(925) 606-6500 x19
Malcolm@...
============================================



Useful links for the Yahoo!Groups Vantage Board are: ( Note: You must have
already linked your email address to a yahoo id to enable access. )
(1) To access the Files Section of our Yahoo!Group for Report Builder and
Crystal Reports and other 'goodies', please goto:
http://groups.yahoo.com/group/vantage/files/.
(2) To search through old msg's goto:
http://groups.yahoo.com/group/vantage/messages
(3) To view links to Vendors that provide Vantage services goto:
http://groups.yahoo.com/group/vantage/links

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/



Useful links for the Yahoo!Groups Vantage Board are: ( Note: You must have
already linked your email address to a yahoo id to enable access. )
(1) To access the Files Section of our Yahoo!Group for Report Builder and
Crystal Reports and other 'goodies', please goto:
http://groups.yahoo.com/group/vantage/files/.
(2) To search through old msg's goto:
http://groups.yahoo.com/group/vantage/messages
(3) To view links to Vendors that provide Vantage services goto:
http://groups.yahoo.com/group/vantage/links

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
While not a computer 'newbie', I'm afraid that most of my 'programming'
experience is a bit 'out of date'. In another life, I wrote a lot of
database programs (using dBase/Clipper), and I've done work in basic (the
pre-Visual type). And, I'm afraid that 15 years of CNC programing
experience doesn't help here either <lol>

In this life, I've been writing reports in Report Builder for a couple of
years now, and feel fairly comfortable with it. I know my way around the
Vantage data tables pretty well, and have a good feel of what Report Builder
can and can not do. Recently, I've been asked to write a report that I just
don't think is possible with Report Builder (too many tables, joins, etc.)

As I understand it, my other options are:

1) Use ODBC to allow another program/language to connect to Vantage's data
table
2) Use Crystal Reports (which uses ODBC itself, doesn't it?), or
3) Use the Progress 4GL language directly

Since I have not been given the time nor budget to get the necessary
training in any of these, and no experience with any of these, can someone
offer pros & cons, opinions and/or suggestions on which method to choose?
Any 'How-To Guide for Dummies'? Any form of step-by-step instructions are
especially welcome!

Thanks in advance!

============================================
Malcolm Spann
MIS
Malmberg Engineering
(925) 606-6500 x19
Malcolm@...
============================================
" I just don't think is possible with Report Builder (too many tables,
joins, etc.)"

What exactly are they asking for. I have lots of report builder reports
that span many tables, that should not prevent you from using report
builder. However, there are indeed cases where report builder will not
work, I would be sure before you go to ODBC is all.. when I can use report
builder, I do, because it's usually faster, easier for users to access, and
cheaper...



[Non-text portions of this message have been removed]
For working with the Progress 4gl, Progress itself has a good tutorial
book available. It is available in .pdf format at the Progress web site
(www.progress.com). If you have worked with dBase/Clipper you will find
it easy to pickup, and a very powerful and flexible tool to work with.

Malcolm Spann wrote:
>
> While not a computer 'newbie', I'm afraid that most of my 'programming'
> experience is a bit 'out of date'. In another life, I wrote a lot of
> database programs (using dBase/Clipper), and I've done work in basic (the
> pre-Visual type). And, I'm afraid that 15 years of CNC programing
> experience doesn't help here either <lol>
>
> In this life, I've been writing reports in Report Builder for a couple of
> years now, and feel fairly comfortable with it. I know my way around the
> Vantage data tables pretty well, and have a good feel of what Report Builder
> can and can not do. Recently, I've been asked to write a report that I just
> don't think is possible with Report Builder (too many tables, joins, etc.)
>
> As I understand it, my other options are:
>
> 1) Use ODBC to allow another program/language to connect to Vantage's data
> table
> 2) Use Crystal Reports (which uses ODBC itself, doesn't it?), or
> 3) Use the Progress 4GL language directly
>
> Since I have not been given the time nor budget to get the necessary
> training in any of these, and no experience with any of these, can someone
> offer pros & cons, opinions and/or suggestions on which method to choose?
> Any 'How-To Guide for Dummies'? Any form of step-by-step instructions are
> especially welcome!
>
> Thanks in advance!
>
> ============================================
> Malcolm Spann
> MIS
> Malmberg Engineering
> (925) 606-6500 x19
> Malcolm@...
> ============================================
>
>
> Useful links for the Yahoo!Groups Vantage Board are: ( Note: You must have already linked your email address to a yahoo id to enable access. )
> (1) To access the Files Section of our Yahoo!Group for Report Builder and Crystal Reports and other 'goodies', please goto: http://groups.yahoo.com/group/vantage/files/.
> (2) To search through old msg's goto: http://groups.yahoo.com/group/vantage/messages
> (3) To view links to Vendors that provide Vantage services goto: http://groups.yahoo.com/group/vantage/links
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

--
/* ================================================================*/

Specialists in Progress Databases and Software since 1986

William E. Colls william@...
PROComputer Systems Tel 613 591 0079
67 Willow Glen Dr. Fax 613 591 3924
Kanata Ontario Canada www.procomsys.com
K2M 1T1
Malcom,

Knowing the requirements for the report that you are being asked to design
would be most helpful.

I'd say the best way to get the data from the database is using the Progress
4GL.

Some would say its ODBC, but I have decided against that option, because of
the security and reliability concerns in our particular environment. You'll
find that switching to ODBC often limits the complexity of the joins you can
do (though it depends on the drivers you use, and the particular joins you
are doing). In some cases your reports will perform slower (though in some
cases they may actually speed up). However, until I can trust an ODBC
connection to perform reliably as a progress 4gl client connection, I'm
going to hold off.

However, the best way to display report data to the user is Crystal.
Microsoft ditched their own report designer and when with Crystal Reports,
which is integrated with visual studio .net. Epicor has chosen crystal for
all reports that we will send to customers.

Report builder is decent, but pales in comparison to crystal.

However, the tricky parts are:

(a) getting the required information from the user. The tendency is to use
crystal parameter fields, but in order for that approach to work, crystal
has to have access to all the information the user could possibly want.
This means for to run a crystal report for which the user selects one part,
you have to export the entire part master. So if a user wants to run a
custom indented B.O.M, you are going to export all the indented BOM's in the
database, and then prompt the user for the one they wish to run?

The solution is to create a graphical user interface for which the user can
select from a list of parts, then you run the indented BOM export for just
the part the user selects, then you run a crystal report based on that
export.

The two options I've used for Graphical user interface:

- Progress 4GL coding: It is possible to create a custom graphical user
interface using just the procedure editor. However it is a bit time
consuming, and you are somewhat limited in your GUI options without the
$5000 Provision environment, which is the Visual environment for creating
progress apps, such as vantage.

- Visual Basic: Based on your past programming experience, I believe with a
good tutorial book, you could be designing and implementing visual basic
apps in a month or so. The environment is significantly less costly than
provision, and designing a user interface is very intuitive. Visual Basic
is very powerful, considering what the BASIC language was ment for in the
first place. You can't get as under-the-hood as you can in C or C++, but a
DB programmer shouldn't have to be getting under the hood. In visual studio
.NET, visual basic becomes even more powerful. With just VB and ODBC, you
could potentially mitigate the need for doing any 4GL coding.

However, as far as complex database queries goes, I'd say 4GL kicks SQL's or
VB's butt. So I had to find a way to use 4GL, visual basic, and crystal, in
a way that I could write reports that are always current, never based on an
export from the night before. And never taking more than a minute to run
even our most complex daily report.

So here's the setup I've come up with:

-Progress 4GL queries for all data access, data exported to XML. XML has
superceded the CSV format in my setup, primarily because CSV does not store
data format information, and it is up to a parser to guess the datatype.
Plus, once I migrate to a .NET based GUI, having XML as the interem data
export format will be quite beneficial, in more ways than one.

-A Visual Basic Class module that uses simple syntax to pass parameters to a
progress query, and convert the results of a 4GL query to an ADO recordset.

-Reports designed in Crystal.

-Graphical user interface created in visual basic. I create menu programs
for each department, which launch various reports for the department. In
document control, they type a part number, hit enter, and the latest BOM
prints. In accounting, they click on a vendor tab, double click a vendor,
and the transactions for the last month display. The date range can be
modified using a pick-and-choose calender.

For quick one-time reports, I often just write a CSV export, then format it
in excel manually.

As Progress's ODBC implementation improves, I may consider adding that to my
toolset, for simpler queries.

If I had the Provision environment, I admit my development scheme would be a
bit less complex. However, the multi-tier programming approach I've to
developed out of necessity will greatly help if I decide to change something
drastic. Say I decide to go with an entirely web based GUI, all I have to
do is convert my gui code, and modify my VB class module to work in web
server environment. My progress queries will still work, without a change
in code. Say we decide to go with SQL version of vantage three versions down
the road, all I have to do is rewrite the 4GL queries into SQL stored
procedures, and change very little code in the GUI portions of my
applications. Not that I plan or desire to ever convert to a SQL vantage
implementation. If I want to change from XML format to say, a DBF file, all
I have to do is modify my 4GL {XML.I} file to accommodate the new format,
and I don't have to change a single line of code in the progress queries.

Though I don't claim my system is absolutely perfect, I do hope I've
developed it so that an improvement in one area of the system won't require
unnecessary code changes in other portions of the system.

It is possible to write a 4GL program that sends data to an export, and
launches a crystal report based on the export, without having any visual
basic in the picture. This approach might very well be what you need for
your particular complex report, depending on the desired user selection
criteria. Let me know what you are looking for in your report, and I'd be
glad to assist.

Best Regards,

Thaddeus Jacobs
Information Solutions Developer
Kinematic Automation, Inc.
mailto:tjacobs@...








-----Original Message-----
From: Malcolm Spann [mailto:Malcolm@...]
Sent: Tuesday, June 18, 2002 12:57 PM
To: vantage@yahoogroups.com
Subject: [Vantage] Report Builder, ODBC, Crystal Reports, or Progress
4GL ??



While not a computer 'newbie', I'm afraid that most of my 'programming'
experience is a bit 'out of date'. In another life, I wrote a lot of
database programs (using dBase/Clipper), and I've done work in basic (the
pre-Visual type). And, I'm afraid that 15 years of CNC programing
experience doesn't help here either <lol>

In this life, I've been writing reports in Report Builder for a couple of
years now, and feel fairly comfortable with it. I know my way around the
Vantage data tables pretty well, and have a good feel of what Report Builder
can and can not do. Recently, I've been asked to write a report that I just
don't think is possible with Report Builder (too many tables, joins, etc.)

As I understand it, my other options are:

1) Use ODBC to allow another program/language to connect to Vantage's data
table
2) Use Crystal Reports (which uses ODBC itself, doesn't it?), or
3) Use the Progress 4GL language directly

Since I have not been given the time nor budget to get the necessary
training in any of these, and no experience with any of these, can someone
offer pros & cons, opinions and/or suggestions on which method to choose?
Any 'How-To Guide for Dummies'? Any form of step-by-step instructions are
especially welcome!

Thanks in advance!

============================================
Malcolm Spann
MIS
Malmberg Engineering
(925) 606-6500 x19
Malcolm@...
============================================



Useful links for the Yahoo!Groups Vantage Board are: ( Note: You must have
already linked your email address to a yahoo id to enable access. )
(1) To access the Files Section of our Yahoo!Group for Report Builder and
Crystal Reports and other 'goodies', please goto:
http://groups.yahoo.com/group/vantage/files/.
(2) To search through old msg's goto:
http://groups.yahoo.com/group/vantage/messages
(3) To view links to Vendors that provide Vantage services goto:
http://groups.yahoo.com/group/vantage/links

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/