Тут 3 варианта.
1. Действительно использовать БД. В принципе, любую, можно Embedded. Выбор скорее зависит от версии Delphi и наличия/отсутствия определенных компонентов (типа FireDAC).
2. Использовать In-Memory таблицы. Либо готовый компонент типа TMemoryTable (есть как самостоятельные, так и входищие в различные наборы компонентов, типа DevExpress, ODAC, etc). Еще можно воспользоваться компонентом TClientDataSet, который тоже позволяет хранить в виде ДатаСета данные.
Собственно, преимуществом этих 2х способов является то, что в дизайнере можно просто "набросать" отчет практически без единой строчки кода.
3. Сделать все "ручками". Берем отчет, размещаем в нем Band, на нем соотв. компоненты (обычно Label, только fastReport'овский). Потом либо после создания отчета (в run-time) прописываем значения во все компоненты, либо в событии OnPrint (можно Банда, можно в каждом компоненте) устанавливаем нужные значения.
Тут больше ручной работы, но можно обойтись без БД.
|