Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Двумерная матрица "Стандартов" в GridView


Автор: strill 9.11.2013, 13:29
Помогите с реализацией двумерной матрицы стандартов.

Есть размеры высоты и ширины, к примеру 100, 150 и 200, 250. (количество заранее неизвестно)
Для комбинации высоты и ширины задаются значения: True(стандарт) ,False (не стандарт),Null(невозможно выполнить)

X   Y   Значение
100 200 True
100 250 NULL
150 200 False
150 250 True


Y\X 100  150 
200 True False 
250 Null True

Хранится все в базе SQL в трех таблицах:

Код

CREATE TABLE [dbo].[StandartX](
    [Id] [uniqueidentifier] NOT NULL,
    [Name] [decimal](18, 3) NULL,
    [Descr] [nvarchar](200) NULL,
 CONSTRAINT [PK_StandartX] PRIMARY KEY CLUSTERED ([Id] ASC)
)

CREATE TABLE [dbo].[StandartY](
    [Id] [uniqueidentifier] NOT NULL,
    [Name] [decimal](18, 3) NULL,
    [Descr] [nvarchar](200) NULL,
 CONSTRAINT [PK_StandartY] PRIMARY KEY CLUSTERED ([Id] ASC)
)

CREATE TABLE [dbo].[StandartValue](
    [Id] [uniqueidentifier] NOT NULL,
    [IdX] [uniqueidentifier] NULL,
    [IdY] [uniqueidentifier] NULL,
    [Value] [bit] NULL,
 CONSTRAINT [PK_StandartValue] PRIMARY KEY CLUSTERED ([Id] ASC)
)

ALTER TABLE [dbo].[StandartValue]  WITH CHECK ADD  CONSTRAINT [FK_StandartValue_StandartX] FOREIGN KEY([IdX])
REFERENCES [dbo].[StandartX] ([Id])

ALTER TABLE [dbo].[StandartValue]  WITH CHECK ADD  CONSTRAINT [FK_StandartValue_StandartY] FOREIGN KEY([IdY])
REFERENCES [dbo].[StandartY] ([Id])


Пользователь может произвольно добавлять колонки X и строки Y, соответственно в базу записывается новое значение в таблицу [StandartX] и в [StandartY], и в таблицу значений [StandartValue] добавляются записи.А так же удалять эти колонки и строки. При этом идентификация идет по ИД (Guid)

Отображение необходимо реализовать в GridView, заголовки колонок - значения по X (поле Name из таблицы [StandartX]), строки - значения по Y (поле Name из таблицы [StandartY]), значения в пресечении колонок X и строк Y - из таблицы значений [StandartValue].

Подскажите, какую структуру лучше использовать для этого? Массив массивов я так понимаю не подойдет, так как неизвестно общее количество значений по X и Y.
При этом данная структура должна "знать" об изменениях, которые пользователь вносит, то есть устанвив значение в ячейку (True, False, Null), данная структура обновляет значение.

Думал использовать List<T> по классу:
Код

        private class DataXY
        {
            public String NameY { get; set; }
            public Guid IdY { get; set; }

            public String NameX { get; set; }
            public Guid IdX { get; set; }

            public Guid IdValue { get; set; }
            public Boolean? Value { get; set; }
        }


Но не могу понять, как отобразить это в GridView.
(GridView от DevExpress, но это не суть проблемы)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)