function fe_prnm()
// Программа вывода в fastReport данных из массива
   Private a, a1
   PRIVATE aSetKey
//altd()
// Сохраняем привязанные к клавишам функции
   aSetKey:=SaveSetKey()
// Вызов отладчика, если программа скомпилирована под харбор. 
// В обычном файле prg не обрабатывается

//Cохраняет текущее состояние (текущую рабочую область, 
//установленный индекс и фильтр, текущий номер записи).
DBPUSH()
//Объявляем массив a и добавляем записи в массив с описанием 
// шапки и строк отчета
a:={}
//Описание шапки (1 элемент название поля в источнке для шапки отчета
//2 элемент - значение полей для шапки отчета
AADD(a,{"Наименование1",24})
AADD(a,{"Наименование2",CTOD("12/04/05")})
AADD(a,{"Наименование3","символьное поле"})
AADD(a,{"Наименование4",.T.})
//описание структуры массива строк
//1 элемент - название поля в источнке для строк отчета
//2 элемент - пустой, заполняется только для шапки
//3 элемент -  номер элемента в массиве строк отчета
AADD(a,{"Столбец2",,2})
AADD(a,{"Столбец3",,3})
AADD(a,{"Столбец1",,1})
//Объявляем массив a1 и добавляем записи в массив со значениями
// строк отчета
a1:={}
AADD(a1,{"элемент1",1,CTOD("01/01/05")})
AADD(a1,{"элемент2",2,CTOD("02/01/05")})
AADD(a1,{"элемент3",3,CTOD("03/01/05")})
AADD(a1,{"элемент4",4,CTOD("04/01/05")})
// Вызов функции win-печати
// файл шаблона, с указанием пути от каталога с базой данных
// а массив с описанием шапки и строк отчета 
// а1 - массив со строками отчета
// Вызывается дизайнер отчета. для вызова готового отчета необходимо
// в последнем параметре указать значение .F.
WinReport("TEMPLATE\fe_prnm.frf",a,a1,.F.)
// Восстанавливаем предыдущее состояние (текущую рабочую область, 
// установленный индекс и фильтр, текущий номер записи) книги хоз. операций.
DbPop() 
// Восстанавливаем привязанные к клавишам функции
RestSetKey(aSetkey)
return