Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > EhLib создание строк в DbGridEh


Автор: FishBon 11.4.2013, 17:28
Здравствуйте. Помогите пожалуйста в решении проблемы.
Есть БД Access: две таблицы сотрудники и время.
Использую связку AdoConnection-AdoDataDriverEhGrid-MemTableEh-DataSource-DbgridEh
в таблице время отображается время и дата когда сотрудник отпрашивался с работы, и когда отработал (рис.1):
user posted image
Естественно заполняться она будет не в каждый день, а помере как сотрудники отпрашиваются или отрабатывают, соответственно числа будут не по порядку.
В dbgrideh хочу выводить данные, по каждому дню текущего месяца, такого вида (рис.2):
user posted image
чтобы пользователь работающий с программой проставлял время прямо в DbgriEh, но физически в БД данные идут не по числам (рис. 1)
Пробовал через вычисляемое поле, его сделал в MemTableEh и в событии OnCalcFields пишу: 
Код

for I := 0 to DaysInMonth(Now) do
  begin
  MemTableEhGridвычисляемое_поле.AsInteger:= MemTableEhGrid.RecNo;
  end;

Подскажите как можно это сделать?

Автор: FishBon 17.4.2013, 10:23
неужели ни кто не подскажет?

Автор: Akella 17.4.2013, 10:57
Нужно вникнуть в твой вопрос вначале  smile 
Ты уверн, что именно так хочешь сделать?

Добавлено через 30 секунд
Цитата(FishBon @  11.4.2013,  17:28 Найти цитируемый пост)
Подскажите как можно это сделать?



Ещё раз. Что ИМЕННО?

Автор: FishBon 17.4.2013, 11:38
В БД числа будут идти не по порядку, так как на каждого сотрудника будет вестись запись по числам когда он брал отгул. Это будет выглядеть в БД, как например (рис. 1): сотрудник под номером 5 (Id_Sotrud) брал отгул 09 и 11 числа на определенное время.
А пользователю (который будет вести учет) необходимо на форме в dbgrideh отображать по порядку все числа текущего, соотвественно с 01 по 30 (рис. 2), в строках которых будет записи где были отгулы, а остальные пустые.
Если я вывожу инфу запросом из БД, оно мне показывает естественно только числа где есть записи.
А как сделать чтобы отображались все строки месяца?

Автор: Akella 17.4.2013, 12:21
Цитата(FishBon @  17.4.2013,  11:38 Найти цитируемый пост)
сотрудник под номером 5 (Id_Sotrud) брал отгул 09 и 11 числа на определенное время.


ну и сортируй по этим двум полям
Код
order by Id_Sotrud, data_holiday


Добавлено через 55 секунд
Цитата(FishBon @  17.4.2013,  11:38 Найти цитируемый пост)
А пользователю (который будет вести учет) необходимо на форме в dbgrideh отображать по порядку все числа текущего, соотвественно с 01 по 30 (рис. 2),

значит сортируй по жтому полю

Добавлено через 1 минуту и 24 секунды
дай пользователою возможность самому выполнять сортировку, а сам задай некую начальную сортировку, сортировку по умолчанию smile

Добавлено через 2 минуты и 2 секунды
Цитата(FishBon @  17.4.2013,  11:38 Найти цитируемый пост)
Если я вывожу инфу запросом из БД, оно мне показывает естественно только числа где есть записи.
А как сделать чтобы отображались все строки месяца? 



ошибка в 17ой строке

Автор: Isaev 3.4.2014, 05:07
Не буду плодить лишние темы
Используя такую же связку: AdoConnection-AdoDataDriverEhGrid-MemTableEh-DataSource-DbgridEh
Как можно ли программно создать таблицу?

Автор: Akella 3.4.2014, 12:03
Видимо, SQL-запросом. Пиши в соответствующий раздел по используемой СУБД.

Автор: Isaev 3.4.2014, 12:12
Цитата(Akella @  3.4.2014,  12:03 Найти цитируемый пост)
Видимо, SQL-запросом. 

Это то как раз ясно, проблема в том, с помощью каких методов какого компонента он передаются
Создал базу данных пустую, накидал компоненты, связал их, подключился
А наполнить её надо бы программно

Автор: Akella 5.4.2014, 10:26
Это написано в любой книге типа Delphi + Базы данных для начинающих или можно поискать уроки типа Базы данных в Delphi.

Автор: Isaev 5.4.2014, 20:10
Цитата(Akella @ 5.4.2014,  10:26)
Это написано в любой книге типа Delphi + Базы данных для начинающих

Обычно в книгах не описывают работу с коммерческими компонентами
по крайней мере я ни разу не видел ни в одной

Автор: Akella 7.4.2014, 09:07
Принцип выполнения SQL запросов у всех одинаковый. Мало того, компоненты ADO не считаются коммерческими, т.к. идут в "комплекте" с Delphi.

Добавлено через 1 минуту и 24 секунды
Цитата(Isaev @  3.4.2014,  05:07 Найти цитируемый пост)
Как можно ли программно создать таблицу? 


если тебе лень придумать запрос, то вот: https://www.google.com/search?q=sql+create+table&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a&channel=fflb

Автор: DYUMON 7.4.2014, 14:51
ни фига не понял суть вопроса, но что то тут не так  smile 

Автор: Isaev 7.4.2014, 16:39
Цитата(Akella @ 7.4.2014,  09:07)
Принцип выполнения SQL запросов у всех одинаковый. Мало того, компоненты ADO не считаются коммерческими, т.к. идут в "комплекте" с Delphi.

Добавлено @ 09:09
Цитата(Isaev @  3.4.2014,  05:07 Найти цитируемый пост)
Как можно ли программно создать таблицу? 


если тебе лень придумать запрос, то вот: https://www.google.com/search?q=sql+create+table&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a&channel=fflb

Читаете хоть вопрос то? 
Я же написал, используется связка: AdoConnection-AdoDataDriverEhGrid-MemTableEh-DataSource-DbgridEh
EhLib - коммерческий компонент

что с составлением запроса нет проблемм я тоже написал, sql знаю

проблема в том, какой метод какого компонента из этой EhLib отвечает за передачу этого SQL запроса
И всего лишь... Если с ним не работали и не можете ответить, зачем писать бред?
Если можете, напишите ответ одной строкой


Автор: superVad 8.4.2014, 11:43
Isaev, берешь TADOQuery и исполняешь в нем любые запросы. Или тебе обязательно в гамаке и стоя?

Автор: Akella 8.4.2014, 16:41
При чем здесь эта связка?

Добавлено @ 16:43
Цитата(Isaev @  7.4.2014,  16:39 Найти цитируемый пост)
проблема в том, какой метод какого компонента из этой EhLib отвечает за передачу этого SQL запроса


Библиотека EhLib тут при чём? EhLib - это не один компонент, а цела библиотека, где живут несколько разных компонент.

Автор: Akella 9.4.2014, 08:52
Цитата(Isaev @  7.4.2014,  16:39 Найти цитируемый пост)
Если с ним не работали и не можете ответить, зачем писать бред?

Как раз бред пишешь ты

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