Recent

Author Topic: LazReport help  (Read 5037 times)

SteenJorgensen

  • Jr. Member
  • **
  • Posts: 68
LazReport help
« on: August 01, 2021, 11:14:38 am »
I need to be able to make a report that sums up a field (Value) based on a unique field (Name). This should be done in Scrips with an array of variables.
SQL text is simple from the application as it must be used for many other purposes "Select * from MyTable where id ="2"


Database (MyTable) values:

ID   Name      Value
2    Anders J    4
2    Tove H      2
2    Tove H      4
2    Anders J   8
2    Anders S  3
3    Anders S  3
4    Anders J   8


Dataset have 5 rows because of id=2 and final result should be 3 lines because the unique Name:
Anders J 12
Tove H 6
Anders S 3

I have done this before many years ago for a customer but can no longer find this nor documentation for LazReport.

Thinking I'm need to create a array of variabler of all different name and for every row sum up???

Any hint? I will by so pleased.
« Last Edit: August 01, 2021, 11:25:40 am by SteenJorgensen »
----------------------------------------
Lazarus version 2.0.12 64-bit
FPC 3.2.0

korba812

  • Sr. Member
  • ****
  • Posts: 391
Re: LazReport help
« Reply #1 on: August 01, 2021, 12:19:18 pm »
This can be achieved in many ways. The easiest way to do this is to use "sum" and "group by" in your SQL query:
Code: SQL  [Select][+][-]
  1. SELECT Id, Name, SUM(VALUE) FROM MyTable WHERE Id="2" GROUP BY Id, Name
  2.  
« Last Edit: August 01, 2021, 12:22:21 pm by korba812 »

SteenJorgensen

  • Jr. Member
  • **
  • Posts: 68
Re: LazReport help
« Reply #2 on: August 01, 2021, 02:11:24 pm »
Thanks for your answer.  :D

But i have a const sql query named "select * from MyTable where....." So the customer can make new report in the furture without make changes in application.

So it must be programed in the script function in the report.
----------------------------------------
Lazarus version 2.0.12 64-bit
FPC 3.2.0

korba812

  • Sr. Member
  • ****
  • Posts: 391
Re: LazReport help
« Reply #3 on: August 01, 2021, 04:16:38 pm »
Another way would be to use group band, but then you have to provide sorted data according to the group key.

SteenJorgensen

  • Jr. Member
  • **
  • Posts: 68
Re: LazReport help
« Reply #4 on: August 02, 2021, 10:23:36 am »
WOW.... Thanks, just what i need.

Now all works. I must find the documentations for LazReport, there are so many functions i dont know.
----------------------------------------
Lazarus version 2.0.12 64-bit
FPC 3.2.0

 

TinyPortal © 2005-2018