C-Rover Software C-Rover Software

Главная

Новости

О программе

Справка

Лицензии

Скачать

Оставить отзыв

Контакты

Английский язык Русский язык


Запросы. Формирование итоговых и отчетных данных

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

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

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


Вернуться к Оглавлению К предыдущему разделу К следующему разделу

Вызов окон исполнения запросов и отчетных форм

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

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

Перейти на начало страницы

Окна исполнения запросов различных типов

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

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

Здесь мы остановимся на описании элементов окна исполнения запросов, общих для обоих типов запросов.

В титульной строке окна запроса (так же как и в окне формы показа) указывается имя набора данных (имя файла с расширением .vmd). В левой части верхней строки окна, сразу после слова "Запрос:" указывается наименование запроса - чаще всего это просто имя файла описания запроса (файла с расширением .vmz).

Чуть ниже расположена таблица, представляющая список заданных для этого запроса фильтров. Каждый фильтр задает условие для отбора записей, которые должны участвовать (просматриваться) в данном запросе. Как правило, условие фильтрации налагает ограничение на значение некоторого поля (столбца) табличного набора данных. Наименование этого поля (столбца) указывается в таблице фильтров в столбце "Аргумент 1". Далее указывается условие, которому должны удовлетворять значения в данном столбце - в столбце "Усл" указывается операция сравнения, а в поле "Аргумент 2" указывается эталонное значение для этой операции сравнения. В случае операции сравнения с диапазоном (операции "от-до") эталонное значение "Аргумент 1" задает нижнюю границу диапазона, а значение в столбце "Доп.аргумент" задает верхнее значение диапазона.

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

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

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

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

Примечание для администраторов Баз данных: В процессе исполнения запроса автоматически формируется и исполняется запрос к физической базе данных на языке SQL, с помощью которого производится предварительная выборка записей, подлежащих обработке. Этот SQL запрос имеет отношение только к внутренним деталям реализации и, вообще говоря, не должен интересовать пользователя Менеджера Данных. Однако у администратора систем при тонкой настройке Менеджера Данных на новую базу данных иногда может возникнуть потребность в проведении некоторых экспериментов, поэтому показываемый между окном управления фильтрации и окном таблицы результатов текст сформированного SQL запроса можно не только посмотреть, но и изменить его, включив переключатель "Show SQL" справа от этого текста. Измененный SQL запрос может быть исполнен повторным нажатием кнопки "Выполнить запрос".

Перейти на начало страницы

Исполнение Запросов с группировкой и подведением итогов

Для исполнения запроса необходимо нажать кнопку "Выполнить запрос" над таблицей результатов.

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

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

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

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

В режиме "Строки Итогов исключить" итоговые строки не показываются - в таблицу результатов включаются только строки исходного Набора Данных, отобранные согласно указанным условиям фильтрации.

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

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

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


Перейти на начало страницы

Исполнение Запросов с формированием Отчетных Форм

Для исполнения запроса необходимо нажать кнопку "Выполнить запрос" над таблицей результатов.

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

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


Перейти на начало страницы

Печать результатов исполнения запроса

Кнопка "Распечатать" в середине экрана (справа от кнопки "Выполить запрос") предназначена для вывода результатов выполнения запроса на печатающее устройство.

Для всех запросов всегда определена Стандартная форма печати результатов, но для запроса могут быть определены также и другие, дополнительные Печатные Формы для представления результатов запроса в виде специализированных печатных документов и последующего вывода их на печать. Если дополнительных Печатных Форм для набора данных не определено, или если после показа списка допустимых для данного запроса Отчетных Форм пользователь все-таки выбрал Стандартну форму печати, то используется Стандартная форма печати результатов запроса и Менеджер Данных открывает окно предварительного просмотра документа.

Стандартная форма печати

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

Окно предварительного просмотра Стандартной формы печати имеет стандартный для Windows вид:

Кнопки "Крупнее" и "Мельче" предназначены для увеличения/уменьшения размера изображения на экране. Заметим, что эти кнопки служат для удобства просмотра документа на экране и не влияют на вид самого печатного документа.

Кнопки "След.стр" и "Пред.стр" служат для "перелистывания" документа на на экране. Эти кнопки также служат для просмотра документа на экране и не влияют на то, какие страницы будут напечатаны.

Кнопка переключения "Одна стр" / "Две стр" определяет, одна или две страницы документа должны показываться на экране одновременно. Кнопка "Печать..." служит для выдачи просматриваемого документа на печать. И, наконец, кнопка "Закрыть" (крайняя правая) служит для завершения предварительного просмотра и возврату в окно исполнения запроса.

Специфическими для Менеджера Данных являются кнопки "Narrow" (сузить) и "Expand" (расширить) в окне предварительного просмотра (наверху справа). Они предназначены для масштабирования таблицы результатов в печатном документе по ширине.

Вообще говоря, ширина печатаемого столбца определяется шириной столбца на экране в окне результатов исполнения запросов. Установка подходящей ширины для каждого столбца является специфичной для каждого отдельного запроса. Обычно она устанавливается при создании запроса (в режиме редактирования) и запоминается системой как часть информации о запросе. Ширина столбцов выбирается так, чтобы каждый столбец таблицы результатов хорошо смотрелся на экране. Что касается команд масштабирования "Narrow" (сузить) и "Expand" (расширить), то они изменяют коэффициент, используемый Запросной системой при преобразовании координат экрана в координаты принтера, поэтому они влияют на ширину всех столбцов в печатном документе. Будучи установленным, этот коэффициент будет действовать при печати результатов всех запросов. Поэтому его следует настроить один раз так, чтобы изображение на экране в окне исполнения запроса (в таблице результатов) максимально соответствовало изображению таблицы в печатном документе (в окне предварительного просмотра). В дальнейшем, при необходимости, следует управлять шириной каждого конкретного столбца таблицы результатов в окне исполнения запроса.

Дополнительные Печатные Формы

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

Окно представления дополнительной Печатной Формы позволяет не только просматривать эту Печатную форму на экране, но также распечатать её или сохранить на диске в виде HTML-файла. Нажатие кнопки в левом верхнем углу окна Печатной Формы делает доступным целый ряд кнопок для выполнения различных операций с Печатной Формой.

Распечатать Печатную форму можно с помощью кнопки .

Для сохранения Печатной формы в виде HTML-файла на диске (который можно сохранить в архиве или распечатать позже) нужно нажать кнопку .

Перейти на начало страницы

Вывод результатов в файл / таблицу

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

Для записи результатов запроса на диск необходимо подать команду "Записать в таблицу" нажав кнопку в центре экрана.

Записать в таблицу

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

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

При выборе пользователем опции создания нового набора данных - если запрос относится к файлу базы DBase (файлу DBF), то результирующий набор данных также будет представлен DBF файлом, создаваемым в той же директории. Аналогично, при запросе к текстовой базе данных (текстовому файлу), создается новый набор данных в виде текстового файла в той же директории, а если запрос относится к таблице в файле базы Access (в MDB файле), то в результате будет сформирована новая таблица в этом же файле MDB.

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

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

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

Перейти на начало страницы

Экспорт результатов в файлы / таблицы других форматов

Как и команда "Записать в таблицу" команда "Экспортировать" сохраняет в файле базы данных результаты выполнения запроса, отображенные на экране.

Для Экспорта результатов запроса необходимо подать команду "Экспортировать" в меню "Команда" или нажать кнопку "Экспортировать" в центре экрана (справа от кнопки "Записать в таблицу").

Экспортировать

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

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

Экспортировать

Затем запрашивается имя файла / таблицы, которую требуется создать для сохранения в ней результатов запроса.

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

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

  • базы данных DBase (формат DBF)

  • Каждая таблица в базе данных DBase представляетсяа отдельным DBF-файлом - файлом специальной структуры, формат которого оптимизирован для работы с большими таблицами данных. DBF-файлы - очень распостраненный формат, с которым работают различные базы данных, включая DBase IV, FoxPro, Paradox. ODBC драйвер, через который Менеджер Данных работает с DBF-файлами, поддерживает полный набор операций, необходимых для поддержки всех функций Менеджера Данных, поэтому базы данных DBase - наиболее предпочтительный формат данных, который следует выбирать при работе с ним.

  • базы данных Access (таблицы в файле формата MDB)

  • В базе данных Microsoft Access используются файлы формата MDB, каждый из которых содержит одну или несколько таблиц. MDB-файлы - это многотабличные файлы, поэтому для доступа к отдельной таблице (её чтения или создания) необходимо указывать как имя MDB-файла, так и имя собственно таблицы данных.

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

  • таблицы Excel 2003 (страницы файла формата XLS)

  • В таблицах Microsoft Excel 2003 используются файлы формата XLS, каждый из которых содержит одну или несколько таблиц. Таблица может быть либо именнованым диапазоном ячеек на странице этого XLS-файла, либо отдельной страницей в нём. Таким образом, XLS-файлы - это также многотабличные файлы, и для доступа к отдельной таблице (её чтения или создания) необходимо указывать как имя XLS-файла, так и имя таблицы.

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

  • Текстовые базы данных (текстовые табличные файлы TXT, CSV, TAB, ASC)

  • В текстовой базе данных каждая таблица представляется либо в виде форматированного текстового файла с разделителями (файлы с расширениями TXT, CSV, TAB), либо в виде текстового файла с фиксированной длиной записей (файлы с расширением ASC).

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

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

    Экспортировать

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

    Текстовые форматы широко используется для обмена данными между приложениями, например, Вы можете сохранить Вашу таблицу как файл CSV (comma separated file) и позднее импортировать данные из полученного файла в другое приложение.

  • удаленные базы различных типов - mySQL, MS Server, Ceche

  • Для того, чтобы был возможен вывод во внешние базы данных необходимо, чтобы Ваш компьютер был подключен к ним - нужно, чтобы в этих базах был создан соответствующий Эккаунт пользователя и база была бы подключена к Виндосовской базе MS Jet чeрез соответствующий ODBC драйвер - был создан Источник Данных ODBC (в разделе Администрирование Панели Управления Вашего компьютера). Кроме того, в Менеджере Данных требуется создать логическое имя для доступа к этой базе через DNS (Источник Данных) - это делается с помощью панели Настройки Баз Данных, вызываемой из раздела Администрирование.

Перейти на начало страницы


Создание новых запросов к базе данных

При создании Набора Данных для него автоматическая определяется Форма Показа данных (форма доступа к Набору Данных) и для этой стандартной формы показа - стандартная Запросная Форма. Эта стандартная Запросная Форма определяет запрос с группировкой и подведением итогов. Если нам необходимы запросы других типов или просто необходимо создать еще одну Форму Запроса с подведением итогов, то создать новый запрос (новую Форму Запроса) можно в окне редактирования свойств Набора Данных.

Вызов окна свойств Набора Данных осуществляется из окна Показа Набора Данных:

Окно Набора Данных

Для вызова окна свойств Набора Данных нужно нажать кнопку "Свойства Набора Данных" в левом верхнем углу окна показа.

Окно свойств Набора Данных

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

Для создание новой Формы Запроса следует нажать кнопку "Создать еще одну форму запроса"

Важно! При создании Формы Запроса Менеджер Данных предлагает выбрать тип создаваемого Запроса. Это может быть либо запрос с группировкой данных и подведением итогов по каждой группе данных, либо запрос с формированием Отчетной Формы - отчетной таблицы произвольной структуры с отчетными данными, формируемыми в процессе просмотра записей исходного Набора Данных в соответствии с определенным для этого Отчета Деревом Принятия Решений. Сделанный пользователем в момент создания Запросной Формы выбор не может быть впоследствии отменен - тип запроса нельзя изменить в процессе редактирования Формы Запроса.

Новая Форма Запроса получает имя, совпадающее с автоматически созданным именем файла, её представляющего (файла с расширением .vmz). Однако, имя созданной Запросной Формы можно (и нужно) изменить - для удобства пользователей предпочтительно, чтобы Запросные Формы (как, впрочем, и другие элементы Набора Данных) имели мнемонические имена, отражающие их смысл и назначение. Для изменения имени Запросной Формы следует нажать кнопку "Свойства Формы Запроса", крайнюю слева. Эта кнопка открывает окно редактирования свойств элемента Набора Данных, в данном случае - свойств Формы Запроса.

Окно редактирования свойств элемента Набора Данных

Наименование Формы изменяется прямым редактированием в соответсвующем поле.

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

Изменение Запрещено - установка этого переключателя делает недоступной кнопку Изменения Формы Запроса в окне исполнения запроса.

Сохранять - установка этого переключателя приводит к сохранению данной формы (vmz-файла) в случае удаления Набора Данных.

Вызывать модально - при установке этого переключателя окно исполнения данной Формы Запроса будет производиться модально (то есть окно запроса будет "держать" фокус ввода до тех пор, пока оно не будет закрыто).

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

Только для администратора - установка этого переключателя будет скрывать данную Форму Запроса от пользователя при работе в рабочем режиме.

Созданная Форма Запроса изначально идентична по своим параметрам форме показа, для которой она была создана - выполняемый с её помощью запрос отбирает такие же данные, как и его " родительская" форма показа (он наследует от формы показа список выходных полей, полей сортировки и список условий фильтрации - фильтров). При этом никакие итоговые или отчетные данные не формируются, то есть созданная запросная форма изначально не имеет смысловой нагрузки. Для определения содержательного Запроса необходимо отредактировать эту только что созданную Форму Запроса. Это можно сделать немедленно, из окна Свойств Набора Данных, нажав кнопку "Изменить данную Форму Запроса". Возможно также отредактировать Форму позднее, непосредственно из окна исполнения Запроса, нажав такую же кнопку в его левом верхнем углу.



Окно редактирования Запросной Формы. Общее описание

Окно редактирования предназначено для изменения существующих Запросных Форм. Для Запросов с подведением итогов и для Запросов с формированием отчетов оно выглядит почти одинаково. Различие заключается в использовании таблицы управления Сортировкой данных - в запросах с подведением итогов она используется для задания требуемой группировки данных, а в запросах с формированием отчетов практически не используется (как правило, работа алгоритма формирования отчетных данных не зависит от порядка просмотра записей исходного Набора Данных).

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

Вообще говоря, таблица, к которой относится запрос определена самим Набором Данных, для которого эта Запросная Форма была создана. Нет никаких причин переопределять, "перенапраявлять" запрос к какой-то другой таблице. Однако, по историческим причинам, поле имени таблицы сделано в виде раскрывающегося списка для выбора таблицы, что, в принципе, позволяет его изменить (чего делать не нужно).

В списке, занимающем левую часть окна редактирования Формы Запроса" и озаглавленном как "ПОЛЯ ТАБЛИЦЫ:", высвечивается список полей (столбцов) таблицы, которую представляет Набор Данных. Выбрав (селектировав) нужные поля в этом списке можно нажатием клавиши "Стрелка вправо" их переместить в центральное окно - список "ВЫХОДНЫЕ ПОЛЯ:". Здесь задаются столбцы таблицы, которые должны быть представлены в выходном документе запроса. Если список выходных полей пуст, то считается, что он совпадает со списком всех полей таблицы.

Справа находится окно управления сортировкой "СОРТИРОВАТЬ ПО:". Здесь могут быть указаны поля, по которым должна производиться сортировка записей. Для запросов с подведением итогов можно также установить в столбце "ИТОГИ" признаки группировки по выбранным полям, что приведёт к формированию в выходном документе запроса соответствующих итоговых строк. Список полей сортировки создается путем селектирования полей в списке выходных полей и перемещения их копий в список сортировки с помощью клавиши" Стрелка вправо".

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

В центре окна редактирования, в правой его части, ниже окна управления сортировкой, находятся кнопки "Итоги" и "Отчет". В зависимости от типа запроса используется одна из них. Так, для запросов с группировкой и подведением итогов кнопка "Итоги" позволяет открыть специальное диалоговое окно для задания формата формируемых итоговых строк. Для запросов с формированием Отчетов кнопка "Отчет" позволяет открыть диалоговое окно для задание формата отчетной таблицы и определения Дерева Принятия Решений при формировании отчетных данных.

Левее этих кнопок размещаются кнопки "Шапка" и "Подвал", позволяющие задать дополнительный текст, который помещается в стандартную печатную отчетную форму для результатов запроса, формируемую при его исполнении и последующей печати.


Перейти на начало страницы

Определение выходных полей

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

Вставка столбцов в список выходных полей производится путем их выборки в списке "ПОЛЯ ТАБЛИЦЫ" и последующем их переносе в список "ВЫХОДНЫЕ ПОЛЯ" клавишей .

Для выбора поля необходимо навести на него указатель мыши и нажать ее левую клавишу. Можно выбрать несколько полей, если одновременно удерживать нажатой клавишу Shift или Ctrl - при нажатии клавиши Shift выбирается группа смежных полей, а при нажатии клавиши Ctrl можно произвести произвольную выборку.

Порядок столбцов в выходной таблице определяется порядком, в котором они перечислены в списке "ВЫХОДНЫЕ ПОЛЯ". Этот порядок может быть изменен путем перемещения полей в этом списке. Выберите поле, которое Вы хотите переместить и нажмите клавишу для перемещения поля вверх в списке или клавишу для перемещения поля ближе к концу списка выходных полей.

Можно выбрать несколько полей для перемещения, если использовать клавиши Shift или Ctrl.

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

Перейти на начало страницы

Задание порядка сортировки

Записи в таблице результатов запроса могут быть упорядочены (отсортированы) по значению одного или нескольких полей (столбцов). Для задания порядка сортировки записей используется список "СОРТИРОВАТЬ ПО".

Вставка столбцов в список сортировки производится путем их выборки нужного поля в списке "ВЫХОДНЫЕ ПОЛЯ" и последующем их переносе в список "СОРТИРОВАТЬ ПО" клавишей .

Для выбора поля необходимо навести на него указатель мыши и нажать ее левую клавишу. Можно выбрать несколько полей, если одновременно удерживать нажатой клавишу Shift или Ctrl - при нажатии клавиши Shift выбирается группа смежных полей, а при нажатии клавиши Ctrl можно произвести произвольную выборку.

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

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

Можно выбрать несколько полей для перемещения, если использовать клавиши Shift или Ctrl.

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

Перейти на начало страницы

Задание условий выборки записей

Условия выборки записей определяют какие записи будут выбраны из исходной таблицы в результате исполнения запроса. Если никаких условий не установлено, то отбираются все записи таблицы. Если задано некоторое условие - будут отобраны только записи, удовлетворяющие указанному условию. Если задано несколько условий, то будут отобраны только записи, удовлетворяющие всем условиям.

Условия задаются в списке условий, окно которого находится в нижней части экрана.

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

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

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

Затем следует выбрать операцию сравнения посредством нажатия одной из клавиш выбора условия. Можно выбрать одну из следующих операций сравнения:

  • "=" - равно;
  • "><" - не равно;
  • "<" - меньше;
  • ">" - больше;
  • "<=" - меньше или равно;
  • ">=" - больше или равно;
  • "от-до" - сравнение с диапазоном значений;
  • "образец" - сравнение с образцом;

Далее задается второй аргумент операции сравнения. Для этого нужно просто ввести некоторое значение в поле Аргумент 2. Так в качестве второго значения задается константа.

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

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

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

Особым образом задается аргумент операции сравнения с образцом "образец". Это должно быть константное значение, задающее образец. Обычно это последовательность символов, с которых должны начинаться значения сравниваемого поля. Например, если поле Ф.И.О. будет сравниваться с образцом, в качастве которого задана большая буква А, то будут отбираться записи, в которых ФИО начинается с буквы А.

Если в любом месте текстовой строки в образце указать символ "%" ("любая последовательность символов"), то с данныму образцу будут соответсвовать все строки, начало которых совпадает с символами образца слева от знака "%", а конец - с символами образца справа от него. Например, образцу "%ов" будут соответствовать все фамилии, заканчивающиеся на "ов". А под образец "А%ов" подойдут все фамилии, начинающиеся на букву "А" и заканчивающиеся на "ов".

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

Знак "_" в образце соответствует любому одиночному символу. Таким образом, под образец "перв__" будут подходить как значение "первый", так и значение "первая".

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

Параметры запроса имеют серый фон и помечаются слева значком .

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

Задание условия в виде произвольной формулы. Условие для отбора записей в запросе можно задать в виде произвольной формулы, связывающей значения нескольких полей записи. Для добавления условия, задаваемого формулой нужно нажать кнопку . В таблицу условий будет добавлено новое условие, выраженное формулой в виде логического значения "true", представленной в табличке условий на месте 2-го аргумента. Для задания требуемой формулы (изменения определения значения формулы, заданной по умолчанию) нужно кликнуть мышью в поле Аргумента 2. в результате будет открыто стандартное диалоговое окно для задания формулы

Подробное описание этого диалогового окна и синтаксиса формул приведено в разделе Синтаксис формул вычисления значения поля .

Следует отметить, что при наличии условий отбора записей в виде произвольных формул отбор записей при исполнении запроса производится в два этапа. Условия обычных (не формульных) фильтров включаются в автоматически формируемый SQL запрос, обрабатываемый сервером базы данных, так что отбор записей на их основе производятся на стороне сервера. Что касается условий, заданных в виде формул, то они проверяются (вычисляются) для всех полученных по этому SQL запросу записей на клиентстской стороне. Это означает, что каждая такая запись будет требоват её передачи от сервера к клиенту. Для повышения скорости работы для больших наборов данных (сотни тысяч записей) следует стремиться формулировать условия фильтрации в виде обычных условий, а не задавать из в виде произвольных формул - чем больше записей будет отфильтровано с помощью SQL запроса, тем меньшее их число будет передаваться и обрабатываться на стороне клиента, а это может значительно повысить скорость исполнения запроса.


Перейти на начало страницы

Запросы с подведением итогов: Группировка записей и задание строк итогов

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

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

Необходимость группировки и формирования итоговых строк задается установкой в списке сортировки признака ИТОГИ. Для установки этого призанака необходимо дважды щелкнуть левой кнопкой мыши в поле ИТОГИ требуемой строки списка сортировки.

Так, например, в таблице слева установлено два признака группировки - один для строки общего итога и один - для поля ЛПУ. Запросная система сформирует для каждого ЛПУ строку итога и поместит итоговую строку в конце каждой группы. Кроме того, будет сформирована итоговая строка для всего документа.

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

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

Перейти на начало страницы

Запросы с подведением итогов: Определение формата итоговых строк

Просмотр и задание формата итоговых строк производится в специальном окне определения формата итоговых строк, высвечиваемом Менеджером Данных при нажатии на клавишу "Итоги", расположенную ниже списка сортировки в правой части экрана.

Рассмотрим процесс форматирования итоговых строк на примере следующего запроса к картотеке населения:

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

Окно определения формата итоговых строк содержит две таблицы. Определение формата итоговых строк производится с помощью верхней таблицы. Нижняя таблица определяет вид специальной итоговой результирующей таблицы, формируемой когда запрос исполняется в режиме "Итоги Таблицей".

Верхняя таблица - определение формата итоговых строк

Итоговые строки в верхней таблице представлены так, как они появляются в таблице результатов и печатном документе - строка общего итога находится в самом низу, выше находится строка итога по населенному пункту, а в верхней строке - строка итога по самой внутренней группировке, в данном случае - по ЛПУ. То есть порядок в этом окне обратный по отношению к порядку строк в списке сортировки.

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

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

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

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

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

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

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

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

  • счетчик - задает количество записей в группе;
  • сумма - сумма значений данного поля для текущуй группы записей;
  • среднее - среднее значение по данной группе записей ;
  • максимум - максимальное значение по данной группе записей (только для числовых полей и дат);
  • минимум - минимальное значение по данной группе записей (только для числовых полей и дат);
  • формула - значение, определяемое по заданной формуле на основании других полей итоговой строки;
  • значение - явно заданное значение, либо значение, полученное по заданной формуле на основании значений полей вложенных исходных или итоговых строк;
  • поле-сорт - текущее значение поля, по которому производится сортировка;
  • поле-сорт-вн - текущее значение поля, по которому производится сортировка во внешней группе (соответствует полю сортировки следующей итоговой строки);
  • поле-сорт-вн2 - текущее значение поля сортировки внешней группы следующего уровня (второй по счету итоговой строки);

Некоторые комментарии о назначении шаблонов различных типов:

счетчик: В поле итоговой строки, помеченной шаблоном (операцией) "счетчик", Менеджер данных производит подсчет записей в группе отсортированных записей, к которой относится данная итоговая строка.

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

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

формула: В поле итоговой строки, помеченное этим шаблоном, будет записываться значение, определяемое формулой на основании других полей ИТОГОВОЙ строки. Для этого шаблона должна быть задана формула - в окне определения формулы, вызываемом по нажатию кнопки "Задать формулу"

значение: Наиболее часто этот шаблон служит для вписывания в итоговую строку коротких идентификационных или информационных фраз или слов (например, "Итого:"). Такая фраза должна указываться как значение формулы (как символьная стока в кавычках) - при использовании этого шаблона формула должна быть определена. (Как обычно, для определения формулы нужно нажать кнопку "Задать формулу").

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

Дело в том, что в общем случае в качестве значения, вставляемого на места шаблона "значение", Менеджер Данных использует значимое значение, полученное по заданной формуле на основании значений полей вложенных исходных или итоговых строк. Значимым значением считается любое значение формулы за исключением значения, представленного символьной строкой "skip" (пропустить). Поэтому, если нам трубуется получить значение поля "а" для записи, удовлетворяющей условию DAY(d)=1, то для шаблона "значение" нужно просто задать формулу DAY(d)=1?a:"skip"

поле-сорт: Когда пользователь просматривает результаты запроса ему необходимо идентифицировать итоговые строки, особенно если запрос выполнялся в режиме вывода только итоговых строк. Ему необходимо понимать, к какой группе записей относится данная итоговая строка. Этого можно добиться, если размещать в итоговой строке значения поля, по которому производилась сортировка и группировка записей. Например, если производилась сортировка и группировка записей по ЛПУ, то нужно, чтобы в итоговой строке каждой группы записей было указано, к какому ЛПУ относится данная итоговая строка. Именно для этого и предназначен предопределенный шаблон"поле-сорт" (значение поля сортировки).

При формировании итоговых строк в процессе исполнения запроса Запросная система заменяет шаблон "поле-сорт" текущим значением поля сортировки, по которому образована данная группа записей.

поле-сорт-вн: При использовании многоуровневой группировки записей полезно, чтобы во вложенной итоговой строке было указано не только значение поля группировки для текущей группы записей, но и значение, которое имеет поле сортировки и группировки внешней (охватывающей) группы записей. Так, например, если мы группируем записи по Населенному пункту, а внутри каждого населенного пункта - по ЛПУ, то полезно указывать в итоговых строках для ЛПУ не только к какому ЛПУ относится данная итоговая строка, но и наименование населенного пункта, то есть значение поля сортировки внешней группы записей. Этого можно добиться если задать в каком-нибудь месте (поле) итоговой строки предопределенный шаблон "поле-сорт-вн" (значение поля сортировки внешней группы).

поле-сорт-вн2: Аналогично, шаблон "поле-сорт-вн2" позволяет вставить в итоговую строку значение поля сортировки следующей по счету (второй) внешней группы (при многоуровневой вложенности).

Нижняя таблица - определение формата специальной итоговой таблицы

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

Режим "Итоги таблицей" полезен в случае необходимости организации автоматической обработки результатов запроса. Строки итогов для различных (внешних и вложенных) уровней группировки записей имеют различный смысл. Если сохранять их в виде обычной таблицы, то при их автоматизированной обработке будет сложно вычленять итоговые строки, относящиеся к различным уровням группировки записей. Кроме того, может оказаться, что значения итоговых строк разного уровня в одном и том же столбце содержат значения по своей сути являются значениями разных типов, так что точно настроить тип этого столбца не получится.

Поэтому, в МД введена возможность представления итоговых строк в виде "широкой" итоговой таблицы, в которой данные итоговых строк различных уровней "разнесены" по столбцам - первая группа столбцов представляет итоговые данные самого вложенного уровня группировки строк, в следующей группе столбцов записываются данные итоговых строк предыдущего уровня вложенности, и так далее, так что данные строки Общего Итога будут представлены последней (крайне правой) группой столбцов итоговой таблицы.

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

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

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

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

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


Перейти на начало страницы

Запросы с формированием Отчетных Форм: Определение структуры отчета и Дерева Принятия Решений

Окно редактирования Запросной Формы для Запросов с формированием отчетов выглядит так же, как и для Запросов с подведением Итогов. Различие заключается в использовании таблицы управления Сортировкой данных - в отличие от запросов с подведением итогов в запросах с формированием отчетов таблица управления Сортировкой практически не используется, поскольку, как правило, работа алгоритма формирования отчетных данных не зависит от порядка просмотра записей исходного Набора Данных.

Окно редактирования Запросной Формы

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

Окно редактирования описания Отчетной Формы

В нижней части окна Редактирования описания Отчетной Формы представлена отчетная форма, которая должна формироваться данным запросом. Это таблица с именованными столбцами и строками. В верхней части диалогового окна представлены два окна для определения Дерева Приняти Решений.

Изменение структуры Отчетной Таблицы

Структура Отчетной Таблицы зависится от целей, для которых составляется отчет и от внешних требований к нему. По умолчанию Отчетная Таблица включает два столбца и две строки со стандартными именами. Для изменения состава строк и столбцов используются кнопки стандартных для Менеджера Данных операций редактирования структуры таблиц.

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

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

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

Изменение наименования строки

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

Дерево Принятия Решений

Отчетная таблица заполняется в процессе исполнения запроса путем просмотра записей исходного набора данных, их анализа и обработки на основе дерева принятия решений.

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

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

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

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

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

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

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

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

Типовые фрагменты Дерева Принятия Решений

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

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

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

Окно редактирования Отчетной Формы

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

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

Определение свойств узла Дерева Принятия Решений

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

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

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

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

Для конкретного узла определить строку или столбец можно с помощью окна Задания строки/столбца, которое вызывается нажатием кнопки "Изменить поле выбора строки отчета" справа от поля определения строки или кнопки "Изменить поле выбора столбца отчета" справа от поля определения столбца:

Окно изменения строки/столбца

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

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

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

Окно определения формулы

Если для этой группы ячеек актуальны все записи набора данных, отобранные для родительского узла, то формулой логического условия для данного узла должно быть значение 1 (или "да"). Альтернативно может быть задана произвольная формула, операндами в которой могут быть поля записи обрабатываемого набора данных. Это формула должна возвращать логическое значение "да" в случае, если данная запись подлежит обработке для ячеек, соответствующих данному узлу, и "нет" - в противном случае.

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

Окно определения формулы

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

Примером обрабатывающей формулы может служить формула z+1 (она по умолчанию задается для узлов фрагмента дерева разбора для столбцов внутри строки). Эта формула обеспечивает для ячейки отчета подсчет количества записей, отобранных для неё логическими формулами дерева принятия решений.

Фрагмент для обработки задается только для узлов дерева, к которым следут подключать стандартные фрагменты дерева разбора из списка фрагментов. Определение вызываемого фрагмента дерева разбора производится посредством нажатия кнопки "Изменить поле выбора фрагмента, дерево разбора которого должно быть обработано для данного узла" справа от поля имени фрагмента для обработки. В открывшемся списке фрагментов нужно выбрать требуемый.

Изменение структуры Дерева Принятия Решений

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

Поскольку фрагменты дерева сами имеют древовидную структуру они редактируются примерно так же, как и другие виды деревьев, например, дерево меню управления фильтрации. Для добавления узла можно использовать либо кнопку "Добавить новый под-узел для выбранного узла дерева разбора", либо кнопку "Добавить копию выбранного узла в конец списка узлов на том же уровне дерева разбора". Семантика выполняемых операций хорошо описывается названиями этих кнопок.

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

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

условие -> фрагмент(строка,столбец) <- обр.формула

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

Пример структуры Дерева Принятия Решений

Дерево Принятия Решений для нашего отчета может выглядеть следующим образом.

Главная часть дерева - фрагмент main - может иметь вид, представленный ниже.

Окно редактирования описания Отчетной Формы

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

Второй узел в качестве формулы своего логического условия имеет формулу "b", выдающую в качестве результата значение поля ВОВ анализируемой записи. То есть для обработки этим узлом будут отбираться только записи, поле ВОВ которых содержит значение "да". Обработка этих записей будет осуществляться типовым фрагментом line с предварительной установкой строчной координаты на строку отчета "в т.ч.ВОВ". Аналогично организован отбор записей и их обработка для строки "в т.ч.черноб"

Что касается фрагмента line, то его структура представлена ниже:

Окно редактирования описания Отчетной Формы

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

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

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

Окно исполнения запроса с формированием Отчетной Формы


Перейти на начало страницы

Создание дополнительных Печатных Форм для запросов

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

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

Такая процедура печати результатов запроса в Менеджере Данных может быть автоматизирована. Для наборов данных введено понятие дополнительной печатной Отчетной Формы - вспомогательного набора данных с подготовленной панелью печатной формы. Дополнительные печатные Отчетные Формы могут подключаться к запросам и вызываться непосредственно из диалогового окна запроса по нажатию кнопки "Распечатать". При выборе пользователем нужной отчетной формы из списка имеющихся в наличии подключенных Отчетных Форм Менеджер Данных автоматически записывает результаты запроса в набор данных выбранной отчетной формы и вызывает соответствующую панель печатной формы.

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

Таким образом, для создания и подключения к запросу дополнительной печатной Отчетной формы необходимо:

Шаг 1. Исполнить запрос и сохранить его результаты на диске в виде самостоятельного набора данных с помощью кнопки "Записать в таблицу".

Будем предполагать, что мы сохранили результаты запроса с формированием отчета, созданного нами в предыдущем разделе, как набор данных at1_rpt.vmd

Шаг 2. Создать в MS Word шаблон для отчетного печатного документа.

Предположим, что для печати результатов запроса с формированием отчета, созданного нами в предыдущем разделе, мы создали в MS Word следующий шаблон для печати результатов запроса:

Этот шаблон не отличается сложностью - он почти совпадает со стандартной формой печати результата запроса, но для нашего примера это не важно - ясно, что в MS Word возможно создать любую требуемую форму печатного документа.

Теперь мы должны сохранить его на диске как HTML файл. Предположим, это файл "Число больных.htm".

Шаг 3. Для полученного на шаге 1 "результирующего" набора данных создать панель для представления результирующей таблицы в виде отчетного печатного документа на базе HTML файла (шаблона), созданного в MS Word.

Для выполнения шага 3 используется окно свойств результирующего Набора Данных, вызываемое из окна Показа Набора Данных нажатием кнопки "Свойства Набора Данных" в левом верхнем углу окна показа.

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

Вернемся, однако, к задаче создания панели печатной формы для таблицы отчета. Для создания панели набора данных в окне свойств набора данных нужно нажать кнопку "Создать еще одну панель" справа от поля выбора Пенели для показа/печати.

По этой кнопке открывается диалоговое окно для выбора типа создаваемой панели. Мы должны указать, что хотим создать панель на основе шаблона в виде локального HTML файла и нажать кнопку "Создать". Нам будет предложено указать этот HTML файл в стандартном диалоге выбора файла. После того, как мы укажем, что мы создаем панель на основе файла "Число больных.htm", панель будет создана и открыта во встроенном HTML редакторе Менеджера Данных (редакторе панелей):

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

В данном случае нам нужно заполнить табличными данными (взятыми из Набора Данных) правую нижнюю часть таблицы, имеющейся на панели. Сначала необходимо отметить место вставки табличной информации. Для этого нужно установить курсор на ячейку, отмечающую левый верхний угол области, подлежащей заполнению данными. Это делается наведением указателя мыши на эту ячейку (ячейку на пересечении строки "Всего" и столбца "Всего") и щелчком левой кнопкой мыши. Теперь нужно выбрать вставляемый визуальный элемент - в данном случае нам нужно нажать кнопку "Вставить таблицу Базы Данных (табличный грид)" и в открывшемся диалоговом окне выбрать тип вставляемого табличного элемента.

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

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

Здесь, в поле задания номера крайнего левого столбца, мы должны указать, что отображаемая область начинается со 2-го столбца. Число отображаемых столбцов и строк можно не указывать, поскольку мы собираемся отображать все оставшиеся столбцы и строки таблицы.

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

Если теперь закрыть окно свойств Набора Данных и в окне показа Набора Данных нажать кнопку "Панели", то мы увидим, как работает только что созданная нами панель.

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

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

Шаг 4. Подключить созданную панель "результирующего" набора данных к запросу как дополнительную печатную Отчетную форму.

Для выполнения шага 4 используется окно свойств исходного Набора Данных. Вызов окна свойств Набора Данных осуществляется из окна Показа этого Набора Данных:

Для вызова окна свойств Набора Данных нужно нажать кнопку "Свойства Набора Данных" в левом верхнем углу окна показа.

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

Для подключения новой печатной Отчетной Формы следует нажать кнопку "Определить еще одну отчетную форму"

При определении Отчетной Формы Менеджер Данных предлагает указать набор данных, форму доступа в нем и панель, которую необходимо подключить. Если в указанном наборе данных определена единственная форма доступа и единственная панель, то они не запрашиваются.

Для подключенной дополнительной печатной Отчетной формы имеет смысл задать мнемоническое наименование, которое будет высвечиваться Менеджером Данных в списке доступных печатных форм для набора данных при распечатке результатов запроса. Как и для других элементов Набора Данных, это можно сделать в диалоговом окне, вызываемом по кнопке "Свойства отчетной формы"

Перейти на начало страницы


Вернуться к Оглавлению К предыдущему разделу К следующему разделу


Все права на материалы, находящиеся на сайте, охраняются в соответствии с действующим законодательством
© C-Rover, 2010-2014