Андрей Бобков подготовил замечательное и очень детальное описание автоотчетов. Андрей готовил описание для Axapta 2.5 SP5 RU HF3. Функциональность автоотчета в 3.0 изменилась незначительно, но интерфейс по сравнению с 2.5 полностью переработан, поэтому в Аксапты 3.0 данное описание хорошо подходит только для понимания логики работы.

Word document Описание функциональности автоотчета в Axapta (.doc, 336Kb)

Андрей Бобков, a-bobkov@inbox.ru

Описание функциональности автоотчет
в Microsoft Axapta 2.5

 

1. Введение
2. Алгоритм настройки и вывода автоотчета пользователем
3. Выбор полей, выводимых в отчет, а также общих итогов
4. Критерии выборки
5. Настройка канала вывода
6. Вывод отчета по данным нескольких таблиц


1. Введение

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

Самый простой пример использования автоотчета – вывод списка поставщиков с адресами. Для того чтобы получить его, нужно открыть форму Поставщики (Расчеты с поставщиками/ Поставщики), выбрать в меню главного окна Файл- Печать, нажать кнопку Печать. Будет выведена печатная форма отчета по поставщикам с системной настройкой автоотчета.

Рис.  1. Автоотчет по поставщикам с
Рис.  1. Автоотчет по поставщикам с системной настройкой

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

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

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

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

 

2. Алгоритм настройки и вывода автоотчета пользователем

В общем случае, для настройки и вывода автоотчета нужно:

  1. Открыть форму, содержащую требуемую таблицу. Можно открыть нужную таблицу через браузер таблиц, но для этого нужны соответствующие права.
  2. Поместить курсор на поле, принадлежащее нужной таблице, нажать Ctrl+P, или вызвать «Печать» через меню «Файл» главного окна, или нажать пиктограмму  на панели инструментов главного окна. Можно также нажать пиктограмму , при этом без всяких запросов на экран будет выведен готовый автоотчет с параметрами по умолчанию. В последнем случае в выборку попадут те же записи, что выведены (или отмечены) в форме.
  3. В открывшейся форме Автоотчет – Генератор автоматических отчетов в поле Выберите отчет выбрать настройку полей автоотчета или создать новую настройку полей через кнопку Расширенно. В списке поля Выберите отчет. перечислены названия настроек полей автоотчета, ранее настроенных и сохраненных пользователем для данной формы. Название «Автоотчет» соответствует системной настройке. По умолчанию, в поле Выберите отчет система предлагает настройку, использованную для вывода отчета из этой формы в последний раз.
  4. Выбрать настройку критериев автоотчета через кнопку Критерии. По умолчанию, используются критерии, установленные в форме (с помощью клавиш Ctrl+F и Ctrl+F3).
  5. Настроить канал вывода автоотчета через кнопку Настройки принтера. По умолчанию, используется настройка канала вывода, использованная для вывода отчета из этой формы в последний раз.
  6. Вывести отчет с помощью кнопки Печать. При нажатии на эту кнопку, настройки, сделанные на шаге 3 и шаге 5 сохраняются в качестве настроек по умолчанию. При нажатии на кнопку Отменить, настройки по умолчанию остаются прежними.

 

3. Выбор полей, выводимых в отчет, а также общих итогов

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

3.1 Выбор полей отчета

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

Рис.  2. Настройка полей отчета по  таблице VendTable
Рис.  2. Настройка полей отчета по таблице VendTable.

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

При выборе таблицы, список Доступные поля автоматически заполняется значениями всех полей таблицы [1], кроме полей типа Container и всех дисплейных методов таблицы. В список включаются все системные поля, такие как Компания [2], Идентификатор записи, Автор, Дата создания и другие. Список Выбранные поля автоматически заполняется значениями полей и дисплейных методов таблицы, принадлежащих группе полей AutoReport [3]. Значения в списке Доступные поля отсортированы по алфавиту представления, а в списке Выбранные поля – по порядку следования в группе полей AutoReport.

Рис.  3. Группа полей AutoReport в таблице VendTable
Рис.  3. Группа полей AutoReport в таблице VendTable

В качестве представления полей в списках используется стандартные представления (приведены по порядку убывания приоритета):

Слева от представления выводится стандартный значок, обозначающий тип поля:

С помощью кнопок ≥, >>, ≤, <<, а также двойным щелчком мыши на представлении поля, можно перемещать поля между списками, добиваясь того, чтобы в список Выбранные поля попали все поля, которые нужно вывести в отчете. С помощью кнопок Вверх и Вниз можно перемещать поля в списке Выбранные поля, добиваясь того, чтобы они следовали в списке в том порядке, в котором их нужно вывести в отчете [4].

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

3.2 Выбор итоговых полей отчета

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

Рис.  4. Настройка итоговых полей отчета по таблице VendTable
Рис.  4. Настройка итоговых полей отчета по таблице VendTable

Следует выбрать нужную таблицу в поле Таблицы. Список Доступные поля на этой закладке заполнится названиями полей и дисплейных методов выбранной таблицы, имеющими тип Real, Integer, Time, а список Выбранные поля обычно пуст [5]. Для вывода итогов по полю, нужно переместить его из списка Доступные поля в список Выбранные поля на этой закладке. Перемещение полей между списками выполняется так же, как и на закладке Выбор полей отчета.

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

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

3.3 Формат отчета

На закладке Формат отчета можно задать настройки формата вывода отчета:

Рис.  5. Настройка формата вывода отчета
Рис.  5. Настройка формата вывода отчета.

Выходная форма – определяет расположение данных на листе.

Если выбрано значение «Tabular» (выбирается по умолчанию), то каждая запись выводится отдельной строкой. Следующее поле выводится в отчет справа от предыдущего. Имя поля выводится однократно над соответствующей колонкой. Итоги выводятся снизу, под соответствующей колонкой.

Если выбрано значение «По колонкам», то каждая запись выводится в две колонки – половина полей в первую колонку, половина – во вторую. Имя поля каждый раз выводится перед его значением. Итоги выводятся внизу, под всеми записями, по всем полям вместе, причем могут перекрывать друг друга. Такой формат отчета можно использовать, когда поля записей имеют длинные значения и расположение их колонками рядом друг с другом неудобно.

Ориентация – определяет ориентацию листа. Эта настройка перекрывает настройку опций принтера, описанную в п.5.

Если выбрано значение «Auto» (выбирается по умолчанию), то система выбирает ориентацию листа в соответствии с настройкой опций принтера.

Если выбрано значение «Portrait», то система выбирает вертикальную ориентацию листа.

Если выбрано значение «Landscape», то система выбирает горизонтальную ориентацию листа.

Шаблон – определяет колонтитулы отчета. [7]

3.4 Сохранение, загрузка настройки полей отчета

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

Сохранить настройку в базе данных можно с помощью кнопки Сохранить как. В появившемся диалоге система предлагает указать в поле Наименование название сохраняемой настройки. Название указывается с использованием любых символов. Если ранее, при входе в автоотчет, была выбрана сохраненная настройка, то по умолчанию предлагается название этой сохраненной настройки, иначе, предлагается название «Новый отчет». Если автоотчет с таким названием уже сохранен, то по умолчанию предлагается название «Новый отчет (1)» и так далее. Указав название настройки, нужно нажать ОК. Если отчет с указанным именем для данного набора таблиц уже сохранен, система выдаст запрос, перезаписать ли существующий отчет. При положительном ответе пользователя, система сохранит настройку автоотчета, в заголовке окна появится ее название [8].

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

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

Настройку полей можно сохранить в виде отчета в AOT с помощью кнопки Сохранить в AOT. В появившемся диалоге система предлагает указать в поле Наименование название сохраняемой настройки. Название указывается в соответствии с синтаксическими требованиями системы к названию объекта AOT. В частности, название не должно содержать русские буквы и начинаться с цифры. Если указанное название не противоречит синтаксическими требованиями системы, настройка будет сохраненная в виде отчета и может быть найдена в ветке Reports, в противном случае, настройка не будет сохранена, без всякого диагностического сообщения. Таким образам, для уверенности, что настройка успешно сохранена, нужно найти в AOT отчет с указанным при сохранении именем [9].

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

3.5 Выход из формы настройки полей отчета

Если выйти из формы с помощью кнопки Сохранить и закрыть, то система выдаст запрос на сохранение настройки.

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

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

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

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

Если нажать на кнопку Отмена, то система НЕ переписывает настройку, закрывает окно настройки полей отчета и открывает окно запуска автоотчета.

Если выйти из формы с помощью кнопки Отменить, то система закрывает окно настройки полей отчета и открывает окно запуска автоотчета.

Если выйти из формы с помощью значка , то система закрывает окно настройки полей отчета и выходит из автоотчета совсем!

 

4. Критерии выборки

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

4.1 Условия выборки

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

  1. В колонке Таблица выводится название таблицы, которой принадлежит поле, по которому задается условие.
  2. В колонке Поле выводится название поля, по которому задается условие.
  3. В колонке Критерии выводится условие включения записи в фильтр. Синтаксис условия позволяет использовать стандартные выражения для поиска в Аксапте.

Рис.  6. Настройка условий отбора записей для отчета по таблице VendTable
Рис.  6. Настройка условий отбора записей для отчета по таблице VendTable.

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

Если поле имеет тип Date или Time, то выпадает календарь, из которого можно выбрать дату [10].

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

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

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

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

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

Список доступных полей включает все поля таблиц кроме полей типа Container, а также поля Компания [12]. В отличие от списка доступных полей на закладке Выбор полей отчета, в данный список не включаются дисплейные методы, таким образом, автоотчет позволяет выводить значения дисплейных методов, но не позволяет делать выборку по их значениям. Поля, выбранные в таблице условий, отмечены в списке доступных полей галочкой. С помощью кнопок >, <, <<, клавишей стрелок и пробела, щелчком мыши на галочке, а также двойным щелчком мыши на представлении поля, можно добавлять и убирать поля из таблицы условий, добиваясь того, чтобы в нее попали все поля, по которым нужно отбирать записи отчета.

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

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

Все условия, указанные в таблице условий, объединены с помощью логического И. То есть, в отчет будут выведены только записи, удовлетворяющие ВСЕМ условиям, указанным в таблице условий. [13]

Для того чтобы указать условия по разным полям таблицы, связанные с помощью логического ИЛИ, нужно использовать в качестве условия SQL-выражения в скобках, описанные в статье http://axapta.mazzy.ru/lib/search/ [14].

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

4.2 Сортировка выборки

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

  1. В колонке Таблица выводится название таблицы, которой принадлежит поле, по которому задается сортировка.
  2. В колонке Поле выводится название поля, по которому задается сортировка.
  3. В колонке Направление сортировки указывается направление сортировки – «В возрастающем порядке» (по умолчанию), либо «Убывание».
  4. В колонке Всего указывается, нужно ли выводить промежуточные итоги по текущему значению данного перед изменением значения данного поля. Если нужно, то система выведет в отчет дополнительную строку с названием и значением данного поля и промежуточными итогами по всем полям, выбранным на закладке Создание итоговых полей.
  5. В колонке Заголовок указывается, нужно ли выводить новое значение данного поля после изменения значения данного поля. Если нужно, то система выведет в отчет дополнительную строку с названием и значением данного поля.

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

Рис.  7. Настройка сортировки и группировки записей для отчета по таблице VendTable
Рис. 7. Настройка сортировки и группировки записей для отчета по таблице VendTable.

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

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

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

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

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

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

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

4.3 Сохранение, загрузка критериев выборки

На закладке Загрузить/Сохранить можно сохранить настроенные критерии выборки или загрузить ранее настроенные, в том числе и настроенные в системе по умолчанию.

Рис.  8. Загрузка, сохранение, удаление критериев выборки.
Рис.  8. Загрузка, сохранение, удаление критериев выборки.

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

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

Чтобы загрузить ранее сохраненную настройку, нужно просто выбрать ее в списке.

Чтобы удалить ранее сохраненную настройку, нужно выбрать ее в списке и нажать кнопку Удалить.

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

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

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

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

Если выйти из формы с помощью кнопки Отменить, то все заданные критерии выборки сохранятся, но не будут использоваться при построении отчета. [15]

 

5. Настройка канала вывода

С помощью кнопки «Настройка принтера» можно настроить канал вывода (куда будет выведен отчет) и опции вывода.

Рис.  9. Настройка канала вывода.
Рис.  9. Настройка канала вывода.

На закладке Разное можно задать канал вывода отчета:

  1. Принтер – отчет будет выведен на принтер, указанный в поле Название, и, по выбору пользователя, сохранен в архиве печати.
  2. Архив печати – отчет будет сохранен только в архиве печати. Содержимое архива доступно для просмотра, печати, удаления через форму Архив отчетов (Разное/ Архив отчетов). Та же форма открывается через Меню главного окна (Сервис/ Архив отчетов).
  3. Файл – отчет будет выведен в файл, и, по выбору пользователя, в архив печати. Предлагаемые системой форматы файлов:
    • TXT – текстовый файл, значения полей разделены знаками табуляции;
    • RTF – файл формата RTF;
    • HTML – файл формата HTML.
      Все файлы выводятся в кодировке CP-1251. [16] [17]
  4. Почта – отчет будет отправлен по почте, и, по выбору пользователя, сохранен в архиве печати. Письмо будет отправлено через почтового клиента, установленного по умолчанию. В поле Кому необходимо указать адреса электронной почты получателей письма. В поле С можно указать адреса электронной почты получателей копий. Адреса необходимо указывать в соответствии с синтаксисом, допустимым для этих полей почтовой программой. В поле Предмет можно указать тему письма. В поле Формат сообщения необходимо выбрать формат файла. Предлагаемые форматы файлов – те же что и в п.3. Пересылаемые по почте файлы идентичны тем, что формируются в п.3.
  5. Экран – отчет будет выведен на экран, и, по выбору пользователя, сохранен в архиве печати.

 

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

Масштаб – разрешает масштабирование отчета.

Ориентация – определяет ориентацию листа. Эта настройка перекрывается настройкой формата отчета, описанной в п.3.3 и работает только если в настройке формата отчета установлено значение «Auto».

Если выбрано значение «Auto» (выбирается по умолчанию), то система выбирает ориентацию листа автоматически, в зависимости от общей ширины выводимых полей. Алгоритм выбора ориентации листа в этом случае следующий:

ЕСЛИ отчет вмещается без масштабирования на вертикально ориентированный лист, то отчет выводится,
ИНАЧЕ если отчет вмещается без масштабирования на горизонтально ориентированный лист, то отчет выводится,
ИНАЧЕ если разрешено масштабирование, то система масштабирует отчет так чтобы он вместился на горизонтально ориентированный лист и отчет выводится,
ИНАЧЕ система переносит не вместившиеся поля на следующую строку и отчет выводится.

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

Все настройки на данной закладке сохраняются только при нажатии на кнопку Печать

6. Вывод отчета по данным нескольких таблиц

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

Если форма содержит несколько таблиц, и таблицы связаны на форме друг с другом через связь Join типов InnerJoin, OuterJoin, ExistJoin, NotExistJoin, то отчет строится по данным всех связанных таблиц.

Рис.  10. Связь таблицы VendTrans с таблицей VendTransOpen на форме VendOpenTrans
Рис.  10. Связь таблицы VendTrans с таблицей VendTransOpen на форме VendOpenTrans.

В зависимости от типа Join между таблицами на форме, будут выведены разные наборы данных:

InnerJoin: выводятся записи первой таблицы, для которых ЕСТЬ соответствующие записи во второй таблице. К выведенным записям добавляются поля соответствующих записей второй таблицы. Если одной записи первой таблицы соответствуют несколько записей второй, то выводится только одна комбинация соответствующих записей.

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

ExistJoin: выводятся записи первой таблицы, для которых ЕСТЬ соответствующие записи во второй таблице. Записи второй таблицы не выводятся совсем.

NotExistJoin: выводятся записи первой таблицы, для которых НЕТ соответствующих записей во второй таблице. Записи второй таблицы не выводятся совсем.

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

Если в связи на форме больше двух таблиц, связанных последовательно, то полученный набор данных затем обрабатывается в соответствии с типом Join между второй и третьей таблицей и так далее [18] [19].

 



Комментарии:

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

[2] Вывести с помощью автоотчета данные по нескольким компаниям нельзя! Отчет выводится только по данным текущей компании!

[3] Данный алгоритм не совсем корректен, так как в результате, поля из группы AutoReport попадают в оба списка. Если их убрать из списка Выбранные поля, то они окажутся в списке Доступные поля в двойном экземпляре! Если это мешает, достаточно повторно выбрать таблицу в поле Таблицы, и дубли пропадут из списка Доступные поля.

[4] При работе с таблицей с большим числом полей часто оказывается, что в списке Доступные поля есть поля с одинаковыми малозначащими представлениями, например «Дата» или «Сумма». Как правило, это связано с тем, что при программировании полю или дисплейному методу был присвоен какой-то часто используемый расширенный тип данных, и для поля таблицы метка была не определена программистом. Такой стиль программирования затрудняет настройку автоотчета!

[5] Список Выбранные поля по умолчанию заполняется названиями полей и дисплейных методов из группы AutoReport, имеющими расширенный тип данных, происходящий от Amount (возможно, от каких-то еще). Причина такой избирательности неясна!

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

[7] Предлагаемые системой шаблоны очень похожи. Имеет практический смысл выводить отчет либо с именем шаблона «FrontPage» (выбирается по умолчанию), либо с пустым именем. В последнем случае, отчет выводится вообще без колонтитулов.

[8] Настройка автоотчета сохраняется в таблице SysLastValue, недоступной через AOT, но доступной в форме Объекты в использовании через Меню главного окна (Сервис/ Разработка/ Прикладные объекты/ Объекты в использовании). Настройка сохраняется в этой таблице для данного пользователя в данной компании, в качестве объекта типа ReportUser. В поле Наименование выводится название настройки автоотчета, указанное пользователем при сохранении.

[9] В АОТ сохраняется только настройка полей отчета! Критерии отбора, описанные в п.4, в АОТ не сохраняются!

[10] Если поле имеет тип Time, то при нажатии на квадратную стрелку выпадает список возможных значений в соответствии с настроенной для данного поля связью Relation, а если такой связи нет, то выпадает календарь.

[11] Если для данного поля не настроен ни один Relation или Relation имеет фиксированное поле, то список значений не выводится совсем. Если для данного поля настроен Relation, то в списке выводятся все записи связанной таблицы, независимо от настройки в Relation фиксированного поля ссылки.

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

[13] Критерии, определенные для полей связанных таблиц, проверяются системой непосредственно при обработке запроса, а не после обработки. Вследствие этого, с помощью критериев можно воздействовать на то, какие записи будут выбраны из связанных таблиц. Например, можно потребовать, чтобы из связанной с помощью InnerJoin таблицы, были выведены записи, удовлетворяющие определенному условию, а не первые попавшиеся. Подробнее о типах связи таблиц на форме в п.6.

[14] С помощью SQL-выражений можно связывать только поля, принадлежащие текущей таблице – той, которая указана в поле Таблица. При попытке явно указать в качестве источника данных другую таблицу, возможны следующие ситуации:

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

Это ошибка рассматриваемой версии Аксапты!

[15] Настроенные критерии автоотчета сохраняются в таблице SysLastValue, недоступной через AOT, но доступной в форме Объекты в использовании через Меню главного окна (Сервис/ Разработка/ Прикладные объекты/ Объекты в использовании). Все настроенные критерии автоотчета сохраняются в этой таблице в качестве объекта типа SysQueryForm для данного пользователя в данной компании, но в форме Объекты в использовании  выводятся также настройки для всех остальных пользователей и компаний! В поле Наименование выводится текст «Т: [ID всех таблиц автоотчета]». В поле value хранится значение типа Container, содержащее все сохраненные критерии для данного набора таблиц.

Сохраненные настройки критериев полностью удаляются при использовании фильтрации записей в форме, из которой вызван автоотчет (с помощью клавиш Ctrl+F3). И наоборот, настройки, сохраненные для фильтрации записей в форме, полностью удаляются при использовании критериев выборки в автоотчете. Это ошибка рассматриваемой версии Аксапты, которая, по большому счету, приводит к невозможности использования сохраненных настроек критериев выборки! Кстати, фильтр, который ставится на форме по Ctrl+F3, также запоминается в таблице SysLastValue, но с наименованием «F: [Форма] [Первая таблица]», а фильтр, который ставится в отчете с помощью кнопки Выбрать, запоминается с наименованием «R: [Форма] [Таблица]».

[16] Недостатками файла в формате TXT являются:

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

Недостатками файла в формате RTF являются:

Недостатками файла в формате HTML являются:

[17] Таким образом, формат файла TXT в целом пригоден для экспорта данных в Excel, если не выводить итоги и как-то бороться с пустыми строками после импорта файла, например, задав фильтр в Excel, или запуская макрос, удаляющий все четные строки. Остальные форматы файлов совсем неудобны для использования.

[18] Если таблицы связаны на форме не последовательно, а V-образно, то отчет выдает необъяснимые наборы данных!

[19] При работе с сохраненными настройками полей автоотчета для нескольких таблиц можно столкнуться со следующей ситуацией: в списке поля Выберите отчет на форме Автоотчет – Генератор автоматических отчетов выводятся не только названия настроек, сохраненных для данной связки таблиц, но и других настроек, имеющих ту же первую таблицу.

Таким образом, в списке сохраненных настроек могут оказаться и «чужие» настройки, сохраненные для другой связки таблиц, нежели в данной форме. Это ошибка рассматриваемой версии Аксапты!

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

Если в такой «чужой» настройке были не все таблицы, которые есть в данной связке, то она не загрузится, система выдаст сообщение «Ошибка времени выполнения».

 

Андрей Бобков, a-bobkov@inbox.ru