Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2009, 17:04   #1
rubi
Пользователь
 
Регистрация: 01.09.2007
Сообщений: 35
По умолчанию Табель в DBGrid

Всем здравствуйте. Возникла проблема, которая, по-видимому, уже неоднократно поднималась в Сети. Суть в том, что необходимо в DBGrid разместить Табель рабочего времени сотрудников. Т.е. в левом столбце должны быть перечислены сотрудники, остальные столбцы соответствуют числам месяца (например, от 1 до 31 - это заголовки столбцов) и в их ячейках отражается тип рабочего времени (смена, выходной, отпуск и т.д. - это не так важно).
Вопрос в том, как сформировать удобное представление соответствия между сотрудником, датой и типом рабочего времени. Делать это путем прописывания предопределенного кода (выполнения запроса) на заполнение каждой ячейки - наверное, тормознет сильно, да и интерактивность не будет обеспечена (при изменении данных в DBGrid они не изменятся в БД).
Так вот, во-первых, нужно сделать, чтобы количество столбцов соответствовало количеству дней в выбранном месяце. На самом деле это не такая уж и большая проблема, можно просто вычислить количество запросом и задать его. Интересно, можно ли это сделать как-то без запроса (настройками, например). Во-вторых, есть таблица в БД, которая содержит все необходимые данные - дату, сотрудника и тип рабочего времени. Но как сделать, чтобы в DBGrid заголовки были числами месяца, левый столбец - сотрудники, а в ячейках - тип рабочего времени?
rubi вне форума Ответить с цитированием
Старый 03.02.2009, 17:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
чтобы в DBGrid заголовки были числами месяца
Ну вообще то у каждой колонки DBGrid есть свойство Caption (или Text точно не помню) вот их и меняй.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2009, 17:15   #3
rubi
Пользователь
 
Регистрация: 01.09.2007
Сообщений: 35
По умолчанию

Ну что касается того, как задать заголовок столбцу, то это не проблема . Вопрос в том, как такой срез данных представить в описанном виде в DBGrid. Желательно либо автоматически (путем настроек, привязок и т.д. и т.п.), либо написания обработчиков событий. Просто хотелось бы услышить конкретные мнения, предложения, мысли и все что угодно.
rubi вне форума Ответить с цитированием
Старый 03.02.2009, 18:54   #4
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Цитата:
Сообщение от rubi Посмотреть сообщение
Ну что касается того, как задать заголовок столбцу, то это не проблема . Вопрос в том, как такой срез данных представить в описанном виде в DBGrid. Желательно либо автоматически (путем настроек, привязок и т.д. и т.п.), либо написания обработчиков событий. Просто хотелось бы услышить конкретные мнения, предложения, мысли и все что угодно.
либо использовать компоненты DevExpress либо использовать Stringgrid!!!
имхо
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 03.02.2009, 20:03   #5
rubi
Пользователь
 
Регистрация: 01.09.2007
Сообщений: 35
По умолчанию

Попробую перефразировать вопрос. Есть таблица в БД, которая содержит три Primary key: Сотрудник, число месяца и тип рабочего времени. Как можно раскидать эти поля по: левый столбец (сотрудник), заголовки столбцов (числа) и сами ячейки (тип рабочего времени)?
rubi вне форума Ответить с цитированием
Старый 03.02.2009, 22:31   #6
unknown34
Новичок
Джуниор
 
Регистрация: 03.02.2009
Сообщений: 2
По умолчанию

в табле добавь поля в нужном порядке и все
Сайт по разработке аппаратуры, электроники, железыа
http://www.expert-electro.tu2.ru/
unknown34 вне форума Ответить с цитированием
Старый 04.02.2009, 12:31   #7
plato
Форумчанин
 
Регистрация: 23.01.2009
Сообщений: 107
По умолчанию

ну, во-первых, ты таблицу переделай
фио сотрудника надо хранить в отдельной таблице
а в сводной только его Id
это исключит возможные ошибки
а потом, как вариант
справа выводишь в СтрингГрид список всех сотрудников, и для кадого выборку из базы с его ID
и не забудьте подарить детям шоколадку
plato вне форума Ответить с цитированием
Старый 08.02.2009, 20:56   #8
Junsui
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 12
По умолчанию

Сама только начинаю Delphi изучать, решила попробовать табель написать. Пользуюсь компонентом TreeList из DevExpress, две таблицы в базе, одна с ФИО сотрудника, вторая содержит id сотрудника, дату и часы отработанного времени.
в трилисте создала две полосы. Первую заполняю таблицей с сотрудниками. Во второй динамически создаю столбцы количеством дней в текущем месяце и заголовки соответственно с 1 по количество дней.
А вот что делать дальше, я не знаю. Может кто подскажет?
Junsui вне форума Ответить с цитированием
Старый 09.02.2009, 10:46   #9
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

rubi, можно обойтись TfrxDBCrossView (FastReport) или, если очень уж на стороне БД надо, то полистайте вот это http://www.delphiplus.org/articles/i...y/1/index.html
Антон Ю.Б. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBGrid!!! Durachka Помощь студентам 1 05.11.2008 21:44
Помогите создать табель hELP_ Microsoft Office Excel 2 27.10.2008 15:30
DBGrid Ane4ka БД в Delphi 28 01.06.2008 10:00
Работа с String Grid - помогите написать "Табель рабочего времени" Deicider Помощь студентам 3 29.11.2006 20:59