Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВКР Кириллина А.А..doc
Скачиваний:
2
Добавлен:
05.11.2018
Размер:
733.18 Кб
Скачать

2.9.3.2 Просмотр

Форма развёрнутого просмотра со следующей информацией:

  • Название раздела;

  • Номер раздела по ББК;

  • Автор, составитель и редактор (или их списки);

  • Название книги;

  • Название издательства;

  • Город издательства;

  • Вид издания;

  • Год издания;

  • Количество экземпляров;

  • Количество выданных экземпляров;

  • Краткая аннотация.

Данные для формы обеспечиваются на основе SQL-запроса который представлен в примере 4.1, а данные об авторах, составителях, редакторах получают отдельными запросами. Рассмотрим подробнее запрос для получения списка авторов, запрос будет иметь следующий вид:

SELECT Creators.name, ;

Autor.autorid;

FROM library!Creators INNER JOIN library!Autor ;

ON Creators.nameid = Autor.autorid;

WHERE Autor.bookid = lnbookid ;

INTO CURSOR vwAutor

Пример 4.2 SQL-запрос получение списка авторов

В качестве фильтрующего параметра используется уникальный код книги из таблицы Books.

Для данной формы предусмотрены дополнительные функции:

  • Просмотр выданных экземпляров;

  • Просмотр инвентарных номеров книг.

Данные функции доступны только для авторизированного персонала библиотеки.

На форме просмотра выданных экземпляров, которая показана на рисунке 4.12 доступна информация о:

  • группе;

  • фамилии;

  • имени;

  • дате выдачи;

  • количестве выданных экземпляров.

Показываются только те экземпляры, которые в текущий момент являются выданными абоненту.

Предусмотрены следующие функциональные возможности:

  • перехода на карточку абонента;

  • группу абонентов;

  • просмотр инвентарных номеров выданных книг;

  • изменение порядка сортировки отображаемых данных.

Данные для формы получаем SQL-запросом следующего вида:

SELECT Groups.name AS GrpName, ;

Name1.name AS Fam, ;

Name2.name AS Name, ;

Name3.name AS Otch, ;

BookUse.date1 AS Date, ;

COUNT('BookUse.Num') AS Count, ;

Abonents.abonid AS AbonId, ;

BookNum.bookid AS BookId ;

FROM library!BookNum INNER JOIN library!BookUse ;

INNER JOIN library!Abonents ;

INNER JOIN library!Groups ;

INNER JOIN library!Name1 ;

INNER JOIN library!Name2 ;

INNER JOIN library!Name3 ;

ON Name1.nameid = Abonents.name3 ;

ON Name2.nameid = Abonents.name2 ;

ON Name3.nameid = Abonents.name1 ;

ON Groups.id = Abonents.grid ;

ON Abonents.abonid = Bookuse.abonid ;

ON Booknum.number = Bookuse.number ;

WHERE Booknum.bookid = lnBookId ;

AND EMPTY(Bookuse.date2) ;

GROUP BY Abonents.abonid ;

INTO CURSOR vwUseBook

Пример 4.3 SQL-запрос получение списка читателей

В качестве элементов фильтра используется уникальный код книги из таблицы Books и значение поля Date2 таблицы BookUse, которое должно быть не заполненным, так как определяет дату возврата книги в библиотеку.

На форме просмотра инвентарных номеров, доступна информация:

  • список инвентарных номеров;

  • дате поступления экземпляра книги.

Для получения данных используем SQL-запрос:

SELECT Booknum.number AS InvNum, ;

Booknum.date AS Date ;

FROM library!BookNum;

WHERE Booknum.bookid = lnBookId ;

INTO CURSOR vwInvNum

Пример 4.4 SQL-запрос получение инвентарных номеров

В качестве элемента фильтра применяется уникальный код книги из таблицы Books. Для выбранных данных можно изменять порядок отображения, установив активный столбец в таблице.