Глава 5. СОЗДАЕМ ОКОННЫЙ ИНТЕРФЕЙС «ПОСТУПЛЕНИЯ НА СКЛАД»
Построение отчета
Программа Allegro не имеет встроенных средств печати. Вместо этого
используется экспорт в Microsoft Excel, который должен быть установлен
на компьютере. Экспорт в Excel осуществляется при помощи встроенного
в программу компонента XLReport фирмы AfalinaSoft.
Откроем проект документа «Поступление на склад» в режиме
дизайна.
Добавим на форму компонент XLReport с палитры Print.
Вызовем в Инспекторе объектов редактор свойства DataSources и добавим в
список 2 источника данных:
В инспекторе объектов подключим первый источник к главной таблице документа
:
Dataset = qryMaster
Alias = MASTER
Второй подключим к подчиненной таблице документа:
Dataset = qryDetail
Alias = DETAIL
Range = range1
Свойство Range содержит имя региона ячеек range1 шаблона Excel,
который нам еще предстоит создать.
Теперь создадим шаблон. Для этого дважды щелкнем на компоненте
XLReport1. Вызовется Microsoft Excel. Распишем заголовки будущих колонок
документа, оставив слева одну пустую колонку. Выделим ячейки
будущей строки документа, захватив эту пустую колонку и одну
пустую добавочную строку снизу, как показано на рисунке.
Назовем выделенный регион ячеек range1, набрав это слово в
выпадающем списке слева:
Теперь выберем по одной каждую ячейку будущей строки документа и
впишем в нее знак равенства, затем название (ALIAS
) источника данных и имя поля, которое следует отобразить
в этой ячейке, разделенные знаком подчеркивания:
=DETAIL_NUM
=DETAIL_ITEM_NAME
=DETAIL_QUANTITY
=DETAIL_PRICE_L
=DETAIL_AMOUNT_L
Удалим лишние листы (Лист2 и Лист3) из книги
, сохраним Книгу в файле под названием stock_in
.xls в той же директории, где мы храним
модули нашего проекта. В дополнительной строке региона, под
ячейкой, в которой должно выводиться количество, и под
ячейкой в которой должна выводиться сумма напишем слово sum и
придадим этим ячейкам жирный шрифт:
Сохраним изменения в шаблоне, закроем Excel и вернемся к
нашему проекту.
В Инспекторе объектов у компонента XLReport1 в свойстве XLSTemplate запишем
имя файла шаблона stock_in.xls.
Дважды щелкнем на компоненте ActionList1, выберем в списке команд
Отчет и в Инспекторе объектов назначим этой команде обработчик события
OnExecute:
procedure TStockInForm.actReportExecute(Sender: TObject);
begin
XLReport1.Report;
end;
Выберем в проекте компонент XLReport1 и создадим ему обработчик события
OnProgress:
{Отображение прогресса в статусной строке}
procedure TStockInForm.xlReport1Progress(Report: TxlReport; const Position, Max: Integer);
begin
if Position = 0 then
StatusBarDisplay(clBlack, Position, 0, Max, '', '', '')
else
StatusBarDisplay(clLime, Position, 0, Max, '', 'Экспорт в Excel...', '');
end;
Запустим проект и нажмем кнопку «Отчет». Произойдет экспорт
в Excel и отображение отчета на экране.
Закроем Excel. Остановим работу проекта. Дважды щелкнем на
компоненте XLReport1 для того, чтобы вызвать шаблон.
Отформатируем ячейки: поля нумерации количества и цены сделаем выравнивание
по центру, сумму отформатируем как числа с 2 десятичными
разрядами.
Добавим 5 рядов ячеек вверху документа для размещения полей шапки
.
Добавим крупным шрифтом надпись «Поступление на склад»
Справа от нее объединим три ячейки и впишем в них
=MASTER_ENTRY_DATE, зададим в этих
ячейках
принудительное форматирование в виде даты.
Ниже на трех строках разместим жирным шрифтом:
=MASTER_STOCK_ACC_NAME
=MASTER_CREDIT_ACC_NAME
=MASTER_CONTRAGENT_NAME
Для отображения нумерации страниц, в «Параметрах страницы»
на закладке «Колонтитулы» создадим верхний колонтитул вида «
Страница 1 из ?». Еще объявим в «Параметрах страницы
» сквозные строки $8:$8 на закладке «
Лист».
Сохраним шаблон и закроем Excel.
Запустим проект и сделаем экспорт. Вызовем в Excel «
Предварительный просмотр»:
Итак, мы полностью реализовали интерфейс документа «Поступление на
склад».
|