Печать в MSExcel

Материал из GB wiki
Перейти к: навигация, поиск


Общие данные

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

Для организации печати в MSExcel необходимо наличие:

  1. Excel-ной печатной формы в ГБ (TGBExcelReport). Содержит ссылки на входной шаблон и путь к файлу-результату. Кроме того, используется для того чтобы получить данные с ГБ, т.е. доступ к датасетам.
  2. Файл–шаблон формата MSExcel. Шаблон заполняется по определенным правилам, которые будут описаны ниже.

Печатная Форма в ГБ

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

Совет: все расчеты лучше делать в ПФ ГБ, хиповые поля (Heap.xxx) присваивать переменным, для дальнейшего использования.

Пример:

VarsInExcelPF.png

Шаблон в MSExcel

Путь к файлу шаблону указывается в поле «Имя файла-шаблона» в свойствах печатной формы (двойной «клик» мыши на печатной форме). Галка «Внедрить» позволяет внедрить содержимое файла шаблона в печатную форму.

При создании шаблона в MSExcel-е используются следующие ключевые слова:

Название Можно использовать в столбце Описание
$GBComment A Комментарий. Строка удаляется
$GBInitCounter.Value любой Инициализация счетчика (нач. значение). Ячейка очищается
$GBCounter любой Автоинкрементный счетчик
$GBDatasetBegin.DataSetName A Начало датасета. Строка удаляется
$GBField.DataSetName.FieldName любой Поле
$GBDatasetEnd.DataSetName A Конец датасета. Строка удаляется
$GBStop любой Остановка обработки последующих ячеек. Строка удаляется
$GBPaste А Вставка из буфера скопированных данных


  • Как и в QiuckReport используются «бэнды», то есть области где доступны поля из указанного источника данных.

Обозначения:

$GBDatasetBegin.xxx - начало бэнда, $GBDatasetEnd.xxx - конец бэнда.

где xxx - имя Источника данных.

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

  • Имена полей из источника и переменных вызываются как «поле» в QuickReport.

Обозначения:

$GBField.xxx.yyy - где xxx – имя источника, yyy – имя поля, или переменной. При чем, использовать эту команду можно только внутри конструкции $GBDataSetBegin.xxx и $GBDataSetEnd.xxx.

yyy может быть любым выражением, в котором участвуют поля датасета xxx, то есть можно использовать функции встроенного языка ГБ, например $GBField.DataSet.FormatDate("dd mmmm yy", OperationDate).

Пример:

ExampleExcel1.png


  • $GBPaste используется для вставки в файл-результат скопированных в буфер обмена данных, после этой команды не должно быть заполненных ячеек. В печатной форме ГБ следует задать две переменные :SetPresetName:=`моя предустановка`, :CopyGrid:=1.


При печати обрабатываются все Листы MSExcel-ного файла. Всё графическое оформление документа делается средствами MSExcel - шапка документа, шапка таблицы товарных строк, и подвал. В процессе работы все ключевые слова заменяются на данные из БД ($GBField), или исчезают целой строкой ($GBDatasetEnd).

Внимание! В отличие от принципов QuickReport при создании «бэндов» в MSExcel используется вложенность бэндов.

Например, шаблон для печати документов:


$GBDatasetBegin.DataSet

Шапка документа

$GBDatasetBegin.Goodies
$GBDatasetBegin.Certificates
Товарные строки
$GBDatasetEnd.Certificates
$GBDatasetEnd.Goodies
$GbDatasetBegin.GoodiesTotals
Итоги по товарным строкам
$GbDatasetEnd.GoodiesTotals

$GBDatasetEnd.DataSet

Примечание:

Начиная с версии ГБ 1.7.0.84 печатная форма может содержать несколько бэндов на каждом уровне вложенности.


Поскольку сам MSExcel является мощным вычислительным средством, можно использовать встроенные функции вычисления на основе данных, полученных из ГБ. Например, можно рассчитать сумму по товарным строкам и итоговую сумму:

Расчет суммы по строке:

SumInExcel1.png


Расчет итогов по колонке:

SumInExcel2.png

Следует обратить внимание на диапазон, указанный при использовании функции «=СУММ()». Поскольку при печати товарных строк в MSExcel происходит ВСТАВКА последующей строки (между $GBDataSetBegin и $GBDataSetEnd), то в формуле динамически изменяется диапазон ячеек.


Файл:Пример Excel-ной ПФ.txt