Сложные фильтры это: сложный фильтр — это… Что такое сложный фильтр?

Содержание

сложный фильтр — это… Что такое сложный фильтр?

сложный фильтр
total filter

Большой англо-русский и русско-английский словарь. 2001.

  • сложный сплайн
  • сложный цвет

Смотреть что такое «сложный фильтр» в других словарях:

  • Фильтр — получить на Академике действующий промокод Domsporta или выгодно фильтр купить со скидкой на распродаже в Domsporta

  • сложный фильтр — sudėtingasis filtras statusas T sritis fizika atitikmenys: angl. complex filter vok. zusammengesetztes Filter, n rus. сложный фильтр, m pranc. filtre complexe, m …   Fizikos terminų žodynas

  • Фильтр Калмана — Фильтр Калмана  эффективный рекурсивный фильтр, оценивающий вектор состояния динамической системы, используя ряд неполных и зашумленных измерений. Назван в честь Рудольфа Калмана. Фильтр Калмана широко используется в инженерных и… …   Википедия

  • Выжимание — (отжатие) вместе с процеживанием (фильтрованием, см. Процеживание), составляет очень распространенный в обыденной жизни и в фабрично заводской деятельности прием для отделения жидкостей от твердых тел при их взаимном смешении. Хотя процеживанием… …   Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

  • Выжимaниe (отжатие) — вместе с процеживанием (фильтрованием, см. Процеживание), составляет очень распространенный в обыденной жизни и в фабрично заводской деятельности прием для отделения жидкостей от твердых тел при их взаимном смешении. Хотя процеживанием чаще всего …   Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

  • Речь — I         речевая деятельность, общение, опосредствованное Языком, один из видов коммуникативной (см. Коммуникация) деятельности человека. Р. возникла в коллективе как средство координации совместной трудовой деятельности и как одна из форм… …   Большая советская энциклопедия

  • Речь — I         речевая деятельность, общение, опосредствованное Языком, один из видов коммуникативной (см. Коммуникация) деятельности человека. Р. возникла в коллективе как средство координации совместной трудовой деятельности и как одна из форм… …   Большая советская энциклопедия

  • Пожары* — являются злейшим врагом человеческого общежития, причиняющим неисчислимые бедствия. Особенно велика их разрушительная сила у нас в России. Число П. и сумма причиняемых ими убытков в Европейской России ежегодно возрастают; с 1860 по 1869 г. было… …   Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

  • Пожары — являются злейшим врагом человеческого общежития, причиняющим неисчислимые бедствия. Особенно велика их разрушительная сила у нас в России. Число П. и сумма причиняемых ими убытков в Европейской России ежегодно возрастают; с 1860 по 1869 г. было… …   Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

  • complex filter — sudėtingasis filtras statusas T sritis fizika atitikmenys: angl. complex filter vok. zusammengesetztes Filter, n rus. сложный фильтр, m pranc. filtre complexe, m …   Fizikos terminų žodynas

  • filtre complexe — sudėtingasis filtras statusas T sritis fizika atitikmenys: angl. complex filter vok. zusammengesetztes Filter, n rus. сложный фильтр, m pranc. filtre complexe, m …   Fizikos terminų žodynas

  • sudėtingasis filtras — statusas T sritis fizika atitikmenys: angl. complex filter vok. zusammengesetztes Filter, n rus. сложный фильтр, m pranc. filtre complexe, m …   Fizikos terminų žodynas

…::Билеты по информатике (ликбез)::…

…::Билеты по информатике (ликбез)::… Назад

Словарь терминов по информационным технологиям


_____________________________________________________________

Англоязычные

BMP

(Bit MaP image)универсальный формат растровых графических файлов,
используемый в Windows и поддерживаемый многими графическими редакторами,
включая Paint. Может содержать изображения с глубиной цвета 10, 16, 24 и 36 бита.
Рекомендуется для хранения и обмена данными с другими приложениями.

CorelDRaw files

оригинальный формат векторных графических файлов,
используемый в профессиональной графической системе CorelDraw.

EPS

(Encapculated PostScript)универсальный формат векторных графических файлов,
используемый для печати и создания иллюстраций в настольных издательских системах.

GIF

(Graphics Interchange Format) универсальный формат растровых графических файлов,
используемый для размещения изображений на Web-страницах в интернете.
Включает алгоритм сжатия без потери информации. Рекомендуется для хранения изображений,
создаваемых программным путем (диаграмм, графиков и др.), и рисунков (типа аппликации)
с ограниченным числом цветов (до 256).

HTM, HTML

Универсальный формат хранения Web-страниц. Содержит управляющие
коды (теги) языка разметки гипертекста (HTML).

Imaging

— Стандартная программа Windows, которая позволяет просматривать
и осуществлять простейшее редактирование графических документов.

JPG

(Joint Photographic Expert Group)Универсальный формат растровых графических файлов,
используемый для размещения отсканированных фотографий, иллюстраций и изображений
на Web-страницах в Интернете. Алгоритм сжатия позволяет уменьшить объем файла в десятки раз,
однако приводит к необратимой потере части информации.

LX

— Оригинальный формат используемой версии отечественного редактора Лексикон.
Полностью сохраняет форматирование. Использует 16-битную кодировку Unicode.

OLE

(Object Linking Embeding)Механизм встраивания и внедрения объектов, позволяющий
копировать и вставлять объекты из одного приложения в другое, в том числе получать
из обычного текстового документа мультимедиа документ.

Paint

— Стандартная программа Windows, которая позволяет создавать и редактировать
изображения в форматах BMP, GIF, JPG.

RTF (Rich Text Format)

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

TIFF (Tagged Image File Format)

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

TXT (Text Only)

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

WMF (Windows MetaFile)

— универсальный формат векторных графических файлов,
используемый Windows для хранения коллекции графических изображений Microsoft Clip Gallery.

WordPad

— Стандартная программа Windows, которая позволяет создавать простые документы в формате DOC. Является < < урезанной> > версией редактора Word.

Русскоязычные

Абзац

— В компьютерных документах — это любой текст, заканчивающийся управляющим символом (маркером) конца абзаца. Ввод конца абзаца обеспечивается нажатием клавиши {Enter} и отображается непечатаемым символом абзаца (в соответствующем режиме). Абзац может состоять из любого количества символов, рисунков и объектов других приложений.

Абсолютная ссылка (адресация) в формуле ЭТ — Служит для указания фиксированного (неизменяемого) адреса ячейки ЭТ. Имеет следующий вид, например, $F$1. При перемещении или копировании формулы абсолютные ссылки не изменяются.

Автоматизация деятельности человека — Возможность реализации поставленной задачи с помощью машины, специально сконструированной для выполнения отдельных команд алгоритма и выполняющая их в последовательности, указанной в алгоритме.

Автосуммирование в ЭТ — Кнопка на панели инструментов Стандартная, используемая для автоматического суммирования чисел с помощью функции СУММ (значений выделенного диапазона ячеек ЭТ).

Активная ячейка ЭТ — Ячейка, с которой производятся какие-либо действия и выделяемая рамкой.

Алгоритм — Последовательность действий, приводящих к решению поставленной задачи (достижение цели) за конечное число шагов. Каждый алгоритм строится в расчете на некоторого исполнителя действий (команд).

Алгоритм сжатия

— Алгоритм, используемый в растровом графическом редакторе
для уменьшения объема графического файла и включаемый в его формат.

Алгоритм сжатия для отсканированных фотографий и иллюстраций

— Алгоритм, используемый в растровом графическом редакторе для уменьшения объема графического файла в десятки раз путем уменьшения глубины цвета (цветов и оттенков), например, в JPG. Может привести к необратимой потере информации (файлы не могут быть восстановлены в исходном виде).

Алгоритм сжатия для рисунков типа аппликации

— Алгоритм, используемый в растровом графическом редакторе для уменьшения объема графического файла в несколько раз путем замены последовательности повторяющихся величин (пикселей одинакового цвета) на две величины (пиксел и количество его повторений), например, в BMP.

Алгоритм сжатия для рисунков типа диаграмм

— Алгоритм, используемый в растровом графическом редакторе для уменьшения объема графического файла в несколько раз путем поиска и замены последовательности повторяющихся узоров, например, в GIF, TIFF.

База данных (БД) — Организованная совокупность данных, предназначенная для длительного хранения во внешней памяти ЭВМ и постоянного применения

.

Блокнот —

Стандартная программа Windows, которая позволяет создавать неформатированные текстовые документы в формате TXT. Часто применяется при создании и редактировании Web-страниц с использованием языка HTML.

Блок-схема алгоритма — Графический способ записи алгоритма. Блоки обозначают действия исполнителя, а соединяющие их стрелки указывают на последовательность выполнения действий.

Быстрый поиск данных в БД — Поиск записей, в которых значения определенного поля полностью или частично совпадают с некоторой величиной.

Векторная графика

Графика, в которой (векторные) изображения формируются из объектов, кторые хранятся в памяти компьютера в виде графических примитивов и описывающих их математических формул. Эти изображения могут быть масштабированы (увеличены или уменьшены) без потери качества. Файлы, хранящие векторные графические изображения имеют сравнительно небольшой объем.

Вложенная сортировка данных в ЭТ — Упорядоточение данных по нескольким столбцам, с заданием последовательности сортировки столбцов (при одинаковом значении в предыдущем столбце).

Внедренная диаграмма ЭТ — Диаграмма, являющаяся иллюстрацией к данным на конкретном рабочем листе и размещенная на одном листе с ними.

Вспомогательный алгоритм — Алгоритм, по которому решается некоторая подзадача из основной задачи и который, как правило, выполняется многократно

(или процедура, или подпрограмма в языках программирования).

Выравнивание абзаца — Расположение текста относительно границ полей страницы (по левому краю, по центру, по правому краю, по ширине, при котором последняя строка выравнивается по левому краю).

Главный ключ в БД — Поле (или совокупность полей), значение которого не повторяется у разных записей.

Глубина цвета изображения

Количество разрядов, используемых для кодирования цвета изображения.

Графики в ЭТ — Частный случай построения диаграмм, используемый для отображения изменения данных за равные промежутки времени. Графики позволяют анализировать закономерности изменения величин.

Графические примитивы

— Штатные графические объекты (фигуры типа линии, различного вида стрелки, овал, прямоугольники, и др. ), задаваемые своими координатами и цветом. Их пиктограммы используются в панели Рисования векторных графических редакторов.

Диаграмма ЭТ — Графическое представление данных рабочего листа в различной форме (диаграммы линейчатые (столбчатые

), круговые, графики и другие типы). При обновлении данных на рабочем листе диаграммы также обновляются.

Дискретность алгоритма — Разделение выполнения решения задачи на отдельные операции (выполняемые исполнителем по определенным командам, входящих в систему команд исполнителя — свойство понятности).

Документ редактирования

— Совокупность объектов, составляющих документ: символы, абзацы, таблицы, фрагменты или документ в целом.

Документальная БД — БД, содержащая обширную информацию самого разного типа: текстовую, графическую, звуковую, мультимедийную.

Заголовок столбца ЭТ — Обозначается буквами или сочетаниями букв (F, G, FG).

Заголовок строки ЭТ

— Обозначается числами (1, 17, 255).

Записи БД различаются значениями ключей.

Запросы СУБД — Инструменты (самостоятельные объекты БД) для отбора данных на основе заданных условий. Запросы как и фильтры бывают простые (содержат одно условие) и сложные (несколько условий для различных полей).

Знаки логических операций — Служебные смысловые связки типа “и” (логическое умножение или конъюнкция), “или” (логическое сложение или дизъюнкция), “не” (отрицание).

Значения полей — Это некоторые величины определенных типов. От типа величины зависят действия, которые можно с ней производить. Например, с числовыми величинами можно выполнять арифметические операции, а с символьными и логическими нельзя.

Изменение внешнего вида таблиц — Установка границ, фона ячеек автоматически (с помощью соответствующей команды и диалоговой панели, обеспечивающей задание различных вариантов оформления таблицы) или вручную (с помощью соответствующей команды, обеспечивающей задание требуемых параметров оформления таблицы, а также типа и ширины линий границы, фона ячеек или выбор узора).

Изменение исходных данных в ячейке ЭТ — Приводит к автоматическому пересчету формул, в которые эти данные входят.

Информационная система — Совокупность БД и комплекса аппаратно-программных средств для ее хранения, изменения и поиска информации, для взаимодействия с пользователем.

Исполнитель алгоритма — Объект управления (технические устройство или живое существо), например, робот.

Ключи сортировки записей БД — Поля, по которым производится сортировка записей (первичный ключ, вторичный ключ и т.д.).

Команда (или указание) алгоритма — Предписание исполнителю выполнить одно конкретное законченное действие.

Команды удаления записей в БД — Формат команд: . удалить <логическое выражение>, . удалить все (в реальных СУБД сначала лишь помечаются записи), . добавить (ввод полей новой записи, заносимой в конец таблицы).

Конвертор текстовых файлов — Специальная программа, используемая в большинстве текстовых редакторов для преобразования текстового файла из одного формата в другой, например из формата RTF в формат DOC.

Линейная алгоритмическая конструкция — Алгоритм, состоящий из серий команд.

Логическое выражение — Это некоторое высказывание,
по поводу которого можно заключить истинно оно или ложно.

Логическое сложение — В результате логического сложения получается истина, если значение хотя бы одного операнда истинно.

Логическое умножение — В результате логического умножения получается истина, если два операнда истинны.

Макросы — Служат для автоматизации повторяющихся операций.

Мастер диаграмм ЭТ — Средство, позволяющее создавать диаграмму по шагам с помощью серии диалоговых окон.

Мастер отчетов БД — Инструмент СУБД, позволяющий задавать параметры внешнего вида отчета с помощью диалоговых окон.

Мастер форм БД — Вид графического интерфейса, помогающий с помощью серии диалоговых окон пользователю создание Формы.

Мастер функций ЭТ — Команда [Вставка-Функция. ..], обеспечивающая выбор требуемой функции из соответствующей категории встроенных в Excel функций (математические, статистические, финансовые, дата и время и др.).

Межстрочный интервал (интерльяж) — Расстояние между строк документа. Обычно задается числами 1; 1,5; 2 и др., а также соответствующим коэффициентом.

Метод последовательной детализации при построении алгоритмов — Метод, при котором сначала записывается основной алгоритм, а затем описываются использованные в нем вспомогательные алгоритмы (программирование сверху вниз).

Модули (процедуры обработки событий) СУБД

— Служат для автоматизации работы с БД и пишутся на языках программирования, например на VBA.

Мультимедиа технология

— Технология, позволяющая одновременно использовать различные способы представления информации: текст, числа, графику, анимацию, видео и звук. Графический интерфейс мультимедийных продуктов обеспечивает интерактивность взаимодействия с пользователем (кнопки, текстовые окна и др. )

Настольные издательские системы — Мощные программы обработки текста, предназначенные для подготовки документов для публикации.

Настройка изображения

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

Начертание символов — Основное свойство отображения символов. Различают нормальное, полужирное

, курсивное, полужирное курсивное.

Неполная команда ветвления

имеет следующий формат:
если <условие> то <серия 1> иначе <следующая команда алгоритма>.

Нулевой

отступ первой строки — Применяется в обычном тексте и в абзацах, выровненных по центру.

Окно БД — Один из главных элементов интерфейса СУБД, в котором систематизированы все основные объекты БД: таблицы, запросы, формы, отчеты, макросы и модули. Для работы с ними служат окна работы с объектами. Причем в каждый момент времени одно окно является активным.

Определенность (или точность) алгоритма — Возможность понимания и выполнения каждого действия, предписываемого командами алгоритма.

Оригинальный формат графического файла

— Формат, который может быть обработан создающим его графическим редактором, например CDR.

Оригинальный формат текстовых файлов — Формат, используемый отдельными текстовыми редакторами.

Основные алгоритмические конструкции: линейная, разветвляющаяся, циклическая.

Основные типы полей БД: числовой (только числа), символьный (слова, тексты, коды и др.), логический (значения “истина” и “ложь”), дата.

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

Относительная ссылка (адресация) в формуле ЭТ — Служит для указания (изменяемого) адреса ячейки ЭТ, вычисляемого относительно ячейки, в которой находится формула. Имеет следующий вид, например, F1. При перемещении или копировании формулы из активной ячейки относительные ссылки автоматически обновляются (изменяются) в зависимости от нового положения формулы. По умолчанию при наборе формул в Excel используются относительные ссылки.

Отношение

“один-ко-многим” есть форма логического выражения реляционных БД.

Отношение есть форма логического выражения.

Отрицание — Изменяет значение логической величины на противоположное: не истина = ложь, не ложь = истина.

Отрицательный отступ первой строки — Расположение первой строки левее относительно всех остальных строк абзаца. Применяется в словарях, определениях.

Отступ первой строки (красная строка) — Расположение первой строки относительно
всех остальных строк абзаца.

Отчеты БД — Производные объекты БД, создаваемые на основе таблиц, форм и запросов.

Отчеты СУБД — Служат для печати данных, содержащихся в таблицах и запросах, в требуемой форме.

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

Печать документа — Режим, обеспечивающий с помощью диалоговой панели Печать выбор типа принтера, числа станиц и номеров страниц, выводимых на печать.

Пиксел

Минимальный участок изображения, которому независимым образом можно задать цвет.

Подбор параметра в ЭТ — Сервисная функция ЭТ, обеспечивающая возможность определения неизвестного значения аргумента, при котором функция принимает заданное значение 0.

Подчеркивание

Свойство отображения символов.

Поиск данных в ЭТ —

Нахождение строк в соответствии с заданными условиями (фильтром). При этом необходимо выделить хотя бы одну ячейку с данными.

Полная команда ветвления имеет следующий формат:
если <условие> то <серия 1> иначе <серия 2>. Различают положительную ветвь ветвления
(условие истинно) и отрицательную ветвь ветвления (условие ложно).

Полный набор данных — Необходим для успешной реализации алгоритма.

Положительный отступ первой строки — Расположение первой строки правее относительно всех остальных строк абзаца. Применяется в обычном тексте.

Получение справки из БД — Указания выводимых полей и условий поиска (условие, которому должны удовлетворять выводимые записи). Например,
.справка <список выводимых полей> для <условие поиска>. Результат выводится на экран в виде таблицы. Для вывода на экран всех записей следует указать в команде: .справка все.

Поля — Это различные характеристики (атрибуты) объекта. Значения полей в одной строке относятся к одному объекту. Разные поля отличаются именами.

Порядок выполнения операций в сложном логическом выражении — Определяется старшинством операций (по убыванию старшинства — не, и, или). возведение в степень, * умножение, / деление, +, — сложение, вычитание. Несколько подряд записанных операций выполняются в порядке их записи в формуле (слева направо). В формулах допускается применение некоторых математических функций, причем аргументы пишутся после имени функции в круглых скобках.

Предварительный просмотр документа — Режим, позволяющий увидеть, как будет выглядеть в напечатанном виде несколько страниц документа.

Программа — Это алгоритм, записанный на языке исполнителя.

Программирование внизу вверх — Сборочный метод, при котором сначала записываются вспомогательные алгоритмы, использованные в основном алгоритме, а затем описывается основной алгоритм.

Прозрачный фон

— Трансформация, производимая с однотонным фоном рисунка.

Простейшая форма логического выражения — одна величина логического типа.

Простое логическое выражение — состоит из одной логической переменной или одного отношения.

Простой фильтр БД — Фильтр, содержащий условия отбора записей только для одного поля конкретной таблицы.

Пункт — Единица измерения размера шрифта (пункт): 1 пт = 0,376 мм.
В одном дюйме (

2,54 см) содержится 72 пункта.

Работа с базой данных начинается с открытия файлов.

Рабочая книга — Совокупность нескольких рабочих листов, образующих файл ЭТ Excel. Для удобства работы с рабочей книгой в нижней части окна размещены ярлыки листов и кнопки прокрутки.

Рабочие листы — Основной тип документа, используемый в Excel для хранения и обработки данных. Допускает вычисления на основе данных из нескольких листов, именуемых по умолчанию “Лист 1”, “Лист 2” и т.п.

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

Размер шрифта — Единицей измерения размера шрифта является пункт: 1 пт = 0,376 мм.
В Word по умолчанию используется шрифт Times New Roman размером 12 пт.

Разметка страницы

документа — Режим, обеспечивающий создание, форматирование и редактирование документа в том виде, в котором он будет напечатан.

Распределенная БД — БД, разные части которой хранятся на различных ЭВМ компьютерной сети.

Растровая графика

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

Редактирование

(документа)
Преобразование, обеспечивающее добавление, удаление, перемещение или исправление содержания и внешнего вида документа.

Редактирование содержимого ячеек — Выравнивание текста и форматирование шрифта. Осуществляется традиционным способом с помощью соответствующих команд группы Формат.

Редактирование структуры таблицы —
Изменение ширины столбцов или высоты строк, вставка или удаление строк таблицы. Осуществляется с помощью мыши (перетаскиванием границ) или с помощью соответствующих команд группы Таблица.

Режим (вид) Конструктор — позволяет просматривать и изменять структуру таблицы.

Режим (вид) Таблицы — позволяет создавать и изменять структуру таблицы, а также вводить и редактировать данные.

Режим (вид) Формы — отображает одну запись в удобном для пользователя виде с помощью управляющих элементов и надписей, дизайн которых (размер, цвет и др.) пользователь может изменять. Форма может содержать рисунки, графики и другие внедренные объекты.

Результативность (или конечность) алгоритма — Требование исполнения алгоритма за конечное число шагов.

Реляционная БД — БД, содержащая связанные между собой двумерные прямоугольные таблицы данных, строки которой называются записями, а столбцы — полями. Межтабличная связь обеспечивает целостность данных.

Свойства алгоритма — Важнейшими свойствами алгоритма являются: дискретность, определенность (или точность), результативность (или конечность), возможность формализации.

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

Символы — Основные объекты документа, включающие в себя буквы, цифры, пробелы, знаки пунктуации, специальные символы (&, @, * и др.).

Система команд исполнителя — Совокупность команд, которые могут быть выполнены исполнителем.

Система управления базами данных (СУБД) — Программное обеспечение, предназначенное для работы с базами данных. СУБД имеет определенные режимы работы (обычно Конструктор, Таблицы, Формы) и систему команд, а также пользовательский интерфейс.

Сложное логическое выражение

— Выражение, содержащее логические операции.

Сложный фильтр БД

— Фильтр, содержащий несколько условий отбора записей для различных полей конкретной таблицы.

Смешанная ссылка (адресация) в формуле ЭТ — Служит для указания фиксированного (неизменяемого) компонента адреса ячейки ЭТ. Имеет следующий вид, например, $F1 (координата столбца абсолютная, а строки относительная), F$1 (координата строки абсолютная, а столбца относительная).

Создание таблицы — Операция задания числа столбцов и строк при помощи соответствующей команды или пиктограммы.

Сортировка БД — Это упорядочение записей в таблице по возрастанию или убыванию значений какого-нибудь поля (или по нескольким полям одновременно).

Сортировка данных в ЭТ — Упорядоточение данных по определенному признаку.

Специализированный формат ЭТ — Форматы типа: Денежный, Текстовый, Дата и время и другие, удобные для соответствующих расчетов.

Способы записи алгоритмов — Существуют следующие основные способы описания алгоритмов:

записаны на естественном языке, изображены в виде блок-схемы, записаны на алгоритмическом языке, закодированы на языке программирования (в соответствующем синтаксисе языка).

Справка — это таблица, содержащая интересующие пользователя сведения, извлеченные из базы данных.

Существуют 6 вариантов отношений: “равно”, “не равно”, “больше”, “меньше”, “больше или равно”, “меньше или равно”. Отношения применимы ко всем типам полей.
Отношение

“многие-ко-многим” есть форма логического выражения реляционных БД.

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

Таблица истинности — Таблица, иллюстрирующая правила выполнения трех логических операций над операндами А и Б, причем величина “истина” обозначается буквой И, “ложь” — буквой Л.

Таблицы БД хранятся в файлах на жестких магнитных дисках.

Текст в ЭТ

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

Текстовый процессор — Текстовый редактор, имеющий расширенные возможности для создания документа, изменения его содержания формы представления.

Текстовый редактор — Программа для создания, редактирования, форматирования, сохранения и печати документа.

Тип поля БД — Определяет, какого вида информация храниться в поле и какие действия над ней можно производить.

Универсальный формат графического файла

– Формат, который может быть обработан
большинством графических редакторов.

Универсальный формат текстовых файлов — Формат, используемый большинством текстовых редакторов, например, RTF.

Условия поиска в командах СУБД — это логические выражения.

Фактографическая БД — БД, содержащая краткие сведения об описываемых объектах, представленные в строго определенном формате

.

Фильтр в ЭТ

— Заданные условия поиска данных (строк ) в электронных таблицах. Диалоговые панели Автофильтр, Последовательный автофильтр позволяют вводить условия поиска.

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

Формат графического файла

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

Форматирование

(документа) — Преобразование, изменяющее форму представления документа.

Форматирование символов — Изменение основных свойств (внешнего вида) символа (шрифта, размера или начертания), а также дополнительных параметров (верхний и нижний индексы и др.).

Формула в ЭТ — Последовательность, начинающаяся со знака равенства и включающая в себя числа, имена ячеек, функции и знаки математических операций, исключая текст. В первую очередь выполняются операции в скобках, а при их отсутствии последовательность операций определяется их старшинством

Фрагмент (или блок) таблицы — Это любая ее прямоугольная часть (часть строки или часть столбца, или одна ячейка, с которыми можно производить операции манипулирования (удаление, вставка, перенос, сортировка). Расчеты с числовыми фрагментами таблиц — Используются статистические функции (суммирование, усреднение, нахождение наибольшего или наименьшего значения и др.).

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

Циклическая алгоритмическая конструкция — Многократное выполнение последовательности серии команд алгоритма (тело цикла). Различают циклы со счетчиком (тело цикла выполняется определенное число раз) и циклы по условию (тело цикла выполняется до тех пор, пока выполняется условие). Существует структура алгоритма: цикл с вложенным ветвлением.

Числа в ЭТ — Основной тип данных, записываемый в числовом или экспоненциальном формате, например, 199,1 или 1,991+02. По умолчанию числа выравниваются в ячейке по правому краю.

Числовой формат данных ЭТ — Отображает два десятичных знака после запятой, например, 199,10.

Шрифт — Полный набор символов определенного начертания, включая прописные и строчные буквы, знаки препинания, специальные символы, цифры, знаки арифметических действий. Каждый шрифт имеет свое название, например, Arial.

Шрифт векторный — Шрифт, символы которого описываются математическими формулами и допускают произвольное масштабирование. Наибольшее распространение получили шрифты типа True Type (TT).

Шрифт моноширинный —

Шрифт, символы которого имеют одинаковую ширину, например, шрифт Courier.

Шрифт растровый — Шрифт, символы которого представляют собой группы пикселов. Эти шрифты допускают масштабирование только с определенными коэффициентами.

Шрифты рубленые —

Шрифт, символы которого обычно используются для заголовков, выделений в тексте и подписей к рисункам, например, Arial.

Шрифты с засечками — Шрифты, символы которых имеют засечки, обеспечивающие лучшее восприятие, например, Times New Roman. Используются в большинстве печатных текстов.

Экпоненциальном формат данных ЭТ — Применяется для чисел, содержащих большое число разрядов, которые не умещаются в ячейке. DOC — Оригинальный формат используемой версии Word. Полностью сохраняет форматирование. Использует 16-битную кодировку Unicode.

Электронная таблица (ЭТ) — Работающая в диалоговом режиме программа обработки числовых данных, хранящаяся и обрабатывающая данные в прямоугольных таблицах, состоящих из столбцов и строк. В MS Office электронная таблица реализуется помощью приложения Excel.

Ячейка таблицы — Элементарный элемент таблицы, образуемый на пересечении ее строк и столбцов. В ячейках таблиц могут быть помещены различные данные (текст, числа, графика

Ячейка ЭТ — Место пересечения столбца и строки, имеющая свой адрес, состоящий из заголовка столбца и заголовка строки, например, F1, D7.


Назад

Сложный фильтр в БД

 
ligor   (2002-08-13 20:15) [0]

Подскажите, нужно выбрать набор записей из таблицы
имется часть фамилии и часть имени
Фамилия «Пет»
Имя «Пет»
Нужно чтобы в наборе данных выскочили записи
«Петров» «Петр»
«Петухов» «Петр»
и т.д.


 
3JIA9I CyKA   (2002-08-13 20:24) [1]

OnFilterRecord (вроде)


 
Val   (2002-08-13 20:24) [2]

sql?


 
ligor   (2002-08-13 20:28) [3]

Если SQL то кажется надо ставить like
а это очень долго
Скоре всего нужен фильтр но незнаю как это сделать


 
Val   (2002-08-13 20:33) [4]

>ligor © (13. 08.02 20:28)
…а это очень долго
??? на чем ваше мнение основано?


 
ligor   (2002-08-13 20:36) [5]

Насколько я помню, не помню из какой литературы
like не использует индех при выборе, а идет последовательно от записи к записи
и в данном случае не очень подходит так как нужно искать записи
только где хватает «хвоста» Петр…. например Петров


 
Val   (2002-08-13 20:50) [6]

Filter := «FirstName = «+№39+»Пет*»+#39+» and SecondName = «+№39+»Пет*»+#39+» «;
вот вам фильтр…


 
ligor   (2002-08-13 22:20) [7]

Спасибо все замечательно
Про звездочку не знал, хотя сейчас почитал везде написано


Автофильтр в EXCEL.

Примеры и описание

Рассмотрим стандартный фильтр ( ) – автофильтр. Это удобный инструмент для отбора в таблице строк, соответствующих условиям, задаваемым пользователем.

Для нормальной работы автофильтра требуется «правильно» спроектированная таблица. Правильная с точки зрения MS EXCEL — это таблица без пустых строк/ столбцов, с заголовком, с однотипными данными в столбце (т.е. не нужно смешивать в одном столбце данные разных форматов, например текст и числа или числа и даты). Подробнее см. статью Советы по построению таблиц . Будем использовать именно такую, правильную таблицу (см. файл примера ).

Чтобы включить фильтр выделите любую ячейку таблицы, затем на вкладке Данные в группе Сортировка и фильтр выберите команду Фильтр ( ) или нажмите сочетание клавиш CTRL+SHIFT+L .

Команда Фильтр также доступна на вкладке Главная ( )

В строке заголовка появятся стрелки раскрытия фильтра.

Ниже покажем как отфильтровать строки на основании текстовых, числовых значений и дат.

Отбор по столбцу с текстовыми значениями

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

Сначала отобразим только те строки, которые содержат в столбце Товар слово Гвозди ( Регистр букв не имеет значения). Сделаем это 2-мя способами.

Способ 1. Нажмем стрелку раскрытия фильтра. Затем нажмем на значение (Выделить все) — снимутся все галочки. Затем установите галочку напротив значения гвозди .

Нажмите ОК. В итоге отобразятся только те строки, которые содержат в столбце Товар значение Гвозди (т.е. строки со значениями Лучшие Гвозди или Гвозди 10 мм отобраны не будут). Понять, что применен фильтр очень просто: стрелка раскрытия фильтра изменит свой вид (на ней появится маленькая воронка), а номера отобранных строк станут синими. Если подвести курсор к стрелке раскрытия фильтра столбца, в котором используется фильтрация, отобразится всплывающая подсказка с фильтром, который используется в данном столбце, например, Товар : «Равно Гвозди». В строке состояния (внизу листа) отображается информация о примененном фильтре: «Найдено записей: 13 из 76».

Снять примененный фильтр можно несколькими способами:

  • Нажмите стрелку раскрытия фильтра. Выберите пункт Снять фильтр с «Товар» или;
  • Нажмите стрелку раскрытия фильтра, затем нажмите на значение (Выделить все) или;
  • Выберите команду Очистить ( ) или;
  • Выберите команду Очистить , но в другом меню ( ) или;
  • Нажмите сочетание клавиш CTRL+SHIFT+L (должна быть выделена любая ячейка таблицы). При этом фильтр будет выключен.

Способ 2. Нажмем стрелку раскрытия фильтра. Выберем Текстовый фильтр Равно.. . Появится диалоговое окно, введем значение гвозди или выберем его из выпадающего списка.

В результате получим тот же результат.

Примечание: Если в столбце содержится и текстовые значения и числа (пример «неправильной» таблицы), то MS EXCEL будет отображать меню Числовые фильтры только в том случае, если количество чисел в столбце больше чем текстовых значений. В противном случае будут отображено меню Текстовые фильтры .

Теперь используя Способ 2 рассмотрим настройку других текстовых фильтров. Например, установим фильтр для отбора строк, которые содержат в столбце Товар значения начинающиеся со слова Гвозди . В этом случае будут строки со значениями Гвозди и Гвозди 10 мм.

Для этого нажмем стрелку раскрытия фильтра. Выберем Текстовый фильтр Начинается с.. .

Введем значение Гвозди, в результате получим:

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

Более того, в диалоговом окне Настраиваемый фильтр возможно использование Подстановочных знаков , которые могут сделать настройку фильтра очень гибкой. Но, как правило, сложные критерии фильтра не используются, т.к. их невозможно сохранить, в отличие от Расширенного фильтра . Единственное, что можно сделать — это использовать отмену последнего действия ( CTRL+Z ), который запоминает настройки фильтра. Например, применив последовательно 3 условия фильтрации можно используя комбинации CTRL+Z и CTRL+Y отменять и заново применять условия фильтрации (не выполняйте при этом никаких других действий кроме настройки фильтра!).

СОВЕТ : Т.к. условия отбора записей (настройки автофильтра) невозможно сохранить, то чтобы сравнить условия фильтрации одной и той же таблицы в разных случаях, скопируйте лист с исходной таблицей, затем примените нужные фильтры для оригинала таблицы и ее копии. Для сравнения результатов фильтрации используйте 2 окна (для каждой из таблиц). Для этого создайте новое окно ( ), перейдите в новый лист, затем выберите требуемый вид отображения окон ( ).

Отбор по столбцу с числовыми значениями


Если столбец содержит числа, то меню фильтра будет иметь другой вид. Рассмотрим на примере столбца Количество .

Настройка фильтра в этом случае интуитивно понятна и аналогична рассмотренному выше примеру с текстом. Стоит отметить пункты меню Выше среднего и Ниже среднего : в этом случае будут отображены те строки, в которых значения в столбце Количество выше и соответственно ниже среднего (в нашем случае среднее значение в столбце Количество равно 59,5).

На картинке ниже показано, что отобраны только строки со значениями в столбце Количество, которые больше среднего (больше 59,5).

Числовой фильтр Первые 10 отберет 10 наибольших значений. Настройка этого фильтра позволяет отобрать и нужное количество наименьших значений.

Настроим фильтр для отбора 9 наибольших значений в столбце Количество . Для наглядности отсортируем таблицу по столбцу Количество .

Что значит 9 наибольших значений? В человеческом понимании это: 450; 300; 200; 100; 90; 87; 50; 40; 30. В понимании MS EXCEL — это 450; 300; 300; 300; 300; 200; 200; 200; 100, т.е. повторы также учитываются. Но это еще не все. Применим фильтр для отбора 9 наибольших значений в столбце Количество .

Вопреки ожиданиям будет отобрано не 9 значений, а 11. Дело в том, что 9-м наибольшим является число 100, которое повторяется еще 2 раза, т. е. в таблице 3 строки со значением 100 в столбце Количество . MS EXCEL естественно не знает какой из трех строк отдать предпочтение, поэтому отбирает все три! В итоге к 9 наибольшим добавляется еще 2 повтора, т.е. всего отбирается 11 строк.

Отбор по столбцу с датами

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

Как видим, что поле для творчества просто огромно. Настройка же самого фильтра достаточно проста и аналогична вышерассмотренным случаям.

Отбор по цвету

Если ячейки в таблице отличаются цветом шрифта или ячейки, то фильтр также можно настроить и по цвету.

Причем можно выбрать или фильтр по цвету шрифта или фильтр по цвету ячейки, но не одновременно. Чтобы сделать это одновременно, продублируйте нужный столбец в таблице (вместе с форматированием) и примените в одном столбце фильтр по цвету шрифта, а в его копии фильтр по цвету ячейки.

Сортировка

Через меню фильтра также доступна сортировка таблицы. Текстовые значения могут быть отсортированы по алфавиту (от A до Z или от А до Я) или в обратном порядке. Числовые значения — по убыванию или возрастанию.

Проясним несколько моментов важных для осуществления правильной сортировки.

1. Перед сортировкой убедитесь, что фильтр охватывает все столбцы — иначе таблица при сортировке будет разрушена! Приведем пример.

Выделим только 2 заголовка 5 столбцовой таблицы и применим автофильтр. Для наглядности строки таблицы выделим разными цветами.

После сортировки столбца Товары от Я до А таблица будет разрушена! Это видно на рисунке ниже.

2. При сортировке столбцов скрытые строки не перемещаются. Перед сортировкой данных отобразите скрытые строки. Строки могут быть скрыты как через меню так и после применения Автофильтра — в любом случае они не примут участия в сортировке!

3. Отменить сортировку таблица нельзя! Для отмены результатов сортировки нужно сразу выполнить команду Отмена последнего действия ( CTRL+Z ). Можно еще закрыть файл без сохранения, но есть риск потери других изменений.

СОВЕТ : Другой способ возвращения к первоначальной сортировке: заранее перед сортировкой создать дополнительный столбец с порядковыми номерами строк (вернуть прежнюю сортировку можно потом, заново отсортировав по нему).

4. Сортировку можно также можно осуществить с помощью меню . После нажатия кнопки меню будет отображено диалоговое окно.

В принципе оно дублирует функционал сортировки в автофильтре, но с его помощью можно осуществить сортировку с учетом регистра .

  1. Выделите ячейку таблицы.
  2. На вкладке Данные в группе Сортировка и фильтр выберите команду Сортировка (та же команда доступна через меню ( ).
  3. В диалоговом окне Сортировка выберите столбец по которому нужно произвести сортировку и порядок сортировки от А до Я.
  4. В диалоговом окне Сортировка нажмите кнопку Параметры .
  5. В диалоговом окне Параметры сортировки установите флажок Учитывать регистр .
  6. Дважды нажмите кнопку ОК .

Как видно из рисунка ниже значения гвозди (строчные буквы) располагаются выше, чем значения Гвозди (первая буква Прописная).

Если данные в таблице изменились

Если данные в таблице были добавлены, изменены или удалены; или изменились значения формул в ячейках таблицы, то имеется возможность повторного применения фильтра или сортировки. Для этого выберите пункт Сортировка и фильтр на вкладке Главная в группе Редактирование , а затем нажмите кнопку Применить повторно .

Фильтрация в неправильных таблицах

В заключение рассмотрим неправильные таблицы. Предположим, что в таблице имеется пустая строка. Выделим ячейки заголовков и применим автофильтр (нажмите сочетание клавиш CTRL+SHIFT+L ).

Теперь попытаемся отфильтровать только те строки, которые содержат значения Цемент и гвозди в столбце Товар . Но у нас ничего не получится, т.к. в автофильтре нет значения Цемент !

Значения Цемент нет в меню автофильтра, т.к. в качестве таблицы MS EXCEL рассматривает только строки 6-9, а строки 11 и 12 — это уже другая таблица, т.к. под таблицей MS EXCEL понимает диапазон ячеек окруженный пустыми строками и столбцами (исключение составляют таблицы в формате EXCEL 2007 ).

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

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

Теперь для правильного установления фильтра необходимо сперва выделить ячейки заголовка, а только затем нажать сочетание клавиш CTRL+SHIFT+L ). Это не всегда удобно, поэтому над строкой заголовков всегда располагайте пустую строку, которую можно скрыть.

Поиск данных в списке Excel 2003

2.2.5.4. Поиск данных в списке Excel

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

К средствам фильтрации относятся:

  • Автофильтр (существуют два способа применения команды Автофильтр: с помощью меню «Данные» — «Фильтр» — «Автофильтр» — «раскрывающийся список команд автофильтра» и с помощью кнопки «Автофильтр» на панели инструментов стандартная)
  • Расширенный фильтр («Данные» — «Фильтр» — «Расширенный фильтр»)

Автофильтр предназначен для простых условий отборов строк, а расширенный фильтр для более сложных условий отбора записей. Условие отбора — это ограничения, заданные для отбора записей, которые отбираются редактором для отображения на экране.

 Использование автофильтра для поиска записей

Перед применением команды «Автофильтр» выделите ячейку в диапазоне списка. Далее выполните команду «Данные» — «Фильтр» — «Автофильтр», справа от заголовков (подписей) столбцов появятся кнопки со стрелками автофильтра (раскрывающиеся списки команд автофильтра).

Если щелкнуть стрелку автофильтра, отображается список различных вариантов фильтрации и сортировки по возрастанию и убыванию. При выполнении фильтрации стрелка активного автофильтра окрашивается в синий цвет.


Рис. 1.

Список команд автофильтра и их назначение:

  • Все — все записи будут отображаться на экране
  • Первые 10… — откроется окно диалога «Наложение условия по списку» в том случае, если данные в столбце являются числами. С помощью этого окна можно быстро просмотреть до десяти наибольших или наименьших чисел в столбце.
  • Условие… — откроется окно диалога «Пользовательский автофильтр». С помощью этого окна можно отсортировать записи, удовлетворяющие одному или двум условиям
  • Уникальные имена — это список неповторяющихся записей в ячейках столбца. Если щелкнуть левой кнопкой мыши на одном из уникальных имен, то редактор скроет строки, которые не содержат выбранных данных

Для того чтобы после фильтрации отобразились все записи необходимо нажать активную кнопку и выбрать команду «Все» или выполнить команду «Данные» — «Фильтр» — «Отобразить все», а для удаления автофильтра необходимо снять флажок команды «Автофильтр» в меню «Данные».

Алгоритм поиска записей отвечающих одному условию в одном столбце

  • Выберите ячейку в списке
  • Выполните команду «Данные» — «Фильтр» — «Автофильтр»
  • Щелкните на кнопке автофильтра в том столбце, который используете для фильтрации данных
  • Щелкните на одном из уникальных имен, редактор мгновенно скроет строки, которые не содержат выбранных данных

На рисунке представлен отфильтрованный список по столбцу «Категории» при выбранном условии отбора «Конд. продукты»


Рис. 2.

При необходимости отфильтрованный список по одному столбцу можно фильтровать по другим столбцам.

 Алгоритм поиска записей отвечающих одному или двум условиям в одном столбце

Для поиска записей по двум условиям применяется «Пользовательский автофильтр»:

  • Выберите ячейку в списке
  • Выполните команду «Данные» — «Фильтр» — «Автофильтр»
  • Щелкните на кнопке автофильтра в том столбце, который используете для фильтрации данных
  • Щелкните на команде «Условие», откроется окно диалога «Пользовательский автофильтр»
  • В двух левых раскрывающих списках выберите соответствующие операторы, а в двух правых раскрывающих списках выберите требуемые значения. Затем установите переключатель в одно из двух положений: «и», «или»
  • Щелкните на кнопке ОК для выполнения фильтрации. В списке будут отображены записи, удовлетворяющие заданным критериям.

Для примера выберем следующие условия отбора: показать в списке строки, содержащие продукты, цены которых больше или равны 69,80 грн и меньше 99,99 грн.


Рис. 3.

В окне диалога «Пользовательский фильтр» можно выбрать следующие операторы:

  • равно
  • не равно
  • больше
  • больше или равно
  • меньше
  • меньше или равно

Кроме того, можно задавать операторы сравнения, которые, используются при фильтрации текста: «начинается с», «не начинается с», «оканчивается на», «не заканчивается на», «содержит» и «не содержит».

На рисунке представлен отфильтрованный список по столбцу «Цена» при выбранных условиях отбора.


Рис. 4.

Фильтр по выделенному

Фильтрация по выделенному — это быстрый способ отфильтровать записи по одному условию с помощью кнопки «Автофильтр» на панели инструментов стандартная.
Рис. 5. Алгоритм фильтрации по выделенному:
  • Выделите требуемую запись в списке
  • Нажмите кнопку «Автофильтр», чтобы выполнить фильтрацию по выделенному. Редактор включит «Автофильтр» и скроет строки, которые не содержат выбранных данных

 Фильтрация списка с помощью расширенного фильтра

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

Перед применением команды «Расширенный фильтр» необходимо подготовить условия отбора, которые, как правило, надо располагать над списком. В связи с этим требованием на рабочем листе со списком должно быть не менее трех пустых строк, расположенных над списком. Кроме того, между списком и значениями условий отбора должна находиться хотя бы одна пустая строка.

Создание диапазона условий отбора:

  • Выделите заголовки фильтруемых столбцов списка и выполните команду «Копировать» любым из известных методов
  • Выделите первую строку для ввода условий отбора и выполните команду «Вставить» любым из известных методов
  • Введите требуемые критерии отбора записей в строки, расположенные под заголовками условий

На рисунке представлен образец диапазона условий отбора: показать в списке строки содержащие кондитерские продукты типа печенье в первом складе и напитки в четвертом складах.


Рис. 6.

После создания диапазона условий отбора, можно применить к списку команду «Расширенный фильтр».

Алгоритм фильтрации с помощью команды «Расширенный фильтр»
  • Выделите ячейку в списке
  • В меню «Данные» выберите команду «Фильтр» — «Расширенный фильтр»
  • Установите переключатель «Обработка» в положение «Фильтровать список на месте», если хотите, чтобы редактор выводил результаты фильтрации в списке, скрыв строки, не удовлетворяющие критериям отбора. Чтобы скопировать отфильтрованные записи в другую область рабочего листа, установите переключатель «Обработка» в положение «Скопировать результаты в другое место» и укажите диапазон для размещения результатов.
  • Проверьте исходный диапазон ячеек фильтруемого списка, диапазон должен содержать все ячейки списка с учетом ячеек заголовков столбцов
  • Проверьте диапазон условий отбора, он должен содержать все ячейки диапазона условий отбора с учетом ячеек заголовков столбцов
  • Щелкните на кнопке ОК для выполнения фильтрации. В списке будут отображены записи, удовлетворяющие заданным критериям

На рисунке представлен образец «Расширенного фильтра» выбранными параметрами фильтрации.


Рис. 7.

На рисунке представлен образец отфильтрованного списка, над которым расположен диапазон условий.


Рис. 8.

Далее …>>> 2.2.5.5. Промежуточные «Итоги» в списках

Фильтр Metso VPX™ — Metso

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

Фильтр Metso VPX™ является не только ответом на актуальные запросы отрасли, но и решением на будущее. Фильтр Metso VPX — это наиболее интеллектуальное и безопасное решение задач по управлению хвостохранилищами. Оно обеспечивает извлечение воды до 90% и содержание влаги менее 7% в проходящем через него потоке. При этом не существует материала, который был бы слишком сложен для фильтра Metso VPX™.

Высокая пропускная способность

Фильтр Metso VPX изначально разработан с целью увеличения пропускной способности, предусматривая объем до 36 м³ и площадь фильтрации 1391 м². В фильтре предусмотрено самое короткое время открывания и закрывания по сравнению с лучшими фильтрами в горнодобывающей отрасли.

Продолжительность цикла и давление в фильтре Metso VPX™ также можно легко регулировать в зависимости от минералогических характеристик. Более того, давление и количество камер были увеличены, а объем требуемого технического обслуживания сократился.

Все эти факторы способствуют увеличению пропускной способности и эксплуатационной готовности фильтра.

 

 

Многофункциональный модульный фильтр

Фильтр Metso VPX™ имеет компактную конструкцию с возможностью масштабирования модульных элементов. Новая технология, используемая в фильтре Metso VPX, уже зарекомендовала себя как легко адаптируемая для обработки материалов любой сложности при рабочем давлении до 25 бар.

Конструкция фильтра Metso VPX™ и лежащая в его основе технология гарантируют пользователям полное спокойствие — как бы ни менялись условия работы и минералогические характеристики, результаты  фильтрации останутся неизменными. В фильтрах Metso скорость увеличена в 2 раза по сравнению с другим VPA-фильтрами

Интеллектуальная система управления

Для оптимальной эффективности фильтр Metso VPX™ поставляется в комплекте с системой взвешивания с тензодатчиками, которая интегрирована в систему управления. В этой системе управления предусмотрены функции самонастройки фильтра, обеспечивающие упрощение эксплуатации и снижение рисков для персонала за счет автоматизации процессов.

Фильтр Metso VPX™ — это технология, которая не только дает результаты сегодня, но и позволяет соответствовать принципам устойчивого развития в будущем.

Повышенный уровень безопасности

Для любого горнодобывающего предприятия обеспечение безопасности всегда является важнейшей задачей, и поддержание безопасности высокого уровня будет в приоритете. Фильтр Metso VPX™ оснащен полностью электромеханической системой без гидравлических элементов. Это позволяет снизить шумовое воздействие и риски по сравнению с фильтрами с гидравликой.

Фильтр Metso VPX™ обеспечивает общее повышение уровня безопасности при сохранении высокой производительности фильтрации.

Выполнение запросов — Документация Django 1.7

После создания модели, Django автоматически создает API для работы с базой данных, который позволяет вам создавать, получать, изменять и удалять объекты. Этот раздел расскажет вам как использовать этот API. В описании моделей вы можете найти список всех существующих опций поиска.

В этом разделе(и последующих) мы будем использовать такие модели:

Создание объектов

Для представления данных таблицы в виде объектов Python, Django использует интуитивно понятную систему: класс модели представляет таблицу, а экземпляр модели — запись в этой таблице.

Чтобы создать объект, создайте экземпляр класса модели, указав необходимые поля в аргументах и вызовите метод save() чтобы сохранить его в базе данных.

Предположим, что модель находится в mysite/blog/models.py:

>>> from blog.models import Blog
>>> b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')
>>> b.save()

В результате выполнения этого кода будет создан INSERT SQL-запрос. Django не выполняет запросов к базе данных, пока не будет вызван метод save().

Метод save() ничего не возвращает.

См.также

save() принимает ряд аргументов, не описанных в этом разделе. Смотрите документацию о методе save() для подробностей.

Чтобы создать и сохранить объект используйте метод create().

Сохранение изменений в объектах

Для сохранения изменений в объект, который уже существует в базе данных, используйте save().

В данном примере изменяется название объекта b5 модели Blog и обновляется запись в базе данных:

>>> b5. name = 'New name'
>>> b5.save()

В результате выполнения этого кода будет создан UPDATE SQL запрос. Django не выполняет каких либо запросов к базе данных, пока не будет вызван метод save().

Сохранение полей ForeignKey и ManyToManyField

Обновление ForeignKey работает так же, как и сохранение обычных полей; просто назначьте полю объект необходимого типа. В этом примере обновляется атрибут blog модели Entry объектом entry, предполагается что в базе данных уже существуют используемые объекты:

>>> from blog.models import Entry
>>> entry = Entry.objects.get(pk=1)
>>> cheese_blog = Blog.objects.get(name="Cheddar Talk")
>>> entry.blog = cheese_blog
>>> entry.save()

Обновление ManyToManyField работает немного по-другому; используйте метод add() поля, чтобы добавить связанный объект. В этом примере объект joe модели Author добавляется к объекту entry:

>>> from blog.models import Author
>>> joe = Author. objects.create(name="Joe")
>>> entry.authors.add(joe)

Для добавления сразу нескольких объектов в ManyToManyField, добавьте несколько аргументов в метод add(). Например:

>>> john = Author.objects.create(name="John")
>>> paul = Author.objects.create(name="Paul")
>>> george = Author.objects.create(name="George")
>>> ringo = Author.objects.create(name="Ringo")
>>> entry.authors.add(john, paul, george, ringo)

Django вызовет исключение, если вы попытаетесь добавить объект неверного типа.

Получение объектов

Для получения объектов из базы данных, создается QuerySet через Manager модели.

QuerySet представляет выборку объектов из базы данных. Он может не содержать, или содержать один или несколько фильтров – критерии для ограничения выборки по определенным параметрам. В терминах SQL, QuerySet — это оператор SELECT, а фильтры — условия такие, как WHERE или LIMIT.

Вы получаете QuerySet используя Manager. Каждая модель содержит как минимум один Manager, и он называется objects по умолчанию. Обратиться к нему можно непосредственно через класс модели:

>>> Blog.objects
<django.db.models.manager.Manager object at ...>
>>> b = Blog(name='Foo', tagline='Bar')
>>> b.objects
Traceback:
    ...
AttributeError: "Manager isn't accessible via Blog instances."

Примечание

Обратиться к менеджерам можно только через модель и нельзя через ее экземпляр. Это сделано для разделения “table-level” операций и “record-level” операций.

Manager — главный источник QuerySet для модели. Например, Blog.objects.all() вернет QuerySet, который содержит все объекты Blog из базы данных.

Получение всех объектов

Самый простой способ получить объекты из таблицы — это получить их всех. Для этого используйте метод all() менеджера(Manager):

>>> all_entries = Entry.objects.all()

Метод all() возвращает QuerySet всех объектов в базе данных.

Получение объектов через фильтры

QuerySet, возвращенный Manager, описывает все объекты в таблице базы данных. Обычно вам нужно выбрать только подмножество всех объектов.

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

filter(**kwargs)

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

exclude(**kwargs)

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

Параметры фильтрации (**kwargs в определении функций выше) должны быть в формате описанном в разделе `Field lookups`_.

Например, для создания QuerySet чтобы получить записи с 2006, используйте filter() таким образом:

Entry.objects.filter(pub_date__year=2006)

Это аналогично:

Entry.objects.all().filter(pub_date__year=2006)
Цепочка фильтров

Результат изменения QuerySet — это новый QuerySet и можно использовать цепочки фильтров. Например:

>>> Entry.objects.filter(
...     headline__startswith='What'
... ).exclude(
...     pub_date__gte=datetime.date.today()
... ).filter(
...     pub_date__gte=datetime(2005, 1, 30)
... )

В этом примере к начальному QuerySet, который возвращает все объекты, добавляется фильтр, затем исключающий фильтр, и еще один фильтр. Полученный QuerySet содержит все объекты, у которых заголовок начинается с “What”, и которые были опубликованы между 30-го января 2005 и текущей датой.

Отфильтрованный QuerySet – уникален

После каждого изменения QuerySet, вы получаете новый QuerySet, который никак не связан с предыдущим QuerySet. Каждый раз создается отдельный QuerySet, который может быть сохранен и использован.

Например:

>>> q1 = Entry.objects.filter(headline__startswith="What")
>>> q2 = q1.exclude(pub_date__gte=datetime.date.today())
>>> q3 = q1.filter(pub_date__gte=datetime.date.today())

Эти три QuerySets независимы. Первый – это базовый QuerySet, который содержит все объекты с заголовками, которые начинаются с “What”. Второй – это множество первых с дополнительным критерием фильтрации, который исключает объекты с pub_date больше, чем текущая дата. Третий – это множество первого, с отфильтрованными объектами, у которых pub_date больше, чем текущая дата. Первоначальный QuerySet (q1) не изменяется последующим добавлением фильтров.

QuerySets – ленивы

QuerySets – ленивы, создание QuerySet не выполняет запросов к базе данных. Вы можете добавлять фильтры хоть весь день и Django не выполнит ни один запрос, пока QuerySet не вычислен. Разберем такой пример:

>>> q = Entry.objects.filter(headline__startswith="What")
>>> q = q.filter(pub_date__lte=datetime.date.today())
>>> q = q.exclude(body_text__icontains="food")
>>> print(q)

Глядя на это можно подумать что было выполнено три запроса в базу данных. На самом деле был выполнен один запрос, в последней строке (print(q)). Результат QuerySet не будет получен из базы данных, пока вы не “попросите” об этом. Когда вы делаете это, QuerySet вычисляется запросом к базе данных. Для подробностей, в какой момент выполняется запрос, смотрите Когда вычисляется QuerySets.

Получение одного объекта с помощью get

filter() всегда возвращает QuerySet, даже если только один объект возвращен запросом — в этом случае, это будет QuerySet содержащий один объект.

Если вы знаете, что только один объект возвращается запросом, вы можете использовать метод get() менеджера(Manager), который возвращает непосредственно объект:

>>> one_entry = Entry.objects.get(pk=1)

Вы можете использовать для get() аргументы, такие же, как и для filter() — смотрите `Field lookups`_ далее.

Учтите, что есть разница между использованием get() и filter() с [0]. Если результат пустой, get() вызовет исключение DoesNotExist. Это исключение является атрибутом модели, для которой выполняется запрос. Если в примере выше не существует объекта Entry с первичным ключом равным 1, Django вызовет исключение Entry.DoesNotExist.

Также Django отреагирует, если запрос get() вернет не один объект. В этом случае будет вызвано исключение MultipleObjectsReturned, которое также является атрибутом класса модели.

Другие методы QuerySet

В большинстве случаев вы будете использовать all(), get(), filter() и exclude() для получения объектов из базы данных. Однако это не все доступные возможности; смотрите документацию о QuerySet API для получения информации о всех существующих методах QuerySet.

Ограничение выборки

Используйте синтаксис срезов для списков Python для ограничения результата выборки QuerySet. Это эквивалент таких операторов SQL как LIMIT и OFFSET.

Например, этот код возвращает 5 первых объектов (LIMIT 5):

>>> Entry.objects.all()[:5]

Этот возвращает с шестого по десятый (OFFSET 5 LIMIT 5):

>>> Entry. objects.all()[5:10]

Отрицательные индексы (например, Entry.objects.all()[-1]) не поддерживаются.

На самом деле, срез QuerySet возвращает новый QuerySet – запрос не выполняется. Исключением является использовании “шага” в срезе. Например, этот пример выполнил бы запрос, возвращающий каждый второй объект из первых 10:

>>> Entry.objects.all()[:10:2]

Для получения одного объекта, а не списка (например, SELECT foo FROM bar LIMIT 1), используйте индекс вместо среза. Например, этот код возвращает первый объект Entry в базе данных, после сортировки записей по заголовку:

>>> Entry.objects.order_by('headline')[0]

Это эквивалент:

>>> Entry.objects.order_by('headline')[0:1].get()

Заметим, что первый пример вызовет IndexError, в то время как второй — DoesNotExist, если запрос не вернёт ни одного объекта. Смотрите get() для подробностей.

Фильтры полей

Фильтры полей – это “операторы” для составления условий SQL WHERE. Они задаются как именованные аргументы для метода filter(), exclude() и get() в QuerySet.

Фильтры полей выглядят как field__lookuptype=value. (Используется двойное подчеркивание). Например:

>>> Entry.objects.filter(pub_date__lte='2006-01-01')

будет транслировано в SQL:

SELECT * FROM blog_entry WHERE pub_date <= '2006-01-01';

Как это работает

Python позволяет определить функции, которые принимают именованные аргументы с динамически вычисляемыми названиями и значениями. Подробности смотрите в разделе Именованные аргументы в официальной документации Python.

Поля указанные при фильтрации должны быть полями модели. Есть одно исключение, для поля ForeignKey можно указать поле с суффиксом _id. В этом случае необходимо передать значение первичного ключа связанной модели. Например:

>>> Entry.objects.filter(blog_id=4)

При передаче неверного именованного аргумента, будет вызвано исключение TypeError.

API базы данных поддерживает около двух дюжин фильтров; полный список можно найти в разделе о фильтрах полей. Вот пример самых используемых фильтров:

exact

“Точное” совпадение. Например:

>>> Entry.objects.get(headline__exact="Man bites dog")

Создаст такой SQL запрос:

SELECT ... WHERE headline = 'Man bites dog';

Если вы не указали фильтр – именованный аргумент не содержит двойное подчеркивание – будет использован фильтр exact.

Например, эти два выражения идентичны:

>>> Blog.objects.get(id__exact=14)  # Explicit form
>>> Blog.objects.get(id=14)         # __exact is implied

Это сделано для удобства, т.к. exact самый распространенный фильтр.

iexact

Регистронезависимое совпадение. Такой запрос:

>>> Blog.objects.get(name__iexact="beatles blog")

Найдет Blog с названием «Beatles Blog», «beatles blog», и даже «BeAtlES blOG».

contains

Регистрозависимая проверка на вхождение. Например:

Entry.objects.get(headline__contains='Lennon')

Будет конвертировано в такой SQL запрос:

SELECT ... WHERE headline LIKE '%Lennon%';

Заметим, что этот пример найдет заголовок ‘Today Lennon honored’, но не найдет ‘today lennon honored’.

Существуют также регистронезависимые версии, icontains.

startswith, endswith

Поиск по началу и окончанию соответственно. Существуют также регистронезависимые версии istartswith и iendswith.

Это только основные фильтры. Полный список ищите в разделе о фильтрах по полям.

Фильтры по связанным объектам

Django предлагает удобный и понятный интерфейс для фильтрации по связанным объектам, самостоятельно заботясь о JOIN в SQL. Для фильтра по полю из связанных моделей, используйте имена связывающих полей разделенных двойным нижним подчеркиванием, пока вы не достигните нужного поля.

Этот пример получает все объекты Entry с Blog, name которого равен ‘Beatles Blog’:

>>> Entry.objects.filter(blog__name='Beatles Blog')

Этот поиск может быть столь глубоким, как вам будет угодно.

Все работает и в другую сторону. Чтобы обратиться к “обратной” связи, просто используйте имя модели в нижнем регистре.

Этот пример получает все объект Blog, которые имеют хотя бы один связанный объект Entry с headline содержащим ‘Lennon’:

>>> Blog.objects.filter(entry__headline__contains='Lennon')

Если вы используйте фильтр через несколько связей и одна из промежуточных моделей не содержит подходящей связи, Django расценит это как пустое значение (все значения равны NULL). Исключение не будет вызвано. Например, в этом фильтре:

Blog.objects.filter(entry__authors__name='Lennon')

(при связанной модели Author), если нет объекта author связанного с entry, это будет расценено как отсутствие name, вместо вызова исключения т. к. author отсутствует. В большинстве случаев это то, что вам нужно. Единственный случай, когда это может работать не однозначно — при использовании isnull. Например:

Blog.objects.filter(entry__authors__name__isnull=True)

вернет объекты Blog у которого пустое поле name у author и также объекты, у которых пустой author«в  «entry. Если вы не хотите включать вторые объекты, используйте:

Blog.objects.filter(entry__authors__isnull=False,
        entry__authors__name__isnull=True)
Фильтрация по связям много-ко-многим

Когда вы используете фильтрация по связанным через ManyToManyField объектам или по обратной связи для ForeignKey, может быть два вида фильтров. Рассмотрим связь Blog/Entry (от Blog к Entry – это связь один-ко-многим). Нам может понадобиться получить блоги с записями, у которых заголовок содержит “Lennon” и которые были опубликованы в 2008. Или нам могут понадобиться блоги с записями с “Lennon” в заголовке и в то же время блоги с записями опубликованными до 2008. Т.к. один Blog может иметь несколько связанных Entry, оба варианта возможны.

Аналогичная ситуация и с ManyToManyField. Например, если Entry имеет ManyToManyField названное tags, нам могут понадобиться записи связанные с тегами “music” и “bands” или нам может понадобиться запись содержащая тег “music” и статусом “public”.

Чтобы обеспечить оба варианта, Django использует определенные правила для вызовов filter() и exclude(). Все, что в одном вызове filter(), применяется одновременно, чтобы отфильтровать все объекты, соответствующие этим параметрам фильтрации. Успешные вызовы filter() каждый раз сокращают выборку объектов, но для множественных связей, они применяются каждый раз ко всем связанным объектам, а не только к объектам отфильтрованным предыдущим вызовом filter().

Звучит немного непонятно, но пример должен все прояснить. Для выбора всех блогов, содержащих записи и с “Lennon” в заголовке и опубликованные в 2008 (запись должна удовлетворять оба условия), мы будем использовать такой код:

Blog. objects.filter(entry__headline__contains='Lennon',
        entry__pub_date__year=2008)

Для выбора блогов с записями, у которых заголовок содержит “Lennon”, а также с записями опубликованными в 2008, мы напишем:

Blog.objects.filter(entry__headline__contains='Lennon').filter(
        entry__pub_date__year=2008)

Предположим, существует только один блог, и в нем есть записи со словом “Lennon” и записи 2008-го года, но ни одна запись 2008-го не содержит слово “Lennon”. Первый запрос вернет пустой ответ, второй запрос — один блог.

В этом примере, первый фильтр ограничит выборку блогами со связанными записями содержащими “Lennon” в заголовке. Второй фильтр ограничит выборку блогами с записями опубликованными в 2008. Записи выбранные вторым фильтром могут быть такими же, как и из первого фильтра, а могут и не быть. Мы фильтруем объекты Blog с каждым вызовом filter(), а не объекты Entry.

Все эти правила также распространяются и на exclude(): все условия в одном exclude() применяются к одному объекту (если эти условия относятся к одной связи). Условия в последующих вызовах filter() или exclude() для одной связи могут применяться к различным связанным объектам.

Фильтры могут ссылаться на поля модели

В примерах выше мы использовали фильтры, которые сравнивали поля с определенными значениями(константами). Но что, если вы хотите сравнить одно поле с другим полем одной модели?

Django предоставляет класс F для таких сравнений. Экземпляр F() рассматривается как ссылка на другое поле модели. Эти ссылки могут быть использованы для сравнения значений двух разных полей одного объекта модели.

Например, чтобы выбрать все записи, у которых количество комментариев больше, чем “pingback”, мы создаем объект F() с ссылкой на поле “pingback”, и используем этот объект F() в запросе:

>>> from django.db.models import F
>>> Entry.objects.filter(n_comments__gt=F('n_pingbacks'))

Django поддерживает операции суммирования, вычитания, умножения, деления и арифметический модуль для объектов F(), с константами или другими объектами F(). Чтобы найти все записи с количеством комментариев в два раза больше чем “pingbacks”, используем такой запрос:

>>> Entry.objects.filter(n_comments__gt=F('n_pingbacks') * 2)
Добавлено в Django 1.7:

Был добавлен оператор вознесения в степень **.

Чтобы найти все записи с рейтингом ниже суммы “pingback” и количества комментариев, необходимо выполнить такой запрос:

>>> Entry.objects.filter(rating__lt=F('n_comments') + F('n_pingbacks'))

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

>>> Entry.objects.filter(authors__name=F('blog__name'))

Для полей даты и времени вы можете использовать сумму или разницу объектов timedelta. Этот код вернет все записи, которые были отредактированы через 3 дня после публикации:

>>> from datetime import timedelta
>>> Entry.objects.filter(mod_date__gt=F('pub_date') + timedelta(days=3))

Объект F() теперь позволяет использовать битовые операции .bitand() и .bitor(), например:

>>> F('somefield').bitand(16)

“Shortcut” для фильтрации по первичному ключу

Для удобства, Django предоставляет специальный фильтр pk для работы с первичным ключом.

Например, первичный ключ модели Blog – поле id. Эти три запроса идентичны:

>>> Blog.objects.get(id__exact=14) # Explicit form
>>> Blog.objects.get(id=14) # __exact is implied
>>> Blog.objects.get(pk=14) # pk implies id__exact

Использование pk не ограничено только фильтром __exact – любой фильтр может быть использован с pk:

# Get blogs entries with id 1, 4 and 7
>>> Blog.objects.filter(pk__in=[1,4,7])

# Get all blog entries with id > 14
>>> Blog. objects.filter(pk__gt=14)

pk работает также и для связей. Например, эти три запроса идентичны:

>>> Entry.objects.filter(blog__id__exact=3) # Explicit form
>>> Entry.objects.filter(blog__id=3)        # __exact is implied
>>> Entry.objects.filter(blog__pk=3)        # __pk implies __id__exact

Экранирование знака процента и нижнего подчеркивания для оператора LIKE

Фильтры, эквивалентные оператору LIKE в SQL(iexact, contains, icontains, startswith, istartswith, endswith и iendswith), автоматически экранируют два символа, используемых оператором LIKE – знак процента и нижнего подчеркивания. (В операторе LIKE, знак процента означает “wildcard” из нескольких символов, нижнего подчеркивания — односимвольный “wildcard”.)

Это делает работу с API интуитивно-понятной. Например, чтобы получить все записи со знаком процента, просто используйте символ знака процента как любой другой символ:

>>> Entry.objects.filter(headline__contains='%')

Django самостоятельно позаботится об экранировании; полученный SQL будет выглядеть приблизительно вот так:

SELECT . .. WHERE headline LIKE '%\%%';

Также работает и символ нижнего подчеркивания. Оба, знак процента и нижнего подчеркивания, обрабатываются автоматически, прозрачно для вас.

Кэширование и QuerySets

Каждый QuerySet содержит кэш, для уменьшения количества запросов. Очень важно знать как он работает для эффективного использования Django.

В только что созданном QuerySet кеш пустой. После вычисления QuerySet и будет выполнен запрос к базе данных – Django сохраняет результат запроса в кеше QuerySet и возвращает необходимый результат (например, следующий элемент при итерации по QuerySet). Последующие вычисления QuerySet используют кеш.

Помните о кэшировании, чтобы использовать QuerySet правильно. Например, этот код создаст два экземпляра QuerySet и вычислит их не сохраняя:

>>> print([e.headline for e in Entry.objects.all()])
>>> print([e.pub_date for e in Entry.objects.all()])

Это означает, что один и тот же запрос будет выполнен дважды, удваивая нагрузку на базу данных. Также, есть вероятность, что списки могут содержать разные результаты, потому что запись Entry может быть добавлена или удалена в доли секунды между запросами.

Чтобы избежать этой проблемы, просто сохраните QuerySet и используйте его повторно:

>>> queryset = Entry.objects.all()
>>> print([p.headline for p in queryset]) # Evaluate the query set.
>>> print([p.pub_date for p in queryset]) # Re-use the cache from the evaluation.
Когда queryset не кэшируется

Queryset не всегда кэширует результаты. При выполнении только части queryset-а, кэш проверяется, но если кэш пустой, выполняется запрос без сохранения его результата в кэш. Это значит, что ограничение выборки, используя индекс или срез, как при использовании списков, не заполнит кэш.

Например, при получении объекта по индексу несколько раз будет каждый раз выполнять запрос к базе данных:

>>> queryset = Entry.objects.all()
>>> print queryset[5] # Queries the database
>>> print queryset[5] # Queries the database again

Однако, если уже был загружен весь queryset, он будет использоваться для получения значения:

>>> queryset = Entry. objects.all()
>>> [entry for entry in queryset] # Queries the database
>>> print queryset[5] # Uses cache
>>> print queryset[5] # Uses cache

Еще несколько примеров, когда загружается весь queryset и результат сохраняется в кэше:

>>> [entry for entry in queryset]
>>> bool(queryset)
>>> entry in queryset
>>> list(queryset)

Примечание

Использование print с queryset не заполнит кэш т.к. будет вызван __repr__(), который показывает только часть объектов.

Сложные запросы с помощью объектов Q

Именованные аргументы функции filter() и др. – объединяются оператором “AND”. Если вам нужны более сложные запросы (например, запросы с оператором OR), вы можете использовать объекты Q.

Объект Q (django.db.models.Q) – объект, используемый для инкапсуляции множества именованных аргументов для фильтрации. Аргументы определяются так же, как и в примерах выше.

Например, этот объект Q определяет запрос LIKE:

from django. db.models import Q
Q(question__startswith='What')

Объекты Q могут быть объединены операторами & и |, при этом будет создан новый объект Q.

Например, это определение представляет объект Q, который представляет операцию “OR” двух фильтров с «question__startswith»:

Q(question__startswith='Who') | Q(question__startswith='What')

Этот фильтр равнозначен такому оператору SQL WHERE:

WHERE question LIKE 'Who%' OR question LIKE 'What%'

Вы можете комбинировать различные объекты Q с операторами & и | и использовать скобки. Можно использовать оператор ~ для отрицания(NOT) в запросе:

Q(question__startswith='Who') | ~Q(pub_date__year=2005)

Каждый метод для фильтрации, который принимает именованные аргументы (например, filter(), exclude(), get()get()) также может принимать объекты Q. Если вы передадите несколько объектов Q как аргументы, они будут объединены оператором “AND”. Например:

Poll.objects.get(
    Q(question__startswith='Who'),
    Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
)

… примерно переводится в SQL:

SELECT * from polls WHERE question LIKE 'Who%'
    AND (pub_date = '2005-05-02' OR pub_date = '2005-05-06')

Вы можете использовать одновременно объекты Q и именованные аргументы. Все аргументы(будь то именованные аргументы или объекты Q) объединяются оператором “AND”. Однако, если присутствует объект Q, он должен следовать перед именованными аргументами. Например:

Poll.objects.get(
    Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)),
    question__startswith='Who')

… правильный запрос, идентичный предыдущему примеру; но:

# INVALID QUERY
Poll.objects.get(
    question__startswith='Who',
    Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)))

… будет неправильный`(Вообще Django здесь не причем. Синтаксис Python не позволяет передавать именованные аргументы перед позиционными – прим. переводчика)`.

Удаление объектов

Метод удаления соответственно называется delete(). Этот метод сразу удаляет объект и ничего не возвращает. Например:

Можно также удалить несколько объектов сразу. Каждый QuerySet имеет метод delete(), который удаляет все объекты из QuerySet.

Например, этот код удаляет все объекты Entry у годом pub_date равным 2005:

Entry.objects.filter(pub_date__year=2005).delete()

Учтите, что при любой возможности будет использован непосредственно SQL запрос, то есть метод delete() объекта может и не использоваться при удалении. Если вы переопределяете метод delete() модели и хотите быть уверенным, что он будет вызван, вы должны “самостоятельно” удалить объект модели (например, использовать цикл по QuerySet и вызывать метод delete() для каждого объекта) не используя метод delete() QuerySet.

При удалении Django повторяет поведение SQL выражения ON DELETE CASCADE – другими словами, каждый объект, имеющий связь(ForeignKey) с удаляемым объектом, будет также удален. Например:

b = Blog.objects.get(pk=1)
# This will delete the Blog and all of its Entry objects.
b.delete()

Это поведение можно изменить, определив аргумент on_delete поля ForeignKey.

Метод delete() содержится только в QuerySet и не существует в Manager. Это сделано, чтобы вы случайно не выполнили Entry.objects.delete(), и не удалили все записи. Если вы на самом деле хотите удалить все объекты, сначала явно получите QuerySet, содержащий все записи:

Entry.objects.all().delete()

Изменение нескольких объектов

Если вам понадобиться установить значение поля для всех объектов в QuerySet, используйте метод update(). Например:

# Update all the headlines with pub_date in 2007.
Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same')

Вы можете изменить только обычные поля или ForeignKey, используя этот метод. Для обычных полей просто определите новое значение как константу. Чтобы обновить ForeignKey, укажите объект связанной модели. Например:

>>> b = Blog.objects.get(pk=1)

# Change every Entry so that it belongs to this Blog.
>>> Entry.objects.all().update(blog=b)

Метод update() применяется мгновенно и возвращает количество записей, удовлетворяющих запросу(что может быть не равно количеству обновленных записей, если они уже содержат новые значения). Единственное ограничение для изменяемого QuerySet – он может изменять только главную таблицу модели. Вы можете использовать фильтры по связанным полям, но вы можете изменять поля только таблицы изменяемой модели. Например:

>>> b = Blog.objects.get(pk=1)

# Update all the headlines belonging to this Blog.
>>> Entry.objects.select_related().filter(blog=b).update(headline='Everything is the same')

Учтите, что метод update() использует непосредственно SQL запрос. Это операция для массового изменения. Метод save() модели не будет вызван, сигналы pre_save или post_save не будут вызваны (которые являются следствием вызова save()), аргумент auto_now не будет учтен. Если вы хотите сохранить каждый объект в QuerySet и удостовериться что метод save() вызван для каждого объекта, вы не должны использовать какой-либо специальный метод. Просто используйте цикл и вызовите метод save():

for item in my_queryset:
    item.save()

Метод update() может использовать объект F для обновления одного поля значением другого поля модели. Это особенно полезно для изменения счетчика. Например, увеличить значение n_pingbacks на один для каждой записи:

>>> Entry.objects.all().update(n_pingbacks=F('n_pingbacks') + 1)

Однако, в отличии от использования объектов F() в методах filter() и exclude(), вы не можете использовать связанные поля при обновлении. Если вы будете использовать связанное поле в объекте F(), буде вызвано исключение FieldError:

# THIS WILL RAISE A FieldError
>>> Entry.objects.update(headline=F('blog__name'))

Связанные объекты

Используя связанные объекты в модели (например, ForeignKey, OneToOneField или ManyToManyField), в объект модели будет добавлен API для работы со связанными объектами.

Используя модели из примеров выше, например, объект e модели Entry, может получить связанные объекты Blog используя атрибут blog: e.blog.

(Это все работает благодаря дескрипторам Python. Это совсем не важно и упоминается для любознательных.)

Django также предоставляет доступ к связанным объектам с “другой” стороны – ссылка с связанного объекта на объект, который определяет связь. Например, объект b модели Blog имеет доступ ко всем связанным объектам Entry через атрибут entry_set: b.entry_set.all().

Все примеры в этом разделе используют вышеупомянутые модели Blog, Author и Entry.

Связь один-к-многим

Прямая

Если модель содержит ForeignKey, объект этой модели может получить связанный объект через атрибут модели.

Например:

>>> e = Entry.objects.get(id=2)
>>> e.blog # Returns the related Blog object.

Вы можете получить и изменить его через атрибут внешнего ключа. Как вы можете предполагать, изменения не будут сохранены в базу данных, пока не будет вызван метод save(). Например:

>>> e = Entry.objects.get(id=2)
>>> e.blog = some_blog
>>> e.save()

Если поле ForeignKey содержит null=True (то есть разрешено значение NULL), вы можете указать None для этого поля. Например:

>>> e = Entry.objects.get(id=2)
>>> e.blog = None
>>> e.save() # "UPDATE blog_entry SET blog_id = NULL ...;"

Прямой доступ для связи один-ко-многим кэширует полученное значение при первом обращении. Последующие обращения к внешнему ключу этого же объекта будут использовать кэшированное значение. Например:

>>> e = Entry.objects.get(id=2)
>>> print(e.blog)  # Hits the database to retrieve the associated Blog.
>>> print(e.blog)  # Doesn't hit the database; uses cached version.

Запомните, что вызов метода select_related() QuerySet рекурсивно заполняет кэш значениями для всех связей один-ко-многим. Например:

>>> e = Entry.objects.select_related().get(id=2)
>>> print(e.blog)  # Doesn't hit the database; uses cached version.
>>> print(e.blog)  # Doesn't hit the database; uses cached version.
“Обратная” связь

Если модель содержит ForeignKey, будет содержать Manager, который вернет все связанные объекты первой модели. По-умолчанию, этот Manager называется FOO_set, где FOO название основной модели в нижнем регистре. Этот Manager возвращает QuerySets, который может быть отфильтрован и изменен как было описано в разделе “Получение объектов”.

Например:

>>> b = Blog.objects.get(id=1)
>>> b.entry_set.all() # Returns all Entry objects related to Blog.

# b.entry_set is a Manager that returns QuerySets.
>>> b.entry_set.filter(headline__contains='Lennon')
>>> b.entry_set.count()

Вы можете переопределить название FOO_set, установив параметр related_name при определении ForeignKey. Например, если бы модель Entry содержала blog = ForeignKey(Blog, related_name=’entries’), пример выше выглядел бы как:

>>> b = Blog.objects.get(id=1)
>>> b.entries.all() # Returns all Entry objects related to Blog.

# b.entries is a Manager that returns QuerySets.
>>> b.entries.filter(headline__contains='Lennon')
>>> b.entries.count()
Использование своего менеджера для обратных связей

Добавлено в Django 1.7.

По умолчанию для обратных связей используется менеджер RelatedManager, который является дочерним классом менеджера по умолчанию модели. Чтобы указать свой менеджер, используйте следующий подход:

from django.db import models

class Entry(models.Model):
    #...
    objects = models.Manager()  # Default Manager
    entries = EntryManager()    # Custom Manager

b = Blog.objects.get(id=1)
b.entry_set(manager='entries').all()

Если EntryManager выполняет фильтрацию в методе get_queryset(), она будет выполнена и при вызове all().

Также вы можете вызывать методы указанного менеджера:

b.entry_set(manager='entries').is_published()

Связь много-ко-многим

Обе “стороны” связи многое-ко-многим автоматически получают API для работы со связанными объектами. Этот API работает так же, как и “обратный” менеджер для связи один-ко-многим, описанный выше.

Единственное отличие: Модель, содержащая ManyToManyField, использует имя атрибута этого поля, в то время, как “обратная” модель использует название, состоящее из названия модели в нижнем регистре плюс ‘_set’ (так же, как и для связи один-ко-многим).

Пример все разъяснит:

e = Entry.objects.get(id=3)
e.authors.all() # Returns all Author objects for this Entry.
e.authors.count()
e.authors.filter(name__contains='John')

a = Author.objects.get(id=5)
a.entry_set.all() # Returns all Entry objects for this Author.

Так же, как и ForeignKey, ManyToManyField позволяет определить related_name. В примере выше, если поле ManyToManyField модели Entry содержит related_name=’entries’, тогда каждый объект модели Author будет с атрибутом entries вместо entry_set.

Связь один-к-одному

Связь один-к-одному похожа на связь многое-к-одному. При добавлении OneToOneField в модель, объект этой модели будет содержать ссылку на связанный объект через атрибут модели.

Например:

class EntryDetail(models.Model):
    entry = models.OneToOneField(Entry)
    details = models.TextField()

ed = EntryDetail.objects.get(id=2)
ed.entry # Returns the related Entry object.

Разница в обратной связи. Связанная модель также имеет доступ к объекту Manager, но Manager представляет один объект, а не множество объектов:

e = Entry.objects.get(id=2)
e.entrydetail # returns the related EntryDetail object

Если ни один объект не добавлен в связь, Django вызовет исключение DoesNotExist.

Объект может быть назначен через обратную связь так же, как и через прямую:

Как работает обратная связь?

Другие ORM требуют определять связь с обеих сторон. Разработчики Django считают, что это противоречит принципу DRY (Don’t Repeat Yourself — не повторяй себя), по этому принципу Django требует определить связь только для одной модели.

Но как это возможно, учитывая, что модель не знает, какие другие модели связаны с ней, пока классы этих моделей не будут загружены?

Все происходит при регистрации приложений. Когда запускается Django, происходит импорт всех приложения из INSTALLED_APPS, далее импорт модуля models этих приложений. Когда создается класс модели, Django добавляет обратные связи для всех связанных моделей. Если связанная модель еще не импортирована, Django запоминает эту модели и добавит связь при ее импорте.

По этому важно, чтобы все модели, которые вы используете, находились в приложениях из INSTALLED_APPS. Иначе связи не будут работать.

{\ infty} \ left (h_R [k] x_I [n-k] + h_I [k] x_R [n-k] \ right) \ tag {4} $$

, где нижние индексы $ _R $ и $ _I $ обозначают действительную и мнимую части соответственно. Из $ (4) $ вы видите, что вам нужно реализовать два фильтра, один с импульсной характеристикой $ h_R [n] $, а другой с импульсной характеристикой $ h_I [n] $, и что вам также нужно отфильтровать реальную часть как мнимая часть входного сигнала с обоими фильтрами.

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

  1. Фильтр на самом деле является вещественным, но имеет сложный вход и выход, т.е. вы просто фильтруете действительную и мнимую части входного сигнала независимо с помощью одного и того же фильтра. В уравнении. $ (4) $, что означает, что $ h_I [n] = 0 $. Это тот случай, когда вы применяете фильтр нижних частот после сложной демодуляции.

  2. Фильтр является комплексным, но входной сигнал является действительным, поэтому вы фильтруете один (действительный) сигнал с помощью двух фильтров (действительной и мнимой частей импульсной характеристики).В уравнении. $ (4) $, что означает, что $ x_I [n] = 0 $. Это происходит, когда вы фильтруете сигнал полосы пропускания с действительным знаком с помощью аналитического полосового фильтра перед комплексной демодуляцией . (Обратите внимание, что здесь фильтр полосовой, а не низкочастотный).

Полная операция комплексной фильтрации с комплексными входами и выходами, и сложная импульсная характеристика (как определено уравнением $ (4) $) используется для моделирования цифровой системы связи с использованием эквивалентного дискретного канала основной полосы частот. .Соответствующий фильтр канала основной полосы частот обычно является комплексным.

цифровая связь — сложные фильтры, используемые в аналоговой области

Векторные модуляторы

и микшер с одной боковой полосой (преобразователь частоты) являются обычным и относительно простым аналоговым компонентом для подавления сигнала изображения.

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

Сдвиг частоты квадратурного смешанного сигнала

Обычно мы видим эти компоненты с реальным входом, где внутренний 90-градусный разветвитель немедленно преобразует входной сигнал в сложный сигнал, а затем он подвергается дальнейшей обработке. Однако нет причин, по которым они не могут использоваться идентичным образом с квадратурным делителем, обойденным в случае, если сигнал IQ с низкой ПЧ уже существует.

Это предпочтительный подход для устранения сигнала изображения.

Однако, чтобы реализовать общий комплексный фильтр в аналоговой области, вам нужно будет сделать следующее с четырьмя реальными фильтрами, как показано на диаграмме ниже.Это связано с выполнением полного комплексного умножения с реальными сигналами, как указано в:

$$ (s_I + js_Q) (c_I-jc_Q) $$ $$ = (s_Ic_I + s_Qc_Q) + j (s_Ic_Q-s_Qc_I) $$

Соответствует умножению сигнала (ов) на коэффициент, такой как в КИХ-фильтре (c), показывающий, что у нас есть вход I и Q, умноженный на и I коэффициент Q, в результате получается I (действительная часть, определяемая как $ s_Ic_I + s_Qc_Q $) и Q (Мнимая часть, заданная s_Ic_Q-s_Qc_I).

Эквивалентно сложная аналоговая фильтрация (фильтрация сложного входа со сложной импульсной характеристикой) формируется с помощью четырех реальных фильтров, как показано на рисунке ниже.Каждый фильтр имеет реальную импульсную характеристику, задаваемую $ h_i (t) $ или $ h_q (t) $, соответствующими действительной и мнимой части желаемой комплексной импульсной характеристики.

Кроме того, я наткнулся на это: https://ieeexplore.ieee.org/abstract/document/4151912

Обратите внимание, что фильтры на ПАВ являются аналоговым эквивалентом КИХ-фильтра (фильтр «все = ноль» с бесконечно удаленными полюсами, сформированный суммированием взвешенных задержек)

сложный фильтр

сложный фильтр

Предыдущая страница ‘Комплекс Resonator »исследовал, как резонирующий фильтр реагирует на однократный импульсный вход.Теперь я хочу узнать, что за комплексный интегратор работает со сложными синусоидальными входными сигналами. Потом дальше, я разберусь, что интересного фильтр работа может быть выполнена с помощью сложного интегратора на реальном входном сигнале.

Для тестирования сложного интегратора как фильтра я написал отдельный Объект Max / MSP. Вместо времени затухания пользовательского параметра я вернулся к более прямой радиус параметра опять же, потому что некоторые отношения между радиусом и выходной амплитудой должны быть исследованным.



В качестве комплексного тестового сигнала я подаю генерируемый компьютером косинус и синусоидальной волны на соответствующих входах сложного резонатора.Потому что (сложная) синусоида имеет больше энергии, чем одиночный импульс выборки, она может Можно предположить, что резонатор будет производить повышенный выходной уровень. Амплитуду выходного сигнала можно легко вычислить, выполнив Пифагор на реальный и мнимый выход.

В первом тесте я установил радиус 0,9 и позволил входной частоте совпадать. центральная частота фильтра на 200 Гц:


Ой, на выходе амплитуда почти 10, а амплитуда 1 равна единице прирост.Я счастлив, что я еще не включил это в свои колонки. Увеличение радиуса приводит к дальнейшему росту производительности. амплитуда. Вот некоторые значения:

радиус 0,9 амплитуда 10
радиус 0,99 амплитуда 100
радиус 0,999 амплитуда 1000
радиус 0,9999 амплитуда 10000

Входная амплитуда кажется увеличенной на:



Позвольте мне сначала сделать что-нибудь с этими сумасшедшими амплитудами.Если я нормализовать вход, применяя инверсию наблюдаемого усиления фактор, я ожидаю, что результат будет в пределах предел единичного усиления:



Это действительно работает. Значения входной выборки умножаются на коэффициент 1-радиус. В приведенном выше примере это 10, а для большего радиусы это может означать существенное ослабление входного сигнала. Тем не менее выход растет до стабильной амплитуды около 1 каждый раз. Это замечательный явление.Для простоты использования я включил эту нормализацию в объект.

Теперь, когда вход комплексного интегратора нормализован, отфильтруйте характеристики можно проверить. Чтобы визуализировать эффекты фильтра, я кормлю комплексный шум и построить комплексный спектр выходного сигнала. я использую линейные шкалы для амплитуды и частоты, а также пример с довольно Центральная частота фильтра высоких частот:




Комплекс интегратор — полосовой фильтр.Увеличение радиус, например до 0,999, сделает полосу уже:



В большом радиусе настройки, интеграция может сделать очень узкие полосовые фильтры. Но есть нижняя сторона. Мы видели, как входной сигнал должен быть ослаблен в соответствии с настройка радиуса; коэффициент нормализации в приведенном выше примере равен 0,001. Если ввод так сильно сокращен, это также должно быть так, что в интегратору требуется некоторое время, чтобы выйти на полный выходной уровень.Даже если входящий звук имеет быструю атаку, фильтр не сможет следите за этим. Ниже приведен пример радиуса 0,999. Вход сигнала и выход одной фазы показаны:



При входном затухании с 1 радиусом время нарастания того же порядка в качестве времени затухания в приведенном выше примере около 25 миллисекунд. Это лучше всего наблюдаемый с прямоугольным входом, который эквивалентен входу постоянного тока в рамке:


В медленное время нарастания в узких резонирующих фильтрах надоедает.Любой пост атака не пройдет фильтр. Было бы неплохо, если бы мы могли сделать этот фильтр работает немного быстрее. Что ж? На самом деле это можно сделать.

Ниже я использую три сложных фильтра вместо одного. Это означает, что для каждый момент выборки выполняется три комплексных умножения вместо один. Это способ передискретизации. Эффект фильтра радиуса 0,999 равен теперь делается с радиусом 0,99 для каждого фильтра.


Проверка времени нарастания входной частоты в центре фильтра частота, действительно, показывает гораздо более быстрый рост для каскада:


одиночный интегратор, радиус 0.999

каскад, радиус 0,99


положительные и отрицательные частоты

Я не сказал, как усложняю шум, прежде чем скармливать его compole ~. Если честно, мне еще предстоит узнать, как сделать сложный сигнал. А пока я использую гильберта Max / MSP ~ объект, который выполняет необходимое «преобразование Гильберта». Он имеет наборы allpass фильтры с фазовым отклонением среди них, 90 градусов для большинства частоты, кроме самых низких частот и самой высокой октавы.Я думаю, что преобразование Гильберта должно давать положительные частоты исключительно. Ниже вы можете видеть, что hilbert ~ производит отрицательные частоты. Этот смущал меня много раз. В любом случае, положительные частоты могут быть производится путем изменения знака мнимой выходной фазы.


Поскольку преобразование Гильберта может создавать сложные сигналы с положительным или исключительно отрицательные частоты, также можно сделать и то, и другое, но с разным содержанием и смешайте их в один сложный сигнал.я сделали это в примере ниже, чтобы произвести странную демонстрацию спектр, где частоты выше Найквиста не являются псевдонимами тех ниже Найквиста. Радиус фильтра равен 0, чтобы показать полный вывод:


Комплексный интегратор может отличить положительное от отрицательного частот, поэтому теперь можно подавить положительные частоты для Например, и пусть проходит полоса отрицательных частот:


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

Кстати, подать реальный сигнал в комплексе не проблема. интегратор и отфильтруйте это:


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


Когда берется мнимый выход, низкие частоты более произносится:


Это явление напоминает фильтр переменной состояния, где он используется для получения высоких, низких и полосовых частот с одного процесс фильтрации.При сложном интеграторе эффект не может быть полностью эксплуатируется. Если реальный сигнал отправляется в сложном интеграторе каскад, спектральная разница между реальным и мнимым выходом при последний фильтр пропал. Почему? Интеграторы стремятся сделать настоящую сигнальный комплекс. А для сложных сигналов комплексный интегратор является простой полосовой фильтр на обоих выходах.

Если сложный интегратор стремится сделать реальный сигнал сложным, может ли он не может использоваться для преобразования Гильберта? Это то, на что я надеялся.К сожалению, это хорошо работает только с настройками большого радиуса, которые означает узкие полосы фильтра. Вот пример. Круг на x-y осциллограф демонстрирует ортогональность фаз:


На высоких центральных частотах значение радиуса может быть меньше, и все равно выходит точный сложный сигнал:


линии представляют собой просто интерполяцию между точками на окружности


Можно даже преобразовать сигнал 15 кГц из реального в сложный, это то, чего не может сделать объект hilbert ~.

линии представляют собой просто интерполяцию между точками на круг

Это открывает одну интересную перспективу. Если вам нужно сделать постоянный банк фильтров Q по любой причине, у вас могут быть сложные выходы за небольшую дополнительную плату. Но что, если вам нужен сложный сигнал без эффект фильтра? Я так много написал о сложных сигналах, я действительно чувствую необходимость выяснить, как можно выполнить преобразование Гильберта, и сделать солидная иллюстрированная документация по этому поводу.





Низковольтные комплексные фильтры, использующие операционные усилители с обратной связью по току

В данной статье представлена ​​новая сложная топология фильтров, реализованная с использованием операционных усилителей с обратной связью по току в качестве активных элементов. Предлагаемые преимущества — это возможность работы при низком напряжении и требование использования только заземленных пассивных элементов. Приведены два примера применения, в которых частотные характеристики производных фильтров соответствуют стандартам ZigBee и Bluetooth соответственно.Оценка их производительности была проведена на основе результатов моделирования на уровне постлейки с использованием моделей МОП-транзисторов, предоставленных процессом AMS C35B4 CMOS.

1. Введение

Архитектура приемопередатчиков с низкой ПЧ страдает от присутствия сигналов изображения, вызванного операцией преобразования с понижением частоты, реализуемой сложным микшированием. К сожалению, из-за их симметричного отклика относительно постоянного тока обычные реальные фильтры не способны удалять сигналы изображения. Чтобы преодолеть эту проблему, в литературе был представлен новый класс фильтров, обозначаемых сложными фильтрами.Сложные фильтры строятся из двухканальных сетей, где на их входы подается пара сигналов с равными амплитудами и квадратурными фазами (и каналы). Концепция комплексной обработки сигналов формально описана в [1–3].

В литературе уже проводились значительные исследования по разработке сложных фильтров, подходящих для приемников с низкой ПЧ. Топологии с дискретным временем в [4, 5] были получены с использованием методов коммутируемого конденсатора и коммутируемого тока соответственно.Непрерывные фильтры были введены в [6–21]. Топологии [6, 7] представляют собой фильтры компандирования, реализованные с использованием биполярных транзисторов. Концепция традиционной линейной непрерывной фильтрации и МОП-транзисторов использовалась в [8–21]. Топологии, описанные в [8–14], предлагают возможность реализации без резисторов, и это произошло из-за использования операционных усилителей крутизны (OTA) [8–12] или токовых зеркал (CM) [13, 14] в качестве активных элементов. Конвейеры тока второго поколения (CCII) в одинарной форме [15, 16] или полностью дифференциальной форме [17] использовались для реализации сложных фильтров токового режима.CCII, сконфигурированные как повторители тока (CF) и повторители напряжения (VF), использовались в [18], в то время как CCII как VF использовались в [19]. В топологии [20] в качестве активных элементов использовались операционные усилители (операционные усилители), а в [21] был представлен ряд реализаций в режиме напряжения и тока, основанных на крутизне, трансмиссионном сопротивлении и усилителях тока и оценен. Операционные усилители с обратной связью по току (CFOA) использовались для реализации сложных функций фильтра в [22, 23].Топология в [22] представляет собой схему смешанного режима, и, следовательно, требуются дополнительные входные интерфейсы, чтобы работать в режиме напряжения или тока. Недостатком схемы [23] является необходимость использования плавающих конденсаторов и резисторов.

Разработка сложных фильтров в режиме напряжения с заземленными пассивными элементами и CFOA возможна с использованием строительных блоков, представленных в этой статье. Дополнительной привлекательной характеристикой является их способность работать при низком напряжении благодаря использованию соответствующей топологии CFOA.Работа организована следующим образом: сложные интеграторы представлены в Разделе 2, а пример конструкции фильтра 12-го порядка приведен в Разделе 3. Результаты моделирования пост-макета с использованием Аналоговой среды проектирования Cadence также представлены в Разделе 3, где он проверено, что предложенный фильтр соответствует требованиям стандартов ZigBee и Bluetooth.

2. Сложные интеграторы, использующие CFOA

Передаточную функцию комплексного интегратора можно легко получить, выполнив сдвиг частоты (обозначенный) передаточной функции соответствующего действительного интегратора в соответствии с транспонированием [24, 25].Таким образом, функциональная блок-схема (FBD) комплексного интегратора с потерями представлена ​​на рисунке 1, где переменная описывает комплексное напряжение в соответствии с определением:.


Реализация FBD на Рисунке 1 (a) с использованием CFOA в качестве активных элементов приведена на Рисунке 2, где напряжение представляет собой источник постоянного напряжения с соответствующим значением, чтобы топология была совместима для работы с одним источником питания. напряжение питания окружающей среды. Используя свойства терминалов CFOA, получаем, что Используя (1), комплексная передаточная функция фильтра определяется выражением (2) как где частота среза определяется выражением (3) а частоту сдвига — по (4)

Инвертирующий интегратор с потерями изображен на рисунке 3, где видно уменьшенное количество активных элементов.Соответствующие неинвертирующие и инвертирующие комплексные интеграторы без потерь могут быть получены из интеграторов на рисунках 2 и 3 путем исключения резисторов, подключенных параллельно с конденсаторами.

Изучив топологии на рисунках 2 и 3, можно сделать вывод, что: (a) Может быть выполнено прямое соединение между промежуточными каскадами фильтра вместо использования дополнительных каскадов интерфейса, как в [22]. В частности, два CCII, сконфигурированные как преобразователи напряжения в ток, могут использоваться для выполнения необходимого преобразования входного сигнала из-за смешанного режима топологии [22].Следует также отметить, что в случае фильтров, где требуется операция интегрирования-суммирования, необходимо использовать четыре CCII, чтобы построить сложный интегратор с возможностью суммирования. (b) Требуются только заземленные пассивные элементы, и это не относится к топологиям из [23], где требуются плавающие резисторы и конденсаторы. Здесь следует упомянуть, что использование заземленных пассивных элементов является преимуществом с точки зрения реализации.

3.Пример проектирования комплексного фильтра

Будет разработана топология комплексного фильтра 12-го порядка, которая будет соответствовать требованиям стандартов ZigBee и Bluetooth. Для фильтра ZigBee были рассмотрены промежуточная частота () 2 МГц и полоса пропускания 1 МГц с каждой стороны от центральной частоты. Из-за того, что центральная частота и полоса пропускания фильтра Bluetooth вдвое меньше, чем в случае ZigBee, фильтр Bluetooth можно легко реализовать, удвоив значения интегрирующих конденсаторов.

В качестве прототипа был выбран фильтр нижних частот Баттерворта 6-го порядка с частотой среза 1 МГц, и его FBD показан на рисунке 4. Транспонированный FBD показан на рисунке 5, а его реализация с использованием CFOA представлена ​​на рисунке 6. . С учетом уровня импеданса, кОм и МГц, значения пассивных элементов, рассчитанные в соответствии с (3) и (4), приведены в таблице 1.


Компонент ZigBee Bluetooth

15 кОм 15 кОм
5 кОм 5 кОм
14.9 кОм 14,9 кОм
5,36 кОм 5,36 кОм
3,92 кОм 3,92 кОм
5,34 пФ 10,67 pF
29,1 пФ
19,9 пФ 39,8 пФ




Этап CFOA, используемый для реализации необходимых сложных блоков интегратора, представлен на рисунке [26].Чтобы ток смещения составлял мкм, А, а использованная схема напряжения источника питания была V и V. С учетом моделей МОП-транзисторов, предоставленных процессом AMS C35D4 CMOS, соотношение сторон nMOS-транзисторов составляло 10 мкм м / 1 мкм мкм, в то время как соответствующее отношение для транзисторов pMOS было 74 мкм м / 1 мкм мкм. Схема компоновки фильтра на Рисунке 6 показана на Рисунке 8.



Используя среду аналогового проектирования программного обеспечения Cadence, будут представлены полученные результаты моделирования после компоновки.Частотные характеристики режима работы ZigBee и Bluetooth приведены на рисунках 9 и 10 соответственно. Что касается режима ZigBee, центральная частота и полоса пропускания были МГц и МГц, тогда как для Bluetooth соответствующие значения были кГц и кГц. Достигнутые значения затухания на частотах, и составили 37 дБн, 71,5 дБн и 91 дБн для фильтра Zigbee и 37 дБн, 73,5 дБн и 94,5 дБн для фильтра Bluetooth.



Также достигнутый коэффициент отклонения изображения () составил 40 дБ для фильтра ZigBee и 41 дБ для фильтра Bluetooth.Таким образом, обе функции фильтра удовлетворяют требованиям селективности соответствующих стандартов. Кроме того, максимальное изменение групповой задержки составило 0,5 мкм с для фильтра ZigBee и 1 мкм с для фильтра Bluetooth.

Линейность фильтра была оценена путем двухтонального теста. Для этого на вход фильтра были поданы два входных сигнала, расположенных на частотах и ​​(), где — центральная частота, а — полоса пропускания фильтра.Принимая во внимание динамический диапазон без паразитных составляющих, где IIP 3 — приведенная к входу точка пересечения 3-го порядка, а INOISE — приведенный к входу шум, полученный график SFDR в зависимости от местоположения тонов приведен на рисунке 11 для обоих режимов операция. Достигнутые значения внутриполосного SFDR () составили 44 дБ для фильтра ZigBee и 45 дБ для фильтра Bluetooth. Для удобства читателя полученные результаты приведены в таблице 2.


Коэффициент производительности ZigBee Bluetooth

Рассеиваемая мощность 5.6 мВт 5,6 мВт
Центральная частота () 1,9 МГц 920 кГц
Полоса пропускания (BW) 1,9 МГц 920 кГц
Изменение групповой задержки 0,5 μ с 1 μ с
INOISE 260 260
Коэффициент подавления изображения (IRR) 40 дБ 41 дБ
Затухание первого блокиратора () 37 дБн 37 дБн
Затухание второго блокиратора () 71.5 дБн 73,5 дБн
Затухание 3-го блокиратора () 91 дБн 94,5 дБн
Внутриполосное SFDR 44 дБ 45 дБ
47,6 дБ при 4 и 6 МГц 50,2 дБ при 2 и 3 МГц
Вне диапазона SFDR 50,4 дБ при 6 и 10 МГц 52,8 дБ при 3 и 5 МГц
51 .7 дБ при 8 и 14 МГц 53,1 дБ при 4 и 7 МГц


4. Выводы

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

Авторские права

Авторские права © Панайотис Самиотис и Костас Психалинос, 2013 г. Это статья в открытом доступе, распространяемая по лицензии Creative Commons Attribution License, которая разрешает неограниченное использование, распространение и воспроизведение на любом носителе при условии правильного цитирования оригинальной работы.

Комплексные фильтры

Сложные фильтры

Комплексные фильтры

Что следует знать

«Сложные фильтры» предлагают значительно более широкие возможности фильтрации по сравнению с базовыми фильтрами:

Комбинирование нескольких основных фильтров

Вы можете объединить до пяти основных фильтров в сложный фильтр.Затем WebTerm отображает только те записи, которые соответствуют все критерии фильтра.

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

Сохранение и повторное использование различных фильтров

Вы можете сохранить сложные фильтры, чтобы вы и, возможно, другие пользователи WebTerm могли повторно использовать их в любое время.

Дополнительные настройки фильтра

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

Эта функция является дополнительной функцией

Обратите внимание, что эта функция является дополнительной функцией и должна быть включена на сервере WebTerm. Для получения дополнительной информации свяжитесь с нашим отделом продаж.

Статусы комплексного фильтра

В случае сложных фильтров WebTerm различает следующие статусы фильтров:

Собственные фильтры / чужие фильтры

«Собственные фильтры» — это сложные фильтры, которые вы создали и сохранили.Сложные фильтры, созданные и сохраненные другими пользователями, называются «фильтрами других владельцев».

Публичные / приватные фильтры

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

«Публичные фильтры» могут использовать все пользователи WebTerm. А это также означает, что вы можете использовать общедоступные фильтры, созданные другими пользователями. «Частные фильтры» доступны только администратору и пользователям с одинаковым именем пользователя. Другие пользователи не могут их использовать.

Права доступа и редактирования для сложных фильтров

Права доступа и редактирования для сложных фильтров зависят от того, являетесь ли вы администратором:

Если вы не администратор, у вас есть следующие возможности:

Вы можете использовать, просматривать, редактировать и удалять собственные фильтры

Вы можете использовать и просматривать общедоступные фильтры, созданные другими пользователями

Вы можете дублировать и редактировать общедоступные фильтры, созданные другими пользователями, и сохранять их как свои собственные

Если вы администратор, вы можете использовать, просматривать, редактировать, дублировать и удалять все фильтры — даже частные фильтры, принадлежащие другим пользователям.

Дополнительные настройки фильтра

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

Таблица 8-2: Дополнительные настройки фильтров для сложных фильтров

Настройка фильтра

Значение

Чехол

Фильтр чувствителен к регистру.Это означает, что WebTerm отображает только те записи данных, регистр которых соответствует регистру критерия фильтра.

Включить пустые поля

WebTerm также отображает записи данных, в которых поле «фильтровать по» пусто и, следовательно, не соответствует критерию.

Показать несоответствия

Фильтр «инверсия» : WebTerm отображает записи данных, которые не соответствуют критерию фильтра.WebTerm не отображать записи данных, соответствующие критерию фильтра.

Применить к целевому языку

WebTerm применяет критерий фильтра к целевому языку вместо исходного.

Применение сложных фильтров

Вы можете применять свои собственные сложные фильтры или публичные фильтры, принадлежащие другим пользователям.

Если вы являетесь администратором, вы также можете применять частные фильтры, принадлежащие другим пользователям.

Сложные фильтры и базовые фильтры исключают друг друга

Нет смысла применять сложные фильтры и основные фильтры одновременно .

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

Фильтры других владельцев могли быть изменены

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

Чтобы применить сложный фильтр:

1 Откройте меню в площадь.

WebTerm показывает следующие фильтры в список:

Все общедоступные фильтры (помечены звездочкой *).

Ваши собственные частные фильтры

Если вы администратор: приватные фильтры других пользователей

Рис. 8-6: Чтобы применить сложный фильтр, выберите его из списка

2 Выберите сложный фильтр, который вы хотите применить.

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

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

Добавление сложного фильтра

Когда вы добавляете новый сложный фильтр, вы создаете новый с нуля.Кроме того, вы также можете продублировать существующий сложный фильтр, а затем изменить его (см. Здесь).

Изменения не вступят в силу для других пользователей до следующего входа в систему

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

Чтобы добавить сложный фильтр:

1 Откройте меню на панель и щелкните кнопка рядом с список.

WebTerm отображает обзор фильтров (см. Рис. 8-7).

2 Щелкните .

Затем WebTerm отображает следующее окно:

Рис. 8-8: Сложный фильтр может содержать до пяти критериев фильтрации

3 Введите административные данные в верхнем разделе:

— отображаемое имя для фильтра

— ваше имя пользователя вводится автоматически и не может быть изменено

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

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

4 Укажите критерии фильтрации в следующих строках таблицы. Вы можете комбинировать до пяти основных фильтров:

и столбцы — поле фильтра и критерий фильтра

Как и в случае с базовыми фильтрами, существуют следующие возможности (см. Также раздел «Использование базовых фильтров»):

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

Вы можете ввести значение поля вручную (кроме полей даты). Вы можете определить несколько записей в качестве альтернативы, введя вертикальную черту ( | ) как разделитель.

Следующие столбцы ( и др.) — дополнительные настройки фильтра (см. Табл. 8-2).

Если вам требуется менее пяти основных фильтров, выберите элемент Нет фильтра на неиспользуемых строках.

5 Чтобы сохранить фильтр, нажмите .

WebTerm проверяет сделанные записи и сохраняет фильтр.

Если фильтр является общедоступным, WebTerm отображает сообщение, напоминающее вам, что другие пользователи могут его использовать.

WebTerm закроет окно и отобразит обновленный обзор фильтров.

6 Щелкните чтобы закрыть обзор фильтров.

Если вы хотите применить фильтр, выберите его из список.

Просмотр и редактирование сложного фильтра

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

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

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

Изменения не вступят в силу для других пользователей до следующего входа в систему

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

Для редактирования сложного фильтра:

1 Откройте меню на панель и щелкните кнопка рядом с список.

WebTerm отображает обзор фильтров (см. Рис. 8-7).

2 Щелкните значок рядом с фильтром, который вы хотите просмотреть или отредактировать.

Затем WebTerm отображает следующее окно:

Рис. 8-9: Вы можете изменять настройки только своих собственных фильтров

3 При необходимости измените настройки фильтра.

Для этого в вашем распоряжении те же функции, что и при добавлении нового сложного фильтра (см. Здесь).

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

4 Чтобы сохранить фильтр, нажмите .

WebTerm проверяет сделанные записи и сохраняет фильтр.

Если фильтр является общедоступным, WebTerm отображает сообщение, напоминающее вам, что другие пользователи могут его использовать.

WebTerm закроет окно и отобразит обновленный обзор фильтров.

5 Щелкните чтобы закрыть обзор фильтров.

Если вы хотите применить фильтр, выберите его из список.

Дублирование и редактирование сложного фильтра

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

1 Откройте меню на панель и щелкните рядом со списком сложных фильтров.

WebTerm отображает обзор фильтров (см. Рис. 8-7).

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

WebTerm отображает детали фильтра (см. Рис. 8-9).

3 Чтобы продублировать фильтр, щелкните .

Затем WebTerm дублирует фильтр:

Рис. 8-10: Вы можете продублировать фильтр и сохранить его как свой собственный

Введите имя для нового фильтра в поле коробка.

4 При необходимости измените настройки фильтра.

Для этого в вашем распоряжении те же функции, что и при добавлении нового сложного фильтра (см. Здесь).

5 Чтобы сохранить фильтр, нажмите .

WebTerm проверяет сделанные записи и сохраняет фильтр.

Если фильтр является общедоступным, WebTerm отображает сообщение, напоминающее вам, что другие пользователи могут его использовать.

WebTerm закроет окно и отобразит обновленный обзор фильтров.

6 Щелкните чтобы закрыть обзор фильтров.

Если вы хотите применить фильтр, выберите его из список.

Удаление сложного фильтра

Вы можете удалить свои собственные фильтры. При этом помните, что ваши общедоступные фильтры также могут использоваться другими пользователями.

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

Изменения не вступят в силу для других пользователей до следующего входа в систему

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

Чтобы удалить сложный фильтр:

1 Откройте меню на панель и щелкните рядом со списком сложных фильтров.

WebTerm отображает обзор фильтров (см. Рис. 8-7).

2 Щелкните значок рядом с фильтром, который нужно удалить.

WebTerm отображает сообщение для подтверждения.

3 Подтвердите или отмените удаление:

Если вы уверены, что хотите удалить, подтвердите, нажав .

Если вы не хотите удалять, нажмите .

Затем WebTerm удаляет фильтр.

Нажмите чтобы закрыть обзор фильтров.


OData — Часть 5: Комплексные фильтры

]>

OData — Часть 5: Сложные фильтры OData — Часть 5: Сложные фильтры

Цель

Для объединения логических операторов для создания сложного набора фильтров при создании списка всех продуктов, которые должны быть переупорядочены И не прекращаются, И чье имя начинается с G ИЛИ чье имя начинается с C.

Справочная информация

Предположим, персонаж Спок из сериала «Звездный путь» просит вас отфильтровать набор данных. Логические существа, такие как вулканцы, время от времени не могут не использовать логические операторы, поэтому либо вы сами, либо вы можете прочитать это руководство И узнать, как создавать сложные фильтры с помощью логических операторов: И и ИЛИ ( AKA в условиях AutoTag «все» и «любое»). Также уместно знать, что можно сравнивать много разных типов данных, даже даты и время.

Начальный шаблон

Это руководство является продолжением части 4 руководств по мастеру OData, поэтому мы начнем с мастера OData, открытого в шаблоне, созданном в OData — Часть 4: Фильтрация с помощью значений переменных. Если вы еще не знаете, как открыть мастер OData, просто выберите тег ForEach и нажмите кнопку Wizard на ленте AutoTag.

Процедура

1.Перетащите прекращенное свойство в

Сначала мы собираемся перетащить новое свойство в поле Select . Мы собираемся проверить, действительно ли Products Снят с производства или нет, занесите это имущество.

Покажи мне, как!

2. Добавьте фильтр таким образом, чтобы Products.Discontinued было равно False

.

Когда другой фильтр уже установлен из части 4, два фильтра работают вместе, так что все возвращаемые результаты должны соответствовать обоим условиям.Это обозначены все в заявлении «где все из следующих условий верны». Другими словами, продукты должны быть под уровнем повторного заказа И не должны быть сняты с производства.

Покажи мне, как!

3. Добавьте группу, в которой выполняется любое условие

Теперь мы добавим еще одну группу, щелкнув для добавления группы .Это похоже на использование круглых скобок в математическом выражении. Мы говоря A AND (B OR C), поэтому A должно быть истинным, и либо B, либо C также должны быть истинными. Другими словами, любой B или C должен быть истинным. В В этом случае B и C будут установлены в шагах 4 и 5 соответственно.

Покажи мне, как!

4. Добавьте фильтр таким образом, чтобы Products.ProductName начинался с G

.

Это та же стратегия, что и на шаге 2 и снова в части 3 руководств по OData.Добавьте фильтр, установите левую часть на Products.ProductName , установите условие начинается с (что применяется только к строкам) и установите правая сторона к G

Покажи мне, как!

5. Добавьте фильтр таким образом, чтобы Products.ProductName начинался с C

.

См. Шаг 4.Это последнее условие делает все выражение похожим на X AND A AND (B OR C). Условия, указанные на шаге 4 и на этом шаге, взаимно эксклюзивные, поэтому они никогда не будут (и не обязательно должны быть) истинными одновременно, только одно или другое должно быть истинным.

Покажи мне, как!

6. Просмотр возвращенных результатов

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

Покажи мне, как!

Вы завершили этот учебник. Мы рекомендуем ознакомиться с руководством по переменным выбора. следующий!

закрыть

продолжить

Расширенная фильтрация — Поддержка дробовика

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

В Shotgun есть два инструмента для фильтрации:

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

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

Примечание: Если вы не можете найти запись, возможно, вы просматриваете страницу, на которой уже есть фильтры, сохраненные вместе со страницей.

Проверка существующих фильтров

Если на странице есть какие-либо фильтры, значок фильтра будет синим.

Нажмите кнопку «Фильтр», чтобы увидеть, какие фильтры есть на странице.

Для страниц холста каждый виджет на странице может иметь свой собственный фильтр.

Добавление или изменение фильтров

Вы можете добавлять, удалять или изменять любые фильтры на странице или в виджете.

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

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

Используя эти части, вы можете создавать сложные фильтры и эффективные страницы.

Вы также можете использовать фильтры для включения вложенных активов. Для этого создайте условие для каждого количества уровней, которые вы в настоящее время поддерживаете для вложенных активов. Например, на странице «Сведения о снимке» на вкладке «Активы» создайте следующие фильтры:

[соответствует ЛЮБОМУ из следующих условий:]

  • Кадры | включает | Текущий выстрел
  • Материнские активы> Снимки | включает | Текущий выстрел
  • Материнские активы> Материнские активы> Снимки | включает | Текущий выстрел
  • И так далее, для всех имеющихся у вас уровней подактивов.

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

Советы по оптимизации фильтров см. В разделе «Рекомендации по оптимизации производительности расширенных фильтров Shotgun».

Последнее обновление статьи ::

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *