Сводная таблица. Реализация.
От: HAL707  
Дата: 15.01.07 18:03
Оценка:
Здравствуйте.

Хочу задать такой вопрос:
Пусть у нас имеется DataSet с таблицами Customers (ID_PK, Cust_name), Products (ID_PK, prod_name),
Orders (Prod_name_FK, Cust_name_FK, quantity)

Можно ли (если можно, то как?) в DataGrid'e отобразить информацию о заказчиках/заказах/продукта в следующем виде:
По строкам — Заказчики
По столбцам — Продукты
На пересечении строки и столбца — количество заказанного продукта,
и при этом обеспечить связь (Binding) с DataSet при редактировании количества заказанного продукта в гриде?
Re: Сводная таблица. Реализация.
От: _FRED_ Черногория
Дата: 16.01.07 08:22
Оценка:
Здравствуйте, HAL707, Вы писали:

HAL>Хочу задать такой вопрос:

HAL>Пусть у нас имеется DataSet с таблицами Customers (ID_PK, Cust_name), Products (ID_PK, prod_name),
HAL>Orders (Prod_name_FK, Cust_name_FK, quantity)

HAL>Можно ли (если можно, то как?) в DataGrid'e отобразить информацию о заказчиках/заказах/продукта в следующем виде:

HAL>По строкам — Заказчики
HAL>По столбцам — Продукты
HAL>На пересечении строки и столбца — количество заказанного продукта,
HAL>и при этом обеспечить связь (Binding) с DataSet при редактировании количества заказанного продукта в гриде?

Без танцов с бубном — фиг. А если яйца не мешают, то делай класс, с одной стороны которого — грид, с другой датасет, который следит за изменением таблиц (таблицы предоставляют для этого необходимые события) и изменяет соответствующим образом грид. Вот и весь простецкий биндинг. Это первый этап. Если нужен очень удобный биндинг, то можно для этого дела свой BindingManagerBase реализовать (CurrenceManager и PropertyManager не подойдут) и над DesignMode потрудиться.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Сводная таблица. Реализация.
От: HAL707  
Дата: 16.01.07 10:35
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Без танцов с бубном — фиг. А если яйца не мешают, то делай класс, с одной стороны которого — грид, с другой датасет, который следит за изменением таблиц (таблицы предоставляют для этого необходимые события) и изменяет соответствующим образом грид. Вот и весь простецкий биндинг. Это первый этап. Если нужен очень удобный биндинг, то можно для этого дела свой BindingManagerBase реализовать (CurrenceManager и PropertyManager не подойдут) и над DesignMode потрудиться.


Понятно. Что же, придется ручками щаманить...
Спасибо.
Сводная таблица. Реализация.
От: Аноним  
Дата: 15.01.07 21:58
Оценка:
в первую очередь надо правильно спроектировать БД.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Сводная таблица. Реализация.
От: Аноним  
Дата: 16.01.07 05:42
Оценка:
2yar_coder:
Гм... а с каких это пор требования отображения определяют структуру хранения данных???

С точки зрения нормализации — всё тру)
Есть заказчики, продукты, отношение "многие-ко-многим" — заказы.

Есть более разумные решения?

В стандартном гриде это селать точно низзя.
Навскидку — reporting services держат pivot tables (сводные таблицы), но с обновлениями... только ручками.
Ещё можно поискать у DevExpress и Component One.
Или — ф гугль
http://www.google.ru/search?hl=ru&amp;q=pivot+dataset+binding&amp;lr=
2-я ссылка: http://aspalliance.com/538_CodeSnip_Pivot_Tables_with_ADONET_and_Display_in_a_DataGrid_Paged_Horizontally


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Сводная таблица. Реализация.
От: Аноним  
Дата: 16.01.07 07:53
Оценка:
С точки зрения нормализации всё тру? и где же тут отношение "многие-ко-многим" между заказами и продуктами?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.