Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral
Запустите проект dvd. pjx. В менеджере проекта выделите объект LocalViews и нажмите кнопку New. В появляющемся окне запроса способа создания выберите вариант NewView. В результате будет запущен конструктор представлений, работа с которым аналогична работе с конструктором запросов. Первоначально на экране поверх окна конструктора появится запрос на добавления таблиц к источнику данных запроса (рис. 131). И здесь при добавлении таблиц возникнут некоторые нюансы.

Рис. 131 – Окно добавления таблиц к источнику данных21

выделите таблицу Disk, нажмите кнопку Add; выделите таблицу Kategor, нажмите кнопку Add; обратите внимание, что на экране появляется окно настройки связей JoinCondition (рис. 132). Оно появилось из-за того, что в базе данных между таблицами Kategor и Disk нет связи (поэтому здесь следует нажать кнопку Cancel)22;

Рис. 132 – Окно настройки связей JoinCondition

выделите таблицу Ganr  и нажмите кнопку Add; убедитесь, что источник данных представления принял вид, представленный на рис. 133 (при необходимости добавьте связи):

Рис. 133 – Источник данных представления

настройте содержимое вкладки Fields конструктора представлений (рис. 134)23:

Рис. 134 – Содержимое вкладки Fields

настройте сортировку данных так, чтобы категории выводились по алфавиту, внутри каждой категории жанры тоже выводились в алфавитном порядке, а в каждом жанре по алфавиту отображались названия дисков (рис. 135) (обратите внимание на порядок отображения полей сортировки):

НЕ нашли? Не то? Что вы ищете?

Рис. 135 – Настройка полей сортировки

выполните настройку обновления представления при изменении записей в таблицах базы данных, используя флажок SendSQLupdatesвкладки UpdateCriteria (рис. 136);

Рис. 136 – Настройка параметров обновления

выполните просмотр результатов представления и сохраните представление под именем Diski_vse. Просмотрите SQL-код представления, обратите внимание на его основную часть (рис. 137)24.

Рис. 137 – SQL-код представления Diski_vse

Убедитесь, что в менеджере проекта в узле LocalViews появилось созданное представление. Завершите работу с проектом.

6.2. Вычисления в запросах и представлениях

Visual FoxPro позволяет не только включать в результирующую таблицу запроса информацию из исходных таблиц, но и производить вычисления над ними, предоставляя, таким образом, возможность получить данные, отсутствующие в исходной таблице.

Вычисляемые поля в запросе могут быть двух видов:

    Для каждой строки запроса. Итоговое вычисление (одно результирующее поле на весь запрос)

Например, в таблице Prokat есть дата выдачи дисков и договорная дата возврата дисков. На их основе в запросе или представлении можно получить поле длительности проката как разность указанных полей. Оно будет подсчитано для каждой строки запроса (для каждого договора).

Кроме того, вы можете использовать вычисляемые поля для объединения нескольких полей исходной таблицы в одно результирующее поле. Например, в трех разных таблицах хранится информация о диске, соответствующем жанре и категории. В результирующий запрос или представление вы можете поместить одно поле, в котором будет размещены и название, и жанр, и категория. Оно будет рассчитываться для каждой строки запроса (для каждого диска).

Если вы хотите подсчитать общую сумму по всем договорам проката, найденным в запросе, то это итоговое вычисление. Оно – одно на весь запрос.

Для формирования выражения предназначено поле Functionsandexpressions (Функции и выражения) вкладки Fields (Поля). Нажмите расположенную справа от поля кнопку вызова построителя выражения и в диалоговом окне ExpressionBuilder (Построитель выражения) создайте выражение для вычисляемого поля. После того как выражение в поле Functionsandexpressions (Функции и выражения) сформировано, нажатием кнопки Add (Добавить) перенесите его в список Selectedfields (Выбранные поля).

Замечание: Если в запросе (представлении) предполагается наличие поля с итоговым вычислением, например sum(mma_zal+0.1*mma_zal*(prokat. data_dog-prokat. data_pr)), то в группе SelectedFields следует расположить только одно это поле.

ЗАДАНИЕ 29. Создание вычисляемых полей в представлениях (запросах)

В результате выполнения задания будет отредактировано представление Diski_vse, в котором не отображалась цена проката диска за сутки, зависящая от залога и вычисляемая по формуле (1). Вычисляемое поле можно создать, используя вкладку Fields конструктора представлений или отредактировав SQL-код.

Запустите проект dvd. pjx. Откройте для редактирования в конструкторе представление Diski_vse. Добавьте поле для вычисления цены проката за сутки: на вкладке Fields установите курсор в поле Functionsandexpressions и нажмите кнопку для вызова построителя выражений; в построителе измените таблицу на Disk (рис. 138), т. к. вычисляемое поле зависит от поля Disk. zalog;

Рис. 138 – Построитель выражений: изменение таблицы

в окне построителя выполните двойной щелчок по полю zalog в списке Fields, в результате чего оно отобразится в области Expression; отредактируйте выражение в соответствии с формулой (1) (рис. 139) и нажмите кнопку ОК;

Рис. 139 – Выражение для вычисляемого поля в построителе

теперь введенное выражение отображается в конструкторе в поле Functionsandexpressions; убедившись, что курсор так и находится в этом поле, нажмите на кнопку Add – вычисляемое поле добавится в представление. Запустите представление и убедитесь в появлении вычисляемого столбца. Завершите работу с проектом.

ЗАДАНИЕ 30. Выполнение итоговых вычислений в представлении или запросе

В результате выполнения задания будут созданы запросы, которые подсчитывают:

    общую сумму по всем договорам проката, оформленным, например 26.10.2014; общее количество оформленных в этот день договоров; и общее количество, и общую сумму по договорам, оформленным 26.10.2014.

При подсчете количества договоров будет использоваться уже знакомая по работе с отчетами итоговая функция COUNT(); поле, по которому будет вестись подсчет, – поле первичного ключа таблицы:

Prokat. kod_pr25.

При подсчете общей суммы, на которую оформлены договора, будет использоваться итоговая функция SUM(), также знакомая по работе с отчетами; поле, по которому будет подводиться итог, вычисляемое, позволяющее найти сумму по каждому прокату:

mma_zal+0.1*mma_zal*(Prokat. data_dog-Prokat. data_pr).

Запустите проект dvd. pjx. Запустите форму oformlenie. scx и обратите внимание на договора, оформленные 26.10.2014. Запомните их количество. В окне Command введите команду SETDATEGERMAN, чтобы изменить формат даты. Вызовите конструктор запросов. Создайте запрос, отображающий информацию о количестве договоров проката, оформленных в указанный день: в область данных запроса добавьте таблицу Prokat (ЗАДАНИЕ 27, п.3); на вкладке Fieldsв области AvailableFields выделите поле Prokat. kod_pr; установитекурсорвполеFunctions and expressions; нажмите на кнопку , в результате чего откроется построитель выражений ExpressionBuilder; скопируйте содержимое поля в буфер обмена (Ctrl+C); в списке Math  выберите функцию Count() и вставьте ее в поле Expression, выполнив на ней щелчок левой кнопкой мыши; отредактируйте выражение, вставив содержимое буфера обмена (Ctrl+V),чтобы оно приняло вид Count(Prokat. kod_pr); закройте построитель, убедитесь, что курсор находится в поле Functionsandexpressionsи нажмите кнопку Add – убедитесь, что вычисляемое поле появилось в списке SelectedFields; теперь в запросе появится поле с итоговым количеством; перейдите на вкладку Filter: в списке FieldName выберите Prokat. data_pr, в списке Criteria – операцию =, в поле Exampleвведите выражение ctod(“26.10.2014”).26 Запустите запрос и убедитесь в правильности его выполнения – результат содержит всего одну строку и одно поле, отображающее информацию о количестве договоров прокатов, оформленных 26.10.2014. Сохраните запрос под именем Kol_data. Снова запустите конструктор запроса. Создайте запрос, определяющий общую сумму по договорам проката, оформленным 26.10.2014: действия аналогичны п. 5, но вычисляемое поле, которое следует добавить на вкладке Fields, – Sum(mma_zal+0.1*mma_zal*(Prokat. data_dog-Prokat. data_pr)). Запустите запрос – результат содержит всего одну строку и одно поле, отображающее информацию об общей сумме по договорам проката, оформленным 26.10.2014. Просмотрите SQL-код запроса – его в дальнейшем можно использовать в качестве процедуры, наложенный на событие объекта формы. Сохраните запрос под именем Sum_data. Создайте еще один запрос, который определит и общее количество, и общую сумму по договора проката, оформленным 26.10.2014. Его создание аналогично созданию двух предыдущих договоров, но на вкладке Fields нужно добавить два вычисляемых поля (п.5, п.9). Проверьте правильность работы запроса и сохраните его под именем Kol_Sum. Завершите работу с проектом.

ЗАДАНИЕ 31. Использование представления для создания отчета

При выполнении ЗАДАНИЯ 22 был создан отчет о дисках с группировкой по жанрам, но группировка по категориям в нем была невозможна. При выполнении ЗАДАНИЙ 28 и 29 было разработано локальное представлениеdiski_vse, содержащее информацию обо всех дисках DVD-проката. Теперь на его основе можно разработать печатный документ Каталог дисков, в котором информация о дисках будет сгруппирована по жанрам и категориям.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28