Вложенная матрица в ReportViewer из класса - PullRequest
1 голос
/ 17 января 2012

Я надеюсь, что кто-то может помочь с этим, я создал собственный класс объектов, который содержит несколько частей данных и несколько списков. Я заполняю объект, используя несколько SQL-запросов и некоторые вычисления C #.

Внутри объекта у меня есть следующее,

private int cell_id;
    private string cell_name;
    private string cell_supervisor;
    private double cell_target;
    private double cell_routing_target, cell_attended_target, cell_lost_time_target, cell_unaccounted_time_target, cell_absence_target;
    private List<string> cell_machinists;
    private List<double> cell_routing_actual, cell_attended_actual, cell_lost_time_actual, cell_unaccounted_time_actual, cell_absence_actual;
    private List<int> cell_ncr_qty;
    private List<double> cell_ncr_cost;
    private List<int> cell_timelost;

Идея состоит в том, что я бы назначил имя ячейки, супервизора и т. Д., А затем сопоставил бы с этой ячейкой людей с их реальными оценками.

Я называю объект так:

results = new Cell(1, "Cell name 1", 80.00);
            results.setSupervisor("John Doe");
            results.setTargets(90, 90, 7, 3, 6.5);
            results.setMachinist("Bob Oblong", 76, 98, 0, 1, 2, 0, 0, 1);
            results.setMachinist("Mary Mask", 72, 91, 0, 1, 2, 0, 0, 1);
this.CellBindingSource.DataSource = results;

            this.reportViewer1.RefreshReport();

Вопрос в том, как мне настроить отчет, чтобы перечислить все ячейки в нужном мне формате, а внутри этих ячеек перечислить машинистов ????

Пример вывода отчета: Report Output Example

Полный код класса ниже:

public class Cell
{
    private int cell_id;
    private string cell_name;
    private string cell_supervisor;
    private double cell_target;
    private double cell_routing_target, cell_attended_target, cell_lost_time_target, cell_unaccounted_time_target, cell_absence_target;
    private List<string> cell_machinists;
    private List<double> cell_routing_actual, cell_attended_actual, cell_lost_time_actual, cell_unaccounted_time_actual, cell_absence_actual;
    private List<int> cell_ncr_qty;
    private List<double> cell_ncr_cost;
    private List<int> cell_timelost;

    public Cell(int id, string name, double target)
    {
        cell_id = id;
        cell_name = name;
        cell_target = target;
    }
    public void setSupervisor(string name){
        cell_supervisor = name;
    }

    public void setTargets(double routings, double attended, double losttime, double unacccounted, double abscence)
    {
        cell_routing_target = routings;
        cell_attended_target = attended;
        cell_lost_time_target = losttime;
        cell_unaccounted_time_target = unacccounted;
        cell_absence_target = abscence;
    }
    public void setMachinist(string name, double routings, double attended, double lost_time, double unaccounted_time, int ncr_qty, double ncr_cost, int time_lost, double absence)
    {
        cell_machinists.Add(name);
        cell_routing_actual.Add(routings);
        cell_attended_actual.Add(attended);
        cell_lost_time_actual.Add(lost_time);
        cell_unaccounted_time_actual.Add(unaccounted_time);
        cell_ncr_qty.Add(ncr_qty);
        cell_ncr_cost.Add(ncr_cost);
        cell_timelost.Add(time_lost);
        cell_absence_actual.Add(absence);
    }


    public string CellName
    {
        get {
            return cell_name;
        }
    }

    public string Supervisor
    {
        get
        {
            return cell_supervisor;
        }
    }
    public List<string> Machinists
    {
        get
        {
            return cell_machinists;
        }
    }

}

1 Ответ

1 голос
/ 22 июня 2012

Используйте вложенные списки и подотчеты - короткий ответ!

...