Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.05.2012, 10:25
Аватар для Hbrekk
Hbrekk Hbrekk вне форума
Прохожий
 
Регистрация: 10.05.2012
Адрес: Екатеринбург
Сообщения: 19
Версия Delphi: Delphi 7
Репутация: 10
Подмигивание dbgrid cellclick help

пишу диплом "электронный журнал"

есть таблицы Группы(id, name), Студенты(id, name, grupid), Предметы( id, name), Журнал(id, studentid, predmetid, data, ocenka)

нужно сделать:
  • по клику на группу что бы открывался список студенетов этой группы
  • по клику на студенту что бы открывался индивидуальный журнал ученика
    где указаны только его оценки по его предметам


помогите плиз не знаю как сделать

Последний раз редактировалось Hbrekk, 10.05.2012 в 11:00.
Ответить с цитированием
  #2  
Старый 10.05.2012, 11:46
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Когда диплом сдавать? Какая СУБД? Читай про ADO компоненты (в делфи прям такая вкладка есть). Читай про построение простейших SQL запросов.
В принципе при должном упорстве, абсолютно НИЧЕГО НЕ ЗНАЯ, все это можно реализовать за неделю-две.
А вот когда у тебя появятся конкретные вопросы или проблемы с реализацией, вот тогда и обращайся сюда. Добрые люди помогут.
__________________
Google в помощь
Ответить с цитированием
  #3  
Старый 10.05.2012, 11:50
Аватар для Hbrekk
Hbrekk Hbrekk вне форума
Прохожий
 
Регистрация: 10.05.2012
Адрес: Екатеринбург
Сообщения: 19
Версия Delphi: Delphi 7
Репутация: 10
Радость

диплом в начале июня
бд сделана через бде, в основном все для диплома готово, осталось только перечисленные пункты сделать, вот на них застрял надеюсь на вашу помощь
Ответить с цитированием
  #4  
Старый 10.05.2012, 11:53
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

используй параметризованые запросы в TQuery, свойство DataSource. при этом никакого кода писать не нужно.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 10.05.2012, 12:03
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

"по клику на группу что бы открывался список студенетов этой группы"
А где эти группы перечислены?
__________________
Google в помощь
Ответить с цитированием
  #6  
Старый 10.05.2012, 12:15
Аватар для Hbrekk
Hbrekk Hbrekk вне форума
Прохожий
 
Регистрация: 10.05.2012
Адрес: Екатеринбург
Сообщения: 19
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Ildar-tsr
"по клику на группу что бы открывался список студенетов этой группы"
А где эти группы перечислены?

Группы(id, name)
Ответить с цитированием
  #7  
Старый 10.05.2012, 13:16
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Hbrekk
Группы(id, name)
Какой компонент используется для их отображения?
__________________
Google в помощь
Ответить с цитированием
  #8  
Старый 10.05.2012, 13:19
Аватар для Hbrekk
Hbrekk Hbrekk вне форума
Прохожий
 
Регистрация: 10.05.2012
Адрес: Екатеринбург
Сообщения: 19
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Ildar-tsr
Какой компонент используется для их отображения?
DBGRID используется
Ответить с цитированием
  #9  
Старый 10.05.2012, 13:23
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

И когда ты выбрал строку (например группу 2) в гриде, ты хочешь чтоб в другом гриде отобразились все студики из 2 группы?
__________________
Google в помощь
Ответить с цитированием
  #10  
Старый 10.05.2012, 13:29
Аватар для Hbrekk
Hbrekk Hbrekk вне форума
Прохожий
 
Регистрация: 10.05.2012
Адрес: Екатеринбург
Сообщения: 19
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Ildar-tsr
И когда ты выбрал строку (например группу 2) в гриде, ты хочешь чтоб в другом гриде отобразились все студики из 2 группы?

ну примерно так
по тыку на грид , форм2 открывается , в ней грид и в этом гриде собственно студики выбранной группы отображаются
Ответить с цитированием
  #11  
Старый 10.05.2012, 14:07
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Для второго грида (где студики) пропиши запрос вроде этого:
Код:
select * from [Студенты] order by [name]
У грида есть событие onCellClick:
Код:
procedure TForm1.DBGrid1CellClick(Column: TColumnEh);
begin
  with TForm2.DBGrid1.DataSource.DataSet do
    begin
      if not Active then
        Open;
      Filter:= '(grupid = '+TForm1.DBGrid.DataSource.DataSet.FieldByName('id').AsString+')';
      Filtered:= true;
    end;
end;
__________________
Google в помощь
Ответить с цитированием
Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение:
Hbrekk (10.05.2012)
  #12  
Старый 10.05.2012, 16:29
Аватар для Hbrekk
Hbrekk Hbrekk вне форума
Прохожий
 
Регистрация: 10.05.2012
Адрес: Екатеринбург
Сообщения: 19
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Только что сделал бд из 2 таблиц через BDE

Группы ( Id , Grp)
Студенты ( Id, Fio, Grp)

Подсоеденил
Добавил на форму Query ->Params ->add item -> 'idd'
также у Params ->DataType -> Integer
Написал SQL запрос

Код:
Select Id, Fio
From Stude
Where grp=:idd;

Activ->true

Прописал код на DBGrid1 -> OnCellClick

Код:
 
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin

      Query2.ParamByName('idd').Value:=DBEdit4.Text;
      Query2.Open;
      DBGrid4.Visible:=true;
      Query2.Active:=false;
      Query2.Active:=true;

end;

Все замечательно работает, но когда стал аналогично делать в дипломном проекте ,при клике на группу вылетает ошибка

http://s2.ipicture.ru/Gallery/Viewfull/10482455.html

Понять не могу что за ошибка, раз 10 переделывал в дипломной работе все она вылетает, гугл не помог. (
Ответить с цитированием
  #13  
Старый 10.05.2012, 17:35
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Ну раз idd у тебя ftInteger, то нужно наверно так:
Код:
Query2.ParamByName('idd').Value:= StrToInt(DBEdit4.Text);
И что вообще за бред? Ты задал параметр, затем открыл кверик (хотя возможно он уже открыт=/), сделал грид видимым зачем то, если потом ты опять закрываешь-открываешь этот многострадальный кверик.
Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  if Query2.Active then //если открыт, то
    Query2.Close;         //закрываем
  Query2.ParamByName('idd').Value:= StrToInt(DBEdit4.Text); //задаем значение параметра
  Query2.Open; //получаем результат запроса
  DBGrid4.Visible:=true; //отображаем грид
end;
__________________
Google в помощь
Ответить с цитированием
Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение:
Hbrekk (10.05.2012)
  #14  
Старый 10.05.2012, 17:44
Аватар для Hbrekk
Hbrekk Hbrekk вне форума
Прохожий
 
Регистрация: 10.05.2012
Адрес: Екатеринбург
Сообщения: 19
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Код:
Query2.Active:=false;
Query2.Active:=true;

без этого бреда таблица не обновляется ))

проблему решил (DBEdit4 забывал подключить) написал как описано выше

Всем большое спасибо , кто давал подсказки)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter