Если Вы, изучив предыдущие уроки, получили в свое распоряжение файл Excel, Вам не составит труда вывести его на печать. Но, не всегда такой вариант получения отчета приемлем.
Для конструирования отчетов существует ряд средств. Я не берусь здесь обсуждать их достоинства и недостатки. Так исторически сложилось, что я пользуюсь платной версией Fast Report.
Но, для того, чтобы попробовать, можно найти на сайте производителя бесплатные или демо версии, а так же очень подробную документацию.
Почему именно FastReport? Посмотрите здесь. Не только из гордости за отечественного производителя, еще и за практически безграничные возможности.
Установка компонентов FastReport не должна вызвать никаких трудностей. После установки, на Tool Palette появится ряд вкладок.
Разместите на форме два компонента, с вкладки FastReport:
TfrxDBDataset - источник данных для отчета, TfrxReport - конструктор отчета.
Теперь необходимо немного подготовиться и временно включить:
1. Форма MainFrm: ADOConnection - Connected = True (если не задана строка подключения, задать ее).
2. Форма OborotFrm, компонент CDS - свойство Connection = MainFrm.ADOConnection1 (т.е. связать этот компонент с ADOConnection на главной форме) и указать свойство TableName = Oborot. Собственно, это все проделывается программно, но нам нужно временно для создания отчета.
Не забудьте по окончании создания отчета очистить значения этих свойств.
Настройте компонент TfrxDBDataset, указав его свойство DataSet:
А затем два раза щелкните по компоненту TfrxReport, чтобы перейти в конструктор отчета.
Первое, что необходимо сделать - выбрать меню Report - Data и назначить источник данных для отчета, как показано на рисунке:
Затем - развернуть страницу на Landscape (альбомную) в меню File - Page Settings, т.к. отчет наш "широкий".
Добавить "бэнды" - так называются области для размещения в них различных данных и группировке этих данных, как минимум - два - ReportTitle (заголовок отчета) и MasterData (мастер - для вывода данных отчета), связав последний с источником данных.
Сохраните свой макет под именем Oborot.fr3.
Теперь настало время дать отчету заголовок, нажав на пиктограмму "ab":
Форматируйте надпись подобно тому, как Вы это делали в MS WORD, здесь инструменты очень похожи:
Перетащите одно поле для начала на MasterData (можно добавить еще заголовок страницы (PageHeader), где разместить заголовки колонок отчета):
Опция Create caption удобна, но не в нашей языковой зоне: подписи = имена полей на латинице, так что подписи придется сделать ручками.
Сохраните и закройте конструктор. Теперь нужно в Popup меню формы добавить новый пункт, по которому будет вызываться отчет:
procedure TOborotFrm.N2Click(Sender: TObject);
begin
// Вывод предварительного просмотра отчета
frxReport1.ShowReport(True);
end;
Если все сделано правильно, на этом этапе Вы получите список счетов с заголовком "Оборотная ведомость".
Лично я предпочитаю табличное оформление (с рамочками), чему и Вы быстро научитесь, поскольку самое главное я уже рассказал:
Главное рассказал, а важное и нужное - еще впереди.
Мой дорогой читатель, наверное уже догадался, что в документе не хватает подзаголовка, т.е. периода, за который он составлен.
Далее я покажу один из способов передачи данных посредством переменных в отчет.
Добавьте перед строкой frxReport1.ShowReport(True) ровно такую же строку, какой задавался период при импорте отчета в Excel:
frxReport1.Script.Variables['Period']:='Период: '+FormatDateTime('dd/mm/yy',Date_N.Value)+' - '+FormatDateTime('dd/mm/yy',Date_K.Value);
здесь Period - имя переменной, которую нужно разместить в конструкторе отчета в текстовом поле (memo) в квадратных скобках:
Результат, прямо скажем еще далек от совершенства:
числа нужно сдвинуть вправо, сделать их красивыми с помощью DisplayFormat (два знака после запятой) и подсчитать итоги по страницам (добавить пару бэндов)...
Если не сможете разобраться - пишите (координаты Вы найдете через страницу "Обо мне"), и тогда будем разбираться вместе.
А.В.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.