[This is preliminary documentation and is subject to change.]

Adds a new group to the BusinessProcess

Namespace:  Firefly.Box.Advanced
Assembly:  Firefly.Box (in Firefly.Box.dll) Version: 3.4.23.6473 (3.4.23.6473)

Syntax

C#
public Group Add(
	ColumnBase monitoredColumn
)
Visual Basic (Declaration)
Public Function Add ( _
	monitoredColumn As ColumnBase _
) As Group
Visual C++
public:
Group^ Add(
	ColumnBase^ monitoredColumn
)

Parameters

monitoredColumn
Type: Firefly.Box.Data.Advanced..::.ColumnBase
The column that is monitored for change

Return Value

an Group that monitors the column's change between rows.

Examples

Groups
This example is in the form of Unit Tests. It references the NUnit framework. This framework can be downloaded from www.NUnit.org. For more information about unit testing visit: www.NUnit.org.
This example is based on test data. The code for the entities included in this test data can be found in the documentation of Entity
CopyC#
using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
using Firefly.Box;
using Firefly.Box.Testing;

namespace TestFirefly.Box.Documentation
{
    [TestFixture]
    public class GroupsDemo
    {
        [Test]
        public void GroupsDemo1()
        {
            var employees = new Pubs.Employees();
            var jobs = new Pubs.Jobs();
            employees.InitializeWithTestData();
            jobs.InitializeWithTestData();

            var bp = new BusinessProcess()
            {
                From = employees
            };
            bp.Relations.Add(jobs, jobs.Id.IsEqualTo(employees.JobId));
            bp.OrderBy.Segments.Add(employees.JobId);
            bp.Where.Add(employees.JobId.IsLessOrEqualTo(5));

            var g = bp.Groups.Add(employees.JobId);

            string resultingReport = "";
            int numberOfEmployeesPerJob = 0;
            g.Enter += () =>
            {
                numberOfEmployeesPerJob = 0;
                resultingReport += jobs.Description.Value.Trim() + ":\n";
            };
            bp.LeaveRow += () =>
            {
                resultingReport += employees.LastName.Value.Trim() + "\n";
                numberOfEmployeesPerJob++;
            };
            g.Leave +=
                () =>
                resultingReport +=
                "Total for job " + jobs.Description.Value.Trim() + " - " + numberOfEmployeesPerJob + "\n";
            bp.Run();

            resultingReport.ShouldBe(
            "Chief Executive Officer:\n" +
            "Cramer\n" +
            "Total for job Chief Executive Officer - 1\n" +
            "Business Operations Manager:\n" +
            "Devon\n" +
            "Total for job Business Operations Manager - 1\n" +
            "Chief Financial Officier:\n" +
            "Chang\n" +
            "Total for job Chief Financial Officier - 1\n" +
            "Publisher:\n" +
            "Hernadez\n" +
            "Labrune\n" +
            "Lebihan\n" +
            "Pontes\n" +
            "Henriot\n" +
            "Muller\n" +
            "Ottlieb\n" +
            "Total for job Publisher - 7\n");

        }
    }
}

See Also