Вывести массив в отчет
Вопрос в следующем как правильно передать в ОТЧЕТ и затем вывести
например в виде таблицы МАССИВ
Использую:
Visual C++ 7.1
FastReport Studio 3.20
не получается вывести беру как пример UserDataSet
или пусто или Access Violation
Объясните с примерами как вывести массив табличкой,
например 4 столбца и некоторое кол-во строк.
например в виде таблицы МАССИВ
Использую:
Visual C++ 7.1
FastReport Studio 3.20
не получается вывести беру как пример UserDataSet
или пусто или Access Violation
Объясните с примерами как вывести массив табличкой,
например 4 столбца и некоторое кол-во строк.
Комментарии
Столбцы - это поля. Чтобы задать поля в датасете, укажите их в свойстве Fields в виде строки. Поля разделяются симоволом Возврат Каретки <CR>.
Строки таблицы - это записи. Для навигации по строкам, напишите обработчик событий OnFirst, OnNext, OnPrior и OnCheckEOF.
Если обработчик события OnCheckEOF возвращает значение "истина", это значит что больше данных для обработки нет.
Данные передаются в таблицу при помощи события OnGetValue.
Это событие имеет один входной и один выходной параметры.
Входящий параметр указывает имя поля. В выходном параметре возвращается значение для текущей записи и запрошенного поля.
Испульзуя Visual C++ необходимо помнить, что параметры события OnGetValue передаются в виде типа данных VARIANT, что накладывает соответсвующие требования к обработке этих параметров.
Не могли бы Вы уточнить, работает ли оригинальный пример, который поставляется вместе со студией?
Вот с этим не понятно, зачем оно? Не почувствовал разницы. Хоть одно поле, хоть несколько
pDataSet->Fields = "Num\nName\nVal\n";
или
pDataSet->Fields = "Num\n";
А вот с этим отчет всегда пустой.
pDataSet->Name = "Name\nName_2\nName_3\n";
Что не так?
Обработчики из примера поменял только вот, может и криво, но для диплома сойдет
Это имена столбцов, они используются в событии OnGetValue.
На этапе проектирования FastReport Studio рассматривались различные варинаты установки имен полей. В результате остановились на разделении имён через перевод строки.
Поскольку датасет всегда привязывается к отчёту по имени, то скорее всего таким образом Вы нарушаете привязку датасета к отчету. Кроме того, я не уверен что имя датасета может содержать в себе перевод строки.
Вы используете FastReport в дипломной работе? Приятно это слышать.
даже прояснения появились
а я просто не парился и в именах полей в отчете использую
порядковый номер столбца
А функция StrToDouble может понимать числа с точкой, а не только с запятой
а то зараза из базы лезут числа с точкой
да и даты в формате YYYY-MM-DD (в региональных настройках все нормально)
может где-то в базе настроить нужно?
Посмотрю, попробую дать человеческое имя.
Диплом на второе образование (балуюсь), потому и времени особо нет разбираться, только по ночам после основной работы