Обновлено 26.08.2019

Свойства отчета


Любой отчет описывается типом и структурой. При описании отчета используется интерпретатор языка FoxPro.

Тип отчета

Тип отчета - это характеристика, которая определяет структуру формирования отчета. Определены следующие типы отчетов:

  1. Список лицевых
  2. Список домов
  3. Список жильцов
  4. Текстовый бланк
  5. Текстовый бланк (паспорт)
  6. Свод данных
  7. Список оплаты
  8. Список перерасчетов
  9. Список кассовых документов
  10. Список по любому документу

Описание отчета (в зависимости от типа) состоит из 8 разделов:

  1. Страница
  2. Таблица
  3. Шаблоны
  4. Параметры
  5. Алгоритм или предварительный расчет
  6. Условия
  7. Реквизиты
  8. Сумирование

Раздел "Cтраница"

Данный раздел содержит общие сведения об отчете:

  • Название
  • Тип (определятся в момент создания нового отчета, тип уже существующего отчета менять нельзя)
  • № по порядку
  • Группа
  • Строк на листе для отчета списочного типа (или количество экземпляров для текстового бланка)
  • Строк на 1-м листе для отчета списочного типа, если предполагается выдать заголовок, заданный шаблоном.
  • Определять автоматически кол-во экземпляров на листе (только для текстового бланка)
  • Выдавать в головном меню (Да/Нет)
  • Выделять в головном меню (Да/Нет), если Да, то предлагается выбрать Шрифт и Фон названия отчета в головном меню.
  • Выдавать в меню расчет (Да/Нет), которое рассположено на панели инструментов на кнопке (только для текстового бланка и расчетной ведомости), т.е. в данное меню выводятся т.н. персональные формы.
  • Кнопка быстрого доступа (Да/Нет) + Иконка, если Да, то данная иконка появтся на панели инструментов, как кнопка быстрого доступа к отчету;
  • Параметры страницы: отступ (сверху, снизу, слева, справа), ориентация (книжная, альбомная)
  • Нумеровать листы (только для отчета списочного типа)
  • Нумеровать колонки (только для отчета списочного типа)
  • Выдавать дату-время (только для отчета списочного типа)
  • Только на чтение - будет установлен режим запрета редактирования уже сформированного отчета
  • Выдавать итоги (Да/Нет)
  • Выдавать строку итого (Да/Нет)
  • Выдавать итоговый лист (Да/Нет)
  • Итоги могут выдаваться на каждом листе или в целом по отчету в виде итоговой строки и (или) в виде итогового листа. Какие реквизиты суммировать и куда выводить описывается в свойствах реквизитов в разделе Реквизиты и Суммирование .
  • Заголовок только на первом листе (Да/Нет). Если описан шаблон заголовка, то он будет выведен только на первом листе, см. Шаблоны
  • Подвал только на последнем листе (Да/Нет) Если описан шаблон подвала, то он будет выведен только на последнем листе см. Шаблоны

Раздел "Таблица"

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

  • Интервалы между ячейками по вертикале и горизонтале;
  • Интервалы между рамкой таблицы и ячейками по вертикале и горизонтале;
  • Поля ячеек;
  • Толщина линий;
  • Тип рамки;

Раздел "Шаблоны"

Предполагается следующая структура отчета:

  • Титульный лист
  • Заголовок
  • Информационная строка
  • Заголовок
  • Подвал
  • Итоговый лист

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

Раздел "Параметры"

Параметры отчета - это список полей, которые будут запрошены при выполнении отчета. Свойства параметра:

  • Название - имя параметра, которое в алгоритме можно использовать как переменную .
  • Комментарий - выйдет при запросе параметра. Если комментарий не указан, то при запросе выйдет имя параметра.
  • Тип переменной - соответственно в алгоритме к ней можно будет применять функции для данного типа.
  • Длина и точность (для цифр) переменной
  • Список - перечисляются варианты значений через ";". Если переменная цифровая , то к ней можно обращатья по номеру варианта, если символьная - по значению.

Например: параметр "Цвет" цифровой длиной 2, список значений:

  1. Синий
  2. Красный
  3. Голубой

Если при выполнении отчета Вы выберете вариант "Красный", то переменная "Цвет: будет иметь значение = 2.

Если бы переменная "Цвет" имела символьный тип, то в данном случае ее значение = "Красный".

В дальнейшем Вы можете использовать переменную "Цвет" при описании Алгоритмов, Условий, а также при описании полей в разделе Реквизиты и Суммирование.

Раздел "Алгоритм"

Для отчета любого типа можно описать Предварительный расчет - это произвольный алгоритм. Алгоритм - это программа на языке FoxPro (см. Интерпретатор FoxPro). Причем все переменный, которые будут определены в алгоритме можно использовать при описании Условий выборки, а также при описании полей в разделе Реквизиты и Суммирование.

Описание алгоритмов подробно описано в разделе Алгоритмы расчета.

Предварительный расчет разбит на две части:

  1. До цикла - это алгоритм, который выполняется один раз, например, когда нужно проинициализировать переменные
  2. В цикле - это алгоритм, который выполняется для каждой записи списка

Раздел "Условия"

Условия - это список условий выборки записей списка.

Например, условие для списка лицевых счетов:

СумНач(5)>0, где СумНач(5) - это сумма начислений по услуге с кодом 5 - "Холодная вода" (см. Квартплатные функции )

в список выйдут только те лицевые счета, для которых данное условие верно.

Следует отметить, что можно было в Алгоритме написать:

СумХВС=СумНач(5)

и тогда в условии можно написать:

СумХВС>0

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

Раздел "Реквизиты"

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

  • Название. Для отчетов списочного типа это может быть любой текст, который выйдет в заголовке. Для отчетов типа текстовый бланк название не должно содержать пробелы и спецсимволы (#,$;, и т.д.), только буквы и цифры, поскольку при выполнении такого отчета соответствующий текст в шаблоне будет заменен на значение реквизита.
  • Группа. Только для отчетов списочного типа. Если у рядом рассположенных полей название группы совпадает, то при формировании заголовка программа объединит такие поля под этим названием.
  • Тип. В зависимости от типа программа определяет, что можно делать с данным полем, а чего нет. Например, можно или нельзя его суммировать.
  • Дополнительный свойства:
    • Формат вывода (в зависимости от типа).
    • Способ вывода (для символьного типа):
      1. выводить результат расчета (по умолчанию)
      2. выводить таблицу - задаем номер таблицы
      3. выводить штрихкод - задаем номер штрих-кода. Соответствующий штрих-код должен быть описан в функции Штрих-кодирование
    • Предлагать для сортировки (только для отчета списочного типа).
    • Выравнивание горизонтальное и вертикальное (только для отчета списочного типа).
    • Суммировать, cуммировать итого на листе, суммировать общий итог (только для реквизита цифрового типа).
  • Алгоритм расчета.

    Алгоритм - это программа на языке FoxPro (см. Интерпретатор FoxPro) При описании алгоритма расчета поля можно использовать ранее определенные в Предварительном расчете переменные.

    Например: в предварительном расчете (на примере отчета "Оборотно-сальдовая ведомость"):

    СумНач=СумНач()+СумПер()
    СумОпл=СумОпл()
    СальдоКон=Сальдо-СумНач+СумОпл
    if СальдоКон<0
    ДебетКон=-СальдоКон
    else
    КредитКон=СальдоКон
    endif

    Допустим мы описываем поле "Оплата", тогда алгоритм этого поля состоит из одной строки:

    return СумОпл

    Для поле "Дебет", тогда алгоритм этого поля:

    return ДебетКон

    Для поле "Кредит", тогда алгоритм этого поля:

    return КредитКон

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

Раздел "Суммирование"

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

  1. описать поле как символьное
  2. в алгоритме преобразовать значение поля к символьному типу: str(SR.SUM,10,2)
Наверх Задать вопрос