using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;
namespace FastReport
{
public class ReportScript
{
// list of visible groups
private List<string> expandedGroups = new List<string>();
private void GroupHeader1_BeforePrint(object sender, EventArgs e)
{
// check if current group is visible
string groupName = ((String)Report.GetColumnValue("Products.ProductName")).Substring(0, 1);
bool groupVisible = expandedGroups.Contains(groupName);
// toggle objects visibility
Data1.Visible = groupVisible;
GroupFooter1.Visible = groupVisible;
// toggle indicator
CheckBox1.Checked = !groupVisible;
}
private void CheckBox1_Click(object sender, EventArgs e)
{
// get a group name
string groupName = (sender as CheckBoxObject).Hyperlink.Value;
// toggle group
if (expandedGroups.Contains(groupName))
expandedGroups.Remove(groupName);
else
expandedGroups.Add(groupName);
// refresh the report
Report.Refresh();
}
}
}