public itemComparer(CustomDataSource <T> owner, string sort) { string[] tokens = sort.Trim().Split(' '); string field = tokens[0]; for (int i = 0; i < owner._props.Length; i++) { if (string.Compare(owner._props[i].Name, field, true) == 0) { _prop = owner._props[i]; break; } } _descending = tokens.Length > 1 && tokens[tokens.Length - 1].ToLower().EndsWith("desc"); }
private void Form1_Load(object sender, EventArgs e) { // create a list of 'myobject' to use as a report datasource List <myobject> mylist = new List <myobject>(); mylist.Add(new myobject("Aaron", "674 Alcatraz", true)); mylist.Add(new myobject("Joe", "123 Main", true)); mylist.Add(new myobject("Mary", "456 Main", false)); mylist.Add(new myobject("Dwayne", "789 Main", true)); mylist.Add(new myobject("Debbie", "444 High", true)); mylist.Add(new myobject("Paul", "555 High", false)); // create custom data source CustomDataSource <myobject> mydatasource = new CustomDataSource <myobject>(mylist); // assign custom data source to report this.c1Report1.DataSource.Recordset = mydatasource; // create a simple report definition Rectangle rc = new Rectangle(0, 0, 1500, 250); Section detail = c1Report1.Sections.Detail; detail.Visible = true; detail.Height = 300; FieldCollection fields = detail.Fields; Field f = fields.Add("fname", "name", rc); f.Calculated = true; rc.Offset(rc.Width, 0); f = fields.Add("faddress", "address", rc); f.Calculated = true; rc.Offset(rc.Width, 0); f = fields.Add("factive", "active", rc); f.Calculated = true; f.CheckBox = CheckBoxEnum.CheckBox; // add a group in order to apply sorting Group g = c1Report1.Groups.Add("group1", "name", SortEnum.Ascending); }