Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Сложный запрос


Автор: Миринда 24.6.2012, 00:49
Здравствуйте! Очень нужна помощь. Никак не получается доделать курсовую по Базам данных на FoxPro. Тема: Разработка БД «Видеопрокат» для автоматизации  деятельности видеосалона.
Есть задание к курсовой:
БД должна обеспечивать:
–    добавление, изменение и удаление данных БД с использованием механизма поддержания целостности БД;
–    генерировать отчетные формы - список имеющихся видеофильмов, разбитых по их тематике; список клиентов; статистика выдачи фильмов по тематикам.

БД должна иметь поисковые запросы:
–    список фильмов для заданной тематики;
–    список выданных (в прокате) фильмов на заданную дату;
–    список клиентов, имеющих на руках видеофильмы на заданную дату.

Проблема с поисковыми запросами – не получается правильно выставить поисковые значения.

Автор: Данкинг 24.6.2012, 00:59
Вопрос в чём? Доделать курсовую? Если есть вопрос по конкретным запросам - то его и задавай.

Автор: Миринда 24.6.2012, 13:25
Конкретный запрос: Как создать список клиентов, имеющих на руках видеофильмы на заданную дату - 03.11.12 и сразу отобразить их в отчете Report???
Т.е. я так понимаю меня должны интересовать две таблицы: klient и dogovor_zakaza, которые я должна в конструкторе запросов объединить?
Головоломка для меня - правильно задать фильтры!

Автор: Данкинг 24.6.2012, 13:52
А зачем в проекте постоянные пути заданы, вроде
Код

DO FORM 'C:\Documents and Settings\virtual\Мои документы\Мой курсач видеотека (с нуля)-4\videofilm'

??
Цитата(Миринда @  24.6.2012,  14:25 Найти цитируемый пост)
Головоломка для меня - правильно задать фильтры! 

Почему тип поля с датами - именно datetime, а не просто date? Фильтр как-то так ставится:
Код

SET FILTER TO data_vydachi={^2012-03-11}

ЗЫ: даже не знал, что девятый фокс понимает названия полей больше 10 символов.

Автор: Reese 24.6.2012, 15:51
Цитата

даже не знал, что девятый фокс понимает названия полей больше 10 символов.

Всегда понимал больше 10 символов, но только при использовании DBC. Если таблицу отцепить от контейнера, то названия обрежутся.

Цитата

Т.е. я так понимаю меня должны интересовать две таблицы: klient и dogovor_zakaza, которые я должна в конструкторе запросов объединить?
Головоломка для меня - правильно задать фильтры!

Цитата

SET FILTER TO data_vydachi={^2012-03-11}

Фильтры и запросы - это разные вещи. Просто в построителе запросов условие where почему-то фильтром зовется.

Соединяете по полю id_klient. Если делаете через построитель запросов то в закладке filter добавляете dogovor_zakaza.data_vydachi = ld_date
где ld_date - это переменная, которую надо определить. 
Соответственно нужно еще поле в которое вы будете вводить эту дату.


Автор: Миринда 24.6.2012, 16:18
Код

А зачем в проекте постоянные пути заданы ?

Так я хотела выводить формы с данными, соответствующие названиям кнопок.
Код

Почему тип поля с датами - именно datetime, а не просто date?

Т.е мне надо поменять или так как есть оставить?
У меня все-равно не получается.
Можно поконкретней: какие мне надо использовать таблицы для фильтра?
Сколько в фильтре должно быть строчек?
Как должен выглядеть полный код вместе с SET FILTER TO data_vydachi={^2012-03-11} ?



Автор: Миринда 24.6.2012, 16:40
Код

Соответственно нужно еще поле в которое вы будете вводить эту дату

Т.е. на главн. форму нужно еще добавить ещё одно поле - поле для ввода ?

Автор: Reese 24.6.2012, 16:50
Цитата

Так я хотела выводить формы с данными, соответствующие названиям кнопок

Если перенести проект в другую папку - то ничего работать не будет. Достаточно просто имя формы указывать.


Цитата

Т.е. на главн. форму нужно еще добавить ещё одно поле - поле для ввода ?

Да

Автор: Миринда 24.6.2012, 17:23
Код

Достаточно просто имя формы указывать

Если пишу просто 
Код

DO FORM 'dogovor_zakaza'
 - кнопка не работает.

Т.к. несколько уже ночей не сплю - уже плохо соображаю.
Можно уточнить, какие таблицы мне нужны для формирования этого запроса?

Автор: Данкинг 24.6.2012, 17:39
Цитата(Миринда @  24.6.2012,  18:23 Найти цитируемый пост)
 - кнопка не работает.

Ошибка-то какая?
Цитата(Reese @  24.6.2012,  16:51 Найти цитируемый пост)
Всегда понимал больше 10 символов, но только при использовании DBC. Если таблицу отцепить от контейнера, то названия обрежутся.

Проверять не буду, но впервые о такой фиче слышу. smile 

Автор: Reese 24.6.2012, 18:07
Цитата

впервые о такой фиче слышу.  


Это написано в хелпе. Раздел Visual FoxPro System Capacities

Maximum number of characters in field names in a free table. 10
 
Maximum number of characters in field names for a table contained in a database. 128
 

Автор: Миринда 30.6.2012, 08:37
Здравствуйте! Помогите подкорректировать код в почти готовом проекте.
Наткнулась на  проблему заполнения таблицы Grid.
Есть форма с Grid  (под именем «запросы»), Нужно чтобы результаты трех запросов (filmy_po_temamike;  spisok_filmov_po_zad_tem и spisok_klientov.qpr ) выводился в этот Grid по нажатию соответствующих кнопок. Вот с этими кнопками просто беда какая-то. Сотню комбинаций перепробовала – не получается. Результат на скриншоте.
С отчетами разобралась – работает.

Автор: Миринда 30.6.2012, 08:37
Скриншот

Автор: Миринда 1.7.2012, 11:47
Всем спасибо! Справилась сама!!!

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