Fr Studio и Visual Foxpro
В FoxPro создаю объект FastReport.TfrxUserDataset и вижу у него только два свойства: Fields и Name.
Как в FoxPro создать свой UserDataset?
Как в FoxPro создать свой UserDataset?
Комментарии
Объект UserDataset должен быть определён в Вашем приложении, помимо свойств Fields и Name, он должен поддерживать обработку событий OnFirsrt, OnNext, OnPrior и OnGetValue, которые должны быть реализованы Вами в объекте UserDataset. Есть два способа непосредственной передачи данных в отчёт из пользовательского приложения, но, опасаюсь, они не совместимы с FoxPro. Поэтому для передачи данных из FoxPro приложения в генератор отчётов я рекомендую использовать временный DBF файл, т.е. генерировать данные в этом файле, а затем передавать сформированную базу генератору отчётов. После построения отчётов временный файл удалить.
interface IfrxComponent : IDispatch {
HRESULT _stdcall GetObject(
[in] int Index,
[out, retval] IfrxComponent** Component);
Этот метод возвращает интерфейс IfrxComponent на дочерний объект, по его индексу. Индекс – целое число, которое может принимать значение от нуля до количества дочерних объектов минус единицы.
В Fisual FoxPro этот метод действительно возвращает что-то типа "объект", хотя доступ к его свойствам и методам никоим образом не удается получить! Как быть?
oGroupHeader = oReport.FindObjectEx("GroupHeader1")
oiGroupHeader = GETINTERFACE(oGroupHeader, "IfrxGroupHeader")
*oiGroupHeader = GETINTERFACE(oGroupHeader, "IfrxDataBand")
*oiGroupHeader = GETINTERFACE(oGroupHeader, "IfrxBand")
Для любого из 3-х нижних операторов генерируется исключение "OLE error code 0x80004002: no such interface supported."
Report.Calc(const Expr: String), описанную в Fast Report 4.0. Очень важно при формированиии документа - показывать или не показывать соответсствующие поля в зависимости от результата выражения. Предоставление такого метода в FastReport Studio сделало бы программу гораздо более независимую от содержимого отчета. Как возможно это сделать?
Или хотя бы иметь возможность доступа в FastReport Studio к событию OnAfterData (и соответственно значению переменой Value).