I have a requirement of creating a report that groups the output , on the basis of the grouping option selected by the user. The report primarily has to group on bass of the following parameters:
Customer,Salesperson Code,City,State (coming from Customer table) and
Global Dimension 1 (i.e. Location) and
Global Dimension 2 (i.e. Branch) (coming from the Location table). I had decided to initially test the grouping only on Customer fields. So this is how I did it:
Keys on Customer DataItem is set to
Salesperson,City,State Code. and group total fields
No.,Salesperson Code,City,State Code
Have made a
separate GroupHeader for every grouping parameter. So in this there would be 4 GHs.
On every OnPresection written the following codes:
***** For Customer Grouping****
IF GroupBy = GroupBy::Customer THEN
BEGIN
Customer.SETCURRENTKEY("No.");
CurrReport.SHOWOUTPUT := CurrReport.TOTALSCAUSEDBY = Customer.FIELDNO(Customer."No.")
END
ELSE
CurrReport.SHOWOUTPUT := FALSE;
*******For Salesperson Code*********
IF GroupBy = GroupBy::Salesperson THEN
BEGIN
Customer.SETCURRENTKEY("Salesperson Code",City,"State Code");
CurrReport.SHOWOUTPUT := CurrReport.TOTALSCAUSEDBY = Customer.FIELDNO(Customer."Salesperson Code")
END
ELSE
CurrReport.SHOWOUTPUT := FALSE;
And so on for other parameters. Where GroupBy is an Option variable.
However, the Report output comes out blank.
Any suggestion would be highly appreciated.
Comments
1) Set the GroupTotalFields property of the Customer dataitem to "No.","Salesperson Code"
2) Use SETCURRENTKEY to set the appropriate key in the OnPreDataitem trigger (not on OnPreSection triggers)
3) Use TOTALSCAUSEDBY in the OnPreSection triggers to show/hide sections (as you are doing)