|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
dbgrid cellclick help
пишу диплом "электронный журнал"
есть таблицы Группы(id, name), Студенты(id, name, grupid), Предметы( id, name), Журнал(id, studentid, predmetid, data, ocenka) нужно сделать:
помогите плиз не знаю как сделать Последний раз редактировалось Hbrekk, 10.05.2012 в 11:00. |
#2
|
||||
|
||||
Когда диплом сдавать? Какая СУБД? Читай про ADO компоненты (в делфи прям такая вкладка есть). Читай про построение простейших SQL запросов.
В принципе при должном упорстве, абсолютно НИЧЕГО НЕ ЗНАЯ, все это можно реализовать за неделю-две. А вот когда у тебя появятся конкретные вопросы или проблемы с реализацией, вот тогда и обращайся сюда. Добрые люди помогут. Google в помощь |
#3
|
||||
|
||||
диплом в начале июня
бд сделана через бде, в основном все для диплома готово, осталось только перечисленные пункты сделать, вот на них застрял надеюсь на вашу помощь |
#4
|
||||
|
||||
используй параметризованые запросы в TQuery, свойство DataSource. при этом никакого кода писать не нужно.
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
"по клику на группу что бы открывался список студенетов этой группы"
А где эти группы перечислены? Google в помощь |
#6
|
||||
|
||||
Цитата:
Группы(id, name) |
#7
|
||||
|
||||
Цитата:
Google в помощь |
#8
|
||||
|
||||
Цитата:
|
#9
|
||||
|
||||
И когда ты выбрал строку (например группу 2) в гриде, ты хочешь чтоб в другом гриде отобразились все студики из 2 группы?
Google в помощь |
#10
|
||||
|
||||
Цитата:
ну примерно так по тыку на грид , форм2 открывается , в ней грид и в этом гриде собственно студики выбранной группы отображаются |
#11
|
||||
|
||||
Для второго грида (где студики) пропиши запрос вроде этого:
Код:
select * from [Студенты] order by [name] Код:
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
|
||||
|
||||
Только что сделал бд из 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
|
||||
|
||||
Ну раз 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
|
||||
|
||||
Код:
Query2.Active:=false; Query2.Active:=true; без этого бреда таблица не обновляется )) проблему решил (DBEdit4 забывал подключить) написал как описано выше Всем большое спасибо , кто давал подсказки) |