Crystal Reports for Microsoft Dynamics GP 10.0 – overview for developer

Sep 1
08:25

2007

Andrew Karasev

Andrew Karasev

  • Share this article on Facebook
  • Share this article on Twitter
  • Share this article on Linkedin

Microsoft Great Plains has long tradition to deploy Crystal Reports, where it’s embedded reporting tool ReportWriter does not provide required reporting flexibility, especially for high quality reports with graphical elements, such as logos, advanced fonts, plus where you need advanced reporting logic

mediaimage

Report Writer can only deal with Dexterity tables from one GP module.  Crystal Reports allows you to build any SQL query you need and join “cross-modules” tables,Crystal Reports for Microsoft Dynamics GP 10.0 – overview for developer Articles including custom tables and tables and data in heterogeneous databases environments: Oracle, DBII, Pervasive SQL, Ctree, MySQL, and other ODBC compliant platforms.  Let’s review Crystal Reports design techniques:

  1. Designing Report vs. Query Building.  If you are new to Crystal Reports design, we certainly understand the temptation to use wizard to create report.  Unfortunately, we saw the results, when programmer was very disappointed and ended up complaining that report shows “duplicate” records, doesn’t show “all the records”, etc.  You should probably think about what report designer is and what it is not.  Crystal Reports is excellent report designer, but in order to provide report designer the records set you should use other tools.  Let’s move to the next paragraph
  2. Stored Procedures and SQL Views; unions.  The most flexible query building instrument is stored procedure.  Crystal Report should submit parameters to stored procedure and so create relevant records set for the report.  In SQL View you can use Crystal Report parameters for limiting view results to be included in the report.  Stored procedure, comparing to the SQL view, allows you to use internal temporary tables to build the most sophisticated result set – in view you can not use temp tables.  Unions allows you to combine Work, Posted and Historical transactions, for example to be included in report
  3. Example One.  Imagine you would like to display SOP work and historical invoices in the same report.  You should create SQL view, where you will unionize SOP10100 and SOP30200 tables, assuming that you would like to show each invoice total in the report
  4. Example Two.  Imagine, you are selling serialized items and you would like to show the report on Item history: from whom and when it was purchased, to whom and when it was sold.  In this case you create cross modules SQL view, where you join POP receiving lines and SOP historical tables