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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2011, 12:26   #1
demlan
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 15
Вопрос Fast Report и фильтр в DBGrid

В Fast-е создаю отчет. Есть таблица: День недели|Время|Предмет|Кто проводит.(Если в один день несколько предметов, то в одной и другой строке пишется "понедельник"и т.д.)
На основе этой таблицы создаю отчет, но загвоздка в том, что в, например, в понедельник м.б. несколько предметов. Во вторник-один. И т.д. Как в FR сделать такую таблицу, чтобы первая колонка (день недели) динамически растягивалась на определенную длину, соответствующую нескольким строкам дальнейших столбцов???!!?!?!?
И еще такой вопрос: на форме есть 3 DBLoockupcomboBox. Выпадающие списки у них берутся из одной таблицы, но по разным столбцам. (Таблица: Дисциплина|тема|занятие)В первом выбирается "Дисциплина", во втором "Тема", в третьем "Занятие". Т.е.Безымянный.JPG Как сделать фильтр на таблицу, чтобы при выборе дисциплины по нажатии на след. DBLoockupcomboBox(тема) выпадали только темы этой дисциплины?!?!?
Пробовал Form3.ZanyatiyaTable.Filter:='[Название дисциплины]='+QuotedStr(DBLookupComboBox6.Text );
Form3.ZanyatiyaTable.Filter:='[Тема занятий]='+
QuotedStr(DBLookupComboBox4.Text); но работает как-то некоректно!!!
demlan вне форума Ответить с цитированием
Старый 20.09.2011, 19:44   #2
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от demlan Посмотреть сообщение
Как в FR сделать такую таблицу, чтобы первая колонка (день недели) динамически растягивалась на определенную длину, соответствующую нескольким строкам дальнейших столбцов
Что-то не пойму как столбец будет растягиавться по сторкам? Вертикаль будет растягиваться по горизонтали?
Цитата:
Сообщение от demlan Посмотреть сообщение
Как сделать фильтр на таблицу, чтобы при выборе дисциплины по нажатии на след. DBLoockupcomboBox(тема) выпадали только темы этой дисциплины?!?!?
Пробовал Form3.ZanyatiyaTable.Filter:='[Название дисциплины]='+QuotedStr(DBLookupComboBox6.Text );
Form3.ZanyatiyaTable.Filter:='[Тема занятий]='+
QuotedStr(DBLookupComboBox4.Text); но работает как-то некоректно!!!:confused:
Для этих целей использовал запросы по числу комбобоксов, с всё большим количеством условий в блоке WHERE.
Т.е. для первого:
- ...where ZanyatiyaTable.Название дисциплины=(like)[Название дисциплины]...
для второго:
- ... where ZanyatiyaTable.Название дисциплины=(like)[Название дисциплины] AND ZanyatiyaTable.Тема занятий=(like)[Тема занятий]...
И так далее, повторяя вс предыдущие условия и наращивая в каждом по одному новому критерию отбора.
Активация следующего комбобокса и его набора данных шла по клику предыдущего, вернее я использовал DBLoockupListBox и двойной клик для четкого волеизъявления пользователя, а то мало ли может он просто хотел посмотреть что в списке есть. Правда лист бокс занимает больше места.
P.S. военный заказ? :) или дело добровольное?
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем

Последний раз редактировалось Surgeon; 20.09.2011 в 19:46.
Surgeon вне форума Ответить с цитированием
Старый 21.09.2011, 01:49   #3
demlan
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 15
По умолчанию

Хм, да) Неправильно написал) Надо, чтобы сроки в первом столбце растягивались на несколько строк во втором, вот)
demlan вне форума Ответить с цитированием
Старый 21.09.2011, 06:32   #4
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от demlan Посмотреть сообщение
Хм, да) Неправильно написал) Надо, чтобы сроки в первом столбце растягивались на несколько строк во втором, вот)
А стоит ли так делать? Если правильно понял над DBGrid распологаются компоненты управления фильтром, так? Там отображается выбранный тип занятий и предмет, а в грёд показывать только список тем и кто ведёт занятие. Иначе ИМХО нужны будут дополнительные компоненты из дополнительных библиотек, вроде в VCL ничего такого нет.
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем
Surgeon вне форума Ответить с цитированием
Старый 21.09.2011, 06:37   #5
demlan
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 15
По умолчанию

Surgeon, спасибо большое! Ваш совет про Where помог, справился) Вот только новая загвоздка: в таблице много одинаковых строк (дисциплина, тема), и список показывает их все.(Напр: тема1, тема1, тема1, тема2, ема2 и т.д.). Можно ли сделать так, чтобы в списке появлялись только разные по содержанию строки?
demlan вне форума Ответить с цитированием
Старый 21.09.2011, 06:45   #6
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от demlan Посмотреть сообщение
Surgeon, спасибо большое! Ваш совет про Where помог, справился) Вот только новая загвоздка: в таблице много одинаковых строк (дисциплина, тема), и список показывает их все.(Напр: тема1, тема1, тема1, тема2, ема2 и т.д.). Можно ли сделать так, чтобы в списке появлялись только разные по содержанию строки?
По скрину выше этого не видно, возможно неправильно задано условие фильтрации?
Используется "like 'Занятие%' "? если так то можно "like 'Занятие1%' " и будут отображены все записи начинаюшиеся с "Занятие1".
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем
Surgeon вне форума Ответить с цитированием
Старый 21.09.2011, 07:05   #7
demlan
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 15
По умолчанию

Мне надо, чтобы 1 комбо показывал все дисциплины (здесь не сложно-они не повторяются), 2 комбо, ссылаясь на дисциплину выдавал темы, но только по этой дисциплине (это я сделал,но у меня выводится много одинаковых тем, так как в таблице есть одинаковые записи). Можно ли сделать, чтобы в списке 2 бокса темы не повторялись?
P.S. Заказ-добровольно-принудительный)
demlan вне форума Ответить с цитированием
Старый 21.09.2011, 18:23   #8
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от demlan Посмотреть сообщение
Мне надо, чтобы 1 комбо показывал все дисциплины (здесь не сложно-они не повторяются), 2 комбо, ссылаясь на дисциплину выдавал темы, но только по этой дисциплине (это я сделал,но у меня выводится много одинаковых тем, так как в таблице есть одинаковые записи). Можно ли сделать, чтобы в списке 2 бокса темы не повторялись?
P.S. Заказ-добровольно-принудительный)
Если это тематический план то дублирующихся быть не должно в принципе, если же календарно-тематический то дополнительным критерием (+1 комбобокс) может быть дата проведения занятия, и/или преподаватель его проводящий. Можно посмотреть как дубли выглядят?
P.S. "Беги Лола, беги" (С). Не дай бог заказчик распробует и во вкус войдет... Не слезут же :( А пожелания будут всё мудреннее и мудреннее :(((
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем
Surgeon вне форума Ответить с цитированием
Старый 22.09.2011, 02:20   #9
demlan
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 15
По умолчанию

Безымянный.JPG
Принцип работы фильтра по таблице занятия(при нажатии на 2 бокс выплывают одинаковые темы*( )
demlan вне форума Ответить с цитированием
Старый 22.09.2011, 11:13   #10
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от demlan Посмотреть сообщение
Вложение 42709
Принцип работы фильтра по таблице занятия(при нажатии на 2 бокс выплывают одинаковые темы*( )
Оригинально...
Что-то не в порядке с структурой таблицы и выбором первичного ключа.
При проектировании таблицы её приводят последовательно к первой, второй и как минимум третьей нормальной форме. При несоответствии требованиям нормальных структуру корректируют, результат - отсутствие дублирующихся записей.
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем
Surgeon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Fast Report Равиль2303 Компоненты Delphi 2 31.01.2011 16:21
Fast Report и DBGrid!!! Все таки как??? Нур Общие вопросы Delphi 3 28.01.2011 13:33
FAST REPORT LIEN Помощь студентам 8 15.09.2009 15:04
Fast Report andreyjn Компоненты Delphi 1 06.09.2009 20:16
fast report Toxa Общие вопросы Delphi 0 04.12.2006 10:49