Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание DBGrid'a из нескольких таблиц, проблема в запросе или в руках? 
:(
    Опции темы
ParaNO1k
Дата 15.6.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Часть проблемы решена, для того чтобы отображать данные из таблицы jurnal использую код предложенный Romikgy
Код

SELECT uch.fam, uch.name, jurnal.ocenka
FROM uch, jurnal
WHERE jurnal.id_uch=uch.id_uch and uch.id_node=3
ORDER BY uch.fam;

Только с той поправкой, что была изменена база: были удалены связи таблицы jurnal с таблицами predmet и ocenka.
Используя следующий код добавляю всем учащимся класса, дату и номер урока:
Код

INSERT INTO Jurnal ( id_uch, data, nom_uroka, predmet, ocenka )
SELECT id_uch, Format("12.12.2009","mm\/dd\/yyyy\"), 1, "??", ""
FROM uch
WHERE id_node = 3;

Где за место вопросиков будет ставится предмет, но в виде текстового поля, так как он будет указываться во время создания урока в какую то дату. А оценка будет добавлятся позже отдельно, так же как текст (убрал связи).
Теперься такая проблема, как сделать выпадающий список оценок, чтобы заносились не ID поля, а его текстовку, потому что связи пришлось убрать...
PM MAIL ICQ   Вверх
Romikgy
Дата 15.6.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



ParaNO1k, у тя много оценок будет  ? имхо проще выбросить эту табл и писать цифры напрямую,
по просьбе, кидай комбобокс , и заполняй его из БД текст как текстовые оценки , объекты как ид текстовой оценки (юзая AddObject)


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ParaNO1k
Дата 15.6.2009, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Оцени 1..5 + Н, того 6, я бы с удовольствием, всё выкинул, но нельзя... ещё немного осталось smile
Попробую, а можно в DBGrid или DBGridEh как нить реализовать LookUp поле из уже готовых значений (программно забить эти оценки), чтобы они не брались из БД, тем самым облегчить себе работу и  лишний раз не юзать БД?
PM MAIL ICQ   Вверх
Romikgy
Дата 15.6.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Цитата(ParaNO1k @  15.6.2009,  15:27 Найти цитируемый пост)
реализовать LookUp 

низнаю насчет этого , я вообще пытался не юзать компоненты из db кучи 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ParaNO1k
Дата 15.6.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Хорошо, поробую, как сделаю/не сделаю отпишусь! smile 
PM MAIL ICQ   Вверх
flomaster
Дата 16.6.2009, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 28.12.2007
Где: СПб

Репутация: нет
Всего: нет



Вы хотите сделать Пустую страницу (шаблон) Журнала, наподобие как в Екселе?
Чтобы учитель, открыв Вашу таблицу проставлял оценки?
Либо надо добавлять каждый день на каждого ученика по каждому предмету пустую запись, и ее редактировать в гриде, либо иметь  гемор с редактированием через ДБГрид несуществующих еще записей.
Код

//Готовим шаблон на новый день по всем предметам и ученикам
 INSERT INTO jurnal (PredmetID, id_uch, UchDate )
 SELECT Predmets.PredmetId, uchs.id_uch, Date() 
 FROM Predmets, Uchs;

Дальше как обычно делаем датасет, открываем редактируем...
Только указывайте соответствующие условия (ParamClass и ParamPredmet)
Код

Select ... from Uchs inner join jurnal ON uchs.id_uch = jurnal .id_uch
WHERE (uchs.id_node =:ParamClass and jurnal.PredmetID= :ParamPredmet);


Рекомендую изменить название поля Date, т.к. будут неудобства в дальнейшем.
Полям jurnal.predmet и predmet.id дать одно название напр, в [PredmetId] и т.д.
К слову, использование одинаковых названий для полей и таблиц ведет к путанице в голове. 
Удобно для таблиц как название использовать существительное множественного числа, для поля - единственного числа.
Применение таблицы "Оценка" - вообще бессмысленно, если Вы планируете там указывать цифровые обозначения оценок.

Для использования поля подстановки его нужно создать дизайнером в ДатаСете.
В гриде оно появится автоматом.


Это сообщение отредактировал(а) flomaster - 16.6.2009, 02:17
PM MAIL   Вверх
ParaNO1k
Дата 16.6.2009, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Спасибо за предложенную идею, но данную часть задачи я уже решил, почти аналогичным способом, написанную ранее (или выше, в начале страницы)).
Сейчас у меня проблема с созданием отчета для вывода на печать...
Необходимо выводить в ДБГрид(Ех) (или ещё куданить откуда можно распечатать без особых проблем), следующие очеты:
1) список учащихся, а так же предметы и уроки с оценками за определенный промежуток времени; (наверное придется отказаться, слишком тяжело на вывод и не удобно в печати из-за возможного большого кол-ва данных)
2) список учащихся и оценки по конкретному предмету за промежуток времени;
3) для каждого учащегося отдельный отчет, в котором за промежуток времени указываются предметы и оценки. (самый распространеный отчет, который будет чаще всего использоваться)
В книге Excel на каждой странице я отобразил примерно как это должно выглядеть.
лист 1: ParamPredmet - отображает название предмета и в это поле заносятся все оценки по этому предмету за промежуток времени;
лист 2: Data1 - зачем я её поставил не понял, поэтому можно отказаться и просто выводить оценки сплошником;
лист 3: ничего особенного не заметил.
З.Ы. Все что выделенно синим, в это место необходимо вставлять оценки  smile 

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  ______.rar 2,21 Kb
PM MAIL ICQ   Вверх
flomaster
Дата 16.6.2009, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 28.12.2007
Где: СПб

Репутация: нет
Всего: нет



При изменении региональных настроек полезут грабли.
Изучайте запросы с параметрами. Dataset.Parameters
Только это избавит вас от головняка с передачей дат в запрос.

PM MAIL   Вверх
ParaNO1k
Дата 17.6.2009, 06:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Эм... проблем с датами нет и возникнуть не должно... лист 2: Data1 просто указывает дату когда была проставленна оценка...
Сейчас парю мозг над тем как скинуть данные в Excel, если есть хорошие ссылки по этой информации поделитесь плиз... Заранее спасибо!
PM MAIL ICQ   Вверх
flomaster
Дата 17.6.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 28.12.2007
Где: СПб

Репутация: нет
Всего: нет



http://www.delphikingdom.com/asp/search.asp
Есть статья про Excel и БД. Называется "Excel ЧаВо..." в пяти частях.
Найдется по "Excel  ADO"

Не надейся. 
Работа с датами через параметры - единственный ГАРАНТИРОВАНО надежный способ.


Это сообщение отредактировал(а) flomaster - 17.6.2009, 12:18
PM MAIL   Вверх
ParaNO1k
Дата 17.6.2009, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Цитата(flomaster)

http://www.delphikingdom.com/asp/search.asp
Есть статья про Excel и БД. Называется "Excel ЧаВо..." в пяти частях.
Найдется по "Excel  ADO"

Спасибо) попробую)
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0901 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.