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(); } } }